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 <vmik...@collabora.com> AuthorDate: Mon Nov 18 18:40:13 2019 +0100 Commit: Miklos Vajna <vmik...@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 <vmik...@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: */ _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits