LibreOffice Module vcl (master)  1
vclenum.hxx
Go to the documentation of this file.
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  * This file incorporates work covered by the following license notice:
10  *
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 .
18  */
19 
20 #ifndef INCLUDED_VCL_VCLENUM_HXX
21 #define INCLUDED_VCL_VCLENUM_HXX
22 
23 #include <sal/types.h>
24 #include <o3tl/typed_flags_set.hxx>
25 
27 
28 enum class TimeFieldFormat : sal_Int32 { F_NONE, F_SEC, F_SEC_CS };
29 
31 
32 enum class MenuItemBits : sal_Int16
33 {
34  NONE = 0x0000,
35  CHECKABLE = 0x0001,
36  RADIOCHECK = 0x0002,
37  AUTOCHECK = 0x0004,
38  HELP = 0x0010,
39  POPUPSELECT = 0x0020,
40  // These have been said to be a preliminary (sic) solution since 2007
41  NOSELECT = 0x0040,
42  ICON = 0x0080,
43  TEXT = 0x0100,
44 };
45 namespace o3tl
46 {
47  template<> struct typed_flags<MenuItemBits> : is_typed_flags<MenuItemBits, 0x1f7> {};
48 }
49 
50 enum class ToolBoxItemBits
51 {
52  NONE = 0x0000,
53  CHECKABLE = 0x0001,
54  RADIOCHECK = 0x0002,
55  AUTOCHECK = 0x0004,
56  LEFT = 0x0008,
57  AUTOSIZE = 0x0010,
58  DROPDOWN = 0x0020,
59  REPEAT = 0x0040,
60  DROPDOWNONLY = 0x00a0, // 0x0080 | DROPDOWN
61  TEXT_ONLY = 0x0100,
62  ICON_ONLY = 0x0200
63 };
64 namespace o3tl
65 {
66  template<> struct typed_flags<ToolBoxItemBits> : is_typed_flags<ToolBoxItemBits, 0x3ff> {};
67 }
68 
70 
72 
73 enum class SymbolType : sal_uInt16
74 {
75  DONTKNOW = 0,
76  IMAGE = 1,
77  ARROW_UP = 2,
78  ARROW_DOWN = 3,
79  ARROW_LEFT = 4,
80  ARROW_RIGHT = 5,
81  SPIN_UP = 6,
82  SPIN_DOWN = 7,
83  SPIN_LEFT = 8,
84  SPIN_RIGHT = 9,
85  FIRST = 10,
86  LAST = 11,
87  PREV = 12,
88  NEXT = 13,
89  PAGEUP = 14,
90  PAGEDOWN = 15,
91  PLAY = 16,
92  STOP = 19,
93  CLOSE = 25,
94  CHECKMARK = 28,
95  RADIOCHECKMARK = 29,
96  FLOAT = 31,
97  DOCK = 32,
98  HIDE = 33,
99  HELP = 34,
100  PLUS = 35,
102 };
103 
104 
105 // Border styles for SetBorder()
106 enum class WindowBorderStyle : sal_Int16
107 {
108  NONE = 0x0000,
109  NORMAL = 0x0001,
110  MONO = 0x0002,
111  MENU = 0x0010,
112  NWF = 0x0020,
113  NOBORDER = 0x1000,
114  REMOVEBORDER = 0x2000
115 };
116 namespace o3tl
117 {
118  template<> struct typed_flags<WindowBorderStyle> : is_typed_flags<WindowBorderStyle, 0x3033> {};
119 }
120 
121 enum class WindowStateMask {
122  NONE = 0x0000,
123  X = 0x0001,
124  Y = 0x0002,
125  Width = 0x0004,
126  Height = 0x0008,
127  State = 0x0010,
128  Minimized = 0x0020,
129  MaximizedX = 0x0100,
130  MaximizedY = 0x0200,
131  MaximizedWidth = 0x0400,
132  MaximizedHeight = 0x0800,
133  Pos = X | Y,
135 };
136 namespace o3tl
137 {
138  template<> struct typed_flags<WindowStateMask> : is_typed_flags<WindowStateMask, 0x0f3f> {};
139 }
140 
141 enum class TimeFormat
142 {
143  Hour12, Hour24
144 };
145 
147 {
149  Short24H, Long24H,
150  Short12H, Long12H,
152 };
153 
155 {
157  SystemLong,
162 };
163 
164 // this appears to be a direct copy of css::awt::GradientStyle
165 enum class GradientStyle
166 {
167  Linear = 0,
168  Axial = 1,
169  Radial = 2,
170  Elliptical = 3,
171  Square = 4,
172  Rect = 5,
174 };
175 
176 enum class HatchStyle
177 {
178  Single = 0,
179  Double = 1,
180  Triple = 2,
182 };
183 
184 enum class LineStyle
185 {
186  NONE = 0,
187  Solid = 1,
188  Dash = 2,
190 };
191 
192 enum class RasterOp { OverPaint, Xor, N0, N1, Invert };
193 
194 typedef sal_uInt32 sal_UCS4; // TODO: this should be moved to rtl
195 
197 
199 {
200  double xx, xy, yx, yy;
201  ItalicMatrix() : xx(1), xy(0), yx(0), yy(1) {}
202 };
203 
204 inline bool operator ==(const ItalicMatrix& a, const ItalicMatrix& b)
205 {
206  return a.xx == b.xx && a.xy == b.xy && a.yx == b.yx && a.yy == b.yy;
207 }
208 
209 inline bool operator !=(const ItalicMatrix& a, const ItalicMatrix& b)
210 {
211  return !(a == b);
212 }
213 
214 enum class VclAlign
215 {
216  Fill,
217  Start,
218  End,
219  Center
220 };
221 
222 enum class VclPackType
223 {
224  Start = 0,
225  End = 1,
226  LAST = End
227 };
228 
229 // Return Values from Dialog::Execute
231 
233 {
235  RET_OK = 1,
236  RET_YES = 2,
237  RET_NO = 3,
241  RET_HELP = 10
242 };
243 
244 enum class VclButtonsType
245 {
246  NONE,
247  Ok,
248  Close,
249  Cancel,
250  YesNo,
251  OkCancel
252 };
253 
254 enum class VclMessageType
255 {
256  Info,
257  Warning,
258  Question,
259  Error,
260  Other
261 };
262 
264 {
265  NONE,
266  Horizontal,
267  Vertical,
268  Both
269 };
270 
271 enum class VclPolicyType
272 {
273  ALWAYS,
274  AUTOMATIC,
275  NEVER
276 };
277 
278 enum class WizardButtonFlags : sal_Int16
279 {
280  NONE = 0x0000,
281  NEXT = 0x0001,
282  PREVIOUS = 0x0002,
283  FINISH = 0x0004,
284  CANCEL = 0x0008,
285  HELP = 0x0010,
286 };
287 
288 namespace o3tl
289 {
290  template<> struct typed_flags<WizardButtonFlags> : is_typed_flags<WizardButtonFlags, 0x001f> {};
291 }
292 
293 // small, large, size32 force an exact toolbox size for proper alignment
294 // DontCare will let the toolbox decide about its size
296 {
297  DontCare,
298  Small,
299  Large,
300  Size32,
301 };
302 
303 enum class WindowStateState {
304  NONE = 0x0000,
305  Normal = 0x0001,
306  Minimized = 0x0002,
307  Maximized = 0x0004,
308  // Rollup is no longer used, but retained because WindowStateState is serialized
309  // from/to strings describing window state that are stored in a users config
310  Rollup = 0x0008,
311  MaximizedHorz = 0x0010,
312  MaximizedVert = 0x0020,
313  FullScreen = 0x0040,
314  SystemMask = 0xffff
315 };
316 namespace o3tl
317 {
318  template<> struct typed_flags<WindowStateState> : is_typed_flags<WindowStateState, 0xffff> {};
319 }
320 
321 namespace vcl
322 {
323  // The exact sizes of the icons in each size grouping are not necessarily
324  // the exact size indicated by the name, but the upper limit of their size.
325  // e.g. many Size26 icons are often 24x24px and only some 26x26px
326  enum class ImageType
327  {
328  Size16,
329  Size26,
330  Size32,
331  Small = Size16,
332  LAST = Size32,
333  };
334 }
335 
336 enum class DrawFrameStyle
337 {
338  NONE = 0x0000,
339  In = 0x0001,
340  Out = 0x0002,
341  Group = 0x0003,
342  DoubleIn = 0x0004,
343  DoubleOut = 0x0005,
344  NWF = 0x0006,
345 };
346 
347 // Flags for DrawFrame()
348 enum class DrawFrameFlags
349 {
350  NONE = 0x0000,
351  Menu = 0x0010,
352  WindowBorder = 0x0020,
353  BorderWindowBorder = 0x0040,
354  Mono = 0x1000,
355  NoDraw = 0x8000,
356 };
357 namespace o3tl
358 {
359  template<> struct typed_flags<DrawFrameFlags> : is_typed_flags<DrawFrameFlags, 0x9070> {};
360 }
361 
362 enum class TxtAlign
363 {
364  Left,
365  Center,
366  Right
367 };
368 
370 {
371  NONE = 0x000000,
372  AllowTearOff = 0x000001,
373  Down = 0x000002,
374  Up = 0x000004,
375  Left = 0x000008,
376  Right = 0x000010,
377  NoKeyClose = 0x000020,
378  AllMouseButtonClose = 0x000040,
379  NoAppFocusClose = 0x000080,
380  NewLevel = 0x000100,
381  NoMouseUpClose = 0x000200,
382  GrabFocus = 0x000400,
383  NoHorzPlacement = 0x000800,
384 };
385 namespace o3tl
386 {
387  template<> struct typed_flags<FloatWinPopupFlags> : is_typed_flags<FloatWinPopupFlags, 0x0fff> {};
388 }
389 
390 // Flags for Window::Show()
391 enum class ShowFlags
392 {
393  NONE = 0x0000,
394  NoFocusChange = 0x0002,
395  NoActivate = 0x0004,
396  ForegroundTask = 0x0008,
397 };
398 namespace o3tl
399 {
400  template<> struct typed_flags<ShowFlags> : is_typed_flags<ShowFlags, 0x000e> {};
401 }
402 
404 {
405  NONE = 0x0000,
406  Cancel = 0x0001,
407  Key = 0x0002,
408  Focus = 0x0004,
409  Repeat = 0x0100,
410  End = 0x1000,
411 };
412 namespace o3tl
413 {
414  template<> struct typed_flags<TrackingEventFlags> : is_typed_flags<TrackingEventFlags, 0x1107> {};
415 }
416 
417 #endif // INCLUDED_VCL_VCLENUM_HXX
418 
419 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
STRING
Group
bool operator!=(const ItalicMatrix &a, const ItalicMatrix &b)
Definition: vclenum.hxx:209
MenuItemType
Definition: vclenum.hxx:30
ExtTimeFieldFormat
Definition: vclenum.hxx:146
ToolBoxButtonSize
Definition: vclenum.hxx:295
TimeFieldFormat
Definition: vclenum.hxx:28
sal_uInt32 sal_UCS4
Definition: vclenum.hxx:194
VclButtonsType
Definition: vclenum.hxx:244
double xy
Definition: vclenum.hxx:200
the first 4 of these are only used by base/dbaccess
SelectionMode
Definition: vclenum.hxx:26
FloatWinPopupFlags
Definition: vclenum.hxx:369
ButtonType
Definition: vclenum.hxx:71
ToolBoxItemType
Definition: vclenum.hxx:69
OutDevSupportType
Definition: vclenum.hxx:196
MenuItemBits
Definition: vclenum.hxx:32
WizardButtonFlags
Definition: vclenum.hxx:278
TimeFormat
Definition: vclenum.hxx:141
SymbolType
Definition: vclenum.hxx:73
LineStyle
Definition: vclenum.hxx:184
RasterOp
Definition: vclenum.hxx:192
VclSizeGroupMode
Definition: vclenum.hxx:263
WindowStateMask
Definition: vclenum.hxx:121
GradientStyle
VclMessageType
Definition: vclenum.hxx:254
VclPolicyType
Definition: vclenum.hxx:271
bool operator==(const ItalicMatrix &a, const ItalicMatrix &b)
Definition: vclenum.hxx:204
ToolBoxItemBits
Definition: vclenum.hxx:50
VclPackType
Definition: vclenum.hxx:222
ImageType
Definition: vclenum.hxx:326
TrackingEventFlags
Definition: vclenum.hxx:403
VclResponseType
!! in case of changes adjust /basic/source/runtime/methods.cxx msgbox
Definition: vclenum.hxx:232
double xx
Definition: vclenum.hxx:200
DrawFrameStyle
Definition: vclenum.hxx:336
ExtDateFieldFormat
Definition: vclenum.hxx:154
Definition: menu.hxx:124
State
#define SAL_MAX_ENUM
TxtAlign
Definition: vclenum.hxx:362
double yx
Definition: vclenum.hxx:200
ShowFlags
Definition: vclenum.hxx:391
VclAlign
Definition: vclenum.hxx:214
WindowStateState
Definition: vclenum.hxx:303
struct _ADOKey Key
WindowBorderStyle
Definition: vclenum.hxx:106
DrawFrameFlags
Definition: vclenum.hxx:348
HatchStyle
double yy
Definition: vclenum.hxx:200