]> Shamusworld >> Repos - ttedit/blob - src/editwindow.h
Fixed a handful of bugs related to clicking and dragging
[ttedit] / src / editwindow.h
1 //
2 // EDITWINDOW.H: Header file
3 //
4 // by James L. Hammons
5 // (C) 2008 Underground Software
6 //
7
8 #ifndef __EDITWINDOW_H__
9 #define __EDITWINDOW_H__
10
11 #include <QtGui>
12 #include "types.h"
13 #include "toolwindow.h"                                                 // For ToolType enum
14 #include "glyphpoints.h"
15
16 class EditWindow: public QWidget
17 {
18         Q_OBJECT
19
20         public:
21                 EditWindow(QWidget * parent = NULL);
22                 QSize minimumSizeHint() const;
23                 QSize sizeHint() const;
24
25         protected:
26                 void paintEvent(QPaintEvent * event);
27                 void mousePressEvent(QMouseEvent * event);
28                 void mouseMoveEvent(QMouseEvent * event);
29                 void mouseReleaseEvent(QMouseEvent * event);
30
31         private:
32                 void CreateCursors(void);
33                 QPoint GetAdjustedMousePosition(QMouseEvent * event);
34                 QPoint GetAdjustedClientPosition(int x, int y);
35                 void DrawGlyph(QPainter & p, GlyphPoints & glyph);
36                 void DrawGlyphPoly(QPainter & p, GlyphPoints & glyph, uint16 poly);
37
38         public:
39                 QImage image;
40                 QPoint pt, ptOffset, ptPrevious;
41                 double scale;                                                   // Window scaling factor
42                 int32 offsetX, offsetY;                                 // Window offsets
43                 ToolType tool;                                                  // Current tool
44                 GlyphPoints pts;                                                // Glyph point structure
45                 int32 ptHighlight, oldPtHighlight, ptNextHighlight, oldPtNextHighlight;
46                 int16 polyHighlight, oldPolyHighlight;
47                 bool polyFirstPoint;
48                 bool showRotationCenter, haveZeroPoint;
49                 QPoint rotationCenter, rotationZeroPoint, rotationCurrentPoint;
50                 double rotationAngle;
51
52                 ToolWindow * toolPalette;
53                 QCursor cur[11];
54 };
55
56 #endif  // __EDITWINDOW_H__