DtkGui
DTK Gui module
载入中...
搜索中...
未找到
dguiapplicationhelper_p.h
1// SPDX-FileCopyrightText: 2022 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 DGuiApplicationHelper::ColorType paletteType = DGuiApplicationHelper::UnknownType;
45 // 系统级别的主题设置
46 DPlatformTheme *systemTheme = nullptr;
47 QScopedPointer<DPalette> appPalette;
48 // 获取QLocalSever消息的等待时间
49 static int waitTime;
50 static DGuiApplicationHelper::Attributes attributes;
51 DGuiApplicationHelper::SizeMode systemSizeMode = DGuiApplicationHelper::NormalMode;
52 DGuiApplicationHelper::SizeMode explicitSizeMode;
53
54private:
55 // 应用程序级别的主题设置
56 DPlatformTheme *appTheme = nullptr;
57};
58
59Q_DECLARE_OPERATORS_FOR_FLAGS(DGuiApplicationHelper::Attributes)
60
61DGUI_END_NAMESPACE
62
63#endif // DGUIAPPLICATIONHELPER_P_H