X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c368d904fc27d35ae1e533155e2154dc496432e4..5cd16c0c458adbe2ba948d2114ca9005bec4808d:/wxPython/src/sizers.i diff --git a/wxPython/src/sizers.i b/wxPython/src/sizers.i index ab4bd97f15..a43993df98 100644 --- a/wxPython/src/sizers.i +++ b/wxPython/src/sizers.i @@ -14,6 +14,8 @@ %{ #include "helpers.h" + +#include %} //---------------------------------------------------------------------- @@ -33,7 +35,7 @@ //--------------------------------------------------------------------------- -class wxSizerItem { +class wxSizerItem : public wxObject { public: // No need to ever create one directly in Python... @@ -41,6 +43,9 @@ public: //wxSizerItem( wxWindow *window, int option, int flag, int border, wxObject* userData ); //wxSizerItem( wxSizer *sizer, int option, int flag, int border, wxObject* userData ); + void DeleteWindows(); + + wxPoint GetPosition(); wxSize GetSize(); wxSize CalcMin(); void SetDimension( wxPoint pos, wxSize size ); @@ -85,11 +90,17 @@ public: //--------------------------------------------------------------------------- -class wxSizer { +class wxSizer : public wxObject { public: // wxSizer(); **** abstract, can't instantiate // ~wxSizer(); + %addmethods { + void _setOORInfo(PyObject* _self) { + self->SetClientObject(new wxPyClientData(_self)); + } + } + %addmethods { void Destroy() { delete self; } @@ -159,37 +170,37 @@ public: %pragma(python) addtoclass = " - def Add(self, *args): + def Add(self, *args, **kw): if type(args[0]) == type(1): - apply(self.AddSpacer, args) + apply(self.AddSpacer, args, kw) elif string.find(args[0].this, 'Sizer') != -1: - apply(self.AddSizer, args) + apply(self.AddSizer, args, kw) else: - apply(self.AddWindow, args) + apply(self.AddWindow, args, kw) - def Insert(self, *args): + def Insert(self, *args, **kw): if type(args[1]) == type(1): - apply(self.InsertSpacer, args) + apply(self.InsertSpacer, args, kw) elif string.find(args[1].this, 'Sizer') != -1: - apply(self.InsertSizer, args) + apply(self.InsertSizer, args, kw) else: - apply(self.InsertWindow, args) + apply(self.InsertWindow, args, kw) - def Prepend(self, *args): + def Prepend(self, *args, **kw): if type(args[0]) == type(1): - apply(self.PrependSpacer, args) + apply(self.PrependSpacer, args, kw) elif string.find(args[0].this, 'Sizer') != -1: - apply(self.PrependSizer, args) + apply(self.PrependSizer, args, kw) else: - apply(self.PrependWindow, args) + apply(self.PrependWindow, args, kw) - def Remove(self, *args): + def Remove(self, *args, **kw): if type(args[0]) == type(1): - apply(self.RemovePos, args) + apply(self.RemovePos, args, kw) elif string.find(args[0].this, 'Sizer') != -1: - apply(self.RemoveSizer, args) + apply(self.RemoveSizer, args, kw) else: - apply(self.RemoveWindow, args) + apply(self.RemoveWindow, args, kw) def AddMany(self, widgets): for childinfo in widgets: @@ -228,6 +239,10 @@ public: void Fit( wxWindow *window ); void SetSizeHints( wxWindow *window ); + void Clear( bool delete_windows=FALSE ); + void DeleteWindows(); + + // wxList& GetChildren(); %addmethods { PyObject* GetChildren() { @@ -263,8 +278,9 @@ IMPLEMENT_DYNAMIC_CLASS(wxPySizer, wxSizer); class wxPySizer : public wxSizer { public: wxPySizer(); - void _setSelf(PyObject* self, PyObject* _class); - %pragma(python) addtomethod = "__init__:self._setSelf(self, wxPySizer)" + void _setCallbackInfo(PyObject* self, PyObject* _class); + %pragma(python) addtomethod = "__init__:self._setCallbackInfo(self, wxPySizer)" + %pragma(python) addtomethod = "__init__:self._setOORInfo(self)" }; @@ -273,6 +289,7 @@ public: class wxBoxSizer : public wxSizer { public: wxBoxSizer(int orient = wxHORIZONTAL); + %pragma(python) addtomethod = "__init__:self._setOORInfo(self)" int GetOrientation(); void RecalcSizes(); wxSize CalcMin(); @@ -283,6 +300,7 @@ public: class wxStaticBoxSizer : public wxBoxSizer { public: wxStaticBoxSizer(wxStaticBox *box, int orient = wxHORIZONTAL); + %pragma(python) addtomethod = "__init__:self._setOORInfo(self)" wxStaticBox *GetStaticBox(); void RecalcSizes(); wxSize CalcMin(); @@ -293,10 +311,9 @@ public: class wxNotebookSizer: public wxSizer { public: wxNotebookSizer( wxNotebook *nb ); - + %pragma(python) addtomethod = "__init__:self._setOORInfo(self)" void RecalcSizes(); wxSize CalcMin(); - wxNotebook *GetNotebook(); }; @@ -306,6 +323,7 @@ class wxGridSizer: public wxSizer { public: wxGridSizer( int rows=1, int cols=0, int vgap=0, int hgap=0 ); + %pragma(python) addtomethod = "__init__:self._setOORInfo(self)" void RecalcSizes(); wxSize CalcMin(); @@ -326,6 +344,7 @@ class wxFlexGridSizer: public wxGridSizer { public: wxFlexGridSizer( int rows=1, int cols=0, int vgap=0, int hgap=0 ); + %pragma(python) addtomethod = "__init__:self._setOORInfo(self)" void RecalcSizes(); wxSize CalcMin();