not quite so much needs to be delayed to the init() function
[personal-kdebase.git] / workspace / plasma / applets / system-monitor / monitoricon.cpp
blob2d604efa556838685487e5e23bbeca6d87a5e7f2
1 /*
2 * Copyright (C) 2007 Petri Damsten <damu@iki.fi>
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU Library General Public License as
6 * published by the Free Software Foundation; either version 2, or
7 * (at your option) any later version.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details
14 * You should have received a copy of the GNU Library General Public
15 * License along with this program; if not, write to the
16 * Free Software Foundation, Inc.,
17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
20 #include "monitoricon.h"
21 #include <kdebug.h>
22 #include <QPainter>
23 #include <KIcon>
24 #include <KIconLoader>
26 #define MARGIN 5
28 class MonitorIcon::Private
30 public:
31 Private() : imageSize(22, 22) { }
33 QSizeF imageSize;
34 QString image;
35 QStringList overlays;
38 MonitorIcon::MonitorIcon(QGraphicsItem *parent) :
39 QGraphicsWidget(parent),
40 d(new Private)
42 setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
43 setPreferredSize(d->imageSize.width() + 2 * MARGIN, d->imageSize.height() + 2 * MARGIN);
46 MonitorIcon::~MonitorIcon()
48 delete d;
51 QString MonitorIcon::image() const
53 return d->image;
56 void MonitorIcon::setImage(const QString &image)
58 d->image = image;
59 update();
62 QStringList MonitorIcon::overlays() const
64 return d->overlays;
67 void MonitorIcon::setOverlays( const QStringList & overlays )
69 d->overlays = overlays;
70 update();
73 void MonitorIcon::paint(QPainter *p,
74 const QStyleOptionGraphicsItem *option,
75 QWidget *widget)
77 Q_UNUSED(option)
78 Q_UNUSED(widget)
80 p->drawPixmap(QPointF((size().width() - d->imageSize.width()) / 2,
81 (size().height() - d->imageSize.height()) / 2),
82 KIcon(d->image, KIconLoader::global(),
83 d->overlays).pixmap(d->imageSize.toSize()));
86 #include "monitoricon.moc"