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(wxPyDrawnShape* 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)"
 
 113     %pragma(python) addtomethod = "__init__:self._setOORInfo(self)"
 
 115     void SetCornerRadius(double radius);
 
 117     void base_OnDelete();
 
 118     void base_OnDraw(wxDC& dc);
 
 119     void base_OnDrawContents(wxDC& dc);
 
 120     void base_OnDrawBranches(wxDC& dc, bool erase = FALSE);
 
 121     void base_OnMoveLinks(wxDC& dc);
 
 122     void base_OnErase(wxDC& dc);
 
 123     void base_OnEraseContents(wxDC& dc);
 
 124     void base_OnHighlight(wxDC& dc);
 
 125     void base_OnLeftClick(double x, double y, int keys = 0, int attachment = 0);
 
 126     void base_OnLeftDoubleClick(double x, double y, int keys = 0, int attachment = 0);
 
 127     void base_OnRightClick(double x, double y, int keys = 0, int attachment = 0);
 
 128     void base_OnSize(double x, double y);
 
 129     bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
 
 130     void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
 
 131     void base_OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0);
 
 132     void base_OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0);
 
 133     void base_OnEndDragLeft(double x, double y, int keys=0, int attachment = 0);
 
 134     void base_OnDragRight(bool draw, double x, double y, int keys=0, int attachment = 0);
 
 135     void base_OnBeginDragRight(double x, double y, int keys=0, int attachment = 0);
 
 136     void base_OnEndDragRight(double x, double y, int keys=0, int attachment = 0);
 
 137     void base_OnDrawOutline(wxDC& dc, double x, double y, double w, double h);
 
 138     void base_OnDrawControlPoints(wxDC& dc);
 
 139     void base_OnEraseControlPoints(wxDC& dc);
 
 140     void base_OnMoveLink(wxDC& dc, bool moveControlPoints = TRUE);
 
 141     void base_OnSizingDragLeft(wxPyControlPoint* pt, bool draw, double x, double y, int keys=0, int attachment = 0);
 
 142     void base_OnSizingBeginDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
 
 143     void base_OnSizingEndDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
 
 144     void base_OnBeginSize(double w, double h);
 
 145     void base_OnEndSize(double w, double h);
 
 146 //    void base_OnChangeAttachment(int attachment, wxPyLineShape* line, wxList& ordering);
 
 149 //---------------------------------------------------------------------------
 
 152     WXSHAPE_IMP_CALLBACKS(wxPyControlPoint, wxControlPoint);
 
 155 class wxPyControlPoint : public wxPyRectangleShape {
 
 157     wxPyControlPoint(wxPyShapeCanvas *the_canvas = NULL,
 
 158                      wxPyShape *object = NULL,
 
 159                      double size = 0.0, double the_xoffset = 0.0,
 
 160                      double the_yoffset = 0.0, int the_type = 0);
 
 162     void _setCallbackInfo(PyObject* self, PyObject* _class);
 
 163     %pragma(python) addtomethod = "__init__:self._setCallbackInfo(self, wxPyControlPoint)"
 
 164     %pragma(python) addtomethod = "__init__:self._setOORInfo(self)"
 
 166     void SetCornerRadius(double radius);
 
 168     void base_OnDelete();
 
 169     void base_OnDraw(wxDC& dc);
 
 170     void base_OnDrawContents(wxDC& dc);
 
 171     void base_OnDrawBranches(wxDC& dc, bool erase = FALSE);
 
 172     void base_OnMoveLinks(wxDC& dc);
 
 173     void base_OnErase(wxDC& dc);
 
 174     void base_OnEraseContents(wxDC& dc);
 
 175     void base_OnHighlight(wxDC& dc);
 
 176     void base_OnLeftClick(double x, double y, int keys = 0, int attachment = 0);
 
 177     void base_OnLeftDoubleClick(double x, double y, int keys = 0, int attachment = 0);
 
 178     void base_OnRightClick(double x, double y, int keys = 0, int attachment = 0);
 
 179     void base_OnSize(double x, double y);
 
 180     bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
 
 181     void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
 
 182     void base_OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0);
 
 183     void base_OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0);
 
 184     void base_OnEndDragLeft(double x, double y, int keys=0, int attachment = 0);
 
 185     void base_OnDragRight(bool draw, double x, double y, int keys=0, int attachment = 0);
 
 186     void base_OnBeginDragRight(double x, double y, int keys=0, int attachment = 0);
 
 187     void base_OnEndDragRight(double x, double y, int keys=0, int attachment = 0);
 
 188     void base_OnDrawOutline(wxDC& dc, double x, double y, double w, double h);
 
 189     void base_OnDrawControlPoints(wxDC& dc);
 
 190     void base_OnEraseControlPoints(wxDC& dc);
 
 191     void base_OnMoveLink(wxDC& dc, bool moveControlPoints = TRUE);
 
 192     void base_OnSizingDragLeft(wxPyControlPoint* pt, bool draw, double x, double y, int keys=0, int attachment = 0);
 
 193     void base_OnSizingBeginDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
 
 194     void base_OnSizingEndDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
 
 195     void base_OnBeginSize(double w, double h);
 
 196     void base_OnEndSize(double w, double h);
 
 197 //    void base_OnChangeAttachment(int attachment, wxPyLineShape* line, wxList& ordering);
 
 200 //---------------------------------------------------------------------------
 
 202     WXSHAPE_IMP_CALLBACKS(wxPyBitmapShape, wxBitmapShape);
 
 206 class wxPyBitmapShape : public wxPyRectangleShape {
 
 210     void _setCallbackInfo(PyObject* self, PyObject* _class);
 
 211     %pragma(python) addtomethod = "__init__:self._setCallbackInfo(self, wxPyBitmapShape)"
 
 212     %pragma(python) addtomethod = "__init__:self._setOORInfo(self)"
 
 214     wxBitmap& GetBitmap();
 
 215     wxString GetFilename();
 
 216     void SetBitmap(const wxBitmap& bitmap);
 
 217     void SetFilename(const wxString& filename);
 
 219     void base_OnDelete();
 
 220     void base_OnDraw(wxDC& dc);
 
 221     void base_OnDrawContents(wxDC& dc);
 
 222     void base_OnDrawBranches(wxDC& dc, bool erase = FALSE);
 
 223     void base_OnMoveLinks(wxDC& dc);
 
 224     void base_OnErase(wxDC& dc);
 
 225     void base_OnEraseContents(wxDC& dc);
 
 226     void base_OnHighlight(wxDC& dc);
 
 227     void base_OnLeftClick(double x, double y, int keys = 0, int attachment = 0);
 
 228     void base_OnLeftDoubleClick(double x, double y, int keys = 0, int attachment = 0);
 
 229     void base_OnRightClick(double x, double y, int keys = 0, int attachment = 0);
 
 230     void base_OnSize(double x, double y);
 
 231     bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
 
 232     void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
 
 233     void base_OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0);
 
 234     void base_OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0);
 
 235     void base_OnEndDragLeft(double x, double y, int keys=0, int attachment = 0);
 
 236     void base_OnDragRight(bool draw, double x, double y, int keys=0, int attachment = 0);
 
 237     void base_OnBeginDragRight(double x, double y, int keys=0, int attachment = 0);
 
 238     void base_OnEndDragRight(double x, double y, int keys=0, int attachment = 0);
 
 239     void base_OnDrawOutline(wxDC& dc, double x, double y, double w, double h);
 
 240     void base_OnDrawControlPoints(wxDC& dc);
 
 241     void base_OnEraseControlPoints(wxDC& dc);
 
 242     void base_OnMoveLink(wxDC& dc, bool moveControlPoints = TRUE);
 
 243     void base_OnSizingDragLeft(wxPyControlPoint* pt, bool draw, double x, double y, int keys=0, int attachment = 0);
 
 244     void base_OnSizingBeginDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
 
 245     void base_OnSizingEndDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
 
 246     void base_OnBeginSize(double w, double h);
 
 247     void base_OnEndSize(double w, double h);
 
 248 //    void base_OnChangeAttachment(int attachment, wxPyLineShape* line, wxList& ordering);
 
 251 //---------------------------------------------------------------------------
 
 253     WXSHAPE_IMP_CALLBACKS(wxPyDrawnShape, wxDrawnShape);
 
 256 class wxPyDrawnShape : public wxPyRectangleShape {
 
 260     void _setCallbackInfo(PyObject* self, PyObject* _class);
 
 261     %pragma(python) addtomethod = "__init__:self._setCallbackInfo(self, wxPyDrawnShape)"
 
 262     %pragma(python) addtomethod = "__init__:self._setOORInfo(self)"
 
 264     void CalculateSize();
 
 265     void DestroyClippingRect();
 
 266     void DrawArc(const wxPoint& centrePoint, const wxPoint& startPoint,
 
 267                  const wxPoint& endPoint);
 
 268     void DrawAtAngle(int angle);
 
 269     void DrawEllipticArc(const wxRect& rect, double startAngle, double endAngle);
 
 270     void DrawLine(const wxPoint& point1, const wxPoint& point2);
 
 271     void DrawLines(int PCOUNT, wxPoint* points);
 
 272     void DrawPoint(const wxPoint& point);
 
 273     void DrawPolygon(int PCOUNT, wxPoint* points, int flags = 0);
 
 274     void DrawRectangle(const wxRect& rect);
 
 275     void DrawRoundedRectangle(const wxRect& rect, double radius);
 
 276     void DrawSpline(int PCOUNT, wxPoint* points);
 
 277     void DrawText(const wxString& text, const wxPoint& point);
 
 280     wxPseudoMetaFile& GetMetaFile();
 
 282     double GetRotation();
 
 283     bool LoadFromMetaFile(char * filename);
 
 284     void Rotate(double x, double y, double theta);
 
 285     void SetClippingRect(const wxRect& rect);
 
 286     void SetDrawnBackgroundColour(const wxColour& colour);
 
 287     void SetDrawnBackgroundMode(int mode);
 
 288     void SetDrawnBrush(wxBrush* pen, bool isOutline = FALSE);
 
 289     void SetDrawnFont(wxFont* font);
 
 290     void SetDrawnPen(wxPen* pen, bool isOutline = FALSE);
 
 291     void SetDrawnTextColour(const wxColour& colour);
 
 292     void Scale(double sx, double sy);
 
 293     void SetSaveToFile(bool save);
 
 294     void Translate(double x, double y);
 
 297     void base_OnDelete();
 
 298     void base_OnDraw(wxDC& dc);
 
 299     void base_OnDrawContents(wxDC& dc);
 
 300     void base_OnDrawBranches(wxDC& dc, bool erase = FALSE);
 
 301     void base_OnMoveLinks(wxDC& dc);
 
 302     void base_OnErase(wxDC& dc);
 
 303     void base_OnEraseContents(wxDC& dc);
 
 304     void base_OnHighlight(wxDC& dc);
 
 305     void base_OnLeftClick(double x, double y, int keys = 0, int attachment = 0);
 
 306     void base_OnLeftDoubleClick(double x, double y, int keys = 0, int attachment = 0);
 
 307     void base_OnRightClick(double x, double y, int keys = 0, int attachment = 0);
 
 308     void base_OnSize(double x, double y);
 
 309     bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
 
 310     void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
 
 311     void base_OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0);
 
 312     void base_OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0);
 
 313     void base_OnEndDragLeft(double x, double y, int keys=0, int attachment = 0);
 
 314     void base_OnDragRight(bool draw, double x, double y, int keys=0, int attachment = 0);
 
 315     void base_OnBeginDragRight(double x, double y, int keys=0, int attachment = 0);
 
 316     void base_OnEndDragRight(double x, double y, int keys=0, int attachment = 0);
 
 317     void base_OnDrawOutline(wxDC& dc, double x, double y, double w, double h);
 
 318     void base_OnDrawControlPoints(wxDC& dc);
 
 319     void base_OnEraseControlPoints(wxDC& dc);
 
 320     void base_OnMoveLink(wxDC& dc, bool moveControlPoints = TRUE);
 
 321     void base_OnSizingDragLeft(wxPyControlPoint* pt, bool draw, double x, double y, int keys=0, int attachment = 0);
 
 322     void base_OnSizingBeginDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
 
 323     void base_OnSizingEndDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
 
 324     void base_OnBeginSize(double w, double h);
 
 325     void base_OnEndSize(double w, double h);
 
 326 //    void base_OnChangeAttachment(int attachment, wxPyLineShape* line, wxList& ordering);
 
 331 //---------------------------------------------------------------------------
 
 333 class wxOGLConstraint : public wxObject {
 
 335     //wxOGLConstraint(int type, wxPyShape *constraining, wxList& constrained);
 
 337         wxOGLConstraint(int type, wxPyShape *constraining, PyObject* constrained) {
 
 338             wxList* list = wxPy_wxListHelper(constrained, "_wxPyShape_p");
 
 339             wxOGLConstraint* rv = new wxOGLConstraint(type, constraining, *list);
 
 345     //~wxOGLConstraint();  The wxCompositShape takes ownership of the constraint
 
 348     void SetSpacing(double x, double y);
 
 349     bool Equals(double a, double b);
 
 355 //---------------------------------------------------------------------------
 
 358     WXSHAPE_IMP_CALLBACKS(wxPyCompositeShape, wxCompositeShape);
 
 361 class wxPyCompositeShape : public wxPyRectangleShape {
 
 363     wxPyCompositeShape();
 
 365     void _setCallbackInfo(PyObject* self, PyObject* _class);
 
 366     %pragma(python) addtomethod = "__init__:self._setCallbackInfo(self, wxPyCompositeShape)"
 
 367     %pragma(python) addtomethod = "__init__:self._setOORInfo(self)"
 
 369     void AddChild(wxPyShape *child, wxPyShape *addAfter = NULL);
 
 371     wxOGLConstraint * AddConstraint(wxOGLConstraint *constraint);
 
 374     //wxOGLConstraint * AddConstraint(int type,
 
 375     //                                wxPyShape *constraining,
 
 376     //                                wxList& constrained);
 
 378         wxOGLConstraint * AddConstrainedShapes(int type, wxPyShape *constraining,
 
 379                                                PyObject* constrained) {
 
 380             wxList* list = wxPy_wxListHelper(constrained, "_wxPyShape_p");
 
 381             wxOGLConstraint* rv = self->AddConstraint(type, constraining, *list);
 
 387     %name(AddSimpleConstraint)wxOGLConstraint* AddConstraint(int type,
 
 388                                                              wxPyShape *constraining,
 
 389                                                              wxPyShape *constrained);
 
 391     void CalculateSize();
 
 392     bool ContainsDivision(wxPyDivisionShape *division);
 
 393     void DeleteConstraint(wxOGLConstraint *constraint);
 
 394     void DeleteConstraintsInvolvingChild(wxPyShape *child);
 
 396     // ****  Needs an output typemap
 
 397     //wxOGLConstraint * FindConstraint(long id, wxPyCompositeShape **actualComposite);
 
 399     wxPyShape * FindContainerImage();
 
 401     // wxList& GetConstraints();
 
 402     // wxList& GetDivisions();
 
 404         PyObject* GetConstraints() {
 
 405             wxList& list = self->GetConstraints();
 
 406             return wxPy_ConvertList(&list, "wxOGLConstraint");
 
 409         PyObject* GetDivisions() {
 
 410             wxList& list = self->GetDivisions();
 
 411             return wxPy_ConvertShapeList(&list, "wxPyDivisionShape");
 
 415     void MakeContainer();
 
 417     void RemoveChild(wxPyShape *child);
 
 420     void base_OnDelete();
 
 421     void base_OnDraw(wxDC& dc);
 
 422     void base_OnDrawContents(wxDC& dc);
 
 423     void base_OnDrawBranches(wxDC& dc, bool erase = FALSE);
 
 424     void base_OnMoveLinks(wxDC& dc);
 
 425     void base_OnErase(wxDC& dc);
 
 426     void base_OnEraseContents(wxDC& dc);
 
 427     void base_OnHighlight(wxDC& dc);
 
 428     void base_OnLeftClick(double x, double y, int keys = 0, int attachment = 0);
 
 429     void base_OnLeftDoubleClick(double x, double y, int keys = 0, int attachment = 0);
 
 430     void base_OnRightClick(double x, double y, int keys = 0, int attachment = 0);
 
 431     void base_OnSize(double x, double y);
 
 432     bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
 
 433     void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
 
 434     void base_OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0);
 
 435     void base_OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0);
 
 436     void base_OnEndDragLeft(double x, double y, int keys=0, int attachment = 0);
 
 437     void base_OnDragRight(bool draw, double x, double y, int keys=0, int attachment = 0);
 
 438     void base_OnBeginDragRight(double x, double y, int keys=0, int attachment = 0);
 
 439     void base_OnEndDragRight(double x, double y, int keys=0, int attachment = 0);
 
 440     void base_OnDrawOutline(wxDC& dc, double x, double y, double w, double h);
 
 441     void base_OnDrawControlPoints(wxDC& dc);
 
 442     void base_OnEraseControlPoints(wxDC& dc);
 
 443     void base_OnMoveLink(wxDC& dc, bool moveControlPoints = TRUE);
 
 444     void base_OnSizingDragLeft(wxPyControlPoint* pt, bool draw, double x, double y, int keys=0, int attachment = 0);
 
 445     void base_OnSizingBeginDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
 
 446     void base_OnSizingEndDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
 
 447     void base_OnBeginSize(double w, double h);
 
 448     void base_OnEndSize(double w, double h);
 
 449 //    void base_OnChangeAttachment(int attachment, wxPyLineShape* line, wxList& ordering);
 
 454 //---------------------------------------------------------------------------
 
 457     WXSHAPE_IMP_CALLBACKS(wxPyDividedShape, wxDividedShape);
 
 460 class wxPyDividedShape : public wxPyRectangleShape {
 
 462     wxPyDividedShape(double width = 0.0, double height = 0.0);
 
 464     void _setCallbackInfo(PyObject* self, PyObject* _class);
 
 465     %pragma(python) addtomethod = "__init__:self._setCallbackInfo(self, wxPyDividedShape)"
 
 466     %pragma(python) addtomethod = "__init__:self._setOORInfo(self)"
 
 469     void SetRegionSizes();
 
 471     void base_OnDelete();
 
 472     void base_OnDraw(wxDC& dc);
 
 473     void base_OnDrawContents(wxDC& dc);
 
 474     void base_OnDrawBranches(wxDC& dc, bool erase = FALSE);
 
 475     void base_OnMoveLinks(wxDC& dc);
 
 476     void base_OnErase(wxDC& dc);
 
 477     void base_OnEraseContents(wxDC& dc);
 
 478     void base_OnHighlight(wxDC& dc);
 
 479     void base_OnLeftClick(double x, double y, int keys = 0, int attachment = 0);
 
 480     void base_OnLeftDoubleClick(double x, double y, int keys = 0, int attachment = 0);
 
 481     void base_OnRightClick(double x, double y, int keys = 0, int attachment = 0);
 
 482     void base_OnSize(double x, double y);
 
 483     bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
 
 484     void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
 
 485     void base_OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0);
 
 486     void base_OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0);
 
 487     void base_OnEndDragLeft(double x, double y, int keys=0, int attachment = 0);
 
 488     void base_OnDragRight(bool draw, double x, double y, int keys=0, int attachment = 0);
 
 489     void base_OnBeginDragRight(double x, double y, int keys=0, int attachment = 0);
 
 490     void base_OnEndDragRight(double x, double y, int keys=0, int attachment = 0);
 
 491     void base_OnDrawOutline(wxDC& dc, double x, double y, double w, double h);
 
 492     void base_OnDrawControlPoints(wxDC& dc);
 
 493     void base_OnEraseControlPoints(wxDC& dc);
 
 494     void base_OnMoveLink(wxDC& dc, bool moveControlPoints = TRUE);
 
 495     void base_OnSizingDragLeft(wxPyControlPoint* pt, bool draw, double x, double y, int keys=0, int attachment = 0);
 
 496     void base_OnSizingBeginDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
 
 497     void base_OnSizingEndDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
 
 498     void base_OnBeginSize(double w, double h);
 
 499     void base_OnEndSize(double w, double h);
 
 500 //    void base_OnChangeAttachment(int attachment, wxPyLineShape* line, wxList& ordering);
 
 505 //---------------------------------------------------------------------------
 
 507     WXSHAPE_IMP_CALLBACKS(wxPyDivisionShape, wxDivisionShape);
 
 510 class wxPyDivisionShape : public wxPyCompositeShape {
 
 514     void _setCallbackInfo(PyObject* self, PyObject* _class);
 
 515     %pragma(python) addtomethod = "__init__:self._setCallbackInfo(self, wxPyDivisionShape)"
 
 516     %pragma(python) addtomethod = "__init__:self._setOORInfo(self)"
 
 518     void AdjustBottom(double bottom, bool test);
 
 519     void AdjustLeft(double left, bool test);
 
 520     void AdjustRight(double right, bool test);
 
 521     void AdjustTop(double top, bool test);
 
 522     void Divide(int direction);
 
 523     void EditEdge(int side);
 
 524     wxPyDivisionShape * GetBottomSide();
 
 526     wxPyDivisionShape * GetLeftSide();
 
 527     wxString GetLeftSideColour();
 
 528     wxPen * GetLeftSidePen();
 
 529     wxPyDivisionShape * GetRightSide();
 
 530     wxPyDivisionShape * GetTopSide();
 
 531     wxPen * GetTopSidePen();
 
 532     void ResizeAdjoining(int side, double newPos, bool test);
 
 533     void PopupMenu(double x, double y);
 
 534     void SetBottomSide(wxPyDivisionShape *shape);
 
 535     void SetHandleSide(int side);
 
 536     void SetLeftSide(wxPyDivisionShape *shape);
 
 537     void SetLeftSideColour(const wxString& colour);
 
 538     void SetLeftSidePen(wxPen *pen);
 
 539     void SetRightSide(wxPyDivisionShape *shape);
 
 540     void SetTopSide(wxPyDivisionShape *shape);
 
 541     void SetTopSideColour(const wxString& colour);
 
 542     void SetTopSidePen(wxPen *pen);
 
 546     void base_OnDelete();
 
 547     void base_OnDraw(wxDC& dc);
 
 548     void base_OnDrawContents(wxDC& dc);
 
 549     void base_OnDrawBranches(wxDC& dc, bool erase = FALSE);
 
 550     void base_OnMoveLinks(wxDC& dc);
 
 551     void base_OnErase(wxDC& dc);
 
 552     void base_OnEraseContents(wxDC& dc);
 
 553     void base_OnHighlight(wxDC& dc);
 
 554     void base_OnLeftClick(double x, double y, int keys = 0, int attachment = 0);
 
 555     void base_OnLeftDoubleClick(double x, double y, int keys = 0, int attachment = 0);
 
 556     void base_OnRightClick(double x, double y, int keys = 0, int attachment = 0);
 
 557     void base_OnSize(double x, double y);
 
 558     bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
 
 559     void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
 
 560     void base_OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0);
 
 561     void base_OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0);
 
 562     void base_OnEndDragLeft(double x, double y, int keys=0, int attachment = 0);
 
 563     void base_OnDragRight(bool draw, double x, double y, int keys=0, int attachment = 0);
 
 564     void base_OnBeginDragRight(double x, double y, int keys=0, int attachment = 0);
 
 565     void base_OnEndDragRight(double x, double y, int keys=0, int attachment = 0);
 
 566     void base_OnDrawOutline(wxDC& dc, double x, double y, double w, double h);
 
 567     void base_OnDrawControlPoints(wxDC& dc);
 
 568     void base_OnEraseControlPoints(wxDC& dc);
 
 569     void base_OnMoveLink(wxDC& dc, bool moveControlPoints = TRUE);
 
 570     void base_OnSizingDragLeft(wxPyControlPoint* pt, bool draw, double x, double y, int keys=0, int attachment = 0);
 
 571     void base_OnSizingBeginDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
 
 572     void base_OnSizingEndDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
 
 573     void base_OnBeginSize(double w, double h);
 
 574     void base_OnEndSize(double w, double h);
 
 575 //    void base_OnChangeAttachment(int attachment, wxPyLineShape* line, wxList& ordering);
 
 581 //---------------------------------------------------------------------------