]> Shamusworld >> Repos - architektonas/blobdiff - src/drawingview.h
Fix scrollwheel zooming from walking all over the screen.
[architektonas] / src / drawingview.h
index 8e7357ef841ca6e0ebeed8ed2419bf2befaae26f..d252ffcf3515e5273c74c48e6cdb33554daf2a26 100644 (file)
@@ -21,10 +21,11 @@ class DrawingView: public QWidget
                void SetGridSize(uint32_t);
                void UpdateGridBackground(void);
                Point SnapPointToGrid(Point);
-               void RenderObjects(Painter *, std::vector<void *> &, int, bool ignoreLayer = false);
+               Point SnapPointToAngle(Point);
+               void RenderObjects(Painter *, VPVector &, int, bool ignoreLayer = false);
                void AddHoveredToSelection(void);
-               void GetSelection(std::vector<void *> &);
-               void GetHovered(std::vector<void *> &);
+               VPVector GetSelection(void);
+               VPVector GetHovered(void);
                void ToolHandler(int, Point);
                void ToolDraw(Painter *);
                void LineHandler(int, Point);
@@ -32,21 +33,33 @@ class DrawingView: public QWidget
                void ArcHandler(int, Point);
                void RotateHandler(int, Point);
                void MirrorHandler(int, Point);
+               void DimensionHandler(int, Point);
+               void TriangulateHandler(int, Point);
+               void TrimHandler(int, Point);
+               void ParallelHandler(int, Point);
                Rect GetObjectExtents(Object *);
                void CheckObjectBounds(void);
                bool HitTestObjects(Point);
                bool HitTest(Object *, Point);
+               bool HandleObjectClicked(void);
                void HandleObjectMovement(Point);
+               void AddDimensionTo(void * obj);
 
        public slots:
                void DeleteCurrentLayer(int);
                void HandleLayerToggle(void);
                void HandleLayerSwap(int, int);
+               void HandlePenWidth(float);
+               void HandlePenStyle(int);
+               void HandlePenColor(uint32_t);
+               void HandlePenStamp(void);
 
        signals:
                void ObjectHovered(Object *);
+               void ObjectSelected(Object *);
 
        protected:
+               void focusOutEvent(QFocusEvent * event);
                void paintEvent(QPaintEvent * event);
                void resizeEvent(QResizeEvent * event);
                void mousePressEvent(QMouseEvent * event);
@@ -62,10 +75,10 @@ class DrawingView: public QWidget
 
        public:
                bool useAntialiasing;
-//             uint32_t numSelected;
                uint32_t numHovered;
                bool shiftDown;
                bool ctrlDown;
+               bool altDown;
 
        private:
                QPixmap gridBackground;
@@ -78,20 +91,25 @@ class DrawingView: public QWidget
                bool collided;
                bool scrollDrag;
                Vector oldPoint;
+               Vector oldScrollPoint;
                QString informativeText;
 
        public:
-               std::vector<void *> select;
-               std::vector<void *> hover;
-               std::vector<void *> toolObjects;
+               VPVector select;
+               VPVector toolObjects;
                std::vector<Object> toolScratch;
+               VPVector toolScratch2;
                Point toolPoint[32];
+               Object * toolObj[32];
                Point intersectionPoint;
                Point hoverPoint;
                bool hoverPointValid;
                bool hoveringIntersection;
                Object * dragged;
                bool draggingObject;
+               bool angleSnap;
+               bool dirty;
+               bool scrollWheelSeen;
 };
 
 #endif // __DRAWINGVIEW_H__