File: dplatformtheme.h

package info (click to toggle)
dtkgui 5.7.12-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,340 kB
  • sloc: cpp: 19,512; ansic: 34; makefile: 15; sh: 15
file content (250 lines) | stat: -rw-r--r-- 11,579 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd.
//
// SPDX-License-Identifier: LGPL-3.0-or-later

#ifndef DPLATFORMTHEME_H
#define DPLATFORMTHEME_H

#include <DNativeSettings>
#include <DPalette>

#include <QObject>

DGUI_BEGIN_NAMESPACE

class DPlatformThemePrivate;
// TODO: class DPlatformTheme will be removed in the future
class DPlatformTheme : public DNativeSettings
{
    Q_OBJECT
    D_DECLARE_PRIVATE(DPlatformTheme)

    Q_PROPERTY(int cursorBlinkTime READ cursorBlinkTime WRITE setCursorBlinkTime NOTIFY cursorBlinkTimeChanged)
    Q_PROPERTY(int cursorBlinkTimeout READ cursorBlinkTimeout WRITE setCursorBlinkTimeout NOTIFY cursorBlinkTimeoutChanged)
    Q_PROPERTY(bool cursorBlink READ cursorBlink WRITE setCursorBlink NOTIFY cursorBlinkChanged)
    Q_PROPERTY(int doubleClickDistance READ doubleClickDistance WRITE setDoubleClickDistance NOTIFY doubleClickDistanceChanged)
    Q_PROPERTY(int doubleClickTime READ doubleClickTime WRITE setDoubleClickTime NOTIFY doubleClickTimeChanged)
    Q_PROPERTY(int dndDragThreshold READ dndDragThreshold WRITE setDndDragThreshold NOTIFY dndDragThresholdChanged)
    Q_PROPERTY(int windowRadius READ windowRadius WRITE setWindowRadius NOTIFY windowRadiusChanged)
    Q_PROPERTY(QByteArray themeName READ themeName WRITE setThemeName NOTIFY themeNameChanged)
    Q_PROPERTY(QByteArray iconThemeName READ iconThemeName WRITE setIconThemeName NOTIFY iconThemeNameChanged)
    Q_PROPERTY(QByteArray soundThemeName READ soundThemeName WRITE setSoundThemeName NOTIFY soundThemeNameChanged)
    // Font
    Q_PROPERTY(QByteArray fontName READ fontName WRITE setFontName NOTIFY fontNameChanged)
    Q_PROPERTY(QByteArray monoFontName READ monoFontName WRITE setMonoFontName NOTIFY monoFontNameChanged)
    Q_PROPERTY(qreal fontPointSize READ fontPointSize WRITE setFontPointSize NOTIFY fontPointSizeChanged)
    Q_PROPERTY(QByteArray gtkFontName READ gtkFontName WRITE setGtkFontName NOTIFY gtkFontNameChanged)

