1 /////////////////////////////////////////////////////////////////////////////
 
   3 // Purpose:     SWIG definitions for the wxWindows Object Graphics Library
 
   7 // Created:     3-Sept-1999
 
   9 // Copyright:   (c) 1998 by Total Control Software
 
  10 // Licence:     wxWindows license
 
  11 /////////////////////////////////////////////////////////////////////////////
 
  17 //---------------------------------------------------------------------------
 
  20     WXSHAPE_IMP_CALLBACKS(wxPyEllipseShape, wxEllipseShape);
 
  23 class wxPyEllipseShape : public wxPyShape {
 
  25     %addtofunc wxPyEllipseShape "self._setOORandCallbackInfo(PyEllipseShape)"
 
  27     wxPyEllipseShape(double width = 0.0, double height = 0.0);
 
  29     void _setCallbackInfo(PyObject* self, PyObject* _class);
 
  31     void base_OnDraw(wxDC& dc);
 
  32     void base_OnDrawContents(wxDC& dc);
 
  33     void base_OnDrawBranches(wxDC& dc, bool erase = FALSE);
 
  34     void base_OnMoveLinks(wxDC& dc);
 
  35     void base_OnErase(wxDC& dc);
 
  36     void base_OnEraseContents(wxDC& dc);
 
  37     void base_OnHighlight(wxDC& dc);
 
  38     void base_OnLeftClick(double x, double y, int keys = 0, int attachment = 0);
 
  39     void base_OnLeftDoubleClick(double x, double y, int keys = 0, int attachment = 0);
 
  40     void base_OnRightClick(double x, double y, int keys = 0, int attachment = 0);
 
  41     void base_OnSize(double x, double y);
 
  42     bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = True);
 
  43     void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = True);
 
  44     void base_OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0);
 
  45     void base_OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0);
 
  46     void base_OnEndDragLeft(double x, double y, int keys=0, int attachment = 0);
 
  47     void base_OnDragRight(bool draw, double x, double y, int keys=0, int attachment = 0);
 
  48     void base_OnBeginDragRight(double x, double y, int keys=0, int attachment = 0);
 
  49     void base_OnEndDragRight(double x, double y, int keys=0, int attachment = 0);
 
  50     void base_OnDrawOutline(wxDC& dc, double x, double y, double w, double h);
 
  51     void base_OnDrawControlPoints(wxDC& dc);
 
  52     void base_OnEraseControlPoints(wxDC& dc);
 
  53     void base_OnMoveLink(wxDC& dc, bool moveControlPoints = True);
 
  54     void base_OnSizingDragLeft(wxPyControlPoint* pt, bool draw, double x, double y, int keys=0, int attachment = 0);
 
  55     void base_OnSizingBeginDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
 
  56     void base_OnSizingEndDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
 
  57     void base_OnBeginSize(double w, double h);
 
  58     void base_OnEndSize(double w, double h);
 
  59 //    void base_OnChangeAttachment(int attachment, wxPyLineShape* line, wxList& ordering);
 
  62 //---------------------------------------------------------------------------
 
  64     WXSHAPE_IMP_CALLBACKS(wxPyCircleShape, wxCircleShape);
 
  67 class wxPyCircleShape : public wxPyEllipseShape {
 
  69     %addtofunc wxPyCircleShape "self._setOORandCallbackInfo(PyCircleShape)"
 
  71     wxPyCircleShape(double width = 0.0);
 
  73     void _setCallbackInfo(PyObject* self, PyObject* _class);
 
  75     void base_OnDraw(wxDC& dc);
 
  76     void base_OnDrawContents(wxDC& dc);
 
  77     void base_OnDrawBranches(wxDC& dc, bool erase = FALSE);
 
  78     void base_OnMoveLinks(wxDC& dc);
 
  79     void base_OnErase(wxDC& dc);
 
  80     void base_OnEraseContents(wxDC& dc);
 
  81     void base_OnHighlight(wxDC& dc);
 
  82     void base_OnLeftClick(double x, double y, int keys = 0, int attachment = 0);
 
  83     void base_OnLeftDoubleClick(double x, double y, int keys = 0, int attachment = 0);
 
  84     void base_OnRightClick(double x, double y, int keys = 0, int attachment = 0);
 
  85     void base_OnSize(double x, double y);
 
  86     bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = True);
 
  87     void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = True);
 
  88     void base_OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0);
 
  89     void base_OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0);
 
  90     void base_OnEndDragLeft(double x, double y, int keys=0, int attachment = 0);
 
  91     void base_OnDragRight(bool draw, double x, double y, int keys=0, int attachment = 0);
 
  92     void base_OnBeginDragRight(double x, double y, int keys=0, int attachment = 0);
 
  93     void base_OnEndDragRight(double x, double y, int keys=0, int attachment = 0);
 
  94     void base_OnDrawOutline(wxDC& dc, double x, double y, double w, double h);
 
  95     void base_OnDrawControlPoints(wxDC& dc);
 
  96     void base_OnEraseControlPoints(wxDC& dc);
 
  97     void base_OnMoveLink(wxDC& dc, bool moveControlPoints = True);
 
  98     void base_OnSizingDragLeft(wxPyControlPoint* pt, bool draw, double x, double y, int keys=0, int attachment = 0);
 
  99     void base_OnSizingBeginDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
 
 100     void base_OnSizingEndDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
 
 101     void base_OnBeginSize(double w, double h);
 
 102     void base_OnEndSize(double w, double h);
 
 103 //    void base_OnChangeAttachment(int attachment, wxPyLineShape* line, wxList& ordering);
 
 106 //---------------------------------------------------------------------------
 
 107 //---------------------------------------------------------------------------
 
 109 class wxArrowHead : public wxObject {
 
 111     wxArrowHead(int type = 0,
 
 115                 const wxString& name = wxPyEmptyString,
 
 116                 wxPseudoMetaFile *mf = NULL,
 
 122     void SetPosition(int pos);
 
 128     void SetXOffset(double x);
 
 129     void SetYOffset(double y);
 
 130     wxPseudoMetaFile *GetMetaFile();
 
 133     double GetArrowSize();
 
 134     void SetSize(double size);
 
 135     void SetSpacing(double sp);
 
 137 //---------------------------------------------------------------------------
 
 139     WXSHAPE_IMP_CALLBACKS(wxPyLineShape, wxLineShape);
 
 142 class wxPyLineShape : public wxPyShape {
 
 144     %addtofunc wxPyLineShape "self._setOORandCallbackInfo(PyLineShape)"
 
 148     void _setCallbackInfo(PyObject* self, PyObject* _class);
 
 150     void AddArrow(int type, int end = ARROW_POSITION_END,
 
 151                   double arrowSize = 10.0, double xOffset = 0.0,
 
 152                   const wxString& name = wxPyEmptyString, wxPseudoMetaFile *mf = NULL,
 
 155     //void AddArrowOrdered(wxArrowHead *arrow, wxList& referenceList, int end);
 
 157         void AddArrowOrdered(wxArrowHead *arrow, PyObject* referenceList, int end) {
 
 158             wxList* list = wxPy_wxListHelper(referenceList, wxT("wxArrowHead"));
 
 159             self->AddArrowOrdered(arrow, *list, end);
 
 163     bool ClearArrow(const wxString& name);
 
 164     void ClearArrowsAtPosition(int position = -1);
 
 165     void DrawArrow(wxDC& dc, wxArrowHead *arrow, double xOffset, bool proportionalOffset);
 
 166     %name(DeleteArrowHeadId)bool DeleteArrowHead(long arrowId);
 
 167     bool DeleteArrowHead(int position, const wxString& name);
 
 168     bool DeleteLineControlPoint();
 
 169     void DrawArrows(wxDC& dc);
 
 170     void DrawRegion(wxDC& dc, wxShapeRegion *region, double x, double y);
 
 171     void EraseRegion(wxDC& dc, wxShapeRegion *region, double x, double y);
 
 172     %name(FindArrowHeadId)wxArrowHead * FindArrowHead(long arrowId);
 
 173     wxArrowHead * FindArrowHead(int position, const wxString& name);
 
 174     void FindLineEndPoints(double *OUTPUT, double *OUTPUT,
 
 175                            double *OUTPUT, double *OUTPUT);
 
 176     int FindLinePosition(double x, double y);
 
 177     double FindMinimumWidth();
 
 178     void FindNth(wxPyShape *image, int *OUTPUT, int *OUTPUT, bool incoming);
 
 179     int GetAttachmentFrom();
 
 180     int GetAttachmentTo();
 
 181     void GetEnds(double *OUTPUT, double *OUTPUT, double *OUTPUT, double *OUTPUT);
 
 182     wxPyShape * GetFrom();
 
 183     void GetLabelPosition(int position, double *OUTPUT, double *OUTPUT);
 
 184     wxRealPoint * GetNextControlPoint(wxPyShape *shape);
 
 187     void InsertLineControlPoint(wxDC* dc);
 
 188     bool IsEnd(wxPyShape *shape);
 
 190     void MakeLineControlPoints(int n);
 
 192     //   inline wxList *GetLineControlPoints() { return m_lineControlPoints; }
 
 194         PyObject* GetLineControlPoints() {
 
 195             wxList* list = self->GetLineControlPoints();
 
 196             return wxPy_ConvertShapeList(list);
 
 200     void SetAttachmentFrom(int fromAttach);
 
 201     void SetAttachments(int fromAttach, int toAttach);
 
 202     void SetAttachmentTo(int toAttach);
 
 203     void SetEnds(double x1, double y1, double x2, double y2);
 
 204     void SetFrom(wxPyShape *object);
 
 205     void SetIgnoreOffsets(bool ignore);
 
 206     void SetSpline(bool spline);
 
 207     void SetTo(wxPyShape *object);
 
 208     void Straighten(wxDC* dc = NULL);
 
 212     void SetAlignmentOrientation(bool isEnd, bool isHoriz);
 
 213     void SetAlignmentType(bool isEnd, int alignType);
 
 214     bool GetAlignmentOrientation(bool isEnd);
 
 215     int GetAlignmentType(bool isEnd);
 
 216     int GetAlignmentStart() const;
 
 217     int GetAlignmentEnd() const;
 
 219     void base_OnDraw(wxDC& dc);
 
 220     void base_OnDrawContents(wxDC& dc);
 
 221     void base_OnDrawBranches(wxDC& dc, bool erase = FALSE);
 
 222     void base_OnMoveLinks(wxDC& dc);
 
 223     void base_OnErase(wxDC& dc);
 
 224     void base_OnEraseContents(wxDC& dc);
 
 225     void base_OnHighlight(wxDC& dc);
 
 226     void base_OnLeftClick(double x, double y, int keys = 0, int attachment = 0);
 
 227     void base_OnLeftDoubleClick(double x, double y, int keys = 0, int attachment = 0);
 
 228     void base_OnRightClick(double x, double y, int keys = 0, int attachment = 0);
 
 229     void base_OnSize(double x, double y);
 
 230     bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = True);
 
 231     void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = True);
 
 232     void base_OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0);
 
 233     void base_OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0);
 
 234     void base_OnEndDragLeft(double x, double y, int keys=0, int attachment = 0);
 
 235     void base_OnDragRight(bool draw, double x, double y, int keys=0, int attachment = 0);
 
 236     void base_OnBeginDragRight(double x, double y, int keys=0, int attachment = 0);
 
 237     void base_OnEndDragRight(double x, double y, int keys=0, int attachment = 0);
 
 238     void base_OnDrawOutline(wxDC& dc, double x, double y, double w, double h);
 
 239     void base_OnDrawControlPoints(wxDC& dc);
 
 240     void base_OnEraseControlPoints(wxDC& dc);
 
 241     void base_OnMoveLink(wxDC& dc, bool moveControlPoints = True);
 
 242     void base_OnSizingDragLeft(wxPyControlPoint* pt, bool draw, double x, double y, int keys=0, int attachment = 0);
 
 243     void base_OnSizingBeginDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
 
 244     void base_OnSizingEndDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
 
 245     void base_OnBeginSize(double w, double h);
 
 246     void base_OnEndSize(double w, double h);
 
 247 //    void base_OnChangeAttachment(int attachment, wxPyLineShape* line, wxList& ordering);
 
 250 //---------------------------------------------------------------------------
 
 252     WXSHAPE_IMP_CALLBACKS(wxPyPolygonShape, wxPolygonShape);
 
 255 class wxPyPolygonShape : public wxPyShape {
 
 257     %addtofunc wxPyPolygonShape "self._setOORandCallbackInfo(PyPolygonShape)"
 
 261     void _setCallbackInfo(PyObject* self, PyObject* _class);
 
 264     // void Create(wxList* points);
 
 266         PyObject* Create(PyObject* points) {
 
 267             wxList* list = wxPy_wxRealPoint_ListHelper(points);
 
 277     void AddPolygonPoint(int pos = 0);
 
 278     void CalculatePolygonCentre();
 
 279     void DeletePolygonPoint(int pos = 0);
 
 281     // wxList* GetPoints();
 
 283         PyObject* GetPoints() {
 
 284             wxList* list = self->GetPoints();
 
 288             wxNode*     node = list->GetFirst();
 
 290             wxPyBeginBlockThreads();
 
 291             pyList = PyList_New(0);
 
 293                 wxObj = node->GetData();
 
 294                 pyObj = wxPyConstructObject(wxObj, wxT("wxRealPoint"), 0);
 
 295                 PyList_Append(pyList, pyObj);
 
 296                 node = node->GetNext();
 
 298             wxPyEndBlockThreads();
 
 302         PyObject* GetOriginalPoints() {
 
 303             wxList* list = self->GetOriginalPoints();
 
 307             wxNode*     node = list->GetFirst();
 
 309             wxPyBeginBlockThreads();
 
 310             pyList = PyList_New(0);
 
 312                 wxObj = node->GetData();
 
 313                 pyObj = wxPyConstructObject(wxObj, wxT("wxRealPoint"), 0);
 
 314                 PyList_Append(pyList, pyObj);
 
 315                 node = node->GetNext();
 
 317             wxPyEndBlockThreads();
 
 322     double GetOriginalWidth() const;
 
 323     double GetOriginalHeight() const;
 
 325     void SetOriginalWidth(double w);
 
 326     void SetOriginalHeight(double h);
 
 328     void UpdateOriginalPoints();
 
 330     void base_OnDraw(wxDC& dc);
 
 331     void base_OnDrawContents(wxDC& dc);
 
 332     void base_OnDrawBranches(wxDC& dc, bool erase = FALSE);
 
 333     void base_OnMoveLinks(wxDC& dc);
 
 334     void base_OnErase(wxDC& dc);
 
 335     void base_OnEraseContents(wxDC& dc);
 
 336     void base_OnHighlight(wxDC& dc);
 
 337     void base_OnLeftClick(double x, double y, int keys = 0, int attachment = 0);
 
 338     void base_OnLeftDoubleClick(double x, double y, int keys = 0, int attachment = 0);
 
 339     void base_OnRightClick(double x, double y, int keys = 0, int attachment = 0);
 
 340     void base_OnSize(double x, double y);
 
 341     bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = True);
 
 342     void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = True);
 
 343     void base_OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0);
 
 344     void base_OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0);
 
 345     void base_OnEndDragLeft(double x, double y, int keys=0, int attachment = 0);
 
 346     void base_OnDragRight(bool draw, double x, double y, int keys=0, int attachment = 0);
 
 347     void base_OnBeginDragRight(double x, double y, int keys=0, int attachment = 0);
 
 348     void base_OnEndDragRight(double x, double y, int keys=0, int attachment = 0);
 
 349     void base_OnDrawOutline(wxDC& dc, double x, double y, double w, double h);
 
 350     void base_OnDrawControlPoints(wxDC& dc);
 
 351     void base_OnEraseControlPoints(wxDC& dc);
 
 352     void base_OnMoveLink(wxDC& dc, bool moveControlPoints = True);
 
 353     void base_OnSizingDragLeft(wxPyControlPoint* pt, bool draw, double x, double y, int keys=0, int attachment = 0);
 
 354     void base_OnSizingBeginDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
 
 355     void base_OnSizingEndDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
 
 356     void base_OnBeginSize(double w, double h);
 
 357     void base_OnEndSize(double w, double h);
 
 358 //    void base_OnChangeAttachment(int attachment, wxPyLineShape* line, wxList& ordering);
 
 360 //---------------------------------------------------------------------------
 
 362     WXSHAPE_IMP_CALLBACKS(wxPyTextShape, wxTextShape);
 
 365 class wxPyTextShape : public wxPyRectangleShape {
 
 367     %addtofunc wxPyTextShape "self._setOORandCallbackInfo(PyTextShape)"
 
 369     wxPyTextShape(double width = 0.0, double height = 0.0);
 
 371     void _setCallbackInfo(PyObject* self, PyObject* _class);
 
 373     void base_OnDelete();
 
 374     void base_OnDraw(wxDC& dc);
 
 375     void base_OnDrawContents(wxDC& dc);
 
 376     void base_OnDrawBranches(wxDC& dc, bool erase = FALSE);
 
 377     void base_OnMoveLinks(wxDC& dc);
 
 378     void base_OnErase(wxDC& dc);
 
 379     void base_OnEraseContents(wxDC& dc);
 
 380     void base_OnHighlight(wxDC& dc);
 
 381     void base_OnLeftClick(double x, double y, int keys = 0, int attachment = 0);
 
 382     void base_OnLeftDoubleClick(double x, double y, int keys = 0, int attachment = 0);
 
 383     void base_OnRightClick(double x, double y, int keys = 0, int attachment = 0);
 
 384     void base_OnSize(double x, double y);
 
 385     bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = True);
 
 386     void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = True);
 
 387     void base_OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0);
 
 388     void base_OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0);
 
 389     void base_OnEndDragLeft(double x, double y, int keys=0, int attachment = 0);
 
 390     void base_OnDragRight(bool draw, double x, double y, int keys=0, int attachment = 0);
 
 391     void base_OnBeginDragRight(double x, double y, int keys=0, int attachment = 0);
 
 392     void base_OnEndDragRight(double x, double y, int keys=0, int attachment = 0);
 
 393     void base_OnDrawOutline(wxDC& dc, double x, double y, double w, double h);
 
 394     void base_OnDrawControlPoints(wxDC& dc);
 
 395     void base_OnEraseControlPoints(wxDC& dc);
 
 396     void base_OnMoveLink(wxDC& dc, bool moveControlPoints = True);
 
 397     void base_OnSizingDragLeft(wxPyControlPoint* pt, bool draw, double x, double y, int keys=0, int attachment = 0);
 
 398     void base_OnSizingBeginDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
 
 399     void base_OnSizingEndDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
 
 400     void base_OnBeginSize(double w, double h);
 
 401     void base_OnEndSize(double w, double h);
 
 402 //    void base_OnChangeAttachment(int attachment, wxPyLineShape* line, wxList& ordering);
 
 405 //---------------------------------------------------------------------------