-
Notifications
You must be signed in to change notification settings - Fork 3
/
pageView.h
127 lines (102 loc) · 2.98 KB
/
pageView.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
#ifndef _pageView_H
#define _pageView_H
/***************************************************************
* pageView.h
* @Author: Jonathan Verner ([email protected])
* @License: GPL v2.0 or later
* @Created: 2008-10-12.
* @Last Change: 2008-10-12.
* @Revision: 0.0
* Description:
* Usage:
* TODO:
*CHANGES:
***************************************************************/
#include <QtGui/QGraphicsView>
#include <QtGui/QMouseEvent>
#include <QtCore/QPoint>
//#include "toolTips.h"
class QGraphicsScene;
class abstractTool;
class QGraphicsItem;
class QKeyEvent;
class abstractAnnotation;
class hiliteItem;
class viewEvent {
public:
enum eventType { VE_MOUSE_MOVE, VE_MOUSE_PRESS, VE_MOUSE_RELEASE, VE_KEY };
private:
eventType myType;
QPoint evPos;
QPoint lastEvPos;
QPointF mousePressPosition;
qreal distance;
QPointF lastSP;
QPointF SP;
QGraphicsScene *SC;
QGraphicsItem *IT;
abstractAnnotation *topMostAll;
Qt::MouseButton bt_caused;
Qt::MouseButtons bt_state;
QWidget *viewPort;
QPoint eventDelta() { return lastEvPos-evPos; };
QMouseEvent *original_event;
public:
Qt::MouseButton btnCaused() { return bt_caused; };
Qt::MouseButtons btnState() { return bt_state; };
QPointF mousePressPos() { return mousePressPosition; };
QPointF lastScenePos() { return lastSP;};
QPointF scenePos() { return SP;};
QPointF sceneDelta() { return SP-lastSP; };
QGraphicsScene *scene() { return SC;};
QGraphicsItem *item() { return IT;};
abstractAnnotation *topItem() { return topMostAll;};
eventType type() { return myType;};
bool isClick();
QMouseEvent *getOriginalEvent() { return original_event; };
friend class pageView;
};
class pageView : public QGraphicsView {
Q_OBJECT
private:
qreal zoom;
int currentPage;
QPoint lastMouseEvPos, mousePressStartPos;
abstractAnnotation *toolTipItem;
QGraphicsItem *movingItem;
QPointF moveDelta;
abstractTool *currentTool;
hiliteItem *hi;
QString selectedText;
protected:
viewEvent eventToVE( QMouseEvent *e, viewEvent::eventType tp );
virtual void mouseMoveEvent( QMouseEvent *e );
virtual void mouseReleaseEvent( QMouseEvent *e );
virtual void mousePressEvent( QMouseEvent *e );
int getLastPage();
public:
pageView( QGraphicsScene *scene, QWidget *parent = 0 );
// ~pageView();
QAction *newAction( QString shortCut, QObject *target, const char * );
QAction *newAction( QKeySequence shortCut, QObject *target, const char * );
signals:
void mouseNearBorder( const QPoint &pos );
void onPage( int num );
void newAnnotationAction( const QPointF &scenePos );
public slots:
void disableActions( bool );
void zoomIN();
void zoomOUT();
void up();
void down();
void left();
void right();
void nextPage();
void prevPage();
void lastPage();
void firstPage();
void gotoPage( int num );
void gotoPoint( const QPointF &point );
void setCurrentTool( abstractTool *curTool );
};
#endif /* _pageView_H */