KIconThemes 5.109.0
kiconengine.h
1/*
2 This file is part of the KDE libraries
3 SPDX-FileCopyrightText: 2006 Hamish Rodda <rodda@kde.org>
4
5 SPDX-License-Identifier: LGPL-2.0-only
6*/
7
8#ifndef KICONENGINE_H
9#define KICONENGINE_H
10
11#include "kiconthemes_export.h"
12#include <QIconEngine>
13#include <QPointer>
14
15class KIconColors;
16class KIconLoader;
17class KIconEnginePrivate;
18
34class KICONTHEMES_EXPORT KIconEngine : public QIconEngine // exported for kdelibs4support's KIcon and plasma integration
35{
36public:
46 KIconEngine(const QString &iconName, KIconLoader *iconLoader, const QStringList &overlays);
47
51 KIconEngine(const QString &iconName, KIconLoader *iconLoader);
52
60 KIconEngine(const QString &iconName, const KIconColors &colors, KIconLoader *iconLoader);
61
65 ~KIconEngine() override;
66
68 QSize actualSize(const QSize &size, QIcon::Mode mode, QIcon::State state) override;
70 void paint(QPainter *painter, const QRect &rect, QIcon::Mode mode, QIcon::State state) override;
72 QPixmap pixmap(const QSize &size, QIcon::Mode mode, QIcon::State state) override;
73
74#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
76 QString iconName() override;
78 QList<QSize> availableSizes(QIcon::Mode mode, QIcon::State state) override;
79#else
81 QString iconName() const override;
83 QList<QSize> availableSizes(QIcon::Mode mode, QIcon::State state) const override;
84#endif
85
86 QString key() const override;
87 QIconEngine *clone() const override;
88 bool read(QDataStream &in) override;
89 bool write(QDataStream &out) const override;
90
91 void virtual_hook(int id, void *data) override;
92
93private:
94 // TODO KF6: move those into the d-pointer
95 QPixmap createPixmap(const QSize &size, qreal scale, QIcon::Mode mode, QIcon::State state);
96 QString mIconName;
97 QStringList mOverlays;
98 KIconEnginePrivate *const d;
99};
100
101#endif
Sepecifies which colors will be used when recoloring icons as its stylesheet.
Definition kiconcolors.h:31
A class to provide rendering of KDE icons.
Definition kiconengine.h:35
QSize actualSize(const QSize &size, QIcon::Mode mode, QIcon::State state) override
Reimplementation.
QList< QSize > availableSizes(QIcon::Mode mode, QIcon::State state) override
Reimplementation.
KIconEngine(const QString &iconName, const KIconColors &colors, KIconLoader *iconLoader)
Constructs an icon engine for a KDE named icon with a specific palette.
~KIconEngine() override
Destructor.
KIconEngine(const QString &iconName, KIconLoader *iconLoader)
This is an overloaded member function, provided for convenience. It differs from the above function o...
KIconEngine(const QString &iconName, KIconLoader *iconLoader, const QStringList &overlays)
Constructs an icon engine for a KDE named icon.
QString iconName() override
Reimplementation.
QPixmap pixmap(const QSize &size, QIcon::Mode mode, QIcon::State state) override
Reimplementation.
void paint(QPainter *painter, const QRect &rect, QIcon::Mode mode, QIcon::State state) override
Reimplementation.
Iconloader for KDE.
Definition kiconloader.h:74