summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cui/source/tabpages/border.cxx4
-rw-r--r--cui/source/tabpages/chardlg.cxx34
-rw-r--r--cui/source/tabpages/tpcolor.cxx32
-rw-r--r--editeng/source/items/borderline.cxx22
-rw-r--r--editeng/source/items/frmitems.cxx68
-rw-r--r--editeng/source/items/textitem.cxx39
-rw-r--r--include/editeng/borderline.hxx19
-rw-r--r--include/editeng/boxitem.hxx17
-rw-r--r--include/editeng/memberids.h17
-rw-r--r--include/editeng/udlnitem.hxx26
-rw-r--r--include/svx/frmsel.hxx2
-rw-r--r--svx/source/dialog/frmsel.cxx6
-rw-r--r--svx/source/unodraw/unobrushitemhelper.cxx15
-rw-r--r--sw/inc/unoprnms.hxx20
-rw-r--r--sw/source/core/docnode/ndtbl1.cxx8
-rw-r--r--sw/source/core/model/ThemeColorChanger.cxx297
-rw-r--r--sw/source/core/unocore/unomap.cxx23
-rw-r--r--sw/source/core/unocore/unomap1.cxx30
-rw-r--r--sw/source/core/unocore/unomapproperties.hxx27
-rw-r--r--sw/source/uibase/docvw/edtwin.cxx2
-rw-r--r--sw/source/uibase/inc/uitool.hxx3
-rw-r--r--sw/source/uibase/shells/basesh.cxx6
-rw-r--r--sw/source/uibase/shells/frmsh.cxx16
-rw-r--r--sw/source/uibase/shells/textsh1.cxx34
-rw-r--r--sw/source/uibase/sidebar/PageStylesPanel.cxx5
-rw-r--r--sw/source/uibase/utlui/uitool.cxx7
26 files changed, 644 insertions, 135 deletions
diff --git a/cui/source/tabpages/border.cxx b/cui/source/tabpages/border.cxx
index 9b94bc0eb28a..549ab533410a 100644
--- a/cui/source/tabpages/border.cxx
+++ b/cui/source/tabpages/border.cxx
@@ -1234,8 +1234,8 @@ IMPL_LINK_NOARG(SvxBorderTabPage, SelSdwHdl_Impl, ValueSet*, void)
IMPL_LINK(SvxBorderTabPage, SelColHdl_Impl, ColorListBox&, rColorBox, void)
{
- Color aColor = rColorBox.GetSelectEntryColor();
- m_aFrameSel.SetColorToSelection(aColor);
+ NamedColor aNamedColor = rColorBox.GetSelectedEntry();
+ m_aFrameSel.SetColorToSelection(aNamedColor.m_aColor, aNamedColor.getComplexColor());
}
IMPL_LINK_NOARG(SvxBorderTabPage, ModifyWidthLBHdl_Impl, weld::ComboBox&, void)
diff --git a/cui/source/tabpages/chardlg.cxx b/cui/source/tabpages/chardlg.cxx
index 7a8788728b46..ace220bcc5c0 100644
--- a/cui/source/tabpages/chardlg.cxx
+++ b/cui/source/tabpages/chardlg.cxx
@@ -2095,21 +2095,26 @@ bool SvxCharEffectsPage::FillItemSet( SfxItemSet* rSet )
//! item-state in the 'rOldSet' will be invalid. In this case
//! changing the underline style will be allowed if a style is
//! selected in the listbox.
- bool bAllowChg = nPos != -1 &&
+ bool bAllowChange = nPos != -1 &&
SfxItemState::DEFAULT > rOldSet.GetItemState( nWhich );
const SvxUnderlineItem& rItem = *static_cast<const SvxUnderlineItem*>(pOld);
- if ( rItem.GetValue() == eUnder &&
- ( LINESTYLE_NONE == eUnder || rItem.GetColor() == m_xUnderlineColorLB->GetSelectEntryColor() ) &&
- ! bAllowChg )
+ if (rItem.GetValue() == eUnder &&
+ (LINESTYLE_NONE == eUnder || (rItem.GetColor() == m_xUnderlineColorLB->GetSelectEntryColor() &&
+ rItem.getComplexColor() == m_xUnderlineColorLB->GetSelectedEntry().getComplexColor())) &&
+ !bAllowChange)
+ {
bChanged = false;
+ }
}
if ( bChanged )
{
SvxUnderlineItem aNewItem( eUnder, nWhich );
- aNewItem.SetColor( m_xUnderlineColorLB->GetSelectEntryColor() );
- rSet->Put( aNewItem );
+ auto aNamedColor = m_xUnderlineColorLB->GetSelectedEntry();
+ aNewItem.SetColor(aNamedColor.m_aColor);
+ aNewItem.setComplexColor(aNamedColor.getComplexColor());
+ rSet->Put(aNewItem);
bModified = true;
}
else if ( SfxItemState::DEFAULT == rOldSet.GetItemState( nWhich, false ) )
@@ -2129,21 +2134,26 @@ bool SvxCharEffectsPage::FillItemSet( SfxItemSet* rSet )
//! item-state in the 'rOldSet' will be invalid. In this case
//! changing the underline style will be allowed if a style is
//! selected in the listbox.
- bool bAllowChg = nPos != -1 &&
+ bool bAllowChange = nPos != -1 &&
SfxItemState::DEFAULT > rOldSet.GetItemState( nWhich );
const SvxOverlineItem& rItem = *static_cast<const SvxOverlineItem*>(pOld);
- if ( rItem.GetValue() == eOver &&
- ( LINESTYLE_NONE == eOver || rItem.GetColor() == m_xOverlineColorLB->GetSelectEntryColor() ) &&
- ! bAllowChg )
+ if (rItem.GetValue() == eOver &&
+ (LINESTYLE_NONE == eOver || (rItem.GetColor() == m_xOverlineColorLB->GetSelectEntryColor() &&
+ rItem.getComplexColor() == m_xOverlineColorLB->GetSelectedEntry().getComplexColor())) &&
+ !bAllowChange)
+ {
bChanged = false;
+ }
}
if ( bChanged )
{
SvxOverlineItem aNewItem( eOver, nWhich );
- aNewItem.SetColor( m_xOverlineColorLB->GetSelectEntryColor() );
- rSet->Put( aNewItem );
+ auto aNamedColor = m_xOverlineColorLB->GetSelectedEntry();
+ aNewItem.SetColor(aNamedColor.m_aColor);
+ aNewItem.setComplexColor(aNamedColor.getComplexColor());
+ rSet->Put(aNewItem);
bModified = true;
}
else if ( SfxItemState::DEFAULT == rOldSet.GetItemState( nWhich, false ) )
diff --git a/cui/source/tabpages/tpcolor.cxx b/cui/source/tabpages/tpcolor.cxx
index 056afe822e7a..8df09ff09823 100644
--- a/cui/source/tabpages/tpcolor.cxx
+++ b/cui/source/tabpages/tpcolor.cxx
@@ -242,24 +242,12 @@ bool SvxColorTabPage::FillItemSet( SfxItemSet* rSet )
sColorName = m_xValSetColorList->GetItemText( m_xValSetColorList->GetSelectedItemId() );
else
sColorName = "#" + m_aCurrentColor.m_aColor.AsRGBHexString().toAsciiUpperCase();
- maPaletteManager.AddRecentColor( m_aCurrentColor.m_aColor, sColorName );
- XFillColorItem aColorItem( sColorName, m_aCurrentColor.m_aColor );
- model::ThemeColorType eType = model::convertToThemeColorType(m_aCurrentColor.m_nThemeIndex);
- if (eType != model::ThemeColorType::Unknown)
- {
- aColorItem.getComplexColor().setSchemeColor(eType);
- }
- aColorItem.getComplexColor().clearTransformations();
- if (m_aCurrentColor.m_nLumMod != 10000)
- {
- aColorItem.getComplexColor().addTransformation({model::TransformationType::LumMod, m_aCurrentColor.m_nLumMod});
- }
- if (m_aCurrentColor.m_nLumOff != 0)
- {
- aColorItem.getComplexColor().addTransformation({model::TransformationType::LumOff, m_aCurrentColor.m_nLumOff});
- }
- rSet->Put( aColorItem );
- rSet->Put( XFillStyleItem( drawing::FillStyle_SOLID ) );
+
+ maPaletteManager.AddRecentColor(m_aCurrentColor.m_aColor, sColorName);
+ XFillColorItem aColorItem(sColorName, m_aCurrentColor.m_aColor);
+ aColorItem.setComplexColor(m_aCurrentColor.getComplexColor());
+ rSet->Put(aColorItem);
+ rSet->Put(XFillStyleItem(drawing::FillStyle_SOLID));
return true;
}
@@ -513,14 +501,10 @@ IMPL_LINK(SvxColorTabPage, SelectValSetHdl_Impl, ValueSet*, pValSet, void)
m_aCtlPreviewNew.SetAttributes( aXFillAttr.GetItemSet() );
m_aCtlPreviewNew.Invalidate();
- bool bThemePaletteSelected = false;
- if (pValSet == m_xValSetColorList.get())
- {
- bThemePaletteSelected = maPaletteManager.IsThemePaletteSelected();
- }
NamedColor aNamedColor;
aNamedColor.m_aColor = aColor;
- if (bThemePaletteSelected)
+
+ if (pValSet == m_xValSetColorList.get() && maPaletteManager.IsThemePaletteSelected())
{
sal_uInt16 nThemeIndex;
sal_uInt16 nEffectIndex;
diff --git a/editeng/source/items/borderline.cxx b/editeng/source/items/borderline.cxx
index 698fd2b964b0..05742eb95131 100644
--- a/editeng/source/items/borderline.cxx
+++ b/editeng/source/items/borderline.cxx
@@ -30,7 +30,11 @@
#include <editeng/eerdll.hxx>
#include <tools/bigint.hxx>
+#include <docmodel/uno/UnoComplexColor.hxx>
+#include <com/sun/star/util/XComplexColor.hpp>
+
using namespace ::com::sun::star::table::BorderLineStyle;
+using namespace css;
// class SvxBorderLine --------------------------------------------------
@@ -57,7 +61,22 @@ namespace {
}
} // Anonymous namespace
-namespace editeng {
+namespace editeng
+{
+
+bool SvxBorderLine::setComplexColorFromAny(css::uno::Any const& rValue)
+{
+ css::uno::Reference<css::util::XComplexColor> xComplexColor;
+ if (!(rValue >>= xComplexColor))
+ return false;
+
+ if (xComplexColor.is())
+ {
+ auto aComplexColor = model::color::getFromXComplexColor(xComplexColor);
+ setComplexColor(aComplexColor);
+ }
+ return true;
+}
Color SvxBorderLine::darkColor( Color aMain )
{
@@ -519,6 +538,7 @@ sal_uInt16 SvxBorderLine::GetDistance() const
bool SvxBorderLine::operator==( const SvxBorderLine& rCmp ) const
{
return (m_aColor == rCmp.m_aColor &&
+ m_aComplexColor == rCmp.m_aComplexColor &&
m_nWidth == rCmp.m_nWidth &&
m_bMirrorWidths == rCmp.m_bMirrorWidths &&
m_aWidthImpl == rCmp.m_aWidthImpl &&
diff --git a/editeng/source/items/frmitems.cxx b/editeng/source/items/frmitems.cxx
index 63cbc018c1ab..77c497079634 100644
--- a/editeng/source/items/frmitems.cxx
+++ b/editeng/source/items/frmitems.cxx
@@ -2458,6 +2458,42 @@ bool SvxBoxItem::QueryValue( uno::Any& rVal, sal_uInt8 nMemberId ) const
nDist = mnRightDistance;
bDistMember = true;
break;
+ case MID_BORDER_BOTTOM_COLOR:
+ {
+ if (mpBottomBorderLine)
+ {
+ auto xComplexColor = model::color::createXComplexColor(mpBottomBorderLine->getComplexColor());
+ rVal <<= xComplexColor;
+ }
+ return true;
+ }
+ case MID_BORDER_LEFT_COLOR:
+ {
+ if (mpLeftBorderLine)
+ {
+ auto xComplexColor = model::color::createXComplexColor(mpLeftBorderLine->getComplexColor());
+ rVal <<= xComplexColor;
+ }
+ return true;
+ }
+ case MID_BORDER_RIGHT_COLOR:
+ {
+ if (mpRightBorderLine)
+ {
+ auto xComplexColor = model::color::createXComplexColor(mpRightBorderLine->getComplexColor());
+ rVal <<= xComplexColor;
+ }
+ return true;
+ }
+ case MID_BORDER_TOP_COLOR:
+ {
+ if (mpTopBorderLine)
+ {
+ auto xComplexColor = model::color::createXComplexColor(mpTopBorderLine->getComplexColor());
+ rVal <<= xComplexColor;
+ }
+ return true;
+ }
case LINE_STYLE:
case LINE_WIDTH:
// it doesn't make sense to return a value for these since it's
@@ -2682,6 +2718,30 @@ bool SvxBoxItem::PutValue( const uno::Any& rVal, sal_uInt8 nMemberId )
}
}
return true;
+ case MID_BORDER_BOTTOM_COLOR:
+ {
+ if (mpBottomBorderLine)
+ return mpBottomBorderLine->setComplexColorFromAny(rVal);
+ return true;
+ }
+ case MID_BORDER_LEFT_COLOR:
+ {
+ if (mpLeftBorderLine)
+ return mpLeftBorderLine->setComplexColorFromAny(rVal);
+ return true;
+ }
+ case MID_BORDER_RIGHT_COLOR:
+ {
+ if (mpRightBorderLine)
+ return mpRightBorderLine->setComplexColorFromAny(rVal);
+ return true;
+ }
+ case MID_BORDER_TOP_COLOR:
+ {
+ if (mpTopBorderLine)
+ return mpTopBorderLine->setComplexColorFromAny(rVal);
+ return true;
+ }
}
if( bDistMember || nMemberId == BORDER_DISTANCE )
@@ -4206,8 +4266,12 @@ bool SvxBrushItem::operator==( const SfxPoolItem& rAttr ) const
assert(SfxPoolItem::operator==(rAttr));
const SvxBrushItem& rCmp = static_cast<const SvxBrushItem&>(rAttr);
- bool bEqual = ( aColor == rCmp.aColor && aFilterColor == rCmp.aFilterColor &&
- eGraphicPos == rCmp.eGraphicPos && nGraphicTransparency == rCmp.nGraphicTransparency);
+ bool bEqual =
+ aColor == rCmp.aColor &&
+ maComplexColor == rCmp.maComplexColor &&
+ aFilterColor == rCmp.aFilterColor &&
+ eGraphicPos == rCmp.eGraphicPos &&
+ nGraphicTransparency == rCmp.nGraphicTransparency;
if ( bEqual )
{
diff --git a/editeng/source/items/textitem.cxx b/editeng/source/items/textitem.cxx
index 9504b89d43ea..2f11ab7bb9b2 100644
--- a/editeng/source/items/textitem.cxx
+++ b/editeng/source/items/textitem.cxx
@@ -939,7 +939,8 @@ void SvxFontHeightItem::dumpAsXml(xmlTextWriterPtr pWriter) const
// class SvxTextLineItem ------------------------------------------------
SvxTextLineItem::SvxTextLineItem( const FontLineStyle eSt, const sal_uInt16 nId )
- : SfxEnumItem( nId, eSt ), mColor( COL_TRANSPARENT )
+ : SfxEnumItem(nId, eSt)
+ , maColor(COL_TRANSPARENT)
{
}
@@ -981,8 +982,8 @@ bool SvxTextLineItem::GetPresentation
) const
{
rText = GetValueTextByPos( GetValue() );
- if( !mColor.IsTransparent() )
- rText += cpDelim + ::GetColorString( mColor );
+ if( !maColor.IsTransparent() )
+ rText += cpDelim + ::GetColorString(maColor);
return true;
}
@@ -1005,14 +1006,19 @@ bool SvxTextLineItem::QueryValue( uno::Any& rVal, sal_uInt8 nMemberId ) const
rVal <<= static_cast<sal_Int16>(GetValue());
break;
case MID_TL_COLOR:
- rVal <<= mColor;
+ rVal <<= maColor;
break;
+ case MID_TL_COMPLEX_COLOR:
+ {
+ auto xComplexColor = model::color::createXComplexColor(maComplexColor);
+ rVal <<= xComplexColor;
+ break;
+ }
case MID_TL_HASCOLOR:
- rVal <<= mColor.GetAlpha() == 255;
+ rVal <<= maColor.GetAlpha() == 255;
break;
}
return true;
-
}
bool SvxTextLineItem::PutValue( const uno::Any& rVal, sal_uInt8 nMemberId )
@@ -1042,14 +1048,24 @@ bool SvxTextLineItem::PutValue( const uno::Any& rVal, sal_uInt8 nMemberId )
{
// Keep transparence, because it contains the information
// whether the font color or the stored color should be used
- sal_uInt8 nAlpha = mColor.GetAlpha();
- mColor = nCol;
- mColor.SetAlpha( nAlpha );
+ sal_uInt8 nAlpha = maColor.GetAlpha();
+ maColor = nCol;
+ maColor.SetAlpha( nAlpha );
}
}
break;
+ case MID_TL_COMPLEX_COLOR:
+ {
+ css::uno::Reference<css::util::XComplexColor> xComplexColor;
+ if (!(rVal >>= xComplexColor))
+ return false;
+
+ if (xComplexColor.is())
+ maComplexColor = model::color::getFromXComplexColor(xComplexColor);
+ }
+ break;
case MID_TL_HASCOLOR:
- mColor.SetAlpha( Any2Bool( rVal ) ? 255 : 0 );
+ maColor.SetAlpha( Any2Bool( rVal ) ? 255 : 0 );
break;
}
return bRet;
@@ -1058,7 +1074,8 @@ bool SvxTextLineItem::PutValue( const uno::Any& rVal, sal_uInt8 nMemberId )
bool SvxTextLineItem::operator==( const SfxPoolItem& rItem ) const
{
return SfxEnumItem::operator==( rItem ) &&
- GetColor() == static_cast<const SvxTextLineItem&>(rItem).GetColor();
+ maColor == static_cast<const SvxTextLineItem&>(rItem).maColor &&
+ maComplexColor == static_cast<const SvxTextLineItem&>(rItem).maComplexColor;
}
// class SvxUnderlineItem ------------------------------------------------
diff --git a/include/editeng/borderline.hxx b/include/editeng/borderline.hxx
index affd513e853e..eb7d2f0f4f8e 100644
--- a/include/editeng/borderline.hxx
+++ b/include/editeng/borderline.hxx
@@ -27,6 +27,7 @@
#include <tools/mapunit.hxx>
#include <editeng/editengdllapi.h>
#include <svtools/borderline.hxx>
+#include <docmodel/color/ComplexColor.hxx>
class IntlWrapper;
@@ -154,6 +155,7 @@ class EDITENG_DLLPUBLIC SvxBorderLine final
Color (*m_pColorGapFn)(Color);
BorderWidthImpl m_aWidthImpl;
Color m_aColor;
+ model::ComplexColor m_aComplexColor;
SvxBorderLineStyle m_nStyle;
bool m_bMirrorWidths;
bool m_bUseLeftTop;
@@ -165,7 +167,21 @@ public:
Color (*pColorOutFn)( Color ) = &darkColor,
Color (*pColorInFn)( Color ) = &darkColor );
- const Color& GetColor() const { return m_aColor; }
+ const Color & GetColor() const { return m_aColor; }
+ void SetColor(const Color & rColor ) { m_aColor = rColor; }
+
+ model::ComplexColor const& getComplexColor() const
+ {
+ return m_aComplexColor;
+ }
+ void setComplexColor(model::ComplexColor const& rComplexColor)
+ {
+ m_aComplexColor = rComplexColor;
+ }
+
+ bool setComplexColorFromAny(css::uno::Any const& rValue);
+
+
Color GetColorOut( bool bLeftOrTop = true ) const;
Color GetColorIn( bool bLeftOrTop = true ) const;
bool HasGapColor() const { return m_pColorGapFn != nullptr; }
@@ -208,7 +224,6 @@ public:
SvxBorderLineStyle GetBorderLineStyle() const { return m_nStyle; }
- void SetColor( const Color &rColor ) { m_aColor = rColor; }
void SetBorderLineStyle( SvxBorderLineStyle nNew );
void ScaleMetrics( tools::Long nMult, tools::Long nDiv );
diff --git a/include/editeng/boxitem.hxx b/include/editeng/boxitem.hxx
index 7b1058f570a9..4e35aad3a56c 100644
--- a/include/editeng/boxitem.hxx
+++ b/include/editeng/boxitem.hxx
@@ -105,6 +105,23 @@ public:
return mpRightBorderLine.get();
}
+ editeng::SvxBorderLine* GetTop()
+ {
+ return mpTopBorderLine.get();
+ }
+ editeng::SvxBorderLine* GetBottom()
+ {
+ return mpBottomBorderLine.get();
+ }
+ editeng::SvxBorderLine* GetLeft()
+ {
+ return mpLeftBorderLine.get();
+ }
+ editeng::SvxBorderLine* GetRight()
+ {
+ return mpRightBorderLine.get();
+ }
+
const editeng::SvxBorderLine* GetLine( SvxBoxItemLine nLine ) const;
//The Pointers are being copied!
diff --git a/include/editeng/memberids.h b/include/editeng/memberids.h
index 5787f70ae1e8..b44a1486ac16 100644
--- a/include/editeng/memberids.h
+++ b/include/editeng/memberids.h
@@ -92,6 +92,7 @@
#define MID_TL_STYLE 1
#define MID_TL_COLOR 2
#define MID_TL_HASCOLOR 3
+#define MID_TL_COMPLEX_COLOR 4
//SvxCrossedOutItem
#define MID_CROSSED_OUT 0
@@ -150,12 +151,16 @@
#define RIGHT_BORDER_DISTANCE 7
#define TOP_BORDER_DISTANCE 8
#define BOTTOM_BORDER_DISTANCE 9
-#define MID_LEFT_BORDER 10
-#define MID_RIGHT_BORDER 11
-#define MID_TOP_BORDER 12
-#define MID_BOTTOM_BORDER 13
-#define LINE_STYLE 14
-#define LINE_WIDTH 15
+#define MID_LEFT_BORDER 10
+#define MID_RIGHT_BORDER 11
+#define MID_TOP_BORDER 12
+#define MID_BOTTOM_BORDER 13
+#define LINE_STYLE 14
+#define LINE_WIDTH 15
+#define MID_BORDER_BOTTOM_COLOR 16
+#define MID_BORDER_LEFT_COLOR 17
+#define MID_BORDER_RIGHT_COLOR 18
+#define MID_BORDER_TOP_COLOR 19
//BrushItem
#define MID_BACK_COLOR 0
diff --git a/include/editeng/udlnitem.hxx b/include/editeng/udlnitem.hxx
index e190348bb6ac..ecbec7a17b8d 100644
--- a/include/editeng/udlnitem.hxx
+++ b/include/editeng/udlnitem.hxx
@@ -16,13 +16,13 @@
* except in compliance with the License. You may obtain a copy of
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
-#ifndef INCLUDED_EDITENG_UDLNITEM_HXX
-#define INCLUDED_EDITENG_UDLNITEM_HXX
+#pragma once
+#include <editeng/editengdllapi.h>
#include <svl/eitem.hxx>
#include <tools/color.hxx>
#include <tools/fontenum.hxx>
-#include <editeng/editengdllapi.h>
+#include <docmodel/color/ComplexColor.hxx>
// class SvxTextLineItem ------------------------------------------------
@@ -30,7 +30,9 @@
class EDITENG_DLLPUBLIC SvxTextLineItem : public SfxEnumItem<FontLineStyle>
{
- Color mColor;
+ Color maColor;
+ model::ComplexColor maComplexColor;
+
public:
SvxTextLineItem( const FontLineStyle eSt,
const sal_uInt16 nId );
@@ -61,8 +63,18 @@ public:
void SetLineStyle( FontLineStyle eNew )
{ SetValue(eNew); }
- const Color& GetColor() const { return mColor; }
- void SetColor( const Color& rCol ) { mColor = rCol; }
+ const Color& GetColor() const { return maColor; }
+ void SetColor(const Color& rColor) { maColor = rColor; }
+
+ const model::ComplexColor& getComplexColor() const
+ {
+ return maComplexColor;
+ }
+
+ void setComplexColor(model::ComplexColor const& rComplexColor)
+ {
+ maComplexColor = rComplexColor;
+ }
};
// class SvxUnderlineItem ------------------------------------------------
@@ -97,6 +109,4 @@ public:
virtual OUString GetValueTextByPos( sal_uInt16 nPos ) const override;
};
-#endif // INCLUDED_EDITENG_UDLNITEM_HXX
-
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/svx/frmsel.hxx b/include/svx/frmsel.hxx
index 498b4857c352..9264a36d8f2a 100644
--- a/include/svx/frmsel.hxx
+++ b/include/svx/frmsel.hxx
@@ -151,7 +151,7 @@ public:
/** Sets the passed line widths to all selected frame borders (in twips). */
void SetStyleToSelection( tools::Long nWidth, SvxBorderLineStyle nStyle );
/** Sets the passed color to all selected frame borders. */
- void SetColorToSelection( const Color& rColor );
+ void SetColorToSelection(const Color& rColor, model::ComplexColor const& rComplexColor);
SvxBorderLineStyle getCurrentStyleLineStyle() const;
diff --git a/svx/source/dialog/frmsel.cxx b/svx/source/dialog/frmsel.cxx
index fed0d59d0d6d..31dce82e0a84 100644
--- a/svx/source/dialog/frmsel.cxx
+++ b/svx/source/dialog/frmsel.cxx
@@ -1025,9 +1025,11 @@ void FrameSelector::SetStyleToSelection( tools::Long nWidth, SvxBorderLineStyle
mxImpl->SetBorderState( **aIt, FrameBorderState::Show );
}
-void FrameSelector::SetColorToSelection( const Color& rColor )
+void FrameSelector::SetColorToSelection(const Color& rColor, model::ComplexColor const& rComplexColor)
{
- mxImpl->maCurrStyle.SetColor( rColor );
+ mxImpl->maCurrStyle.SetColor(rColor);
+ mxImpl->maCurrStyle.setComplexColor(rComplexColor);
+
for( SelFrameBorderIter aIt( mxImpl->maEnabBorders ); aIt.Is(); ++aIt )
mxImpl->SetBorderState( **aIt, FrameBorderState::Show );
}
diff --git a/svx/source/unodraw/unobrushitemhelper.cxx b/svx/source/unodraw/unobrushitemhelper.cxx
index 65d80cf282ca..ff475e8b7077 100644
--- a/svx/source/unodraw/unobrushitemhelper.cxx
+++ b/svx/source/unodraw/unobrushitemhelper.cxx
@@ -124,7 +124,9 @@ void setSvxBrushItemAsFillAttributesToTargetSet(const SvxBrushItem& rBrush, SfxI
const Color aColor(rBrush.GetColor().GetRGBColor());
rToSet.Put(XFillStyleItem(drawing::FillStyle_SOLID));
- rToSet.Put(XFillColorItem(OUString(), aColor));
+ XFillColorItem aFillColorItem(OUString(), aColor);
+ aFillColorItem.setComplexColor(rBrush.getComplexColor());
+ rToSet.Put(aFillColorItem);
// #125189# nTransparency is in range [0..254], convert to [0..100] which is used in
// XFillTransparenceItem (caution with the range which is in an *item-specific* range)
@@ -141,10 +143,11 @@ void setSvxBrushItemAsFillAttributesToTargetSet(const SvxBrushItem& rBrush, SfxI
// is needed when e.g. first transparency is set to 0xff and then a Graphic gets set.
// When not changing the FillStyle, the next getSvxBrushItemFromSourceSet *will* return
// to drawing::FillStyle_SOLID with the rescued color.
- const Color aColor(rBrush.GetColor().GetRGBColor());
+ const Color aColor = rBrush.GetColor().GetRGBColor();
rToSet.Put(XFillStyleItem(drawing::FillStyle_NONE));
- rToSet.Put(XFillColorItem(OUString(), aColor));
+ XFillColorItem aFillColorItem(OUString(), aColor);
+ rToSet.Put(aFillColorItem);
}
}
@@ -169,7 +172,9 @@ static sal_uInt16 getTransparenceForSvxBrushItem(const SfxItemSet& rSourceSet, b
static std::unique_ptr<SvxBrushItem> getSvxBrushItemForSolid(const SfxItemSet& rSourceSet, bool bSearchInParents, sal_uInt16 nBackgroundID)
{
- Color aFillColor(rSourceSet.Get(XATTR_FILLCOLOR, bSearchInParents).GetColorValue());
+ auto const& rFillColorItem = rSourceSet.Get(XATTR_FILLCOLOR, bSearchInParents);
+ model::ComplexColor aFillComplexColor = rFillColorItem.getComplexColor();
+ Color aFillColor = rFillColorItem.GetColorValue();
// get evtl. mixed transparence
const sal_uInt16 nFillTransparence(getTransparenceForSvxBrushItem(rSourceSet, bSearchInParents));
@@ -184,7 +189,7 @@ static std::unique_ptr<SvxBrushItem> getSvxBrushItemForSolid(const SfxItemSet& r
aFillColor.SetAlpha(255 - aTargetTrans);
}
- return std::make_unique<SvxBrushItem>(aFillColor, nBackgroundID);
+ return std::make_unique<SvxBrushItem>(aFillColor, aFillComplexColor, nBackgroundID);
}
std::unique_ptr<SvxBrushItem> getSvxBrushItemFromSourceSet(const SfxItemSet& rSourceSet, sal_uInt16 nBackgroundID, bool bSearchInParents, bool bXMLImportHack)
diff --git a/sw/inc/unoprnms.hxx b/sw/inc/unoprnms.hxx
index dc30938eff21..58e21ddc3523 100644
--- a/sw/inc/unoprnms.hxx
+++ b/sw/inc/unoprnms.hxx
@@ -121,6 +121,8 @@ inline constexpr OUStringLiteral UNO_NAME_CHAR_HEIGHT_COMPLEX = u"CharHeightComp
inline constexpr OUStringLiteral UNO_NAME_CHAR_LOCALE_COMPLEX = u"CharLocaleComplex";
inline constexpr OUStringLiteral UNO_NAME_CHAR_AUTO_KERNING = u"CharAutoKerning";
inline constexpr OUStringLiteral UNO_NAME_CHAR_UNDERLINE_COLOR = u"CharUnderlineColor";
+inline constexpr OUStringLiteral UNO_NAME_CHAR_UNDERLINE_COMPLEX_COLOR
+ = u"CharUnderlineComplexColor";
inline constexpr OUStringLiteral UNO_NAME_CHAR_UNDERLINE_HAS_COLOR = u"CharUnderlineHasColor";
inline constexpr OUStringLiteral UNO_NAME_CHAR_ESCAPEMENT = u"CharEscapement";
inline constexpr OUStringLiteral UNO_NAME_CHAR_CASE_MAP = u"CharCaseMap";
@@ -146,6 +148,8 @@ inline constexpr OUStringLiteral UNO_NAME_TOC_PARAGRAPH_OUTLINE_LEVEL = u"TOCPar
inline constexpr OUStringLiteral UNO_NAME_CHAR_FLASH = u"CharFlash";
inline constexpr OUStringLiteral UNO_NAME_CHAR_KERNING = u"CharKerning";
inline constexpr OUStringLiteral UNO_NAME_CHAR_BACK_COLOR = u"CharBackColor";
+inline constexpr OUStringLiteral UNO_NAME_CHAR_BACKGROUND_COMPLEX_COLOR
+ = u"CharBackgroundComplexColor";
inline constexpr OUStringLiteral UNO_NAME_CHAR_BACK_TRANSPARENT = u"CharBackTransparent";
inline constexpr OUStringLiteral UNO_NAME_CHAR_COMBINE_IS_ON = u"CharCombineIsOn";
inline constexpr OUStringLiteral UNO_NAME_CHAR_COMBINE_PREFIX = u"CharCombinePrefix";
@@ -192,7 +196,10 @@ inline constexpr OUStringLiteral UNO_NAME_PARA_LINE_NUMBER_COUNT = u"ParaLineNum
inline constexpr OUStringLiteral UNO_NAME_PARA_LINE_NUMBER_START_VALUE
= u"ParaLineNumberStartValue";
inline constexpr OUStringLiteral UNO_NAME_BACK_COLOR = u"BackColor";
+inline constexpr OUStringLiteral UNO_NAME_BACKGROUND_COMPLEX_COLOR = u"BackgroundComplexColor";
inline constexpr OUStringLiteral UNO_NAME_PARA_BACK_COLOR = u"ParaBackColor";
+inline constexpr OUStringLiteral UNO_NAME_PARA_BACKGROUND_COMPLEX_COLOR
+ = u"ParaBackgroundComplexColor";
inline constexpr OUStringLiteral UNO_NAME_PARA_WIDOWS = u"ParaWidows";
inline constexpr OUStringLiteral UNO_NAME_PARA_ORPHANS = u"ParaOrphans";
inline constexpr OUStringLiteral UNO_NAME_PARA_BACK_TRANSPARENT = u"ParaBackTransparent";
@@ -377,6 +384,10 @@ inline constexpr OUStringLiteral UNO_NAME_LEFT_BORDER_DISTANCE = u"LeftBorderDis
inline constexpr OUStringLiteral UNO_NAME_RIGHT_BORDER_DISTANCE = u"RightBorderDistance";
inline constexpr OUStringLiteral UNO_NAME_TOP_BORDER_DISTANCE = u"TopBorderDistance";
inline constexpr OUStringLiteral UNO_NAME_BOTTOM_BORDER_DISTANCE = u"BottomBorderDistance";
+inline constexpr OUStringLiteral UNO_NAME_BORDER_BOTTOM_COMPLEX_COLOR = u"BottomBorderComplexColor";
+inline constexpr OUStringLiteral UNO_NAME_BORDER_LEFT_COMPLEX_COLOR = u"LeftBorderComplexColor";
+inline constexpr OUStringLiteral UNO_NAME_BORDER_RIGHT_COMPLEX_COLOR = u"RightBorderComplexColor";
+inline constexpr OUStringLiteral UNO_NAME_BORDER_TOP_COMPLEX_COLOR = u"TopBorderComplexColor";
inline constexpr OUStringLiteral UNO_NAME_TABLE_BORDER = u"TableBorder";
inline constexpr OUStringLiteral UNO_NAME_TABLE_COLUMN_SEPARATORS = u"TableColumnSeparators";
inline constexpr OUStringLiteral UNO_NAME_TABLE_COLUMN_RELATIVE_SUM = u"TableColumnRelativeSum";
@@ -835,6 +846,7 @@ inline constexpr OUStringLiteral UNO_NAME_PARA_LIST_LABEL_STRING = u"ListLabelSt
inline constexpr OUStringLiteral UNO_NAME_PARA_LIST_AUTO_FORMAT = u"ListAutoFormat";
inline constexpr OUStringLiteral UNO_NAME_CHAR_OVERLINE = u"CharOverline";
inline constexpr OUStringLiteral UNO_NAME_CHAR_OVERLINE_COLOR = u"CharOverlineColor";
+inline constexpr OUStringLiteral UNO_NAME_CHAR_OVERLINE_COMPLEX_COLOR = u"CharOverlineComplexColor";
inline constexpr OUStringLiteral UNO_NAME_CHAR_OVERLINE_HAS_COLOR = u"CharOverlineHasColor";
inline constexpr OUStringLiteral UNO_NAME_OUTLINE_CONTENT_VISIBLE = u"OutlineContentVisible";
inline constexpr OUStringLiteral UNO_NAME_OUTLINE_LEVEL = u"OutlineLevel";
@@ -876,6 +888,14 @@ inline constexpr OUStringLiteral UNO_NAME_CHAR_LEFT_BORDER_DISTANCE = u"CharLeft
inline constexpr OUStringLiteral UNO_NAME_CHAR_RIGHT_BORDER_DISTANCE = u"CharRightBorderDistance";
inline constexpr OUStringLiteral UNO_NAME_CHAR_TOP_BORDER_DISTANCE = u"CharTopBorderDistance";
inline constexpr OUStringLiteral UNO_NAME_CHAR_BOTTOM_BORDER_DISTANCE = u"CharBottomBorderDistance";
+inline constexpr OUStringLiteral UNO_NAME_CHAR_BORDER_LEFT_COMPLEX_COLOR
+ = u"CharLeftBorderComplexColor";
+inline constexpr OUStringLiteral UNO_NAME_CHAR_BORDER_RIGHT_COMPLEX_COLOR
+ = u"CharRightBorderComplexColor";
+inline constexpr OUStringLiteral UNO_NAME_CHAR_BORDER_TOP_COMPLEX_COLOR
+ = u"CharTopBorderComplexColor";
+inline constexpr OUStringLiteral UNO_NAME_CHAR_BORDER_BOTTOM_COMPLEX_COLOR
+ = u"CharBottomBorderComplexColor";
inline constexpr OUStringLiteral UNO_NAME_CHAR_SHADOW_FORMAT = u"CharShadowFormat";
inline constexpr OUStringLiteral UNO_NAME_SHADOW_TRANSPARENCE = u"ShadowTransparence";
inline constexpr OUStringLiteral UNO_NAME_DOC_INTEROP_GRAB_BAG = u"InteropGrabBag";
diff --git a/sw/source/core/docnode/ndtbl1.cxx b/sw/source/core/docnode/ndtbl1.cxx
index 7fa9dd53e2d9..49b93463a429 100644
--- a/sw/source/core/docnode/ndtbl1.cxx
+++ b/sw/source/core/docnode/ndtbl1.cxx
@@ -1012,10 +1012,10 @@ void SwDoc::SetTabLineStyle( const SwCursor& rCursor,
SwFrameFormat *pFormat = pCell->GetFormat();
std::unique_ptr<SvxBoxItem> aBox(pFormat->GetBox().Clone());
- SvxBorderLine* pTop = const_cast<SvxBorderLine*>(aBox->GetTop());
- SvxBorderLine* pBot = const_cast<SvxBorderLine*>(aBox->GetBottom());
- SvxBorderLine* pLeft = const_cast<SvxBorderLine*>(aBox->GetLeft());
- SvxBorderLine* pRight = const_cast<SvxBorderLine*>(aBox->GetRight());
+ SvxBorderLine* pTop = aBox->GetTop();
+ SvxBorderLine* pBot = aBox->GetBottom();
+ SvxBorderLine* pLeft = aBox->GetLeft();
+ SvxBorderLine* pRight = aBox->GetRight();
if ( !pBorderLine && bSetLine )
{
diff --git a/sw/source/core/model/ThemeColorChanger.cxx b/sw/source/core/model/ThemeColorChanger.cxx
index 4edf802f3309..fb3175e929cf 100644
--- a/sw/source/core/model/ThemeColorChanger.cxx
+++ b/sw/source/core/model/ThemeColorChanger.cxx
@@ -18,17 +18,22 @@
#include <ndtxt.hxx>
#include <format.hxx>
#include <charatr.hxx>
+#include <paratr.hxx>
+#include <frmatr.hxx>
#include <DocumentContentOperationsManager.hxx>
#include <IDocumentDrawModelAccess.hxx>
#include <IDocumentUndoRedo.hxx>
#include <UndoThemeChange.hxx>
+#include <svx/xflclit.hxx>
+
#include <sal/config.h>
#include <svx/svdpage.hxx>
#include <svx/svditer.hxx>
#include <docmodel/uno/UnoComplexColor.hxx>
#include <docmodel/theme/Theme.hxx>
#include <editeng/unoprnms.hxx>
+#include <editeng/boxitem.hxx>
#include <com/sun/star/text/XTextRange.hpp>
#include <com/sun/star/container/XEnumerationAccess.hpp>
#include <com/sun/star/container/XEnumeration.hpp>
@@ -38,6 +43,25 @@ namespace sw
{
namespace
{
+bool changeBorderLine(editeng::SvxBorderLine* pBorderLine, model::ColorSet const& rColorSet)
+{
+ if (!pBorderLine)
+ return false;
+
+ model::ComplexColor const& rComplexColor = pBorderLine->getComplexColor();
+ if (rComplexColor.meType == model::ColorType::Scheme)
+ {
+ auto eThemeType = rComplexColor.meSchemeType;
+ if (eThemeType != model::ThemeColorType::Unknown)
+ {
+ Color aColor = rColorSet.resolveColor(rComplexColor);
+ pBorderLine->SetColor(aColor);
+ return true;
+ }
+ }
+ return false;
+}
+
/** Handler for ModelTraverser that recalculates and updates the theme colors.
*
* It checks all the SdrObjects and updates fill, line and text theme colors.
@@ -67,6 +91,7 @@ public:
for (size_t i = 0; i < rHints.Count(); ++i)
{
const SwTextAttr* pTextAttr = rHints.Get(i);
+ SwPaM aPam(*pTextNode, pTextAttr->GetStart(), *pTextNode, pTextAttr->GetAnyEnd());
if (pTextAttr->Which() == RES_TXTATR_AUTOFMT)
{
SwFormatAutoFormat const& rAutoFormatPool(pTextAttr->GetAutoFormat());
@@ -81,9 +106,36 @@ public:
auto pNew = pItem->Clone();
pNew->SetValue(aNewColor);
- SwPaM aPam(*pTextNode, pTextAttr->GetStart(), *pTextNode,
- pTextAttr->GetAnyEnd());
- mrDocument.GetDocumentContentOperationsManager().InsertPoolItem(
+ mrDocument.getIDocumentContentOperations().InsertPoolItem(
+ aPam, *pNew, SetAttrMode::APICALL | SetAttrMode::NO_CURSOR_CHANGE);
+ }
+ }
+ if (const SvxUnderlineItem* pItem
+ = pStyleHandle->GetItemIfSet(RES_CHRATR_UNDERLINE))
+ {
+ model::ComplexColor const& rComplexColor = pItem->getComplexColor();
+ auto eSchemeType = rComplexColor.meSchemeType;
+ if (eSchemeType != model::ThemeColorType::Unknown)
+ {
+ Color aNewColor = mrColorSet.resolveColor(rComplexColor);
+ auto pNew = pItem->Clone();
+ pNew->SetColor(aNewColor);
+
+ mrDocument.getIDocumentContentOperations().InsertPoolItem(
+ aPam, *pNew, SetAttrMode::APICALL | SetAttrMode::NO_CURSOR_CHANGE);
+ }
+ }
+ if (const SvxOverlineItem* pItem = pStyleHandle->GetItemIfSet(RES_CHRATR_OVERLINE))
+ {
+ model::ComplexColor const& rComplexColor = pItem->getComplexColor();
+ auto eSchemeType = rComplexColor.meSchemeType;
+ if (eSchemeType != model::ThemeColorType::Unknown)
+ {
+ Color aNewColor = mrColorSet.resolveColor(rComplexColor);
+ auto pNew = pItem->Clone();
+ pNew->SetColor(aNewColor);
+
+ mrDocument.getIDocumentContentOperations().InsertPoolItem(
aPam, *pNew, SetAttrMode::APICALL | SetAttrMode::NO_CURSOR_CHANGE);
}
}
@@ -91,12 +143,102 @@ public:
}
}
+ void updateParagraphAttibutes(SwTextNode* pTextNode)
+ {
+ if (!pTextNode->HasSwAttrSet())
+ return;
+
+ SwAttrSet const& aAttrSet = pTextNode->GetSwAttrSet();
+
+ if (const SvxColorItem* pItem = aAttrSet.GetItemIfSet(RES_CHRATR_COLOR, false))
+ {
+ model::ComplexColor const& rComplexColor = pItem->getComplexColor();
+ if (rComplexColor.meType == model::ColorType::Scheme)
+ {
+ auto eSchemeType = rComplexColor.meSchemeType;
+ if (eSchemeType != model::ThemeColorType::Unknown)
+ {
+ Color aNewColor = mrColorSet.resolveColor(rComplexColor);
+ std::unique_ptr<SvxColorItem> pNewItem(pItem->Clone());
+ pNewItem->setColor(aNewColor);
+ pTextNode->SetAttr(*pNewItem);
+ }
+ }
+ }
+
+ if (const SvxUnderlineItem* pItem = aAttrSet.GetItemIfSet(RES_CHRATR_UNDERLINE, false))
+ {
+ model::ComplexColor const& rComplexColor = pItem->getComplexColor();
+ if (rComplexColor.meType == model::ColorType::Scheme)
+ {
+ auto eSchemeType = rComplexColor.meSchemeType;
+ if (eSchemeType != model::ThemeColorType::Unknown)
+ {
+ Color aNewColor = mrColorSet.resolveColor(rComplexColor);
+ std::unique_ptr<SvxUnderlineItem> pNewItem(pItem->Clone());
+ pNewItem->SetColor(aNewColor);
+ pTextNode->SetAttr(*pNewItem);
+ }
+ }
+ }
+
+ if (const SvxOverlineItem* pItem = aAttrSet.GetItemIfSet(RES_CHRATR_OVERLINE, false))
+ {
+ model::ComplexColor const& rComplexColor = pItem->getComplexColor();
+ if (rComplexColor.meType == model::ColorType::Scheme)
+ {
+ auto eSchemeType = rComplexColor.meSchemeType;
+ if (eSchemeType != model::ThemeColorType::Unknown)
+ {
+ Color aNewColor = mrColorSet.resolveColor(rComplexColor);
+ std::unique_ptr<SvxOverlineItem> pNewItem(pItem->Clone());
+ pNewItem->SetColor(aNewColor);
+ pTextNode->SetAttr(*pNewItem);
+ }
+ }
+ }
+
+ if (const XFillColorItem* pItem = aAttrSet.GetItemIfSet(XATTR_FILLCOLOR, false))
+ {
+ model::ComplexColor const& rComplexColor = pItem->getComplexColor();
+ if (rComplexColor.meType == model::ColorType::Scheme)
+ {
+ auto eSchemeType = rComplexColor.meSchemeType;
+ if (eSchemeType != model::ThemeColorType::Unknown)
+ {
+ Color aNewColor = mrColorSet.resolveColor(rComplexColor);
+ std::unique_ptr<XFillColorItem> pNewItem(pItem->Clone());
+ pNewItem->SetColorValue(aNewColor);
+ pTextNode->SetAttr(*pNewItem);
+ }
+ }
+ }
+
+ if (const SvxBoxItem* pItem = aAttrSet.GetItemIfSet(RES_BOX, false))
+ {
+ std::unique_ptr<SvxBoxItem> pNewItem(pItem->Clone());
+
+ bool bChanged = false;
+
+ bChanged = changeBorderLine(pNewItem->GetBottom(), mrColorSet) || bChanged;
+ bChanged = changeBorderLine(pNewItem->GetTop(), mrColorSet) || bChanged;
+ bChanged = changeBorderLine(pNewItem->GetLeft(), mrColorSet) || bChanged;
+ bChanged = changeBorderLine(pNewItem->GetRight(), mrColorSet) || bChanged;
+
+ if (bChanged)
+ {
+ pTextNode->SetAttr(*pNewItem);
+ }
+ }
+ }
+
void handleNode(SwNode* pNode) override
{
if (!pNode->IsTextNode())
return;
updateHints(pNode->GetTextNode());
+ updateParagraphAttibutes(pNode->GetTextNode());
}
void handleSdrObject(SdrObject* pObject) override
@@ -117,24 +259,81 @@ public:
}
};
-void changeColor(SwFormat* pFormat, model::ColorSet const& rColorSet, SwDoc* pDocument)
+bool changeOverlineColor(SwAttrSet const& rSet, SfxItemSet& rNewSet,
+ model::ColorSet const& rColorSet)
{
- const SwAttrSet& rAttrSet = pFormat->GetAttrSet();
- std::unique_ptr<SfxItemSet> pNewSet = rAttrSet.Clone();
+ SvxOverlineItem aItem(rSet.Get(RES_CHRATR_OVERLINE, false));
+ model::ComplexColor const& rComplexColor = aItem.getComplexColor();
+ if (rComplexColor.meType != model::ColorType::Scheme)
+ return false;
+ auto eThemeType = rComplexColor.meSchemeType;
+ if (eThemeType == model::ThemeColorType::Unknown)
+ return false;
+ Color aColor = rColorSet.resolveColor(rComplexColor);
+ aItem.SetColor(aColor);
+ rNewSet.Put(aItem);
+ return true;
+}
+
+bool changeUnderlineColor(SwAttrSet const& rSet, SfxItemSet& rNewSet,
+ model::ColorSet const& rColorSet)
+{
+ SvxUnderlineItem aItem(rSet.Get(RES_CHRATR_UNDERLINE, false));
+ model::ComplexColor const& rComplexColor = aItem.getComplexColor();
+ if (rComplexColor.meType != model::ColorType::Scheme)
+ return false;
+ auto eThemeType = rComplexColor.meSchemeType;
+ if (eThemeType == model::ThemeColorType::Unknown)
+ return false;
+ Color aColor = rColorSet.resolveColor(rComplexColor);
+ aItem.SetColor(aColor);
+ rNewSet.Put(aItem);
+ return true;
+}
- SvxColorItem aColorItem(rAttrSet.GetColor());
+bool changeColor(SwAttrSet const& rSet, SfxItemSet& rNewSet, model::ColorSet const& rColorSet)
+{
+ SvxColorItem aColorItem(rSet.GetColor(false));
model::ComplexColor const& rComplexColor = aColorItem.getComplexColor();
if (rComplexColor.meType != model::ColorType::Scheme)
- return;
+ return false;
auto eThemeType = rComplexColor.meSchemeType;
- if (eThemeType != model::ThemeColorType::Unknown)
- {
- Color aColor = rColorSet.getColor(eThemeType);
- aColor = rComplexColor.applyTransformations(aColor);
- aColorItem.SetValue(aColor);
- pNewSet->Put(aColorItem);
- pDocument->ChgFormat(*pFormat, *pNewSet);
- }
+ if (eThemeType == model::ThemeColorType::Unknown)
+ return false;
+ Color aColor = rColorSet.resolveColor(rComplexColor);
+ aColorItem.SetValue(aColor);
+ rNewSet.Put(aColorItem);
+ return true;
+}
+
+bool changeBackground(SwAttrSet const& rSet, SfxItemSet& rNewSet, model::ColorSet const& rColorSet)
+{
+ XFillColorItem aFillItem(rSet.Get(XATTR_FILLCOLOR, false));
+ model::ComplexColor const& rComplexColor = aFillItem.getComplexColor();
+ if (rComplexColor.meType != model::ColorType::Scheme)
+ return false;
+ auto eThemeType = rComplexColor.getSchemeType();
+ if (eThemeType == model::ThemeColorType::Unknown)
+ return false;
+ Color aColor = rColorSet.resolveColor(rComplexColor);
+ aFillItem.SetColorValue(aColor);
+ rNewSet.Put(aFillItem);
+ return true;
+}
+
+bool changeBox(SwAttrSet const& rSet, SfxItemSet& rNewSet, model::ColorSet const& rColorSet)
+{
+ SvxBoxItem aBoxItem(rSet.GetBox(false));
+ bool bChange = false;
+
+ bChange = changeBorderLine(aBoxItem.GetBottom(), rColorSet) || bChange;
+ bChange = changeBorderLine(aBoxItem.GetTop(), rColorSet) || bChange;
+ bChange = changeBorderLine(aBoxItem.GetLeft(), rColorSet) || bChange;
+ bChange = changeBorderLine(aBoxItem.GetRight(), rColorSet) || bChange;
+
+ if (bChange)
+ rNewSet.Put(aBoxItem);
+ return bChange;
}
} // end anonymous namespace
@@ -171,16 +370,68 @@ void ThemeColorChanger::apply(model::ColorSet const& rColorSet)
= std::make_unique<sw::UndoThemeChange>(*pDocument, pOldColorSet, pNewColorSet);
pDocument->GetIDocumentUndoRedo().AppendUndo(std::move(pUndoThemeChange));
+ // Page styles
+ for (size_t nIndex = 0; nIndex < pDocument->GetPageDescCnt(); ++nIndex)
+ {
+ auto& rPageDesc = pDocument->GetPageDesc(nIndex);
+ SwFrameFormat& rPageFormat = rPageDesc.GetMaster();
+ const SwAttrSet& rAttrSet = rPageFormat.GetAttrSet();
+ std::unique_ptr<SfxItemSet> pNewSet = rAttrSet.Clone();
+
+ bool bChanged = false;
+ bChanged = bChanged || changeBackground(rAttrSet, *pNewSet, rColorSet);
+ bChanged = bChanged || changeBox(rAttrSet, *pNewSet, rColorSet);
+
+ if (bChanged)
+ {
+ rPageFormat.SetFormatAttr(*pNewSet);
+ pDocument->ChgPageDesc(nIndex, rPageDesc);
+ }
+ }
+
SfxStyleSheetBasePool* pPool = mpDocSh->GetStyleSheetPool();
SwDocStyleSheet* pStyle;
+ // Frame style color change
+ pStyle = static_cast<SwDocStyleSheet*>(pPool->First(SfxStyleFamily::Frame));
+ while (pStyle)
+ {
+ SwFrameFormat* pFrameFormat = pStyle->GetFrameFormat();
+ if (pFrameFormat)
+ {
+ const SwAttrSet& rAttrSet = pFrameFormat->GetAttrSet();
+ std::unique_ptr<SfxItemSet> pNewSet = rAttrSet.Clone();
+
+ bool bChanged = false;
+ bChanged = changeBackground(rAttrSet, *pNewSet, rColorSet) || bChanged;
+ bChanged = changeBox(rAttrSet, *pNewSet, rColorSet) || bChanged;
+
+ if (bChanged)
+ pDocument->ChgFormat(*pFrameFormat, *pNewSet);
+ }
+ pStyle = static_cast<SwDocStyleSheet*>(pPool->Next());
+ }
+
// Paragraph style color change
pStyle = static_cast<SwDocStyleSheet*>(pPool->First(SfxStyleFamily::Para));
while (pStyle)
{
SwTextFormatColl* pTextFormatCollection = pStyle->GetCollection();
if (pTextFormatCollection)
- changeColor(pTextFormatCollection, rColorSet, pDocument);
+ {
+ const SwAttrSet& rAttrSet = pTextFormatCollection->GetAttrSet();
+ std::unique_ptr<SfxItemSet> pNewSet = rAttrSet.Clone();
+
+ bool bChanged = false;
+ bChanged = changeColor(rAttrSet, *pNewSet, rColorSet) || bChanged;
+ bChanged = changeOverlineColor(rAttrSet, *pNewSet, rColorSet) || bChanged;
+ bChanged = changeUnderlineColor(rAttrSet, *pNewSet, rColorSet) || bChanged;
+ bChanged = changeBox(rAttrSet, *pNewSet, rColorSet) || bChanged;
+ bChanged = changeBackground(rAttrSet, *pNewSet, rColorSet) || bChanged;
+
+ if (bChanged)
+ pDocument->ChgFormat(*pTextFormatCollection, *pNewSet);
+ }
pStyle = static_cast<SwDocStyleSheet*>(pPool->Next());
}
@@ -190,7 +441,17 @@ void ThemeColorChanger::apply(model::ColorSet const& rColorSet)
{
SwCharFormat* pCharFormat = pStyle->GetCharFormat();
if (pCharFormat)
- changeColor(pCharFormat, rColorSet, pDocument);
+ {
+ const SwAttrSet& rAttrSet = pCharFormat->GetAttrSet();
+ std::unique_ptr<SfxItemSet> pNewSet = rAttrSet.Clone();
+
+ bool bChanged = false;
+ bChanged = changeColor(rAttrSet, *pNewSet, rColorSet) || bChanged;
+ bChanged = changeOverlineColor(rAttrSet, *pNewSet, rColorSet) || bChanged;
+ bChanged = changeUnderlineColor(rAttrSet, *pNewSet, rColorSet) || bChanged;
+ if (bChanged)
+ pDocument->ChgFormat(*pCharFormat, *pNewSet);
+ }
pStyle = static_cast<SwDocStyleSheet*>(pPool->Next());
}
diff --git a/sw/source/core/unocore/unomap.cxx b/sw/source/core/unocore/unomap.cxx
index ce1321006c1e..ea8bb59f5cdd 100644
--- a/sw/source/core/unocore/unomap.cxx
+++ b/sw/source/core/unocore/unomap.cxx
@@ -162,6 +162,7 @@ o3tl::span<const SfxItemPropertyMapEntry> SwUnoPropertyMapProvider::GetPropertyM
static SfxItemPropertyMapEntry const aCellMap_Impl[] =
{
{ UNO_NAME_BACK_COLOR, RES_BACKGROUND, cppu::UnoType<sal_Int32>::get(), PROPERTY_NONE , MID_BACK_COLOR },
+ { UNO_NAME_BACKGROUND_COMPLEX_COLOR, RES_BACKGROUND, cppu::UnoType<css::util::XComplexColor>::get(), PROPERTY_NONE, MID_BACKGROUND_COMPLEX_COLOR },
{ UNO_NAME_BACK_GRAPHIC_URL, RES_BACKGROUND, cppu::UnoType<OUString>::get(), PROPERTY_NONE ,MID_GRAPHIC_URL },
{ UNO_NAME_BACK_GRAPHIC, RES_BACKGROUND, cppu::UnoType<graphic::XGraphic>::get(), PROPERTY_NONE, MID_GRAPHIC },
{ UNO_NAME_BACK_GRAPHIC_FILTER, RES_BACKGROUND, cppu::UnoType<OUString>::get(), PROPERTY_NONE ,MID_GRAPHIC_FILTER },
@@ -177,6 +178,10 @@ o3tl::span<const SfxItemPropertyMapEntry> SwUnoPropertyMapProvider::GetPropertyM
{ UNO_NAME_RIGHT_BORDER_DISTANCE, RES_BOX, cppu::UnoType<sal_Int32>::get(), 0, RIGHT_BORDER_DISTANCE |CONVERT_TWIPS },
{ UNO_NAME_TOP_BORDER_DISTANCE, RES_BOX, cppu::UnoType<sal_Int32>::get(), 0, TOP_BORDER_DISTANCE |CONVERT_TWIPS },
{ UNO_NAME_BOTTOM_BORDER_DISTANCE, RES_BOX, cppu::UnoType<sal_Int32>::get(), 0, BOTTOM_BORDER_DISTANCE|CONVERT_TWIPS },
+ { UNO_NAME_BORDER_LEFT_COMPLEX_COLOR, RES_BOX, cppu::UnoType<css::util::XComplexColor>::get(), 0, MID_BORDER_LEFT_COLOR },
+ { UNO_NAME_BORDER_RIGHT_COMPLEX_COLOR, RES_BOX, cppu::UnoType<css::util::XComplexColor>::get(), 0, MID_BORDER_RIGHT_COLOR },
+ { UNO_NAME_BORDER_TOP_COMPLEX_COLOR, RES_BOX, cppu::UnoType<css::util::XComplexColor>::get(), 0, MID_BORDER_TOP_COLOR },
+ { UNO_NAME_BORDER_BOTTOM_COMPLEX_COLOR, RES_BOX, cppu::UnoType<css::util::XComplexColor>::get(), 0, MID_BORDER_BOTTOM_COLOR },
{ UNO_NAME_USER_DEFINED_ATTRIBUTES, RES_UNKNOWNATR_CONTAINER, cppu::UnoType<css::container::XNameContainer>::get(), PropertyAttribute::MAYBEVOID, 0 },
{ UNO_NAME_TEXT_SECTION, FN_UNO_TEXT_SECTION, cppu::UnoType<css::text::XTextSection>::get(), PropertyAttribute::MAYBEVOID|PropertyAttribute::READONLY ,0 },
{ UNO_NAME_IS_PROTECTED, RES_PROTECT, cppu::UnoType<bool>::get(), 0, MID_PROTECT_CONTENT},
@@ -357,7 +362,8 @@ o3tl::span<const SfxItemPropertyMapEntry> SwUnoPropertyMapProvider::GetPropertyM
{ UNO_NAME_BACK_GRAPHIC, RES_BACKGROUND, cppu::UnoType<graphic::XGraphic>::get(), PROPERTY_NONE, MID_GRAPHIC },
{ UNO_NAME_BACK_GRAPHIC_FILTER, RES_BACKGROUND, cppu::UnoType<OUString>::get(), PROPERTY_NONE ,MID_GRAPHIC_FILTER },
{ UNO_NAME_BACK_GRAPHIC_LOCATION, RES_BACKGROUND, cppu::UnoType<css::style::GraphicLocation>::get(), PROPERTY_NONE ,MID_GRAPHIC_POSITION},
- { UNO_NAME_BACK_COLOR, RES_BACKGROUND, cppu::UnoType<sal_Int32>::get(), PROPERTY_NONE ,MID_BACK_COLOR },
+ { UNO_NAME_BACK_COLOR, RES_BACKGROUND, cppu::UnoType<sal_Int32>::get(), PROPERTY_NONE ,MID_BACK_COLOR },
+ { UNO_NAME_BACKGROUND_COMPLEX_COLOR, RES_BACKGROUND, cppu::UnoType<css::util::XComplexColor>::get(), PROPERTY_NONE, MID_BACKGROUND_COMPLEX_COLOR },
{ UNO_NAME_BACK_TRANSPARENT, RES_BACKGROUND, cppu::UnoType<bool>::get(), PROPERTY_NONE ,MID_GRAPHIC_TRANSPARENT },
{ UNO_NAME_PARA_STYLEHEADING, WID_PARA_HEAD, cppu::UnoType<OUString>::get() , 0, 0},
{ UNO_NAME_PARA_STYLESEPARATOR, WID_PARA_SEP, cppu::UnoType<OUString>::get() , 0, 0},
@@ -397,6 +403,7 @@ o3tl::span<const SfxItemPropertyMapEntry> SwUnoPropertyMapProvider::GetPropertyM
{ UNO_NAME_BACK_GRAPHIC_FILTER, RES_BACKGROUND, cppu::UnoType<OUString>::get(), PROPERTY_NONE ,MID_GRAPHIC_FILTER },
{ UNO_NAME_BACK_GRAPHIC_LOCATION, RES_BACKGROUND, cppu::UnoType<css::style::GraphicLocation>::get(), PROPERTY_NONE ,MID_GRAPHIC_POSITION},
{ UNO_NAME_BACK_COLOR, RES_BACKGROUND, cppu::UnoType<sal_Int32>::get(), PROPERTY_NONE ,MID_BACK_COLOR },
+ { UNO_NAME_BACKGROUND_COMPLEX_COLOR, RES_BACKGROUND, cppu::UnoType<css::util::XComplexColor>::get(), PROPERTY_NONE ,MID_BACKGROUND_COMPLEX_COLOR },
{ UNO_NAME_BACK_TRANSPARENT, RES_BACKGROUND, cppu::UnoType<bool>::get(), PROPERTY_NONE ,MID_GRAPHIC_TRANSPARENT },
{ UNO_NAME_PARA_STYLEHEADING, WID_PARA_HEAD, cppu::UnoType<OUString>::get() , 0, 0},
{ UNO_NAME_PARA_STYLELEVEL1, WID_PARA_LEV1, cppu::UnoType<OUString>::get() , 0, 0},
@@ -442,6 +449,7 @@ o3tl::span<const SfxItemPropertyMapEntry> SwUnoPropertyMapProvider::GetPropertyM
{ UNO_NAME_BACK_GRAPHIC_FILTER, RES_BACKGROUND, cppu::UnoType<OUString>::get(), PROPERTY_NONE ,MID_GRAPHIC_FILTER },
{ UNO_NAME_BACK_GRAPHIC_LOCATION, RES_BACKGROUND, cppu::UnoType<css::style::GraphicLocation>::get(), PROPERTY_NONE ,MID_GRAPHIC_POSITION},
{ UNO_NAME_BACK_COLOR, RES_BACKGROUND, cppu::UnoType<sal_Int32>::get(), PROPERTY_NONE ,MID_BACK_COLOR },
+ { UNO_NAME_BACKGROUND_COMPLEX_COLOR, RES_BACKGROUND, cppu::UnoType<css::util::XComplexColor>::get(), PROPERTY_NONE ,MID_BACKGROUND_COMPLEX_COLOR },
{ UNO_NAME_BACK_TRANSPARENT, RES_BACKGROUND, cppu::UnoType<bool>::get(), PROPERTY_NONE ,MID_GRAPHIC_TRANSPARENT },
{ UNO_NAME_PARA_STYLEHEADING, WID_PARA_HEAD, cppu::UnoType<OUString>::get() , 0, 0},
{ UNO_NAME_PARA_STYLELEVEL1, WID_PARA_LEV1, cppu::UnoType<OUString>::get() , 0, 0},
@@ -479,6 +487,7 @@ o3tl::span<const SfxItemPropertyMapEntry> SwUnoPropertyMapProvider::GetPropertyM
{ UNO_NAME_BACK_GRAPHIC_FILTER, RES_BACKGROUND, cppu::UnoType<OUString>::get(), PROPERTY_NONE ,MID_GRAPHIC_FILTER },
{ UNO_NAME_BACK_GRAPHIC_LOCATION, RES_BACKGROUND, cppu::UnoType<css::style::GraphicLocation>::get(), PROPERTY_NONE ,MID_GRAPHIC_POSITION},
{ UNO_NAME_BACK_COLOR, RES_BACKGROUND, cppu::UnoType<sal_Int32>::get(), PROPERTY_NONE ,MID_BACK_COLOR },
+ { UNO_NAME_BACKGROUND_COMPLEX_COLOR, RES_BACKGROUND, cppu::UnoType<css::util::XComplexColor>::get(), PROPERTY_NONE, MID_BACKGROUND_COMPLEX_COLOR },
{ UNO_NAME_BACK_TRANSPARENT, RES_BACKGROUND, cppu::UnoType<bool>::get(), PROPERTY_NONE ,MID_GRAPHIC_TRANSPARENT },
{ UNO_NAME_PARA_STYLEHEADING, WID_PARA_HEAD, cppu::UnoType<OUString>::get() , 0, 0},
{ UNO_NAME_PARA_STYLELEVEL1, WID_PARA_LEV1, cppu::UnoType<OUString>::get() , 0, 0},
@@ -508,6 +517,7 @@ o3tl::span<const SfxItemPropertyMapEntry> SwUnoPropertyMapProvider::GetPropertyM
{ UNO_NAME_BACK_GRAPHIC_FILTER, RES_BACKGROUND, cppu::UnoType<OUString>::get(), PROPERTY_NONE ,MID_GRAPHIC_FILTER },
{ UNO_NAME_BACK_GRAPHIC_LOCATION, RES_BACKGROUND, cppu::UnoType<css::style::GraphicLocation>::get(), PROPERTY_NONE ,MID_GRAPHIC_POSITION},
{ UNO_NAME_BACK_COLOR, RES_BACKGROUND, cppu::UnoType<sal_Int32>::get(), PROPERTY_NONE ,MID_BACK_COLOR },
+ { UNO_NAME_BACKGROUND_COMPLEX_COLOR, RES_BACKGROUND, cppu::UnoType<css::util::XComplexColor>::get(), PROPERTY_NONE, MID_BACKGROUND_COMPLEX_COLOR },
{ UNO_NAME_BACK_TRANSPARENT, RES_BACKGROUND, cppu::UnoType<bool>::get(), PROPERTY_NONE ,MID_GRAPHIC_TRANSPARENT },
{ UNO_NAME_PARA_STYLEHEADING, WID_PARA_HEAD, cppu::UnoType<OUString>::get() , 0, 0},
{ UNO_NAME_PARA_STYLELEVEL1, WID_PARA_LEV1, cppu::UnoType<OUString>::get() , 0, 0},
@@ -535,6 +545,7 @@ o3tl::span<const SfxItemPropertyMapEntry> SwUnoPropertyMapProvider::GetPropertyM
{ UNO_NAME_BACK_GRAPHIC_FILTER, RES_BACKGROUND, cppu::UnoType<OUString>::get(), PROPERTY_NONE ,MID_GRAPHIC_FILTER },
{ UNO_NAME_BACK_GRAPHIC_LOCATION, RES_BACKGROUND, cppu::UnoType<css::style::GraphicLocation>::get(), PROPERTY_NONE ,MID_GRAPHIC_POSITION},
{ UNO_NAME_BACK_COLOR, RES_BACKGROUND, cppu::UnoType<sal_Int32>::get(), PROPERTY_NONE ,MID_BACK_COLOR },
+ { UNO_NAME_BACKGROUND_COMPLEX_COLOR, RES_BACKGROUND, cppu::UnoType<css::util::XComplexColor>::get(), PROPERTY_NONE, MID_BACKGROUND_COMPLEX_COLOR },
{ UNO_NAME_BACK_TRANSPARENT, RES_BACKGROUND, cppu::UnoType<bool>::get(), PROPERTY_NONE ,MID_GRAPHIC_TRANSPARENT },
{ UNO_NAME_PARA_STYLEHEADING, WID_PARA_HEAD, cppu::UnoType<OUString>::get() , 0, 0},
{ UNO_NAME_PARA_STYLELEVEL1, WID_PARA_LEV1, cppu::UnoType<OUString>::get() , 0, 0},
@@ -548,6 +559,7 @@ o3tl::span<const SfxItemPropertyMapEntry> SwUnoPropertyMapProvider::GetPropertyM
static SfxItemPropertyMapEntry const aTableRowPropertyMap_Impl[] =
{
{ UNO_NAME_BACK_COLOR, RES_BACKGROUND, cppu::UnoType<sal_Int32>::get(), PROPERTY_NONE ,MID_BACK_COLOR },
+ { UNO_NAME_BACKGROUND_COMPLEX_COLOR, RES_BACKGROUND, cppu::UnoType<css::util::XComplexColor>::get(), PROPERTY_NONE, MID_BACKGROUND_COMPLEX_COLOR },
{ UNO_NAME_BACK_GRAPHIC_URL, RES_BACKGROUND, cppu::UnoType<OUString>::get(), PROPERTY_NONE ,MID_GRAPHIC_URL },
{ UNO_NAME_BACK_GRAPHIC, RES_BACKGROUND, cppu::UnoType<graphic::XGraphic>::get(), PROPERTY_NONE, MID_GRAPHIC },
{ UNO_NAME_BACK_GRAPHIC_FILTER, RES_BACKGROUND, cppu::UnoType<OUString>::get(), PROPERTY_NONE ,MID_GRAPHIC_FILTER },
@@ -603,6 +615,7 @@ o3tl::span<const SfxItemPropertyMapEntry> SwUnoPropertyMapProvider::GetPropertyM
{ UNO_NAME_BACK_GRAPHIC_FILTER, RES_BACKGROUND, cppu::UnoType<OUString>::get(), PROPERTY_NONE ,MID_GRAPHIC_FILTER },
{ UNO_NAME_BACK_GRAPHIC_LOCATION, RES_BACKGROUND, cppu::UnoType<css::style::GraphicLocation>::get(), PROPERTY_NONE ,MID_GRAPHIC_POSITION},
{ UNO_NAME_BACK_COLOR, RES_BACKGROUND, cppu::UnoType<sal_Int32>::get(), PROPERTY_NONE ,MID_BACK_COLOR },
+ { UNO_NAME_BACKGROUND_COMPLEX_COLOR, RES_BACKGROUND, cppu::UnoType<css::util::XComplexColor>::get(), PROPERTY_NONE, MID_BACKGROUND_COMPLEX_COLOR },
{ UNO_NAME_BACK_TRANSPARENT, RES_BACKGROUND, cppu::UnoType<bool>::get(), PROPERTY_NONE ,MID_GRAPHIC_TRANSPARENT },
{ UNO_NAME_PARA_STYLEHEADING, WID_PARA_HEAD, cppu::UnoType<OUString>::get() , 0, 0},
{ UNO_NAME_PARA_STYLELEVEL1, WID_PARA_LEV1, cppu::UnoType<OUString>::get() , 0, 0},
@@ -1447,7 +1460,8 @@ o3tl::span<const SfxItemPropertyMapEntry> SwUnoPropertyMapProvider::GetPropertyM
static SfxItemPropertyMapEntry const aCellStyleMap[] =
{
// SvxBrushItem
- { UNO_NAME_BACK_COLOR, RES_BACKGROUND, cppu::UnoType<sal_Int32>::get(), PROPERTY_NONE, 0 },
+ { UNO_NAME_BACK_COLOR, RES_BACKGROUND, cppu::UnoType<sal_Int32>::get(), PROPERTY_NONE, MID_BACK_COLOR },
+ { UNO_NAME_BACKGROUND_COMPLEX_COLOR, RES_BACKGROUND, cppu::UnoType<css::util::XComplexColor>::get(), PROPERTY_NONE, MID_BACKGROUND_COMPLEX_COLOR },
// SvxBoxItem
{ UNO_NAME_LEFT_BORDER, RES_BOX, cppu::UnoType<css::table::BorderLine>::get(), PROPERTY_NONE, LEFT_BORDER|CONVERT_TWIPS },
{ UNO_NAME_RIGHT_BORDER, RES_BOX, cppu::UnoType<css::table::BorderLine>::get(), PROPERTY_NONE, RIGHT_BORDER|CONVERT_TWIPS },
@@ -1458,6 +1472,10 @@ o3tl::span<const SfxItemPropertyMapEntry> SwUnoPropertyMapProvider::GetPropertyM
{ UNO_NAME_RIGHT_BORDER_DISTANCE, RES_BOX, cppu::UnoType<sal_Int32>::get(), PROPERTY_NONE, RIGHT_BORDER_DISTANCE |CONVERT_TWIPS },
{ UNO_NAME_TOP_BORDER_DISTANCE, RES_BOX, cppu::UnoType<sal_Int32>::get(), PROPERTY_NONE, TOP_BORDER_DISTANCE |CONVERT_TWIPS },
{ UNO_NAME_BOTTOM_BORDER_DISTANCE, RES_BOX, cppu::UnoType<sal_Int32>::get(), PROPERTY_NONE, BOTTOM_BORDER_DISTANCE|CONVERT_TWIPS },
+ { UNO_NAME_BORDER_LEFT_COMPLEX_COLOR, RES_BOX, cppu::UnoType<css::util::XComplexColor>::get(), PROPERTY_NONE, MID_BORDER_LEFT_COLOR },
+ { UNO_NAME_BORDER_RIGHT_COMPLEX_COLOR, RES_BOX, cppu::UnoType<css::util::XComplexColor>::get(), PROPERTY_NONE, MID_BORDER_RIGHT_COLOR },
+ { UNO_NAME_BORDER_TOP_COMPLEX_COLOR, RES_BOX, cppu::UnoType<css::util::XComplexColor>::get(), PROPERTY_NONE, MID_BORDER_TOP_COLOR },
+ { UNO_NAME_BORDER_BOTTOM_COMPLEX_COLOR, RES_BOX, cppu::UnoType<css::util::XComplexColor>::get(), PROPERTY_NONE, MID_BORDER_BOTTOM_COLOR },
// SwFormatVertOrient
{ UNO_NAME_VERT_ORIENT, RES_VERT_ORIENT, cppu::UnoType<sal_Int16>::get(), PROPERTY_NONE, MID_VERTORIENT_ORIENT },
// SvxFrameDirectionItem
@@ -1480,6 +1498,7 @@ o3tl::span<const SfxItemPropertyMapEntry> SwUnoPropertyMapProvider::GetPropertyM
// SvxUnderlineItem
{ UNO_NAME_CHAR_UNDERLINE, RES_CHRATR_UNDERLINE, cppu::UnoType<sal_Int16>::get(), PROPERTY_NONE, MID_TL_STYLE },
{ UNO_NAME_CHAR_UNDERLINE_COLOR, RES_CHRATR_UNDERLINE,cppu::UnoType<sal_Int32>::get(), PROPERTY_NONE, MID_TL_COLOR },
+ { UNO_NAME_CHAR_UNDERLINE_COMPLEX_COLOR, RES_CHRATR_UNDERLINE, cppu::UnoType<css::util::XComplexColor>::get(), PROPERTY_NONE, MID_TL_COMPLEX_COLOR },
{ UNO_NAME_CHAR_UNDERLINE_HAS_COLOR, RES_CHRATR_UNDERLINE, cppu::UnoType<bool>::get(), PROPERTY_NONE, MID_TL_HASCOLOR },
// standard font
// SvxFontHeightItem
diff --git a/sw/source/core/unocore/unomap1.cxx b/sw/source/core/unocore/unomap1.cxx
index 36ecc6cd7b57..31ad710c2fd5 100644
--- a/sw/source/core/unocore/unomap1.cxx
+++ b/sw/source/core/unocore/unomap1.cxx
@@ -177,6 +177,7 @@ o3tl::span<const SfxItemPropertyMapEntry> SwUnoPropertyMapProvider::GetCharStyle
{ UNO_NAME_CHAR_AUTO_KERNING, RES_CHRATR_AUTOKERN , cppu::UnoType<bool>::get() , PROPERTY_NONE, 0},
{ UNO_NAME_CHAR_BACK_TRANSPARENT, RES_CHRATR_BACKGROUND, cppu::UnoType<bool>::get(), PROPERTY_NONE ,MID_GRAPHIC_TRANSPARENT },
{ UNO_NAME_CHAR_BACK_COLOR, RES_CHRATR_BACKGROUND, cppu::UnoType<sal_Int32>::get(), PROPERTY_NONE ,MID_BACK_COLOR },
+ { UNO_NAME_CHAR_BACKGROUND_COMPLEX_COLOR, RES_CHRATR_BACKGROUND, cppu::UnoType<css::util::XComplexColor>::get(), PROPERTY_NONE ,MID_BACKGROUND_COMPLEX_COLOR },
{ UNO_NAME_CHAR_HIGHLIGHT, RES_CHRATR_HIGHLIGHT, cppu::UnoType<sal_Int32>::get(), PROPERTY_NONE, MID_BACK_COLOR },
{ UNO_NAME_CHAR_CASE_MAP, RES_CHRATR_CASEMAP, cppu::UnoType<sal_Int16>::get(), PROPERTY_NONE, 0},
{ UNO_NAME_CHAR_COLOR, RES_CHRATR_COLOR, cppu::UnoType<sal_Int32>::get(), PROPERTY_NONE, 0 },
@@ -195,9 +196,11 @@ o3tl::span<const SfxItemPropertyMapEntry> SwUnoPropertyMapProvider::GetCharStyle
CTL_FONT_PROPERTIES
{ UNO_NAME_CHAR_UNDERLINE, RES_CHRATR_UNDERLINE , cppu::UnoType<sal_Int16>::get(), PROPERTY_NONE, MID_TL_STYLE},
{ UNO_NAME_CHAR_UNDERLINE_COLOR, RES_CHRATR_UNDERLINE , cppu::UnoType<sal_Int32>::get(), PROPERTY_NONE, MID_TL_COLOR},
+ { UNO_NAME_CHAR_UNDERLINE_COMPLEX_COLOR, RES_CHRATR_UNDERLINE , cppu::UnoType<css::util::XComplexColor>::get(), PROPERTY_NONE, MID_TL_COMPLEX_COLOR },
{ UNO_NAME_CHAR_UNDERLINE_HAS_COLOR, RES_CHRATR_UNDERLINE , cppu::UnoType<bool>::get(), PROPERTY_NONE, MID_TL_HASCOLOR},
{ UNO_NAME_CHAR_OVERLINE, RES_CHRATR_OVERLINE , cppu::UnoType<sal_Int16>::get(), PROPERTY_NONE, MID_TL_STYLE},
{ UNO_NAME_CHAR_OVERLINE_COLOR, RES_CHRATR_OVERLINE , cppu::UnoType<sal_Int32>::get(), PROPERTY_NONE, MID_TL_COLOR},
+ { UNO_NAME_CHAR_OVERLINE_COMPLEX_COLOR, RES_CHRATR_OVERLINE, cppu::UnoType<css::util::XComplexColor>::get(), PROPERTY_NONE, MID_TL_COMPLEX_COLOR },
{ UNO_NAME_CHAR_OVERLINE_HAS_COLOR, RES_CHRATR_OVERLINE , cppu::UnoType<bool>::get(), PROPERTY_NONE, MID_TL_HASCOLOR},
{ UNO_NAME_CHAR_KERNING, RES_CHRATR_KERNING , cppu::UnoType<sal_Int16>::get() , PROPERTY_NONE, CONVERT_TWIPS},
{ UNO_NAME_CHAR_NO_HYPHENATION, RES_CHRATR_NOHYPHEN , cppu::UnoType<bool>::get() , PROPERTY_NONE, 0},
@@ -227,6 +230,10 @@ o3tl::span<const SfxItemPropertyMapEntry> SwUnoPropertyMapProvider::GetCharStyle
{ UNO_NAME_CHAR_RIGHT_BORDER_DISTANCE, RES_CHRATR_BOX, cppu::UnoType<sal_Int32>::get(), PROPERTY_NONE, RIGHT_BORDER_DISTANCE |CONVERT_TWIPS },
{ UNO_NAME_CHAR_TOP_BORDER_DISTANCE, RES_CHRATR_BOX, cppu::UnoType<sal_Int32>::get(), PROPERTY_NONE, TOP_BORDER_DISTANCE |CONVERT_TWIPS },
{ UNO_NAME_CHAR_BOTTOM_BORDER_DISTANCE, RES_CHRATR_BOX, cppu::UnoType<sal_Int32>::get(), PROPERTY_NONE, BOTTOM_BORDER_DISTANCE|CONVERT_TWIPS },
+ { UNO_NAME_CHAR_BORDER_LEFT_COMPLEX_COLOR, RES_CHRATR_BOX, cppu::UnoType<css::util::XComplexColor>::get(), PROPERTY_NONE, MID_BORDER_LEFT_COLOR },
+ { UNO_NAME_CHAR_BORDER_RIGHT_COMPLEX_COLOR, RES_CHRATR_BOX, cppu::UnoType<css::util::XComplexColor>::get(), PROPERTY_NONE, MID_BORDER_RIGHT_COLOR },
+ { UNO_NAME_CHAR_BORDER_TOP_COMPLEX_COLOR, RES_CHRATR_BOX, cppu::UnoType<css::util::XComplexColor>::get(), PROPERTY_NONE, MID_BORDER_TOP_COLOR },
+ { UNO_NAME_CHAR_BORDER_BOTTOM_COMPLEX_COLOR, RES_CHRATR_BOX, cppu::UnoType<css::util::XComplexColor>::get(), PROPERTY_NONE, MID_BORDER_BOTTOM_COLOR },
{ UNO_NAME_CHAR_SHADOW_FORMAT, RES_CHRATR_SHADOW, cppu::UnoType<css::table::ShadowFormat>::get(), PROPERTY_NONE, CONVERT_TWIPS},
{ UNO_NAME_LINK_STYLE, FN_UNO_LINK_STYLE, cppu::UnoType<OUString>::get(), PROPERTY_NONE, 0},
};
@@ -242,6 +249,7 @@ o3tl::span<const SfxItemPropertyMapEntry> SwUnoPropertyMapProvider::GetAutoChar
{ UNO_NAME_CHAR_AUTO_KERNING, RES_CHRATR_AUTOKERN , cppu::UnoType<bool>::get() , PROPERTY_NONE, 0},
{ UNO_NAME_CHAR_BACK_TRANSPARENT, RES_CHRATR_BACKGROUND, cppu::UnoType<bool>::get(), PROPERTY_NONE ,MID_GRAPHIC_TRANSPARENT },
{ UNO_NAME_CHAR_BACK_COLOR, RES_CHRATR_BACKGROUND, cppu::UnoType<sal_Int32>::get(), PROPERTY_NONE ,MID_BACK_COLOR },
+ { UNO_NAME_CHAR_BACKGROUND_COMPLEX_COLOR, RES_CHRATR_BACKGROUND, cppu::UnoType<css::util::XComplexColor>::get(), PROPERTY_NONE, MID_BACKGROUND_COMPLEX_COLOR },
{ UNO_NAME_CHAR_HIGHLIGHT, RES_CHRATR_HIGHLIGHT, cppu::UnoType<sal_Int32>::get(), PROPERTY_NONE, MID_BACK_COLOR },
{ UNO_NAME_CHAR_CASE_MAP, RES_CHRATR_CASEMAP, cppu::UnoType<sal_Int16>::get(), PROPERTY_NONE, 0},
{ UNO_NAME_CHAR_COLOR, RES_CHRATR_COLOR, cppu::UnoType<sal_Int32>::get(), PROPERTY_NONE, 0},
@@ -260,9 +268,11 @@ o3tl::span<const SfxItemPropertyMapEntry> SwUnoPropertyMapProvider::GetAutoChar
CTL_FONT_PROPERTIES
{ UNO_NAME_CHAR_UNDERLINE, RES_CHRATR_UNDERLINE , cppu::UnoType<sal_Int16>::get(), PROPERTY_NONE, MID_TL_STYLE},
{ UNO_NAME_CHAR_UNDERLINE_COLOR, RES_CHRATR_UNDERLINE , cppu::UnoType<sal_Int32>::get(), PROPERTY_NONE, MID_TL_COLOR},
+ { UNO_NAME_CHAR_UNDERLINE_COMPLEX_COLOR, RES_CHRATR_UNDERLINE, cppu::UnoType<css::util::XComplexColor>::get(), PROPERTY_NONE, MID_TL_COMPLEX_COLOR },
{ UNO_NAME_CHAR_UNDERLINE_HAS_COLOR, RES_CHRATR_UNDERLINE , cppu::UnoType<bool>::get(), PROPERTY_NONE, MID_TL_HASCOLOR},
{ UNO_NAME_CHAR_OVERLINE, RES_CHRATR_OVERLINE , cppu::UnoType<sal_Int16>::get(), PROPERTY_NONE, MID_TL_STYLE},
{ UNO_NAME_CHAR_OVERLINE_COLOR, RES_CHRATR_OVERLINE , cppu::UnoType<sal_Int32>::get(), PROPERTY_NONE, MID_TL_COLOR},
+ { UNO_NAME_CHAR_OVERLINE_COMPLEX_COLOR, RES_CHRATR_OVERLINE, cppu::UnoType<css::util::XComplexColor>::get(), PROPERTY_NONE, MID_TL_COMPLEX_COLOR },
{ UNO_NAME_CHAR_OVERLINE_HAS_COLOR, RES_CHRATR_OVERLINE , cppu::UnoType<bool>::get(), PROPERTY_NONE, MID_TL_HASCOLOR},
{ UNO_NAME_CHAR_KERNING, RES_CHRATR_KERNING , cppu::UnoType<sal_Int16>::get() , PROPERTY_NONE, CONVERT_TWIPS},
{ UNO_NAME_CHAR_NO_HYPHENATION, RES_CHRATR_NOHYPHEN , cppu::UnoType<bool>::get() , PROPERTY_NONE, 0},
@@ -339,6 +349,7 @@ o3tl::span<const SfxItemPropertyMapEntry> SwUnoPropertyMapProvider::GetFrameStyl
{ UNO_NAME_ANCHOR_PAGE_NO, RES_ANCHOR, cppu::UnoType<sal_Int16>::get(), PROPERTY_NONE, MID_ANCHOR_PAGENUM },
{ UNO_NAME_ANCHOR_TYPE, RES_ANCHOR, cppu::UnoType<css::text::TextContentAnchorType>::get(), PROPERTY_NONE, MID_ANCHOR_ANCHORTYPE},
{ UNO_NAME_BACK_COLOR, RES_BACKGROUND, cppu::UnoType<sal_Int32>::get(), PROPERTY_NONE ,MID_BACK_COLOR },
+ { UNO_NAME_BACKGROUND_COMPLEX_COLOR, RES_BACKGROUND, cppu::UnoType<css::util::XComplexColor>::get(), PROPERTY_NONE ,MID_BACKGROUND_COMPLEX_COLOR },
{ UNO_NAME_BACK_COLOR_R_G_B, RES_BACKGROUND, cppu::UnoType<sal_Int32>::get(), PROPERTY_NONE ,MID_BACK_COLOR_R_G_B},
{ UNO_NAME_BACK_COLOR_TRANSPARENCY, RES_BACKGROUND, cppu::UnoType<sal_Int8>::get(), PROPERTY_NONE ,MID_BACK_COLOR_TRANSPARENCY},
{ UNO_NAME_FRAME_INTEROP_GRAB_BAG, RES_FRMATR_GRABBAG, cppu::UnoType< cppu::UnoSequenceType<css::beans::PropertyValue> >::get(), PROPERTY_NONE, 0},
@@ -403,6 +414,10 @@ o3tl::span<const SfxItemPropertyMapEntry> SwUnoPropertyMapProvider::GetFrameStyl
{ UNO_NAME_RIGHT_BORDER_DISTANCE, RES_BOX, cppu::UnoType<sal_Int32>::get(), 0, RIGHT_BORDER_DISTANCE |CONVERT_TWIPS },
{ UNO_NAME_TOP_BORDER_DISTANCE, RES_BOX, cppu::UnoType<sal_Int32>::get(), 0, TOP_BORDER_DISTANCE |CONVERT_TWIPS },
{ UNO_NAME_BOTTOM_BORDER_DISTANCE, RES_BOX, cppu::UnoType<sal_Int32>::get(), 0, BOTTOM_BORDER_DISTANCE|CONVERT_TWIPS },
+ { UNO_NAME_BORDER_LEFT_COMPLEX_COLOR, RES_BOX, cppu::UnoType<css::util::XComplexColor>::get(), 0, MID_BORDER_LEFT_COLOR },
+ { UNO_NAME_BORDER_RIGHT_COMPLEX_COLOR, RES_BOX, cppu::UnoType<css::util::XComplexColor>::get(), 0, MID_BORDER_RIGHT_COLOR },
+ { UNO_NAME_BORDER_TOP_COMPLEX_COLOR, RES_BOX, cppu::UnoType<css::util::XComplexColor>::get(), 0, MID_BORDER_TOP_COLOR },
+ { UNO_NAME_BORDER_BOTTOM_COMPLEX_COLOR, RES_BOX, cppu::UnoType<css::util::XComplexColor>::get(), 0, MID_BORDER_BOTTOM_COLOR },
{ UNO_NAME_USER_DEFINED_ATTRIBUTES, RES_UNKNOWNATR_CONTAINER, cppu::UnoType<css::container::XNameContainer>::get(), PropertyAttribute::MAYBEVOID, 0 },
{ UNO_NAME_IS_PHYSICAL, FN_UNO_IS_PHYSICAL, cppu::UnoType<bool>::get(), PropertyAttribute::READONLY, 0},
{ UNO_NAME_IS_AUTO_UPDATE, FN_UNO_IS_AUTO_UPDATE, cppu::UnoType<bool>::get(), PROPERTY_NONE, 0},
@@ -431,7 +446,8 @@ o3tl::span<const SfxItemPropertyMapEntry> SwUnoPropertyMapProvider::GetPageStyle
{
static SfxItemPropertyMapEntry const aPageStyleMap [] =
{
- { UNO_NAME_BACK_COLOR, RES_BACKGROUND, cppu::UnoType<sal_Int32>::get(), PROPERTY_NONE ,MID_BACK_COLOR },
+ { UNO_NAME_BACK_COLOR, RES_BACKGROUND, cppu::UnoType<sal_Int32>::get(), PROPERTY_NONE, MID_BACK_COLOR },
+ { UNO_NAME_BACKGROUND_COMPLEX_COLOR, RES_BACKGROUND, cppu::UnoType<css::util::XComplexColor>::get(), PROPERTY_NONE, MID_BACKGROUND_COMPLEX_COLOR },
{ UNO_NAME_BACK_GRAPHIC_URL, RES_BACKGROUND, cppu::UnoType<OUString>::get(), PROPERTY_NONE ,MID_GRAPHIC_URL },
{ UNO_NAME_BACK_GRAPHIC, RES_BACKGROUND, cppu::UnoType<graphic::XGraphic>::get(), PROPERTY_NONE, MID_GRAPHIC },
{ UNO_NAME_BACK_GRAPHIC_FILTER, RES_BACKGROUND, cppu::UnoType<OUString>::get(), PROPERTY_NONE ,MID_GRAPHIC_FILTER },
@@ -449,6 +465,10 @@ o3tl::span<const SfxItemPropertyMapEntry> SwUnoPropertyMapProvider::GetPageStyle
{ UNO_NAME_RIGHT_BORDER_DISTANCE, RES_BOX, cppu::UnoType<sal_Int32>::get(), 0, RIGHT_BORDER_DISTANCE |CONVERT_TWIPS },
{ UNO_NAME_TOP_BORDER_DISTANCE, RES_BOX, cppu::UnoType<sal_Int32>::get(), 0, TOP_BORDER_DISTANCE |CONVERT_TWIPS },
{ UNO_NAME_BOTTOM_BORDER_DISTANCE, RES_BOX, cppu::UnoType<sal_Int32>::get(), 0, BOTTOM_BORDER_DISTANCE|CONVERT_TWIPS },
+ { UNO_NAME_BORDER_LEFT_COMPLEX_COLOR, RES_BOX, cppu::UnoType<css::util::XComplexColor>::get(), 0, MID_BORDER_LEFT_COLOR },
+ { UNO_NAME_BORDER_RIGHT_COMPLEX_COLOR, RES_BOX, cppu::UnoType<css::util::XComplexColor>::get(), 0, MID_BORDER_RIGHT_COLOR },
+ { UNO_NAME_BORDER_TOP_COMPLEX_COLOR, RES_BOX, cppu::UnoType<css::util::XComplexColor>::get(), 0, MID_BORDER_TOP_COLOR },
+ { UNO_NAME_BORDER_BOTTOM_COMPLEX_COLOR, RES_BOX, cppu::UnoType<css::util::XComplexColor>::get(), 0, MID_BORDER_BOTTOM_COLOR },
{ UNO_NAME_SHADOW_FORMAT, RES_SHADOW, cppu::UnoType<css::table::ShadowFormat>::get(), PROPERTY_NONE, CONVERT_TWIPS},
{ UNO_NAME_SHADOW_TRANSPARENCE, RES_SHADOW, cppu::UnoType<sal_Int16>::get(), PROPERTY_NONE, MID_SHADOW_TRANSPARENCE},
@@ -631,7 +651,8 @@ o3tl::span<const SfxItemPropertyMapEntry> SwUnoPropertyMapProvider::GetTableProp
{
static SfxItemPropertyMapEntry const aTablePropertyMap_Impl[] =
{
- { UNO_NAME_BACK_COLOR, RES_BACKGROUND, cppu::UnoType<sal_Int32>::get(), PROPERTY_NONE,MID_BACK_COLOR },
+ { UNO_NAME_BACK_COLOR, RES_BACKGROUND, cppu::UnoType<sal_Int32>::get(), PROPERTY_NONE,MID_BACK_COLOR },
+ { UNO_NAME_BACKGROUND_COMPLEX_COLOR, RES_BACKGROUND, cppu::UnoType<css::util::XComplexColor>::get(), PROPERTY_NONE, MID_BACKGROUND_COMPLEX_COLOR},
{ UNO_NAME_BREAK_TYPE, RES_BREAK, cppu::UnoType<css::style::BreakType>::get(), PROPERTY_NONE, 0},
{ UNO_NAME_BACK_GRAPHIC_URL, RES_BACKGROUND, cppu::UnoType<OUString>::get(), PROPERTY_NONE ,MID_GRAPHIC_URL },
{ UNO_NAME_BACK_GRAPHIC, RES_BACKGROUND, cppu::UnoType<graphic::XGraphic>::get(), PROPERTY_NONE, MID_GRAPHIC },
@@ -684,7 +705,8 @@ o3tl::span<const SfxItemPropertyMapEntry> SwUnoPropertyMapProvider::GetRangeProp
{
COMMON_CRSR_PARA_PROPERTIES_WITHOUT_FN_01
TABSTOPS_MAP_ENTRY
- { UNO_NAME_BACK_COLOR, FN_UNO_TABLE_CELL_BACKGROUND, cppu::UnoType<sal_Int32>::get(), PropertyAttribute::MAYBEVOID, MID_BACK_COLOR },
+ { UNO_NAME_BACK_COLOR, FN_UNO_TABLE_CELL_BACKGROUND, cppu::UnoType<sal_Int32>::get(), PropertyAttribute::MAYBEVOID, MID_BACK_COLOR },
+ { UNO_NAME_BACKGROUND_COMPLEX_COLOR, FN_UNO_TABLE_CELL_BACKGROUND, cppu::UnoType<sal_Int32>::get(), PropertyAttribute::MAYBEVOID, MID_BACKGROUND_COMPLEX_COLOR },
{ UNO_NAME_BACK_GRAPHIC_URL, RES_BACKGROUND, cppu::UnoType<OUString>::get(), PropertyAttribute::MAYBEVOID ,MID_GRAPHIC_URL },
{ UNO_NAME_BACK_GRAPHIC, RES_BACKGROUND, cppu::UnoType<graphic::XGraphic>::get(), PROPERTY_NONE, MID_GRAPHIC },
{ UNO_NAME_BACK_GRAPHIC_FILTER, RES_BACKGROUND, cppu::UnoType<OUString>::get(), PropertyAttribute::MAYBEVOID ,MID_GRAPHIC_FILTER },
@@ -719,6 +741,7 @@ o3tl::span<const SfxItemPropertyMapEntry> SwUnoPropertyMapProvider::GetSectionPr
{ UNO_NAME_BACK_GRAPHIC_FILTER, RES_BACKGROUND, cppu::UnoType<OUString>::get(), PROPERTY_NONE ,MID_GRAPHIC_FILTER },
{ UNO_NAME_BACK_GRAPHIC_LOCATION, RES_BACKGROUND, cppu::UnoType<css::style::GraphicLocation>::get(), PROPERTY_NONE ,MID_GRAPHIC_POSITION},
{ UNO_NAME_BACK_COLOR, RES_BACKGROUND, cppu::UnoType<sal_Int32>::get(), PROPERTY_NONE ,MID_BACK_COLOR },
+ { UNO_NAME_BACKGROUND_COMPLEX_COLOR, RES_BACKGROUND, cppu::UnoType<css::util::XComplexColor>::get(), PROPERTY_NONE, MID_BACKGROUND_COMPLEX_COLOR },
{ UNO_NAME_BACK_TRANSPARENT, RES_BACKGROUND, cppu::UnoType<bool>::get(), PROPERTY_NONE ,MID_GRAPHIC_TRANSPARENT },
{ UNO_LINK_DISPLAY_NAME, FN_PARAM_LINK_DISPLAY_NAME, cppu::UnoType<OUString>::get(), PropertyAttribute::READONLY, 0xbf},
{ UNO_NAME_USER_DEFINED_ATTRIBUTES, RES_UNKNOWNATR_CONTAINER, cppu::UnoType<css::container::XNameContainer>::get(), PropertyAttribute::MAYBEVOID, 0 },
@@ -916,6 +939,7 @@ o3tl::span<const SfxItemPropertyMapEntry> SwUnoPropertyMapProvider::GetTextTable
// attributes from PROPERTY_MAP_TABLE_CELL:
{ UNO_NAME_BACK_COLOR, FN_UNO_TABLE_CELL_BACKGROUND, cppu::UnoType<sal_Int32>::get(), PROPERTY_NONE , MID_BACK_COLOR },
+ { UNO_NAME_BACKGROUND_COMPLEX_COLOR, FN_UNO_TABLE_CELL_BACKGROUND, cppu::UnoType<css::util::XComplexColor>::get(), PROPERTY_NONE , MID_BACKGROUND_COMPLEX_COLOR },
{ UNO_NAME_BACK_GRAPHIC_URL, RES_BACKGROUND, cppu::UnoType<OUString>::get(), PROPERTY_NONE ,MID_GRAPHIC_URL },
{ UNO_NAME_BACK_GRAPHIC, RES_BACKGROUND, cppu::UnoType<graphic::XGraphic>::get(), PROPERTY_NONE, MID_GRAPHIC },
{ UNO_NAME_BACK_GRAPHIC_FILTER, RES_BACKGROUND, cppu::UnoType<OUString>::get(), PROPERTY_NONE ,MID_GRAPHIC_FILTER },
diff --git a/sw/source/core/unocore/unomapproperties.hxx b/sw/source/core/unocore/unomapproperties.hxx
index 1b7a4bfc280a..18aa885a3967 100644
--- a/sw/source/core/unocore/unomapproperties.hxx
+++ b/sw/source/core/unocore/unomapproperties.hxx
@@ -122,8 +122,10 @@
{ UNO_NAME_PARA_HYPHENATION_ZONE, RES_PARATR_HYPHENZONE, cppu::UnoType<sal_Int16>::get(), PropertyAttribute::MAYBEVOID, MID_HYPHEN_ZONE}, \
{ UNO_NAME_CHAR_AUTO_KERNING, RES_CHRATR_AUTOKERN, cppu::UnoType<bool>::get(), PropertyAttribute::MAYBEVOID, 0 }, \
{ UNO_NAME_CHAR_BACK_COLOR, RES_CHRATR_BACKGROUND, cppu::UnoType<sal_Int32>::get(), PropertyAttribute::MAYBEVOID, MID_BACK_COLOR }, \
+ { UNO_NAME_CHAR_BACKGROUND_COMPLEX_COLOR, RES_CHRATR_BACKGROUND, cppu::UnoType<css::util::XComplexColor>::get(), PROPERTY_NONE, MID_BACKGROUND_COMPLEX_COLOR },\
{ UNO_NAME_CHAR_HIGHLIGHT, RES_CHRATR_HIGHLIGHT, cppu::UnoType<sal_Int32>::get(), PropertyAttribute::MAYBEVOID, MID_BACK_COLOR }, \
{ UNO_NAME_PARA_BACK_COLOR, RES_BACKGROUND, cppu::UnoType<sal_Int32>::get(), PropertyAttribute::MAYBEVOID, MID_BACK_COLOR }, \
+ { UNO_NAME_PARA_BACKGROUND_COMPLEX_COLOR, RES_BACKGROUND, cppu::UnoType<css::util::XComplexColor>::get(), PROPERTY_NONE , MID_BACKGROUND_COMPLEX_COLOR },\
{ UNO_NAME_CHAR_CASE_MAP, RES_CHRATR_CASEMAP, cppu::UnoType<sal_Int16>::get(), PropertyAttribute::MAYBEVOID, 0 }, \
{ UNO_NAME_CHAR_COLOR, RES_CHRATR_COLOR, cppu::UnoType<sal_Int32>::get(), PropertyAttribute::MAYBEVOID, 0 }, \
{ UNO_NAME_CHAR_COLOR_THEME, RES_CHRATR_COLOR, cppu::UnoType<sal_Int16>::get(), PropertyAttribute::MAYBEVOID, MID_COLOR_THEME_INDEX }, \
@@ -139,9 +141,11 @@
{ UNO_NAME_CHAR_HIDDEN, RES_CHRATR_HIDDEN, cppu::UnoType<bool>::get(), PropertyAttribute::MAYBEVOID, 0 }, \
{ UNO_NAME_CHAR_UNDERLINE, RES_CHRATR_UNDERLINE, cppu::UnoType<sal_Int16>::get(), PropertyAttribute::MAYBEVOID, MID_TL_STYLE }, \
{ UNO_NAME_CHAR_UNDERLINE_COLOR, RES_CHRATR_UNDERLINE, cppu::UnoType<sal_Int32>::get(), PropertyAttribute::MAYBEVOID, MID_TL_COLOR }, \
+ { UNO_NAME_CHAR_UNDERLINE_COMPLEX_COLOR, RES_CHRATR_UNDERLINE, cppu::UnoType<css::util::XComplexColor>::get(), PropertyAttribute::MAYBEVOID, MID_TL_COMPLEX_COLOR }, \
{ UNO_NAME_CHAR_UNDERLINE_HAS_COLOR, RES_CHRATR_UNDERLINE, cppu::UnoType<bool>::get(), PropertyAttribute::MAYBEVOID, MID_TL_HASCOLOR }, \
{ UNO_NAME_CHAR_OVERLINE, RES_CHRATR_OVERLINE, cppu::UnoType<sal_Int16>::get(), PropertyAttribute::MAYBEVOID, MID_TL_STYLE }, \
{ UNO_NAME_CHAR_OVERLINE_COLOR, RES_CHRATR_OVERLINE, cppu::UnoType<sal_Int32>::get(), PropertyAttribute::MAYBEVOID, MID_TL_COLOR }, \
+ { UNO_NAME_CHAR_OVERLINE_COMPLEX_COLOR, RES_CHRATR_OVERLINE, cppu::UnoType<css::util::XComplexColor>::get(), PropertyAttribute::MAYBEVOID, MID_TL_COMPLEX_COLOR }, \
{ UNO_NAME_CHAR_OVERLINE_HAS_COLOR, RES_CHRATR_OVERLINE, cppu::UnoType<bool>::get(), PropertyAttribute::MAYBEVOID, MID_TL_HASCOLOR }, \
{ UNO_NAME_PARA_GRAPHIC_URL, RES_BACKGROUND, cppu::UnoType<OUString>::get(), PropertyAttribute::MAYBEVOID, MID_GRAPHIC_URL }, \
{ UNO_NAME_PARA_GRAPHIC, RES_BACKGROUND, cppu::UnoType<css::graphic::XGraphic>::get(), PropertyAttribute::MAYBEVOID, MID_GRAPHIC }, \
@@ -199,6 +203,10 @@
{ UNO_NAME_RIGHT_BORDER_DISTANCE, RES_BOX, cppu::UnoType<sal_Int32>::get(), PropertyAttribute::MAYBEVOID, RIGHT_BORDER_DISTANCE | CONVERT_TWIPS }, \
{ UNO_NAME_TOP_BORDER_DISTANCE, RES_BOX, cppu::UnoType<sal_Int32>::get(), PropertyAttribute::MAYBEVOID, TOP_BORDER_DISTANCE | CONVERT_TWIPS }, \
{ UNO_NAME_BOTTOM_BORDER_DISTANCE, RES_BOX, cppu::UnoType<sal_Int32>::get(), PropertyAttribute::MAYBEVOID, BOTTOM_BORDER_DISTANCE | CONVERT_TWIPS }, \
+ { UNO_NAME_BORDER_LEFT_COMPLEX_COLOR, RES_BOX, cppu::UnoType<css::util::XComplexColor>::get(), PropertyAttribute::MAYBEVOID, MID_BORDER_LEFT_COLOR }, \
+ { UNO_NAME_BORDER_RIGHT_COMPLEX_COLOR, RES_BOX, cppu::UnoType<css::util::XComplexColor>::get(), PropertyAttribute::MAYBEVOID, MID_BORDER_RIGHT_COLOR }, \
+ { UNO_NAME_BORDER_TOP_COMPLEX_COLOR, RES_BOX, cppu::UnoType<css::util::XComplexColor>::get(), PropertyAttribute::MAYBEVOID, MID_BORDER_TOP_COLOR }, \
+ { UNO_NAME_BORDER_BOTTOM_COMPLEX_COLOR, RES_BOX, cppu::UnoType<css::util::XComplexColor>::get(), PropertyAttribute::MAYBEVOID, MID_BORDER_BOTTOM_COLOR }, \
{ UNO_NAME_PARA_USER_DEFINED_ATTRIBUTES, RES_UNKNOWNATR_CONTAINER, cppu::UnoType<css::container::XNameContainer>::get(), PropertyAttribute::MAYBEVOID, 0 }, \
{ UNO_NAME_TEXT_USER_DEFINED_ATTRIBUTES, RES_TXTATR_UNKNOWN_CONTAINER, cppu::UnoType<css::container::XNameContainer>::get(), PropertyAttribute::MAYBEVOID, 0 }, \
{ UNO_NAME_PARA_SHADOW_FORMAT, RES_SHADOW, cppu::UnoType<css::table::ShadowFormat>::get(), PROPERTY_NONE, CONVERT_TWIPS }, \
@@ -274,6 +282,7 @@
{ UNO_NAME_ANCHOR_FRAME, RES_ANCHOR, cppu::UnoType<css::text::XTextFrame>::get(), PropertyAttribute::MAYBEVOID, MID_ANCHOR_ANCHORFRAME}, \
ANCHOR_TYPES_PROPERTY\
{ UNO_NAME_BACK_COLOR, RES_BACKGROUND, cppu::UnoType<sal_Int32>::get(), PROPERTY_NONE ,MID_BACK_COLOR }, \
+ { UNO_NAME_BACKGROUND_COMPLEX_COLOR, RES_BACKGROUND, cppu::UnoType<css::util::XComplexColor>::get(), PROPERTY_NONE ,MID_BACKGROUND_COMPLEX_COLOR }, \
{ UNO_NAME_BACK_COLOR_R_G_B, RES_BACKGROUND, cppu::UnoType<sal_Int32>::get(), PROPERTY_NONE ,MID_BACK_COLOR_R_G_B}, \
{ UNO_NAME_BACK_COLOR_TRANSPARENCY, RES_BACKGROUND, cppu::UnoType<sal_Int8>::get(), PROPERTY_NONE ,MID_BACK_COLOR_TRANSPARENCY}, \
{ UNO_NAME_FRAME_INTEROP_GRAB_BAG, RES_FRMATR_GRABBAG, cppu::UnoType< cppu::UnoSequenceType<css::beans::PropertyValue> >::get(), PROPERTY_NONE, 0}, \
@@ -328,6 +337,10 @@
{ UNO_NAME_RIGHT_BORDER_DISTANCE, RES_BOX, cppu::UnoType<sal_Int32>::get(), 0, RIGHT_BORDER_DISTANCE |CONVERT_TWIPS }, \
{ UNO_NAME_TOP_BORDER_DISTANCE, RES_BOX, cppu::UnoType<sal_Int32>::get(), 0, TOP_BORDER_DISTANCE |CONVERT_TWIPS }, \
{ UNO_NAME_BOTTOM_BORDER_DISTANCE, RES_BOX, cppu::UnoType<sal_Int32>::get(), 0, BOTTOM_BORDER_DISTANCE|CONVERT_TWIPS }, \
+ { UNO_NAME_BORDER_LEFT_COMPLEX_COLOR, RES_BOX, cppu::UnoType<css::util::XComplexColor>::get(), 0, MID_BORDER_LEFT_COLOR }, \
+ { UNO_NAME_BORDER_RIGHT_COMPLEX_COLOR, RES_BOX, cppu::UnoType<css::util::XComplexColor>::get(), 0, MID_BORDER_RIGHT_COLOR }, \
+ { UNO_NAME_BORDER_TOP_COMPLEX_COLOR, RES_BOX, cppu::UnoType<css::util::XComplexColor>::get(), 0, MID_BORDER_TOP_COLOR }, \
+ { UNO_NAME_BORDER_BOTTOM_COMPLEX_COLOR, RES_BOX, cppu::UnoType<css::util::XComplexColor>::get(), 0, MID_BORDER_BOTTOM_COLOR }, \
{ UNO_LINK_DISPLAY_NAME, FN_PARAM_LINK_DISPLAY_NAME, cppu::UnoType<OUString>::get(), PropertyAttribute::READONLY, 0xbf}, \
{ UNO_NAME_USER_DEFINED_ATTRIBUTES, RES_UNKNOWNATR_CONTAINER, cppu::UnoType<css::container::XNameContainer>::get(), PropertyAttribute::MAYBEVOID, 0 },\
{ UNO_NAME_Z_ORDER, FN_UNO_Z_ORDER, cppu::UnoType<sal_Int32>::get(), PROPERTY_NONE, 0}, \
@@ -364,8 +377,10 @@
{ UNO_NAME_CHAR_AUTO_KERNING, RES_CHRATR_AUTOKERN , cppu::UnoType<bool>::get() , PROPERTY_NONE, 0},\
{ UNO_NAME_CHAR_BACK_TRANSPARENT, RES_CHRATR_BACKGROUND, cppu::UnoType<bool>::get(), PROPERTY_NONE ,MID_GRAPHIC_TRANSPARENT },\
{ UNO_NAME_CHAR_BACK_COLOR, RES_CHRATR_BACKGROUND, cppu::UnoType<sal_Int32>::get(), PROPERTY_NONE ,MID_BACK_COLOR },\
+ { UNO_NAME_CHAR_BACKGROUND_COMPLEX_COLOR, RES_CHRATR_BACKGROUND, cppu::UnoType<css::util::XComplexColor>::get(), PROPERTY_NONE, MID_BACKGROUND_COMPLEX_COLOR },\
{ UNO_NAME_CHAR_HIGHLIGHT, RES_CHRATR_HIGHLIGHT, cppu::UnoType<sal_Int32>::get(), PROPERTY_NONE ,MID_BACK_COLOR },\
{ UNO_NAME_PARA_BACK_COLOR, RES_BACKGROUND, cppu::UnoType<sal_Int32>::get(), PROPERTY_NONE ,MID_BACK_COLOR },\
+ { UNO_NAME_PARA_BACKGROUND_COMPLEX_COLOR, RES_BACKGROUND, cppu::UnoType<css::util::XComplexColor>::get(), PROPERTY_NONE , MID_BACKGROUND_COMPLEX_COLOR },\
{ UNO_NAME_PARA_BACK_TRANSPARENT, RES_BACKGROUND, cppu::UnoType<bool>::get(), PROPERTY_NONE ,MID_GRAPHIC_TRANSPARENT },\
{ UNO_NAME_PARA_GRAPHIC_URL, RES_BACKGROUND, cppu::UnoType<OUString>::get(), PROPERTY_NONE ,MID_GRAPHIC_URL },\
{ UNO_NAME_PARA_GRAPHIC, RES_BACKGROUND, cppu::UnoType<css::graphic::XGraphic>::get(), PROPERTY_NONE ,MID_GRAPHIC },\
@@ -389,9 +404,11 @@
{ UNO_NAME_CHAR_UNDERLINE, RES_CHRATR_UNDERLINE , cppu::UnoType<sal_Int16>::get(), PROPERTY_NONE, MID_TL_STYLE},\
{ UNO_NAME_CHAR_UNDERLINE_COLOR, RES_CHRATR_UNDERLINE , cppu::UnoType<sal_Int32>::get(), PROPERTY_NONE, MID_TL_COLOR},\
{ UNO_NAME_CHAR_UNDERLINE_HAS_COLOR, RES_CHRATR_UNDERLINE , cppu::UnoType<bool>::get(), PROPERTY_NONE, MID_TL_HASCOLOR},\
+ { UNO_NAME_CHAR_UNDERLINE_COMPLEX_COLOR, RES_CHRATR_UNDERLINE, cppu::UnoType<css::util::XComplexColor>::get(), PropertyAttribute::MAYBEVOID, MID_TL_COMPLEX_COLOR }, \
{ UNO_NAME_CHAR_OVERLINE, RES_CHRATR_OVERLINE , cppu::UnoType<sal_Int16>::get(), PROPERTY_NONE, MID_TL_STYLE},\
{ UNO_NAME_CHAR_OVERLINE_COLOR, RES_CHRATR_OVERLINE , cppu::UnoType<sal_Int32>::get(), PROPERTY_NONE, MID_TL_COLOR},\
{ UNO_NAME_CHAR_OVERLINE_HAS_COLOR, RES_CHRATR_OVERLINE , cppu::UnoType<bool>::get(), PROPERTY_NONE, MID_TL_HASCOLOR},\
+ { UNO_NAME_CHAR_OVERLINE_COMPLEX_COLOR, RES_CHRATR_OVERLINE, cppu::UnoType<css::util::XComplexColor>::get(), PropertyAttribute::MAYBEVOID, MID_TL_COMPLEX_COLOR }, \
{ UNO_NAME_PARA_LEFT_MARGIN, RES_MARGIN_TEXTLEFT, cppu::UnoType<sal_Int32>::get(), PROPERTY_NONE, MID_TXT_LMARGIN|CONVERT_TWIPS},\
{ UNO_NAME_PARA_RIGHT_MARGIN, RES_MARGIN_RIGHT, cppu::UnoType<sal_Int32>::get(), PROPERTY_NONE, MID_R_MARGIN|CONVERT_TWIPS},\
{ UNO_NAME_PARA_LEFT_MARGIN_RELATIVE, RES_MARGIN_TEXTLEFT, cppu::UnoType<sal_Int16>::get(), PROPERTY_NONE, MID_L_REL_MARGIN},\
@@ -444,6 +461,10 @@
{ UNO_NAME_RIGHT_BORDER_DISTANCE, RES_BOX, cppu::UnoType<sal_Int32>::get(), 0, RIGHT_BORDER_DISTANCE |CONVERT_TWIPS },\
{ UNO_NAME_TOP_BORDER_DISTANCE, RES_BOX, cppu::UnoType<sal_Int32>::get(), 0, TOP_BORDER_DISTANCE |CONVERT_TWIPS },\
{ UNO_NAME_BOTTOM_BORDER_DISTANCE, RES_BOX, cppu::UnoType<sal_Int32>::get(), 0, BOTTOM_BORDER_DISTANCE|CONVERT_TWIPS },\
+ { UNO_NAME_BORDER_LEFT_COMPLEX_COLOR, RES_BOX, cppu::UnoType<css::util::XComplexColor>::get(), 0, MID_BORDER_LEFT_COLOR }, \
+ { UNO_NAME_BORDER_RIGHT_COMPLEX_COLOR, RES_BOX, cppu::UnoType<css::util::XComplexColor>::get(), 0, MID_BORDER_RIGHT_COLOR }, \
+ { UNO_NAME_BORDER_TOP_COMPLEX_COLOR, RES_BOX, cppu::UnoType<css::util::XComplexColor>::get(), 0, MID_BORDER_TOP_COLOR }, \
+ { UNO_NAME_BORDER_BOTTOM_COMPLEX_COLOR, RES_BOX, cppu::UnoType<css::util::XComplexColor>::get(), 0, MID_BORDER_BOTTOM_COLOR }, \
{ UNO_NAME_PARA_IS_HYPHENATION, RES_PARATR_HYPHENZONE, cppu::UnoType<bool>::get(), PropertyAttribute::MAYBEVOID, MID_IS_HYPHEN },\
{ UNO_NAME_PARA_HYPHENATION_NO_CAPS, RES_PARATR_HYPHENZONE, cppu::UnoType<bool>::get(), PropertyAttribute::MAYBEVOID, MID_HYPHEN_NO_CAPS },\
{ UNO_NAME_PARA_HYPHENATION_NO_LAST_WORD, RES_PARATR_HYPHENZONE, cppu::UnoType<bool>::get(), PropertyAttribute::MAYBEVOID, MID_HYPHEN_NO_LAST_WORD },\
@@ -484,7 +505,8 @@
{ UNO_NAME_PARA_INTEROP_GRAB_BAG, RES_PARATR_GRABBAG, cppu::UnoType< cppu::UnoSequenceType<css::beans::PropertyValue> >::get(), PROPERTY_NONE, 0},
#define COMMON_ACCESSIBILITY_TEXT_ATTRIBUTE \
- { UNO_NAME_CHAR_BACK_COLOR, RES_CHRATR_BACKGROUND, cppu::UnoType<sal_Int32>::get(), PROPERTY_NONE ,MID_BACK_COLOR }, \
+ { UNO_NAME_CHAR_BACK_COLOR, RES_CHRATR_BACKGROUND, cppu::UnoType<sal_Int32>::get(), PROPERTY_NONE ,MID_BACK_COLOR }, \
+ { UNO_NAME_CHAR_BACKGROUND_COMPLEX_COLOR, RES_CHRATR_BACKGROUND, cppu::UnoType<css::util::XComplexColor>::get(), PROPERTY_NONE, MID_BACKGROUND_COMPLEX_COLOR },\
{ UNO_NAME_CHAR_COLOR, RES_CHRATR_COLOR, cppu::UnoType<sal_Int32>::get(), PROPERTY_NONE, 0}, \
{ UNO_NAME_CHAR_COLOR_THEME, RES_CHRATR_COLOR, cppu::UnoType<sal_Int16>::get(), PROPERTY_NONE, MID_COLOR_THEME_INDEX }, \
{ UNO_NAME_CHAR_COLOR_TINT_OR_SHADE, RES_CHRATR_COLOR, cppu::UnoType<sal_Int16>::get(), PROPERTY_NONE, MID_COLOR_TINT_OR_SHADE }, \
@@ -499,6 +521,8 @@
{ UNO_NAME_CHAR_SHADOWED, RES_CHRATR_SHADOWED , cppu::UnoType<bool>::get() , PROPERTY_NONE, 0}, \
{ UNO_NAME_CHAR_STRIKEOUT, RES_CHRATR_CROSSEDOUT, cppu::UnoType<sal_Int16>::get(), PropertyAttribute::MAYBEVOID, MID_CROSS_OUT}, \
{ UNO_NAME_CHAR_UNDERLINE_COLOR, RES_CHRATR_UNDERLINE , cppu::UnoType<sal_Int32>::get(), PropertyAttribute::MAYBEVOID, MID_TL_COLOR}, \
+ { UNO_NAME_CHAR_UNDERLINE_COLOR, RES_CHRATR_UNDERLINE , cppu::UnoType<sal_Int32>::get(), PropertyAttribute::MAYBEVOID, MID_TL_COLOR}, \
+ { UNO_NAME_CHAR_UNDERLINE_COMPLEX_COLOR, RES_CHRATR_UNDERLINE, cppu::UnoType<css::util::XComplexColor>::get(), PropertyAttribute::MAYBEVOID, MID_TL_COMPLEX_COLOR}, \
{ UNO_NAME_CHAR_WEIGHT, RES_CHRATR_WEIGHT , cppu::UnoType<float>::get(), PropertyAttribute::MAYBEVOID, MID_WEIGHT}, \
{ UNO_NAME_NUMBERING_LEVEL, RES_PARATR_LIST_LEVEL,cppu::UnoType<sal_Int16>::get(), PropertyAttribute::MAYBEVOID, 0}, \
{ UNO_NAME_CHAR_UNDERLINE, RES_CHRATR_UNDERLINE , cppu::UnoType<sal_Int16>::get(), PropertyAttribute::MAYBEVOID, MID_TL_STYLE}, \
@@ -544,6 +568,7 @@
{ UNO_NAME_FILLTRANSPARENCEGRADIENT, XATTR_FILLFLOATTRANSPARENCE, cppu::UnoType<css::awt::Gradient>::get(), 0, MID_FILLGRADIENT}, \
{ UNO_NAME_FILLTRANSPARENCEGRADIENTNAME, XATTR_FILLFLOATTRANSPARENCE, cppu::UnoType<OUString>::get(), 0, MID_NAME }, \
{ UNO_NAME_FILLCOLOR_2, XATTR_SECONDARYFILLCOLOR, cppu::UnoType<sal_Int32>::get(), 0, 0}, \
+ { UNO_NAME_FILL_COMPLEX_COLOR, XATTR_FILLCOLOR, cppu::UnoType<css::util::XComplexColor>::get(), 0, MID_COMPLEX_COLOR}, \
#endif
diff --git a/sw/source/uibase/docvw/edtwin.cxx b/sw/source/uibase/docvw/edtwin.cxx
index 648ea2334583..2c626849b3f8 100644
--- a/sw/source/uibase/docvw/edtwin.cxx
+++ b/sw/source/uibase/docvw/edtwin.cxx
@@ -5146,7 +5146,7 @@ void SwEditWin::MouseButtonUp(const MouseEvent& rMEvt)
m_pApplyTempl->nUndo =
std::min(m_pApplyTempl->nUndo, rSh.GetDoc()->GetIDocumentUndoRedo().GetUndoActionCount());
if (nId == RES_CHRATR_BACKGROUND)
- ApplyCharBackground(m_aWaterCanTextBackColor, rSh);
+ ApplyCharBackground(m_aWaterCanTextBackColor, model::ComplexColor(), rSh);
else
rSh.SetAttrItem( SvxColorItem( m_aWaterCanTextColor, nId ) );
rSh.UnSetVisibleCursor();
diff --git a/sw/source/uibase/inc/uitool.hxx b/sw/source/uibase/inc/uitool.hxx
index 85747a9f82e3..87eef4e84f16 100644
--- a/sw/source/uibase/inc/uitool.hxx
+++ b/sw/source/uibase/inc/uitool.hxx
@@ -29,6 +29,7 @@ class SvxTabStopItem;
class SwWrtShell;
namespace com::sun::star::awt { class XPopupMenu; }
namespace weld { class ComboBox; }
+namespace model { class ComplexColor; }
class SwDocShell;
class SwFrameFormat;
class SwTabCols;
@@ -66,7 +67,7 @@ SW_DLLPUBLIC void ConvertAttrGenToChar(SfxItemSet& rSet, const SfxItemSet& rOrig
* @param[in] rBackgroundColor the color to apply on the shell
* @param[in,out] rShell the shell on which we apply the new attribute
**/
-void ApplyCharBackground(const Color& rBackgroundColor, SwWrtShell& rShell);
+void ApplyCharBackground(Color const& rBackgroundColor, model::ComplexColor const& rComplexColor, SwWrtShell& rShell);
// SfxItemSets <-> PageDesc
void ItemSetToPageDesc( const SfxItemSet& rSet, SwPageDesc& rPageDesc );
diff --git a/sw/source/uibase/shells/basesh.cxx b/sw/source/uibase/shells/basesh.cxx
index 6e0075a54259..118df74e23a1 100644
--- a/sw/source/uibase/shells/basesh.cxx
+++ b/sw/source/uibase/shells/basesh.cxx
@@ -2606,7 +2606,7 @@ void SwBaseShell::GetBckColState(SfxItemSet &rSet)
case SID_BACKGROUND_COLOR:
case SID_TABLE_CELL_BACKGROUND_COLOR:
{
- SvxColorItem aColorItem(aBrushItem->GetColor(), nWhich);
+ SvxColorItem aColorItem(aBrushItem->GetColor(), aBrushItem->getComplexColor(), nWhich);
rSet.Put(aColorItem);
break;
}
@@ -2676,8 +2676,8 @@ void SwBaseShell::ExecBckCol(SfxRequest& rReq)
if (pArgs)
{
const SvxColorItem& rNewColorItem = static_cast<const SvxColorItem&>(pArgs->Get(nSlotId));
- const Color& rNewColor = rNewColorItem.GetValue();
- aBrushItem->SetColor(rNewColor);
+ aBrushItem->SetColor(rNewColorItem.GetValue());
+ aBrushItem->setComplexColor(rNewColorItem.getComplexColor());
GetView().GetViewFrame().GetBindings().SetState(rNewColorItem);
}
else
diff --git a/sw/source/uibase/shells/frmsh.cxx b/sw/source/uibase/shells/frmsh.cxx
index 2b10c0d9261d..bec169eed5ba 100644
--- a/sw/source/uibase/shells/frmsh.cxx
+++ b/sw/source/uibase/shells/frmsh.cxx
@@ -1222,14 +1222,14 @@ void SwFrameShell::ExecFrameStyle(SfxRequest const & rReq)
}
else
{
- if ( aBoxItem->GetTop() )
- const_cast<SvxBorderLine*>(aBoxItem->GetTop())->SetColor( rNewColor );
- if ( aBoxItem->GetBottom() )
- const_cast<SvxBorderLine*>(aBoxItem->GetBottom())->SetColor( rNewColor );
- if ( aBoxItem->GetLeft() )
- const_cast<SvxBorderLine*>(aBoxItem->GetLeft())->SetColor( rNewColor );
- if ( aBoxItem->GetRight() )
- const_cast<SvxBorderLine*>(aBoxItem->GetRight())->SetColor( rNewColor );
+ if (aBoxItem->GetTop())
+ aBoxItem->GetTop()->SetColor(rNewColor);
+ if (aBoxItem->GetBottom())
+ aBoxItem->GetBottom()->SetColor(rNewColor);
+ if (aBoxItem->GetLeft())
+ aBoxItem->GetLeft()->SetColor(rNewColor);
+ if (aBoxItem->GetRight())
+ aBoxItem->GetRight()->SetColor(rNewColor);
}
}
}
diff --git a/sw/source/uibase/shells/textsh1.cxx b/sw/source/uibase/shells/textsh1.cxx
index b6f68af7406b..fb5e2f88c9d9 100644
--- a/sw/source/uibase/shells/textsh1.cxx
+++ b/sw/source/uibase/shells/textsh1.cxx
@@ -1719,18 +1719,23 @@ void SwTextShell::Execute(SfxRequest &rReq)
case SID_ATTR_CHAR_COLOR_BACKGROUND: // deprecated
case SID_ATTR_CHAR_COLOR_EXT:
{
- Color aSet;
+ Color aColor;
+ model::ComplexColor aComplexColor;
if (pItem)
- aSet = static_cast<const SvxColorItem*>(pItem)->GetValue();
+ {
+ auto* pColorItem = static_cast<const SvxColorItem*>(pItem);
+ aColor = pColorItem->GetValue();
+ aComplexColor = pColorItem->getComplexColor();
+ }
else
- aSet = COL_TRANSPARENT;
+ aColor = COL_TRANSPARENT;
SwEditWin& rEdtWin = GetView().GetEditWin();
if (nSlot != SID_ATTR_CHAR_COLOR_EXT)
- rEdtWin.SetWaterCanTextBackColor(aSet);
+ rEdtWin.SetWaterCanTextBackColor(aColor);
else if (pItem)
- rEdtWin.SetWaterCanTextColor(aSet);
+ rEdtWin.SetWaterCanTextColor(aColor);
SwApplyTemplate* pApply = rEdtWin.GetApplyTemplate();
SwApplyTemplate aTempl;
@@ -1740,18 +1745,19 @@ void SwTextShell::Execute(SfxRequest &rReq)
{
SfxItemSetFixed<RES_CHRATR_BACKGROUND, RES_CHRATR_BACKGROUND> aCoreSet( rWrtSh.GetView().GetPool() );
- rWrtSh.GetCurAttr( aCoreSet );
+ rWrtSh.GetCurAttr(aCoreSet);
// Remove highlight if already set of the same color
const SvxBrushItem& rBrushItem = aCoreSet.Get(RES_CHRATR_BACKGROUND);
- if ( aSet == rBrushItem.GetColor() )
- aSet = COL_TRANSPARENT;
-
- ApplyCharBackground(aSet, rWrtSh);
+ if (aColor == rBrushItem.GetColor())
+ {
+ aComplexColor = model::ComplexColor();
+ aColor = COL_TRANSPARENT;
+ }
+ ApplyCharBackground(aColor, aComplexColor, rWrtSh);
}
else
- rWrtSh.SetAttrItem(
- SvxColorItem(aSet, RES_CHRATR_COLOR) );
+ rWrtSh.SetAttrItem(SvxColorItem(aColor, aComplexColor, RES_CHRATR_COLOR));
}
else
{
@@ -2374,12 +2380,12 @@ void SwTextShell::GetState( SfxItemSet &rSet )
const SvxBrushItem& aBrushItem = aSet.Get(RES_CHRATR_HIGHLIGHT);
if( aBrushItem.GetColor() != COL_TRANSPARENT )
{
- rSet.Put( SvxColorItem(aBrushItem.GetColor(), nWhich) );
+ rSet.Put(SvxColorItem(aBrushItem.GetColor(), aBrushItem.getComplexColor(), nWhich));
}
else
{
const SvxBrushItem& aBrushItem2 = aSet.Get(RES_CHRATR_BACKGROUND);
- rSet.Put( SvxColorItem(aBrushItem2.GetColor(), nWhich) );
+ rSet.Put(SvxColorItem(aBrushItem2.GetColor(), aBrushItem2.getComplexColor(), nWhich));
}
}
break;
diff --git a/sw/source/uibase/sidebar/PageStylesPanel.cxx b/sw/source/uibase/sidebar/PageStylesPanel.cxx
index 9565b177b84d..53cf43fb742e 100644
--- a/sw/source/uibase/sidebar/PageStylesPanel.cxx
+++ b/sw/source/uibase/sidebar/PageStylesPanel.cxx
@@ -544,7 +544,10 @@ void PageStylesPanel::ModifyFillColor()
{
case SOLID:
{
- XFillColorItem aItem(OUString(), mxBgColorLB->GetSelectEntryColor());
+ auto aNamedColor = mxBgColorLB->GetSelectedEntry();
+ XFillColorItem aItem(OUString(), aNamedColor.m_aColor);
+ aItem.setComplexColor(aNamedColor.getComplexColor());
+ aItem.setComplexColor(mxBgColorLB->GetSelectedEntry().getComplexColor());
GetBindings()->GetDispatcher()->ExecuteList(SID_ATTR_PAGE_COLOR, SfxCallMode::RECORD, { &aItem });
}
break;
diff --git a/sw/source/uibase/utlui/uitool.cxx b/sw/source/uibase/utlui/uitool.cxx
index 1ead464c8963..079b5f9fdb1f 100644
--- a/sw/source/uibase/utlui/uitool.cxx
+++ b/sw/source/uibase/utlui/uitool.cxx
@@ -67,8 +67,9 @@
#include <charfmt.hxx>
#include <SwStyleNameMapper.hxx>
#include <strings.hrc>
-// 50 cm 28350
+#include <docmodel/color/ComplexColor.hxx>
+// 50 cm 28350
#define MAXHEIGHT 28350
#define MAXWIDTH 28350
@@ -193,7 +194,7 @@ void ConvertAttrGenToChar(SfxItemSet& rSet, const SfxItemSet& rOrigSet, bool bIs
assert(SfxItemState::SET != rSet.GetItemState(RES_PARATR_GRABBAG, false));
}
-void ApplyCharBackground(const Color& rBackgroundColor, SwWrtShell& rShell)
+void ApplyCharBackground(Color const& rBackgroundColor, model::ComplexColor const& rComplexColor, SwWrtShell& rShell)
{
rShell.StartUndo(SwUndoId::INSATTR);
@@ -202,7 +203,7 @@ void ApplyCharBackground(const Color& rBackgroundColor, SwWrtShell& rShell)
rShell.GetCurAttr(aCoreSet);
// Set char background
- rShell.SetAttrItem(SvxBrushItem(rBackgroundColor, RES_CHRATR_BACKGROUND));
+ rShell.SetAttrItem(SvxBrushItem(rBackgroundColor, rComplexColor, RES_CHRATR_BACKGROUND));
// Highlight is an MS specific thing, so remove it at the first time when LO modifies
// this part of the imported document.