DtkDeclarative
DTK Declarative module
载入中...
搜索中...
未找到
dquickdciiconimage_p.h
1// SPDX-FileCopyrightText: 2021 - 2026 UnionTech Software Technology Co., Ltd.
2//
3// SPDX-License-Identifier: LGPL-3.0-or-later
4
5#ifndef DQUICKDCIICONIMAGE_P_H
6#define DQUICKDCIICONIMAGE_P_H
7
8#include "dquickiconimage_p.h"
9#include "dqmlglobalobject_p.h"
10
11#include <dtkdeclarative_global.h>
12#include <DObject>
13#include <DDciIcon>
14#include <DDciIconPalette>
15
16DQUICK_BEGIN_NAMESPACE
17DGUI_USE_NAMESPACE
18
19class DQuickDciIconImageItem;
20class DQuickIconAttached;
21class DQuickDciIconImagePrivate;
22class DQuickDciIconImage : public QQuickItem, DCORE_NAMESPACE::DObject
23{
24 Q_OBJECT
25 D_DECLARE_PRIVATE(DQuickDciIconImage)
26 Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged FINAL)
27 Q_PROPERTY(DTK_QUICK_NAMESPACE::DQMLGlobalObject::ControlState mode READ mode WRITE setMode NOTIFY modeChanged FINAL)
28 Q_PROPERTY(DTK_GUI_NAMESPACE::DGuiApplicationHelper::ColorType theme READ theme WRITE setTheme NOTIFY themeChanged FINAL)
29 Q_PROPERTY(DTK_GUI_NAMESPACE::DDciIconPalette palette READ palette WRITE setPalette NOTIFY paletteChanged)
30 Q_PROPERTY(QSize sourceSize READ sourceSize WRITE setSourceSize NOTIFY sourceSizeChanged)
31 Q_PROPERTY(bool mirror READ mirror WRITE setMirror NOTIFY mirrorChanged)
32 Q_PROPERTY(bool fallbackToQIcon READ fallbackToQIcon WRITE setFallbackToQIcon NOTIFY fallbackToQIconChanged)
33 Q_PROPERTY(bool asynchronous READ asynchronous WRITE setAsynchronous NOTIFY asynchronousChanged)
34 Q_PROPERTY(bool cache READ cache WRITE setCache NOTIFY cacheChanged FINAL)
35#if QT_VERSION >= QT_VERSION_CHECK(6, 8, 0)
36 Q_PROPERTY(bool retainWhileLoading READ retainWhileLoading WRITE setRetainWhileLoading NOTIFY retainWhileLoadingChanged)
37#endif
38 Q_PROPERTY(QQuickImage::FillMode fillMode READ fillMode WRITE setFillMode NOTIFY fillModeChanged)
39#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
40 QML_NAMED_ELEMENT(DciIcon)
41 QML_ATTACHED(DQuickIconAttached)
42#endif
43
44public:
45 explicit DQuickDciIconImage(QQuickItem *parent = nullptr);
46 ~DQuickDciIconImage() override;
47
48 QString name() const;
49 void setName(const QString &name);
50
51 DQMLGlobalObject::ControlState mode() const;
52 void setMode(DQMLGlobalObject::ControlState mode);
53 Q_INVOKABLE void play(DQMLGlobalObject::ControlState mode);
54
55 DGuiApplicationHelper::ColorType theme() const;
56 void setTheme(DGuiApplicationHelper::ColorType theme);
57
58 DDciIconPalette palette() const;
59 void setPalette(const DDciIconPalette &palette);
60
61 QSize sourceSize() const;
62 void setSourceSize(const QSize &size);
63
64 void setMirror(bool mirror);
65 bool mirror() const;
66
67 bool fallbackToQIcon() const;
68 void setFallbackToQIcon(bool newFallbackToQIcon);
69
70 bool asynchronous() const;
71 void setAsynchronous(bool async);
72
73 bool cache() const;
74 void setCache(bool cache);
75
76#if QT_VERSION >= QT_VERSION_CHECK(6, 8, 0)
77 bool retainWhileLoading() const;
78 void setRetainWhileLoading(bool retain);
79#endif
80
81 void setFillMode(QQuickImage::FillMode mode);
82 QQuickImage::FillMode fillMode() const;
83
84 DQuickIconImage *imageItem() const;
85
86 static bool isNull(const QString &iconName);
87 static DQuickIconAttached *qmlAttachedProperties(QObject *object);
88
89Q_SIGNALS:
90 void nameChanged();
91 void modeChanged();
92 void themeChanged();
93 void paletteChanged();
94 void sourceSizeChanged();
95 void mirrorChanged();
96 void fallbackToQIconChanged();
97 void asynchronousChanged();
98 void cacheChanged();
99 void fillModeChanged();
100
101#if QT_VERSION >= QT_VERSION_CHECK(6, 8, 0)
102 void retainWhileLoadingChanged();
103#endif
104
105protected:
106 void classBegin() override;
107 void componentComplete() override;
108};
109
111class DQuickIconAttached : public QObject, DCORE_NAMESPACE::DObject
112{
113 Q_OBJECT
114 D_DECLARE_PRIVATE(DQuickIconAttached)
115 Q_PROPERTY(DTK_QUICK_NAMESPACE::DQMLGlobalObject::ControlState mode READ mode WRITE setMode NOTIFY modeChanged)
116 Q_PROPERTY(DTK_GUI_NAMESPACE::DGuiApplicationHelper::ColorType theme READ theme WRITE setTheme NOTIFY themeChanged)
117 Q_PROPERTY(DTK_GUI_NAMESPACE::DDciIconPalette palette READ palette WRITE setPalette NOTIFY paletteChanged)
118 Q_PROPERTY(bool fallbackToQIcon READ fallbackToQIcon WRITE setFallbackToQIcon NOTIFY fallbackToQIconChanged)
119
120public:
121 explicit DQuickIconAttached(QQuickItem *parent);
123
124 DQMLGlobalObject::ControlState mode() const;
125 void setMode(DQMLGlobalObject::ControlState mode);
126
127 DGuiApplicationHelper::ColorType theme() const;
128 void setTheme(DGuiApplicationHelper::ColorType theme);
129
130 DDciIconPalette palette() const;
131 void setPalette(const DDciIconPalette &palette);
132
133 bool fallbackToQIcon() const;
134 void setFallbackToQIcon(bool newFallbackToQIcon);
135
136Q_SIGNALS:
137 void modeChanged();
138 void themeChanged();
139 void paletteChanged();
140 void fallbackToQIconChanged();
141};
142
143DQUICK_END_NAMESPACE
144QML_DECLARE_TYPEINFO(DTK_QUICK_NAMESPACE::DQuickDciIconImage, QML_HAS_ATTACHED_PROPERTIES)
145#endif // DQUICKDCIICONIMAGE_P_H
Definition dquickdciiconimage_p.h:23
Definition dquickdciiconimage.cpp:422
Definition dquickdciiconimage_p.h:112
Definition dquickiconimage_p.h:23