diff options
author | Miklos Vajna <vmiklos@collabora.com> | 2019-11-18 18:40:13 +0100 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.com> | 2019-11-18 21:13:50 +0100 |
commit | 543a0658f961f24db6804b90c5389aee15ba2ce4 (patch) | |
tree | 7c732b91a6c5911793bed5d2c0bf3aa638feac60 /editeng | |
parent | 00e1adec49c50f9128dd02ae721e62ae3e729ad6 (diff) |
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@collabora.com>
Tested-by: Jenkins
Diffstat (limited to 'editeng')
-rw-r--r-- | editeng/source/items/textitem.cxx | 38 |
1 files changed, 34 insertions, 4 deletions
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 |