diff options
Diffstat (limited to 'svx/source/sidebar/area/AreaPropertyPanelBase.cxx')
-rw-r--r-- | svx/source/sidebar/area/AreaPropertyPanelBase.cxx | 52 |
1 files changed, 51 insertions, 1 deletions
diff --git a/svx/source/sidebar/area/AreaPropertyPanelBase.cxx b/svx/source/sidebar/area/AreaPropertyPanelBase.cxx index 428d35d94d59..627d86bc52d7 100644 --- a/svx/source/sidebar/area/AreaPropertyPanelBase.cxx +++ b/svx/source/sidebar/area/AreaPropertyPanelBase.cxx @@ -25,6 +25,7 @@ #include <sfx2/objsh.hxx> #include <svx/xfltrit.hxx> #include <svx/xflftrit.hxx> +#include <svx/xfilluseslidebackgrounditem.hxx> #include <svx/xtable.hxx> #include <sfx2/sidebar/Panel.hxx> #include <sfx2/opengrf.hxx> @@ -49,7 +50,8 @@ enum eFillStyle GRADIENT, HATCH, BITMAP, - PATTERN + PATTERN, + USE_BACKGROUND }; } @@ -422,6 +424,22 @@ IMPL_LINK_NOARG(AreaPropertyPanelBase, SelectFillTypeHdl, weld::ComboBox&, void) setFillStyleAndBitmap(&aXFillStyleItem, aXFillBitmapItem); break; } + case USE_BACKGROUND: + { + mxLbFillAttr->show(); + mxLbFillGradFrom->hide(); + mxLbFillGradTo->hide(); + mxGradientStyle->hide(); + mxMTRAngle->hide(); + mxToolBoxColor->hide(); + mxBmpImport->hide(); + mxLbFillAttr->set_sensitive(false); + + const XFillStyleItem aXFillStyleItem(drawing::FillStyle_NONE); + const XFillUseSlideBackgroundItem aXFillUseSlideBackgroundItem(true); + setFillUseBackground(&aXFillStyleItem, aXFillUseSlideBackgroundItem); + break; + } } meLastXFS = static_cast<sal_uInt16>(nPos); @@ -973,6 +991,35 @@ void AreaPropertyPanelBase::updateFillBitmap(bool bDisabled, bool bDefaultOrSet, m_pPanel->TriggerDeckLayouting(); } +void AreaPropertyPanelBase::updateFillUseBackground(bool bDisabled, bool bDefaultOrSet, const SfxPoolItem* pState) +{ + if (bDisabled) + { + mpUseSlideBackgroundItem.reset(); + return; + } + + if (bDefaultOrSet) + { + if (pState) + { + const XFillUseSlideBackgroundItem* pItem = static_cast<const XFillUseSlideBackgroundItem*>(pState); + // When XFillUseSlideBackgroundItem is true, select "Use Background Fill". When false, select "None" + int nPos = pItem->GetValue() ? 6 : 0; + mxLbFillType->set_active(nPos); + mpUseSlideBackgroundItem.reset(pItem->Clone()); + } + else + { + mpUseSlideBackgroundItem.reset(); + } + } + else + { + mpUseSlideBackgroundItem.reset(); + } +} + void AreaPropertyPanelBase::NotifyItemUpdate( sal_uInt16 nSID, SfxItemState eState, @@ -1005,6 +1052,9 @@ void AreaPropertyPanelBase::NotifyItemUpdate( case SID_ATTR_FILL_BITMAP: updateFillBitmap(bDisabled, bDefaultOrSet, pState); break; + case SID_ATTR_FILL_USE_SLIDE_BACKGROUND: + updateFillUseBackground(bDisabled, bDefaultOrSet, pState); + break; case SID_GRADIENT_LIST: { if(bDefault) |