Blame style/adwaita.h

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