summaryrefslogtreecommitdiff
path: root/editeng
diff options
context:
space:
mode:
authorGülşah Köse <gulsah.kose@collabora.com>2021-05-26 08:47:38 +0300
committerGülşah Köse <gulsah.kose@collabora.com>2021-05-26 09:04:37 +0200
commit350d40417fe2cb56e16116f12216d08b9f2705b0 (patch)
treefd747136949ce7e3e7ebd51241a5250299223816 /editeng
parent3b3ba7065acd3ba783e56b568d67ace7dc352371 (diff)
Seperate SvxBackgroundColorItem from SvxColorItem
SvxBackgroundColorItem derivated from SfxPoolItem instead of SvxColorItem. Casting is common usage to control if object is this or not. When we can cast SvxBackgroundColorItem to SvxColorItem we can not seperate them anymore. eg: Char color is a SvxColorItem and char background color is a SvxBackgroundColorItem. They can be hold together and we should understand they are different types. Change-Id: I7b1879a1b00de26c0b8a2d9f8d658aa3aef75ecb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116135 Tested-by: Jenkins Reviewed-by: Gülşah Köse <gulsah.kose@collabora.com>
Diffstat (limited to 'editeng')
-rw-r--r--editeng/source/items/textitem.cxx66
1 files changed, 56 insertions, 10 deletions
diff --git a/editeng/source/items/textitem.cxx b/editeng/source/items/textitem.cxx
index ed4806159a04..d67bd02df5c1 100644
--- a/editeng/source/items/textitem.cxx
+++ b/editeng/source/items/textitem.cxx
@@ -1313,26 +1313,32 @@ bool SvxContourItem::GetPresentation
// class SvxBackgroundColorItem -----------------------------------------
SvxBackgroundColorItem::SvxBackgroundColorItem( const sal_uInt16 nId ) :
- SvxColorItem( nId )
+ SfxPoolItem( nId ),
+ mColor( COL_WHITE )
{
}
+SvxBackgroundColorItem::SvxBackgroundColorItem( const Color& rCol, const sal_uInt16 nId ) :
+ SfxPoolItem( nId ),
+ mColor( rCol )
+{
+}
-SvxBackgroundColorItem::SvxBackgroundColorItem( const Color& rCol,
- const sal_uInt16 nId ) :
- SvxColorItem( rCol, nId )
+SvxBackgroundColorItem::~SvxBackgroundColorItem()
{
}
-SvxBackgroundColorItem* SvxBackgroundColorItem::Clone( SfxItemPool * ) const
+bool SvxBackgroundColorItem::operator==( const SfxPoolItem& rAttr ) const
{
- return new SvxBackgroundColorItem(*this);
+ assert(SfxPoolItem::operator==(rAttr));
+
+ return mColor == static_cast<const SvxBackgroundColorItem&>( rAttr ).mColor;
}
bool SvxBackgroundColorItem::QueryValue( uno::Any& rVal, sal_uInt8 nMemberId ) const
{
nMemberId &= ~CONVERT_TWIPS;
- Color aColor = SvxColorItem::GetValue();
+ Color aColor = SvxBackgroundColorItem::GetValue();
switch( nMemberId )
{
@@ -1354,27 +1360,67 @@ bool SvxBackgroundColorItem::PutValue( const uno::Any& rVal, sal_uInt8 nMemberId
{
nMemberId &= ~CONVERT_TWIPS;
Color nColor;
- Color aColor = SvxColorItem::GetValue();
+ Color aColor = SvxBackgroundColorItem::GetValue();
switch( nMemberId )
{
case MID_GRAPHIC_TRANSPARENT:
{
aColor.SetAlpha( Any2Bool( rVal ) ? 0 : 255 );
- SvxColorItem::SetValue( aColor );
+ SvxBackgroundColorItem::SetValue( aColor );
break;
}
default:
{
if(!(rVal >>= nColor))
return false;
- SvxColorItem::SetValue( nColor );
+ SvxBackgroundColorItem::SetValue( nColor );
break;
}
}
return true;
}
+SvxBackgroundColorItem* SvxBackgroundColorItem::Clone( SfxItemPool * ) const
+{
+ return new SvxBackgroundColorItem(*this);
+}
+
+
+bool SvxBackgroundColorItem::GetPresentation
+(
+ SfxItemPresentation /*ePres*/,
+ MapUnit /*eCoreUnit*/,
+ MapUnit /*ePresUnit*/,
+ OUString& rText, const IntlWrapper& /*rIntl*/
+) const
+{
+ rText = ::GetColorString( mColor );
+ return true;
+}
+
+void SvxBackgroundColorItem::dumpAsXml(xmlTextWriterPtr pWriter) const
+{
+ (void)xmlTextWriterStartElement(pWriter, BAD_CAST("SvxBackgroundColorItem"));
+ (void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST("whichId"), BAD_CAST(OString::number(Which()).getStr()));
+
+ std::stringstream ss;
+ ss << mColor;
+ (void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST("value"), BAD_CAST(ss.str().c_str()));
+
+ OUString aStr;
+ IntlWrapper aIntlWrapper(SvtSysLocale().GetUILanguageTag());
+ GetPresentation( SfxItemPresentation::Complete, MapUnit::Map100thMM, MapUnit::Map100thMM, aStr, aIntlWrapper);
+ (void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST("presentation"), BAD_CAST(OUStringToOString(aStr, RTL_TEXTENCODING_UTF8).getStr()));
+ (void)xmlTextWriterEndElement(pWriter);
+}
+
+void SvxBackgroundColorItem::SetValue( const Color& rNewCol )
+{
+ mColor = rNewCol;
+}
+
+
// class SvxColorItem ----------------------------------------------------
SvxColorItem::SvxColorItem( const sal_uInt16 nId ) :
SfxPoolItem( nId ),