[Libreoffice-commits] core.git: editeng/source include/editeng
Miklos Vajna (via logerrit)
logerrit at kemper.freedesktop.org
Mon Nov 18 20:15:03 UTC 2019
editeng/source/items/textitem.cxx | 38 ++++++++++++++++++++++++++++++++++----
include/editeng/memberids.h | 4 ++++
2 files changed, 38 insertions(+), 4 deletions(-)
New commits:
commit 543a0658f961f24db6804b90c5389aee15ba2ce4
Author: Miklos Vajna <vmiklos at collabora.com>
AuthorDate: Mon Nov 18 18:40:13 2019 +0100
Commit: Miklos Vajna <vmiklos at collabora.com>
CommitDate: Mon Nov 18 21:13:50 2019 +0100
editeng: add doc model for semi-transparent text
tools Color can handle the alpha just fine, but add a separate member ID
for transparency to be consistent with the existing border and fill
color API.
Change-Id: I8466da9fb40ab1d0c97b06a0594f89719ccc1959
Reviewed-on: https://gerrit.libreoffice.org/83116
Reviewed-by: Miklos Vajna <vmiklos at collabora.com>
Tested-by: Jenkins
diff --git a/editeng/source/items/textitem.cxx b/editeng/source/items/textitem.cxx
index ef0a416324a0..2ca24b9f2c6c 100644
--- a/editeng/source/items/textitem.cxx
+++ b/editeng/source/items/textitem.cxx
@@ -1442,15 +1442,45 @@ bool SvxColorItem::operator==( const SfxPoolItem& rAttr ) const
return mColor == static_cast<const SvxColorItem&>( rAttr ).mColor;
}
-bool SvxColorItem::QueryValue( uno::Any& rVal, sal_uInt8 /*nMemberId*/ ) const
+bool SvxColorItem::QueryValue( uno::Any& rVal, sal_uInt8 nMemberId ) const
{
- rVal <<= mColor;
+ nMemberId &= ~CONVERT_TWIPS;
+ switch (nMemberId)
+ {
+ case MID_COLOR_ALPHA:
+ {
+ rVal <<= mColor.GetTransparency();
+ break;
+ }
+ default:
+ {
+ rVal <<= mColor;
+ break;
+ }
+ }
return true;
}
-bool SvxColorItem::PutValue( const uno::Any& rVal, sal_uInt8 /*nMemberId*/ )
+bool SvxColorItem::PutValue( const uno::Any& rVal, sal_uInt8 nMemberId )
{
- return (rVal >>= mColor);
+ nMemberId &= ~CONVERT_TWIPS;
+ switch(nMemberId)
+ {
+ case MID_COLOR_ALPHA:
+ {
+ sal_Int16 nTransparency = 0;
+ bool bRet = rVal >>= nTransparency;
+ if (bRet)
+ {
+ mColor.SetTransparency(nTransparency);
+ }
+ return bRet;
+ }
+ default:
+ {
+ return rVal >>= mColor;
+ }
+ }
}
SfxPoolItem* SvxColorItem::Clone( SfxItemPool * ) const
diff --git a/include/editeng/memberids.h b/include/editeng/memberids.h
index c41b45af9cb9..98023e39d3fa 100644
--- a/include/editeng/memberids.h
+++ b/include/editeng/memberids.h
@@ -175,6 +175,10 @@
// SvxShadowItem
#define MID_SHADOW_TRANSPARENCE 1
+// SvxColorItem
+#define MID_COLOR_RGB 0
+#define MID_COLOR_ALPHA 1
+
#endif
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
More information about the Libreoffice-commits
mailing list