Line data Source code
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 : */
10 :
11 : #ifndef INCLUDED_SW_SOURCE_UIBASE_SIDEBAR_STYLEPRESETSPANEL_HXX
12 : #define INCLUDED_SW_SOURCE_UIBASE_SIDEBAR_STYLEPRESETSPANEL_HXX
13 :
14 : #include <com/sun/star/frame/XFrame.hpp>
15 : #include <com/sun/star/document/XUndoManager.hpp>
16 :
17 : #include <svx/sidebar/Popup.hxx>
18 : #include <svx/sidebar/PanelLayout.hxx>
19 :
20 : #include <sfx2/sidebar/ControllerItem.hxx>
21 :
22 : #include <svx/pageitem.hxx>
23 : #include <svx/rulritem.hxx>
24 : #include <editeng/sizeitem.hxx>
25 :
26 : #include <vcl/ctrl.hxx>
27 : #include <vcl/fixed.hxx>
28 : #include <vcl/button.hxx>
29 : #include <vcl/toolbox.hxx>
30 : #include <vcl/lstbox.hxx>
31 : #include <vcl/field.hxx>
32 : #include <svl/intitem.hxx>
33 : #include <svl/lstner.hxx>
34 :
35 : #include <svx/fntctrl.hxx>
36 :
37 : #include "docstyle.hxx"
38 :
39 : namespace sw { namespace sidebar {
40 :
41 : class StylePresetsPanel : public PanelLayout,
42 : public sfx2::sidebar::ControllerItem::ItemUpdateReceiverInterface
43 : {
44 : friend class VclPtr<StylePresetsPanel>;
45 : public:
46 : static VclPtr<vcl::Window> Create(vcl::Window* pParent,
47 : const css::uno::Reference<css::frame::XFrame>& rxFrame,
48 : SfxBindings* pBindings);
49 :
50 : virtual void NotifyItemUpdate(const sal_uInt16 nSId,
51 : const SfxItemState eState,
52 : const SfxPoolItem* pState,
53 : const bool bIsEnabled) SAL_OVERRIDE;
54 :
55 : SfxBindings* GetBindings() const
56 : {
57 : return mpBindings;
58 : }
59 :
60 : private:
61 0 : struct TemplateEntry
62 : {
63 0 : TemplateEntry(OUString& rName, OUString& rURL)
64 : : maName(rName)
65 0 : , maURL(rURL)
66 0 : {}
67 :
68 : OUString maName;
69 : OUString maURL;
70 : };
71 :
72 : StylePresetsPanel(vcl::Window* pParent,
73 : const css::uno::Reference<css::frame::XFrame>& rxFrame,
74 : SfxBindings* pBindings);
75 :
76 : virtual ~StylePresetsPanel();
77 : virtual void dispose() SAL_OVERRIDE;
78 :
79 : SfxBindings* mpBindings;
80 :
81 : VclPtr<ListBox> mpListBox;
82 :
83 : std::vector<std::unique_ptr<TemplateEntry>> maTemplateEntries;
84 :
85 : DECL_LINK(DoubleClickHdl, void*);
86 : };
87 :
88 : }} // end of namespace sw::sidebar
89 :
90 : #endif // INCLUDED_SW_SOURCE_UIBASE_SIDEBAR_STYLEPRESETSPANEL_HXX
91 :
92 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|