]> Shamusworld >> Repos - architektonas/blobdiff - src/drawingview.h
Added Mirror tool
[architektonas] / src / drawingview.h
index c7f7c3a3832d0e7aed65c568d0967cccb830996a..849ce76b2c943a1d2a07070d1585c54107434b60 100644 (file)
@@ -1,9 +1,13 @@
 #ifndef __DRAWINGVIEW_H__
 #define __DRAWINGVIEW_H__
 
-#include <QtGui>
+#include <QtWidgets>
 #include <stdint.h>
-#include "container.h"
+#include "structs.h"
+
+enum { ToolMouseDown, ToolMouseMove, ToolMouseUp, ToolKeyDown, ToolKeyUp, ToolCleanup };
+
+class Painter;
 
 class DrawingView: public QWidget
 {
@@ -12,40 +16,72 @@ class DrawingView: public QWidget
        public:
                DrawingView(QWidget * parent = NULL);
 
+       public:
+               void SetGridSize(uint32_t);
+               void UpdateGridBackground(void);
+               Point SnapPointToGrid(Point);
+               void RenderObjects(Painter *, std::vector<void *> &);
+               void AddHoveredToSelection(void);
+               void GetSelection(std::vector<void *> &);
+               void GetHovered(std::vector<void *> &);
+               void ToolHandler(int, Point);
+               void ToolDraw(Painter *);
+               void LineHandler(int, Point);
+               void CircleHandler(int, Point);
+               void ArcHandler(int, Point);
+               void RotateHandler(int, Point);
+               void MirrorHandler(int, Point);
+               void CheckObjectBounds(void);
+               bool HitTestObjects(Point);
+               void HandleObjectMovement(Point);
+
+       public slots:
+               void SetCurrentLayer(int);
+
        protected:
                void paintEvent(QPaintEvent * event);
+               void resizeEvent(QResizeEvent * event);
                void mousePressEvent(QMouseEvent * event);
                void mouseMoveEvent(QMouseEvent * event);
                void mouseReleaseEvent(QMouseEvent * event);
+               void wheelEvent(QWheelEvent * event);
+               void keyPressEvent(QKeyEvent * event);
+               void keyReleaseEvent(QKeyEvent * event);
 
        private:
                QPoint GetAdjustedMousePosition(QMouseEvent * event);
                QPoint GetAdjustedClientPosition(int x, int y);
 
+       public:
+               bool useAntialiasing;
+               uint32_t numSelected;
+               uint32_t numHovered;
+               bool shiftDown;
+               bool ctrlDown;
+
        private:
+               QPixmap gridBackground;
                double scale;                                                   // Window scaling factor
                int32_t offsetX, offsetY;                               // Window offsets
+       public:
                Container document;
-               double gridSpacing;
-               bool collided;
-/*             QSize minimumSizeHint() const;
-               QSize sizeHint() const;
-
+               uint32_t gridPixels;                                    // Grid size in pixels
        private:
-               void CreateCursors(void);
-               QPoint GetAdjustedMousePosition(QMouseEvent * event);
-               QPoint GetAdjustedClientPosition(int x, int y);
+               bool collided;
+               bool scrollDrag;
+               Vector oldPoint;
+               QString informativeText;
 
-               QImage image;
-               QPoint pt, ptOffset, ptPrevious;
-               ToolType tool;                                                  // Current tool
-               GlyphPoints pts;                                                // Glyph point structure
-               int32 ptHighlight, oldPtHighlight, ptNextHighlight, oldPtNextHighlight;
-               bool polyFirstPoint;
+       public:
+               std::vector<void *> select;
+               std::vector<void *> hover;
+               std::vector<void *> toolObjects;
+               std::vector<Object> toolScratch;
+               Point toolPoint[32];
 
-               ToolWindow * toolPalette;
-               QCursor cur[8];
-*/
+//     public:
+//             static Container document;
 };
 
 #endif // __DRAWINGVIEW_H__
+