]> Shamusworld >> Repos - ttedit/blob - src/editwindow.h
c60317fbcb5344d52be6bf292c24c39695ea9afa
[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
37         public:
38                 QImage image;
39                 QPoint pt, ptOffset, ptPrevious;
40                 double scale;                                                   // Window scaling factor
41                 int32 offsetX, offsetY;                                 // Window offsets
42                 ToolType tool;                                                  // Current tool
43                 GlyphPoints pts;                                                // Glyph point structure
44                 int32 ptHighlight, oldPtHighlight, ptNextHighlight, oldPtNextHighlight;
45                 int16 polyHighlight, oldPolyHighlight;
46                 bool polyFirstPoint;
47                 bool showRotationCenter, haveZeroPoint;
48                 QPoint rotationCenter, rotationZeroPoint, rotationCurrentPoint;
49                 double rotationAngle;
50
51                 ToolWindow * toolPalette;
52                 QCursor cur[11];
53 };
54
55 #endif  // __EDITWINDOW_H__