File indexing completed on 2024-05-19 15:09:25
0001 /* 0002 SPDX-FileCopyrightText: 2011 Marco Martin <mart@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #ifndef QICONITEM_H 0008 #define QICONITEM_H 0009 0010 #include <QIcon> 0011 #include <QQuickItem> 0012 #include <QVariant> 0013 0014 #include "../../kdeclarative/kdeclarative_export.h" 0015 0016 #if KDECLARATIVE_BUILD_DEPRECATED_SINCE(5, 101) 0017 0018 /** 0019 * @deprecated since 5.101, use Kirigami.Icon or PlasmaCore.IconItem instead 0020 */ 0021 class QIconItem : public QQuickItem 0022 { 0023 Q_OBJECT 0024 0025 Q_PROPERTY(QVariant icon READ icon WRITE setIcon NOTIFY iconChanged) 0026 Q_PROPERTY(bool smooth READ smooth WRITE setSmooth NOTIFY smoothChanged) 0027 Q_PROPERTY(int implicitWidth READ implicitWidth CONSTANT) 0028 Q_PROPERTY(int implicitHeight READ implicitHeight CONSTANT) 0029 Q_PROPERTY(State state READ state WRITE setState NOTIFY stateChanged) 0030 Q_PROPERTY(bool enabled READ enabled WRITE setEnabled NOTIFY stateChanged) 0031 0032 public: 0033 enum State { 0034 DefaultState, /// The default state. 0035 ActiveState, /// Icon is active. 0036 DisabledState, /// Icon is disabled. 0037 SelectedState, /// Icon is selected 0038 }; 0039 Q_ENUM(State) 0040 0041 explicit QIconItem(QQuickItem *parent = nullptr); 0042 ~QIconItem() override; 0043 0044 void setIcon(const QVariant &icon); 0045 QIcon icon() const; 0046 0047 QIconItem::State state() const; 0048 void setState(State state); 0049 0050 int implicitWidth() const; 0051 int implicitHeight() const; 0052 0053 void setSmooth(const bool smooth); 0054 bool smooth() const; 0055 0056 void setEnabled(bool enabled = true); 0057 bool enabled() const; 0058 0059 QSGNode *updatePaintNode(QSGNode *node, UpdatePaintNodeData *data) override; 0060 0061 Q_SIGNALS: 0062 void iconChanged(); 0063 void smoothChanged(); 0064 void stateChanged(State state); 0065 0066 protected: 0067 void geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) override; 0068 0069 private: 0070 QIcon m_icon; 0071 bool m_smooth; 0072 State m_state; 0073 bool m_changed; 0074 }; 0075 0076 #endif 0077 #endif