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 QList<QSize> availableSizes(QIcon::Mode mode = QIcon::Normal, QIcon::State state = QIcon::Off) override;
34#else
35 QString iconName() const override;
36#endif
37private:
38 void virtual_hook(int id, void *data) override;
39 void ensureIconTheme();
40
41 DDciIconEngine(const DDciIconEngine &other);
42 QString m_iconName;
43 QString m_iconThemeName;
44 DDciIcon m_dciIcon;
45};
46
47DGUI_END_NAMESPACE
48
49#endif // DDCIICONENGINE_H
Definition dciiconengine_p.h:17
Definition ddciicon.h:68
DCI图标类