OSDN Git Service

Ver0.25
[gefu/Gefu.git] / imageview.h
1 #ifndef IMAGEVIEW_H
2 #define IMAGEVIEW_H
3
4 #include <QWidget>
5 class QScrollArea;
6
7 class ImageView : public QWidget
8 {
9     Q_OBJECT
10 public:
11     explicit ImageView(QScrollArea *parent = 0);
12
13     void    setData(const QPixmap &pixmap);
14
15 private:
16     QScrollArea*    m_scrollArea;
17     QPixmap         m_pixmap;
18     QPixmap         m_scaledPixmap;
19     double          m_scaleFactor;
20     int             m_rotateDeg;
21     QPoint          m_dragStartPos;
22     QPoint          m_dragStartScrollPos;
23
24     double  scaleFactor();
25     void    resizePixmap();
26
27 signals:
28     void    statusChanged(const QString &text);
29
30 public slots:
31     void    onFitToWindow();
32     void    onRotate90();
33     void    onRotate180();
34     void    onScaleDown();
35     void    onScaleNormal();
36     void    onScaleUp();
37
38     // QWidget interface
39 public slots:
40     void setVisible(bool visible);
41
42 protected:
43     void mousePressEvent(QMouseEvent *e);
44     void mouseReleaseEvent(QMouseEvent *);
45     void mouseMoveEvent(QMouseEvent *e);
46     void paintEvent(QPaintEvent *);
47     void resizeEvent(QResizeEvent *e);
48 };
49
50 #endif // IMAGEVIEW_H