]> git.saurik.com Git - wxWidgets.git/blobdiff - utils/ogl/src/ogldiag.h
Change a Popup menu from using a callback to using events. Can't test
[wxWidgets.git] / utils / ogl / src / ogldiag.h
index 595e88b386a87b4d10ce45d4f09cdd21253f4e12..e06e1248f452d7c06a76caaef8f094a967bb8a3d 100644 (file)
@@ -44,7 +44,7 @@ public:
 
   void SetSnapToGrid(bool snap);
   void SetGridSpacing(double spacing);
-  inline double GetGridSpacing() { return m_gridSpacing; }
+  inline double GetGridSpacing() const { return m_gridSpacing; }
   inline bool GetSnapToGrid() const { return m_snapToGrid; }
   void Snap(double *x, double *y);
 
@@ -56,15 +56,18 @@ public:
   virtual void DeleteAllShapes();
   virtual void ShowAll(bool show);
 
+  // Find a shape by its id
+  wxShape* FindShape(long id) const;
+
   inline void SetMouseTolerance(int tol) { m_mouseTolerance = tol; }
   inline int GetMouseTolerance() const { return m_mouseTolerance; }
   inline wxList *GetShapeList() const { return m_shapeList; }
+  inline int GetCount() const { return m_shapeList->Number(); }
 
   // Make sure all text that should be centred, is centred.
   void RecentreAll(wxDC& dc);
 
 #ifdef PROLOGIO
-  // Prolog database stuff
   virtual bool SaveFile(const wxString& filename);
   virtual bool LoadFile(const wxString& filename);
 
@@ -85,10 +88,37 @@ protected:
   wxShapeCanvas*        m_diagramCanvas;
   bool                  m_quickEditMode;
   bool                  m_snapToGrid;
-  double                 m_gridSpacing;
+  double                m_gridSpacing;
   int                   m_mouseTolerance;
   wxList*               m_shapeList;
 };
 
+class wxLineCrossing: public wxObject
+{
+public:
+    wxLineCrossing() { m_lineShape1 = NULL; m_lineShape2 = NULL; }
+    wxRealPoint     m_pt1; // First line
+    wxRealPoint     m_pt2;
+    wxRealPoint     m_pt3; // Second line
+    wxRealPoint     m_pt4;
+    wxRealPoint     m_intersect;
+    wxLineShape*    m_lineShape1;
+    wxLineShape*    m_lineShape2;
+};
+
+class wxLineCrossings: public wxObject
+{
+public:
+    wxLineCrossings();
+    ~wxLineCrossings();
+
+    void FindCrossings(wxDiagram& diagram);
+    void DrawCrossings(wxDiagram& diagram, wxDC& dc);
+    void ClearCrossings();
+
+public:
+    wxList  m_crossings;
+};
+
 #endif
  // _OGL_OGLDIAG_H_