Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-10-31 09:12:15

0001 // Copyright (C) 2016 The Qt Company Ltd.
0002 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
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     // ### Qt7: add qreal scale argument and remove scaledPixmap
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 // QICONENGINE_H