DtkGui
DTK Gui module
载入中...
搜索中...
未找到
dplatformtheme.h
浏览该文件的文档.
1// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd.
2//
3// SPDX-License-Identifier: LGPL-3.0-or-later
4
5#ifndef DPLATFORMTHEME_H
6#define DPLATFORMTHEME_H
7
8#include <DNativeSettings>
9#include <DPalette>
10
11#include <QObject>
12
13DGUI_BEGIN_NAMESPACE
14
15class DPlatformThemePrivate;
17{
18 Q_OBJECT
19 D_DECLARE_PRIVATE(DPlatformTheme)
20
21 Q_PROPERTY(int cursorBlinkTime READ cursorBlinkTime WRITE setCursorBlinkTime NOTIFY cursorBlinkTimeChanged)
22 Q_PROPERTY(int cursorBlinkTimeout READ cursorBlinkTimeout WRITE setCursorBlinkTimeout NOTIFY cursorBlinkTimeoutChanged)
23 Q_PROPERTY(bool cursorBlink READ cursorBlink WRITE setCursorBlink NOTIFY cursorBlinkChanged)
24 Q_PROPERTY(int doubleClickDistance READ doubleClickDistance WRITE setDoubleClickDistance NOTIFY doubleClickDistanceChanged)
25 Q_PROPERTY(int doubleClickTime READ doubleClickTime WRITE setDoubleClickTime NOTIFY doubleClickTimeChanged)
26 Q_PROPERTY(int dndDragThreshold READ dndDragThreshold WRITE setDndDragThreshold NOTIFY dndDragThresholdChanged)
27 Q_PROPERTY(int windowRadius READ windowRadius WRITE setWindowRadius NOTIFY windowRadiusChanged)
28 Q_PROPERTY(QByteArray themeName READ themeName WRITE setThemeName NOTIFY themeNameChanged)
29 Q_PROPERTY(QByteArray iconThemeName READ iconThemeName WRITE setIconThemeName NOTIFY iconThemeNameChanged)
30 Q_PROPERTY(QByteArray soundThemeName READ soundThemeName WRITE setSoundThemeName NOTIFY soundThemeNameChanged)
31 // Font
32 Q_PROPERTY(QByteArray fontName READ fontName WRITE setFontName NOTIFY fontNameChanged)
33 Q_PROPERTY(QByteArray monoFontName READ monoFontName WRITE setMonoFontName NOTIFY monoFontNameChanged)
34 Q_PROPERTY(qreal fontPointSize READ fontPointSize WRITE setFontPointSize NOTIFY fontPointSizeChanged)
35 Q_PROPERTY(QByteArray gtkFontName READ gtkFontName WRITE setGtkFontName NOTIFY gtkFontNameChanged)
36
37 Q_PROPERTY(QColor activeColor READ activeColor WRITE setActiveColor NOTIFY activeColorChanged)
38 Q_PROPERTY(QColor darkActiveColor READ darkActiveColor WRITE setDarkActiveColor NOTIFY darkActiveColorChanged)
39#if DTK_VERSION < DTK_VERSION_CHECK(6, 0, 0, 0)
40 // QPalette
41 Q_PROPERTY(QColor window READ window WRITE setWindow NOTIFY windowChanged)
42 Q_PROPERTY(QColor windowText READ windowText WRITE setWindowText NOTIFY windowTextChanged)
43 Q_PROPERTY(QColor base READ base WRITE setBase NOTIFY baseChanged)
44 Q_PROPERTY(QColor alternateBase READ alternateBase WRITE setAlternateBase NOTIFY alternateBaseChanged)
45 Q_PROPERTY(QColor toolTipBase READ toolTipBase WRITE setToolTipBase NOTIFY toolTipBaseChanged)
46 Q_PROPERTY(QColor toolTipText READ toolTipText WRITE setToolTipText NOTIFY toolTipTextChanged)
47 Q_PROPERTY(QColor text READ text WRITE setText NOTIFY textChanged)
48 Q_PROPERTY(QColor button READ button WRITE setButton NOTIFY buttonChanged)
49 Q_PROPERTY(QColor buttonText READ buttonText WRITE setButtonText NOTIFY buttonTextChanged)
50 Q_PROPERTY(QColor brightText READ brightText WRITE setBrightText NOTIFY brightTextChanged)
51 Q_PROPERTY(QColor light READ light WRITE setLight NOTIFY lightChanged)
52 Q_PROPERTY(QColor midlight READ midlight WRITE setMidlight NOTIFY midlightChanged)
53 Q_PROPERTY(QColor dark READ dark WRITE setDark NOTIFY darkChanged)
54 Q_PROPERTY(QColor mid READ mid WRITE setMid NOTIFY midChanged)
55 Q_PROPERTY(QColor shadow READ shadow WRITE setShadow NOTIFY shadowChanged)
56 Q_PROPERTY(QColor highlight READ highlight WRITE setHighlight NOTIFY highlightChanged)
57 Q_PROPERTY(QColor highlightedText READ highlightedText WRITE setHighlightedText NOTIFY highlightedTextChanged)
58 Q_PROPERTY(QColor link READ link WRITE setLink NOTIFY linkChanged)
59 Q_PROPERTY(QColor linkVisited READ linkVisited WRITE setLinkVisited NOTIFY linkVisitedChanged)
60 // DPalette
61 Q_PROPERTY(QColor itemBackground READ itemBackground WRITE setItemBackground NOTIFY itemBackgroundChanged)
62 Q_PROPERTY(QColor textTitle READ textTitle WRITE setTextTitle NOTIFY textTitleChanged)
63 Q_PROPERTY(QColor textTips READ textTips WRITE setTextTips NOTIFY textTipsChanged)
64 Q_PROPERTY(QColor textWarning READ textWarning WRITE setTextWarning NOTIFY textWarningChanged)
65 Q_PROPERTY(QColor textLively READ textLively WRITE setTextLively NOTIFY textLivelyChanged)
66 Q_PROPERTY(QColor lightLively READ lightLively WRITE setLightLively NOTIFY lightLivelyChanged)
67 Q_PROPERTY(QColor darkLively READ darkLively WRITE setDarkLively NOTIFY darkLivelyChanged)
68 Q_PROPERTY(QColor frameBorder READ frameBorder WRITE setFrameBorder NOTIFY frameBorderChanged)
69#endif
70 // DSizeMode
71 Q_PROPERTY(int sizeMode READ sizeMode NOTIFY sizeModeChanged)
72 Q_PROPERTY(int scrollBarPolicy READ scrollBarPolicy NOTIFY scrollBarPolicyChanged)
73
74public:
75 explicit DPlatformTheme(quint32 window, QObject *parent = nullptr);
76 DPlatformTheme(quint32 window, DPlatformTheme *parent);
78
79 bool isValid() const;
80 DPlatformTheme *parentTheme() const;
81 void setFallbackProperty(bool fallback);
82
83 DPalette palette() const;
84 DPalette fetchPalette(const DPalette &base, bool *ok = nullptr) const;
85 void setPalette(const DPalette &palette);
86
87 int cursorBlinkTime() const;
88 int cursorBlinkTimeout() const;
89 bool cursorBlink() const;
90 int doubleClickDistance() const;
91 int doubleClickTime() const;
92 int dndDragThreshold() const;
93 int windowRadius() const;
94 int windowRadius(int defaultValue) const;
95 QByteArray themeName() const;
96 QByteArray iconThemeName() const;
97 QByteArray soundThemeName() const;
98
99 QByteArray fontName() const;
100 QByteArray monoFontName() const;
101 qreal fontPointSize() const;
102 QByteArray gtkFontName() const;
103
104 QColor activeColor() const;
105 QColor darkActiveColor() const;
106
107 bool isValidPalette() const;
108
109#if DTK_VERSION < DTK_VERSION_CHECK(6, 0, 0, 0)
110 QColor window() const;
111 QColor windowText() const;
112 QColor base() const;
113 QColor alternateBase() const;
114 QColor toolTipBase() const;
115 QColor toolTipText() const;
116 QColor text() const;
117 QColor button() const;
118 QColor buttonText() const;
119 QColor brightText() const;
120 QColor light() const;
121 QColor midlight() const;
122 QColor dark() const;
123 QColor mid() const;
124 QColor shadow() const;
125 QColor highlight() const;
126 QColor highlightedText() const;
127 QColor link() const;
128 QColor linkVisited() const;
129 QColor itemBackground() const;
130 QColor textTitle() const;
131 QColor textTips() const;
132 QColor textWarning() const;
133 QColor textLively() const;
134 QColor lightLively() const;
135 QColor darkLively() const;
136 QColor frameBorder() const;
137#endif
138
139 int sizeMode() const;
140 int scrollBarPolicy() const;
141
142public Q_SLOTS:
143 void setCursorBlinkTime(int cursorBlinkTime);
144 void setCursorBlinkTimeout(int cursorBlinkTimeout);
145 void setCursorBlink(bool cursorBlink);
146 void setDoubleClickDistance(int doubleClickDistance);
147 void setDoubleClickTime(int doubleClickTime);
148 void setDndDragThreshold(int dndDragThreshold);
149 void setThemeName(const QByteArray &themeName);
150 void setIconThemeName(const QByteArray &iconThemeName);
151 void setSoundThemeName(const QByteArray &soundThemeName);
152 void setFontName(const QByteArray &fontName);
153 void setMonoFontName(const QByteArray &monoFontName);
154 void setFontPointSize(qreal fontPointSize);
155 void setGtkFontName(const QByteArray &fontName);
156 void setActiveColor(const QColor activeColor);
157 void setDarkActiveColor(const QColor &activeColor);
158#if DTK_VERSION < DTK_VERSION_CHECK(6, 0, 0, 0)
159 void setWindow(const QColor &window);
160 void setWindowText(const QColor &windowText);
161 void setBase(const QColor &base);
162 void setAlternateBase(const QColor &alternateBase);
163 void setToolTipBase(const QColor &toolTipBase);
164 void setToolTipText(const QColor &toolTipText);
165 void setText(const QColor &text);
166 void setButton(const QColor &button);
167 void setButtonText(const QColor &buttonText);
168 void setBrightText(const QColor &brightText);
169 void setLight(const QColor &light);
170 void setMidlight(const QColor &midlight);
171 void setDark(const QColor &dark);
172 void setMid(const QColor &mid);
173 void setShadow(const QColor &shadow);
174 void setHighlight(const QColor &highlight);
175 void setHighlightedText(const QColor &highlightedText);
176 void setLink(const QColor &link);
177 void setLinkVisited(const QColor &linkVisited);
178 void setItemBackground(const QColor &itemBackground);
179 void setTextTitle(const QColor &textTitle);
180 void setTextTips(const QColor &textTips);
181 void setTextWarning(const QColor &textWarning);
182 void setTextLively(const QColor &textLively);
183 void setLightLively(const QColor &lightLively);
184 void setDarkLively(const QColor &darkLively);
185 void setFrameBorder(const QColor &frameBorder);
186#endif
187
188 int dotsPerInch(const QString &screenName = QString()) const;
189 void setDotsPerInch(const QString &screenName, int dpi);
190 void setWindowRadius(int windowRadius);
191
192Q_SIGNALS:
193 void cursorBlinkTimeChanged(int cursorBlinkTime);
194 void cursorBlinkTimeoutChanged(int cursorBlinkTimeout);
195 void cursorBlinkChanged(bool cursorBlink);
196 void doubleClickDistanceChanged(int doubleClickDistance);
197 void doubleClickTimeChanged(int doubleClickTime);
198 void dndDragThresholdChanged(int dndDragThreshold);
199 void themeNameChanged(QByteArray themeName);
200 void iconThemeNameChanged(QByteArray iconThemeName);
201 void soundThemeNameChanged(QByteArray soundThemeName);
202 void fontNameChanged(QByteArray fontName);
203 void monoFontNameChanged(QByteArray monoFontName);
204 void fontPointSizeChanged(qreal fontPointSize);
205 void gtkFontNameChanged(QByteArray fontName);
206 void activeColorChanged(QColor activeColor);
207 void darkActiveColorChanged(QColor activeColor);
208 void paletteChanged(DPalette palette);
209#if DTK_VERSION < DTK_VERSION_CHECK(6, 0, 0, 0)
210 void windowChanged(QColor window);
211 void windowTextChanged(QColor windowText);
212 void baseChanged(QColor base);
213 void alternateBaseChanged(QColor alternateBase);
214 void toolTipBaseChanged(QColor toolTipBase);
215 void toolTipTextChanged(QColor toolTipText);
216 void textChanged(QColor text);
217 void buttonChanged(QColor button);
218 void buttonTextChanged(QColor buttonText);
219 void brightTextChanged(QColor brightText);
220 void lightChanged(QColor light);
221 void midlightChanged(QColor midlight);
222 void darkChanged(QColor dark);
223 void midChanged(QColor mid);
224 void shadowChanged(QColor shadow);
225 void highlightChanged(QColor highlight);
226 void highlightedTextChanged(QColor highlightedText);
227 void linkChanged(QColor link);
228 void linkVisitedChanged(QColor linkVisited);
229 void itemBackgroundChanged(QColor itemBackground);
230 void textTitleChanged(QColor textTitle);
231 void textTipsChanged(QColor textTips);
232 void textWarningChanged(QColor textWarning);
233 void textLivelyChanged(QColor textLively);
234 void lightLivelyChanged(QColor lightLively);
235 void darkLivelyChanged(QColor darkLively);
236 void frameBorderChanged(QColor frameBorder);
237#endif
238 void dotsPerInchChanged(const QString &screen, int dpi);
239 void windowRadiusChanged(int r);
240 void sizeModeChanged(int sizeMode);
241 void scrollBarPolicyChanged(int scrollBarPolicy);
242
243private:
244 friend class DPlatformThemePrivate;
245
246private:
247 D_PRIVATE_SLOT(void _q_onThemePropertyChanged(const QByteArray &name, const QVariant &value))
248};
249
250DGUI_END_NAMESPACE
251
252#endif // DPLATFORMTHEME_H
一个用于本地设置的类.
Definition dnativesettings.h:17
DPalette继承并且扩展了 QPalette 类, 提供了dtk特有的特性.
Definition dpalette.h:17
Definition dplatformtheme_p.h:14
一个提供窗口主题的类.
Definition dplatformtheme.h:17