]> Shamusworld >> Repos - architektonas/blobdiff - src/painter.h
Added pen and dropper tools, and printing support.
[architektonas] / src / painter.h
index ddd6a27ad7b73f616ff39f91455d0eed9ff59e23..e89f045b7d55a16eb852eb38996e90e2a9b3d777 100644 (file)
@@ -1,7 +1,9 @@
 #ifndef __PAINTER_H__
 #define __PAINTER_H__
 
-#include <QtGui>
+#include <stdint.h>
+#include <QtWidgets>
+#include "rect.h"
 #include "vector.h"
 
 // Forward declarations
@@ -13,30 +15,39 @@ class Painter
                ~Painter();
 
                void SetRenderHint(int);
+               void SetPen(QPen);
+               void SetPen(uint32_t, float size = 0, int style = 0);
                void SetBrush(QBrush);
+               void SetBrush(uint32_t);
                void SetFont(QFont);
-               void SetPen(QPen);
-               void DrawAngledText(Vector, double, QString);
+               void DrawAngledText(Vector, double, QString, double);
+               void DrawTextObject(Vector, QString, double, double angle = 0);
+               Rect MeasureTextObject(QString text, double size);
                void DrawArc(Vector, double, double, double);
                void DrawEllipse(Vector, double, double);
                void DrawHandle(Vector);
+               void DrawSmallHandle(Vector);
+               void DrawCross(Vector);
+               void DrawRectCorners(Rect);
+               void DrawArrowHandle(Vector, double);
+               void DrawArrowToLineHandle(Vector, double);
                void DrawLine(int, int, int, int);
                void DrawLine(Vector, Vector);
+               void DrawHLine(double);
+               void DrawVLine(double);
                void DrawPoint(int, int);
                void DrawRoundedRect(QRectF, double, double);
+               void DrawPaddedRect(QRectF);
+               void DrawRect(QRectF);
                void DrawText(QRectF, int, QString);
-               void DrawArrowhead(Vector, Vector);
+               void DrawArrowhead(Vector, Vector, double);
+               void DrawCrosshair(Vector);
+               void DrawInformativeText(QString);
 
        public:
                static Vector CartesianToQtCoords(Vector);
                static Vector QtToCartesianCoords(Vector);
 
-       public:
-               // Class variables
-               static Vector origin;           // The window origin, not location of the origin
-               static double zoom;                     // Window zoom factor
-               static Vector screenSize;       // Width & height of the window we're drawing on
-
        private:
                QPainter * painter;
 };