]> Shamusworld >> Repos - architektonas/blobdiff - src/drawingview.h
Added line-to-circle intersection code.
[architektonas] / src / drawingview.h
index 1046f9c0938164b49cac58e07991d634f89f31b3..cf70e400967a247ca8fbb73ad2d14da3cb686600 100644 (file)
@@ -5,6 +5,8 @@
 #include <stdint.h>
 #include "structs.h"
 
+enum { ToolMouseDown, ToolMouseMove, ToolMouseUp, ToolKeyDown, ToolKeyUp, ToolCleanup };
+
 class Painter;
 
 class DrawingView: public QWidget
@@ -15,17 +17,28 @@ class DrawingView: public QWidget
                DrawingView(QWidget * parent = NULL);
 
        public:
-//             void SetToolActive(Action * action);
                void SetGridSize(uint32_t);
                void UpdateGridBackground(void);
                Point SnapPointToGrid(Point);
-               void RenderObjects(Painter *, Container *);
-               void DeleteSelectedItems(void);
+               void RenderObjects(Painter *, std::vector<void *> &, int);
+               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 AddNewObjectToDocument(Object *);
-               void HandleActionUpdate(void);
-               void SetCurrentLayer(int);
+               void DeleteCurrentLayer(int);
+               void HandleLayerToggle(void);
+               void HandleLayerSwap(int, int);
 
        protected:
                void paintEvent(QPaintEvent * event);
@@ -44,6 +57,9 @@ class DrawingView: public QWidget
        public:
                bool useAntialiasing;
                uint32_t numSelected;
+               uint32_t numHovered;
+               bool shiftDown;
+               bool ctrlDown;
 
        private:
                QPixmap gridBackground;
@@ -56,9 +72,16 @@ class DrawingView: public QWidget
                bool collided;
                bool scrollDrag;
                Vector oldPoint;
+               QString informativeText;
 
        public:
-//             Action * toolAction;
+               std::vector<void *> select;
+               std::vector<void *> hover;
+               std::vector<void *> toolObjects;
+               std::vector<Object> toolScratch;
+               Point toolPoint[32];
+               Point intersectionPoint;
+               bool hoveringIntersection;
 
 //     public:
 //             static Container document;