14 #include <svx/svxids.hrc>
31 ShadowPropertyPanel::ShadowPropertyPanel(
34 :
PanelLayout(pParent,
"ShadowPropertyPanel",
"svx/ui/sidebarshadow.ui"),
35 maShadowController(SID_ATTR_FILL_SHADOW, *pBindings, *this),
36 maShadowTransController(SID_ATTR_SHADOW_TRANSPARENCE, *pBindings, *this),
37 maShadowBlurController(SID_ATTR_SHADOW_BLUR, *pBindings, *this),
38 maShadowColorController(SID_ATTR_SHADOW_COLOR, *pBindings, *this),
39 maShadowXDistanceController(SID_ATTR_SHADOW_XDISTANCE, *pBindings, *this),
40 maShadowYDistanceController(SID_ATTR_SHADOW_YDISTANCE, *pBindings, *this),
41 mpBindings(pBindings),
45 mxShowShadow(m_xBuilder->weld_check_button(
"SHOW_SHADOW")),
46 mxShadowDistance(m_xBuilder->weld_metric_spin_button(
"LB_DISTANCE",
FieldUnit::
POINT)),
47 mxLBShadowColor(new
ColorListBox(m_xBuilder->weld_menu_button(
"LB_SHADOW_COLOR"), [this]{
return GetFrameWeld(); })),
48 mxShadowAngle(m_xBuilder->weld_combo_box(
"LB_ANGLE")),
49 mxFTAngle(m_xBuilder->weld_label(
"angle")),
50 mxFTDistance(m_xBuilder->weld_label(
"distance")),
51 mxFTTransparency(m_xBuilder->weld_label(
"transparency_label")),
52 mxFTBlur(m_xBuilder->weld_label(
"blur_label")),
53 mxFTColor(m_xBuilder->weld_label(
"color")),
54 mxShadowTransSlider(m_xBuilder->weld_scale(
"transparency_slider")),
55 mxShadowTransMetric(m_xBuilder->weld_metric_spin_button(
"FIELD_TRANSPARENCY", FieldUnit::PERCENT)),
56 mxShadowBlurMetric(m_xBuilder->weld_metric_spin_button(
"LB_SHADOW_BLUR", FieldUnit::POINT))
104 GetBindings()->GetDispatcher()->ExecuteList(SID_ATTR_FILL_SHADOW,
105 SfxCallMode::RECORD, { &aItem });
116 GetBindings()->GetDispatcher()->ExecuteList(SID_ATTR_FILL_SHADOW,
117 SfxCallMode::RECORD, { &aItem });
119 if (mxShadowDistance->get_value(FieldUnit::POINT) == 0)
120 mxShadowDistance->set_value( 8, FieldUnit::POINT );
133 GetBindings()->GetDispatcher()->ExecuteList(SID_ATTR_SHADOW_COLOR,
134 SfxCallMode::RECORD, { &aItem });
139 sal_uInt16 nVal = mxShadowTransMetric->get_value(FieldUnit::PERCENT);
140 SetTransparencyValue(nVal);
142 GetBindings()->GetDispatcher()->ExecuteList(SID_ATTR_SHADOW_TRANSPARENCE,
143 SfxCallMode::RECORD, { &aItem });
150 mpBindings->GetDispatcher()->ExecuteList(SID_ATTR_SHADOW_BLUR, SfxCallMode::RECORD, { &aItem });
155 sal_uInt16 nVal = mxShadowTransSlider->get_value();
156 SetTransparencyValue(nVal);
158 GetBindings()->GetDispatcher()->ExecuteList(SID_ATTR_SHADOW_TRANSPARENCE,
159 SfxCallMode::RECORD, { &aItem });
164 ModifyShadowDistance();
169 ModifyShadowDistance();
178 case 0:
nX =
nXY;
nY = 0;
break;
180 case 90:
nX = 0;
nY = -
nXY;
break;
181 case 135:
nX =
nY = -
nXY;
break;
182 case 180:
nX = -
nXY;
nY = 0;
break;
184 case 270:
nX = 0;
nY =
nXY;
break;
185 case 315:
nX =
nY =
nXY;
break;
190 SfxCallMode::RECORD, { &aXItem });
192 SfxCallMode::RECORD, { &aYItem });
252 mxShadowAngle->append(OUString::number(0), rLocaleData.
getNum(0, 0,
true,
true) + sSuffix);
253 mxShadowAngle->append(OUString::number(45), rLocaleData.
getNum(45, 0,
true,
true) + sSuffix);
254 mxShadowAngle->append(OUString::number(90), rLocaleData.
getNum(90, 0,
true,
true) + sSuffix);
255 mxShadowAngle->append(OUString::number(135), rLocaleData.
getNum(135, 0,
true,
true) + sSuffix);
256 mxShadowAngle->append(OUString::number(180), rLocaleData.
getNum(180, 0,
true,
true) + sSuffix);
257 mxShadowAngle->append(OUString::number(225), rLocaleData.
getNum(225, 0,
true,
true) + sSuffix);
258 mxShadowAngle->append(OUString::number(270), rLocaleData.
getNum(270, 0,
true,
true) + sSuffix);
259 mxShadowAngle->append(OUString::number(315), rLocaleData.
getNum(315, 0,
true,
true) + sSuffix);
269 case SID_ATTR_FILL_SHADOW:
271 if(eState >= SfxItemState::DEFAULT)
287 case SID_ATTR_SHADOW_TRANSPARENCE:
289 if(eState >= SfxItemState::DEFAULT)
292 if(pTransparencyItem)
294 const sal_uInt16 nVal = pTransparencyItem->
GetValue();
302 case SID_ATTR_SHADOW_BLUR:
304 if (eState >= SfxItemState::DEFAULT)
314 case SID_ATTR_SHADOW_COLOR:
316 if(eState >= SfxItemState::DEFAULT)
326 case SID_ATTR_SHADOW_XDISTANCE:
328 if(eState >= SfxItemState::DEFAULT)
338 case SID_ATTR_SHADOW_YDISTANCE:
340 if(eState >= SfxItemState::DEFAULT)
358 if(pParent ==
nullptr)
359 throw lang::IllegalArgumentException(
"no parent Window given to ShadowPropertyPanel::Create",
nullptr, 0);
360 if(pBindings ==
nullptr)
361 throw lang::IllegalArgumentException(
"no SfxBindings given to ShadowPropertyPanel::Create",
nullptr, 2);
363 return std::make_unique<ShadowPropertyPanel>(pParent, pBindings);
#define LINK(Instance, Class, Member)
sal_Int32 GetValue() const
const SfxPoolItem * ExecuteList(sal_uInt16 nSlot, SfxCallMode nCall, std::initializer_list< SfxPoolItem const * > args, std::initializer_list< SfxPoolItem const * > internalargs=std::initializer_list< SfxPoolItem const * >())
const LocaleDataWrapper & GetLocaleDataWrapper() const
SdrMetricItem makeSdrShadowYDistItem(tools::Long nDist)
static const AllSettings & GetSettings()
sal_uInt16 GetValue() const
const Color & GetColorValue() const
constexpr TypedWhichId< SdrMetricItem > SDRATTR_SHADOWBLUR(SDRATTR_SHADOW_FIRST+9)
XColorItem makeSdrShadowColorItem(const Color &rTheColor)
SdrPercentItem makeSdrShadowTransparenceItem(sal_uInt16 nTransp)
SdrMetricItem makeSdrShadowXDistItem(tools::Long nDist)
SdrOnOffItem makeSdrShadowItem(bool bShadow)
SfxDispatcher * GetDispatcher() const
virtual weld::Window * GetFrameWeld() const
OUString getNum(sal_Int64 nNumber, sal_uInt16 nDecimals, bool bUseThousandSep=true, bool bTrailingZeros=true) const