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