2 // EDITWINDOW.H: Header file
5 // (C) 2008 Underground Software
8 #ifndef __EDITWINDOW_H__
9 #define __EDITWINDOW_H__
13 #include "toolwindow.h" // For ToolType enum
14 #include "glyphpoints.h"
18 class EditWindow: public QWidget
23 EditWindow(QWidget * parent = NULL);
24 QSize minimumSizeHint() const;
25 QSize sizeHint() const;
28 void paintEvent(QPaintEvent *);
29 void mousePressEvent(QMouseEvent *);
30 void mouseMoveEvent(QMouseEvent *);
31 void mouseReleaseEvent(QMouseEvent *);
32 void keyPressEvent(QKeyEvent *);
33 void keyReleaseEvent(QKeyEvent *);
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);
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;
53 bool showRotationCenter, haveZeroPoint;
54 Vector rotationCenter, rotationZeroPoint, rotationCurrentPoint;
57 ToolWindow * toolPalette;
59 bool selectedPoints[65536]; // Potential memory leak :-O
61 bool selectionInProgress;
64 #endif // __EDITWINDOW_H__