]> Shamusworld >> Repos - architektonas/blobdiff - src/drawingview.h
Added automagically resizing grid. :-D
[architektonas] / src / drawingview.h
index 768c5c029b26a518b2f7959eaa8d2987f9aa53b9..441b7a8eb61cecfd2b080bc636b11b00000faee8 100644 (file)
@@ -18,15 +18,17 @@ class DrawingView: public QWidget
                DrawingView(QWidget * parent = NULL);
 
        public:
+               void DrawBackground(Painter *);
                void SetGridSize(uint32_t);
+               void SetGridSize(double);
                void UpdateGridBackground(void);
+               void UpdateGridBackgroundF(void);
                Point SnapPointToGrid(Point);
                Point SnapPointToAngle(Point);
-               void RenderObjects(Painter *, std::vector<void *> &, int, bool ignoreLayer = false);
+               void RenderObjects(Painter *, VPVector &, int, bool ignoreLayer = false);
                void AddHoveredToSelection(void);
-               void GetSelection(std::vector<void *> &);
-//             void GetHovered(std::vector<void *> &);
-               std::vector<void *> GetHovered(void);
+               VPVector GetSelection(void);
+               VPVector GetHovered(void);
                void ToolHandler(int, Point);
                void ToolDraw(Painter *);
                void LineHandler(int, Point);
@@ -53,10 +55,12 @@ class DrawingView: public QWidget
                void HandlePenWidth(float);
                void HandlePenStyle(int);
                void HandlePenColor(uint32_t);
+               void HandlePenStamp(void);
 
        signals:
                void ObjectHovered(Object *);
                void ObjectSelected(Object *);
+               void NeedZoomUpdate(void);
 
        protected:
                void focusOutEvent(QFocusEvent * event);
@@ -70,6 +74,7 @@ class DrawingView: public QWidget
                void keyReleaseEvent(QKeyEvent * event);
 
        private:
+               void DrawSubGrid(Painter *, uint32_t, double, Vector, Vector);
                QPoint GetAdjustedMousePosition(QMouseEvent * event);
                QPoint GetAdjustedClientPosition(int x, int y);
 
@@ -87,7 +92,9 @@ class DrawingView: public QWidget
        public:
                Container document;
                uint32_t gridPixels;                                    // Grid size in pixels
-       private:
+               double gridPixelsF;                                             // Grid size in pixels (float)
+//     private:
+       public:
                bool collided;
                bool scrollDrag;
                Vector oldPoint;
@@ -95,11 +102,10 @@ class DrawingView: public QWidget
                QString informativeText;
 
        public:
-               std::vector<void *> select;
-//             std::vector<void *> hover;
-               std::vector<void *> toolObjects;
+               VPVector select;
+               VPVector toolObjects;
                std::vector<Object> toolScratch;
-               std::vector<void *> toolScratch2;
+               VPVector toolScratch2;
                Point toolPoint[32];
                Object * toolObj[32];
                Point intersectionPoint;
@@ -110,6 +116,7 @@ class DrawingView: public QWidget
                bool draggingObject;
                bool angleSnap;
                bool dirty;
+               bool scrollWheelSeen;
 };
 
 #endif // __DRAWINGVIEW_H__