#include <stdint.h>
#include "toolwindow.h" // For ToolType enum
#include "glyphpoints.h"
+#include "painter.h"
+
class EditWindow: public QWidget
{
private:
void CreateCursors(void);
- QPoint GetAdjustedMousePosition(QMouseEvent *);
- QPoint GetAdjustedClientPosition(int x, int y);
- void DrawGlyph(QPainter & p, GlyphPoints & glyph);
- void DrawGlyphPoly(QPainter & p, GlyphPoints & glyph, uint16_t poly);
+ 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;
- QPoint pt, ptOffset, ptPrevious;
- double scale; // Window scaling factor
- int32_t offsetX, offsetY; // Window offsets
- ToolType tool; // Current tool
- GlyphPoints pts; // Glyph point structure
+ 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;
- QPoint rotationCenter, rotationZeroPoint, rotationCurrentPoint;
+ Vector rotationCenter, rotationZeroPoint, rotationCurrentPoint;
double rotationAngle;
ToolWindow * toolPalette;
- QCursor cur[11];
+ QCursor cur[12];
+ bool selectedPoints[65536]; // Potential memory leak :-O
+ QRect selection;
+ bool selectionInProgress;
};
#endif // __EDITWINDOW_H__