File indexing completed on 2025-10-31 09:12:15
0001
0002
0003
0004 #ifndef QICONENGINE_H
0005 #define QICONENGINE_H
0006
0007 #include <QtGui/qtguiglobal.h>
0008 #include <QtCore/qlist.h>
0009 #include <QtGui/qicon.h>
0010
0011 QT_BEGIN_NAMESPACE
0012
0013
0014 class Q_GUI_EXPORT QIconEngine
0015 {
0016 public:
0017 QIconEngine();
0018 virtual ~QIconEngine();
0019 virtual void paint(QPainter *painter, const QRect &rect, QIcon::Mode mode, QIcon::State state) = 0;
0020 virtual QSize actualSize(const QSize &size, QIcon::Mode mode, QIcon::State state);
0021
0022 virtual QPixmap pixmap(const QSize &size, QIcon::Mode mode, QIcon::State state);
0023
0024 virtual void addPixmap(const QPixmap &pixmap, QIcon::Mode mode, QIcon::State state);
0025 virtual void addFile(const QString &fileName, const QSize &size, QIcon::Mode mode, QIcon::State state);
0026
0027 virtual QString key() const;
0028 virtual QIconEngine *clone() const = 0;
0029 virtual bool read(QDataStream &in);
0030 virtual bool write(QDataStream &out) const;
0031
0032 virtual QList<QSize> availableSizes(QIcon::Mode mode = QIcon::Normal,
0033 QIcon::State state = QIcon::Off);
0034
0035 virtual QString iconName();
0036 virtual bool isNull();
0037 virtual QPixmap scaledPixmap(const QSize &size, QIcon::Mode mode, QIcon::State state, qreal scale);
0038
0039 enum IconEngineHook { IsNullHook = 3, ScaledPixmapHook };
0040
0041 struct ScaledPixmapArgument
0042 {
0043 QSize size;
0044 QIcon::Mode mode;
0045 QIcon::State state;
0046 qreal scale;
0047 QPixmap pixmap;
0048 };
0049
0050 virtual void virtual_hook(int id, void *data);
0051
0052 protected:
0053 QIconEngine(const QIconEngine &other);
0054
0055 private:
0056 QIconEngine &operator=(const QIconEngine &other) = delete;
0057 };
0058
0059 QT_END_NAMESPACE
0060
0061 #endif