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