Plasma
svgwidget.h
Go to the documentation of this file.
00001 /* 00002 * Copyright 2008 by Davide Bettio <davide.bettio@kdemail.net> 00003 * 00004 * This program is free software; you can redistribute it and/or modify 00005 * it under the terms of the GNU Library General Public License as 00006 * published by the Free Software Foundation; either version 2, or 00007 * (at your option) any later version. 00008 * 00009 * This program is distributed in the hope that it will be useful, 00010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00012 * GNU General Public License for more details 00013 * 00014 * You should have received a copy of the GNU Library General Public 00015 * License along with this program; if not, write to the 00016 * Free Software Foundation, Inc., 00017 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 00018 */ 00019 00020 #ifndef PLASMA_SVGWIDGET_H 00021 #define PLASMA_SVGWIDGET_H 00022 00023 #include <QtGui/QGraphicsWidget> 00024 00025 #include <plasma/plasma_export.h> 00026 00027 #include <plasma/plasma.h> 00028 00029 namespace Plasma 00030 { 00031 class Svg; 00032 class SvgWidgetPrivate; 00033 } 00034 00035 Q_DECLARE_METATYPE(Plasma::Svg*) 00036 00037 namespace Plasma 00038 { 00039 class PLASMA_EXPORT SvgWidget : public QGraphicsWidget 00040 { 00041 Q_OBJECT 00042 00043 Q_PROPERTY(Plasma::Svg *svg READ svg WRITE setSvg) 00044 Q_PROPERTY(QString elementID READ elementID WRITE setElementID) 00045 00046 public: 00047 explicit SvgWidget(QGraphicsItem *parent = 0, Qt::WindowFlags wFlags = 0); 00048 explicit SvgWidget(Svg *svg, const QString & elementID = QString(), 00049 QGraphicsItem *parent = 0, Qt::WindowFlags wFlags = 0); 00050 virtual ~SvgWidget(); 00051 00052 void setSvg(Svg *svg); 00053 Svg *svg() const; 00054 00055 void setElementID(const QString &elementID); 00056 QString elementID() const; 00057 00058 void mouseReleaseEvent(QGraphicsSceneMouseEvent * event); 00059 00060 Q_SIGNALS: 00061 void clicked(Qt::MouseButton); 00062 00063 protected: 00064 void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget); 00065 QSizeF sizeHint(Qt::SizeHint which, const QSizeF & constraint) const; 00066 void mousePressEvent(QGraphicsSceneMouseEvent * event); 00067 00068 private: 00069 Q_PRIVATE_SLOT(d, void svgChanged()) 00070 00071 SvgWidgetPrivate * const d; 00072 }; 00073 00074 } // Plasma namespace 00075 00076 #endif // multiple inclusion guard
KDE 4.6 API Reference