Branch libreoffice-5-0-4
[LibreOffice.git] / include / svx / linectrl.hxx
bloba6576387bef56b91001fbc2bdb24565b3de4be9e
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/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
19 #ifndef INCLUDED_SVX_LINECTRL_HXX
20 #define INCLUDED_SVX_LINECTRL_HXX
23 #include <svtools/valueset.hxx>
24 #include <svl/lstner.hxx>
25 #include <sfx2/tbxctrl.hxx>
26 #include <svx/svxdllapi.h>
27 #include <svx/xtable.hxx>
29 class XLineStyleItem;
30 class XLineDashItem;
31 class SvxLineBox;
32 class SvxMetricField;
35 // SvxLineStyleController:
38 class SVX_DLLPUBLIC SvxLineStyleToolBoxControl : public SfxToolBoxControl
40 private:
41 XLineStyleItem* pStyleItem;
42 XLineDashItem* pDashItem;
44 bool bUpdate;
46 public:
47 SFX_DECL_TOOLBOX_CONTROL();
49 SvxLineStyleToolBoxControl( sal_uInt16 nSlotId, sal_uInt16 nId, ToolBox& rTbx );
50 virtual ~SvxLineStyleToolBoxControl();
52 virtual void StateChanged( sal_uInt16 nSID, SfxItemState eState,
53 const SfxPoolItem* pState ) SAL_OVERRIDE;
54 void Update( const SfxPoolItem* pState );
55 virtual VclPtr<vcl::Window> CreateItemWindow( vcl::Window *pParent ) SAL_OVERRIDE;
59 // SvxLineWidthController:
62 class SVX_DLLPUBLIC SvxLineWidthToolBoxControl : public SfxToolBoxControl
64 public:
65 SFX_DECL_TOOLBOX_CONTROL();
67 SvxLineWidthToolBoxControl( sal_uInt16 nSlotId, sal_uInt16 nId, ToolBox& rTbx );
68 virtual ~SvxLineWidthToolBoxControl();
70 virtual void StateChanged( sal_uInt16 nSID, SfxItemState eState,
71 const SfxPoolItem* pState ) SAL_OVERRIDE;
72 virtual VclPtr<vcl::Window> CreateItemWindow( vcl::Window *pParent ) SAL_OVERRIDE;
77 // class SvxLineEndWindow
79 class SvxLineEndWindow : public SfxPopupWindow
81 using FloatingWindow::StateChanged;
83 private:
84 XLineEndListRef pLineEndList;
85 VclPtr<ValueSet> aLineEndSet;
86 sal_uInt16 nCols;
87 sal_uInt16 nLines;
88 sal_uIntPtr nLineEndWidth;
89 Size aBmpSize;
90 bool bPopupMode;
91 bool mbInResize;
92 ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame > mxFrame;
95 DECL_LINK( SelectHdl, void * );
96 void FillValueSet();
97 void SetSize();
98 void implInit();
100 protected:
101 virtual void Resizing( Size& rSize ) SAL_OVERRIDE;
102 virtual void Resize() SAL_OVERRIDE;
103 virtual bool Close() SAL_OVERRIDE;
104 virtual void PopupModeEnd() SAL_OVERRIDE;
106 /** This function is called when the window gets the focus. It grabs
107 the focus to the line ends value set so that it can be controlled with
108 the keyboard.
110 virtual void GetFocus() SAL_OVERRIDE;
112 public:
113 SvxLineEndWindow( sal_uInt16 nId,
114 const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& rFrame,
115 const OUString& rWndTitle );
116 SvxLineEndWindow( sal_uInt16 nId,
117 const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& rFrame,
118 vcl::Window* pParentWindow,
119 const OUString& rWndTitle );
120 virtual ~SvxLineEndWindow();
121 virtual void dispose() SAL_OVERRIDE;
123 void StartSelection();
125 virtual void StateChanged( sal_uInt16 nSID, SfxItemState eState,
126 const SfxPoolItem* pState ) SAL_OVERRIDE;
127 virtual VclPtr<SfxPopupWindow> Clone() const SAL_OVERRIDE;
131 // class SvxLineEndToolBoxControl
134 class SVX_DLLPUBLIC SvxLineEndToolBoxControl : public SfxToolBoxControl
136 public:
137 SFX_DECL_TOOLBOX_CONTROL();
138 SvxLineEndToolBoxControl( sal_uInt16 nSlotId, sal_uInt16 nId, ToolBox& rTbx );
139 virtual ~SvxLineEndToolBoxControl();
141 virtual void StateChanged( sal_uInt16 nSID, SfxItemState eState,
142 const SfxPoolItem* pState ) SAL_OVERRIDE;
143 virtual SfxPopupWindowType GetPopupWindowType() const SAL_OVERRIDE;
144 virtual VclPtr<SfxPopupWindow> CreatePopupWindow() SAL_OVERRIDE;
149 #endif
151 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */