xref: /trunk/main/tools/inc/tools/wintypes.hxx (revision 86e1cf34)
1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 #ifndef _TOOLS_WINTYPES_HXX
24 #define _TOOLS_WINTYPES_HXX
25 
26 #include <tools/solar.h>
27 #include <sal/types.h>
28 
29 // ----------------
30 // - Window-Types -
31 // ----------------
32 
33 typedef sal_uInt16 WindowType;
34 #define WINDOW_BASE 				0x0100
35 #define WINDOW_FIRST				(WINDOW_BASE + 0x30)
36 #define WINDOW_MESSBOX				(WINDOW_FIRST)
37 #define WINDOW_INFOBOX				(WINDOW_FIRST + 0x01)
38 #define WINDOW_WARNINGBOX			(WINDOW_FIRST + 0x02)
39 #define WINDOW_ERRORBOX 			(WINDOW_FIRST + 0x03)
40 #define WINDOW_QUERYBOX 			(WINDOW_FIRST + 0x04)
41 #define WINDOW_WINDOW				(WINDOW_FIRST + 0x05)
42 #define WINDOW_SYSWINDOW			(WINDOW_FIRST + 0x06)
43 #define WINDOW_WORKWINDOW			(WINDOW_FIRST + 0x07)
44 // #define WINDOW_MDIWINDOW 		   (WINDOW_FIRST + 0x08)
45 #define WINDOW_FLOATINGWINDOW		(WINDOW_FIRST + 0x09)
46 #define WINDOW_DIALOG				(WINDOW_FIRST + 0x0a)
47 #define WINDOW_MODELESSDIALOG		(WINDOW_FIRST + 0x0b)
48 #define WINDOW_MODALDIALOG			(WINDOW_FIRST + 0x0c)
49 #define WINDOW_SYSTEMDIALOG 		(WINDOW_FIRST + 0x0d)
50 #define WINDOW_PATHDIALOG			(WINDOW_FIRST + 0x0e)
51 #define WINDOW_FILEDIALOG			(WINDOW_FIRST + 0x0f)
52 #define WINDOW_PRINTERSETUPDIALOG	(WINDOW_FIRST + 0x10)
53 #define WINDOW_PRINTDIALOG			(WINDOW_FIRST + 0x11)
54 #define WINDOW_COLORDIALOG			(WINDOW_FIRST + 0x12)
55 #define WINDOW_FONTDIALOG			(WINDOW_FIRST + 0x13)
56 #define WINDOW_CONTROL				(WINDOW_FIRST + 0x14)
57 #define WINDOW_BUTTON				(WINDOW_FIRST + 0x15)
58 #define WINDOW_PUSHBUTTON			(WINDOW_FIRST + 0x16)
59 #define WINDOW_OKBUTTON 			(WINDOW_FIRST + 0x17)
60 #define WINDOW_CANCELBUTTON 		(WINDOW_FIRST + 0x18)
61 #define WINDOW_HELPBUTTON			(WINDOW_FIRST + 0x19)
62 #define WINDOW_IMAGEBUTTON			(WINDOW_FIRST + 0x1a)
63 #define WINDOW_MENUBUTTON			(WINDOW_FIRST + 0x1b)
64 #define WINDOW_MOREBUTTON			(WINDOW_FIRST + 0x1c)
65 #define WINDOW_SPINBUTTON			(WINDOW_FIRST + 0x1d)
66 #define WINDOW_RADIOBUTTON			(WINDOW_FIRST + 0x1e)
67 #define WINDOW_IMAGERADIOBUTTON 	(WINDOW_FIRST + 0x1f)
68 #define WINDOW_CHECKBOX 			(WINDOW_FIRST + 0x20)
69 #define WINDOW_TRISTATEBOX			(WINDOW_FIRST + 0x21)
70 #define WINDOW_EDIT 				(WINDOW_FIRST + 0x22)
71 #define WINDOW_MULTILINEEDIT		(WINDOW_FIRST + 0x23)
72 #define WINDOW_COMBOBOX 			(WINDOW_FIRST + 0x24)
73 #define WINDOW_LISTBOX				(WINDOW_FIRST + 0x25)
74 #define WINDOW_MULTILISTBOX 		(WINDOW_FIRST + 0x26)
75 #define WINDOW_FIXEDTEXT			(WINDOW_FIRST + 0x27)
76 #define WINDOW_FIXEDLINE			(WINDOW_FIRST + 0x28)
77 #define WINDOW_FIXEDBITMAP			(WINDOW_FIRST + 0x29)
78 #define WINDOW_FIXEDIMAGE			(WINDOW_FIRST + 0x2a)
79 #define WINDOW_GROUPBOX 			(WINDOW_FIRST + 0x2c)
80 #define WINDOW_SCROLLBAR			(WINDOW_FIRST + 0x2d)
81 #define WINDOW_SCROLLBARBOX 		(WINDOW_FIRST + 0x2e)
82 #define WINDOW_SPLITTER 			(WINDOW_FIRST + 0x2f)
83 #define WINDOW_SPLITWINDOW			(WINDOW_FIRST + 0x30)
84 #define WINDOW_SPINFIELD			(WINDOW_FIRST + 0x31)
85 #define WINDOW_PATTERNFIELD 		(WINDOW_FIRST + 0x32)
86 #define WINDOW_NUMERICFIELD 		(WINDOW_FIRST + 0x33)
87 #define WINDOW_METRICFIELD			(WINDOW_FIRST + 0x34)
88 #define WINDOW_CURRENCYFIELD		(WINDOW_FIRST + 0x35)
89 #define WINDOW_DATEFIELD			(WINDOW_FIRST + 0x36)
90 #define WINDOW_TIMEFIELD			(WINDOW_FIRST + 0x37)
91 #define WINDOW_PATTERNBOX			(WINDOW_FIRST + 0x38)
92 #define WINDOW_NUMERICBOX			(WINDOW_FIRST + 0x39)
93 #define WINDOW_METRICBOX			(WINDOW_FIRST + 0x3a)
94 #define WINDOW_CURRENCYBOX			(WINDOW_FIRST + 0x3b)
95 #define WINDOW_DATEBOX				(WINDOW_FIRST + 0x3c)
96 #define WINDOW_TIMEBOX				(WINDOW_FIRST + 0x3d)
97 #define WINDOW_LONGCURRENCYFIELD	(WINDOW_FIRST + 0x3e)
98 #define WINDOW_LONGCURRENCYBOX		(WINDOW_FIRST + 0x3f)
99 #define WINDOW_TOOLBOX				(WINDOW_FIRST + 0x41)
100 #define WINDOW_DOCKINGWINDOW		(WINDOW_FIRST + 0x42)
101 #define WINDOW_STATUSBAR			(WINDOW_FIRST + 0x43)
102 #define WINDOW_TABPAGE				(WINDOW_FIRST + 0x44)
103 #define WINDOW_TABCONTROL			(WINDOW_FIRST + 0x45)
104 #define WINDOW_TABDIALOG			(WINDOW_FIRST + 0x46)
105 #define WINDOW_BORDERWINDOW 		(WINDOW_FIRST + 0x47)
106 #define WINDOW_BUTTONDIALOG 		(WINDOW_FIRST + 0x48)
107 #define WINDOW_SYSTEMCHILDWINDOW	(WINDOW_FIRST + 0x49)
108 #define WINDOW_FIXEDBORDER			(WINDOW_FIRST + 0x4a)
109 #define WINDOW_SLIDER				(WINDOW_FIRST + 0x4b)
110 #define WINDOW_MENUBARWINDOW        (WINDOW_FIRST + 0x4c)
111 #define WINDOW_TREELISTBOX	        (WINDOW_FIRST + 0x4d)
112 #define WINDOW_HELPTEXTWINDOW		(WINDOW_FIRST + 0x4e)
113 #define WINDOW_INTROWINDOW		    (WINDOW_FIRST + 0x4f)
114 #define WINDOW_LISTBOXWINDOW        (WINDOW_FIRST + 0x50)
115 #define WINDOW_DOCKINGAREA          (WINDOW_FIRST + 0x51)
116 #define WINDOW_RULER				(WINDOW_FIRST + 0x52)
117 #define WINDOW_LAST 				(WINDOW_RULER)
118 
119 
120 // ---------------
121 // - Window-Bits -
122 // ---------------
123 
124 typedef sal_Int64 WinBits;
125 
126 // Window-Bits fuer Window
127 #define WB_CLIPCHILDREN 		((WinBits)0x00000001)
128 #define WB_DIALOGCONTROL		((WinBits)0x00000002)
129 #define WB_NODIALOGCONTROL		((WinBits)0x00000004)
130 #define WB_BORDER				((WinBits)0x00000008)
131 #define WB_NOBORDER 			((WinBits)0x00000010)
132 #define WB_SIZEABLE 			((WinBits)0x00000020)
133 #define WB_3DLOOK				((WinBits)0x00000040)
134 #define WB_AUTOSIZE 			((WinBits)0x00000080)
135 
136 // Window-Bits fuer SystemWindows
137 #define WB_MOVEABLE 			((WinBits)0x00000100)
138 #define WB_ROLLABLE 			((WinBits)0x00000200)
139 #define WB_CLOSEABLE			((WinBits)0x00000400)
140 #define WB_STANDALONE			((WinBits)0x00000800)
141 #define WB_APP					((WinBits)0x00001000)
142 #define WB_PINABLE				((WinBits)0x00002000)
143 #define WB_SYSTEMWINDOW 		((WinBits)SAL_CONST_INT64(0x40000000))
144 // warning: do not confuse WB_SYSTEMCHILDWINDOW with the SystemChildWindow class
145 
146 // the SystemChildWindow class was there first and is a very specialized
147 // system child window type for plugged applications. The SystemChildWindow class
148 // explicitly should never use the WB_SYSTEMCHILDWINDOW WinBit
149 
150 // WB_SYSTEMCHILDWINDOW on the other hand is to be used on system windows
151 // which should be created as system child windows with (more or less)
152 // normal event handling
153 #define WB_SYSTEMCHILDWINDOW    ((WinBits)SAL_CONST_INT64(0x8000000000))
154 #define WB_SIZEMOVE 			(WB_SIZEABLE | WB_MOVEABLE)
155 
156 // Standard-Window-Bits fuer ChildWindows
157 #define WB_TABSTOP				((WinBits)0x00000100)
158 #define WB_NOTABSTOP			((WinBits)0x00000200)
159 #define WB_GROUP				((WinBits)0x00000400)
160 #define WB_NOGROUP				((WinBits)0x00000800)
161 #define WB_HORZ 				((WinBits)0x00001000)
162 #define WB_VERT 				((WinBits)0x00002000)
163 #define WB_LEFT 				((WinBits)0x00004000)
164 #define WB_CENTER				((WinBits)0x00008000)
165 #define WB_RIGHT				((WinBits)0x00010000)
166 #define WB_TOP					((WinBits)0x00020000)
167 #define WB_VCENTER				((WinBits)0x00040000)
168 #define WB_BOTTOM				((WinBits)0x00080000)
169 #define WB_DRAG 				((WinBits)0x00100000)
170 #define WB_SPIN 				((WinBits)0x00200000)
171 #define WB_REPEAT				((WinBits)0x00400000)
172 #define WB_NOPOINTERFOCUS		((WinBits)0x00800000)
173 #define WB_WORDBREAK			((WinBits)0x01000000)
174 #define WB_NOLABEL				((WinBits)0x02000000)
175 #define WB_SORT 				((WinBits)0x04000000)
176 #define WB_DROPDOWN 			((WinBits)0x08000000)
177 #define WB_HIDE 				((WinBits)SAL_CONST_INT64(0x80000000))
178 #define WB_AUTOHSCROLL			((WinBits)SAL_CONST_INT64(0x10000000))
179 #define WB_DOCKABLE 			((WinBits)SAL_CONST_INT64(0x20000000))
180 #define WB_AUTOVSCROLL          ((WinBits)SAL_CONST_INT64(0x40000000))
181 #define WB_HYPHENATION          (((WinBits)SAL_CONST_INT64(0x800000000)) | WB_WORDBREAK)
182 #define WB_CHILDDLGCTRL		    ((WinBits)SAL_CONST_INT64(0x100000000000))
183 
184 // system floating window
185 #define WB_SYSTEMFLOATWIN		((WinBits)SAL_CONST_INT64(0x100000000))
186 #define WB_INTROWIN             ((WinBits)SAL_CONST_INT64(0x200000000))
187 #define WB_NOSHADOW             ((WinBits)SAL_CONST_INT64(0x400000000))
188 #define WB_TOOLTIPWIN           ((WinBits)SAL_CONST_INT64(0x800000000))
189 #define WB_OWNERDRAWDECORATION  ((WinBits)SAL_CONST_INT64(0x2000000000))
190 #define WB_DEFAULTWIN           ((WinBits)SAL_CONST_INT64(0x4000000000))
191 #define WB_NEEDSFOCUS           ((WinBits)SAL_CONST_INT64(0x1000000000))
192 
193 #define WB_HSCROLL				WB_HORZ
194 #define WB_VSCROLL				WB_VERT
195 #define WB_TOPIMAGE 			WB_TOP
196 
197 // Window-Bits for PushButtons
198 #define WB_DEFBUTTON			((WinBits)0x10000000)
199 #define WB_NOLIGHTBORDER		((WinBits)0x20000000)
200 #define WB_RECTSTYLE			((WinBits)0x08000000)
201 #define WB_SMALLSTYLE			((WinBits)0x04000000)
202 #define WB_TOGGLE               ((WinBits)SAL_CONST_INT64(0x1000000000))
203 #define WB_BEVELBUTTON          ((WinBits)SAL_CONST_INT64(0x2000000000))
204 #define WB_FLATBUTTON           ((WinBits)SAL_CONST_INT64(0x4000000000))
205 
206 // Window-Bits for FixedText
207 #define WB_PATHELLIPSIS 		((WinBits)0x00100000)
208 #define WB_EXTRAOFFSET			((WinBits)0x02000000)
209 #define WB_NOMULTILINE			((WinBits)0x10000000)
210 #define WB_INFO 				((WinBits)0x20000000)
211 
212 // Window-Bits for CheckBox
213 #define WB_CBLINESTYLE          ((WinBits)SAL_CONST_INT64(0x2000000000))
214 #define WB_EARLYTOGGLE          ((WinBits)SAL_CONST_INT64(0x4000000000))
215 
216 // Window-Bits for Edit
217 #define WB_PASSWORD 			((WinBits)0x01000000)
218 #define WB_READONLY 			((WinBits)0x02000000)
219 #define WB_NOHIDESELECTION		((WinBits)SAL_CONST_INT64(0x1000000000))
220 #define WB_FORCECTRLBACKGROUND  ((WinBits)0x80000000)
221 
222 // Window-Bits for MultiLineEdit
223 #define WB_IGNORETAB			((WinBits)0x20000000)
224 
225 // Window-Bits for ListBox and MultiListBox
226 #define WB_SIMPLEMODE			((WinBits)0x20000000)
227 
228 // Window-Bits for FixedBitmap
229 #define WB_FAST 				((WinBits)0x04000000)
230 #define WB_SCALE				((WinBits)0x08000000)
231 #define WB_TOPLEFTVISIBLE		((WinBits)0x10000000)
232 
233 // Window-Bits for ToolBox
234 #define WB_LINESPACING			((WinBits)0x01000000)
235 #define WB_SCROLL				((WinBits)0x02000000)
236 #define WB_FORCETABCYCLE		((WinBits)0x04000000)
237 
238 // Window-Bits for DockingWindows
239 #define WB_DOCKBORDER			((WinBits)0x00001000)
240 
241 // Window-Bits for SplitWindow
242 #define WB_NOSPLITDRAW			((WinBits)0x01000000)
243 #define WB_FLATSPLITDRAW		((WinBits)0x02000000)
244 
245 // Window-Bits for MessageBoxen
246 #define WB_OK					((WinBits)0x00100000)
247 #define WB_OK_CANCEL			((WinBits)0x00200000)
248 #define WB_YES_NO				((WinBits)0x00400000)
249 #define WB_YES_NO_CANCEL		((WinBits)0x00800000)
250 #define WB_RETRY_CANCEL 		((WinBits)0x01000000)
251 #define WB_DEF_OK				((WinBits)0x02000000)
252 #define WB_DEF_CANCEL			((WinBits)0x04000000)
253 #define WB_DEF_RETRY			((WinBits)0x08000000)
254 #define WB_DEF_YES				((WinBits)SAL_CONST_INT64(0x10000000))
255 #define WB_DEF_NO				((WinBits)SAL_CONST_INT64(0x20000000))
256 #define WB_ABORT_RETRY_IGNORE  ((WinBits)SAL_CONST_INT64(0x1000000000))
257 #define WB_DEF_IGNORE          ((WinBits)SAL_CONST_INT64(0x2000000000))
258 
259 // Standard-WinBits
260 #define WB_STDWORK				(WB_SIZEMOVE | WB_CLOSEABLE)
261 #define WB_STDDOCKWIN			(WB_DOCKABLE | WB_MOVEABLE | WB_CLOSEABLE)
262 #define WB_STDFLOATWIN			(WB_SIZEMOVE | WB_CLOSEABLE | WB_ROLLABLE)
263 #define WB_STDDIALOG			(WB_MOVEABLE | WB_CLOSEABLE)
264 #define WB_STDMODELESS			(WB_STDDIALOG)
265 #define WB_STDMODAL 			(WB_STDDIALOG)
266 #define WB_STDTABDIALOG 		(WB_STDDIALOG)
267 #define WB_STDTABCONTROL		0
268 
269 // For TreeListBox
270 #define WB_HASBUTTONS           ((WinBits)SAL_CONST_INT64(0x000100000000))
271 #define WB_HASLINES             ((WinBits)SAL_CONST_INT64(0x000200000000))
272 #define WB_HASLINESATROOT       ((WinBits)SAL_CONST_INT64(0x000400000000))
273 #define WB_HASBUTTONSATROOT     ((WinBits)SAL_CONST_INT64(0x000800000000))
274 #define WB_NOINITIALSELECTION   ((WinBits)SAL_CONST_INT64(0x001000000000))
275 #define WB_HIDESELECTION        ((WinBits)SAL_CONST_INT64(0x002000000000))
276 #define WB_FORCE_MAKEVISIBLE	((WinBits)SAL_CONST_INT64(0x004000000000))
277 // DO NOT USE: 0x008000000000, that's WB_SYSTEMCHILDWINDOW
278 #define WB_QUICK_SEARCH         ((WinBits)SAL_CONST_INT64(0x010000000000))
279 
280 
281 // For FileOpen Dialog
282 #define WB_PATH 				((WinBits)0x00100000)
283 #define WB_OPEN 				((WinBits)0x00200000)
284 #define WB_SAVEAS				((WinBits)0x00400000)
285 
286 // For Slider
287 // Window-Bits for TabControl
288 #define WB_SLIDERSET    		((WinBits)0x02000000)
289 
290 
291 // --------------------
292 // - extended WinBits -
293 // --------------------
294 #define WB_EXT_DOCUMENT         ((WinBits)0x00000001)
295 #define WB_EXT_DOCMODIFIED      ((WinBits)0x00000002)
296 
297 // ---------------
298 // - WindowAlign -
299 // ---------------
300 
301 enum WindowAlign { WINDOWALIGN_LEFT, WINDOWALIGN_TOP, WINDOWALIGN_RIGHT, WINDOWALIGN_BOTTOM };
302 enum ImageAlign { IMAGEALIGN_LEFT, IMAGEALIGN_TOP, IMAGEALIGN_RIGHT, IMAGEALIGN_BOTTOM,
303                   IMAGEALIGN_LEFT_TOP, IMAGEALIGN_LEFT_BOTTOM, IMAGEALIGN_TOP_LEFT,
304                   IMAGEALIGN_TOP_RIGHT, IMAGEALIGN_RIGHT_TOP, IMAGEALIGN_RIGHT_BOTTOM,
305                   IMAGEALIGN_BOTTOM_LEFT, IMAGEALIGN_BOTTOM_RIGHT, IMAGEALIGN_CENTER };
306 enum SymbolAlign { SYMBOLALIGN_LEFT, SYMBOLALIGN_RIGHT };
307 
308 // ------------
309 // - TriState -
310 // ------------
311 
312 enum TriState { STATE_NOCHECK, STATE_CHECK, STATE_DONTKNOW };
313 
314 
315 // ----------------------
316 // - ButtonDialog-Types -
317 // ----------------------
318 
319 typedef sal_uInt16 StandardButtonType;
320 #define BUTTON_OK			((StandardButtonType)0)
321 #define BUTTON_CANCEL		((StandardButtonType)1)
322 #define BUTTON_YES			((StandardButtonType)2)
323 #define BUTTON_NO			((StandardButtonType)3)
324 #define BUTTON_RETRY		((StandardButtonType)4)
325 #define BUTTON_HELP 		((StandardButtonType)5)
326 #define BUTTON_CLOSE		((StandardButtonType)6)
327 #define BUTTON_MORE 		((StandardButtonType)7)
328 #define BUTTON_IGNORE 		((StandardButtonType)8)
329 #define BUTTON_ABORT 		((StandardButtonType)9)
330 #define BUTTON_LESS 		((StandardButtonType)10)
331 #define BUTTON_COUNT		11
332 
333 // --------------------------------------------
334 // - prominent place for ListBox window types -
335 // --------------------------------------------
336 
337 enum ProminentEntry { PROMINENT_TOP, PROMINENT_MIDDLE };
338 
339 #endif // _TOOLS_WINTYPES_HXX
340 
341