1 /////////////////////////////////////////////////////////////////////////////
 
   3 // Purpose:     SWIG definitions for the wxWindows Object Graphics Library
 
   7 // Created:     7-Sept-1999
 
   9 // Copyright:   (c) 1998 by Total Control Software
 
  10 // Licence:     wxWindows license
 
  11 /////////////////////////////////////////////////////////////////////////////
 
  17 //---------------------------------------------------------------------------
 
  19     // Put some wx default wxChar* values into wxStrings.
 
  20     DECLARE_DEF_STRING(ShapeCanvasNameStr);
 
  23 //---------------------------------------------------------------------------
 
  24 //---------------------------------------------------------------------------
 
  26 class wxDiagram : public wxObject {
 
  31     void AddShape(wxPyShape* shape, wxPyShape *addAfter = NULL);
 
  33     void DeleteAllShapes();
 
  34     void DrawOutline(wxDC& dc, double x1, double y1, double x2, double y2);
 
  35     wxPyShape* FindShape(long id);
 
  36     wxPyShapeCanvas* GetCanvas();
 
  38     double GetGridSpacing();
 
  39     int GetMouseTolerance();
 
  41     // wxList* GetShapeList();
 
  43         PyObject* GetShapeList() {
 
  44             wxList* list = self->GetShapeList();
 
  45             return wxPy_ConvertShapeList(list);
 
  49     bool GetQuickEditMode();
 
  51     void InsertShape(wxPyShape *shape);
 
  54     bool LoadFile(const wxString& filename);
 
  55     bool SaveFile(const wxString& filename);
 
  59     // **** Have to deal with wxExpr and wxExprDatabase first...
 
  60     //void OnDatabaseLoad(wxExprDatabase& database);
 
  61     //void OnDatabaseSave(wxExprDatabase& database);
 
  62     //bool OnHeaderLoad(wxExprDatabase& database, wxExpr& expr);
 
  63     //bool OnHeaderSave(wxExprDatabase& database, wxExpr& expr);
 
  64     //bool OnShapeLoad(wxExprDatabase& database, wxPyShape& shape, wxExpr& expr);
 
  65     //bool OnShapeSave(wxExprDatabase& database, wxPyShape& shape, wxExpr& expr);
 
  69     void ReadContainerGeometry(wxExprDatabase& database);
 
  70     void ReadLines(wxExprDatabase& database);
 
  71     void ReadNodes(wxExprDatabase& database);
 
  74     void RecentreAll(wxDC& dc);
 
  75     void Redraw(wxDC& dc);
 
  76     void RemoveAllShapes();
 
  77     void RemoveShape(wxPyShape* shape);
 
  78     void SetCanvas(wxPyShapeCanvas* canvas);
 
  79     void SetGridSpacing(double spacing);
 
  80     void SetMouseTolerance(int tolerance);
 
  81     void SetQuickEditMode(bool mode);
 
  82     void SetSnapToGrid(bool snap);
 
  83     void ShowAll(bool show);
 
  84     void Snap(double *INOUT, double *INOUT);
 
  88 //---------------------------------------------------------------------------
 
  91     IMP_PYCALLBACK__2DBLINT(wxPyShapeCanvas, wxShapeCanvas, OnBeginDragLeft);
 
  92     IMP_PYCALLBACK__2DBLINT(wxPyShapeCanvas, wxShapeCanvas, OnBeginDragRight);
 
  93     IMP_PYCALLBACK__2DBLINT(wxPyShapeCanvas, wxShapeCanvas, OnEndDragLeft);
 
  94     IMP_PYCALLBACK__2DBLINT(wxPyShapeCanvas, wxShapeCanvas, OnEndDragRight);
 
  95     IMP_PYCALLBACK__BOOL2DBLINT(wxPyShapeCanvas, wxShapeCanvas, OnDragLeft);
 
  96     IMP_PYCALLBACK__BOOL2DBLINT(wxPyShapeCanvas, wxShapeCanvas, OnDragRight);
 
  97     IMP_PYCALLBACK__2DBLINT(wxPyShapeCanvas, wxShapeCanvas, OnLeftClick);
 
  98     IMP_PYCALLBACK__2DBLINT(wxPyShapeCanvas, wxShapeCanvas, OnRightClick);
 
 102 class wxPyShapeCanvas : public wxScrolledWindow {
 
 104     %addtofunc wxPyShapeEvtHandler "self._setOORandCallbackInfo(PyShapeEvtHandler)"
 
 106     wxPyShapeCanvas(wxWindow* parent = NULL, wxWindowID id = -1,
 
 107                     const wxPoint& pos = wxDefaultPosition,
 
 108                     const wxSize& size = wxDefaultSize,
 
 109                     long style = wxBORDER,
 
 110                     const wxString& name = wxPyShapeCanvasNameStr);
 
 112     void _setCallbackInfo(PyObject* self, PyObject* _class);
 
 114     def _setOORandCallbackInfo(self, _class):
 
 115         self._setOORInfo(self)
 
 116         self._setCallbackInfo(self, _class)
 
 119     void AddShape(wxPyShape *shape, wxPyShape *addAfter = NULL);
 
 121     // ****  Need a typemap for wxClassInfo, or fully implement wxObject, etc.....
 
 122     wxPyShape* FindShape(double x1, double y, int *OUTPUT,
 
 123                        wxClassInfo *info = NULL, wxPyShape* notImage = NULL);
 
 125     wxPyShape * FindFirstSensitiveShape(double x1, double y, int *OUTPUT, int op);
 
 126     wxDiagram* GetDiagram();
 
 128     bool GetQuickEditMode();
 
 129     void InsertShape(wxPyShape* shape);
 
 132     void base_OnBeginDragLeft(double x, double y, int keys = 0);
 
 133     void base_OnBeginDragRight(double x, double y, int keys = 0);
 
 134     void base_OnEndDragLeft(double x, double y, int keys = 0);
 
 135     void base_OnEndDragRight(double x, double y, int keys = 0);
 
 136     void base_OnDragLeft(bool draw, double x, double y, int keys = 0);
 
 137     void base_OnDragRight(bool draw, double x, double y, int keys = 0);
 
 138     void base_OnLeftClick(double x, double y, int keys = 0);
 
 139     void base_OnRightClick(double x, double y, int keys = 0);
 
 141     void Redraw(wxDC& dc);
 
 142     void RemoveShape(wxPyShape *shape);
 
 143     void SetDiagram(wxDiagram *diagram);
 
 144     void Snap(double *INOUT, double *INOUT);
 
 148     def GetShapeList(self):
 
 149         return self.GetDiagram().GetShapeList()
 
 154 //---------------------------------------------------------------------------