editeng/source/items/textitem.cxx | 38 ++++++++++++++++++++++++++++++++++---- include/editeng/memberids.h | 4 ++++ 2 files changed, 38 insertions(+), 4 deletions(-)
New commits: commit 2ed7751d0f6793aa11a6c1be4c18b92af8d696bd Author: Miklos Vajna <vmik...@collabora.com> AuthorDate: Mon Nov 18 18:40:13 2019 +0100 Commit: Miklos Vajna <vmik...@collabora.com> CommitDate: Fri Feb 21 15:57:29 2020 +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. (cherry picked from commit 543a0658f961f24db6804b90c5389aee15ba2ce4) Change-Id: I8466da9fb40ab1d0c97b06a0594f89719ccc1959 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/89177 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com> Reviewed-by: Miklos Vajna <vmik...@collabora.com> diff --git a/editeng/source/items/textitem.cxx b/editeng/source/items/textitem.cxx index b3912754cbe4..d3e7be9cb737 100644 --- a/editeng/source/items/textitem.cxx +++ b/editeng/source/items/textitem.cxx @@ -1702,15 +1702,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 6c1e2d303041..83945b508a85 100644 --- a/include/editeng/memberids.h +++ b/include/editeng/memberids.h @@ -177,6 +177,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