    Q_PROPERTY(QColor activeColor READ activeColor WRITE setActiveColor NOTIFY activeColorChanged)
    Q_PROPERTY(QColor darkActiveColor READ darkActiveColor WRITE setDarkActiveColor NOTIFY darkActiveColorChanged)
#if DTK_VERSION < DTK_VERSION_CHECK(6, 0, 0, 0)
    // QPalette
    Q_PROPERTY(QColor window READ window WRITE setWindow NOTIFY windowChanged)
    Q_PROPERTY(QColor windowText READ windowText WRITE setWindowText NOTIFY windowTextChanged)
    Q_PROPERTY(QColor base READ base WRITE setBase NOTIFY baseChanged)
    Q_PROPERTY(QColor alternateBase READ alternateBase WRITE setAlternateBase NOTIFY alternateBaseChanged)
    Q_PROPERTY(QColor toolTipBase READ toolTipBase WRITE setToolTipBase NOTIFY toolTipBaseChanged)
    Q_PROPERTY(QColor toolTipText READ toolTipText WRITE setToolTipText NOTIFY toolTipTextChanged)
    Q_PROPERTY(QColor text READ text WRITE setText NOTIFY textChanged)
    Q_PROPERTY(QColor button READ button WRITE setButton NOTIFY buttonChanged)
    Q_PROPERTY(QColor buttonText READ buttonText WRITE setButtonText NOTIFY buttonTextChanged)
    Q_PROPERTY(QColor brightText READ brightText WRITE setBrightText NOTIFY brightTextChanged)
    Q_PROPERTY(QColor light READ light WRITE setLight NOTIFY lightChanged)
    Q_PROPERTY(QColor midlight READ midlight WRITE setMidlight NOTIFY midlightChanged)
    Q_PROPERTY(QColor dark READ dark WRITE setDark NOTIFY darkChanged)
    Q_PROPERTY(QColor mid READ mid WRITE setMid NOTIFY midChanged)
    Q_PROPERTY(QColor shadow READ shadow WRITE setShadow NOTIFY shadowChanged)
    Q_PROPERTY(QColor highlight READ highlight WRITE setHighlight NOTIFY highlightChanged)
    Q_PROPERTY(QColor highlightedText READ highlightedText WRITE setHighlightedText NOTIFY highlightedTextChanged)
    Q_PROPERTY(QColor link READ link WRITE setLink NOTIFY linkChanged)
    Q_PROPERTY(QColor linkVisited READ linkVisited WRITE setLinkVisited NOTIFY linkVisitedChanged)
    // DPalette
    Q_PROPERTY(QColor itemBackground READ itemBackground WRITE setItemBackground NOTIFY itemBackgroundChanged)
    Q_PROPERTY(QColor textTitle READ textTitle WRITE setTextTitle NOTIFY textTitleChanged)
    Q_PROPERTY(QColor textTips READ textTips WRITE setTextTips NOTIFY textTipsChanged)
    Q_PROPERTY(QColor textWarning READ textWarning WRITE setTextWarning NOTIFY textWarningChanged)
    Q_PROPERTY(QColor textLively READ textLively WRITE setTextLively NOTIFY textLivelyChanged)
    Q_PROPERTY(QColor lightLively READ lightLively WRITE setLightLively NOTIFY lightLivelyChanged)
    Q_PROPERTY(QColor darkLively READ darkLively WRITE setDarkLively NOTIFY darkLivelyChanged)
    Q_PROPERTY(QColor frameBorder READ frameBorder WRITE setFrameBorder NOTIFY frameBorderChanged)
#endif
    // DSizeMode
    Q_PROPERTY(int sizeMode READ sizeMode NOTIFY sizeModeChanged)
    Q_PROPERTY(int scrollBarPolicy READ scrollBarPolicy NOTIFY scrollBarPolicyChanged)

public:
    explicit DPlatformTheme(quint32 window, QObject *parent = nullptr);
    DPlatformTheme(quint32 window, DPlatformTheme *parent);
    ~DPlatformTheme();

    bool isValid() const;
    DPlatformTheme *parentTheme() const;
    void setFallbackProperty(bool fallback);

    DPalette palette() const;
    DPalette fetchPalette(const DPalette &base, bool *ok = nullptr) const;
    void setPalette(const DPalette &palette);

    int cursorBlinkTime() const;
    int cursorBlinkTimeout() const;
    bool cursorBlink() const;
    int doubleClickDistance() const;
    int doubleClickTime() const;
    int dndDragThreshold() const;
    int windowRadius() const;
    int windowRadius(int defaultValue) const;
    QByteArray themeName() const;
    QByteArray iconThemeName() const;
    QByteArray soundThemeName() const;

    QByteArray fontName() const;
    QByteArray monoFontName() const;
    qreal fontPointSize() const;
    QByteArray gtkFontName() const;

    QColor activeColor() const;
    QColor darkActiveColor() const;

    bool isValidPalette() const;

#if DTK_VERSION < DTK_VERSION_CHECK(6, 0, 0, 0)
    QColor window() const;
    QColor windowText() const;
    QColor base() const;
    QColor alternateBase() const;
    QColor toolTipBase() const;
    QColor toolTipText() const;
    QColor text() const;
    QColor button() const;
    QColor buttonText() const;
    QColor brightText() const;
    QColor light() const;
    QColor midlight() const;
    QColor dark() const;
    QColor mid() const;
    QColor shadow() const;
    QColor highlight() const;
    QColor highlightedText() const;
    QColor link() const;
    QColor linkVisited() const;
    QColor itemBackground() const;
    QColor textTitle() const;
    QColor textTips() const;
    QColor textWarning() const;
    QColor textLively() const;
    QColor lightLively() const;
    QColor darkLively() const;
    QColor frameBorder() const;
#endif

