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 /////////////////////////////////////////////////////////////////////////////
 
  18 #include "oglhelpers.h"
 
  21 //---------------------------------------------------------------------------
 
  24 %include my_typemaps.i
 
  37 %pragma(python) code = "import wx"
 
  39 //---------------------------------------------------------------------------
 
  40 //---------------------------------------------------------------------------
 
  41 //---------------------------------------------------------------------------
 
  43 class wxPseudoMetaFile : public wxObject {
 
  48     void Draw(wxDC& dc, double xoffset, double yoffset);
 
  50     void WriteAttributes(wxExpr *clause, int whichAngle);
 
  51     void ReadAttributes(wxExpr *clause, int whichAngle);
 
  53     void Copy(wxPseudoMetaFile& copy);
 
  54     void Scale(double sx, double sy);
 
  55     void ScaleTo(double w, double h);
 
  56     void Translate(double x, double y);
 
  57     void Rotate(double x, double y, double theta);
 
  58     bool LoadFromMetaFile(char* filename, double *width, double *height);
 
  59     void GetBounds(double *minX, double *minY, double *maxX, double *maxY);
 
  60     void CalculateSize(wxDrawnShape* shape);
 
  62     // ****  fix these...  is it even possible?  these are lists of various GDI opperations (not the objects...)
 
  63     // wxList& GetOutlineColours();
 
  64     // wxList& GetFillColours();
 
  67     void SetRotateable(bool rot);
 
  69     void SetSize(double w, double h);
 
  70     void SetFillBrush(wxBrush* brush);
 
  71     wxBrush* GetFillBrush();
 
  72     void SetOutlinePen(wxPen* pen);
 
  73     wxPen* GetOutlinePen();
 
  74     void SetOutlineOp(int op);
 
  79     void DrawLine(const wxPoint& pt1, const wxPoint& pt2);
 
  80     void DrawRectangle(const wxRect& rect);
 
  81     void DrawRoundedRectangle(const wxRect& rect, double radius);
 
  82     void DrawArc(const wxPoint& centrePt, const wxPoint& startPt, const wxPoint& endPt);
 
  83     void DrawEllipticArc(const wxRect& rect, double startAngle, double endAngle);
 
  84     void DrawEllipse(const wxRect& rect);
 
  85     void DrawPoint(const wxPoint& pt);
 
  86     void DrawText(const wxString& text, const wxPoint& pt);
 
  87     void DrawLines(int PCOUNT, wxPoint* points);
 
  88     void DrawPolygon(int PCOUNT, wxPoint* points, int flags = 0);
 
  89     void DrawSpline(int PCOUNT, wxPoint* points);
 
  90     void SetClippingRect(const wxRect& rect);
 
  91     void DestroyClippingRect();
 
  92     void SetPen(wxPen* pen, bool isOutline = FALSE);
 
  93     void SetBrush(wxBrush* brush, bool isFill = FALSE);
 
  94     void SetFont(wxFont* font);
 
  95     void SetTextColour(const wxColour& colour);
 
  96     void SetBackgroundColour(const wxColour& colour);
 
  97     void SetBackgroundMode(int mode);
 
 101 //---------------------------------------------------------------------------
 
 104     WXSHAPE_IMP_CALLBACKS(wxPyRectangleShape, wxRectangleShape);
 
 107 class wxPyRectangleShape : public wxPyShape {
 
 109     wxPyRectangleShape(double width = 0.0, double height = 0.0);
 
 111     void _setCallbackInfo(PyObject* self, PyObject* _class);
 
 112     %pragma(python) addtomethod = "__init__:self._setCallbackInfo(self, wxPyRectangleShape)"
 
 114     void SetCornerRadius(double radius);
 
 116     void base_OnDelete();
 
 117     void base_OnDraw(wxDC& dc);
 
 118     void base_OnDrawContents(wxDC& dc);
 
 119     void base_OnDrawBranches(wxDC& dc, bool erase = FALSE);
 
 120     void base_OnMoveLinks(wxDC& dc);
 
 121     void base_OnErase(wxDC& dc);
 
 122     void base_OnEraseContents(wxDC& dc);
 
 123     void base_OnHighlight(wxDC& dc);
 
 124     void base_OnLeftClick(double x, double y, int keys = 0, int attachment = 0);
 
 125     void base_OnLeftDoubleClick(double x, double y, int keys = 0, int attachment = 0);
 
 126     void base_OnRightClick(double x, double y, int keys = 0, int attachment = 0);
 
 127     void base_OnSize(double x, double y);
 
 128     bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
 
 129     void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
 
 130     void base_OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0);
 
 131     void base_OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0);
 
 132     void base_OnEndDragLeft(double x, double y, int keys=0, int attachment = 0);
 
 133     void base_OnDragRight(bool draw, double x, double y, int keys=0, int attachment = 0);
 
 134     void base_OnBeginDragRight(double x, double y, int keys=0, int attachment = 0);
 
 135     void base_OnEndDragRight(double x, double y, int keys=0, int attachment = 0);
 
 136     void base_OnDrawOutline(wxDC& dc, double x, double y, double w, double h);
 
 137     void base_OnDrawControlPoints(wxDC& dc);
 
 138     void base_OnEraseControlPoints(wxDC& dc);
 
 139     void base_OnMoveLink(wxDC& dc, bool moveControlPoints = TRUE);
 
 140     void base_OnSizingDragLeft(wxPyControlPoint* pt, bool draw, double x, double y, int keys=0, int attachment = 0);
 
 141     void base_OnSizingBeginDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
 
 142     void base_OnSizingEndDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
 
 143     void base_OnBeginSize(double w, double h);
 
 144     void base_OnEndSize(double w, double h);
 
 145 //    void base_OnChangeAttachment(int attachment, wxPyLineShape* line, wxList& ordering);
 
 148 //---------------------------------------------------------------------------
 
 151     WXSHAPE_IMP_CALLBACKS(wxPyControlPoint, wxControlPoint);
 
 154 class wxPyControlPoint : public wxPyRectangleShape {
 
 156     wxPyControlPoint(wxPyShapeCanvas *the_canvas = NULL,
 
 157                      wxPyShape *object = NULL,
 
 158                      double size = 0.0, double the_xoffset = 0.0,
 
 159                      double the_yoffset = 0.0, int the_type = 0);
 
 161     void _setCallbackInfo(PyObject* self, PyObject* _class);
 
 162     %pragma(python) addtomethod = "__init__:self._setCallbackInfo(self, wxPyControlPoint)"
 
 164     void SetCornerRadius(double radius);
 
 166     void base_OnDelete();
 
 167     void base_OnDraw(wxDC& dc);
 
 168     void base_OnDrawContents(wxDC& dc);
 
 169     void base_OnDrawBranches(wxDC& dc, bool erase = FALSE);
 
 170     void base_OnMoveLinks(wxDC& dc);
 
 171     void base_OnErase(wxDC& dc);
 
 172     void base_OnEraseContents(wxDC& dc);
 
 173     void base_OnHighlight(wxDC& dc);
 
 174     void base_OnLeftClick(double x, double y, int keys = 0, int attachment = 0);
 
 175     void base_OnLeftDoubleClick(double x, double y, int keys = 0, int attachment = 0);
 
 176     void base_OnRightClick(double x, double y, int keys = 0, int attachment = 0);
 
 177     void base_OnSize(double x, double y);
 
 178     bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
 
 179     void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
 
 180     void base_OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0);
 
 181     void base_OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0);
 
 182     void base_OnEndDragLeft(double x, double y, int keys=0, int attachment = 0);
 
 183     void base_OnDragRight(bool draw, double x, double y, int keys=0, int attachment = 0);
 
 184     void base_OnBeginDragRight(double x, double y, int keys=0, int attachment = 0);
 
 185     void base_OnEndDragRight(double x, double y, int keys=0, int attachment = 0);
 
 186     void base_OnDrawOutline(wxDC& dc, double x, double y, double w, double h);
 
 187     void base_OnDrawControlPoints(wxDC& dc);
 
 188     void base_OnEraseControlPoints(wxDC& dc);
 
 189     void base_OnMoveLink(wxDC& dc, bool moveControlPoints = TRUE);
 
 190     void base_OnSizingDragLeft(wxPyControlPoint* pt, bool draw, double x, double y, int keys=0, int attachment = 0);
 
 191     void base_OnSizingBeginDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
 
 192     void base_OnSizingEndDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
 
 193     void base_OnBeginSize(double w, double h);
 
 194     void base_OnEndSize(double w, double h);
 
 195 //    void base_OnChangeAttachment(int attachment, wxPyLineShape* line, wxList& ordering);
 
 198 //---------------------------------------------------------------------------
 
 200     WXSHAPE_IMP_CALLBACKS(wxPyBitmapShape, wxBitmapShape);
 
 204 class wxPyBitmapShape : public wxPyRectangleShape {
 
 208     void _setCallbackInfo(PyObject* self, PyObject* _class);
 
 209     %pragma(python) addtomethod = "__init__:self._setCallbackInfo(self, wxPyBitmapShape)"
 
 211     wxBitmap& GetBitmap();
 
 212     wxString GetFilename();
 
 213     void SetBitmap(const wxBitmap& bitmap);
 
 214     void SetFilename(const wxString& filename);
 
 216     void base_OnDelete();
 
 217     void base_OnDraw(wxDC& dc);
 
 218     void base_OnDrawContents(wxDC& dc);
 
 219     void base_OnDrawBranches(wxDC& dc, bool erase = FALSE);
 
 220     void base_OnMoveLinks(wxDC& dc);
 
 221     void base_OnErase(wxDC& dc);
 
 222     void base_OnEraseContents(wxDC& dc);
 
 223     void base_OnHighlight(wxDC& dc);
 
 224     void base_OnLeftClick(double x, double y, int keys = 0, int attachment = 0);
 
 225     void base_OnLeftDoubleClick(double x, double y, int keys = 0, int attachment = 0);
 
 226     void base_OnRightClick(double x, double y, int keys = 0, int attachment = 0);
 
 227     void base_OnSize(double x, double y);
 
 228     bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
 
 229     void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
 
 230     void base_OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0);
 
 231     void base_OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0);
 
 232     void base_OnEndDragLeft(double x, double y, int keys=0, int attachment = 0);
 
 233     void base_OnDragRight(bool draw, double x, double y, int keys=0, int attachment = 0);
 
 234     void base_OnBeginDragRight(double x, double y, int keys=0, int attachment = 0);
 
 235     void base_OnEndDragRight(double x, double y, int keys=0, int attachment = 0);
 
 236     void base_OnDrawOutline(wxDC& dc, double x, double y, double w, double h);
 
 237     void base_OnDrawControlPoints(wxDC& dc);
 
 238     void base_OnEraseControlPoints(wxDC& dc);
 
 239     void base_OnMoveLink(wxDC& dc, bool moveControlPoints = TRUE);
 
 240     void base_OnSizingDragLeft(wxPyControlPoint* pt, bool draw, double x, double y, int keys=0, int attachment = 0);
 
 241     void base_OnSizingBeginDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
 
 242     void base_OnSizingEndDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
 
 243     void base_OnBeginSize(double w, double h);
 
 244     void base_OnEndSize(double w, double h);
 
 245 //    void base_OnChangeAttachment(int attachment, wxPyLineShape* line, wxList& ordering);
 
 248 //---------------------------------------------------------------------------
 
 250     WXSHAPE_IMP_CALLBACKS(wxPyDrawnShape, wxDrawnShape);
 
 253 class wxPyDrawnShape : public wxPyRectangleShape {
 
 257     void _setCallbackInfo(PyObject* self, PyObject* _class);
 
 258     %pragma(python) addtomethod = "__init__:self._setCallbackInfo(self, wxPyDrawnShape)"
 
 260     void CalculateSize();
 
 261     void DestroyClippingRect();
 
 262     void DrawArc(const wxPoint& centrePoint, const wxPoint& startPoint,
 
 263                  const wxPoint& endPoint);
 
 264     void DrawAtAngle(int angle);
 
 265     void DrawEllipticArc(const wxRect& rect, double startAngle, double endAngle);
 
 266     void DrawLine(const wxPoint& point1, const wxPoint& point2);
 
 267     void DrawLines(int PCOUNT, wxPoint* points);
 
 268     void DrawPoint(const wxPoint& point);
 
 269     void DrawPolygon(int PCOUNT, wxPoint* points, int flags = 0);
 
 270     void DrawRectangle(const wxRect& rect);
 
 271     void DrawRoundedRectangle(const wxRect& rect, double radius);
 
 272     void DrawSpline(int PCOUNT, wxPoint* points);
 
 273     void DrawText(const wxString& text, const wxPoint& point);
 
 276     wxPseudoMetaFile& GetMetaFile();
 
 278     double GetRotation();
 
 279     bool LoadFromMetaFile(char * filename);
 
 280     void Rotate(double x, double y, double theta);
 
 281     void SetClippingRect(const wxRect& rect);
 
 282     void SetDrawnBackgroundColour(const wxColour& colour);
 
 283     void SetDrawnBackgroundMode(int mode);
 
 284     void SetDrawnBrush(wxBrush* pen, bool isOutline = FALSE);
 
 285     void SetDrawnFont(wxFont* font);
 
 286     void SetDrawnPen(wxPen* pen, bool isOutline = FALSE);
 
 287     void SetDrawnTextColour(const wxColour& colour);
 
 288     void Scale(double sx, double sy);
 
 289     void SetSaveToFile(bool save);
 
 290     void Translate(double x, double y);
 
 293     void base_OnDelete();
 
 294     void base_OnDraw(wxDC& dc);
 
 295     void base_OnDrawContents(wxDC& dc);
 
 296     void base_OnDrawBranches(wxDC& dc, bool erase = FALSE);
 
 297     void base_OnMoveLinks(wxDC& dc);
 
 298     void base_OnErase(wxDC& dc);
 
 299     void base_OnEraseContents(wxDC& dc);
 
 300     void base_OnHighlight(wxDC& dc);
 
 301     void base_OnLeftClick(double x, double y, int keys = 0, int attachment = 0);
 
 302     void base_OnLeftDoubleClick(double x, double y, int keys = 0, int attachment = 0);
 
 303     void base_OnRightClick(double x, double y, int keys = 0, int attachment = 0);
 
 304     void base_OnSize(double x, double y);
 
 305     bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
 
 306     void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
 
 307     void base_OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0);
 
 308     void base_OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0);
 
 309     void base_OnEndDragLeft(double x, double y, int keys=0, int attachment = 0);
 
 310     void base_OnDragRight(bool draw, double x, double y, int keys=0, int attachment = 0);
 
 311     void base_OnBeginDragRight(double x, double y, int keys=0, int attachment = 0);
 
 312     void base_OnEndDragRight(double x, double y, int keys=0, int attachment = 0);
 
 313     void base_OnDrawOutline(wxDC& dc, double x, double y, double w, double h);
 
 314     void base_OnDrawControlPoints(wxDC& dc);
 
 315     void base_OnEraseControlPoints(wxDC& dc);
 
 316     void base_OnMoveLink(wxDC& dc, bool moveControlPoints = TRUE);
 
 317     void base_OnSizingDragLeft(wxPyControlPoint* pt, bool draw, double x, double y, int keys=0, int attachment = 0);
 
 318     void base_OnSizingBeginDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
 
 319     void base_OnSizingEndDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
 
 320     void base_OnBeginSize(double w, double h);
 
 321     void base_OnEndSize(double w, double h);
 
 322 //    void base_OnChangeAttachment(int attachment, wxPyLineShape* line, wxList& ordering);
 
 327 //---------------------------------------------------------------------------
 
 329 class wxOGLConstraint : public wxObject {
 
 331     //wxOGLConstraint(int type, wxPyShape *constraining, wxList& constrained);
 
 333         wxOGLConstraint(int type, wxPyShape *constraining, PyObject* constrained) {
 
 334             wxList* list = wxPy_wxListHelper(constrained, "_wxPyShape_p");
 
 335             wxOGLConstraint* rv = new wxOGLConstraint(type, constraining, *list);
 
 341     //~wxOGLConstraint();  The wxCompositShape takes ownership of the constraint
 
 344     void SetSpacing(double x, double y);
 
 345     bool Equals(double a, double b);
 
 351 //---------------------------------------------------------------------------
 
 354     WXSHAPE_IMP_CALLBACKS(wxPyCompositeShape, wxCompositeShape);
 
 357 class wxPyCompositeShape : public wxPyRectangleShape {
 
 359     wxPyCompositeShape();
 
 361     void _setCallbackInfo(PyObject* self, PyObject* _class);
 
 362     %pragma(python) addtomethod = "__init__:self._setCallbackInfo(self, wxPyCompositeShape)"
 
 364     void AddChild(wxPyShape *child, wxPyShape *addAfter = NULL);
 
 366     wxOGLConstraint * AddConstraint(wxOGLConstraint *constraint);
 
 369     //wxOGLConstraint * AddConstraint(int type,
 
 370     //                                wxPyShape *constraining,
 
 371     //                                wxList& constrained);
 
 373         wxOGLConstraint * AddConstrainedShapes(int type, wxPyShape *constraining,
 
 374                                                PyObject* constrained) {
 
 375             wxList* list = wxPy_wxListHelper(constrained, "_wxPyShape_p");
 
 376             wxOGLConstraint* rv = self->AddConstraint(type, constraining, *list);
 
 382     %name(AddSimpleConstraint)wxOGLConstraint* AddConstraint(int type,
 
 383                                                              wxPyShape *constraining,
 
 384                                                              wxPyShape *constrained);
 
 386     void CalculateSize();
 
 387     bool ContainsDivision(wxPyDivisionShape *division);
 
 388     void DeleteConstraint(wxOGLConstraint *constraint);
 
 389     void DeleteConstraintsInvolvingChild(wxPyShape *child);
 
 391     // ****  Needs an output typemap
 
 392     //wxOGLConstraint * FindConstraint(long id, wxPyCompositeShape **actualComposite);
 
 394     wxPyShape * FindContainerImage();
 
 396     // wxList& GetConstraints();
 
 397     // wxList& GetDivisions();
 
 399         PyObject* GetConstraints() {
 
 400             wxList& list = self->GetConstraints();
 
 401             return wxPy_ConvertList(&list, "wxOGLConstraint");
 
 404         PyObject* GetDivisions() {
 
 405             wxList& list = self->GetDivisions();
 
 406             return wxPy_ConvertList(&list, "wxPyDivisionShape");
 
 410     void MakeContainer();
 
 412     void RemoveChild(wxPyShape *child);
 
 415     void base_OnDelete();
 
 416     void base_OnDraw(wxDC& dc);
 
 417     void base_OnDrawContents(wxDC& dc);
 
 418     void base_OnDrawBranches(wxDC& dc, bool erase = FALSE);
 
 419     void base_OnMoveLinks(wxDC& dc);
 
 420     void base_OnErase(wxDC& dc);
 
 421     void base_OnEraseContents(wxDC& dc);
 
 422     void base_OnHighlight(wxDC& dc);
 
 423     void base_OnLeftClick(double x, double y, int keys = 0, int attachment = 0);
 
 424     void base_OnLeftDoubleClick(double x, double y, int keys = 0, int attachment = 0);
 
 425     void base_OnRightClick(double x, double y, int keys = 0, int attachment = 0);
 
 426     void base_OnSize(double x, double y);
 
 427     bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
 
 428     void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
 
 429     void base_OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0);
 
 430     void base_OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0);
 
 431     void base_OnEndDragLeft(double x, double y, int keys=0, int attachment = 0);
 
 432     void base_OnDragRight(bool draw, double x, double y, int keys=0, int attachment = 0);
 
 433     void base_OnBeginDragRight(double x, double y, int keys=0, int attachment = 0);
 
 434     void base_OnEndDragRight(double x, double y, int keys=0, int attachment = 0);
 
 435     void base_OnDrawOutline(wxDC& dc, double x, double y, double w, double h);
 
 436     void base_OnDrawControlPoints(wxDC& dc);
 
 437     void base_OnEraseControlPoints(wxDC& dc);
 
 438     void base_OnMoveLink(wxDC& dc, bool moveControlPoints = TRUE);
 
 439     void base_OnSizingDragLeft(wxPyControlPoint* pt, bool draw, double x, double y, int keys=0, int attachment = 0);
 
 440     void base_OnSizingBeginDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
 
 441     void base_OnSizingEndDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
 
 442     void base_OnBeginSize(double w, double h);
 
 443     void base_OnEndSize(double w, double h);
 
 444 //    void base_OnChangeAttachment(int attachment, wxPyLineShape* line, wxList& ordering);
 
 449 //---------------------------------------------------------------------------
 
 452     WXSHAPE_IMP_CALLBACKS(wxPyDividedShape, wxDividedShape);
 
 455 class wxPyDividedShape : public wxPyRectangleShape {
 
 457     wxPyDividedShape(double width = 0.0, double height = 0.0);
 
 459     void _setCallbackInfo(PyObject* self, PyObject* _class);
 
 460     %pragma(python) addtomethod = "__init__:self._setCallbackInfo(self, wxPyDividedShape)"
 
 463     void SetRegionSizes();
 
 465     void base_OnDelete();
 
 466     void base_OnDraw(wxDC& dc);
 
 467     void base_OnDrawContents(wxDC& dc);
 
 468     void base_OnDrawBranches(wxDC& dc, bool erase = FALSE);
 
 469     void base_OnMoveLinks(wxDC& dc);
 
 470     void base_OnErase(wxDC& dc);
 
 471     void base_OnEraseContents(wxDC& dc);
 
 472     void base_OnHighlight(wxDC& dc);
 
 473     void base_OnLeftClick(double x, double y, int keys = 0, int attachment = 0);
 
 474     void base_OnLeftDoubleClick(double x, double y, int keys = 0, int attachment = 0);
 
 475     void base_OnRightClick(double x, double y, int keys = 0, int attachment = 0);
 
 476     void base_OnSize(double x, double y);
 
 477     bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
 
 478     void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
 
 479     void base_OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0);
 
 480     void base_OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0);
 
 481     void base_OnEndDragLeft(double x, double y, int keys=0, int attachment = 0);
 
 482     void base_OnDragRight(bool draw, double x, double y, int keys=0, int attachment = 0);
 
 483     void base_OnBeginDragRight(double x, double y, int keys=0, int attachment = 0);
 
 484     void base_OnEndDragRight(double x, double y, int keys=0, int attachment = 0);
 
 485     void base_OnDrawOutline(wxDC& dc, double x, double y, double w, double h);
 
 486     void base_OnDrawControlPoints(wxDC& dc);
 
 487     void base_OnEraseControlPoints(wxDC& dc);
 
 488     void base_OnMoveLink(wxDC& dc, bool moveControlPoints = TRUE);
 
 489     void base_OnSizingDragLeft(wxPyControlPoint* pt, bool draw, double x, double y, int keys=0, int attachment = 0);
 
 490     void base_OnSizingBeginDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
 
 491     void base_OnSizingEndDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
 
 492     void base_OnBeginSize(double w, double h);
 
 493     void base_OnEndSize(double w, double h);
 
 494 //    void base_OnChangeAttachment(int attachment, wxPyLineShape* line, wxList& ordering);
 
 499 //---------------------------------------------------------------------------
 
 501     WXSHAPE_IMP_CALLBACKS(wxPyDivisionShape, wxDivisionShape);
 
 504 class wxPyDivisionShape : public wxPyCompositeShape {
 
 508     void _setCallbackInfo(PyObject* self, PyObject* _class);
 
 509     %pragma(python) addtomethod = "__init__:self._setCallbackInfo(self, wxPyDivisionShape)"
 
 511     void AdjustBottom(double bottom, bool test);
 
 512     void AdjustLeft(double left, bool test);
 
 513     void AdjustRight(double right, bool test);
 
 514     void AdjustTop(double top, bool test);
 
 515     void Divide(int direction);
 
 516     void EditEdge(int side);
 
 517     wxPyDivisionShape * GetBottomSide();
 
 519     wxPyDivisionShape * GetLeftSide();
 
 520     wxString GetLeftSideColour();
 
 521     wxPen * GetLeftSidePen();
 
 522     wxPyDivisionShape * GetRightSide();
 
 523     wxPyDivisionShape * GetTopSide();
 
 524     wxPen * GetTopSidePen();
 
 525     void ResizeAdjoining(int side, double newPos, bool test);
 
 526     void PopupMenu(double x, double y);
 
 527     void SetBottomSide(wxPyDivisionShape *shape);
 
 528     void SetHandleSide(int side);
 
 529     void SetLeftSide(wxPyDivisionShape *shape);
 
 530     void SetLeftSideColour(const wxString& colour);
 
 531     void SetLeftSidePen(wxPen *pen);
 
 532     void SetRightSide(wxPyDivisionShape *shape);
 
 533     void SetTopSide(wxPyDivisionShape *shape);
 
 534     void SetTopSideColour(const wxString& colour);
 
 535     void SetTopSidePen(wxPen *pen);
 
 539     void base_OnDelete();
 
 540     void base_OnDraw(wxDC& dc);
 
 541     void base_OnDrawContents(wxDC& dc);
 
 542     void base_OnDrawBranches(wxDC& dc, bool erase = FALSE);
 
 543     void base_OnMoveLinks(wxDC& dc);
 
 544     void base_OnErase(wxDC& dc);
 
 545     void base_OnEraseContents(wxDC& dc);
 
 546     void base_OnHighlight(wxDC& dc);
 
 547     void base_OnLeftClick(double x, double y, int keys = 0, int attachment = 0);
 
 548     void base_OnLeftDoubleClick(double x, double y, int keys = 0, int attachment = 0);
 
 549     void base_OnRightClick(double x, double y, int keys = 0, int attachment = 0);
 
 550     void base_OnSize(double x, double y);
 
 551     bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
 
 552     void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
 
 553     void base_OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0);
 
 554     void base_OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0);
 
 555     void base_OnEndDragLeft(double x, double y, int keys=0, int attachment = 0);
 
 556     void base_OnDragRight(bool draw, double x, double y, int keys=0, int attachment = 0);
 
 557     void base_OnBeginDragRight(double x, double y, int keys=0, int attachment = 0);
 
 558     void base_OnEndDragRight(double x, double y, int keys=0, int attachment = 0);
 
 559     void base_OnDrawOutline(wxDC& dc, double x, double y, double w, double h);
 
 560     void base_OnDrawControlPoints(wxDC& dc);
 
 561     void base_OnEraseControlPoints(wxDC& dc);
 
 562     void base_OnMoveLink(wxDC& dc, bool moveControlPoints = TRUE);
 
 563     void base_OnSizingDragLeft(wxPyControlPoint* pt, bool draw, double x, double y, int keys=0, int attachment = 0);
 
 564     void base_OnSizingBeginDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
 
 565     void base_OnSizingEndDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
 
 566     void base_OnBeginSize(double w, double h);
 
 567     void base_OnEndSize(double w, double h);
 
 568 //    void base_OnChangeAttachment(int attachment, wxPyLineShape* line, wxList& ordering);
 
 574 //---------------------------------------------------------------------------