summaryrefslogtreecommitdiffstats
path: root/include/vcl/vclenum.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'include/vcl/vclenum.hxx')
-rw-r--r--include/vcl/vclenum.hxx418
1 files changed, 418 insertions, 0 deletions
diff --git a/include/vcl/vclenum.hxx b/include/vcl/vclenum.hxx
new file mode 100644
index 000000000..6e0359fa2
--- /dev/null
+++ b/include/vcl/vclenum.hxx
@@ -0,0 +1,418 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef INCLUDED_VCL_VCLENUM_HXX
+#define INCLUDED_VCL_VCLENUM_HXX
+
+#include <sal/types.h>
+#include <o3tl/typed_flags_set.hxx>
+
+enum class SelectionMode { NONE, Single, Range, Multiple };
+
+enum class TimeFieldFormat : sal_Int32 { F_NONE, F_SEC, F_SEC_CS };
+
+enum class MenuItemType { DONTKNOW, STRING, IMAGE, STRINGIMAGE, SEPARATOR };
+
+enum class MenuItemBits : sal_Int16
+{
+ NONE = 0x0000,
+ CHECKABLE = 0x0001,
+ RADIOCHECK = 0x0002,
+ AUTOCHECK = 0x0004,
+ HELP = 0x0010,
+ POPUPSELECT = 0x0020,
+ // These have been said to be a preliminary (sic) solution since 2007
+ NOSELECT = 0x0040,
+ ICON = 0x0080,
+ TEXT = 0x0100,
+};
+namespace o3tl
+{
+ template<> struct typed_flags<MenuItemBits> : is_typed_flags<MenuItemBits, 0x1f7> {};
+}
+
+enum class ToolBoxItemBits
+{
+ NONE = 0x0000,
+ CHECKABLE = 0x0001,
+ RADIOCHECK = 0x0002,
+ AUTOCHECK = 0x0004,
+ LEFT = 0x0008,
+ AUTOSIZE = 0x0010,
+ DROPDOWN = 0x0020,
+ REPEAT = 0x0040,
+ DROPDOWNONLY = 0x00a0, // 0x0080 | DROPDOWN
+ TEXT_ONLY = 0x0100,
+ ICON_ONLY = 0x0200
+};
+namespace o3tl
+{
+ template<> struct typed_flags<ToolBoxItemBits> : is_typed_flags<ToolBoxItemBits, 0x3ff> {};
+}
+
+enum class ToolBoxItemType { DONTKNOW, BUTTON, SPACE, SEPARATOR, BREAK };
+
+enum class ButtonType { SYMBOLONLY, TEXT, SYMBOLTEXT };
+
+enum class SymbolType : sal_uInt16
+{
+ DONTKNOW = 0,
+ IMAGE = 1,
+ ARROW_UP = 2,
+ ARROW_DOWN = 3,
+ ARROW_LEFT = 4,
+ ARROW_RIGHT = 5,
+ SPIN_UP = 6,
+ SPIN_DOWN = 7,
+ SPIN_LEFT = 8,
+ SPIN_RIGHT = 9,
+ FIRST = 10,
+ LAST = 11,
+ PREV = 12,
+ NEXT = 13,
+ PAGEUP = 14,
+ PAGEDOWN = 15,
+ PLAY = 16,
+ STOP = 19,
+ CLOSE = 25,
+ CHECKMARK = 28,
+ RADIOCHECKMARK = 29,
+ FLOAT = 31,
+ DOCK = 32,
+ HIDE = 33,
+ HELP = 34,
+ PLUS = 35,
+ MENU = SymbolType::SPIN_DOWN
+};
+
+
+// Border styles for SetBorder()
+enum class WindowBorderStyle : sal_Int16
+{
+ NONE = 0x0000,
+ NORMAL = 0x0001,
+ MONO = 0x0002,
+ MENU = 0x0010,
+ NWF = 0x0020,
+ NOBORDER = 0x1000,
+ REMOVEBORDER = 0x2000
+};
+namespace o3tl
+{
+ template<> struct typed_flags<WindowBorderStyle> : is_typed_flags<WindowBorderStyle, 0x3033> {};
+}
+
+enum class WindowStateMask {
+ NONE = 0x0000,
+ X = 0x0001,
+ Y = 0x0002,
+ Width = 0x0004,
+ Height = 0x0008,
+ State = 0x0010,
+ Minimized = 0x0020,
+ MaximizedX = 0x0100,
+ MaximizedY = 0x0200,
+ MaximizedWidth = 0x0400,
+ MaximizedHeight = 0x0800,
+ Pos = X | Y,
+ Size = Width | Height,
+ All = X | Y | Width | Height | MaximizedX | MaximizedY | MaximizedWidth | MaximizedHeight | State | Minimized
+};
+namespace o3tl
+{
+ template<> struct typed_flags<WindowStateMask> : is_typed_flags<WindowStateMask, 0x0f3f> {};
+}
+
+enum class TimeFormat
+{
+ Hour12, Hour24
+};
+
+enum class ExtTimeFieldFormat
+{
+ /** the first 4 of these are only used by base/dbaccess */
+ Short24H, Long24H,
+ Short12H, Long12H,
+ ShortDuration, LongDuration
+};
+
+enum class ExtDateFieldFormat
+{
+ SystemShort, SystemShortYY, SystemShortYYYY,
+ SystemLong,
+ ShortDDMMYY, ShortMMDDYY, ShortYYMMDD,
+ ShortDDMMYYYY, ShortMMDDYYYY, ShortYYYYMMDD,
+ ShortYYMMDD_DIN5008, ShortYYYYMMDD_DIN5008,
+ FORCE_EQUAL_SIZE=SAL_MAX_ENUM
+};
+
+// this appears to be a direct copy of css::awt::GradientStyle
+enum class GradientStyle
+{
+ Linear = 0,
+ Axial = 1,
+ Radial = 2,
+ Elliptical = 3,
+ Square = 4,
+ Rect = 5,
+ FORCE_EQUAL_SIZE = SAL_MAX_ENUM
+};
+
+enum class HatchStyle
+{
+ Single = 0,
+ Double = 1,
+ Triple = 2,
+ FORCE_EQUAL_SIZE = SAL_MAX_ENUM
+};
+
+enum class LineStyle
+{
+ NONE = 0,
+ Solid = 1,
+ Dash = 2,
+ FORCE_EQUAL_SIZE = SAL_MAX_ENUM
+};
+
+typedef sal_uInt32 sal_UCS4; // TODO: this should be moved to rtl
+
+enum class OutDevSupportType { TransparentRect, B2DDraw };
+
+struct ItalicMatrix
+{
+ double xx, xy, yx, yy;
+ ItalicMatrix() : xx(1), xy(0), yx(0), yy(1) {}
+};
+
+inline bool operator ==(const ItalicMatrix& a, const ItalicMatrix& b)
+{
+ return a.xx == b.xx && a.xy == b.xy && a.yx == b.yx && a.yy == b.yy;
+}
+
+inline bool operator !=(const ItalicMatrix& a, const ItalicMatrix& b)
+{
+ return !(a == b);
+}
+
+enum class VclAlign
+{
+ Fill,
+ Start,
+ End,
+ Center
+};
+
+enum class VclPackType
+{
+ Start = 0,
+ End = 1,
+ LAST = End
+};
+
+// Return Values from Dialog::Execute
+//!!! in case of changes adjust /basic/source/runtime/methods.cxx msgbox
+
+enum VclResponseType
+{
+ RET_CANCEL = 0,
+ RET_OK = 1,
+ RET_YES = 2,
+ RET_NO = 3,
+ RET_RETRY = 4,
+ RET_IGNORE = 5,
+ RET_CLOSE = 7,
+ RET_HELP = 10
+};
+
+enum class VclButtonsType
+{
+ NONE,
+ Ok,
+ Close,
+ Cancel,
+ YesNo,
+ OkCancel
+};
+
+enum class VclMessageType
+{
+ Info,
+ Warning,
+ Question,
+ Error,
+ Other
+};
+
+enum class VclSizeGroupMode
+{
+ NONE,
+ Horizontal,
+ Vertical,
+ Both
+};
+
+enum class VclPolicyType
+{
+ ALWAYS,
+ AUTOMATIC,
+ NEVER
+};
+
+enum class WizardButtonFlags : sal_Int16
+{
+ NONE = 0x0000,
+ NEXT = 0x0001,
+ PREVIOUS = 0x0002,
+ FINISH = 0x0004,
+ CANCEL = 0x0008,
+ HELP = 0x0010,
+};
+
+namespace o3tl
+{
+ template<> struct typed_flags<WizardButtonFlags> : is_typed_flags<WizardButtonFlags, 0x001f> {};
+}
+
+// small, large, size32 force an exact toolbox size for proper alignment
+// DontCare will let the toolbox decide about its size
+enum class ToolBoxButtonSize
+{
+ DontCare,
+ Small,
+ Large,
+ Size32,
+};
+
+enum class WindowStateState {
+ NONE = 0x0000,
+ Normal = 0x0001,
+ Minimized = 0x0002,
+ Maximized = 0x0004,
+ // Rollup is no longer used, but retained because WindowStateState is serialized
+ // from/to strings describing window state that are stored in a users config
+ Rollup = 0x0008,
+ MaximizedHorz = 0x0010,
+ MaximizedVert = 0x0020,
+ FullScreen = 0x0040,
+ SystemMask = 0xffff
+};
+namespace o3tl
+{
+ template<> struct typed_flags<WindowStateState> : is_typed_flags<WindowStateState, 0xffff> {};
+}
+
+namespace vcl
+{
+ // The exact sizes of the icons in each size grouping are not necessarily
+ // the exact size indicated by the name, but the upper limit of their size.
+ // e.g. many Size26 icons are often 24x24px and only some 26x26px
+ enum class ImageType
+ {
+ Size16,
+ Size26,
+ Size32,
+ Small = Size16,
+ LAST = Size32,
+ };
+}
+
+enum class DrawFrameStyle
+{
+ NONE = 0x0000,
+ In = 0x0001,
+ Out = 0x0002,
+ Group = 0x0003,
+ DoubleIn = 0x0004,
+ DoubleOut = 0x0005,
+ NWF = 0x0006,
+};
+
+// Flags for DrawFrame()
+enum class DrawFrameFlags
+{
+ NONE = 0x0000,
+ Menu = 0x0010,
+ WindowBorder = 0x0020,
+ BorderWindowBorder = 0x0040,
+ Mono = 0x1000,
+ NoDraw = 0x8000,
+};
+namespace o3tl
+{
+ template<> struct typed_flags<DrawFrameFlags> : is_typed_flags<DrawFrameFlags, 0x9070> {};
+}
+
+enum class TxtAlign
+{
+ Left,
+ Center,
+ Right
+};
+
+enum class FloatWinPopupFlags
+{
+ NONE = 0x000000,
+ AllowTearOff = 0x000001,
+ Down = 0x000002,
+ Up = 0x000004,
+ Left = 0x000008,
+ Right = 0x000010,
+ NoKeyClose = 0x000020,
+ AllMouseButtonClose = 0x000040,
+ NoAppFocusClose = 0x000080,
+ NewLevel = 0x000100,
+ NoMouseUpClose = 0x000200,
+ GrabFocus = 0x000400,
+ NoHorzPlacement = 0x000800,
+};
+namespace o3tl
+{
+ template<> struct typed_flags<FloatWinPopupFlags> : is_typed_flags<FloatWinPopupFlags, 0x0fff> {};
+}
+
+// Flags for Window::Show()
+enum class ShowFlags
+{
+ NONE = 0x0000,
+ NoFocusChange = 0x0002,
+ NoActivate = 0x0004,
+ ForegroundTask = 0x0008,
+};
+namespace o3tl
+{
+ template<> struct typed_flags<ShowFlags> : is_typed_flags<ShowFlags, 0x000e> {};
+}
+
+enum class TrackingEventFlags
+{
+ NONE = 0x0000,
+ Cancel = 0x0001,
+ Key = 0x0002,
+ Focus = 0x0004,
+ Repeat = 0x0100,
+ End = 0x1000,
+};
+namespace o3tl
+{
+ template<> struct typed_flags<TrackingEventFlags> : is_typed_flags<TrackingEventFlags, 0x1107> {};
+}
+
+#endif // INCLUDED_VCL_VCLENUM_HXX
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */