00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef _PIXMAPVIEWER_H_
00022 #define _PIXMAPVIEWER_H_
00023
00024 #include "pixmaplabel.h"
00025
00026 #include <QtGui/QScrollArea>
00027 #include <QtGui/QScrollBar>
00028 #include <QtGui/QVBoxLayout>
00029
00033 class PixmapViewer : public QWidget
00034 {
00035 Q_OBJECT
00036
00037 private:
00038 PixmapLabel *m_pixmap_label;
00039 QScrollArea *m_scroll_area;
00040
00041 int m_x_save;
00042 int m_y_save;
00043
00044 QVBoxLayout *m_layout;
00045
00046 public:
00052 PixmapViewer( QWidget* _parent = 0, Qt::WFlags _flags = 0 );
00057 ~PixmapViewer();
00058
00063 qreal scaleFactor() const { return m_pixmap_label->scaleFactor(); }
00068 const QPixmap& pixmap() const { return m_pixmap_label->pixmap(); }
00073 QPoint position() const { return QPoint( m_scroll_area->horizontalScrollBar()->value(), m_scroll_area->verticalScrollBar()->value() ); }
00078 qreal scaleMin() const { return m_pixmap_label->scaleMin(); }
00083 qreal scaleMax() const { return m_pixmap_label->scaleMax(); }
00088 qreal scaleStep() const { return m_pixmap_label->scaleStep(); }
00089
00097 void setPixmap( const QPixmap& _pixmap , unsigned int _preferred_width = 0, unsigned int _preferred_height = 0, bool _adapt = true );
00102 void setScaleMin( qreal _scale_min ) { m_pixmap_label->setScaleMin( _scale_min ); }
00107 void setScaleMax( qreal _scale_max ) { m_pixmap_label->setScaleMax( _scale_max ); }
00112 void setScaleStep( qreal _scale_step ) { m_pixmap_label->setScaleStep( _scale_step ); }
00113
00114
00115 protected:
00116 virtual void mouseMoveEvent( QMouseEvent * _event );
00117 virtual void mousePressEvent( QMouseEvent * _event );
00118 virtual void mouseReleaseEvent( QMouseEvent * _event );
00119
00120 public slots:
00125 void updatePixmap( const QPixmap& _pixmap );
00130 void updateScale( qreal _scale_factor );
00135 void updatePosition( const QPoint& _position );
00136
00137 private slots:
00144 void update( qreal _scale_factor, qreal _scale, QPoint _position );
00145
00150 void scrollBar_valueChanged( int _value );
00151
00152 signals:
00157 void scaleChanged( qreal _scale_factor );
00162 void positionChanged( QPoint _position );
00167 void pixmapChanged( const QPixmap& _pixmap );
00173 void selected( QPointF _select_start, QPointF _select_end );
00174
00175
00176
00177 };
00178
00179 #endif //_PIXMAPVIEWER_H_