Branch data Line data Source code
1 : : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : : /*************************************************************************
3 : : *
4 : : * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 : : *
6 : : * Copyright 2000, 2010 Oracle and/or its affiliates.
7 : : *
8 : : * OpenOffice.org - a multi-platform office productivity suite
9 : : *
10 : : * This file is part of OpenOffice.org.
11 : : *
12 : : * OpenOffice.org is free software: you can redistribute it and/or modify
13 : : * it under the terms of the GNU Lesser General Public License version 3
14 : : * only, as published by the Free Software Foundation.
15 : : *
16 : : * OpenOffice.org is distributed in the hope that it will be useful,
17 : : * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 : : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 : : * GNU Lesser General Public License version 3 for more details
20 : : * (a copy is included in the LICENSE file that accompanied this code).
21 : : *
22 : : * You should have received a copy of the GNU Lesser General Public License
23 : : * version 3 along with OpenOffice.org. If not, see
24 : : * <http://www.openoffice.org/license.html>
25 : : * for a copy of the LGPLv3 License.
26 : : *
27 : : ************************************************************************/
28 : : #ifndef _SVX_ITEMWIN_HXX
29 : : #define _SVX_ITEMWIN_HXX
30 : :
31 : : #include <vcl/bitmap.hxx>
32 : :
33 : : #include <svx/dlgctrl.hxx>
34 : : #include "svx/svxdllapi.h"
35 : :
36 : : // forward ---------------------------------------------------------------
37 : :
38 : : class XLineColorItem;
39 : : class XLineWidthItem;
40 : : class SfxObjectShell;
41 : :
42 : : // class SvxLineBox ------------------------------------------------------
43 : :
44 : : class SvxLineBox : public LineLB
45 : : {
46 : : sal_uInt16 nCurPos;
47 : : Timer aDelayTimer;
48 : : Size aLogicalSize;
49 : : sal_Bool bRelease;
50 : : SfxObjectShell* mpSh;
51 : : ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame > mxFrame;
52 : :
53 : : #ifdef _SVX_ITEMWIN_CXX
54 : : DECL_LINK(DelayHdl_Impl, void *);
55 : :
56 : : void ReleaseFocus_Impl();
57 : : #endif
58 : : public:
59 : : SvxLineBox( Window* pParent,
60 : : const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& rFrame,
61 : : WinBits nBits = WB_BORDER | WB_DROPDOWN | WB_AUTOHSCROLL );
62 : : ~SvxLineBox();
63 : :
64 : : void FillControl();
65 : :
66 : : protected:
67 : : virtual void Select();
68 : : virtual long PreNotify( NotifyEvent& rNEvt );
69 : : virtual long Notify( NotifyEvent& rNEvt );
70 : : virtual void DataChanged( const DataChangedEvent& rDCEvt );
71 : :
72 : : };
73 : :
74 : : // class SvxColorBox -----------------------------------------------------
75 : :
76 : : class SvxColorBox : public ColorLB
77 : : {
78 : : using Window::Update;
79 : :
80 : : sal_uInt16 nCurPos;
81 : : Timer aDelayTimer;
82 : : Size aLogicalSize;
83 : : sal_Bool bRelease;
84 : : ::rtl::OUString maCommand;
85 : : ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame > mxFrame;
86 : :
87 : : #ifdef _SVX_ITEMWIN_CXX
88 : : void ReleaseFocus_Impl();
89 : : #endif
90 : :
91 : : public:
92 : : SvxColorBox( Window* pParent,
93 : : const rtl::OUString& rCommand,
94 : : const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& rFrame,
95 : : WinBits nBits = WB_BORDER | WB_DROPDOWN | WB_AUTOHSCROLL );
96 : : ~SvxColorBox();
97 : :
98 : : void Update( const XLineColorItem* pItem );
99 : :
100 : : protected:
101 : : virtual void Select();
102 : : virtual long PreNotify( NotifyEvent& rNEvt );
103 : : virtual long Notify( NotifyEvent& rNEvt );
104 : : virtual void DataChanged( const DataChangedEvent& rDCEvt );
105 : :
106 : : };
107 : :
108 : : // class SvxMetricField --------------------------------------------------
109 : :
110 : : class SVX_DLLPUBLIC SvxMetricField : public MetricField
111 : : {
112 : : using Window::Update;
113 : :
114 : : String aCurTxt;
115 : : SfxMapUnit ePoolUnit;
116 : : FieldUnit eDlgUnit;
117 : : Size aLogicalSize;
118 : : ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame > mxFrame;
119 : :
120 : : #ifdef _SVX_ITEMWIN_CXX
121 : : void ReleaseFocus_Impl();
122 : : #endif
123 : :
124 : : protected:
125 : : virtual void Modify();
126 : : virtual void Down();
127 : : virtual void Up(); // just to be sure
128 : :
129 : : virtual long PreNotify( NotifyEvent& rNEvt );
130 : : virtual long Notify( NotifyEvent& rNEvt );
131 : : virtual void DataChanged( const DataChangedEvent& rDCEvt );
132 : :
133 : : public:
134 : : SvxMetricField( Window* pParent,
135 : : const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& rFrame,
136 : : WinBits nBits = WB_BORDER | WB_SPIN | WB_REPEAT );
137 : : ~SvxMetricField();
138 : :
139 : : void Update( const XLineWidthItem* pItem );
140 : : void SetCoreUnit( SfxMapUnit eUnit );
141 : : void RefreshDlgUnit();
142 : : };
143 : :
144 : : // class SvxFillTypeBox --------------------------------------------------
145 : :
146 : : class SvxFillTypeBox : public FillTypeLB
147 : : {
148 : : public:
149 : : SvxFillTypeBox( Window* pParent, WinBits nBits = WB_BORDER | WB_DROPDOWN | WB_AUTOHSCROLL );
150 : : ~SvxFillTypeBox();
151 : :
152 : 0 : void Selected() { bSelect = sal_True; }
153 : 0 : sal_Bool IsRelease() { return bRelease;}
154 : :
155 : : protected:
156 : : virtual long PreNotify( NotifyEvent& rNEvt );
157 : : virtual long Notify( NotifyEvent& rNEvt );
158 : :
159 : : private:
160 : : sal_uInt16 nCurPos;
161 : : sal_Bool bSelect;
162 : : sal_Bool bRelease;
163 : :
164 : : #ifdef _SVX_ITEMWIN_CXX
165 : : void ReleaseFocus_Impl();
166 : : #endif
167 : : };
168 : :
169 : : // class SvxFillAttrBox --------------------------------------------------
170 : :
171 : : class SvxFillAttrBox : public FillAttrLB
172 : : {
173 : : public:
174 : : SvxFillAttrBox( Window* pParent, WinBits nBits = WB_BORDER | WB_DROPDOWN | WB_AUTOHSCROLL );
175 : : ~SvxFillAttrBox();
176 : :
177 : 0 : sal_Bool IsRelease() { return bRelease;}
178 : :
179 : : protected:
180 : : virtual long PreNotify( NotifyEvent& rNEvt );
181 : : virtual long Notify( NotifyEvent& rNEvt );
182 : : virtual void Select();
183 : :
184 : : private:
185 : : sal_uInt16 nCurPos;
186 : : sal_Bool bRelease;
187 : :
188 : : #ifdef _SVX_ITEMWIN_CXX
189 : : void ReleaseFocus_Impl();
190 : : #endif
191 : : };
192 : :
193 : : #endif // #ifndef _SVX_ITEMWIN_HXX
194 : :
195 : : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|