Version 6.1.4.1, tag libreoffice-6.1.4.1
[LibreOffice.git] / chart2 / source / controller / sidebar / ChartLinePanel.hxx
blob6222a1ddfa557b3abcb51b2f95ebc1418823a6bc
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3 * This file is part of the LibreOffice project.
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 */
10 #ifndef INCLUDED_CHART2_SOURCE_CONTROLLER_SIDEBAR_CHARTLINEPANEL_HXX
11 #define INCLUDED_CHART2_SOURCE_CONTROLLER_SIDEBAR_CHARTLINEPANEL_HXX
13 #include <vcl/ctrl.hxx>
14 #include <sfx2/sidebar/ControllerItem.hxx>
15 #include <sfx2/sidebar/SidebarModelUpdate.hxx>
16 #include <svx/xgrad.hxx>
17 #include <svx/itemwin.hxx>
18 #include <svx/xfillit0.hxx>
19 #include <svx/xflclit.hxx>
20 #include <svx/xflgrit.hxx>
21 #include <svx/xflhtit.hxx>
22 #include <svx/xbtmpit.hxx>
23 #include <svx/drawitem.hxx>
24 #include <svx/sidebar/PanelLayout.hxx>
25 #include <svl/intitem.hxx>
26 #include <com/sun/star/ui/XUIElement.hpp>
28 #include <svx/sidebar/LinePropertyPanelBase.hxx>
30 #include "ChartSidebarModifyListener.hxx"
31 #include "ChartSidebarSelectionListener.hxx"
32 #include "ChartColorWrapper.hxx"
34 class XFillFloatTransparenceItem;
35 class XFillTransparenceItem;
36 class XFillStyleItem;
37 class XFillGradientItem;
38 class XFillColorItem;
39 class XFillHatchItem;
40 class XFillBitmapItem;
42 namespace chart {
44 class ChartController;
46 namespace sidebar {
48 class ChartLinePanel : public svx::sidebar::LinePropertyPanelBase,
49 public sfx2::sidebar::SidebarModelUpdate,
50 public ChartSidebarModifyListenerParent,
51 public ChartSidebarSelectionListenerParent
53 public:
54 static VclPtr<vcl::Window> Create(
55 vcl::Window* pParent,
56 const css::uno::Reference<css::frame::XFrame>& rxFrame,
57 ChartController* pController);
59 // constructor/destructor
60 ChartLinePanel(
61 vcl::Window* pParent,
62 const css::uno::Reference<css::frame::XFrame>& rxFrame,
63 ChartController* pController);
65 virtual ~ChartLinePanel() override;
67 virtual void updateData() override;
68 virtual void modelInvalid() override;
70 virtual void selectionChanged(bool bCorrectType) override;
71 virtual void SelectionInvalid() override;
73 virtual void dispose() override;
75 virtual void updateModel(css::uno::Reference<css::frame::XModel> xModel) override;
77 virtual void setLineWidth(const XLineWidthItem& rItem) override;
79 protected:
81 virtual void setLineStyle(const XLineStyleItem& rItem) override;
82 virtual void setLineDash(const XLineDashItem& rItem) override;
83 virtual void setLineEndStyle(const XLineEndItem* pItem) override;
84 virtual void setLineStartStyle(const XLineStartItem* pItem) override;
85 virtual void setLineTransparency(const XLineTransparenceItem& rItem) override;
86 virtual void setLineJoint(const XLineJointItem* pItem) override;
87 virtual void setLineCap(const XLineCapItem* pItem) override;
89 private:
91 css::uno::Reference<css::frame::XModel> mxModel;
92 css::uno::Reference<css::util::XModifyListener> mxListener;
93 rtl::Reference<ChartSidebarSelectionListener> mxSelectionListener;
95 void Initialize();
97 bool mbUpdate;
98 bool mbModelValid;
99 ChartColorWrapper maLineColorWrapper;
102 } } // end of namespace svx::sidebar
104 #endif
106 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */