]> Shamusworld >> Repos - ttedit/blob - src/editwindow.h
652535941fd35d21e45fdd477beed0f3f14e0d4f
[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
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 *);
27                 void mousePressEvent(QMouseEvent *);
28                 void mouseMoveEvent(QMouseEvent *);
29                 void mouseReleaseEvent(QMouseEvent *);
30                 void keyPressEvent(QKeyEvent *);
31                 void keyReleaseEvent(QKeyEvent *);
32
33         private:
34                 void CreateCursors(void);
35                 QPoint GetAdjustedMousePosition(QMouseEvent *);
36                 QPoint GetAdjustedClientPosition(int x, int y);
37                 void DrawGlyph(QPainter & p, GlyphPoints & glyph);
38                 void DrawGlyphPoly(QPainter & p, GlyphPoints & glyph, uint16_t poly);
39
40         public:
41                 QImage image;
42                 QPoint pt, ptOffset, ptPrevious;
43                 double scale;                                                   // Window scaling factor
44                 int32_t offsetX, offsetY;                                       // Window offsets
45                 ToolType tool;                                                  // Current tool
46                 GlyphPoints pts;                                                // Glyph point structure
47                 int32_t ptHighlight, oldPtHighlight, ptNextHighlight, oldPtNextHighlight;
48                 int16_t polyHighlight, oldPolyHighlight;
49                 bool polyFirstPoint;
50                 bool showRotationCenter, haveZeroPoint;
51                 QPoint rotationCenter, rotationZeroPoint, rotationCurrentPoint;
52                 double rotationAngle;
53
54                 ToolWindow * toolPalette;
55                 QCursor cur[11];
56 };
57
58 #endif  // __EDITWINDOW_H__