#ifndef adwaita_h #define adwaita_h /************************************************************************* * Copyright (C) 2014 by Hugo Pereira Da Costa * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the * * Free Software Foundation, Inc., * * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA . * *************************************************************************/ #include #include #include #include namespace Adwaita { //*@name convenience typedef //@{ #if QT_VERSION >= 0x050000 //* scoped pointer convenience typedef template using WeakPointer = QPointer; #else //* scoped pointer convenience typedef template using WeakPointer = QWeakPointer; #endif //* scoped pointer convenience typedef template using ScopedPointer = QScopedPointer; //* disable QStringLiteral for older Qt version #if QT_VERSION < 0x050000 using QStringLiteral = QString; #endif //@} //* Settings namespace Settings { const bool SingleClick { true }; const bool ShowIconsOnPushButtons { true }; const int ToolButtonStyle { Qt::ToolButtonTextBesideIcon }; const bool ShowIconsInMenuItems { true }; } //* metrics enum Metrics { // frames Frame_FrameWidth = 4, Frame_FrameRadius = 4, // layout Layout_TopLevelMarginWidth = 10, Layout_ChildMarginWidth = 6, Layout_DefaultSpacing = 6, // line editors LineEdit_FrameWidth = 7, // menu items Menu_FrameWidth = 0, MenuItem_MarginWidth = 5, MenuItem_ItemSpacing = 4, MenuItem_AcceleratorSpace = 16, MenuButton_IndicatorWidth = 20, // combobox ComboBox_FrameWidth = 7, // spinbox SpinBox_FrameWidth = LineEdit_FrameWidth, SpinBox_ArrowButtonWidth = 20, // groupbox title margin GroupBox_TitleMarginWidth = 4, // buttons Button_MinWidth = 80, Button_MarginWidth = 4, Button_ItemSpacing = 3, // tool buttons ToolButton_MarginWidth = 6, ToolButton_ItemSpacing = 4, ToolButton_InlineIndicatorWidth = 12, // checkboxes and radio buttons CheckBox_Size = 20, CheckBox_FocusMarginWidth = 3, CheckBox_ItemSpacing = 4, // menubar items MenuBarItem_MarginWidth = 8, MenuBarItem_MarginHeight = 4, // scrollbars ScrollBar_Extend = 14, ScrollBar_SliderWidth = 8, ScrollBar_MinSliderHeight = 24, ScrollBar_NoButtonHeight = (ScrollBar_Extend-ScrollBar_SliderWidth)/2, ScrollBar_SingleButtonHeight = 0, ScrollBar_DoubleButtonHeight = 0, // toolbars ToolBar_FrameWidth = 2, ToolBar_HandleExtent = 10, ToolBar_HandleWidth = 6, ToolBar_SeparatorWidth = 8, ToolBar_ExtensionWidth = 20, ToolBar_ItemSpacing = 0, // progressbars ProgressBar_BusyIndicatorSize = 24, ProgressBar_Thickness = 3, ProgressBar_ItemSpacing = 3, // mdi title bar TitleBar_MarginWidth = 4, // sliders Slider_TickLength = 4, Slider_TickMarginWidth = 6, Slider_GrooveThickness = 3, Slider_ControlThickness = 24, // tabbar TabBar_TabMarginHeight = 9, TabBar_TabMarginWidth = 8, TabBar_TabMinWidth = 80, TabBar_TabMinHeight = 36, TabBar_TabItemSpacing = 8, TabBar_TabOverlap = 1, TabBar_BaseOverlap = 0, // tab widget TabWidget_MarginWidth = 4, // toolbox ToolBox_TabMinWidth = 80, ToolBox_TabItemSpacing = 4, ToolBox_TabMarginWidth = 8, // tooltips ToolTip_FrameWidth = 3, // scroll areas ScrollArea_FrameWidth = 2, // list headers Header_MarginWidth = 3, Header_ItemSpacing = 2, Header_ArrowSize = 10, // tree view ItemView_ArrowSize = 10, ItemView_ItemMarginWidth = 3, SidePanel_ItemMarginWidth = 4, // splitter Splitter_SplitterWidth = 1, // shadow dimensions Shadow_Overlap = 0 }; //* animation mode enum AnimationMode { AnimationNone = 0, AnimationHover = 0x1, AnimationFocus = 0x2, AnimationEnable = 0x4, AnimationPressed = 0x8 }; Q_DECLARE_FLAGS(AnimationModes, AnimationMode) //* corners enum Corner { CornerTopLeft = 0x1, CornerTopRight = 0x2, CornerBottomLeft = 0x4, CornerBottomRight = 0x8, CornersTop = CornerTopLeft|CornerTopRight, CornersBottom = CornerBottomLeft|CornerBottomRight, CornersLeft = CornerTopLeft|CornerBottomLeft, CornersRight = CornerTopRight|CornerBottomRight, AllCorners = CornerTopLeft|CornerTopRight|CornerBottomLeft|CornerBottomRight }; Q_DECLARE_FLAGS( Corners, Corner ) //* sides enum Side { SideNone = 0x0, SideLeft = 0x1, SideTop = 0x2, SideRight = 0x4, SideBottom = 0x8, AllSides = SideLeft|SideTop|SideRight|SideBottom }; Q_DECLARE_FLAGS( Sides, Side ) //* checkbox state enum CheckBoxState { CheckOff, CheckPartial, CheckOn, CheckAnimated }; //* radio button state enum RadioButtonState { RadioOff, RadioOn, RadioAnimated }; //* arrow orientation enum ArrowOrientation { ArrowNone, ArrowUp, ArrowDown, ArrowLeft, ArrowRight }; //* button type enum ButtonType { ButtonClose, ButtonMaximize, ButtonMinimize, ButtonRestore }; } Q_DECLARE_OPERATORS_FOR_FLAGS( Adwaita::AnimationModes ) Q_DECLARE_OPERATORS_FOR_FLAGS( Adwaita::Corners ) Q_DECLARE_OPERATORS_FOR_FLAGS( Adwaita::Sides ) #endif