12#include <score_lib_base_export.h>
29 QPen pen0_solid_round;
32 QPen pen1_solid_flat_miter;
35 QPen pen2_solid_round_round;
36 QPen pen2_solid_flat_miter;
37 QPen pen2_dashdot_square_miter;
38 QPen pen2_dotted_square_miter;
40 QPen pen3_solid_flat_miter;
41 QPen pen3_solid_round_round;
42 QPen pen3_dashed_flat_miter;
54 explicit BrushSet(
const QBrush& b)
noexcept;
56 BrushSet& operator=(
const QBrush& b)
noexcept;
61struct SCORE_LIB_BASE_EXPORT
Brush
63 operator const QBrush&()
const noexcept {
return main.brush; }
64 QColor color()
const noexcept {
return main.brush.color(); }
72 void reload(QColor color)
noexcept;
84 explicit Brush(
const QBrush& b)
noexcept;
85 Brush& operator=(
const QBrush& b)
noexcept;
91 Pair(QString&& str, QColor&& c)
92 : first{std::move(str)}
93 , second{std::move(c)}
99class SCORE_LIB_BASE_EXPORT
Skin :
public QObject
103 static Skin& instance()
noexcept;
108 static bool exists()
noexcept;
116 Everything = Colours | Fonts
119 void load(
const QJsonObject& style,
int parts = Everything);
123 QJsonObject toJson()
const;
127 static QJsonObject merged(
const QJsonObject& base,
const QJsonObject& over);
131 static const std::vector<std::pair<const char*, QPalette::ColorRole>>&
132 paletteRoles() noexcept;
137 std::vector<
std::pair<const
char*, QFont*>> fonts() noexcept;
140 QFont ApplicationFont;
158 QFont SectionTitleFont;
216 Brush SelectedCable1;
217 Brush SelectedCable2;
218 Brush SelectedCable3;
219 Brush SelectedCable4;
220 Brush SelectedCable5;
243 QPalette WidgetPalette;
245 const QPen TransparentPen;
246 const QBrush TransparentBrush;
248 const QBrush NoBrush;
255 QBrush SliderInteriorBrush;
260 QCursor CursorPointer;
261 QCursor CursorOpenHand;
262 QCursor CursorClosedHand;
263 QCursor CursorPointingHand;
264 QCursor CursorMagnifier;
266 QCursor CursorScaleH;
267 QCursor CursorScaleV;
268 QCursor CursorScaleFDiag;
271 QCursor CursorPlayFromHere;
272 QCursor CursorCreationMode;
274 const
Brush* fromString(const QString& s) const;
275 Brush* fromString(const QString& s);
276 QString toString(const
Brush*) const;
278 QVector<QPair<QColor, QString>> getColors() const;
279 QVector<QPair<QColor, QString>> getDefaultPaletteColors() const;
287 void changed() E_SIGNAL(SCORE_LIB_BASE_EXPORT, changed)
290 void timerEvent(QTimerEvent* event) override;
296 explicit Skin(NoGUI);
303 void loadFonts(
const QJsonObject& spec_obj);
306 QJsonObject saveFonts()
const;
320 void loadPalette(
const QJsonObject& spec);
323 QJsonObject savePalette()
const;
328 QVector<QPair<QColor, QString>> m_builtinColours;
332 QPalette m_basePalette;
335 color_map* initColorMap() noexcept;
336 color_map* m_colorMap{};
337 std::vector<Brush::Pair> m_defaultPalette;
339 bool m_pulseDirection{
false};
344SCORE_LIB_BASE_EXPORT
int uiFontSize() noexcept;
351SCORE_LIB_BASE_EXPORT
double fontScale() noexcept;
358SCORE_LIB_BASE_EXPORT QSize
scaledIcon(
int px) noexcept;
369SCORE_LIB_BASE_EXPORT
void onSkinChange(QObject* owner,
std::function<
void()> f);
375 onSkinChange(widget, [widget, px] { widget->setIconSize(
scaledIcon(px)); });
380SCORE_LIB_BASE_EXPORT QFont::HintingPreference
uiFontHinting() noexcept;
388SCORE_LIB_BASE_EXPORT
int pixelFontGrid(const QString& family) noexcept;
393SCORE_LIB_BASE_EXPORT
int snapToFontGrid(const QFont& f,
int px) noexcept;
420SCORE_LIB_BASE_EXPORT
void setupApplicationFont(const QFont& f);
Part
Which halves of a skin file to apply.
Definition Skin.hpp:113
Base toolkit upon which the software is built.
Definition Application.cpp:83
int pixelFontGrid(const QString &family) noexcept
Definition Skin.cpp:145
bool canSetGlobalScaleFactorLive() noexcept
Definition Skin.cpp:225
int uiFontSize() noexcept
Definition Skin.cpp:72
constexpr int referenceFontSize
Definition Skin.hpp:348
bool setGlobalScaleFactor(double factor)
Definition Skin.cpp:234
void setSkinIconSize(T *widget, int px)
onSkinChange(widget, setIconSize(scaledIcon(px))).
Definition Skin.hpp:373
double fontScale() noexcept
Current application font size over referenceFontSize.
Definition Skin.cpp:81
QFont::HintingPreference uiFontHinting() noexcept
Definition Skin.cpp:123
void setSnappedPixelSize(QFont &f, int px) noexcept
setPixelSize through snapToFontGrid.
Definition Skin.cpp:188
void registerApplicationFonts()
Definition Skin.cpp:193
QFont defaultApplicationFont() noexcept
Definition Skin.cpp:214
QSize scaledIcon(int px) noexcept
scaledPixels() as a square.
Definition Skin.cpp:100
int snapToFontGrid(const QFont &f, int px) noexcept
Definition Skin.cpp:174
QFont::StyleStrategy uiFontStyleStrategy() noexcept
Definition Skin.cpp:128
void applyDefaultPalette(QPalette &p)
Definition Skin.cpp:451
int scaledPixels(int px) noexcept
Definition Skin.cpp:95