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#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
108 void updatePolish() override;
109#endif
110 void componentComplete() override;
111#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
112 void geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) override;
113#else
114 void geometryChange(const QRectF &newGeometry, const QRectF &oldGeometry) override;
115#endif
116 void itemChange(ItemChange change, const ItemChangeData &value) override;
117};
118
120class DQuickIconAttached : public QObject, DCORE_NAMESPACE::DObject
121{
122 Q_OBJECT
123 D_DECLARE_PRIVATE(DQuickIconAttached)
124 Q_PROPERTY(DTK_QUICK_NAMESPACE::DQMLGlobalObject::ControlState mode READ mode WRITE setMode NOTIFY modeChanged)
125 Q_PROPERTY(DTK_GUI_NAMESPACE::DGuiApplicationHelper::ColorType theme READ theme WRITE setTheme NOTIFY themeChanged)
126 Q_PROPERTY(DTK_GUI_NAMESPACE::DDciIconPalette palette READ palette WRITE setPalette NOTIFY paletteChanged)
127 Q_PROPERTY(bool fallbackToQIcon READ fallbackToQIcon WRITE setFallbackToQIcon NOTIFY fallbackToQIconChanged)
128
129public:
130 explicit DQuickIconAttached(QQuickItem *parent);
132
133 DQMLGlobalObject::ControlState mode() const;
134 void setMode(DQMLGlobalObject::ControlState mode);
135
136 DGuiApplicationHelper::ColorType theme() const;
137 void setTheme(DGuiApplicationHelper::ColorType theme);
138
139 DDciIconPalette palette() const;
140 void setPalette(const DDciIconPalette &palette);
141
142 bool fallbackToQIcon() const;
143 void setFallbackToQIcon(bool newFallbackToQIcon);
144
145Q_SIGNALS:
146 void modeChanged();
147 void themeChanged();
148 void paletteChanged();
149 void fallbackToQIconChanged();
150};
151
152DQUICK_END_NAMESPACE
153QML_DECLARE_TYPEINFO(DTK_QUICK_NAMESPACE::DQuickDciIconImage, QML_HAS_ATTACHED_PROPERTIES)
154#endif // DQUICKDCIICONIMAGE_P_H
Definition dquickdciiconimage_p.h:23
Definition dquickdciiconimage.cpp:516
Definition dquickdciiconimage_p.h:121
Definition dquickiconimage_p.h:23