    int sizeMode() const;
    int scrollBarPolicy() const;

public Q_SLOTS:
    void setCursorBlinkTime(int cursorBlinkTime);
    void setCursorBlinkTimeout(int cursorBlinkTimeout);
    void setCursorBlink(bool cursorBlink);
    void setDoubleClickDistance(int doubleClickDistance);
    void setDoubleClickTime(int doubleClickTime);
    void setDndDragThreshold(int dndDragThreshold);
    void setThemeName(const QByteArray &themeName);
    void setIconThemeName(const QByteArray &iconThemeName);
    void setSoundThemeName(const QByteArray &soundThemeName);
    void setFontName(const QByteArray &fontName);
    void setMonoFontName(const QByteArray &monoFontName);
    void setFontPointSize(qreal fontPointSize);
    void setGtkFontName(const QByteArray &fontName);
    void setActiveColor(const QColor activeColor);
    void setDarkActiveColor(const QColor &activeColor);
#if DTK_VERSION < DTK_VERSION_CHECK(6, 0, 0, 0)
    void setWindow(const QColor &window);
    void setWindowText(const QColor &windowText);
    void setBase(const QColor &base);
    void setAlternateBase(const QColor &alternateBase);
    void setToolTipBase(const QColor &toolTipBase);
    void setToolTipText(const QColor &toolTipText);
    void setText(const QColor &text);
    void setButton(const QColor &button);
    void setButtonText(const QColor &buttonText);
    void setBrightText(const QColor &brightText);
    void setLight(const QColor &light);
    void setMidlight(const QColor &midlight);
    void setDark(const QColor &dark);
    void setMid(const QColor &mid);
    void setShadow(const QColor &shadow);
    void setHighlight(const QColor &highlight);
    void setHighlightedText(const QColor &highlightedText);
    void setLink(const QColor &link);
    void setLinkVisited(const QColor &linkVisited);
    void setItemBackground(const QColor &itemBackground);
    void setTextTitle(const QColor &textTitle);
    void setTextTips(const QColor &textTips);
    void setTextWarning(const QColor &textWarning);
    void setTextLively(const QColor &textLively);
    void setLightLively(const QColor &lightLively);
    void setDarkLively(const QColor &darkLively);
    void setFrameBorder(const QColor &frameBorder);
#endif

    int dotsPerInch(const QString &screenName = QString()) const;
    void setDotsPerInch(const QString &screenName, int dpi);
    void setWindowRadius(int windowRadius);

Q_SIGNALS:
    void cursorBlinkTimeChanged(int cursorBlinkTime);
    void cursorBlinkTimeoutChanged(int cursorBlinkTimeout);
    void cursorBlinkChanged(bool cursorBlink);
    void doubleClickDistanceChanged(int doubleClickDistance);
    void doubleClickTimeChanged(int doubleClickTime);
    void dndDragThresholdChanged(int dndDragThreshold);
    void themeNameChanged(QByteArray themeName);
    void iconThemeNameChanged(QByteArray iconThemeName);
    void soundThemeNameChanged(QByteArray soundThemeName);
    void fontNameChanged(QByteArray fontName);
    void monoFontNameChanged(QByteArray monoFontName);
    void fontPointSizeChanged(qreal fontPointSize);
    void gtkFontNameChanged(QByteArray fontName);
    void activeColorChanged(QColor activeColor);
    void darkActiveColorChanged(QColor activeColor);
    void paletteChanged(DPalette palette);
#if DTK_VERSION < DTK_VERSION_CHECK(6, 0, 0, 0)
    void windowChanged(QColor window);
    void windowTextChanged(QColor windowText);
    void baseChanged(QColor base);
    void alternateBaseChanged(QColor alternateBase);
    void toolTipBaseChanged(QColor toolTipBase);
    void toolTipTextChanged(QColor toolTipText);
    void textChanged(QColor text);
    void buttonChanged(QColor button);
    void buttonTextChanged(QColor buttonText);
    void brightTextChanged(QColor brightText);
    void lightChanged(QColor light);
    void midlightChanged(QColor midlight);
    void darkChanged(QColor dark);
    void midChanged(QColor mid);
    void shadowChanged(QColor shadow);
    void highlightChanged(QColor highlight);
    void highlightedTextChanged(QColor highlightedText);
    void linkChanged(QColor link);
    void linkVisitedChanged(QColor linkVisited);
    void itemBackgroundChanged(QColor itemBackground);
    void textTitleChanged(QColor textTitle);
    void textTipsChanged(QColor textTips);
    void textWarningChanged(QColor textWarning);
    void textLivelyChanged(QColor textLively);
    void lightLivelyChanged(QColor lightLively);
    void darkLivelyChanged(QColor darkLively);
    void frameBorderChanged(QColor frameBorder);
#endif
    void dotsPerInchChanged(const QString &screen, int dpi);
    void windowRadiusChanged(int r);
    void sizeModeChanged(int sizeMode);
    void scrollBarPolicyChanged(int scrollBarPolicy);

private:
    friend class DPlatformThemePrivate;
};

DGUI_END_NAMESPACE

#endif // DPLATFORMTHEME_H