1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3  * This file is part of the LibreOffice project.
4  *
5  * This Source Code Form is subject to the terms of the Mozilla Public
6  * License, v. 2.0. If a copy of the MPL was not distributed with this
7  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8  */
9 #ifndef INCLUDED_SVX_SOURCE_SIDEBAR_EFFECT_EFFECTPROPERTYPANEL_HXX
10 #define INCLUDED_SVX_SOURCE_SIDEBAR_EFFECT_EFFECTPROPERTYPANEL_HXX
11 
12 #include <sfx2/sidebar/ControllerItem.hxx>
13 #include <sfx2/sidebar/PanelLayout.hxx>
14 
15 class ColorListBox;
16 
17 namespace svx::sidebar
18 {
19 class EffectPropertyPanel : public PanelLayout,
20                             public ::sfx2::sidebar::ControllerItem::ItemUpdateReceiverInterface
21 {
22 public:
23     EffectPropertyPanel(weld::Widget* pParent, SfxBindings* pBindings);
24     virtual ~EffectPropertyPanel() override;
25 
26     static std::unique_ptr<PanelLayout> Create(weld::Widget* pParent, SfxBindings* pBindings);
27 
28     virtual void NotifyItemUpdate(const sal_uInt16 nSId, const SfxItemState eState,
29                                   const SfxPoolItem* pState) override;
30 
GetControlState(const sal_uInt16,boost::property_tree::ptree &)31     virtual void GetControlState(const sal_uInt16 /*nSId*/,
32                                  boost::property_tree::ptree& /*rState*/) override{};
33 
34 private:
35     sfx2::sidebar::ControllerItem maGlowColorController;
36     sfx2::sidebar::ControllerItem maGlowRadiusController;
37     sfx2::sidebar::ControllerItem maGlowTransparencyController;
38     std::unique_ptr<weld::Label> mxFTTransparency;
39     sfx2::sidebar::ControllerItem maSoftEdgeRadiusController;
40 
41     SfxBindings* mpBindings;
42 
43     std::unique_ptr<weld::MetricSpinButton> mxGlowRadius;
44     std::unique_ptr<ColorListBox> mxLBGlowColor;
45     std::unique_ptr<weld::MetricSpinButton> mxGlowTransparency;
46     std::unique_ptr<weld::Label> mxFTRadiusSoftEdge;
47     std::unique_ptr<weld::Label> mxFTRadiusGlow;
48     std::unique_ptr<weld::Label> mxFTColor;
49     std::unique_ptr<weld::MetricSpinButton> mxSoftEdgeRadius;
50 
51     void Initialize();
52     void UpdateControls();
53 
54     DECL_LINK(ModifyGlowColorHdl, ColorListBox&, void);
55     DECL_LINK(ModifyGlowRadiusHdl, weld::MetricSpinButton&, void);
56     DECL_LINK(ModifyGlowTransparencyHdl, weld::MetricSpinButton&, void);
57     DECL_LINK(ModifySoftEdgeRadiusHdl, weld::MetricSpinButton&, void);
58 };
59 }
60 
61 #endif
62 
63 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
64