diff options
Diffstat (limited to 'kview/kviewcanvas/kimageholder.h')
-rw-r--r-- | kview/kviewcanvas/kimageholder.h | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/kview/kviewcanvas/kimageholder.h b/kview/kviewcanvas/kimageholder.h new file mode 100644 index 00000000..780ce372 --- /dev/null +++ b/kview/kviewcanvas/kimageholder.h @@ -0,0 +1,105 @@ +/* This file is part of the KDE project + Copyright (C) 2001-2002 Matthias Kretz <[email protected]> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License version 2 + as published by the Free Software Foundation. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +*/ +// $Id$ + +#ifndef _KIMAGEHOLDER_H +#define _KIMAGEHOLDER_H + +#include <qwidget.h> +class QRect; +class QPainter; +class QPen; +class QPixmap; +class KPixmap; +class QPoint; + +/** + * @short Image widget + * @version $Id$ + */ +class KImageHolder : public QWidget +{ + Q_OBJECT + public: + KImageHolder( QWidget *parent = 0, const char * name = 0 ); + + virtual ~KImageHolder(); + + void clearSelection(); + + void setImage( const KPixmap & ); + void setImage( const QImage & ); + void setImage( const QMovie & ); + + /** + * clears the ImageHolder + */ + void clear(); + + /** + * the selected rect + */ + QRect selection() const; + + QSize sizeHint() const; + + void setDrawRect( const QRect & rect ) { m_drawRect = rect; } + const QRect & drawRect() const { return m_drawRect; } + + signals: + void contextPress( const QPoint& ); + void selected( const QRect & ); + void wannaScroll( int dx, int dy ); + void cursorPos( const QPoint & ); + + protected: + void mousePressEvent( QMouseEvent * ); + void mouseMoveEvent( QMouseEvent * ); + void mouseReleaseEvent( QMouseEvent * ); + void paintEvent( QPaintEvent * ); + virtual void timerEvent( QTimerEvent * ); + + private: + void drawSelect( QPainter & ); + void eraseSelect(); + + void setPixmap( const KPixmap & ); + + private: + QRect m_selection; + QRect m_drawRect; + QPoint m_scrollpos; + QPoint m_selectionStartPoint; + + const KPixmap & checkboardPixmap(); + + bool m_selected; + bool m_bSelecting; + int m_scrollTimerId; + int m_xOffset, m_yOffset; + + QPen *m_pen; + + KPixmap * m_pPixmap; + KPixmap * m_pDoubleBuffer; + KPixmap * m_pCheckboardPixmap; +}; + +// vim:sw=4:ts=4 + +#endif // _KIMAGEHOLDER_H |