DtkGui
DTK Gui module
载入中...
搜索中...
未找到
dguiapplicationhelper_p.h
1// SPDX-FileCopyrightText: 2022 - 2026 UnionTech Software Technology Co., Ltd.
2//
3// SPDX-License-Identifier: LGPL-3.0-or-later
4
5#ifndef DGUIAPPLICATIONHELPER_P_H
6#define DGUIAPPLICATIONHELPER_P_H
7
9#include "dplatformtheme.h"
10
11#include <DObjectPrivate>
12
13QT_BEGIN_NAMESPACE
14class QLocalServer;
15QT_END_NAMESPACE
16
17DGUI_BEGIN_NAMESPACE
18
22class DGuiApplicationHelperPrivate : public DCORE_NAMESPACE::DObjectPrivate
23{
24public:
25 D_DECLARE_PUBLIC(DGuiApplicationHelper)
26
27 DGuiApplicationHelperPrivate(DGuiApplicationHelper *qq);
28 void init();
29 void initApplication(QGuiApplication *app);
30 static void staticInitApplication();
31 static void staticCleanApplication();
32 DPlatformTheme *initWindow(QWindow *window) const;
33 void _q_initApplicationTheme(bool notifyChange = false);
34 void _q_sizeModeChanged(int mode);
35 DGuiApplicationHelper::SizeMode fetchSizeMode(bool *isSystemSizeMode = nullptr) const;
36 void notifyAppThemeChanged();
37 void notifyAppThemeChangedByEvent();
38 void onApplicationPaletteChanged();
39 // 返回程序是否自定义了调色板
40 inline bool isCustomPalette() const;
41 void setPaletteType(DGuiApplicationHelper::ColorType ct, bool emitSignal);
42 void initPaletteType() const;
43
44 bool paletteTypeInited = false;
45 DGuiApplicationHelper::ColorType paletteType = DGuiApplicationHelper::UnknownType;
46 // 系统级别的主题设置
47 DPlatformTheme *systemTheme = nullptr;
48 QScopedPointer<DPalette> appPalette;
49 // 获取QLocalSever消息的等待时间
50 static int waitTime;
51 static DGuiApplicationHelper::Attributes attributes;
52 DGuiApplicationHelper::SizeMode systemSizeMode = DGuiApplicationHelper::NormalMode;
53 DGuiApplicationHelper::SizeMode explicitSizeMode;
54
55private:
56 // 应用程序级别的主题设置
57 DPlatformTheme *appTheme = nullptr;
58};
59
60Q_DECLARE_OPERATORS_FOR_FLAGS(DGuiApplicationHelper::Attributes)
61
62DGUI_END_NAMESPACE
63
64#endif // DGUIAPPLICATIONHELPER_P_H