DtkGui
DTK Gui module
载入中...
搜索中...
未找到
dciiconengine_p.h
1// SPDX-FileCopyrightText: 2022 - 2023 UnionTech Software Technology Co., Ltd.
2//
3// SPDX-License-Identifier: LGPL-3.0-or-later
4
5#ifndef DDCIICONENGINE_H
6#define DDCIICONENGINE_H
7
8#include <dtkgui_global.h>
9
10#include "ddciicon.h"
11
12#include <QIconEngine>
13
14DGUI_BEGIN_NAMESPACE
15
16class Q_DECL_HIDDEN DDciIconEngine : public QIconEngine
17{
18public:
19 explicit DDciIconEngine(const QString &iconName);
20 virtual ~DDciIconEngine() override;
21 void paint(QPainter *painter, const QRect &rect, QIcon::Mode mode, QIcon::State state) override;
22 QSize actualSize(const QSize &size, QIcon::Mode mode, QIcon::State state) override;
23 QPixmap pixmap(const QSize &size, QIcon::Mode mode, QIcon::State state) override;
24 QPixmap pixmap(const QSize &size, QIcon::Mode mode, QIcon::State state, qreal radio);
25
26 QString key() const override;
27 QIconEngine *clone() const override;
28 bool read(QDataStream &in) override;
29 bool write(QDataStream &out) const override;
30
31#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
32 QString iconName() override;
33#else
34 QString iconName() const override;
35#endif
36private:
37 void virtual_hook(int id, void *data) override;
38 void ensureIconTheme();
39
40 DDciIconEngine(const DDciIconEngine &other);
41 QString m_iconName;
42 QString m_iconThemeName;
43 DDciIcon m_dciIcon;
44};
45
46DGUI_END_NAMESPACE
47
48#endif // DDCIICONENGINE_H
Definition dciiconengine_p.h:17
Definition ddciicon.h:68
DCI图标类