/**************************************************************************** ** ** Copyright (C) 2005-2007 Trolltech ASA. All rights reserved. ** ** This file is part of the example classes of the Qt Toolkit. ** ** This file may be used under the terms of the GNU General Public ** License version 2.0 as published by the Free Software Foundation ** and appearing in the file LICENSE.GPL included in the packaging of ** this file. Please review the following information to ensure GNU ** General Public Licensing requirements will be met: ** http://www.trolltech.com/products/qt/opensource.html ** ** If you are unsure which license is appropriate for your use, please ** review the following information: ** http://www.trolltech.com/products/qt/licensing.html or contact the ** sales department at sales@trolltech.com. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** ****************************************************************************/ #ifndef PAINTAREA_H #define PAINTAREA_H #include <QColor> #include <QImage> #include <QPainterPath> #include <QWidget> class BrushInterface; class PaintArea : public QWidget { Q_OBJECT public: PaintArea(QWidget *parent = 0); bool openImage(const QString &fileName); bool saveImage(const QString &fileName, const char *fileFormat); void setImage(const QImage &image); void insertShape(const QPainterPath &path); void setBrushColor(const QColor &color); void setBrushWidth(int width); void setBrush(BrushInterface *brushInterface, const QString &brush); QImage image() const { return theImage; } QColor brushColor() const { return color; } int brushWidth() const { return thickness; } QSize sizeHint() const; protected: void paintEvent(QPaintEvent *event); void mousePressEvent(QMouseEvent *event); void mouseMoveEvent(QMouseEvent *event); void mouseReleaseEvent(QMouseEvent *event); private: void setupPainter(QPainter &painter); QImage theImage; QColor color; int thickness; BrushInterface *brushInterface; QString brush; QPoint lastPos; QPainterPath pendingPath; }; #endif