File indexing completed on 2024-05-12 16:58:29

0001 /*
0002  * SPDX-FileCopyrightText: 2014 Hugo Pereira Da Costa <hugo.pereira@free.fr>
0003  * SPDX-FileCopyrightText: 2020 Noah Davis <noahadvs@gmail.com>
0004  *
0005  * SPDX-License-Identifier: GPL-2.0-or-later
0006  */
0007 
0008 #ifndef breezemetrics_h
0009 #define breezemetrics_h
0010 
0011 #include <QtGlobal>
0012 
0013 namespace Breeze
0014 {
0015 //* standard pen widths
0016 struct PenWidth {
0017     /* Using 1 instead of slightly more than 1 causes symbols drawn with
0018      * pen strokes to look skewed. The exact amount added does not matter
0019      * as long as it isn't too visible. Even with QPen::setCosmetic(true),
0020      * 1px pen widths still look slightly worse.
0021      */
0022     // The standard pen stroke width for symbols.
0023     static constexpr qreal Symbol = 1.001;
0024 
0025     // The standard pen stroke width for frames.
0026     static constexpr qreal Frame = 1.001;
0027 
0028     // The standard pen stroke width for shadows.
0029     static constexpr qreal Shadow = 1.001;
0030 
0031     // A value for pen width arguments to make it clear that there is no pen stroke
0032     static constexpr int NoPen = 0;
0033 };
0034 
0035 //* metrics
0036 struct Metrics {
0037     // general
0038     static constexpr int ArrowSize = 10;
0039     static constexpr int SmallArrowSize = 5;
0040 
0041     // frames
0042     static constexpr int Frame_FrameWidth = 2;
0043     static constexpr int Frame_FrameRadius = 3;
0044 
0045     // layout
0046     static constexpr int Layout_TopLevelMarginWidth = 10;
0047     static constexpr int Layout_ChildMarginWidth = 6;
0048     static constexpr int Layout_DefaultSpacing = 6;
0049 
0050     // line editors
0051     static constexpr int LineEdit_FrameWidth = 6;
0052 
0053     // menu items
0054     static constexpr int Menu_FrameWidth = 0;
0055     static constexpr int MenuItem_MarginWidth = 5;
0056     static constexpr int MenuItem_HighlightGap = 4;
0057     static constexpr int MenuItem_ExtraLeftMargin = 4;
0058     static constexpr int MenuItem_MarginHeight = 3;
0059     static constexpr int MenuItem_ItemSpacing = 4;
0060     static constexpr int MenuItem_AcceleratorSpace = 16;
0061 
0062     // combobox
0063     static constexpr int ComboBox_FrameWidth = 6;
0064 
0065     // spinbox
0066     static constexpr int SpinBox_FrameWidth = LineEdit_FrameWidth;
0067     static constexpr int SpinBox_ArrowButtonWidth = 20;
0068 
0069     // groupbox title margin
0070     static constexpr int GroupBox_TitleMarginWidth = 4;
0071 
0072     // buttons
0073     static constexpr int Button_MinWidth = 80;
0074     static constexpr int Button_MarginWidth = 6;
0075     static constexpr int Button_ItemSpacing = 4;
0076 
0077     // tool buttons
0078     static constexpr int ToolButton_MarginWidth = 6;
0079     static constexpr int ToolButton_ItemSpacing = 4;
0080     static constexpr int ToolButton_InlineIndicatorWidth = 12;
0081 
0082     // menu button indicator
0083     static constexpr int MenuButton_IndicatorWidth = 20;
0084 
0085     // checkboxes and radio buttons
0086     static constexpr int CheckBox_Size = 20;
0087     static constexpr int CheckBox_FocusMarginWidth = 2;
0088     static constexpr int CheckBox_ItemSpacing = 4;
0089     static constexpr int CheckBox_Radius = Frame_FrameRadius - 1;
0090 
0091     // menubar items
0092     static constexpr int MenuBarItem_MarginWidth = 10;
0093     static constexpr int MenuBarItem_MarginHeight = 6;
0094 
0095     // scrollbars
0096     static constexpr int ScrollBar_Extend = 21;
0097     static constexpr int ScrollBar_SliderWidth = 8;
0098     static constexpr int ScrollBar_MinSliderHeight = 20;
0099     static constexpr int ScrollBar_NoButtonHeight = (ScrollBar_Extend - ScrollBar_SliderWidth) / 2;
0100     static constexpr int ScrollBar_SingleButtonHeight = ScrollBar_Extend;
0101     static constexpr int ScrollBar_DoubleButtonHeight = 2 * ScrollBar_Extend;
0102 
0103     // toolbars
0104     static constexpr int ToolBar_FrameWidth = 0;
0105     static constexpr int ToolBar_HandleExtent = 10;
0106     static constexpr int ToolBar_HandleWidth = 6;
0107     static constexpr int ToolBar_SeparatorWidth = 8;
0108     static constexpr int ToolBar_ExtensionWidth = 20;
0109     static constexpr int ToolBar_ItemMargin = 6;
0110     static constexpr int ToolBar_ItemSpacing = 0;
0111 
0112     // progressbars
0113     static constexpr int ProgressBar_BusyIndicatorSize = 14;
0114     static constexpr int ProgressBar_Thickness = 6;
0115     static constexpr int ProgressBar_ItemSpacing = 4;
0116 
0117     // mdi title bar
0118     static constexpr int TitleBar_MarginWidth = 4;
0119 
0120     // sliders
0121     static constexpr int Slider_TickLength = 8;
0122     static constexpr int Slider_TickMarginWidth = 2;
0123     static constexpr int Slider_GrooveThickness = 6;
0124     static constexpr int Slider_ControlThickness = 20;
0125 
0126     // tabbar
0127     static constexpr int TabBar_TabMarginHeight = 4;
0128     static constexpr int TabBar_TabMarginWidth = 8;
0129     static constexpr int TabBar_TabMinWidth = 80;
0130     static constexpr int TabBar_TabMinHeight = 30;
0131     static constexpr int TabBar_TabItemSpacing = 8;
0132     static constexpr int TabBar_TabOverlap = 1;
0133     static constexpr int TabBar_BaseOverlap = 2;
0134 
0135     // tab widget
0136     static constexpr int TabWidget_MarginWidth = 4;
0137 
0138     // toolbox
0139     static constexpr int ToolBox_TabMinWidth = 80;
0140     static constexpr int ToolBox_TabItemSpacing = 4;
0141     static constexpr int ToolBox_TabMarginWidth = 8;
0142 
0143     // tooltips
0144     static constexpr int ToolTip_FrameWidth = 3;
0145 
0146     // list headers
0147     static constexpr int Header_MarginWidth = 6;
0148     static constexpr int Header_ItemSpacing = 4;
0149     static constexpr int Header_ArrowSize = ArrowSize;
0150 
0151     // tree view
0152     static constexpr int ItemView_ArrowSize = ArrowSize;
0153     static constexpr int ItemView_ItemMarginWidth = 3;
0154     static constexpr int SidePanel_ItemMarginWidth = 4;
0155 
0156     // splitter
0157     static constexpr int Splitter_SplitterWidth = 1;
0158 
0159     // shadow dimensions
0160     static constexpr int Shadow_Overlap = 2;
0161 };
0162 }
0163 #endif