]> Shamusworld >> Repos - ttedit/blobdiff - src/editwindow.h
Added preview window to file loading dialog. :-)
[ttedit] / src / editwindow.h
old mode 100755 (executable)
new mode 100644 (file)
index 8034d7e..77104bd
@@ -1,52 +1,62 @@
-//\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);
+               void DrawGlyph(Painter & p, GlyphPoints & glyph);
+               void DrawGlyphPoly(Painter & p, GlyphPoints & glyph, uint16_t poly);
+               void DrawGlyphSegment(Painter & p, IPoint p1, IPoint p2, IPoint p3);
+               void ClearSelection(void);
+
+       public:
+               QImage image;
+               Vector pt, ptOffset, ptPrevious, addPoint;
+               bool addPointOnCurve;
+               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__