PeriDyno 1.0.0
Loading...
Searching...
No Matches
Styles.h
Go to the documentation of this file.
1/*
2 TabToolbar - a small utility library for Qt, providing tabbed toolbars
3 Copyright (C) 2018 Oleksii Sierov
4
5 TabToolbar is free software: you can redistribute it and/or modify
6 it under the terms of the GNU Lesser General Public License as published by
7 the Free Software Foundation, either version 3 of the License, or
8 (at your option) any later version.
9
10 TabToolbar is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public License
16 along with TabToolbar. If not, see <http://www.gnu.org/licenses/>.
17*/
18#ifndef TT_STYLES_H
19#define TT_STYLES_H
20#include <QObject>
21#include <QColor>
22#include <QString>
23#include <vector>
24#include <functional>
25
26#include "API.h"
27
28namespace tt
29{
30
31struct TT_API Color
32{
33 bool operator==(const Color& o) const { return o.coefficient == coefficient && o.value == value; }
35 QColor value;
36};
37class TT_API Colors
38{
39private:
40 using TVectorType = std::vector<Color>;
41
42public:
43 Colors() = default;
44 Colors(const Qt::GlobalColor& c)
45 : m_colors(TVectorType({{1.0f, c}})) {}
46 Colors(const QColor& c)
47 : m_colors(TVectorType({{1.0f, c}})) {}
48 Colors(const std::initializer_list<Color>& c)
49 : m_colors(TVectorType(c)) {}
50
51 operator QColor () const
52 {
53 return m_colors.at(0).value;
54 }
55 bool operator != (const Colors& c) const
56 {
57 return m_colors != c.m_colors;
58 }
59 Color& operator [] (std::size_t i)
60 {
61 return m_colors[i];
62 }
63 const Color& operator [] (std::size_t i) const
64 {
65 return m_colors[i];
66 }
67 TVectorType::size_type size() const
68 {
69 return m_colors.size();
70 }
71 TVectorType::iterator begin()
72 {
73 return m_colors.begin();
74 }
75 TVectorType::iterator end()
76 {
77 return m_colors.end();
78 }
79 TVectorType::const_iterator begin() const
80 {
81 return m_colors.cbegin();
82 }
83 TVectorType::const_iterator end() const
84 {
85 return m_colors.cend();
86 }
87
88private:
90};
91
92#define TT_PROPERTY(type, name)\
93 Q_PROPERTY(type name MEMBER name)\
94 type name
95class TT_API StyleParams : public QObject
96{
97 Q_OBJECT
98public:
99 virtual ~StyleParams() = default;
100
101 TT_PROPERTY(tt::Colors, SeparatorColor);
102 TT_PROPERTY(tt::Colors, TabSelectedColor);
103 TT_PROPERTY(tt::Colors, TabUnselectedColor);
105 TT_PROPERTY(tt::Colors, TabHoverBorderColorSide);
106 TT_PROPERTY(tt::Colors, TabUnselectedHoverBorderColorSide);
107 TT_PROPERTY(tt::Colors, TabSpecialBorderColorSide);
108 TT_PROPERTY(tt::Colors, TabSpecialHoverBorderColorSide);
109 TT_PROPERTY(tt::Colors, TabSpecialHoverColor);
110 TT_PROPERTY(tt::Colors, TabSpecialColor);
111 TT_PROPERTY(tt::Colors, HorizontalFrameBackgroundColor);
112 TT_PROPERTY(tt::Colors, HorizontalFrameBorderColor);
113 TT_PROPERTY(int, HorizontalFrameBorderSize);
114 TT_PROPERTY(tt::Colors, HideArrowColor);
115 TT_PROPERTY(tt::Colors, TabUnselectedHoverBorderColorTop);
116 TT_PROPERTY(tt::Colors, TabHoverBorderColorTop);
117 TT_PROPERTY(tt::Colors, TabSpecialBorderColor);
118 TT_PROPERTY(tt::Colors, TabSpecialHoverBorderColor);
119 TT_PROPERTY(tt::Colors, TabSpecialFontColor);
120 TT_PROPERTY(tt::Colors, TabFontColor);
121 TT_PROPERTY(tt::Colors, ToolbarBackgroundColor);
122 TT_PROPERTY(tt::Colors, BorderColor);
123 TT_PROPERTY(tt::Colors, GroupNameColor);
124 TT_PROPERTY(int, TabBorderRadius);
125 TT_PROPERTY(int, TabSpacing);
126
129};
130#undef TT_PROPERTY
131
132extern TT_API const QString g_styleKool;
133extern TT_API const QString g_styleVienna;
134extern TT_API const QString g_styleThreshold;
135
136}
137Q_DECLARE_METATYPE(tt::Colors)
138#endif
TVectorType::const_iterator begin() const
Definition Styles.h:79
std::vector< Color > TVectorType
Definition Styles.h:40
TVectorType::iterator end()
Definition Styles.h:75
TVectorType m_colors
Definition Styles.h:89
TVectorType::iterator begin()
Definition Styles.h:71
Colors(const QColor &c)
Definition Styles.h:46
Colors(const Qt::GlobalColor &c)
Definition Styles.h:44
Colors()=default
TVectorType::size_type size() const
Definition Styles.h:67
TVectorType::const_iterator end() const
Definition Styles.h:83
Colors(const std::initializer_list< Color > &c)
Definition Styles.h:48
TT_PROPERTY(tt::Colors, TabUnselectedHoverBorderColorTop)
TT_PROPERTY(tt::Colors, TabSelectedColor)
TT_PROPERTY(tt::Colors, ToolbarBackgroundColor)
TT_PROPERTY(tt::Colors, TabSpecialFontColor)
TT_PROPERTY(tt::Colors, TabSpecialHoverColor)
TT_PROPERTY(int, TabBorderRadius)
TT_PROPERTY(tt::Colors, HideArrowColor)
TT_PROPERTY(tt::Colors, TabSpecialHoverBorderColorSide)
TT_PROPERTY(tt::Colors, TabHoverBorderColorSide)
TT_PROPERTY(tt::Colors, TabHoverBorderColorTop)
TT_PROPERTY(int, HorizontalFrameBorderSize)
TT_PROPERTY(tt::Colors, TabSpecialHoverBorderColor)
TT_PROPERTY(tt::Colors, HorizontalFrameBackgroundColor)
TT_PROPERTY(tt::Colors, TabUnselectedHoverBorderColorSide)
TT_PROPERTY(int, TabSpacing)
TT_PROPERTY(tt::Colors, TabSpecialBorderColor)
virtual ~StyleParams()=default
TT_PROPERTY(tt::Colors, GroupNameColor)
TT_PROPERTY(tt::Colors, HorizontalFrameBorderColor)
TT_PROPERTY(tt::Colors, TabSpecialColor)
TT_PROPERTY(tt::Colors, TabSpecialBorderColorSide)
TT_PROPERTY(tt::Colors, SeparatorColor)
TT_PROPERTY(tt::Colors, TabFontColor)
bool UseTemplateSheet
Definition Styles.h:127
TT_PROPERTY(tt::Colors, TabUnselectedColor)
TT_PROPERTY(tt::Colors, BorderColor)
TT_PROPERTY(tt::Colors, PaneColor)
QString AdditionalStyleSheet
Definition Styles.h:128
Definition Builder.h:33
TT_API const QString g_styleVienna
Definition Styles.cpp:25
TT_API const QString g_styleThreshold
Definition Styles.cpp:26
TT_API const QString g_styleKool
Definition Styles.cpp:24
QColor value
Definition Styles.h:35
bool operator==(const Color &o) const
Definition Styles.h:33
float coefficient
Definition Styles.h:34