DtkGui
5.5.23
DTK Gui module
src
util
private
dbuiltiniconengine_p.h
1
// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd.
2
//
3
// SPDX-License-Identifier: LGPL-3.0-or-later
4
5
#ifndef DBUILTINICONENGINE_H
6
#define DBUILTINICONENGINE_H
7
8
#include <dtkgui_global.h>
9
10
#include <QIconEngine>
11
#include <private/qiconloader_p.h>
12
13
DGUI_BEGIN_NAMESPACE
14
15
// 内置的主题引擎,会从Qt资源文件中查找图标
16
class
DBuiltinIconEnginePrivate;
17
class
Q_DECL_HIDDEN
DBuiltinIconEngine
:
public
QIconEngine
18
{
19
public
:
20
DBuiltinIconEngine
(
const
QString
&iconName);
21
~DBuiltinIconEngine
();
22
void
paint(QPainter *painter,
const
QRect
&rect,
23
QIcon::Mode mode, QIcon::State state);
24
QSize
actualSize(
const
QSize
&size, QIcon::Mode mode,
25
QIcon::State state);
26
QPixmap pixmap(
const
QSize
&size, QIcon::Mode mode,
27
QIcon::State state);
28
29
QString
key()
const
;
30
QIconEngine *clone()
const
;
31
bool
read(
QDataStream
&in);
32
bool
write(
QDataStream
&out)
const
;
33
34
QString
iconName()
const override
;
35
36
static
QThemeIconInfo loadIcon(
const
QString
&iconName, uint key);
37
38
private
:
39
bool
hasIcon()
const
;
40
void
ensureLoaded();
41
void
virtual_hook(
int
id
,
void
*data)
override
;
42
43
DBuiltinIconEngine
(
const
DBuiltinIconEngine
&other);
44
QThemeIconInfo m_info;
45
QString
m_iconName;
46
// 图标的类型(Dark/Light)
47
uint m_key:2;
48
// 记录是否已经初始化
49
bool
m_initialized:1;
50
// 控制是否跟随系统级别的主题色来改变图标类型
51
bool
m_followSystemTheme:1;
52
53
friend
class
QIconLoader;
54
};
55
56
DGUI_END_NAMESPACE
57
58
#endif
// DBUILTINICONENGINE_H
Dtk::Gui::DBuiltinIconEngine
Definition:
dbuiltiniconengine_p.h:18
QDataStream
QRect
QSize
QString
制作者
1.9.3