]> Shamusworld >> Repos - ttedit/blob - src/editwindow.h
11a5b0720eb66feb8734ff3a3a8ffe809a0efb29
[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 <QtWidgets>
12 #include <stdint.h>
13 #include "toolwindow.h"                                                 // For ToolType enum
14 #include "glyphpoints.h"
15 #include "painter.h"
16
17
18 class EditWindow: public QWidget
19 {
20         Q_OBJECT
21
22         public:
23                 EditWindow(QWidget * parent = NULL);
24                 QSize minimumSizeHint() const;
25                 QSize sizeHint() const;
26
27         protected:
28                 void paintEvent(QPaintEvent *);
29                 void mousePressEvent(QMouseEvent *);
30                 void mouseMoveEvent(QMouseEvent *);
31                 void mouseReleaseEvent(QMouseEvent *);
32                 void keyPressEvent(QKeyEvent *);
33                 void keyReleaseEvent(QKeyEvent *);
34
35         private:
36                 void CreateCursors(void);
37                 QPoint GetAdjustedMousePosition(QMouseEvent *);
38                 QPoint GetAdjustedClientPosition(int x, int y);
39                 void DrawGlyph(Painter & p, GlyphPoints & glyph);
40                 void DrawGlyphPoly(Painter & p, GlyphPoints & glyph, uint16_t poly);
41                 void ClearSelection(void);
42
43         public:
44                 QImage image;
45                 Vector pt, ptOffset, ptPrevious;
46                 double scale;                                           // Window scaling factor
47                 int32_t offsetX, offsetY;                       // Window offsets
48                 ToolType tool;                                          // Current tool
49                 GlyphPoints pts;                                        // Glyph point structure
50                 int32_t ptHighlight, oldPtHighlight, ptNextHighlight, oldPtNextHighlight;
51                 int16_t polyHighlight, oldPolyHighlight;
52                 bool polyFirstPoint;
53                 bool showRotationCenter, haveZeroPoint;
54                 Vector rotationCenter, rotationZeroPoint, rotationCurrentPoint;
55                 double rotationAngle;
56
57                 ToolWindow * toolPalette;
58                 QCursor cur[12];
59                 bool selectedPoints[65536];     // Potential memory leak :-O
60                 QRect selection;
61                 bool selectionInProgress;
62 };
63
64 #endif  // __EDITWINDOW_H__