/* Control Types: * *Specifytheoverall,wholecontrol *type(asopposedtopartsofthe *controlifitwerecomposite).
*/
enumclass ControlType { // for use in general purpose ImplControlValue
Generic = 0, // Normal PushButton/Command Button
Pushbutton = 1, // Normal single radio button
Radiobutton = 2, // Normal single checkbox
Checkbox = 10, // Combobox, i.e. a ListBox // that allows data entry by user
Combobox = 20, // Control that allows text entry
Editbox = 30, // Control that allows text entry, but without the usual border // Has to be handled separately, because this one cannot handle // ControlPart::HasBackgroundTexture, which is drawn in the edit box'es // border window.
EditboxNoBorder = 31, // Control that allows text entry // ( some systems distinguish between single and multi line edit boxes )
MultilineEditbox = 32, // Control that pops up a menu, // but does NOT allow data entry
Listbox = 35, // An edit field together with two little // buttons on the side (aka spin field)
Spinbox = 40, // Two standalone spin buttons // without an edit field
SpinButtons = 45, // A single tab
TabItem = 50, // The border around a tab area, // but without the tabs themselves. // May have a gap at the top for // the active tab
TabPane = 55, // The background to the tab area
TabHeader = 56, // Background of a Tab Pane
TabBody = 57, // Normal scrollbar, including // all parts like slider, buttons
Scrollbar = 60,
Slider = 65, // A separator line
Fixedline = 80, // A toolbar control with buttons and a grip
Toolbar = 100, // The menubar
Menubar = 120, // popup menu
MenuPopup = 121,
Progress = 131, // Progress bar for the intro window // (aka splash screen), in case some // wants native progress bar in the // application but not for the splash // screen (used in desktop/)
IntroProgress = 132,
LevelBar = 133, // tool tips
Tooltip = 140, // to draw the implemented theme
WindowBackground = 150, //to draw border of frames natively
Frame = 160, // for nodes in listviews // used in svtools/source/contnr/svtreebx.cxx
ListNode = 170, // nets between elements of listviews // with nodes
ListNet = 171, // for list headers
ListHeader = 172,
};
/* Control Parts: * *Uniquelyidentifyapartofacontrol, *forexamplethesliderofascrollbar.
*/
enumclass ControlPart
{
NONE = 0,
Entire = 1,
ListboxWindow = 5, // the static listbox window containing the list
Button = 100,
ButtonUp = 101,
ButtonDown = 102, // Also for ComboBoxes/ListBoxes
ButtonLeft = 103,
ButtonRight = 104,
AllButtons = 105,
SeparatorHorz = 106,
SeparatorVert = 107,
TrackHorzLeft = 200,
TrackVertUpper = 201,
TrackHorzRight = 202,
TrackVertLower = 203,
TrackHorzArea = 204,
TrackVertArea = 205,
Arrow = 220,
ThumbHorz = 210, // Also used as toolbar grip
ThumbVert = 211, // Also used as toolbar grip
MenuItem = 250,
MenuItemCheckMark = 251,
MenuItemRadioMark = 252,
Separator = 253,
SubmenuArrow = 254,
// For controls that require the entire background // to be drawn first, and then other pieces over top. // (GTK+ scrollbars for example). Control region passed // in to draw this part is expected to be the entire // area of the control. // A control may respond to one or both.
DrawBackgroundHorz = 1000,
DrawBackgroundVert = 1001,
// GTK+ also draws tabs right->left since there is a // hardcoded 2 pixel overlap between adjacent tabs
TabsDrawRtl = 3000,
// Qt doesn't have a separate header to draw
TabPaneWithHeader = 3001,
// For themes that do not want to have the focus // rectangle part drawn by VCL but take care of the // whole inner control part by themselves // eg, listboxes or comboboxes or spinbuttons
HasBackgroundTexture = 4000,
// For scrollbars that have 3 buttons (most KDE themes)
HasThreeButtons = 5000,
BackgroundWindow = 6000,
BackgroundDialog = 6001,
//to draw natively the border of frames
Border = 7000,
//to draw natively the focus rects
Focus = 8000
};
SliderValue(SliderValue const &) = default;
SliderValue(SliderValue &&) = default;
SliderValue & operator =(SliderValue const &) = delete; // due to ImplControlValue
SliderValue & operator =(SliderValue &&) = delete; // due to ImplControlValue
};
class VCL_DLLPUBLIC TabPaneValue final : public ImplControlValue
{ public:
tools::Rectangle m_aTabHeaderRect;
tools::Rectangle m_aSelectedTabRect; // increased tab size, so it'll overlab the frame rect when drawing // static value, as there is currently no sane way to return additional data staticint m_nOverlap;
/* TABITEM constants are OR-ed together */ enumclass TabitemFlags
{
NONE = 0x00,
LeftAligned = 0x01, // the tabitem is aligned with the left border of the TabControl
RightAligned = 0x02, // the tabitem is aligned with the right border of the TabControl
FirstInGroup = 0x04, // the tabitem is the first in group of tabitems
LastInGroup = 0x08, // the tabitem is the last in group of tabitems
}; namespace o3tl
{ template<> struct typed_flags<TabitemFlags> : is_typed_flags<TabitemFlags, 0x0f> {};
}
/* Tab bar position (relative to content on the tab page). */ enumclass TabBarPosition
{
Top,
Left,
Right,
Bottom
};
class SAL_DLLPUBLIC_RTTI TabitemValue final : public ImplControlValue
{ public:
TabitemFlags mnAlignment;
tools::Rectangle maContentRect;
TabBarPosition meTabBarPosition;
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.11Bemerkung:
(vorverarbeitet am 2026-06-10)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.