-//\r
-// EDITWINDOW.H: Header file\r
-//\r
-// by James L. Hammons\r
-// (C) 2008 Underground Software\r
-//\r
-\r
-#ifndef __EDITWINDOW_H__\r
-#define __EDITWINDOW_H__\r
-\r
-#include <wx/wx.h> // So that whoever uses this can without having\r
- // to pull in a bunch of references manually\r
-#include "types.h"\r
-#include "ttedit.h" // For TTEditApp\r
-#include "toolwindow.h" // For ToolType enum\r
-#include "glyphpoints.h"\r
-\r
-class TTEditWindow: public wxWindow\r
-{\r
- private:\r
- TTEditApp & app; // Reference to the application object\r
- double scale; // Window scaling factor\r
- int32 offsetX, offsetY; // Window offsets\r
- ToolType tool; // Current tool\r
- GlyphPoints pts; // Glyph point structure\r
- int32 ptHighlight, oldPtHighlight, ptNextHighlight, oldPtNextHighlight;\r
- bool polyFirstPoint;\r
-\r
- protected:\r
- public:\r
- wxBitmap * bmp;\r
- wxPoint pt, ptOffset, ptPrevious;\r
-\r
- // Constructor and destructor\r
- TTEditWindow(wxFrame * parent, const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize, long style = 0);\r
- ~TTEditWindow(void);\r
-\r
- void OnPaint(wxPaintEvent &e);\r
- void OnMouseEvent(wxMouseEvent &e);\r
-\r
- protected:\r
- wxPoint GetAdjustedMousePosition(wxMouseEvent &e);\r
- wxPoint GetAdjustedClientPosition(wxCoord x, wxCoord y);\r
- void DrawRoundDot(wxDC &, int32, int32);\r
- void DrawSquareDot(wxDC &, int32, int32);\r
- void DrawRoundDotN(wxDC &, int32, int32, uint32);\r
- void DrawSquareDotN(wxDC &, int32, int32, uint32);\r
-\r
- DECLARE_EVENT_TABLE()\r
-};\r
-\r
-#endif // __EDITWINDOW_H__\r
+//
+// EDITWINDOW.H: Header file
+//
+// by James L. Hammons
+// (C) 2008 Underground Software
+//
+
+#ifndef __EDITWINDOW_H__
+#define __EDITWINDOW_H__
+
+#include <QtWidgets>
+#include <stdint.h>
+#include "toolwindow.h" // For ToolType enum
+#include "glyphpoints.h"
+#include "painter.h"
+
+
+class EditWindow: public QWidget
+{
+ Q_OBJECT
+
+ public:
+ EditWindow(QWidget * parent = NULL);
+ QSize minimumSizeHint() const;
+ QSize sizeHint() const;
+
+ protected:
+ void paintEvent(QPaintEvent *);
+ void mousePressEvent(QMouseEvent *);
+ void mouseMoveEvent(QMouseEvent *);
+ void mouseReleaseEvent(QMouseEvent *);
+ void keyPressEvent(QKeyEvent *);
+ void keyReleaseEvent(QKeyEvent *);
+
+ private:
+ void CreateCursors(void);
+ QPoint GetAdjustedMousePosition(QMouseEvent *);
+ QPoint GetAdjustedClientPosition(int x, int y);
+ void DrawGlyph(Painter & p, GlyphPoints & glyph);
+ void DrawGlyphPoly(Painter & p, GlyphPoints & glyph, uint16_t poly);
+ void ClearSelection(void);
+
+ public:
+ QImage image;
+ Vector pt, ptOffset, ptPrevious;
+ double scale; // Window scaling factor
+ int32_t offsetX, offsetY; // Window offsets
+ ToolType tool; // Current tool
+ GlyphPoints pts; // Glyph point structure
+ int32_t ptHighlight, oldPtHighlight, ptNextHighlight, oldPtNextHighlight;
+ int16_t polyHighlight, oldPolyHighlight;
+ bool polyFirstPoint;
+ bool showRotationCenter, haveZeroPoint;
+ Vector rotationCenter, rotationZeroPoint, rotationCurrentPoint;
+ double rotationAngle;
+
+ ToolWindow * toolPalette;
+ QCursor cur[12];
+ bool selectedPoints[65536]; // Potential memory leak :-O
+ QRect selection;
+ bool selectionInProgress;
+};
+
+#endif // __EDITWINDOW_H__