19#include "kiconengine_p.h"
23#include <QtGui/QPainter>
25#include <QtGui/QToolBar>
26#include <QtGui/QApplication>
29KIconEngine::KIconEngine(
const QString& iconName,
KIconLoader* iconLoader,
const QStringList& overlays)
30 : mIconName(iconName),
32 mIconLoader(iconLoader)
37KIconEngine::KIconEngine(
const QString& iconName,
KIconLoader* iconLoader)
38 : mIconName(iconName),
39 mIconLoader(iconLoader)
61QSize KIconEngine::actualSize(
const QSize & size, QIcon::Mode mode, QIcon::State state )
65 const int iconSize = qMin(size.width(), size.height());
66 return QSize(iconSize, iconSize);
69void KIconEngine::paint(QPainter * painter,
const QRect & rect, QIcon::Mode mode, QIcon::State state)
80 if (
QWidget* targetWidget =
dynamic_cast<QWidget*
>(painter->device())) {
81 if (qobject_cast<QMenu*>(targetWidget))
83 else if (qobject_cast<QToolBar*>(targetWidget->parent()))
87 const int iconSize = qMin(rect.width(), rect.height());
88 const QPixmap pix = mIconLoader.data()->loadIcon(mIconName, group, iconSize, kstate, mOverlays);
89 painter->drawPixmap(rect, pix);
92QPixmap KIconEngine::pixmap(
const QSize & size, QIcon::Mode mode, QIcon::State state)
98 pm.fill(Qt::transparent);
103 const int iconSize = qMin(size.width(), size.height());
104 QPixmap pix = mIconLoader.data()->loadIcon(mIconName,
KIconLoader::Desktop, iconSize, kstate, mOverlays);
106 if (pix.size() == size) {
111 pix2.fill(QColor(0,0,0,0));
113 QPainter painter(&pix2);
114 painter.drawPixmap(QPoint(), pix);
119QString KIconEngine::key()
const
121 return QString::fromLatin1(
"KIconEngine");
124QIconEngineV2 *KIconEngine::clone()
const
126 return new KIconEngine(mIconName, mIconLoader.data(), mOverlays);
129bool KIconEngine::read(QDataStream &in)
131 in >> mIconName >> mOverlays;
135bool KIconEngine::write(QDataStream &out)
const
137 out << mIconName << mOverlays;
141void KIconEngine::virtual_hook(
int id,
void *data)
145 QString *
name =
reinterpret_cast<QString*
>(data);
150 QIconEngineV2::virtual_hook(
id, data);
Group
The group of the icon.
@ Small
Small icons, e.g. for buttons.
@ ActiveState
Icon is active.
@ DisabledState
Icon is disabled.
@ DefaultState
The default state.
static int qIconModeToKIconState(QIcon::Mode mode)
const char * name(StandardAction id)
This will return the internal name of a given standard action.