DtkDeclarative
DTK Declarative module
载入中...
搜索中...
未找到
dquickdciiconimage_p.h
1// SPDX-FileCopyrightText: 2021 - 2022 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#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
39 QML_NAMED_ELEMENT(DciIcon)
40 QML_ATTACHED(DQuickIconAttached)
41#endif
42
43public:
44 explicit DQuickDciIconImage(QQuickItem *parent = nullptr);
45 ~DQuickDciIconImage() override;
46
47 QString name() const;
48 void setName(const QString &name);
49
50 DQMLGlobalObject::ControlState mode() const;
51 void setMode(DQMLGlobalObject::ControlState mode);
52 Q_INVOKABLE void play(DQMLGlobalObject::ControlState mode);
53
54 DGuiApplicationHelper::ColorType theme() const;
55 void setTheme(DGuiApplicationHelper::ColorType theme);
56
57 DDciIconPalette palette() const;
58 void setPalette(const DDciIconPalette &palette);
59
60 QSize sourceSize() const;
61 void setSourceSize(const QSize &size);
62
63 void setMirror(bool mirror);
64 bool mirror() const;
65
66 bool fallbackToQIcon() const;
67 void setFallbackToQIcon(bool newFallbackToQIcon);
68
69 bool asynchronous() const;
70 void setAsynchronous(bool async);
71
72 bool cache() const;
73 void setCache(bool cache);
74
75#if QT_VERSION >= QT_VERSION_CHECK(6, 8, 0)
76 bool retainWhileLoading() const;
77 void setRetainWhileLoading(bool retain);
78#endif
79
80 DQuickIconImage *imageItem() const;
81
82 static bool isNull(const QString &iconName);
83 static DQuickIconAttached *qmlAttachedProperties(QObject *object);
84
85Q_SIGNALS:
86 void nameChanged();
87 void modeChanged();
88 void themeChanged();
89 void paletteChanged();
90 void sourceSizeChanged();
91 void mirrorChanged();
92 void fallbackToQIconChanged();
93 void asynchronousChanged();
94 void cacheChanged();
95
96#if QT_VERSION >= QT_VERSION_CHECK(6, 8, 0)
97 void retainWhileLoadingChanged();
98#endif
99
100protected:
101 void classBegin() override;
102 void componentComplete() override;
103};
104
106class DQuickIconAttached : public QObject, DCORE_NAMESPACE::DObject
107{
108 Q_OBJECT
109 D_DECLARE_PRIVATE(DQuickIconAttached)
110 Q_PROPERTY(DTK_QUICK_NAMESPACE::DQMLGlobalObject::ControlState mode READ mode WRITE setMode NOTIFY modeChanged)
111 Q_PROPERTY(DTK_GUI_NAMESPACE::DGuiApplicationHelper::ColorType theme READ theme WRITE setTheme NOTIFY themeChanged)
112 Q_PROPERTY(DTK_GUI_NAMESPACE::DDciIconPalette palette READ palette WRITE setPalette NOTIFY paletteChanged)
113 Q_PROPERTY(bool fallbackToQIcon READ fallbackToQIcon WRITE setFallbackToQIcon NOTIFY fallbackToQIconChanged)
114
115public:
116 explicit DQuickIconAttached(QQuickItem *parent);
118
119 DQMLGlobalObject::ControlState mode() const;
120 void setMode(DQMLGlobalObject::ControlState mode);
121
122 DGuiApplicationHelper::ColorType theme() const;
123 void setTheme(DGuiApplicationHelper::ColorType theme);
124
125 DDciIconPalette palette() const;
126 void setPalette(const DDciIconPalette &palette);
127
128 bool fallbackToQIcon() const;
129 void setFallbackToQIcon(bool newFallbackToQIcon);
130
131Q_SIGNALS:
132 void modeChanged();
133 void themeChanged();
134 void paletteChanged();
135 void fallbackToQIconChanged();
136};
137
138DQUICK_END_NAMESPACE
139QML_DECLARE_TYPEINFO(DTK_QUICK_NAMESPACE::DQuickDciIconImage, QML_HAS_ATTACHED_PROPERTIES)
140#endif // DQUICKDCIICONIMAGE_P_H
Definition dquickdciiconimage_p.h:23
Definition dquickdciiconimage.cpp:406
Definition dquickdciiconimage_p.h:107
Definition dquickiconimage_p.h:23