]> Shamusworld >> Repos - architektonas/blobdiff - src/drawingview.h
Add ability to add Arcs to document.
[architektonas] / src / drawingview.h
index 3d22b44e83e97224b9e1c38eee3201d56972d2b0..e22634c00d936eda7afd7ad2a87752f611e8d5b0 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
@@ -18,20 +20,21 @@ class DrawingView: public QWidget
                void SetGridSize(uint32_t);
                void UpdateGridBackground(void);
                Point SnapPointToGrid(Point);
-               void RenderObjects(Painter *, Container *);
-               void DeleteSelectedItems(void);
-               void ClearSelection(void);
+               void RenderObjects(Painter *, std::vector<void *> &);
                void AddHoveredToSelection(void);
                void GetSelection(std::vector<void *> &);
                void GetHovered(std::vector<void *> &);
-               void ToolMouseDown(Point);
-               void ToolMouseMove(Point);
-               void ToolMouseUp(Point);
+               void ToolHandler(int, Point);
                void ToolDraw(Painter *);
+               void LineHandler(int, Point);
+               void CircleHandler(int, Point);
+               void ArcHandler(int, Point);
+               void RotateHandler(int, Point);
+               void CheckObjectBounds(void);
+               bool HitTestObjects(Point);
+               void HandleObjectMovement(Point);
 
        public slots:
-               void AddNewObjectToDocument(Object *);
-               void HandleActionUpdate(void);
                void SetCurrentLayer(int);
 
        protected:
@@ -66,17 +69,15 @@ class DrawingView: public QWidget
                bool collided;
                bool scrollDrag;
                Vector oldPoint;
+               QString informativeText;
 
        public:
                std::vector<void *> select;
                std::vector<void *> hover;
-//             int toolState;
+               std::vector<void *> toolObjects;
+               std::vector<Object> toolScratch;
                Point toolPoint[32];
-//             Object * toolObject;
 
-       // Tool methods (static)
-       public:
-//             static void foo();
 //     public:
 //             static Container document;
 };