From cc6db9f418cae422a4733163f85801c5a14f47c8 Mon Sep 17 00:00:00 2001 From: Tomaž Vajngerl Date: Tue, 30 May 2023 21:11:28 +0900 Subject: sw: border and background theme color support for multiple props. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This adds support for theme colors for multiple properties that are stored in SvxBoxItem and SvxBrushItem / XFillColorItem. For those items the ComplexColor member variable was introduced. The UNO properties for the colors are added. The properties with the added support includes paragraph border and background + styles, page border and background, frame border and background + styles. The ThemeColorChanges has been extended to support changing the colors for those propertes. Color picker and tab pages have been fixed so they pass or set the theme color properties to the items. Change-Id: Id27272f5c4a448703a62a759d829e8a9540066e4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152397 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl --- sw/source/core/docnode/ndtbl1.cxx | 8 +- sw/source/core/model/ThemeColorChanger.cxx | 297 +++++++++++++++++++++++++-- sw/source/core/unocore/unomap.cxx | 23 ++- sw/source/core/unocore/unomap1.cxx | 30 ++- sw/source/core/unocore/unomapproperties.hxx | 27 ++- sw/source/uibase/docvw/edtwin.cxx | 2 +- sw/source/uibase/inc/uitool.hxx | 3 +- sw/source/uibase/shells/basesh.cxx | 6 +- sw/source/uibase/shells/frmsh.cxx | 16 +- sw/source/uibase/shells/textsh1.cxx | 34 +-- sw/source/uibase/sidebar/PageStylesPanel.cxx | 5 +- sw/source/uibase/utlui/uitool.cxx | 7 +- 12 files changed, 399 insertions(+), 59 deletions(-) (limited to 'sw/source') 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 aBox(pFormat->GetBox().Clone()); - SvxBorderLine* pTop = const_cast(aBox->GetTop()); - SvxBorderLine* pBot = const_cast(aBox->GetBottom()); - SvxBorderLine* pLeft = const_cast(aBox->GetLeft()); - SvxBorderLine* pRight = const_cast(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 #include #include +#include +#include #include #include #include #include +#include + #include #include #include #include #include #include +#include #include #include #include @@ -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 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 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 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 pNewItem(pItem->Clone()); + pNewItem->SetColorValue(aNewColor); + pTextNode->SetAttr(*pNewItem); + } + } + } + + if (const SvxBoxItem* pItem = aAttrSet.GetItemIfSet(RES_BOX, false)) + { + std::unique_ptr 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 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(*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 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(pPool->First(SfxStyleFamily::Frame)); + while (pStyle) + { + SwFrameFormat* pFrameFormat = pStyle->GetFrameFormat(); + if (pFrameFormat) + { + const SwAttrSet& rAttrSet = pFrameFormat->GetAttrSet(); + std::unique_ptr 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(pPool->Next()); + } + // Paragraph style color change pStyle = static_cast(pPool->First(SfxStyleFamily::Para)); while (pStyle) { SwTextFormatColl* pTextFormatCollection = pStyle->GetCollection(); if (pTextFormatCollection) - changeColor(pTextFormatCollection, rColorSet, pDocument); + { + const SwAttrSet& rAttrSet = pTextFormatCollection->GetAttrSet(); + std::unique_ptr 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(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 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(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 SwUnoPropertyMapProvider::GetPropertyM static SfxItemPropertyMapEntry const aCellMap_Impl[] = { { UNO_NAME_BACK_COLOR, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE , MID_BACK_COLOR }, + { UNO_NAME_BACKGROUND_COMPLEX_COLOR, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE, MID_BACKGROUND_COMPLEX_COLOR }, { UNO_NAME_BACK_GRAPHIC_URL, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_GRAPHIC_URL }, { UNO_NAME_BACK_GRAPHIC, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE, MID_GRAPHIC }, { UNO_NAME_BACK_GRAPHIC_FILTER, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_GRAPHIC_FILTER }, @@ -177,6 +178,10 @@ o3tl::span SwUnoPropertyMapProvider::GetPropertyM { UNO_NAME_RIGHT_BORDER_DISTANCE, RES_BOX, cppu::UnoType::get(), 0, RIGHT_BORDER_DISTANCE |CONVERT_TWIPS }, { UNO_NAME_TOP_BORDER_DISTANCE, RES_BOX, cppu::UnoType::get(), 0, TOP_BORDER_DISTANCE |CONVERT_TWIPS }, { UNO_NAME_BOTTOM_BORDER_DISTANCE, RES_BOX, cppu::UnoType::get(), 0, BOTTOM_BORDER_DISTANCE|CONVERT_TWIPS }, + { UNO_NAME_BORDER_LEFT_COMPLEX_COLOR, RES_BOX, cppu::UnoType::get(), 0, MID_BORDER_LEFT_COLOR }, + { UNO_NAME_BORDER_RIGHT_COMPLEX_COLOR, RES_BOX, cppu::UnoType::get(), 0, MID_BORDER_RIGHT_COLOR }, + { UNO_NAME_BORDER_TOP_COMPLEX_COLOR, RES_BOX, cppu::UnoType::get(), 0, MID_BORDER_TOP_COLOR }, + { UNO_NAME_BORDER_BOTTOM_COMPLEX_COLOR, RES_BOX, cppu::UnoType::get(), 0, MID_BORDER_BOTTOM_COLOR }, { UNO_NAME_USER_DEFINED_ATTRIBUTES, RES_UNKNOWNATR_CONTAINER, cppu::UnoType::get(), PropertyAttribute::MAYBEVOID, 0 }, { UNO_NAME_TEXT_SECTION, FN_UNO_TEXT_SECTION, cppu::UnoType::get(), PropertyAttribute::MAYBEVOID|PropertyAttribute::READONLY ,0 }, { UNO_NAME_IS_PROTECTED, RES_PROTECT, cppu::UnoType::get(), 0, MID_PROTECT_CONTENT}, @@ -357,7 +362,8 @@ o3tl::span SwUnoPropertyMapProvider::GetPropertyM { UNO_NAME_BACK_GRAPHIC, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE, MID_GRAPHIC }, { UNO_NAME_BACK_GRAPHIC_FILTER, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_GRAPHIC_FILTER }, { UNO_NAME_BACK_GRAPHIC_LOCATION, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_GRAPHIC_POSITION}, - { UNO_NAME_BACK_COLOR, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_BACK_COLOR }, + { UNO_NAME_BACK_COLOR, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_BACK_COLOR }, + { UNO_NAME_BACKGROUND_COMPLEX_COLOR, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE, MID_BACKGROUND_COMPLEX_COLOR }, { UNO_NAME_BACK_TRANSPARENT, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_GRAPHIC_TRANSPARENT }, { UNO_NAME_PARA_STYLEHEADING, WID_PARA_HEAD, cppu::UnoType::get() , 0, 0}, { UNO_NAME_PARA_STYLESEPARATOR, WID_PARA_SEP, cppu::UnoType::get() , 0, 0}, @@ -397,6 +403,7 @@ o3tl::span SwUnoPropertyMapProvider::GetPropertyM { UNO_NAME_BACK_GRAPHIC_FILTER, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_GRAPHIC_FILTER }, { UNO_NAME_BACK_GRAPHIC_LOCATION, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_GRAPHIC_POSITION}, { UNO_NAME_BACK_COLOR, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_BACK_COLOR }, + { UNO_NAME_BACKGROUND_COMPLEX_COLOR, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_BACKGROUND_COMPLEX_COLOR }, { UNO_NAME_BACK_TRANSPARENT, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_GRAPHIC_TRANSPARENT }, { UNO_NAME_PARA_STYLEHEADING, WID_PARA_HEAD, cppu::UnoType::get() , 0, 0}, { UNO_NAME_PARA_STYLELEVEL1, WID_PARA_LEV1, cppu::UnoType::get() , 0, 0}, @@ -442,6 +449,7 @@ o3tl::span SwUnoPropertyMapProvider::GetPropertyM { UNO_NAME_BACK_GRAPHIC_FILTER, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_GRAPHIC_FILTER }, { UNO_NAME_BACK_GRAPHIC_LOCATION, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_GRAPHIC_POSITION}, { UNO_NAME_BACK_COLOR, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_BACK_COLOR }, + { UNO_NAME_BACKGROUND_COMPLEX_COLOR, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_BACKGROUND_COMPLEX_COLOR }, { UNO_NAME_BACK_TRANSPARENT, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_GRAPHIC_TRANSPARENT }, { UNO_NAME_PARA_STYLEHEADING, WID_PARA_HEAD, cppu::UnoType::get() , 0, 0}, { UNO_NAME_PARA_STYLELEVEL1, WID_PARA_LEV1, cppu::UnoType::get() , 0, 0}, @@ -479,6 +487,7 @@ o3tl::span SwUnoPropertyMapProvider::GetPropertyM { UNO_NAME_BACK_GRAPHIC_FILTER, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_GRAPHIC_FILTER }, { UNO_NAME_BACK_GRAPHIC_LOCATION, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_GRAPHIC_POSITION}, { UNO_NAME_BACK_COLOR, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_BACK_COLOR }, + { UNO_NAME_BACKGROUND_COMPLEX_COLOR, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE, MID_BACKGROUND_COMPLEX_COLOR }, { UNO_NAME_BACK_TRANSPARENT, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_GRAPHIC_TRANSPARENT }, { UNO_NAME_PARA_STYLEHEADING, WID_PARA_HEAD, cppu::UnoType::get() , 0, 0}, { UNO_NAME_PARA_STYLELEVEL1, WID_PARA_LEV1, cppu::UnoType::get() , 0, 0}, @@ -508,6 +517,7 @@ o3tl::span SwUnoPropertyMapProvider::GetPropertyM { UNO_NAME_BACK_GRAPHIC_FILTER, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_GRAPHIC_FILTER }, { UNO_NAME_BACK_GRAPHIC_LOCATION, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_GRAPHIC_POSITION}, { UNO_NAME_BACK_COLOR, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_BACK_COLOR }, + { UNO_NAME_BACKGROUND_COMPLEX_COLOR, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE, MID_BACKGROUND_COMPLEX_COLOR }, { UNO_NAME_BACK_TRANSPARENT, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_GRAPHIC_TRANSPARENT }, { UNO_NAME_PARA_STYLEHEADING, WID_PARA_HEAD, cppu::UnoType::get() , 0, 0}, { UNO_NAME_PARA_STYLELEVEL1, WID_PARA_LEV1, cppu::UnoType::get() , 0, 0}, @@ -535,6 +545,7 @@ o3tl::span SwUnoPropertyMapProvider::GetPropertyM { UNO_NAME_BACK_GRAPHIC_FILTER, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_GRAPHIC_FILTER }, { UNO_NAME_BACK_GRAPHIC_LOCATION, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_GRAPHIC_POSITION}, { UNO_NAME_BACK_COLOR, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_BACK_COLOR }, + { UNO_NAME_BACKGROUND_COMPLEX_COLOR, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE, MID_BACKGROUND_COMPLEX_COLOR }, { UNO_NAME_BACK_TRANSPARENT, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_GRAPHIC_TRANSPARENT }, { UNO_NAME_PARA_STYLEHEADING, WID_PARA_HEAD, cppu::UnoType::get() , 0, 0}, { UNO_NAME_PARA_STYLELEVEL1, WID_PARA_LEV1, cppu::UnoType::get() , 0, 0}, @@ -548,6 +559,7 @@ o3tl::span SwUnoPropertyMapProvider::GetPropertyM static SfxItemPropertyMapEntry const aTableRowPropertyMap_Impl[] = { { UNO_NAME_BACK_COLOR, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_BACK_COLOR }, + { UNO_NAME_BACKGROUND_COMPLEX_COLOR, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE, MID_BACKGROUND_COMPLEX_COLOR }, { UNO_NAME_BACK_GRAPHIC_URL, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_GRAPHIC_URL }, { UNO_NAME_BACK_GRAPHIC, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE, MID_GRAPHIC }, { UNO_NAME_BACK_GRAPHIC_FILTER, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_GRAPHIC_FILTER }, @@ -603,6 +615,7 @@ o3tl::span SwUnoPropertyMapProvider::GetPropertyM { UNO_NAME_BACK_GRAPHIC_FILTER, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_GRAPHIC_FILTER }, { UNO_NAME_BACK_GRAPHIC_LOCATION, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_GRAPHIC_POSITION}, { UNO_NAME_BACK_COLOR, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_BACK_COLOR }, + { UNO_NAME_BACKGROUND_COMPLEX_COLOR, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE, MID_BACKGROUND_COMPLEX_COLOR }, { UNO_NAME_BACK_TRANSPARENT, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_GRAPHIC_TRANSPARENT }, { UNO_NAME_PARA_STYLEHEADING, WID_PARA_HEAD, cppu::UnoType::get() , 0, 0}, { UNO_NAME_PARA_STYLELEVEL1, WID_PARA_LEV1, cppu::UnoType::get() , 0, 0}, @@ -1447,7 +1460,8 @@ o3tl::span SwUnoPropertyMapProvider::GetPropertyM static SfxItemPropertyMapEntry const aCellStyleMap[] = { // SvxBrushItem - { UNO_NAME_BACK_COLOR, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE, 0 }, + { UNO_NAME_BACK_COLOR, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE, MID_BACK_COLOR }, + { UNO_NAME_BACKGROUND_COMPLEX_COLOR, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE, MID_BACKGROUND_COMPLEX_COLOR }, // SvxBoxItem { UNO_NAME_LEFT_BORDER, RES_BOX, cppu::UnoType::get(), PROPERTY_NONE, LEFT_BORDER|CONVERT_TWIPS }, { UNO_NAME_RIGHT_BORDER, RES_BOX, cppu::UnoType::get(), PROPERTY_NONE, RIGHT_BORDER|CONVERT_TWIPS }, @@ -1458,6 +1472,10 @@ o3tl::span SwUnoPropertyMapProvider::GetPropertyM { UNO_NAME_RIGHT_BORDER_DISTANCE, RES_BOX, cppu::UnoType::get(), PROPERTY_NONE, RIGHT_BORDER_DISTANCE |CONVERT_TWIPS }, { UNO_NAME_TOP_BORDER_DISTANCE, RES_BOX, cppu::UnoType::get(), PROPERTY_NONE, TOP_BORDER_DISTANCE |CONVERT_TWIPS }, { UNO_NAME_BOTTOM_BORDER_DISTANCE, RES_BOX, cppu::UnoType::get(), PROPERTY_NONE, BOTTOM_BORDER_DISTANCE|CONVERT_TWIPS }, + { UNO_NAME_BORDER_LEFT_COMPLEX_COLOR, RES_BOX, cppu::UnoType::get(), PROPERTY_NONE, MID_BORDER_LEFT_COLOR }, + { UNO_NAME_BORDER_RIGHT_COMPLEX_COLOR, RES_BOX, cppu::UnoType::get(), PROPERTY_NONE, MID_BORDER_RIGHT_COLOR }, + { UNO_NAME_BORDER_TOP_COMPLEX_COLOR, RES_BOX, cppu::UnoType::get(), PROPERTY_NONE, MID_BORDER_TOP_COLOR }, + { UNO_NAME_BORDER_BOTTOM_COMPLEX_COLOR, RES_BOX, cppu::UnoType::get(), PROPERTY_NONE, MID_BORDER_BOTTOM_COLOR }, // SwFormatVertOrient { UNO_NAME_VERT_ORIENT, RES_VERT_ORIENT, cppu::UnoType::get(), PROPERTY_NONE, MID_VERTORIENT_ORIENT }, // SvxFrameDirectionItem @@ -1480,6 +1498,7 @@ o3tl::span SwUnoPropertyMapProvider::GetPropertyM // SvxUnderlineItem { UNO_NAME_CHAR_UNDERLINE, RES_CHRATR_UNDERLINE, cppu::UnoType::get(), PROPERTY_NONE, MID_TL_STYLE }, { UNO_NAME_CHAR_UNDERLINE_COLOR, RES_CHRATR_UNDERLINE,cppu::UnoType::get(), PROPERTY_NONE, MID_TL_COLOR }, + { UNO_NAME_CHAR_UNDERLINE_COMPLEX_COLOR, RES_CHRATR_UNDERLINE, cppu::UnoType::get(), PROPERTY_NONE, MID_TL_COMPLEX_COLOR }, { UNO_NAME_CHAR_UNDERLINE_HAS_COLOR, RES_CHRATR_UNDERLINE, cppu::UnoType::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 SwUnoPropertyMapProvider::GetCharStyle { UNO_NAME_CHAR_AUTO_KERNING, RES_CHRATR_AUTOKERN , cppu::UnoType::get() , PROPERTY_NONE, 0}, { UNO_NAME_CHAR_BACK_TRANSPARENT, RES_CHRATR_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_GRAPHIC_TRANSPARENT }, { UNO_NAME_CHAR_BACK_COLOR, RES_CHRATR_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_BACK_COLOR }, + { UNO_NAME_CHAR_BACKGROUND_COMPLEX_COLOR, RES_CHRATR_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_BACKGROUND_COMPLEX_COLOR }, { UNO_NAME_CHAR_HIGHLIGHT, RES_CHRATR_HIGHLIGHT, cppu::UnoType::get(), PROPERTY_NONE, MID_BACK_COLOR }, { UNO_NAME_CHAR_CASE_MAP, RES_CHRATR_CASEMAP, cppu::UnoType::get(), PROPERTY_NONE, 0}, { UNO_NAME_CHAR_COLOR, RES_CHRATR_COLOR, cppu::UnoType::get(), PROPERTY_NONE, 0 }, @@ -195,9 +196,11 @@ o3tl::span SwUnoPropertyMapProvider::GetCharStyle CTL_FONT_PROPERTIES { UNO_NAME_CHAR_UNDERLINE, RES_CHRATR_UNDERLINE , cppu::UnoType::get(), PROPERTY_NONE, MID_TL_STYLE}, { UNO_NAME_CHAR_UNDERLINE_COLOR, RES_CHRATR_UNDERLINE , cppu::UnoType::get(), PROPERTY_NONE, MID_TL_COLOR}, + { UNO_NAME_CHAR_UNDERLINE_COMPLEX_COLOR, RES_CHRATR_UNDERLINE , cppu::UnoType::get(), PROPERTY_NONE, MID_TL_COMPLEX_COLOR }, { UNO_NAME_CHAR_UNDERLINE_HAS_COLOR, RES_CHRATR_UNDERLINE , cppu::UnoType::get(), PROPERTY_NONE, MID_TL_HASCOLOR}, { UNO_NAME_CHAR_OVERLINE, RES_CHRATR_OVERLINE , cppu::UnoType::get(), PROPERTY_NONE, MID_TL_STYLE}, { UNO_NAME_CHAR_OVERLINE_COLOR, RES_CHRATR_OVERLINE , cppu::UnoType::get(), PROPERTY_NONE, MID_TL_COLOR}, + { UNO_NAME_CHAR_OVERLINE_COMPLEX_COLOR, RES_CHRATR_OVERLINE, cppu::UnoType::get(), PROPERTY_NONE, MID_TL_COMPLEX_COLOR }, { UNO_NAME_CHAR_OVERLINE_HAS_COLOR, RES_CHRATR_OVERLINE , cppu::UnoType::get(), PROPERTY_NONE, MID_TL_HASCOLOR}, { UNO_NAME_CHAR_KERNING, RES_CHRATR_KERNING , cppu::UnoType::get() , PROPERTY_NONE, CONVERT_TWIPS}, { UNO_NAME_CHAR_NO_HYPHENATION, RES_CHRATR_NOHYPHEN , cppu::UnoType::get() , PROPERTY_NONE, 0}, @@ -227,6 +230,10 @@ o3tl::span SwUnoPropertyMapProvider::GetCharStyle { UNO_NAME_CHAR_RIGHT_BORDER_DISTANCE, RES_CHRATR_BOX, cppu::UnoType::get(), PROPERTY_NONE, RIGHT_BORDER_DISTANCE |CONVERT_TWIPS }, { UNO_NAME_CHAR_TOP_BORDER_DISTANCE, RES_CHRATR_BOX, cppu::UnoType::get(), PROPERTY_NONE, TOP_BORDER_DISTANCE |CONVERT_TWIPS }, { UNO_NAME_CHAR_BOTTOM_BORDER_DISTANCE, RES_CHRATR_BOX, cppu::UnoType::get(), PROPERTY_NONE, BOTTOM_BORDER_DISTANCE|CONVERT_TWIPS }, + { UNO_NAME_CHAR_BORDER_LEFT_COMPLEX_COLOR, RES_CHRATR_BOX, cppu::UnoType::get(), PROPERTY_NONE, MID_BORDER_LEFT_COLOR }, + { UNO_NAME_CHAR_BORDER_RIGHT_COMPLEX_COLOR, RES_CHRATR_BOX, cppu::UnoType::get(), PROPERTY_NONE, MID_BORDER_RIGHT_COLOR }, + { UNO_NAME_CHAR_BORDER_TOP_COMPLEX_COLOR, RES_CHRATR_BOX, cppu::UnoType::get(), PROPERTY_NONE, MID_BORDER_TOP_COLOR }, + { UNO_NAME_CHAR_BORDER_BOTTOM_COMPLEX_COLOR, RES_CHRATR_BOX, cppu::UnoType::get(), PROPERTY_NONE, MID_BORDER_BOTTOM_COLOR }, { UNO_NAME_CHAR_SHADOW_FORMAT, RES_CHRATR_SHADOW, cppu::UnoType::get(), PROPERTY_NONE, CONVERT_TWIPS}, { UNO_NAME_LINK_STYLE, FN_UNO_LINK_STYLE, cppu::UnoType::get(), PROPERTY_NONE, 0}, }; @@ -242,6 +249,7 @@ o3tl::span SwUnoPropertyMapProvider::GetAutoChar { UNO_NAME_CHAR_AUTO_KERNING, RES_CHRATR_AUTOKERN , cppu::UnoType::get() , PROPERTY_NONE, 0}, { UNO_NAME_CHAR_BACK_TRANSPARENT, RES_CHRATR_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_GRAPHIC_TRANSPARENT }, { UNO_NAME_CHAR_BACK_COLOR, RES_CHRATR_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_BACK_COLOR }, + { UNO_NAME_CHAR_BACKGROUND_COMPLEX_COLOR, RES_CHRATR_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE, MID_BACKGROUND_COMPLEX_COLOR }, { UNO_NAME_CHAR_HIGHLIGHT, RES_CHRATR_HIGHLIGHT, cppu::UnoType::get(), PROPERTY_NONE, MID_BACK_COLOR }, { UNO_NAME_CHAR_CASE_MAP, RES_CHRATR_CASEMAP, cppu::UnoType::get(), PROPERTY_NONE, 0}, { UNO_NAME_CHAR_COLOR, RES_CHRATR_COLOR, cppu::UnoType::get(), PROPERTY_NONE, 0}, @@ -260,9 +268,11 @@ o3tl::span SwUnoPropertyMapProvider::GetAutoChar CTL_FONT_PROPERTIES { UNO_NAME_CHAR_UNDERLINE, RES_CHRATR_UNDERLINE , cppu::UnoType::get(), PROPERTY_NONE, MID_TL_STYLE}, { UNO_NAME_CHAR_UNDERLINE_COLOR, RES_CHRATR_UNDERLINE , cppu::UnoType::get(), PROPERTY_NONE, MID_TL_COLOR}, + { UNO_NAME_CHAR_UNDERLINE_COMPLEX_COLOR, RES_CHRATR_UNDERLINE, cppu::UnoType::get(), PROPERTY_NONE, MID_TL_COMPLEX_COLOR }, { UNO_NAME_CHAR_UNDERLINE_HAS_COLOR, RES_CHRATR_UNDERLINE , cppu::UnoType::get(), PROPERTY_NONE, MID_TL_HASCOLOR}, { UNO_NAME_CHAR_OVERLINE, RES_CHRATR_OVERLINE , cppu::UnoType::get(), PROPERTY_NONE, MID_TL_STYLE}, { UNO_NAME_CHAR_OVERLINE_COLOR, RES_CHRATR_OVERLINE , cppu::UnoType::get(), PROPERTY_NONE, MID_TL_COLOR}, + { UNO_NAME_CHAR_OVERLINE_COMPLEX_COLOR, RES_CHRATR_OVERLINE, cppu::UnoType::get(), PROPERTY_NONE, MID_TL_COMPLEX_COLOR }, { UNO_NAME_CHAR_OVERLINE_HAS_COLOR, RES_CHRATR_OVERLINE , cppu::UnoType::get(), PROPERTY_NONE, MID_TL_HASCOLOR}, { UNO_NAME_CHAR_KERNING, RES_CHRATR_KERNING , cppu::UnoType::get() , PROPERTY_NONE, CONVERT_TWIPS}, { UNO_NAME_CHAR_NO_HYPHENATION, RES_CHRATR_NOHYPHEN , cppu::UnoType::get() , PROPERTY_NONE, 0}, @@ -339,6 +349,7 @@ o3tl::span SwUnoPropertyMapProvider::GetFrameStyl { UNO_NAME_ANCHOR_PAGE_NO, RES_ANCHOR, cppu::UnoType::get(), PROPERTY_NONE, MID_ANCHOR_PAGENUM }, { UNO_NAME_ANCHOR_TYPE, RES_ANCHOR, cppu::UnoType::get(), PROPERTY_NONE, MID_ANCHOR_ANCHORTYPE}, { UNO_NAME_BACK_COLOR, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_BACK_COLOR }, + { UNO_NAME_BACKGROUND_COMPLEX_COLOR, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_BACKGROUND_COMPLEX_COLOR }, { UNO_NAME_BACK_COLOR_R_G_B, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_BACK_COLOR_R_G_B}, { UNO_NAME_BACK_COLOR_TRANSPARENCY, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_BACK_COLOR_TRANSPARENCY}, { UNO_NAME_FRAME_INTEROP_GRAB_BAG, RES_FRMATR_GRABBAG, cppu::UnoType< cppu::UnoSequenceType >::get(), PROPERTY_NONE, 0}, @@ -403,6 +414,10 @@ o3tl::span SwUnoPropertyMapProvider::GetFrameStyl { UNO_NAME_RIGHT_BORDER_DISTANCE, RES_BOX, cppu::UnoType::get(), 0, RIGHT_BORDER_DISTANCE |CONVERT_TWIPS }, { UNO_NAME_TOP_BORDER_DISTANCE, RES_BOX, cppu::UnoType::get(), 0, TOP_BORDER_DISTANCE |CONVERT_TWIPS }, { UNO_NAME_BOTTOM_BORDER_DISTANCE, RES_BOX, cppu::UnoType::get(), 0, BOTTOM_BORDER_DISTANCE|CONVERT_TWIPS }, + { UNO_NAME_BORDER_LEFT_COMPLEX_COLOR, RES_BOX, cppu::UnoType::get(), 0, MID_BORDER_LEFT_COLOR }, + { UNO_NAME_BORDER_RIGHT_COMPLEX_COLOR, RES_BOX, cppu::UnoType::get(), 0, MID_BORDER_RIGHT_COLOR }, + { UNO_NAME_BORDER_TOP_COMPLEX_COLOR, RES_BOX, cppu::UnoType::get(), 0, MID_BORDER_TOP_COLOR }, + { UNO_NAME_BORDER_BOTTOM_COMPLEX_COLOR, RES_BOX, cppu::UnoType::get(), 0, MID_BORDER_BOTTOM_COLOR }, { UNO_NAME_USER_DEFINED_ATTRIBUTES, RES_UNKNOWNATR_CONTAINER, cppu::UnoType::get(), PropertyAttribute::MAYBEVOID, 0 }, { UNO_NAME_IS_PHYSICAL, FN_UNO_IS_PHYSICAL, cppu::UnoType::get(), PropertyAttribute::READONLY, 0}, { UNO_NAME_IS_AUTO_UPDATE, FN_UNO_IS_AUTO_UPDATE, cppu::UnoType::get(), PROPERTY_NONE, 0}, @@ -431,7 +446,8 @@ o3tl::span SwUnoPropertyMapProvider::GetPageStyle { static SfxItemPropertyMapEntry const aPageStyleMap [] = { - { UNO_NAME_BACK_COLOR, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_BACK_COLOR }, + { UNO_NAME_BACK_COLOR, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE, MID_BACK_COLOR }, + { UNO_NAME_BACKGROUND_COMPLEX_COLOR, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE, MID_BACKGROUND_COMPLEX_COLOR }, { UNO_NAME_BACK_GRAPHIC_URL, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_GRAPHIC_URL }, { UNO_NAME_BACK_GRAPHIC, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE, MID_GRAPHIC }, { UNO_NAME_BACK_GRAPHIC_FILTER, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_GRAPHIC_FILTER }, @@ -449,6 +465,10 @@ o3tl::span SwUnoPropertyMapProvider::GetPageStyle { UNO_NAME_RIGHT_BORDER_DISTANCE, RES_BOX, cppu::UnoType::get(), 0, RIGHT_BORDER_DISTANCE |CONVERT_TWIPS }, { UNO_NAME_TOP_BORDER_DISTANCE, RES_BOX, cppu::UnoType::get(), 0, TOP_BORDER_DISTANCE |CONVERT_TWIPS }, { UNO_NAME_BOTTOM_BORDER_DISTANCE, RES_BOX, cppu::UnoType::get(), 0, BOTTOM_BORDER_DISTANCE|CONVERT_TWIPS }, + { UNO_NAME_BORDER_LEFT_COMPLEX_COLOR, RES_BOX, cppu::UnoType::get(), 0, MID_BORDER_LEFT_COLOR }, + { UNO_NAME_BORDER_RIGHT_COMPLEX_COLOR, RES_BOX, cppu::UnoType::get(), 0, MID_BORDER_RIGHT_COLOR }, + { UNO_NAME_BORDER_TOP_COMPLEX_COLOR, RES_BOX, cppu::UnoType::get(), 0, MID_BORDER_TOP_COLOR }, + { UNO_NAME_BORDER_BOTTOM_COMPLEX_COLOR, RES_BOX, cppu::UnoType::get(), 0, MID_BORDER_BOTTOM_COLOR }, { UNO_NAME_SHADOW_FORMAT, RES_SHADOW, cppu::UnoType::get(), PROPERTY_NONE, CONVERT_TWIPS}, { UNO_NAME_SHADOW_TRANSPARENCE, RES_SHADOW, cppu::UnoType::get(), PROPERTY_NONE, MID_SHADOW_TRANSPARENCE}, @@ -631,7 +651,8 @@ o3tl::span SwUnoPropertyMapProvider::GetTableProp { static SfxItemPropertyMapEntry const aTablePropertyMap_Impl[] = { - { UNO_NAME_BACK_COLOR, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE,MID_BACK_COLOR }, + { UNO_NAME_BACK_COLOR, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE,MID_BACK_COLOR }, + { UNO_NAME_BACKGROUND_COMPLEX_COLOR, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE, MID_BACKGROUND_COMPLEX_COLOR}, { UNO_NAME_BREAK_TYPE, RES_BREAK, cppu::UnoType::get(), PROPERTY_NONE, 0}, { UNO_NAME_BACK_GRAPHIC_URL, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_GRAPHIC_URL }, { UNO_NAME_BACK_GRAPHIC, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE, MID_GRAPHIC }, @@ -684,7 +705,8 @@ o3tl::span SwUnoPropertyMapProvider::GetRangeProp { COMMON_CRSR_PARA_PROPERTIES_WITHOUT_FN_01 TABSTOPS_MAP_ENTRY - { UNO_NAME_BACK_COLOR, FN_UNO_TABLE_CELL_BACKGROUND, cppu::UnoType::get(), PropertyAttribute::MAYBEVOID, MID_BACK_COLOR }, + { UNO_NAME_BACK_COLOR, FN_UNO_TABLE_CELL_BACKGROUND, cppu::UnoType::get(), PropertyAttribute::MAYBEVOID, MID_BACK_COLOR }, + { UNO_NAME_BACKGROUND_COMPLEX_COLOR, FN_UNO_TABLE_CELL_BACKGROUND, cppu::UnoType::get(), PropertyAttribute::MAYBEVOID, MID_BACKGROUND_COMPLEX_COLOR }, { UNO_NAME_BACK_GRAPHIC_URL, RES_BACKGROUND, cppu::UnoType::get(), PropertyAttribute::MAYBEVOID ,MID_GRAPHIC_URL }, { UNO_NAME_BACK_GRAPHIC, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE, MID_GRAPHIC }, { UNO_NAME_BACK_GRAPHIC_FILTER, RES_BACKGROUND, cppu::UnoType::get(), PropertyAttribute::MAYBEVOID ,MID_GRAPHIC_FILTER }, @@ -719,6 +741,7 @@ o3tl::span SwUnoPropertyMapProvider::GetSectionPr { UNO_NAME_BACK_GRAPHIC_FILTER, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_GRAPHIC_FILTER }, { UNO_NAME_BACK_GRAPHIC_LOCATION, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_GRAPHIC_POSITION}, { UNO_NAME_BACK_COLOR, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_BACK_COLOR }, + { UNO_NAME_BACKGROUND_COMPLEX_COLOR, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE, MID_BACKGROUND_COMPLEX_COLOR }, { UNO_NAME_BACK_TRANSPARENT, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_GRAPHIC_TRANSPARENT }, { UNO_LINK_DISPLAY_NAME, FN_PARAM_LINK_DISPLAY_NAME, cppu::UnoType::get(), PropertyAttribute::READONLY, 0xbf}, { UNO_NAME_USER_DEFINED_ATTRIBUTES, RES_UNKNOWNATR_CONTAINER, cppu::UnoType::get(), PropertyAttribute::MAYBEVOID, 0 }, @@ -916,6 +939,7 @@ o3tl::span SwUnoPropertyMapProvider::GetTextTable // attributes from PROPERTY_MAP_TABLE_CELL: { UNO_NAME_BACK_COLOR, FN_UNO_TABLE_CELL_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE , MID_BACK_COLOR }, + { UNO_NAME_BACKGROUND_COMPLEX_COLOR, FN_UNO_TABLE_CELL_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE , MID_BACKGROUND_COMPLEX_COLOR }, { UNO_NAME_BACK_GRAPHIC_URL, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_GRAPHIC_URL }, { UNO_NAME_BACK_GRAPHIC, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE, MID_GRAPHIC }, { UNO_NAME_BACK_GRAPHIC_FILTER, RES_BACKGROUND, cppu::UnoType::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::get(), PropertyAttribute::MAYBEVOID, MID_HYPHEN_ZONE}, \ { UNO_NAME_CHAR_AUTO_KERNING, RES_CHRATR_AUTOKERN, cppu::UnoType::get(), PropertyAttribute::MAYBEVOID, 0 }, \ { UNO_NAME_CHAR_BACK_COLOR, RES_CHRATR_BACKGROUND, cppu::UnoType::get(), PropertyAttribute::MAYBEVOID, MID_BACK_COLOR }, \ + { UNO_NAME_CHAR_BACKGROUND_COMPLEX_COLOR, RES_CHRATR_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE, MID_BACKGROUND_COMPLEX_COLOR },\ { UNO_NAME_CHAR_HIGHLIGHT, RES_CHRATR_HIGHLIGHT, cppu::UnoType::get(), PropertyAttribute::MAYBEVOID, MID_BACK_COLOR }, \ { UNO_NAME_PARA_BACK_COLOR, RES_BACKGROUND, cppu::UnoType::get(), PropertyAttribute::MAYBEVOID, MID_BACK_COLOR }, \ + { UNO_NAME_PARA_BACKGROUND_COMPLEX_COLOR, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE , MID_BACKGROUND_COMPLEX_COLOR },\ { UNO_NAME_CHAR_CASE_MAP, RES_CHRATR_CASEMAP, cppu::UnoType::get(), PropertyAttribute::MAYBEVOID, 0 }, \ { UNO_NAME_CHAR_COLOR, RES_CHRATR_COLOR, cppu::UnoType::get(), PropertyAttribute::MAYBEVOID, 0 }, \ { UNO_NAME_CHAR_COLOR_THEME, RES_CHRATR_COLOR, cppu::UnoType::get(), PropertyAttribute::MAYBEVOID, MID_COLOR_THEME_INDEX }, \ @@ -139,9 +141,11 @@ { UNO_NAME_CHAR_HIDDEN, RES_CHRATR_HIDDEN, cppu::UnoType::get(), PropertyAttribute::MAYBEVOID, 0 }, \ { UNO_NAME_CHAR_UNDERLINE, RES_CHRATR_UNDERLINE, cppu::UnoType::get(), PropertyAttribute::MAYBEVOID, MID_TL_STYLE }, \ { UNO_NAME_CHAR_UNDERLINE_COLOR, RES_CHRATR_UNDERLINE, cppu::UnoType::get(), PropertyAttribute::MAYBEVOID, MID_TL_COLOR }, \ + { UNO_NAME_CHAR_UNDERLINE_COMPLEX_COLOR, RES_CHRATR_UNDERLINE, cppu::UnoType::get(), PropertyAttribute::MAYBEVOID, MID_TL_COMPLEX_COLOR }, \ { UNO_NAME_CHAR_UNDERLINE_HAS_COLOR, RES_CHRATR_UNDERLINE, cppu::UnoType::get(), PropertyAttribute::MAYBEVOID, MID_TL_HASCOLOR }, \ { UNO_NAME_CHAR_OVERLINE, RES_CHRATR_OVERLINE, cppu::UnoType::get(), PropertyAttribute::MAYBEVOID, MID_TL_STYLE }, \ { UNO_NAME_CHAR_OVERLINE_COLOR, RES_CHRATR_OVERLINE, cppu::UnoType::get(), PropertyAttribute::MAYBEVOID, MID_TL_COLOR }, \ + { UNO_NAME_CHAR_OVERLINE_COMPLEX_COLOR, RES_CHRATR_OVERLINE, cppu::UnoType::get(), PropertyAttribute::MAYBEVOID, MID_TL_COMPLEX_COLOR }, \ { UNO_NAME_CHAR_OVERLINE_HAS_COLOR, RES_CHRATR_OVERLINE, cppu::UnoType::get(), PropertyAttribute::MAYBEVOID, MID_TL_HASCOLOR }, \ { UNO_NAME_PARA_GRAPHIC_URL, RES_BACKGROUND, cppu::UnoType::get(), PropertyAttribute::MAYBEVOID, MID_GRAPHIC_URL }, \ { UNO_NAME_PARA_GRAPHIC, RES_BACKGROUND, cppu::UnoType::get(), PropertyAttribute::MAYBEVOID, MID_GRAPHIC }, \ @@ -199,6 +203,10 @@ { UNO_NAME_RIGHT_BORDER_DISTANCE, RES_BOX, cppu::UnoType::get(), PropertyAttribute::MAYBEVOID, RIGHT_BORDER_DISTANCE | CONVERT_TWIPS }, \ { UNO_NAME_TOP_BORDER_DISTANCE, RES_BOX, cppu::UnoType::get(), PropertyAttribute::MAYBEVOID, TOP_BORDER_DISTANCE | CONVERT_TWIPS }, \ { UNO_NAME_BOTTOM_BORDER_DISTANCE, RES_BOX, cppu::UnoType::get(), PropertyAttribute::MAYBEVOID, BOTTOM_BORDER_DISTANCE | CONVERT_TWIPS }, \ + { UNO_NAME_BORDER_LEFT_COMPLEX_COLOR, RES_BOX, cppu::UnoType::get(), PropertyAttribute::MAYBEVOID, MID_BORDER_LEFT_COLOR }, \ + { UNO_NAME_BORDER_RIGHT_COMPLEX_COLOR, RES_BOX, cppu::UnoType::get(), PropertyAttribute::MAYBEVOID, MID_BORDER_RIGHT_COLOR }, \ + { UNO_NAME_BORDER_TOP_COMPLEX_COLOR, RES_BOX, cppu::UnoType::get(), PropertyAttribute::MAYBEVOID, MID_BORDER_TOP_COLOR }, \ + { UNO_NAME_BORDER_BOTTOM_COMPLEX_COLOR, RES_BOX, cppu::UnoType::get(), PropertyAttribute::MAYBEVOID, MID_BORDER_BOTTOM_COLOR }, \ { UNO_NAME_PARA_USER_DEFINED_ATTRIBUTES, RES_UNKNOWNATR_CONTAINER, cppu::UnoType::get(), PropertyAttribute::MAYBEVOID, 0 }, \ { UNO_NAME_TEXT_USER_DEFINED_ATTRIBUTES, RES_TXTATR_UNKNOWN_CONTAINER, cppu::UnoType::get(), PropertyAttribute::MAYBEVOID, 0 }, \ { UNO_NAME_PARA_SHADOW_FORMAT, RES_SHADOW, cppu::UnoType::get(), PROPERTY_NONE, CONVERT_TWIPS }, \ @@ -274,6 +282,7 @@ { UNO_NAME_ANCHOR_FRAME, RES_ANCHOR, cppu::UnoType::get(), PropertyAttribute::MAYBEVOID, MID_ANCHOR_ANCHORFRAME}, \ ANCHOR_TYPES_PROPERTY\ { UNO_NAME_BACK_COLOR, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_BACK_COLOR }, \ + { UNO_NAME_BACKGROUND_COMPLEX_COLOR, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_BACKGROUND_COMPLEX_COLOR }, \ { UNO_NAME_BACK_COLOR_R_G_B, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_BACK_COLOR_R_G_B}, \ { UNO_NAME_BACK_COLOR_TRANSPARENCY, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_BACK_COLOR_TRANSPARENCY}, \ { UNO_NAME_FRAME_INTEROP_GRAB_BAG, RES_FRMATR_GRABBAG, cppu::UnoType< cppu::UnoSequenceType >::get(), PROPERTY_NONE, 0}, \ @@ -328,6 +337,10 @@ { UNO_NAME_RIGHT_BORDER_DISTANCE, RES_BOX, cppu::UnoType::get(), 0, RIGHT_BORDER_DISTANCE |CONVERT_TWIPS }, \ { UNO_NAME_TOP_BORDER_DISTANCE, RES_BOX, cppu::UnoType::get(), 0, TOP_BORDER_DISTANCE |CONVERT_TWIPS }, \ { UNO_NAME_BOTTOM_BORDER_DISTANCE, RES_BOX, cppu::UnoType::get(), 0, BOTTOM_BORDER_DISTANCE|CONVERT_TWIPS }, \ + { UNO_NAME_BORDER_LEFT_COMPLEX_COLOR, RES_BOX, cppu::UnoType::get(), 0, MID_BORDER_LEFT_COLOR }, \ + { UNO_NAME_BORDER_RIGHT_COMPLEX_COLOR, RES_BOX, cppu::UnoType::get(), 0, MID_BORDER_RIGHT_COLOR }, \ + { UNO_NAME_BORDER_TOP_COMPLEX_COLOR, RES_BOX, cppu::UnoType::get(), 0, MID_BORDER_TOP_COLOR }, \ + { UNO_NAME_BORDER_BOTTOM_COMPLEX_COLOR, RES_BOX, cppu::UnoType::get(), 0, MID_BORDER_BOTTOM_COLOR }, \ { UNO_LINK_DISPLAY_NAME, FN_PARAM_LINK_DISPLAY_NAME, cppu::UnoType::get(), PropertyAttribute::READONLY, 0xbf}, \ { UNO_NAME_USER_DEFINED_ATTRIBUTES, RES_UNKNOWNATR_CONTAINER, cppu::UnoType::get(), PropertyAttribute::MAYBEVOID, 0 },\ { UNO_NAME_Z_ORDER, FN_UNO_Z_ORDER, cppu::UnoType::get(), PROPERTY_NONE, 0}, \ @@ -364,8 +377,10 @@ { UNO_NAME_CHAR_AUTO_KERNING, RES_CHRATR_AUTOKERN , cppu::UnoType::get() , PROPERTY_NONE, 0},\ { UNO_NAME_CHAR_BACK_TRANSPARENT, RES_CHRATR_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_GRAPHIC_TRANSPARENT },\ { UNO_NAME_CHAR_BACK_COLOR, RES_CHRATR_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_BACK_COLOR },\ + { UNO_NAME_CHAR_BACKGROUND_COMPLEX_COLOR, RES_CHRATR_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE, MID_BACKGROUND_COMPLEX_COLOR },\ { UNO_NAME_CHAR_HIGHLIGHT, RES_CHRATR_HIGHLIGHT, cppu::UnoType::get(), PROPERTY_NONE ,MID_BACK_COLOR },\ { UNO_NAME_PARA_BACK_COLOR, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_BACK_COLOR },\ + { UNO_NAME_PARA_BACKGROUND_COMPLEX_COLOR, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE , MID_BACKGROUND_COMPLEX_COLOR },\ { UNO_NAME_PARA_BACK_TRANSPARENT, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_GRAPHIC_TRANSPARENT },\ { UNO_NAME_PARA_GRAPHIC_URL, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_GRAPHIC_URL },\ { UNO_NAME_PARA_GRAPHIC, RES_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_GRAPHIC },\ @@ -389,9 +404,11 @@ { UNO_NAME_CHAR_UNDERLINE, RES_CHRATR_UNDERLINE , cppu::UnoType::get(), PROPERTY_NONE, MID_TL_STYLE},\ { UNO_NAME_CHAR_UNDERLINE_COLOR, RES_CHRATR_UNDERLINE , cppu::UnoType::get(), PROPERTY_NONE, MID_TL_COLOR},\ { UNO_NAME_CHAR_UNDERLINE_HAS_COLOR, RES_CHRATR_UNDERLINE , cppu::UnoType::get(), PROPERTY_NONE, MID_TL_HASCOLOR},\ + { UNO_NAME_CHAR_UNDERLINE_COMPLEX_COLOR, RES_CHRATR_UNDERLINE, cppu::UnoType::get(), PropertyAttribute::MAYBEVOID, MID_TL_COMPLEX_COLOR }, \ { UNO_NAME_CHAR_OVERLINE, RES_CHRATR_OVERLINE , cppu::UnoType::get(), PROPERTY_NONE, MID_TL_STYLE},\ { UNO_NAME_CHAR_OVERLINE_COLOR, RES_CHRATR_OVERLINE , cppu::UnoType::get(), PROPERTY_NONE, MID_TL_COLOR},\ { UNO_NAME_CHAR_OVERLINE_HAS_COLOR, RES_CHRATR_OVERLINE , cppu::UnoType::get(), PROPERTY_NONE, MID_TL_HASCOLOR},\ + { UNO_NAME_CHAR_OVERLINE_COMPLEX_COLOR, RES_CHRATR_OVERLINE, cppu::UnoType::get(), PropertyAttribute::MAYBEVOID, MID_TL_COMPLEX_COLOR }, \ { UNO_NAME_PARA_LEFT_MARGIN, RES_MARGIN_TEXTLEFT, cppu::UnoType::get(), PROPERTY_NONE, MID_TXT_LMARGIN|CONVERT_TWIPS},\ { UNO_NAME_PARA_RIGHT_MARGIN, RES_MARGIN_RIGHT, cppu::UnoType::get(), PROPERTY_NONE, MID_R_MARGIN|CONVERT_TWIPS},\ { UNO_NAME_PARA_LEFT_MARGIN_RELATIVE, RES_MARGIN_TEXTLEFT, cppu::UnoType::get(), PROPERTY_NONE, MID_L_REL_MARGIN},\ @@ -444,6 +461,10 @@ { UNO_NAME_RIGHT_BORDER_DISTANCE, RES_BOX, cppu::UnoType::get(), 0, RIGHT_BORDER_DISTANCE |CONVERT_TWIPS },\ { UNO_NAME_TOP_BORDER_DISTANCE, RES_BOX, cppu::UnoType::get(), 0, TOP_BORDER_DISTANCE |CONVERT_TWIPS },\ { UNO_NAME_BOTTOM_BORDER_DISTANCE, RES_BOX, cppu::UnoType::get(), 0, BOTTOM_BORDER_DISTANCE|CONVERT_TWIPS },\ + { UNO_NAME_BORDER_LEFT_COMPLEX_COLOR, RES_BOX, cppu::UnoType::get(), 0, MID_BORDER_LEFT_COLOR }, \ + { UNO_NAME_BORDER_RIGHT_COMPLEX_COLOR, RES_BOX, cppu::UnoType::get(), 0, MID_BORDER_RIGHT_COLOR }, \ + { UNO_NAME_BORDER_TOP_COMPLEX_COLOR, RES_BOX, cppu::UnoType::get(), 0, MID_BORDER_TOP_COLOR }, \ + { UNO_NAME_BORDER_BOTTOM_COMPLEX_COLOR, RES_BOX, cppu::UnoType::get(), 0, MID_BORDER_BOTTOM_COLOR }, \ { UNO_NAME_PARA_IS_HYPHENATION, RES_PARATR_HYPHENZONE, cppu::UnoType::get(), PropertyAttribute::MAYBEVOID, MID_IS_HYPHEN },\ { UNO_NAME_PARA_HYPHENATION_NO_CAPS, RES_PARATR_HYPHENZONE, cppu::UnoType::get(), PropertyAttribute::MAYBEVOID, MID_HYPHEN_NO_CAPS },\ { UNO_NAME_PARA_HYPHENATION_NO_LAST_WORD, RES_PARATR_HYPHENZONE, cppu::UnoType::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 >::get(), PROPERTY_NONE, 0}, #define COMMON_ACCESSIBILITY_TEXT_ATTRIBUTE \ - { UNO_NAME_CHAR_BACK_COLOR, RES_CHRATR_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_BACK_COLOR }, \ + { UNO_NAME_CHAR_BACK_COLOR, RES_CHRATR_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE ,MID_BACK_COLOR }, \ + { UNO_NAME_CHAR_BACKGROUND_COMPLEX_COLOR, RES_CHRATR_BACKGROUND, cppu::UnoType::get(), PROPERTY_NONE, MID_BACKGROUND_COMPLEX_COLOR },\ { UNO_NAME_CHAR_COLOR, RES_CHRATR_COLOR, cppu::UnoType::get(), PROPERTY_NONE, 0}, \ { UNO_NAME_CHAR_COLOR_THEME, RES_CHRATR_COLOR, cppu::UnoType::get(), PROPERTY_NONE, MID_COLOR_THEME_INDEX }, \ { UNO_NAME_CHAR_COLOR_TINT_OR_SHADE, RES_CHRATR_COLOR, cppu::UnoType::get(), PROPERTY_NONE, MID_COLOR_TINT_OR_SHADE }, \ @@ -499,6 +521,8 @@ { UNO_NAME_CHAR_SHADOWED, RES_CHRATR_SHADOWED , cppu::UnoType::get() , PROPERTY_NONE, 0}, \ { UNO_NAME_CHAR_STRIKEOUT, RES_CHRATR_CROSSEDOUT, cppu::UnoType::get(), PropertyAttribute::MAYBEVOID, MID_CROSS_OUT}, \ { UNO_NAME_CHAR_UNDERLINE_COLOR, RES_CHRATR_UNDERLINE , cppu::UnoType::get(), PropertyAttribute::MAYBEVOID, MID_TL_COLOR}, \ + { UNO_NAME_CHAR_UNDERLINE_COLOR, RES_CHRATR_UNDERLINE , cppu::UnoType::get(), PropertyAttribute::MAYBEVOID, MID_TL_COLOR}, \ + { UNO_NAME_CHAR_UNDERLINE_COMPLEX_COLOR, RES_CHRATR_UNDERLINE, cppu::UnoType::get(), PropertyAttribute::MAYBEVOID, MID_TL_COMPLEX_COLOR}, \ { UNO_NAME_CHAR_WEIGHT, RES_CHRATR_WEIGHT , cppu::UnoType::get(), PropertyAttribute::MAYBEVOID, MID_WEIGHT}, \ { UNO_NAME_NUMBERING_LEVEL, RES_PARATR_LIST_LEVEL,cppu::UnoType::get(), PropertyAttribute::MAYBEVOID, 0}, \ { UNO_NAME_CHAR_UNDERLINE, RES_CHRATR_UNDERLINE , cppu::UnoType::get(), PropertyAttribute::MAYBEVOID, MID_TL_STYLE}, \ @@ -544,6 +568,7 @@ { UNO_NAME_FILLTRANSPARENCEGRADIENT, XATTR_FILLFLOATTRANSPARENCE, cppu::UnoType::get(), 0, MID_FILLGRADIENT}, \ { UNO_NAME_FILLTRANSPARENCEGRADIENTNAME, XATTR_FILLFLOATTRANSPARENCE, cppu::UnoType::get(), 0, MID_NAME }, \ { UNO_NAME_FILLCOLOR_2, XATTR_SECONDARYFILLCOLOR, cppu::UnoType::get(), 0, 0}, \ + { UNO_NAME_FILL_COMPLEX_COLOR, XATTR_FILLCOLOR, cppu::UnoType::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(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(aBoxItem->GetTop())->SetColor( rNewColor ); - if ( aBoxItem->GetBottom() ) - const_cast(aBoxItem->GetBottom())->SetColor( rNewColor ); - if ( aBoxItem->GetLeft() ) - const_cast(aBoxItem->GetLeft())->SetColor( rNewColor ); - if ( aBoxItem->GetRight() ) - const_cast(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(pItem)->GetValue(); + { + auto* pColorItem = static_cast(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 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 #include #include -// 50 cm 28350 +#include +// 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. -- cgit