X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fmainapp%2Fgraphicview.h;h=90e30b21208b64b3eb30105e0e3ccbb17504c06b;hb=f34fe4370628985ef1a4a4527cfa85165624e27c;hp=8af908b314e60d84dd8ceedb91d82d48ed4655da;hpb=52b41ea9bcb03acb96393b36fe29f27ca0163565;p=architektonas diff --git a/src/mainapp/graphicview.h b/src/mainapp/graphicview.h index 8af908b..90e30b2 100644 --- a/src/mainapp/graphicview.h +++ b/src/mainapp/graphicview.h @@ -4,21 +4,20 @@ #include #include "rs.h" #include "rs_color.h" +#include "rs_preview.h" +#include "rs_snapper.h" #include "vector.h" +class ActionInterface; +class RS_CommandEvent; class Drawing; class PaintInterface; -class RS_EntityContainer; -class RS_ActionInterface; class RS_Entity; -class RS_LineTypePattern; -class RS_CommandEvent; -class Vector; -class RS_Preview; +class RS_EntityContainer; +class RS_EventHandler; class RS_Grid; +class RS_LineTypePattern; class RS_Pen; -class RS_EventHandler; -class QG_ScrollBar; class GraphicView { @@ -50,10 +49,6 @@ class GraphicView /** This virtual method must be overwritten and is then called whenever the view changed */ virtual void adjustZoomControls(); - /** - * Sets an external painter device. - */ - virtual void setPainter(PaintInterface * p); virtual void setBackground(const RS_Color & bg); RS_Color getBackground(); @@ -90,10 +85,10 @@ class GraphicView void freezeZoom(bool freeze); bool isZoomFrozen(); - void setDefaultAction(RS_ActionInterface * action); - RS_ActionInterface * getDefaultAction(); - void setCurrentAction(RS_ActionInterface * action); - RS_ActionInterface * getCurrentAction(); + void setDefaultAction(ActionInterface * action); + ActionInterface * getDefaultAction(); + void setCurrentAction(ActionInterface * action); + ActionInterface * getCurrentAction(); void killSelectActions(); void killAllActions(); @@ -139,7 +134,6 @@ class GraphicView virtual void drawWindow(Vector v1, Vector v2); virtual void drawIt(); - virtual void deleteEntity(RS_Entity * e); virtual void drawEntity(RS_Entity * e, double patternOffset = 0.0, bool db = false); virtual void drawEntityPlain(RS_Entity * e, double patternOffset = 0.0); virtual void setPenForEntity(RS_Entity * e); @@ -168,6 +162,20 @@ class GraphicView RS2::SnapRestriction getSnapRestriction(); bool isGridOn(); +/* +What to do about this shiatsu? This stuff is used in the snapper rendering +code... Maybe move all the snapper rendering back into this class??? +Seems to make sense, though it kinda blows encapsulation. But it's already +blown by the snapper class having to use these functions in the first place! + +How to fix??? + +The snapper as a separate class makes sense, since it has several functions +for finding various snapping points. But what about rendering??? + +Having this class derive from that one *might* make sense... *Maybe*. Not sure. + +*/ Vector toGui(Vector v); double toGuiX(double x, bool * visible = NULL); double toGuiY(double y); @@ -199,131 +207,87 @@ class GraphicView void setSimulationRapid(bool r); bool getSimulationRapid(); - //this is here because of crappy braindead infrastructure - void SetPreviewMode(bool mode = true); - void SetPreviewEntity(RS_Preview *); - void SetPreviewOffset(Vector); - void SetSnapperDraw(bool); - void SetSnapperVars(Vector snapSpot, Vector snapCoord, bool showCrosshairs); - protected: RS_EntityContainer * container; RS_EventHandler * eventHandler; - - int mx; //!< Last known mouse cursor position - int my; //!< Last known mouse cursor position - + int mx; //!< Last known mouse cursor position + int my; //!< Last known mouse cursor position PaintInterface * painter; - /** background color (any color) */ - RS_Color background; - /** foreground color (black or white) */ - RS_Color foreground; - /** grid color */ - RS_Color gridColor; - /** meta grid color */ - RS_Color metaGridColor; - /** selected color */ - RS_Color selectedColor; - /** highlighted color */ - RS_Color highlightedColor; - /** Grid */ - RS_Grid * grid; + RS_Color background; //! background color (any color) + RS_Color foreground; //! foreground color (black or white) + RS_Color gridColor; //! grid color + RS_Color metaGridColor; //! meta grid color + RS_Color selectedColor; //! selected color + RS_Color highlightedColor; //! highlighted color + RS_Grid * grid; //! Grid /** - * Current default snap mode for this graphic view. Used for new - * actions. - */ + * Current default snap mode for this graphic view. Used for new + * actions. + */ RS2::SnapMode defaultSnapMode; /** - * Current default snap restriction for this graphic view. Used for new - * actions. - */ + * Current default snap restriction for this graphic view. Used for new + * actions. + */ RS2::SnapRestriction defaultSnapRes; - RS2::DrawingMode drawingMode; /** - * Delete mode. If true, all drawing actions will delete in background color - * instead. - */ + * Delete mode. If true, all drawing actions will delete in background color + * instead. + */ bool deleteMode; - //! If true, the simulation is currectly running - bool simulationRunning; + bool simulationRunning; //! If true, the simulation is currectly running private: int updateEnabled; bool zoomFrozen; bool draftMode; - Vector factor; int offsetX; int offsetY; - Vector previousFactor; int previousOffsetX; int previousOffsetY; - int borderLeft; int borderTop; int borderRight; int borderBottom; - Vector relativeZero; bool relativeZeroLocked; - //! Print preview flag - bool printPreview; - //! Active when printing only: - bool printing; - - //! Simulation speed in percentage - int simulationSpeed; - //! If true, the entity is drawn slowly (pixel by pixel). - bool simulationSmooth; - //! If true, the way between entities is also shown. - bool simulationRapid; - //! Last position (for rapid move) - Vector simulationLast; - - protected: - // crap to make painting with update() possible - RS_Preview * previewEntity; - bool previewMode; - Vector previewOffset; - bool snapperDraw; - Vector snapSpot1; - Vector snapCoord1; - bool showCrosshairs1; + bool printPreview; //! Print preview flag + bool printing; //! Active when printing only: + int simulationSpeed; //! Simulation speed in percentage + bool simulationSmooth; //! If true, the entity is drawn slowly (pixel by pixel). + bool simulationRapid; //! If true, the way between entities is also shown. + Vector simulationLast; //! Last position (for rapid move) + + public://for now + // We use this here instead of deriving ActionInterface from it because + // this makes more sense. + RS_Snapper snapper; + RS_Preview preview; //QG protected: int lastWidth; int lastHeight; - //! Horizontal scrollbar. - QG_ScrollBar * hScrollBar; - //! Vertical scrollbar. - QG_ScrollBar * vScrollBar; - //! Layout used to fit in the view and the scrollbars. - QGridLayout * layout; - //! Label for grid spacing. - QLabel * gridStatus; - //! CAD mouse cursor - QCursor * curCad; - //! Delete mouse cursor - QCursor * curDel; - //! Select mouse cursor - QCursor * curSelect; - //! Magnifying glass mouse cursor - QCursor * curMagnifier; - //! Hand mouse cursor - QCursor * curHand; - -//QC + QScrollBar * hScrollBar; //! Horizontal scrollbar. + QScrollBar * vScrollBar; //! Vertical scrollbar. + QLabel * gridStatus; //! Label for grid spacing. + QCursor * curCad; //! CAD mouse cursor + QCursor * curDel; //! Delete mouse cursor + QCursor * curSelect; //! Select mouse cursor + QCursor * curMagnifier; //! Magnifying glass mouse cursor + QCursor * curHand; //! Hand mouse cursor + +//QC was merged with QG }; #endif // __GRAPHICVIEW_H__ #if 0 -class QG_GraphicView: public QWidget, public RS_GraphicView, //public Q3FilePreview, - public RS_LayerListListener, public RS_BlockListListener +class QG_GraphicView: public QWidget, public RS_GraphicView { Q_OBJECT @@ -336,21 +300,10 @@ class QG_GraphicView: public QWidget, public RS_GraphicView, //public Q3FilePrev virtual void redraw(); virtual void adjustOffsetControls(); virtual void adjustZoomControls(); -// virtual RS_Painter * createPainter(); -// virtual RS_Painter * createDirectPainter(); -#warning "!!! Need to scrub out all instances of createPainter and createDirectPainter !!!" -// virtual PaintInterface * createPainter(); -// virtual PaintInterface * createDirectPainter(); -// virtual void destroyPainter(); virtual void setBackground(const RS_Color & bg); virtual void setMouseCursor(RS2::CursorType c); virtual void updateGridStatusWidget(const QString & text); - // Methods from RS_LayerListListener Interface: - virtual void layerEdited(RS_Layer *); - virtual void layerRemoved(RS_Layer *); - virtual void layerToggled(RS_Layer *); - protected: virtual void emulateMouseMoveEvent(); virtual void mousePressEvent(QMouseEvent * e); @@ -368,50 +321,8 @@ class QG_GraphicView: public QWidget, public RS_GraphicView, //public Q3FilePrev void paintEvent(QPaintEvent *); virtual void resizeEvent(QResizeEvent * e); -#warning "!!! File preview needs porting to Qt4 !!!" -// void previewUrl(const Q3Url &u); - private slots: void slotHScrolled(int value); void slotVScrolled(int value); - - private: -#warning "!!! Double buffering is not necessary anymore !!!" - //! Buffer for double-buffering - QPixmap * buffer; -// int refCount; - - protected: - int lastWidth; - int lastHeight; - //! Horizontal scrollbar. - QG_ScrollBar * hScrollBar; - //! Vertical scrollbar. - QG_ScrollBar * vScrollBar; - //! Layout used to fit in the view and the scrollbars. - QGridLayout * layout; - //! Label for grid spacing. - QLabel * gridStatus; - //! CAD mouse cursor - QCursor * curCad; - //! Delete mouse cursor - QCursor * curDel; - //! Select mouse cursor - QCursor * curSelect; - //! Magnifying glass mouse cursor - QCursor * curMagnifier; - //! Hand mouse cursor - QCursor * curHand; -}; -#endif - -#if 0 -class QC_GraphicView: public QG_GraphicView -{ - public: - QC_GraphicView(RS_Document * doc, QWidget * parent = 0); - virtual ~QC_GraphicView(); - - virtual void drawIt(); }; #endif