35 light = p.light().color();
36 midlight = p.midlight().color();
37 dark = p.dark().color();
38 window = p.window().color();
39 text = p.text().color();
40 highlight = p.highlight().color();
41 htext = p.highlightedText().color();
53struct DefaultStylesRegistrar
55 DefaultStylesRegistrar()
57 auto clampColor = [](
int v)
65 auto lcomb = [clampColor](
const QColor& c1,
const QColor& c2,
float f)
67 const float fi = 1.0f - f;
68 return QColor(clampColor(c1.red() *f + c2.red() *fi),
69 clampColor(c1.green()*f + c2.green()*fi),
70 clampColor(c1.blue() *f + c2.blue() *fi),
71 clampColor(c1.alpha()*f + c2.alpha()*fi));
73 auto dimmed = [lcomb](
const QColor& c,
float factor)
75 return lcomb(c, Qt::black, 1.0f-factor);
77 auto coeff = [clampColor](
const QColor& c,
float cr,
float cg,
float cb)
79 return QColor(clampColor(c.red() * cr), clampColor(c.green() * cg), clampColor(c.blue() * cb));
81 auto add = [clampColor](
const QColor& c1,
const QColor& c2)
83 return QColor(clampColor(c1.red() + c2.red()),
84 clampColor(c1.green() + c2.green()),
85 clampColor(c1.blue() + c2.blue()),
86 clampColor(c1.alpha() + c2.alpha()));
88 auto toBase = [](
const QColor& c)
90 const int minColor = std::min(std::min(c.red(), c.green()), c.blue());
91 return QColor(c.red() - minColor,
103 params->TabBorderRadius = 0;
104 params->TabFontColor = p.text;
105 params->ToolbarBackgroundColor = p.window;
106 params->BorderColor = dimmed(p.light, 0.25f);
107 params->GroupNameColor = lcomb(p.text, p.midlight, 0.4f);
109 params->TabSpecialColor = {{0.0f, dimmed(p.highlight, 0.2f)},
110 {1.0f, p.highlight}};
112 params->TabSpecialHoverColor = {{0.0f, params->TabSpecialColor[1].value},
113 {1.0f, params->TabSpecialColor[0].value}};
115 params->TabSpecialHoverBorderColor = p.highlight;
116 params->TabSpecialHoverBorderColorSide = params->TabSpecialHoverBorderColor;
117 params->TabSpecialBorderColor = p.highlight;
118 params->TabSpecialBorderColorSide = params->TabSpecialBorderColor;
119 params->TabSpecialFontColor = p.htext;
121 params->TabUnselectedHoverBorderColorTop =
122 params->TabHoverBorderColorTop = p.highlight;
124 params->TabUnselectedHoverBorderColorSide =
125 params->TabHoverBorderColorSide = {{0.0f, params->BorderColor},
126 {0.1f, params->BorderColor},
127 {0.7f, params->TabHoverBorderColorTop},
128 {1.0f, params->TabHoverBorderColorTop}};
130 params->PaneColor = {{0.0f, dimmed(p.light, 0.1f)},
134 params->TabSelectedColor = p.light;
136 params->TabUnselectedColor = lcomb(params->ToolbarBackgroundColor, params->TabSelectedColor[0].value, 0.5f);
138 params->SeparatorColor = {{0.0f, Qt::transparent},
139 {0.05f, Qt::transparent},
140 {0.1f, params->BorderColor},
141 {0.9f, params->BorderColor},
142 {0.95f, Qt::transparent},
143 {1.0f, Qt::transparent}};
145 params->HorizontalFrameBackgroundColor = params->PaneColor;
146 for(
auto& c : params->HorizontalFrameBackgroundColor)
147 c.value.setAlpha(100);
148 params->HorizontalFrameBorderColor = params->BorderColor;
149 params->HorizontalFrameBorderSize = 2;
150 params->TabSpacing = 3;
152 params->HideArrowColor = lcomb(p.text, p.midlight, 0.4f);
159 const QColor vienna = (p.window.lightnessF() > 0.5f ? QColor(51, 153, 255) : QColor(25, 40, 70));
164 params->TabBorderRadius = 2;
165 params->TabFontColor = lcomb(p.text, vienna, 0.588f);
166 params->ToolbarBackgroundColor = add(dimmed(p.window, 0.07f), toBase(dimmed(vienna, 0.892f)));
167 const float dimmCoeff = (p.window.lightnessF() > 0.5f ? 0.225f : 0.5f);
168 params->BorderColor = add(dimmed(p.window, dimmCoeff), toBase(dimmed(vienna, 0.838f)));
169 params->GroupNameColor = lcomb(p.text, params->ToolbarBackgroundColor, 0.484f);
171 params->PaneColor = {{0.0f, params->ToolbarBackgroundColor},
172 {0.5f, params->ToolbarBackgroundColor},
173 {0.75f, lcomb(params->ToolbarBackgroundColor, p.light, 0.5f)},
176 params->TabSpecialColor = {{0.0f, add(dimmed(p.window, 0.7125f), coeff(toBase(dimmed(p.highlight, 0.294f)), 1.0f, 1.29f, 1.0f))},
177 {0.6f, add(dimmed(p.window, 0.891f), coeff(toBase(dimmed(p.highlight, 0.46f)), 1.0f, 0.69f, 1.0f))},
178 {0.6001f, add(dimmed(p.window, 0.825f), coeff(toBase(dimmed(p.highlight, 0.362f)), 1.0f, 0.815f, 1.0f))},
179 {1.0f, add(dimmed(p.window, 0.7125f), coeff(toBase(dimmed(p.highlight, 0.416f)), 1.0f, 0.924f, 1.0f))}};
181 params->TabSpecialHoverColor = {{0.0f, coeff(params->TabSpecialColor[0].value, 2.17f, 1.48f, 1.197f)},
182 {0.6f, coeff(params->TabSpecialColor[1].value, 0.653f, 1.218f, 1.286f)},
183 {0.6001f, coeff(params->TabSpecialColor[2].value, 1.69f, 1.326f, 1.191f)},
184 {1.0f, coeff(params->TabSpecialColor[3].value, 1.768f, 1.44f, 1.255f)}};
186 params->TabSpecialHoverBorderColor =
187 params->TabSpecialBorderColor = add(dimmed(p.window, 0.729f), coeff(toBase(dimmed(p.highlight, 0.392f)), 1.0f, 0.66f, 1.0f));
188 params->TabSpecialHoverBorderColorSide =
189 params->TabSpecialBorderColorSide = params->TabSpecialBorderColor;
190 params->TabSpecialFontColor = p.htext;
192 params->TabUnselectedHoverBorderColorTop =
193 params->TabHoverBorderColorTop = QColor(255, 183, 0);
195 params->TabUnselectedHoverBorderColorSide =
196 params->TabHoverBorderColorSide = {{0.0f, params->BorderColor},
197 {0.3f, QColor(255, 183, 0)},
198 {1.0f, QColor(255, 183, 0)}};
200 params->TabUnselectedColor = add(dimmed(p.window, 0.02f), toBase(dimmed(vienna, 0.9264f)));
202 params->TabSelectedColor = p.light;
204 params->SeparatorColor = {{0.0f, Qt::transparent},
205 {0.075f, Qt::transparent},
206 {0.0751f, add(dimmed(p.window, 0.3125f), toBase(dimmed(vienna, 0.789f)))},
207 {0.925f, add(dimmed(p.window, 0.3125f), toBase(dimmed(vienna, 0.789f)))},
208 {0.9251f, Qt::transparent},
209 {1.0f, Qt::transparent}};
211 params->HorizontalFrameBackgroundColor =
212 {{0.0f, add(dimmed(p.window, 0.033f), coeff(toBase(dimmed(vienna, 0.9362f)), 1.0f, 1.38f, 1.0f))},
213 {0.6f, add(dimmed(p.window, 0.05f), coeff(toBase(dimmed(vienna, 0.8333f)), 1.0f, 0.588f, 1.0f))},
214 {0.6001f, add(p.window, coeff(toBase(dimmed(vienna, 0.9166f)), 1.0f, 0.82f, 1.0f))},
217 params->HorizontalFrameBorderColor = params->BorderColor;
218 params->HorizontalFrameBorderSize = 2;
219 params->TabSpacing = 4;
221 params->HideArrowColor = lcomb(p.text, p.light, 0.62f);
232 params->TabBorderRadius = 0;
233 params->TabFontColor = p.text;
234 params->ToolbarBackgroundColor = p.light;
235 const float paneDimmCoeff = (p.window.lightnessF() > 0.5f ? 0.03529f : 0.1f);
236 params->PaneColor = dimmed(p.light, paneDimmCoeff);
237 const float borderDimmCoeff = (p.window.lightnessF() > 0.5f ? 0.15f : 0.3f);
238 params->BorderColor = dimmed(params->ToolbarBackgroundColor, borderDimmCoeff);
239 params->GroupNameColor = lcomb(p.text, p.light, 0.43f);
241 params->TabSpecialColor = coeff(p.highlight, 0.5f, 0.8f, 0.8f);
242 params->TabSpecialHoverColor = coeff(p.highlight, 0.8f, 0.9f, 0.88f);
243 params->TabSpecialHoverBorderColor =
244 params->TabSpecialBorderColor = params->TabSpecialColor;
245 params->TabSpecialHoverBorderColorSide =
246 params->TabSpecialBorderColorSide = params->TabSpecialColor;
247 params->TabSpecialFontColor = p.htext;
249 params->TabUnselectedHoverBorderColorTop = dimmed(params->PaneColor, 0.04f);
250 params->TabHoverBorderColorTop = params->BorderColor;
251 params->TabUnselectedHoverBorderColorSide = params->TabUnselectedHoverBorderColorTop;
253 params->TabHoverBorderColorSide = params->BorderColor;
255 const float unselectedDimmCoeff = (p.window.lightnessF() > 0.5f ? 0.008f : 0.1f);
256 params->TabUnselectedColor = dimmed(params->ToolbarBackgroundColor, unselectedDimmCoeff);
258 params->TabSelectedColor = params->PaneColor;
260 params->SeparatorColor = {{0.0f, Qt::transparent},
261 {0.05f, Qt::transparent},
262 {0.051f, params->BorderColor},
263 {0.95f, params->BorderColor},
264 {0.951f, Qt::transparent},
265 {1.0f, Qt::transparent}};
267 params->HorizontalFrameBackgroundColor = Qt::transparent;
268 params->HorizontalFrameBorderColor = Qt::transparent;
269 params->HorizontalFrameBorderSize = 0;
270 params->TabSpacing = 2;
272 params->HideArrowColor = lcomb(p.text, p.light, 0.62f);
279 params->TabUnselectedColor = params->PaneColor;
280 params->PaneColor = params->ToolbarBackgroundColor;
281 params->TabSelectedColor = params->PaneColor;
282 params->BorderColor = dimmed(params->BorderColor, 0.1f);
283 params->TabHoverBorderColorTop = params->BorderColor;
284 params->TabHoverBorderColorSide = params->BorderColor;
285 params->SeparatorColor = {{0.0f, Qt::transparent},
286 {0.05f, Qt::transparent},
287 {0.051f, params->BorderColor},
288 {0.95f, params->BorderColor},
289 {0.951f, Qt::transparent},
290 {1.0f, Qt::transparent}};
296static DefaultStylesRegistrar g;
QString AdditionalStyleSheet
TT_API const QString g_styleVienna
void RegisterStyle(const QString &styleName, const TStyleCreator &creator)
TT_API const QString g_styleThreshold
std::unique_ptr< StyleParams > CreateStyle(const QString &styleName)
TT_API const QString g_styleKool