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 //---------------------------------------------------------------------------
 
  21     oglMETAFLAGS_ATTACHMENTS
 
  24 //---------------------------------------------------------------------------
 
  25 //---------------------------------------------------------------------------
 
  27 class wxPseudoMetaFile : public wxObject {
 
  32     void Draw(wxDC& dc, double xoffset, double yoffset);
 
  34     void WriteAttributes(wxExpr *clause, int whichAngle);
 
  35     void ReadAttributes(wxExpr *clause, int whichAngle);
 
  38     void Copy(wxPseudoMetaFile& copy);
 
  39     void Scale(double sx, double sy);
 
  40     void ScaleTo(double w, double h);
 
  41     void Translate(double x, double y);
 
  42     void Rotate(double x, double y, double theta);
 
  43     bool LoadFromMetaFile(const wxString& filename, double *width, double *height);
 
  44     void GetBounds(double *minX, double *minY, double *maxX, double *maxY);
 
  45     void CalculateSize(wxPyDrawnShape* shape);
 
  47     // ****  fix these...  is it even possible?  these are lists of various GDI opperations (not the objects...)
 
  48     // wxList& GetOutlineColours();
 
  49     // wxList& GetFillColours();
 
  52     void SetRotateable(bool rot);
 
  54     void SetSize(double w, double h);
 
  55     void SetFillBrush(wxBrush* brush);
 
  56     wxBrush* GetFillBrush();
 
  57     void SetOutlinePen(wxPen* pen);
 
  58     wxPen* GetOutlinePen();
 
  59     void SetOutlineOp(int op);
 
  64     void DrawLine(const wxPoint& pt1, const wxPoint& pt2);
 
  65     void DrawRectangle(const wxRect& rect);
 
  66     void DrawRoundedRectangle(const wxRect& rect, double radius);
 
  67     void DrawArc(const wxPoint& centrePt, const wxPoint& startPt, const wxPoint& endPt);
 
  68     void DrawEllipticArc(const wxRect& rect, double startAngle, double endAngle);
 
  69     void DrawEllipse(const wxRect& rect);
 
  70     void DrawPoint(const wxPoint& pt);
 
  71     void DrawText(const wxString& text, const wxPoint& pt);
 
  72     void DrawLines(int PCOUNT, wxPoint* points);
 
  73     void DrawPolygon(int PCOUNT, wxPoint* points, int flags = 0);
 
  74     void DrawSpline(int PCOUNT, wxPoint* points);
 
  75     void SetClippingRect(const wxRect& rect);
 
  76     void DestroyClippingRect();
 
  77     void SetPen(wxPen* pen, bool isOutline = FALSE);
 
  78     void SetBrush(wxBrush* brush, bool isFill = FALSE);
 
  79     void SetFont(wxFont* font);
 
  80     void SetTextColour(const wxColour& colour);
 
  81     void SetBackgroundColour(const wxColour& colour);
 
  82     void SetBackgroundMode(int mode);
 
  86 //---------------------------------------------------------------------------
 
  89 // Using this macro can sometimes provoke an Internal Compiler Error in MSVC
 
  90 // 6, so instead I'l just expand it out by hand...
 
  91 //    WXSHAPE_IMP_CALLBACKS(wxPyRectangleShape, wxRectangleShape);
 
  93     IMP_PYCALLBACK__                (wxPyRectangleShape, wxRectangleShape,  OnDelete);
 
  94     IMP_PYCALLBACK__DC              (wxPyRectangleShape, wxRectangleShape,  OnDraw);
 
  95     IMP_PYCALLBACK__DC              (wxPyRectangleShape, wxRectangleShape,  OnDrawContents);
 
  96     IMP_PYCALLBACK__DCBOOL          (wxPyRectangleShape, wxRectangleShape,  OnDrawBranches);
 
  97     IMP_PYCALLBACK__DC              (wxPyRectangleShape, wxRectangleShape,  OnMoveLinks);
 
  98     IMP_PYCALLBACK__DC              (wxPyRectangleShape, wxRectangleShape,  OnErase);
 
  99     IMP_PYCALLBACK__DC              (wxPyRectangleShape, wxRectangleShape,  OnEraseContents);
 
 100     IMP_PYCALLBACK__DC              (wxPyRectangleShape, wxRectangleShape,  OnHighlight);
 
 101     IMP_PYCALLBACK__2DBL2INT        (wxPyRectangleShape, wxRectangleShape,  OnLeftClick);
 
 102     IMP_PYCALLBACK__2DBL2INT        (wxPyRectangleShape, wxRectangleShape,  OnLeftDoubleClick);
 
 103     IMP_PYCALLBACK__2DBL2INT        (wxPyRectangleShape, wxRectangleShape,  OnRightClick);
 
 104     IMP_PYCALLBACK__2DBL            (wxPyRectangleShape, wxRectangleShape,  OnSize);
 
 105     IMP_PYCALLBACK_BOOL_DC4DBLBOOL  (wxPyRectangleShape, wxRectangleShape,  OnMovePre);
 
 106     IMP_PYCALLBACK__DC4DBLBOOL      (wxPyRectangleShape, wxRectangleShape,  OnMovePost);
 
 107     IMP_PYCALLBACK__BOOL2DBL2INT    (wxPyRectangleShape, wxRectangleShape,  OnDragLeft);
 
 108     IMP_PYCALLBACK__2DBL2INT        (wxPyRectangleShape, wxRectangleShape,  OnBeginDragLeft);
 
 109     IMP_PYCALLBACK__2DBL2INT        (wxPyRectangleShape, wxRectangleShape,  OnEndDragLeft);
 
 110     IMP_PYCALLBACK__BOOL2DBL2INT    (wxPyRectangleShape, wxRectangleShape,  OnDragRight);
 
 111     IMP_PYCALLBACK__2DBL2INT        (wxPyRectangleShape, wxRectangleShape,  OnBeginDragRight);
 
 112     IMP_PYCALLBACK__2DBL2INT        (wxPyRectangleShape, wxRectangleShape,  OnEndDragRight);
 
 113     IMP_PYCALLBACK__DC4DBL          (wxPyRectangleShape, wxRectangleShape,  OnDrawOutline);
 
 114     IMP_PYCALLBACK__DC              (wxPyRectangleShape, wxRectangleShape,  OnDrawControlPoints);
 
 115     IMP_PYCALLBACK__DC              (wxPyRectangleShape, wxRectangleShape,  OnEraseControlPoints);
 
 116     IMP_PYCALLBACK__DCBOOL          (wxPyRectangleShape, wxRectangleShape,  OnMoveLink);
 
 117     IMP_PYCALLBACK__WXCPBOOL2DBL2INT(wxPyRectangleShape, wxRectangleShape,  OnSizingDragLeft);
 
 118     IMP_PYCALLBACK__WXCP2DBL2INT    (wxPyRectangleShape, wxRectangleShape,  OnSizingBeginDragLeft);
 
 119     IMP_PYCALLBACK__WXCP2DBL2INT    (wxPyRectangleShape, wxRectangleShape,  OnSizingEndDragLeft);
 
 120     IMP_PYCALLBACK__2DBL            (wxPyRectangleShape, wxRectangleShape,  OnBeginSize);
 
 121     IMP_PYCALLBACK__2DBL            (wxPyRectangleShape, wxRectangleShape,  OnEndSize)
 
 125 class wxPyRectangleShape : public wxPyShape {
 
 127     %pythonAppend wxPyRectangleShape "self._setOORandCallbackInfo(PyRectangleShape)"
 
 129     wxPyRectangleShape(double width = 0.0, double height = 0.0);
 
 130     void _setCallbackInfo(PyObject* self, PyObject* _class);
 
 132     void SetCornerRadius(double radius);
 
 133     double GetCornerRadius();
 
 135     void base_OnDelete();
 
 136     void base_OnDraw(wxDC& dc);
 
 137     void base_OnDrawContents(wxDC& dc);
 
 138     void base_OnDrawBranches(wxDC& dc, bool erase = FALSE);
 
 139     void base_OnMoveLinks(wxDC& dc);
 
 140     void base_OnErase(wxDC& dc);
 
 141     void base_OnEraseContents(wxDC& dc);
 
 142     void base_OnHighlight(wxDC& dc);
 
 143     void base_OnLeftClick(double x, double y, int keys = 0, int attachment = 0);
 
 144     void base_OnLeftDoubleClick(double x, double y, int keys = 0, int attachment = 0);
 
 145     void base_OnRightClick(double x, double y, int keys = 0, int attachment = 0);
 
 146     void base_OnSize(double x, double y);
 
 147     bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = True);
 
 148     void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = True);
 
 149     void base_OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0);
 
 150     void base_OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0);
 
 151     void base_OnEndDragLeft(double x, double y, int keys=0, int attachment = 0);
 
 152     void base_OnDragRight(bool draw, double x, double y, int keys=0, int attachment = 0);
 
 153     void base_OnBeginDragRight(double x, double y, int keys=0, int attachment = 0);
 
 154     void base_OnEndDragRight(double x, double y, int keys=0, int attachment = 0);
 
 155     void base_OnDrawOutline(wxDC& dc, double x, double y, double w, double h);
 
 156     void base_OnDrawControlPoints(wxDC& dc);
 
 157     void base_OnEraseControlPoints(wxDC& dc);
 
 158     void base_OnMoveLink(wxDC& dc, bool moveControlPoints = True);
 
 159     void base_OnSizingDragLeft(wxPyControlPoint* pt, bool draw, double x, double y, int keys=0, int attachment = 0);
 
 160     void base_OnSizingBeginDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
 
 161     void base_OnSizingEndDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
 
 162     void base_OnBeginSize(double w, double h);
 
 163     void base_OnEndSize(double w, double h);
 
 164 //    void base_OnChangeAttachment(int attachment, wxPyLineShape* line, wxList& ordering);
 
 167 //---------------------------------------------------------------------------
 
 170     WXSHAPE_IMP_CALLBACKS(wxPyControlPoint, wxControlPoint);
 
 173 class wxPyControlPoint : public wxPyRectangleShape {
 
 175     %pythonAppend wxPyControlPoint "self._setOORandCallbackInfo(PyControlPoint)"
 
 177     wxPyControlPoint(wxPyShapeCanvas *the_canvas = NULL,
 
 178                      wxPyShape *object = NULL,
 
 179                      double size = 0.0, double the_xoffset = 0.0,
 
 180                      double the_yoffset = 0.0, int the_type = 0);
 
 182     void _setCallbackInfo(PyObject* self, PyObject* _class);
 
 184     void SetCornerRadius(double radius);
 
 186     void base_OnDelete();
 
 187     void base_OnDraw(wxDC& dc);
 
 188     void base_OnDrawContents(wxDC& dc);
 
 189     void base_OnDrawBranches(wxDC& dc, bool erase = FALSE);
 
 190     void base_OnMoveLinks(wxDC& dc);
 
 191     void base_OnErase(wxDC& dc);
 
 192     void base_OnEraseContents(wxDC& dc);
 
 193     void base_OnHighlight(wxDC& dc);
 
 194     void base_OnLeftClick(double x, double y, int keys = 0, int attachment = 0);
 
 195     void base_OnLeftDoubleClick(double x, double y, int keys = 0, int attachment = 0);
 
 196     void base_OnRightClick(double x, double y, int keys = 0, int attachment = 0);
 
 197     void base_OnSize(double x, double y);
 
 198     bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = True);
 
 199     void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = True);
 
 200     void base_OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0);
 
 201     void base_OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0);
 
 202     void base_OnEndDragLeft(double x, double y, int keys=0, int attachment = 0);
 
 203     void base_OnDragRight(bool draw, double x, double y, int keys=0, int attachment = 0);
 
 204     void base_OnBeginDragRight(double x, double y, int keys=0, int attachment = 0);
 
 205     void base_OnEndDragRight(double x, double y, int keys=0, int attachment = 0);
 
 206     void base_OnDrawOutline(wxDC& dc, double x, double y, double w, double h);
 
 207     void base_OnDrawControlPoints(wxDC& dc);
 
 208     void base_OnEraseControlPoints(wxDC& dc);
 
 209     void base_OnMoveLink(wxDC& dc, bool moveControlPoints = True);
 
 210     void base_OnSizingDragLeft(wxPyControlPoint* pt, bool draw, double x, double y, int keys=0, int attachment = 0);
 
 211     void base_OnSizingBeginDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
 
 212     void base_OnSizingEndDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
 
 213     void base_OnBeginSize(double w, double h);
 
 214     void base_OnEndSize(double w, double h);
 
 215 //    void base_OnChangeAttachment(int attachment, wxPyLineShape* line, wxList& ordering);
 
 218 //---------------------------------------------------------------------------
 
 220     WXSHAPE_IMP_CALLBACKS(wxPyBitmapShape, wxBitmapShape);
 
 224 class wxPyBitmapShape : public wxPyRectangleShape {
 
 226     %pythonAppend wxPyBitmapShape "self._setOORandCallbackInfo(PyBitmapShape)"
 
 230     void _setCallbackInfo(PyObject* self, PyObject* _class);
 
 232     wxBitmap& GetBitmap();
 
 233     wxString GetFilename();
 
 234     void SetBitmap(const wxBitmap& bitmap);
 
 235     void SetFilename(const wxString& filename);
 
 237     void base_OnDelete();
 
 238     void base_OnDraw(wxDC& dc);
 
 239     void base_OnDrawContents(wxDC& dc);
 
 240     void base_OnDrawBranches(wxDC& dc, bool erase = FALSE);
 
 241     void base_OnMoveLinks(wxDC& dc);
 
 242     void base_OnErase(wxDC& dc);
 
 243     void base_OnEraseContents(wxDC& dc);
 
 244     void base_OnHighlight(wxDC& dc);
 
 245     void base_OnLeftClick(double x, double y, int keys = 0, int attachment = 0);
 
 246     void base_OnLeftDoubleClick(double x, double y, int keys = 0, int attachment = 0);
 
 247     void base_OnRightClick(double x, double y, int keys = 0, int attachment = 0);
 
 248     void base_OnSize(double x, double y);
 
 249     bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = True);
 
 250     void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = True);
 
 251     void base_OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0);
 
 252     void base_OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0);
 
 253     void base_OnEndDragLeft(double x, double y, int keys=0, int attachment = 0);
 
 254     void base_OnDragRight(bool draw, double x, double y, int keys=0, int attachment = 0);
 
 255     void base_OnBeginDragRight(double x, double y, int keys=0, int attachment = 0);
 
 256     void base_OnEndDragRight(double x, double y, int keys=0, int attachment = 0);
 
 257     void base_OnDrawOutline(wxDC& dc, double x, double y, double w, double h);
 
 258     void base_OnDrawControlPoints(wxDC& dc);
 
 259     void base_OnEraseControlPoints(wxDC& dc);
 
 260     void base_OnMoveLink(wxDC& dc, bool moveControlPoints = True);
 
 261     void base_OnSizingDragLeft(wxPyControlPoint* pt, bool draw, double x, double y, int keys=0, int attachment = 0);
 
 262     void base_OnSizingBeginDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
 
 263     void base_OnSizingEndDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
 
 264     void base_OnBeginSize(double w, double h);
 
 265     void base_OnEndSize(double w, double h);
 
 266 //    void base_OnChangeAttachment(int attachment, wxPyLineShape* line, wxList& ordering);
 
 269 //---------------------------------------------------------------------------
 
 271     WXSHAPE_IMP_CALLBACKS(wxPyDrawnShape, wxDrawnShape);
 
 274 class wxPyDrawnShape : public wxPyRectangleShape {
 
 276     %pythonAppend wxPyDrawnShape "self._setOORandCallbackInfo(PyDrawnShape)"
 
 280     void _setCallbackInfo(PyObject* self, PyObject* _class);
 
 282     void CalculateSize();
 
 283     void DestroyClippingRect();
 
 284     void DrawArc(const wxPoint& centrePoint, const wxPoint& startPoint,
 
 285                  const wxPoint& endPoint);
 
 286     void DrawAtAngle(int angle);
 
 287     void DrawEllipticArc(const wxRect& rect, double startAngle, double endAngle);
 
 288     void DrawLine(const wxPoint& point1, const wxPoint& point2);
 
 289     void DrawLines(int PCOUNT, wxPoint* points);
 
 290     void DrawPoint(const wxPoint& point);
 
 291     void DrawPolygon(int PCOUNT, wxPoint* points, int flags = 0);
 
 292     void DrawRectangle(const wxRect& rect);
 
 293     void DrawRoundedRectangle(const wxRect& rect, double radius);
 
 294     void DrawSpline(int PCOUNT, wxPoint* points);
 
 295     void DrawText(const wxString& text, const wxPoint& point);
 
 298     wxPseudoMetaFile& GetMetaFile();
 
 300     double GetRotation();
 
 301     bool LoadFromMetaFile(const wxString& filename);
 
 302     void Rotate(double x, double y, double theta);
 
 303     void SetClippingRect(const wxRect& rect);
 
 304     void SetDrawnBackgroundColour(const wxColour& colour);
 
 305     void SetDrawnBackgroundMode(int mode);
 
 306     void SetDrawnBrush(wxBrush* pen, bool isOutline = FALSE);
 
 307     void SetDrawnFont(wxFont* font);
 
 308     void SetDrawnPen(wxPen* pen, bool isOutline = FALSE);
 
 309     void SetDrawnTextColour(const wxColour& colour);
 
 310     void Scale(double sx, double sy);
 
 311     void SetSaveToFile(bool save);
 
 312     void Translate(double x, double y);
 
 315     void base_OnDelete();
 
 316     void base_OnDraw(wxDC& dc);
 
 317     void base_OnDrawContents(wxDC& dc);
 
 318     void base_OnDrawBranches(wxDC& dc, bool erase = FALSE);
 
 319     void base_OnMoveLinks(wxDC& dc);
 
 320     void base_OnErase(wxDC& dc);
 
 321     void base_OnEraseContents(wxDC& dc);
 
 322     void base_OnHighlight(wxDC& dc);
 
 323     void base_OnLeftClick(double x, double y, int keys = 0, int attachment = 0);
 
 324     void base_OnLeftDoubleClick(double x, double y, int keys = 0, int attachment = 0);
 
 325     void base_OnRightClick(double x, double y, int keys = 0, int attachment = 0);
 
 326     void base_OnSize(double x, double y);
 
 327     bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = True);
 
 328     void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = True);
 
 329     void base_OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0);
 
 330     void base_OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0);
 
 331     void base_OnEndDragLeft(double x, double y, int keys=0, int attachment = 0);
 
 332     void base_OnDragRight(bool draw, double x, double y, int keys=0, int attachment = 0);
 
 333     void base_OnBeginDragRight(double x, double y, int keys=0, int attachment = 0);
 
 334     void base_OnEndDragRight(double x, double y, int keys=0, int attachment = 0);
 
 335     void base_OnDrawOutline(wxDC& dc, double x, double y, double w, double h);
 
 336     void base_OnDrawControlPoints(wxDC& dc);
 
 337     void base_OnEraseControlPoints(wxDC& dc);
 
 338     void base_OnMoveLink(wxDC& dc, bool moveControlPoints = True);
 
 339     void base_OnSizingDragLeft(wxPyControlPoint* pt, bool draw, double x, double y, int keys=0, int attachment = 0);
 
 340     void base_OnSizingBeginDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
 
 341     void base_OnSizingEndDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
 
 342     void base_OnBeginSize(double w, double h);
 
 343     void base_OnEndSize(double w, double h);
 
 344 //    void base_OnChangeAttachment(int attachment, wxPyLineShape* line, wxList& ordering);
 
 349 //---------------------------------------------------------------------------
 
 351 class wxOGLConstraint : public wxObject {
 
 353     //wxOGLConstraint(int type, wxPyShape *constraining, wxList& constrained);
 
 355         wxOGLConstraint(int type, wxPyShape *constraining, PyObject* constrained) {
 
 356             wxList* list = wxPy_wxListHelper(constrained, wxT("wxPyShape"));
 
 357             wxOGLConstraint* rv = new wxOGLConstraint(type, constraining, *list);
 
 363     //~wxOGLConstraint();  The wxCompositShape takes ownership of the constraint
 
 366     void SetSpacing(double x, double y);
 
 367     bool Equals(double a, double b);
 
 373 //---------------------------------------------------------------------------
 
 376     WXSHAPE_IMP_CALLBACKS(wxPyCompositeShape, wxCompositeShape);
 
 379 class wxPyCompositeShape : public wxPyRectangleShape {
 
 381     %pythonAppend wxPyCompositeShape "self._setOORandCallbackInfo(PyCompositeShape)"
 
 383     wxPyCompositeShape();
 
 385     void _setCallbackInfo(PyObject* self, PyObject* _class);
 
 387     void AddChild(wxPyShape *child, wxPyShape *addAfter = NULL);
 
 388     wxOGLConstraint * AddConstraint(wxOGLConstraint *constraint);
 
 391     //wxOGLConstraint * AddConstraint(int type,
 
 392     //                                wxPyShape *constraining,
 
 393     //                                wxList& constrained);
 
 395         wxOGLConstraint * AddConstrainedShapes(int type, wxPyShape *constraining,
 
 396                                                PyObject* constrained) {
 
 397             wxList* list = wxPy_wxListHelper(constrained, wxT("wxPyShape"));
 
 398             wxOGLConstraint* rv = self->AddConstraint(type, constraining, *list);
 
 404     %name(AddSimpleConstraint)wxOGLConstraint* AddConstraint(int type,
 
 405                                                              wxPyShape *constraining,
 
 406                                                              wxPyShape *constrained);
 
 408     void CalculateSize();
 
 409     bool ContainsDivision(wxPyDivisionShape *division);
 
 410     void DeleteConstraint(wxOGLConstraint *constraint);
 
 411     void DeleteConstraintsInvolvingChild(wxPyShape *child);
 
 413     // ****  Needs an output typemap
 
 414     //wxOGLConstraint * FindConstraint(long id, wxPyCompositeShape **actualComposite);
 
 416     wxPyShape * FindContainerImage();
 
 418     // wxList& GetConstraints();
 
 419     // wxList& GetDivisions();
 
 421         PyObject* GetConstraints() {
 
 422             wxList& list = self->GetConstraints();
 
 423             return wxPy_ConvertList(&list);
 
 426         PyObject* GetDivisions() {
 
 427             wxList& list = self->GetDivisions();
 
 428             return wxPy_ConvertShapeList(&list);
 
 432     void MakeContainer();
 
 434     void RemoveChild(wxPyShape *child);
 
 437     void base_OnDelete();
 
 438     void base_OnDraw(wxDC& dc);
 
 439     void base_OnDrawContents(wxDC& dc);
 
 440     void base_OnDrawBranches(wxDC& dc, bool erase = FALSE);
 
 441     void base_OnMoveLinks(wxDC& dc);
 
 442     void base_OnErase(wxDC& dc);
 
 443     void base_OnEraseContents(wxDC& dc);
 
 444     void base_OnHighlight(wxDC& dc);
 
 445     void base_OnLeftClick(double x, double y, int keys = 0, int attachment = 0);
 
 446     void base_OnLeftDoubleClick(double x, double y, int keys = 0, int attachment = 0);
 
 447     void base_OnRightClick(double x, double y, int keys = 0, int attachment = 0);
 
 448     void base_OnSize(double x, double y);
 
 449     bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = True);
 
 450     void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = True);
 
 451     void base_OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0);
 
 452     void base_OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0);
 
 453     void base_OnEndDragLeft(double x, double y, int keys=0, int attachment = 0);
 
 454     void base_OnDragRight(bool draw, double x, double y, int keys=0, int attachment = 0);
 
 455     void base_OnBeginDragRight(double x, double y, int keys=0, int attachment = 0);
 
 456     void base_OnEndDragRight(double x, double y, int keys=0, int attachment = 0);
 
 457     void base_OnDrawOutline(wxDC& dc, double x, double y, double w, double h);
 
 458     void base_OnDrawControlPoints(wxDC& dc);
 
 459     void base_OnEraseControlPoints(wxDC& dc);
 
 460     void base_OnMoveLink(wxDC& dc, bool moveControlPoints = True);
 
 461     void base_OnSizingDragLeft(wxPyControlPoint* pt, bool draw, double x, double y, int keys=0, int attachment = 0);
 
 462     void base_OnSizingBeginDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
 
 463     void base_OnSizingEndDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
 
 464     void base_OnBeginSize(double w, double h);
 
 465     void base_OnEndSize(double w, double h);
 
 466 //    void base_OnChangeAttachment(int attachment, wxPyLineShape* line, wxList& ordering);
 
 471 //---------------------------------------------------------------------------
 
 474     WXSHAPE_IMP_CALLBACKS(wxPyDividedShape, wxDividedShape);
 
 477 class wxPyDividedShape : public wxPyRectangleShape {
 
 479     %pythonAppend wxPyDividedShape "self._setOORandCallbackInfo(PyDividedShape)"
 
 481     wxPyDividedShape(double width = 0.0, double height = 0.0);
 
 483     void _setCallbackInfo(PyObject* self, PyObject* _class);
 
 486     void SetRegionSizes();
 
 488     void base_OnDelete();
 
 489     void base_OnDraw(wxDC& dc);
 
 490     void base_OnDrawContents(wxDC& dc);
 
 491     void base_OnDrawBranches(wxDC& dc, bool erase = FALSE);
 
 492     void base_OnMoveLinks(wxDC& dc);
 
 493     void base_OnErase(wxDC& dc);
 
 494     void base_OnEraseContents(wxDC& dc);
 
 495     void base_OnHighlight(wxDC& dc);
 
 496     void base_OnLeftClick(double x, double y, int keys = 0, int attachment = 0);
 
 497     void base_OnLeftDoubleClick(double x, double y, int keys = 0, int attachment = 0);
 
 498     void base_OnRightClick(double x, double y, int keys = 0, int attachment = 0);
 
 499     void base_OnSize(double x, double y);
 
 500     bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = True);
 
 501     void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = True);
 
 502     void base_OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0);
 
 503     void base_OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0);
 
 504     void base_OnEndDragLeft(double x, double y, int keys=0, int attachment = 0);
 
 505     void base_OnDragRight(bool draw, double x, double y, int keys=0, int attachment = 0);
 
 506     void base_OnBeginDragRight(double x, double y, int keys=0, int attachment = 0);
 
 507     void base_OnEndDragRight(double x, double y, int keys=0, int attachment = 0);
 
 508     void base_OnDrawOutline(wxDC& dc, double x, double y, double w, double h);
 
 509     void base_OnDrawControlPoints(wxDC& dc);
 
 510     void base_OnEraseControlPoints(wxDC& dc);
 
 511     void base_OnMoveLink(wxDC& dc, bool moveControlPoints = True);
 
 512     void base_OnSizingDragLeft(wxPyControlPoint* pt, bool draw, double x, double y, int keys=0, int attachment = 0);
 
 513     void base_OnSizingBeginDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
 
 514     void base_OnSizingEndDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
 
 515     void base_OnBeginSize(double w, double h);
 
 516     void base_OnEndSize(double w, double h);
 
 517 //    void base_OnChangeAttachment(int attachment, wxPyLineShape* line, wxList& ordering);
 
 522 //---------------------------------------------------------------------------
 
 524     WXSHAPE_IMP_CALLBACKS(wxPyDivisionShape, wxDivisionShape);
 
 527 class wxPyDivisionShape : public wxPyCompositeShape {
 
 529     %pythonAppend wxPyDivisionShape "self._setOORandCallbackInfo(PyDivisionShape)"
 
 533     void _setCallbackInfo(PyObject* self, PyObject* _class);
 
 535     void AdjustBottom(double bottom, bool test);
 
 536     void AdjustLeft(double left, bool test);
 
 537     void AdjustRight(double right, bool test);
 
 538     void AdjustTop(double top, bool test);
 
 539     void Divide(int direction);
 
 540     void EditEdge(int side);
 
 541     wxPyDivisionShape * GetBottomSide();
 
 543     wxPyDivisionShape * GetLeftSide();
 
 544     wxString GetLeftSideColour();
 
 545     wxPen * GetLeftSidePen();
 
 546     wxPyDivisionShape * GetRightSide();
 
 547     wxPyDivisionShape * GetTopSide();
 
 548     wxPen * GetTopSidePen();
 
 549     void ResizeAdjoining(int side, double newPos, bool test);
 
 550     void PopupMenu(double x, double y);
 
 551     void SetBottomSide(wxPyDivisionShape *shape);
 
 552     void SetHandleSide(int side);
 
 553     void SetLeftSide(wxPyDivisionShape *shape);
 
 554     void SetLeftSideColour(const wxString& colour);
 
 555     void SetLeftSidePen(wxPen *pen);
 
 556     void SetRightSide(wxPyDivisionShape *shape);
 
 557     void SetTopSide(wxPyDivisionShape *shape);
 
 558     void SetTopSideColour(const wxString& colour);
 
 559     void SetTopSidePen(wxPen *pen);
 
 563     void base_OnDelete();
 
 564     void base_OnDraw(wxDC& dc);
 
 565     void base_OnDrawContents(wxDC& dc);
 
 566     void base_OnDrawBranches(wxDC& dc, bool erase = FALSE);
 
 567     void base_OnMoveLinks(wxDC& dc);
 
 568     void base_OnErase(wxDC& dc);
 
 569     void base_OnEraseContents(wxDC& dc);
 
 570     void base_OnHighlight(wxDC& dc);
 
 571     void base_OnLeftClick(double x, double y, int keys = 0, int attachment = 0);
 
 572     void base_OnLeftDoubleClick(double x, double y, int keys = 0, int attachment = 0);
 
 573     void base_OnRightClick(double x, double y, int keys = 0, int attachment = 0);
 
 574     void base_OnSize(double x, double y);
 
 575     bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = True);
 
 576     void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = True);
 
 577     void base_OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0);
 
 578     void base_OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0);
 
 579     void base_OnEndDragLeft(double x, double y, int keys=0, int attachment = 0);
 
 580     void base_OnDragRight(bool draw, double x, double y, int keys=0, int attachment = 0);
 
 581     void base_OnBeginDragRight(double x, double y, int keys=0, int attachment = 0);
 
 582     void base_OnEndDragRight(double x, double y, int keys=0, int attachment = 0);
 
 583     void base_OnDrawOutline(wxDC& dc, double x, double y, double w, double h);
 
 584     void base_OnDrawControlPoints(wxDC& dc);
 
 585     void base_OnEraseControlPoints(wxDC& dc);
 
 586     void base_OnMoveLink(wxDC& dc, bool moveControlPoints = True);
 
 587     void base_OnSizingDragLeft(wxPyControlPoint* pt, bool draw, double x, double y, int keys=0, int attachment = 0);
 
 588     void base_OnSizingBeginDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
 
 589     void base_OnSizingEndDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
 
 590     void base_OnBeginSize(double w, double h);
 
 591     void base_OnEndSize(double w, double h);
 
 592 //    void base_OnChangeAttachment(int attachment, wxPyLineShape* line, wxList& ordering);
 
 598 //---------------------------------------------------------------------------