]> Shamusworld >> Repos - architektonas/blobdiff - src/drawingview.h
Added miscellaneous features.
[architektonas] / src / drawingview.h
index c8e46ff627fe6fb70be0d860bbca4efa2c910ce8..08f347f6cac05e26193f9df07e9114f30a86296c 100644 (file)
@@ -3,6 +3,7 @@
 
 #include <QtWidgets>
 #include <stdint.h>
+#include "rect.h"
 #include "structs.h"
 
 enum { ToolMouseDown, ToolMouseMove, ToolMouseUp, ToolKeyDown, ToolKeyUp, ToolCleanup };
@@ -20,7 +21,8 @@ class DrawingView: public QWidget
                void SetGridSize(uint32_t);
                void UpdateGridBackground(void);
                Point SnapPointToGrid(Point);
-               void RenderObjects(Painter *, std::vector<void *> &);
+               Point SnapPointToAngle(Point);
+               void RenderObjects(Painter *, std::vector<void *> &, int, bool ignoreLayer = false);
                void AddHoveredToSelection(void);
                void GetSelection(std::vector<void *> &);
                void GetHovered(std::vector<void *> &);
@@ -28,13 +30,28 @@ class DrawingView: public QWidget
                void ToolDraw(Painter *);
                void LineHandler(int, Point);
                void CircleHandler(int, Point);
+               void ArcHandler(int, Point);
                void RotateHandler(int, Point);
+               void MirrorHandler(int, Point);
+               void DimensionHandler(int, Point);
+               Rect GetObjectExtents(Object *);
                void CheckObjectBounds(void);
                bool HitTestObjects(Point);
+               bool HitTest(Object *, Point);
+               bool HandleObjectClicked(void);
                void HandleObjectMovement(Point);
 
        public slots:
-               void SetCurrentLayer(int);
+               void DeleteCurrentLayer(int);
+               void HandleLayerToggle(void);
+               void HandleLayerSwap(int, int);
+               void HandlePenWidth(float);
+               void HandlePenStyle(int);
+               void HandlePenColor(uint32_t);
+
+       signals:
+               void ObjectHovered(Object *);
+               void ObjectSelected(Object *);
 
        protected:
                void paintEvent(QPaintEvent * event);
@@ -52,10 +69,11 @@ class DrawingView: public QWidget
 
        public:
                bool useAntialiasing;
-               uint32_t numSelected;
+//             uint32_t numSelected;
                uint32_t numHovered;
                bool shiftDown;
                bool ctrlDown;
+               bool altDown;
 
        private:
                QPixmap gridBackground;
@@ -68,6 +86,7 @@ class DrawingView: public QWidget
                bool collided;
                bool scrollDrag;
                Vector oldPoint;
+               Vector oldScrollPoint;
                QString informativeText;
 
        public:
@@ -76,9 +95,13 @@ class DrawingView: public QWidget
                std::vector<void *> toolObjects;
                std::vector<Object> toolScratch;
                Point toolPoint[32];
-
-//     public:
-//             static Container document;
+               Point intersectionPoint;
+               Point hoverPoint;
+               bool hoverPointValid;
+               bool hoveringIntersection;
+               Object * dragged;
+               bool draggingObject;
+               bool angleSnap;
 };
 
 #endif // __DRAWINGVIEW_H__