]> git.saurik.com Git - wxWidgets.git/commitdiff
Some wxGrid related classes now support OOR.
authorRobin Dunn <robin@alldunn.com>
Thu, 18 Apr 2002 05:37:09 +0000 (05:37 +0000)
committerRobin Dunn <robin@alldunn.com>
Thu, 18 Apr 2002 05:37:09 +0000 (05:37 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@15196 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

wxPython/CHANGES.txt
wxPython/src/grid.i
wxPython/src/msw/grid.cpp
wxPython/src/msw/grid.py

index 157dcec7f6da343aac55705f480540e7479e51fe..8f2749532a1497b49bfea4562a04486355be5bd1 100644 (file)
@@ -84,6 +84,11 @@ Python instance object with a class that raises an exception whenever
 a method call (or other attribute access) is attempted.  This works
 for any class that is OOR aware.
 
+Added OOR support for wxGridCellRenderer, wxGridCellEditor,
+wxGridCellAttr, wxGridCellAttrProvider, wxGridTableBase and their
+derived classes..
+
+
 
 
 2.3.2.1
@@ -96,7 +101,6 @@ Added some patches from library contributors.
 
 
 
-
 2.3.2
 -----
 Added EVT_HELP, EVT_HELP_RANGE, EVT_DETAILED_HELP,
index b0249ef93123b06918b09fe189116f208e82403f..f09c7d064238e2f97ee904b6f42890c21a0da19d 100644 (file)
@@ -40,6 +40,8 @@
 %{
     // Put some wx default wxChar* values into wxStrings.
     DECLARE_DEF_STRING(PanelNameStr);
+    DECLARE_DEF_STRING2(DateTimeFormatStr, wxT("%c"));
+    static const wxString wxPyEmptyString(wxT(""));
 %}
 
 //---------------------------------------------------------------------------
 %}
 
 //---------------------------------------------------------------------------
+// OOR related typemaps and helper functions
 
-class wxGridCellCoords;
-class wxGridCellAttr;
+%typemap(python, out) wxGridCellRenderer*     { $target = wxPyMake_wxGridCellRenderer($source); }
+%typemap(python, out) wxGridCellEditor*       { $target = wxPyMake_wxGridCellEditor($source); }
+%typemap(python, out) wxGridCellAttr*         { $target = wxPyMake_wxGridCellAttr($source); }
+%typemap(python, out) wxGridCellAttrProvider* { $target = wxPyMake_wxGridCellAttrProvider($source); }
+%typemap(python, out) wxGridTableBase*        { $target = wxPyMake_wxGridTableBase($source); }
+
+%{
+
+
+#define wxPyMake_TEMPLATE(TYPE) \
+PyObject* wxPyMake_##TYPE(TYPE* source) { \
+    PyObject* target = NULL; \
+    if (source) { \
+        /* Check if there is already a pointer to a Python object in the \
+           OOR data that we can use. */ \
+        wxPyOORClientData* data = (wxPyOORClientData*)source->GetClientObject(); \
+        if (data) { \
+            target = data->m_obj; \
+            Py_INCREF(target); \
+        } \
+        /* Otherwise make a new wrapper for it the old fashioned way and \
+           give it the OOR treatment */ \
+        if (! target) { \
+            target = wxPyConstructObject(source, #TYPE, FALSE); \
+            if (target) \
+                source->SetClientObject(new wxPyOORClientData(target)); \
+        } \
+    } else {  /* source was NULL so return None. */ \
+        Py_INCREF(Py_None); target = Py_None; \
+    } \
+    return target; \
+} \
+
+wxPyMake_TEMPLATE(wxGridCellRenderer)
+wxPyMake_TEMPLATE(wxGridCellEditor)
+wxPyMake_TEMPLATE(wxGridCellAttr)
+wxPyMake_TEMPLATE(wxGridCellAttrProvider)
+wxPyMake_TEMPLATE(wxGridTableBase)
+
+%}
 
+//---------------------------------------------------------------------------
 
+class wxGridCellCoords;
+class wxGridCellAttr;
 
 #define wxGRID_VALUE_STRING     "string"
 #define wxGRID_VALUE_BOOL       "bool"
@@ -460,6 +504,9 @@ class wxGridCellAttr;
 #define wxGRID_VALUE_CHOICE     "choice"
 #define wxGRID_VALUE_TEXT       "string"
 #define wxGRID_VALUE_LONG       "long"
+#define wxGRID_VALUE_CHOICEINT  "choiceint"
+#define wxGRID_VALUE_DATETIME   "datetime"
+
 
 %readonly
 wxGridCellCoords wxGridNoCellCoords;
@@ -475,6 +522,12 @@ wxRect           wxGridNoCellRect;
 class wxGridCellRenderer
 {
 public:
+    %addmethods {
+        void _setOORInfo(PyObject* _self) {
+            self->SetClientObject(new wxPyOORClientData(_self));
+        }
+    }
+
     void SetParameters(const wxString& params);
     void IncRef();
     void DecRef();
@@ -589,6 +642,7 @@ public:
     wxPyGridCellRenderer();
     void _setCallbackInfo(PyObject* self, PyObject* _class);
     %pragma(python) addtomethod = "__init__:self._setCallbackInfo(self, wxPyGridCellRenderer)"
+    %pragma(python) addtomethod = "__init__:self._setOORInfo(self)"
 
     void base_SetParameters(const wxString& params);
 };
@@ -600,6 +654,7 @@ class wxGridCellStringRenderer : public wxGridCellRenderer
 {
 public:
     wxGridCellStringRenderer();
+    %pragma(python) addtomethod = "__init__:self._setOORInfo(self)"
 };
 
 
@@ -607,6 +662,7 @@ class  wxGridCellNumberRenderer : public wxGridCellStringRenderer
 {
 public:
     wxGridCellNumberRenderer();
+    %pragma(python) addtomethod = "__init__:self._setOORInfo(self)"
 };
 
 
@@ -614,6 +670,7 @@ class  wxGridCellFloatRenderer : public wxGridCellStringRenderer
 {
 public:
     wxGridCellFloatRenderer(int width = -1, int precision = -1);
+    %pragma(python) addtomethod = "__init__:self._setOORInfo(self)"
 
     int GetWidth() const;
     void SetWidth(int width);
@@ -626,21 +683,24 @@ class  wxGridCellBoolRenderer : public wxGridCellRenderer
 {
 public:
     wxGridCellBoolRenderer();
+    %pragma(python) addtomethod = "__init__:self._setOORInfo(self)"
 };
 
 
 class wxGridCellDateTimeRenderer : public wxGridCellStringRenderer
 {
 public:
-    wxGridCellDateTimeRenderer(wxString outformat = "%c",
-                               wxString informat =  "%c");
+    wxGridCellDateTimeRenderer(wxString outformat = wxPyDateTimeFormatStr,
+                               wxString informat =  wxPyDateTimeFormatStr);
+    %pragma(python) addtomethod = "__init__:self._setOORInfo(self)"
 };
 
 
 class wxGridCellEnumRenderer : public wxGridCellStringRenderer
 {
 public:
-    wxGridCellEnumRenderer( const wxString& choices = "" );
+    wxGridCellEnumRenderer( const wxString& choices = wxPyEmptyString );
+    %pragma(python) addtomethod = "__init__:self._setOORInfo(self)"
 };
 
 
@@ -648,6 +708,7 @@ class wxGridCellAutoWrapStringRenderer : public wxGridCellStringRenderer
 {
 public:
     wxGridCellAutoWrapStringRenderer();
+    %pragma(python) addtomethod = "__init__:self._setOORInfo(self)"
 };
 
 
@@ -658,6 +719,12 @@ public:
 class  wxGridCellEditor
 {
 public:
+    %addmethods {
+        void _setOORInfo(PyObject* _self) {
+            self->SetClientObject(new wxPyOORClientData(_self));
+        }
+    }
+
     bool IsCreated();
     wxControl* GetControl();
     void SetControl(wxControl* control);
@@ -812,6 +879,7 @@ public:
     wxPyGridCellEditor();
     void _setCallbackInfo(PyObject* self, PyObject* _class);
     %pragma(python) addtomethod = "__init__:self._setCallbackInfo(self, wxPyGridCellEditor)"
+    %pragma(python) addtomethod = "__init__:self._setOORInfo(self)"
 
     void base_SetSize(const wxRect& rect);
     void base_Show(bool show, wxGridCellAttr *attr = NULL);
@@ -831,6 +899,7 @@ class wxGridCellTextEditor : public wxGridCellEditor
 {
 public:
     wxGridCellTextEditor();
+    %pragma(python) addtomethod = "__init__:self._setOORInfo(self)"
 };
 
 
@@ -838,6 +907,7 @@ class wxGridCellNumberEditor : public wxGridCellTextEditor
 {
 public:
     wxGridCellNumberEditor(int min = -1, int max = -1);
+    %pragma(python) addtomethod = "__init__:self._setOORInfo(self)"
 };
 
 
@@ -845,6 +915,7 @@ class wxGridCellFloatEditor : public wxGridCellTextEditor
 {
 public:
     wxGridCellFloatEditor();
+    %pragma(python) addtomethod = "__init__:self._setOORInfo(self)"
 };
 
 
@@ -852,6 +923,7 @@ class wxGridCellBoolEditor : public wxGridCellEditor
 {
 public:
     wxGridCellBoolEditor();
+    %pragma(python) addtomethod = "__init__:self._setOORInfo(self)"
 };
 
 class wxGridCellChoiceEditor : public wxGridCellEditor
@@ -860,13 +932,15 @@ public:
     wxGridCellChoiceEditor(int LCOUNT = 0,
                            const wxString* choices = NULL,
                            bool allowOthers = FALSE);
+    %pragma(python) addtomethod = "__init__:self._setOORInfo(self)"
 };
 
 
 class wxGridCellEnumEditor : public wxGridCellChoiceEditor
 {
 public:
-    wxGridCellEnumEditor( const wxString& choices = "" );
+    wxGridCellEnumEditor( const wxString& choices = wxPyEmptyString );
+    %pragma(python) addtomethod = "__init__:self._setOORInfo(self)"
 };
 
 
@@ -874,6 +948,7 @@ class wxGridCellAutoWrapStringEditor : public wxGridCellTextEditor
 {
 public:
     wxGridCellAutoWrapStringEditor();
+    %pragma(python) addtomethod = "__init__:self._setOORInfo(self)"
 };
 
 
@@ -894,7 +969,14 @@ public:
         Merged
     };
 
+    %addmethods {
+        void _setOORInfo(PyObject* _self) {
+            self->SetClientObject(new wxPyOORClientData(_self));
+        }
+    }
+
     wxGridCellAttr(wxGridCellAttr *attrDefault = NULL);
+    %pragma(python) addtomethod = "__init__:self._setOORInfo(self)"
 
     wxGridCellAttr *Clone() const;
     void MergeWith(wxGridCellAttr *mergefrom);
@@ -936,6 +1018,13 @@ class wxGridCellAttrProvider
 public:
     wxGridCellAttrProvider();
     // ???? virtual ~wxGridCellAttrProvider();
+    %pragma(python) addtomethod = "__init__:self._setOORInfo(self)"
+
+    %addmethods {
+        void _setOORInfo(PyObject* _self) {
+            self->SetClientObject(new wxPyOORClientData(_self));
+        }
+    }
 
     wxGridCellAttr *GetAttr(int row, int col,
                             wxGridCellAttr::wxAttrKind  kind) const;
@@ -986,13 +1075,18 @@ public:
 // Grid Table Base class and Python aware version
 
 
-
 class wxGridTableBase : public wxObject
 {
 public:
     // wxGridTableBase();   This is an ABC
     //~wxGridTableBase();
 
+    %addmethods {
+        void _setOORInfo(PyObject* _self) {
+            self->SetClientObject(new wxPyOORClientData(_self));
+        }
+    }
+
     void SetAttrProvider(wxGridCellAttrProvider *attrProvider);
     wxGridCellAttrProvider *GetAttrProvider() const;
     void SetView( wxGrid *grid );
@@ -1180,6 +1274,7 @@ public:
     wxPyGridTableBase();
     void _setCallbackInfo(PyObject* self, PyObject* _class);
     %pragma(python) addtomethod = "__init__:self._setCallbackInfo(self, wxPyGridTableBase)"
+    %pragma(python) addtomethod = "__init__:self._setOORInfo(self)"
 
     %addmethods { void Destroy() { delete self; } }
 
@@ -1213,6 +1308,7 @@ class  wxGridStringTable : public wxGridTableBase
 {
 public:
     wxGridStringTable( int numRows=0, int numCols=0 );
+    %pragma(python) addtomethod = "__init__:self._setOORInfo(self)"
 };
 
 //---------------------------------------------------------------------------
index 82af203c89d130bfed7ca1a4bf0a47ab238ea98b..1b307e707e25c2d72c4146d35ec6f1f3252e678a 100644 (file)
@@ -88,6 +88,8 @@ static PyObject* t_output_helper(PyObject* target, PyObject* o) {
 
     // Put some wx default wxChar* values into wxStrings.
     DECLARE_DEF_STRING(PanelNameStr);
+    DECLARE_DEF_STRING2(DateTimeFormatStr, wxT("%c"));
+    static const wxString wxPyEmptyString(wxT(""));
 
 #define PYCALLBACK_GCA_INTINTKIND(PCLASS, CBNAME)                               \
     wxGridCellAttr* CBNAME(int a, int b, wxGridCellAttr::wxAttrKind c) {        \
@@ -483,6 +485,39 @@ static PyObject* t_output_helper(PyObject* target, PyObject* o) {
 
 
 
+
+
+#define wxPyMake_TEMPLATE(TYPE) \
+PyObject* wxPyMake_##TYPE(TYPE* source) { \
+    PyObject* target = NULL; \
+    if (source) { \
+        /* Check if there is already a pointer to a Python object in the \
+           OOR data that we can use. */ \
+        wxPyOORClientData* data = (wxPyOORClientData*)source->GetClientObject(); \
+        if (data) { \
+            target = data->m_obj; \
+            Py_INCREF(target); \
+        } \
+        /* Otherwise make a new wrapper for it the old fashioned way and \
+           give it the OOR treatment */ \
+        if (! target) { \
+            target = wxPyConstructObject(source, #TYPE, FALSE); \
+            if (target) \
+                source->SetClientObject(new wxPyOORClientData(target)); \
+        } \
+    } else {  /* source was NULL so return None. */ \
+        Py_INCREF(Py_None); target = Py_None; \
+    } \
+    return target; \
+} \
+
+wxPyMake_TEMPLATE(wxGridCellRenderer)
+wxPyMake_TEMPLATE(wxGridCellEditor)
+wxPyMake_TEMPLATE(wxGridCellAttr)
+wxPyMake_TEMPLATE(wxGridCellAttrProvider)
+wxPyMake_TEMPLATE(wxGridTableBase)
+
+
 class wxPyGridCellRenderer : public wxGridCellRenderer
 {
 public:
@@ -878,6 +913,41 @@ static PyObject *_wrap_wxGridNoCellRect_get() {
     return pyobj;
 }
 
+static void  wxGridCellRenderer__setOORInfo(wxGridCellRenderer *self,PyObject * _self) {
+            self->SetClientObject(new wxPyOORClientData(_self));
+        }
+static PyObject *_wrap_wxGridCellRenderer__setOORInfo(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxGridCellRenderer * _arg0;
+    PyObject * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _obj1 = 0;
+    char *_kwnames[] = { "self","_self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxGridCellRenderer__setOORInfo",_kwnames,&_argo0,&_obj1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGridCellRenderer_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridCellRenderer__setOORInfo. Expected _wxGridCellRenderer_p.");
+        return NULL;
+        }
+    }
+{
+  _arg1 = _obj1;
+}
+{
+    PyThreadState* __tstate = wxPyBeginAllowThreads();
+    wxGridCellRenderer__setOORInfo(_arg0,_arg1);
+
+    wxPyEndAllowThreads(__tstate);
+    if (PyErr_Occurred()) return NULL;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
 #define wxGridCellRenderer_SetParameters(_swigobj,_swigarg0)  (_swigobj->SetParameters(_swigarg0))
 static PyObject *_wrap_wxGridCellRenderer_SetParameters(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
@@ -1107,7 +1177,6 @@ static PyObject *_wrap_wxGridCellRenderer_Clone(PyObject *self, PyObject *args,
     wxGridCellRenderer * _arg0;
     PyObject * _argo0 = 0;
     char *_kwnames[] = { "self", NULL };
-    char _ptemp[128];
 
     self = self;
     if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxGridCellRenderer_Clone",_kwnames,&_argo0)) 
@@ -1125,13 +1194,7 @@ static PyObject *_wrap_wxGridCellRenderer_Clone(PyObject *self, PyObject *args,
 
     wxPyEndAllowThreads(__tstate);
     if (PyErr_Occurred()) return NULL;
-}    if (_result) {
-        SWIG_MakePtr(_ptemp, (char *) _result,"_wxGridCellRenderer_p");
-        _resultobj = Py_BuildValue("s",_ptemp);
-    } else {
-        Py_INCREF(Py_None);
-        _resultobj = Py_None;
-    }
+}{ _resultobj = wxPyMake_wxGridCellRenderer(_result); }
     return _resultobj;
 }
 
@@ -1534,8 +1597,8 @@ static void *SwigwxGridCellDateTimeRendererTowxGridCellRenderer(void *ptr) {
 static PyObject *_wrap_new_wxGridCellDateTimeRenderer(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxGridCellDateTimeRenderer * _result;
-    wxString * _arg0 = (wxString *) &"%c";
-    wxString * _arg1 = (wxString *) &"%c";
+    wxString * _arg0 = (wxString *) &wxPyDateTimeFormatStr;
+    wxString * _arg1 = (wxString *) &wxPyDateTimeFormatStr;
     PyObject * _obj0 = 0;
     PyObject * _obj1 = 0;
     char *_kwnames[] = { "outformat","informat", NULL };
@@ -1600,7 +1663,7 @@ static void *SwigwxGridCellEnumRendererTowxGridCellRenderer(void *ptr) {
 static PyObject *_wrap_new_wxGridCellEnumRenderer(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxGridCellEnumRenderer * _result;
-    wxString * _arg0 = (wxString *) &"";
+    wxString * _arg0 = (wxString *) &wxPyEmptyString;
     PyObject * _obj0 = 0;
     char *_kwnames[] = { "choices", NULL };
     char _ptemp[128];
@@ -1676,6 +1739,41 @@ static PyObject *_wrap_new_wxGridCellAutoWrapStringRenderer(PyObject *self, PyOb
     return _resultobj;
 }
 
+static void  wxGridCellEditor__setOORInfo(wxGridCellEditor *self,PyObject * _self) {
+            self->SetClientObject(new wxPyOORClientData(_self));
+        }
+static PyObject *_wrap_wxGridCellEditor__setOORInfo(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxGridCellEditor * _arg0;
+    PyObject * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _obj1 = 0;
+    char *_kwnames[] = { "self","_self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxGridCellEditor__setOORInfo",_kwnames,&_argo0,&_obj1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGridCellEditor_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridCellEditor__setOORInfo. Expected _wxGridCellEditor_p.");
+        return NULL;
+        }
+    }
+{
+  _arg1 = _obj1;
+}
+{
+    PyThreadState* __tstate = wxPyBeginAllowThreads();
+    wxGridCellEditor__setOORInfo(_arg0,_arg1);
+
+    wxPyEndAllowThreads(__tstate);
+    if (PyErr_Occurred()) return NULL;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
 #define wxGridCellEditor_IsCreated(_swigobj)  (_swigobj->IsCreated())
 static PyObject *_wrap_wxGridCellEditor_IsCreated(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
@@ -2024,7 +2122,6 @@ static PyObject *_wrap_wxGridCellEditor_Clone(PyObject *self, PyObject *args, Py
     wxGridCellEditor * _arg0;
     PyObject * _argo0 = 0;
     char *_kwnames[] = { "self", NULL };
-    char _ptemp[128];
 
     self = self;
     if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxGridCellEditor_Clone",_kwnames,&_argo0)) 
@@ -2042,13 +2139,7 @@ static PyObject *_wrap_wxGridCellEditor_Clone(PyObject *self, PyObject *args, Py
 
     wxPyEndAllowThreads(__tstate);
     if (PyErr_Occurred()) return NULL;
-}    if (_result) {
-        SWIG_MakePtr(_ptemp, (char *) _result,"_wxGridCellEditor_p");
-        _resultobj = Py_BuildValue("s",_ptemp);
-    } else {
-        Py_INCREF(Py_None);
-        _resultobj = Py_None;
-    }
+}{ _resultobj = wxPyMake_wxGridCellEditor(_result); }
     return _resultobj;
 }
 
@@ -2971,7 +3062,7 @@ static void *SwigwxGridCellEnumEditorTowxGridCellEditor(void *ptr) {
 static PyObject *_wrap_new_wxGridCellEnumEditor(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxGridCellEnumEditor * _result;
-    wxString * _arg0 = (wxString *) &"";
+    wxString * _arg0 = (wxString *) &wxPyEmptyString;
     PyObject * _obj0 = 0;
     char *_kwnames[] = { "choices", NULL };
     char _ptemp[128];
@@ -3047,6 +3138,41 @@ static PyObject *_wrap_new_wxGridCellAutoWrapStringEditor(PyObject *self, PyObje
     return _resultobj;
 }
 
+static void  wxGridCellAttr__setOORInfo(wxGridCellAttr *self,PyObject * _self) {
+            self->SetClientObject(new wxPyOORClientData(_self));
+        }
+static PyObject *_wrap_wxGridCellAttr__setOORInfo(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxGridCellAttr * _arg0;
+    PyObject * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _obj1 = 0;
+    char *_kwnames[] = { "self","_self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxGridCellAttr__setOORInfo",_kwnames,&_argo0,&_obj1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGridCellAttr_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridCellAttr__setOORInfo. Expected _wxGridCellAttr_p.");
+        return NULL;
+        }
+    }
+{
+  _arg1 = _obj1;
+}
+{
+    PyThreadState* __tstate = wxPyBeginAllowThreads();
+    wxGridCellAttr__setOORInfo(_arg0,_arg1);
+
+    wxPyEndAllowThreads(__tstate);
+    if (PyErr_Occurred()) return NULL;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
 #define new_wxGridCellAttr(_swigarg0) (new wxGridCellAttr(_swigarg0))
 static PyObject *_wrap_new_wxGridCellAttr(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
@@ -3089,7 +3215,6 @@ static PyObject *_wrap_wxGridCellAttr_Clone(PyObject *self, PyObject *args, PyOb
     wxGridCellAttr * _arg0;
     PyObject * _argo0 = 0;
     char *_kwnames[] = { "self", NULL };
-    char _ptemp[128];
 
     self = self;
     if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxGridCellAttr_Clone",_kwnames,&_argo0)) 
@@ -3107,13 +3232,7 @@ static PyObject *_wrap_wxGridCellAttr_Clone(PyObject *self, PyObject *args, PyOb
 
     wxPyEndAllowThreads(__tstate);
     if (PyErr_Occurred()) return NULL;
-}    if (_result) {
-        SWIG_MakePtr(_ptemp, (char *) _result,"_wxGridCellAttr_p");
-        _resultobj = Py_BuildValue("s",_ptemp);
-    } else {
-        Py_INCREF(Py_None);
-        _resultobj = Py_None;
-    }
+}{ _resultobj = wxPyMake_wxGridCellAttr(_result); }
     return _resultobj;
 }
 
@@ -3828,7 +3947,6 @@ static PyObject *_wrap_wxGridCellAttr_GetRenderer(PyObject *self, PyObject *args
     PyObject * _argo0 = 0;
     PyObject * _argo1 = 0;
     char *_kwnames[] = { "self","grid","row","col", NULL };
-    char _ptemp[128];
 
     self = self;
     if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOii:wxGridCellAttr_GetRenderer",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3)) 
@@ -3853,13 +3971,7 @@ static PyObject *_wrap_wxGridCellAttr_GetRenderer(PyObject *self, PyObject *args
 
     wxPyEndAllowThreads(__tstate);
     if (PyErr_Occurred()) return NULL;
-}    if (_result) {
-        SWIG_MakePtr(_ptemp, (char *) _result,"_wxGridCellRenderer_p");
-        _resultobj = Py_BuildValue("s",_ptemp);
-    } else {
-        Py_INCREF(Py_None);
-        _resultobj = Py_None;
-    }
+}{ _resultobj = wxPyMake_wxGridCellRenderer(_result); }
     return _resultobj;
 }
 
@@ -3874,7 +3986,6 @@ static PyObject *_wrap_wxGridCellAttr_GetEditor(PyObject *self, PyObject *args,
     PyObject * _argo0 = 0;
     PyObject * _argo1 = 0;
     char *_kwnames[] = { "self","grid","row","col", NULL };
-    char _ptemp[128];
 
     self = self;
     if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOii:wxGridCellAttr_GetEditor",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3)) 
@@ -3899,13 +4010,7 @@ static PyObject *_wrap_wxGridCellAttr_GetEditor(PyObject *self, PyObject *args,
 
     wxPyEndAllowThreads(__tstate);
     if (PyErr_Occurred()) return NULL;
-}    if (_result) {
-        SWIG_MakePtr(_ptemp, (char *) _result,"_wxGridCellEditor_p");
-        _resultobj = Py_BuildValue("s",_ptemp);
-    } else {
-        Py_INCREF(Py_None);
-        _resultobj = Py_None;
-    }
+}{ _resultobj = wxPyMake_wxGridCellEditor(_result); }
     return _resultobj;
 }
 
@@ -4000,6 +4105,41 @@ static PyObject *_wrap_new_wxGridCellAttrProvider(PyObject *self, PyObject *args
     return _resultobj;
 }
 
+static void  wxGridCellAttrProvider__setOORInfo(wxGridCellAttrProvider *self,PyObject * _self) {
+            self->SetClientObject(new wxPyOORClientData(_self));
+        }
+static PyObject *_wrap_wxGridCellAttrProvider__setOORInfo(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxGridCellAttrProvider * _arg0;
+    PyObject * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _obj1 = 0;
+    char *_kwnames[] = { "self","_self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxGridCellAttrProvider__setOORInfo",_kwnames,&_argo0,&_obj1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGridCellAttrProvider_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridCellAttrProvider__setOORInfo. Expected _wxGridCellAttrProvider_p.");
+        return NULL;
+        }
+    }
+{
+  _arg1 = _obj1;
+}
+{
+    PyThreadState* __tstate = wxPyBeginAllowThreads();
+    wxGridCellAttrProvider__setOORInfo(_arg0,_arg1);
+
+    wxPyEndAllowThreads(__tstate);
+    if (PyErr_Occurred()) return NULL;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
 #define wxGridCellAttrProvider_GetAttr(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->GetAttr(_swigarg0,_swigarg1,_swigarg2))
 static PyObject *_wrap_wxGridCellAttrProvider_GetAttr(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
@@ -4010,7 +4150,6 @@ static PyObject *_wrap_wxGridCellAttrProvider_GetAttr(PyObject *self, PyObject *
     wxGridCellAttr::wxAttrKind  _arg3;
     PyObject * _argo0 = 0;
     char *_kwnames[] = { "self","row","col","kind", NULL };
-    char _ptemp[128];
 
     self = self;
     if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oiii:wxGridCellAttrProvider_GetAttr",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3)) 
@@ -4028,13 +4167,7 @@ static PyObject *_wrap_wxGridCellAttrProvider_GetAttr(PyObject *self, PyObject *
 
     wxPyEndAllowThreads(__tstate);
     if (PyErr_Occurred()) return NULL;
-}    if (_result) {
-        SWIG_MakePtr(_ptemp, (char *) _result,"_wxGridCellAttr_p");
-        _resultobj = Py_BuildValue("s",_ptemp);
-    } else {
-        Py_INCREF(Py_None);
-        _resultobj = Py_None;
-    }
+}{ _resultobj = wxPyMake_wxGridCellAttr(_result); }
     return _resultobj;
 }
 
@@ -4295,7 +4428,6 @@ static PyObject *_wrap_wxPyGridCellAttrProvider_base_GetAttr(PyObject *self, PyO
     wxGridCellAttr::wxAttrKind  _arg3;
     PyObject * _argo0 = 0;
     char *_kwnames[] = { "self","row","col","kind", NULL };
-    char _ptemp[128];
 
     self = self;
     if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oiii:wxPyGridCellAttrProvider_base_GetAttr",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3)) 
@@ -4313,13 +4445,7 @@ static PyObject *_wrap_wxPyGridCellAttrProvider_base_GetAttr(PyObject *self, PyO
 
     wxPyEndAllowThreads(__tstate);
     if (PyErr_Occurred()) return NULL;
-}    if (_result) {
-        SWIG_MakePtr(_ptemp, (char *) _result,"_wxGridCellAttr_p");
-        _resultobj = Py_BuildValue("s",_ptemp);
-    } else {
-        Py_INCREF(Py_None);
-        _resultobj = Py_None;
-    }
+}{ _resultobj = wxPyMake_wxGridCellAttr(_result); }
     return _resultobj;
 }
 
@@ -4446,6 +4572,41 @@ static void *SwigwxGridTableBaseTowxObject(void *ptr) {
     return (void *) dest;
 }
 
+static void  wxGridTableBase__setOORInfo(wxGridTableBase *self,PyObject * _self) {
+            self->SetClientObject(new wxPyOORClientData(_self));
+        }
+static PyObject *_wrap_wxGridTableBase__setOORInfo(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxGridTableBase * _arg0;
+    PyObject * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _obj1 = 0;
+    char *_kwnames[] = { "self","_self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxGridTableBase__setOORInfo",_kwnames,&_argo0,&_obj1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGridTableBase_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridTableBase__setOORInfo. Expected _wxGridTableBase_p.");
+        return NULL;
+        }
+    }
+{
+  _arg1 = _obj1;
+}
+{
+    PyThreadState* __tstate = wxPyBeginAllowThreads();
+    wxGridTableBase__setOORInfo(_arg0,_arg1);
+
+    wxPyEndAllowThreads(__tstate);
+    if (PyErr_Occurred()) return NULL;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
 #define wxGridTableBase_SetAttrProvider(_swigobj,_swigarg0)  (_swigobj->SetAttrProvider(_swigarg0))
 static PyObject *_wrap_wxGridTableBase_SetAttrProvider(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
@@ -4490,7 +4651,6 @@ static PyObject *_wrap_wxGridTableBase_GetAttrProvider(PyObject *self, PyObject
     wxGridTableBase * _arg0;
     PyObject * _argo0 = 0;
     char *_kwnames[] = { "self", NULL };
-    char _ptemp[128];
 
     self = self;
     if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxGridTableBase_GetAttrProvider",_kwnames,&_argo0)) 
@@ -4508,13 +4668,7 @@ static PyObject *_wrap_wxGridTableBase_GetAttrProvider(PyObject *self, PyObject
 
     wxPyEndAllowThreads(__tstate);
     if (PyErr_Occurred()) return NULL;
-}    if (_result) {
-        SWIG_MakePtr(_ptemp, (char *) _result,"_wxGridCellAttrProvider_p");
-        _resultobj = Py_BuildValue("s",_ptemp);
-    } else {
-        Py_INCREF(Py_None);
-        _resultobj = Py_None;
-    }
+}{ _resultobj = wxPyMake_wxGridCellAttrProvider(_result); }
     return _resultobj;
 }
 
@@ -5455,7 +5609,6 @@ static PyObject *_wrap_wxGridTableBase_GetAttr(PyObject *self, PyObject *args, P
     wxGridCellAttr::wxAttrKind  _arg3;
     PyObject * _argo0 = 0;
     char *_kwnames[] = { "self","row","col","kind", NULL };
-    char _ptemp[128];
 
     self = self;
     if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oiii:wxGridTableBase_GetAttr",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3)) 
@@ -5473,13 +5626,7 @@ static PyObject *_wrap_wxGridTableBase_GetAttr(PyObject *self, PyObject *args, P
 
     wxPyEndAllowThreads(__tstate);
     if (PyErr_Occurred()) return NULL;
-}    if (_result) {
-        SWIG_MakePtr(_ptemp, (char *) _result,"_wxGridCellAttr_p");
-        _resultobj = Py_BuildValue("s",_ptemp);
-    } else {
-        Py_INCREF(Py_None);
-        _resultobj = Py_None;
-    }
+}{ _resultobj = wxPyMake_wxGridCellAttr(_result); }
     return _resultobj;
 }
 
@@ -6227,7 +6374,6 @@ static PyObject *_wrap_wxPyGridTableBase_base_GetAttr(PyObject *self, PyObject *
     wxGridCellAttr::wxAttrKind  _arg3;
     PyObject * _argo0 = 0;
     char *_kwnames[] = { "self","row","col","kind", NULL };
-    char _ptemp[128];
 
     self = self;
     if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oiii:wxPyGridTableBase_base_GetAttr",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3)) 
@@ -6245,13 +6391,7 @@ static PyObject *_wrap_wxPyGridTableBase_base_GetAttr(PyObject *self, PyObject *
 
     wxPyEndAllowThreads(__tstate);
     if (PyErr_Occurred()) return NULL;
-}    if (_result) {
-        SWIG_MakePtr(_ptemp, (char *) _result,"_wxGridCellAttr_p");
-        _resultobj = Py_BuildValue("s",_ptemp);
-    } else {
-        Py_INCREF(Py_None);
-        _resultobj = Py_None;
-    }
+}{ _resultobj = wxPyMake_wxGridCellAttr(_result); }
     return _resultobj;
 }
 
@@ -6541,7 +6681,7 @@ static PyObject *_wrap_wxGridTableMessage_GetTableObject(PyObject *self, PyObjec
 
     wxPyEndAllowThreads(__tstate);
     if (PyErr_Occurred()) return NULL;
-}{ _resultobj = wxPyMake_wxObject(_result); }
+}{ _resultobj = wxPyMake_wxGridTableBase(_result); }
     return _resultobj;
 }
 
@@ -7274,7 +7414,7 @@ static PyObject *_wrap_wxGrid_GetTable(PyObject *self, PyObject *args, PyObject
 
     wxPyEndAllowThreads(__tstate);
     if (PyErr_Occurred()) return NULL;
-}{ _resultobj = wxPyMake_wxObject(_result); }
+}{ _resultobj = wxPyMake_wxGridTableBase(_result); }
     return _resultobj;
 }
 
@@ -11351,7 +11491,6 @@ static PyObject *_wrap_wxGrid_GetDefaultRenderer(PyObject *self, PyObject *args,
     wxGrid * _arg0;
     PyObject * _argo0 = 0;
     char *_kwnames[] = { "self", NULL };
-    char _ptemp[128];
 
     self = self;
     if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxGrid_GetDefaultRenderer",_kwnames,&_argo0)) 
@@ -11369,13 +11508,7 @@ static PyObject *_wrap_wxGrid_GetDefaultRenderer(PyObject *self, PyObject *args,
 
     wxPyEndAllowThreads(__tstate);
     if (PyErr_Occurred()) return NULL;
-}    if (_result) {
-        SWIG_MakePtr(_ptemp, (char *) _result,"_wxGridCellRenderer_p");
-        _resultobj = Py_BuildValue("s",_ptemp);
-    } else {
-        Py_INCREF(Py_None);
-        _resultobj = Py_None;
-    }
+}{ _resultobj = wxPyMake_wxGridCellRenderer(_result); }
     return _resultobj;
 }
 
@@ -11388,7 +11521,6 @@ static PyObject *_wrap_wxGrid_GetCellRenderer(PyObject *self, PyObject *args, Py
     int  _arg2;
     PyObject * _argo0 = 0;
     char *_kwnames[] = { "self","row","col", NULL };
-    char _ptemp[128];
 
     self = self;
     if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oii:wxGrid_GetCellRenderer",_kwnames,&_argo0,&_arg1,&_arg2)) 
@@ -11406,13 +11538,7 @@ static PyObject *_wrap_wxGrid_GetCellRenderer(PyObject *self, PyObject *args, Py
 
     wxPyEndAllowThreads(__tstate);
     if (PyErr_Occurred()) return NULL;
-}    if (_result) {
-        SWIG_MakePtr(_ptemp, (char *) _result,"_wxGridCellRenderer_p");
-        _resultobj = Py_BuildValue("s",_ptemp);
-    } else {
-        Py_INCREF(Py_None);
-        _resultobj = Py_None;
-    }
+}{ _resultobj = wxPyMake_wxGridCellRenderer(_result); }
     return _resultobj;
 }
 
@@ -11499,7 +11625,6 @@ static PyObject *_wrap_wxGrid_GetDefaultEditor(PyObject *self, PyObject *args, P
     wxGrid * _arg0;
     PyObject * _argo0 = 0;
     char *_kwnames[] = { "self", NULL };
-    char _ptemp[128];
 
     self = self;
     if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxGrid_GetDefaultEditor",_kwnames,&_argo0)) 
@@ -11517,13 +11642,7 @@ static PyObject *_wrap_wxGrid_GetDefaultEditor(PyObject *self, PyObject *args, P
 
     wxPyEndAllowThreads(__tstate);
     if (PyErr_Occurred()) return NULL;
-}    if (_result) {
-        SWIG_MakePtr(_ptemp, (char *) _result,"_wxGridCellEditor_p");
-        _resultobj = Py_BuildValue("s",_ptemp);
-    } else {
-        Py_INCREF(Py_None);
-        _resultobj = Py_None;
-    }
+}{ _resultobj = wxPyMake_wxGridCellEditor(_result); }
     return _resultobj;
 }
 
@@ -11536,7 +11655,6 @@ static PyObject *_wrap_wxGrid_GetCellEditor(PyObject *self, PyObject *args, PyOb
     int  _arg2;
     PyObject * _argo0 = 0;
     char *_kwnames[] = { "self","row","col", NULL };
-    char _ptemp[128];
 
     self = self;
     if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oii:wxGrid_GetCellEditor",_kwnames,&_argo0,&_arg1,&_arg2)) 
@@ -11554,13 +11672,7 @@ static PyObject *_wrap_wxGrid_GetCellEditor(PyObject *self, PyObject *args, PyOb
 
     wxPyEndAllowThreads(__tstate);
     if (PyErr_Occurred()) return NULL;
-}    if (_result) {
-        SWIG_MakePtr(_ptemp, (char *) _result,"_wxGridCellEditor_p");
-        _resultobj = Py_BuildValue("s",_ptemp);
-    } else {
-        Py_INCREF(Py_None);
-        _resultobj = Py_None;
-    }
+}{ _resultobj = wxPyMake_wxGridCellEditor(_result); }
     return _resultobj;
 }
 
@@ -12164,7 +12276,6 @@ static PyObject *_wrap_wxGrid_GetDefaultEditorForCell(PyObject *self, PyObject *
     int  _arg2;
     PyObject * _argo0 = 0;
     char *_kwnames[] = { "self","row","col", NULL };
-    char _ptemp[128];
 
     self = self;
     if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oii:wxGrid_GetDefaultEditorForCell",_kwnames,&_argo0,&_arg1,&_arg2)) 
@@ -12182,13 +12293,7 @@ static PyObject *_wrap_wxGrid_GetDefaultEditorForCell(PyObject *self, PyObject *
 
     wxPyEndAllowThreads(__tstate);
     if (PyErr_Occurred()) return NULL;
-}    if (_result) {
-        SWIG_MakePtr(_ptemp, (char *) _result,"_wxGridCellEditor_p");
-        _resultobj = Py_BuildValue("s",_ptemp);
-    } else {
-        Py_INCREF(Py_None);
-        _resultobj = Py_None;
-    }
+}{ _resultobj = wxPyMake_wxGridCellEditor(_result); }
     return _resultobj;
 }
 
@@ -12201,7 +12306,6 @@ static PyObject *_wrap_wxGrid_GetDefaultRendererForCell(PyObject *self, PyObject
     int  _arg2;
     PyObject * _argo0 = 0;
     char *_kwnames[] = { "self","row","col", NULL };
-    char _ptemp[128];
 
     self = self;
     if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oii:wxGrid_GetDefaultRendererForCell",_kwnames,&_argo0,&_arg1,&_arg2)) 
@@ -12219,13 +12323,7 @@ static PyObject *_wrap_wxGrid_GetDefaultRendererForCell(PyObject *self, PyObject
 
     wxPyEndAllowThreads(__tstate);
     if (PyErr_Occurred()) return NULL;
-}    if (_result) {
-        SWIG_MakePtr(_ptemp, (char *) _result,"_wxGridCellRenderer_p");
-        _resultobj = Py_BuildValue("s",_ptemp);
-    } else {
-        Py_INCREF(Py_None);
-        _resultobj = Py_None;
-    }
+}{ _resultobj = wxPyMake_wxGridCellRenderer(_result); }
     return _resultobj;
 }
 
@@ -12238,7 +12336,6 @@ static PyObject *_wrap_wxGrid_GetDefaultEditorForType(PyObject *self, PyObject *
     PyObject * _argo0 = 0;
     PyObject * _obj1 = 0;
     char *_kwnames[] = { "self","typeName", NULL };
-    char _ptemp[128];
 
     self = self;
     if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxGrid_GetDefaultEditorForType",_kwnames,&_argo0,&_obj1)) 
@@ -12261,13 +12358,7 @@ static PyObject *_wrap_wxGrid_GetDefaultEditorForType(PyObject *self, PyObject *
 
     wxPyEndAllowThreads(__tstate);
     if (PyErr_Occurred()) return NULL;
-}    if (_result) {
-        SWIG_MakePtr(_ptemp, (char *) _result,"_wxGridCellEditor_p");
-        _resultobj = Py_BuildValue("s",_ptemp);
-    } else {
-        Py_INCREF(Py_None);
-        _resultobj = Py_None;
-    }
+}{ _resultobj = wxPyMake_wxGridCellEditor(_result); }
 {
     if (_obj1)
         delete _arg1;
@@ -12284,7 +12375,6 @@ static PyObject *_wrap_wxGrid_GetDefaultRendererForType(PyObject *self, PyObject
     PyObject * _argo0 = 0;
     PyObject * _obj1 = 0;
     char *_kwnames[] = { "self","typeName", NULL };
-    char _ptemp[128];
 
     self = self;
     if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxGrid_GetDefaultRendererForType",_kwnames,&_argo0,&_obj1)) 
@@ -12307,13 +12397,7 @@ static PyObject *_wrap_wxGrid_GetDefaultRendererForType(PyObject *self, PyObject
 
     wxPyEndAllowThreads(__tstate);
     if (PyErr_Occurred()) return NULL;
-}    if (_result) {
-        SWIG_MakePtr(_ptemp, (char *) _result,"_wxGridCellRenderer_p");
-        _resultobj = Py_BuildValue("s",_ptemp);
-    } else {
-        Py_INCREF(Py_None);
-        _resultobj = Py_None;
-    }
+}{ _resultobj = wxPyMake_wxGridCellRenderer(_result); }
 {
     if (_obj1)
         delete _arg1;
@@ -13970,6 +14054,7 @@ static PyMethodDef gridcMethods[] = {
         { "wxGridTableBase_SetView", (PyCFunction) _wrap_wxGridTableBase_SetView, METH_VARARGS | METH_KEYWORDS },
         { "wxGridTableBase_GetAttrProvider", (PyCFunction) _wrap_wxGridTableBase_GetAttrProvider, METH_VARARGS | METH_KEYWORDS },
         { "wxGridTableBase_SetAttrProvider", (PyCFunction) _wrap_wxGridTableBase_SetAttrProvider, METH_VARARGS | METH_KEYWORDS },
+        { "wxGridTableBase__setOORInfo", (PyCFunction) _wrap_wxGridTableBase__setOORInfo, METH_VARARGS | METH_KEYWORDS },
         { "wxPyGridCellAttrProvider_base_SetColAttr", (PyCFunction) _wrap_wxPyGridCellAttrProvider_base_SetColAttr, METH_VARARGS | METH_KEYWORDS },
         { "wxPyGridCellAttrProvider_base_SetRowAttr", (PyCFunction) _wrap_wxPyGridCellAttrProvider_base_SetRowAttr, METH_VARARGS | METH_KEYWORDS },
         { "wxPyGridCellAttrProvider_base_SetAttr", (PyCFunction) _wrap_wxPyGridCellAttrProvider_base_SetAttr, METH_VARARGS | METH_KEYWORDS },
@@ -13982,6 +14067,7 @@ static PyMethodDef gridcMethods[] = {
         { "wxGridCellAttrProvider_SetRowAttr", (PyCFunction) _wrap_wxGridCellAttrProvider_SetRowAttr, METH_VARARGS | METH_KEYWORDS },
         { "wxGridCellAttrProvider_SetAttr", (PyCFunction) _wrap_wxGridCellAttrProvider_SetAttr, METH_VARARGS | METH_KEYWORDS },
         { "wxGridCellAttrProvider_GetAttr", (PyCFunction) _wrap_wxGridCellAttrProvider_GetAttr, METH_VARARGS | METH_KEYWORDS },
+        { "wxGridCellAttrProvider__setOORInfo", (PyCFunction) _wrap_wxGridCellAttrProvider__setOORInfo, METH_VARARGS | METH_KEYWORDS },
         { "new_wxGridCellAttrProvider", (PyCFunction) _wrap_new_wxGridCellAttrProvider, METH_VARARGS | METH_KEYWORDS },
         { "wxGridCellAttr_SetDefAttr", (PyCFunction) _wrap_wxGridCellAttr_SetDefAttr, METH_VARARGS | METH_KEYWORDS },
         { "wxGridCellAttr_IsReadOnly", (PyCFunction) _wrap_wxGridCellAttr_IsReadOnly, METH_VARARGS | METH_KEYWORDS },
@@ -14011,6 +14097,7 @@ static PyMethodDef gridcMethods[] = {
         { "wxGridCellAttr_MergeWith", (PyCFunction) _wrap_wxGridCellAttr_MergeWith, METH_VARARGS | METH_KEYWORDS },
         { "wxGridCellAttr_Clone", (PyCFunction) _wrap_wxGridCellAttr_Clone, METH_VARARGS | METH_KEYWORDS },
         { "new_wxGridCellAttr", (PyCFunction) _wrap_new_wxGridCellAttr, METH_VARARGS | METH_KEYWORDS },
+        { "wxGridCellAttr__setOORInfo", (PyCFunction) _wrap_wxGridCellAttr__setOORInfo, METH_VARARGS | METH_KEYWORDS },
         { "new_wxGridCellAutoWrapStringEditor", (PyCFunction) _wrap_new_wxGridCellAutoWrapStringEditor, METH_VARARGS | METH_KEYWORDS },
         { "new_wxGridCellEnumEditor", (PyCFunction) _wrap_new_wxGridCellEnumEditor, METH_VARARGS | METH_KEYWORDS },
         { "new_wxGridCellChoiceEditor", (PyCFunction) _wrap_new_wxGridCellChoiceEditor, METH_VARARGS | METH_KEYWORDS },
@@ -14048,6 +14135,7 @@ static PyMethodDef gridcMethods[] = {
         { "wxGridCellEditor_SetControl", (PyCFunction) _wrap_wxGridCellEditor_SetControl, METH_VARARGS | METH_KEYWORDS },
         { "wxGridCellEditor_GetControl", (PyCFunction) _wrap_wxGridCellEditor_GetControl, METH_VARARGS | METH_KEYWORDS },
         { "wxGridCellEditor_IsCreated", (PyCFunction) _wrap_wxGridCellEditor_IsCreated, METH_VARARGS | METH_KEYWORDS },
+        { "wxGridCellEditor__setOORInfo", (PyCFunction) _wrap_wxGridCellEditor__setOORInfo, METH_VARARGS | METH_KEYWORDS },
         { "new_wxGridCellAutoWrapStringRenderer", (PyCFunction) _wrap_new_wxGridCellAutoWrapStringRenderer, METH_VARARGS | METH_KEYWORDS },
         { "new_wxGridCellEnumRenderer", (PyCFunction) _wrap_new_wxGridCellEnumRenderer, METH_VARARGS | METH_KEYWORDS },
         { "new_wxGridCellDateTimeRenderer", (PyCFunction) _wrap_new_wxGridCellDateTimeRenderer, METH_VARARGS | METH_KEYWORDS },
@@ -14068,6 +14156,7 @@ static PyMethodDef gridcMethods[] = {
         { "wxGridCellRenderer_DecRef", (PyCFunction) _wrap_wxGridCellRenderer_DecRef, METH_VARARGS | METH_KEYWORDS },
         { "wxGridCellRenderer_IncRef", (PyCFunction) _wrap_wxGridCellRenderer_IncRef, METH_VARARGS | METH_KEYWORDS },
         { "wxGridCellRenderer_SetParameters", (PyCFunction) _wrap_wxGridCellRenderer_SetParameters, METH_VARARGS | METH_KEYWORDS },
+        { "wxGridCellRenderer__setOORInfo", (PyCFunction) _wrap_wxGridCellRenderer__setOORInfo, METH_VARARGS | METH_KEYWORDS },
         { NULL, NULL }
 };
 #ifdef __cplusplus
@@ -14260,6 +14349,8 @@ SWIGEXPORT(void) initgridc() {
         PyDict_SetItemString(d,"wxGRID_VALUE_CHOICE", PyString_FromString("choice"));
         PyDict_SetItemString(d,"wxGRID_VALUE_TEXT", PyString_FromString("string"));
         PyDict_SetItemString(d,"wxGRID_VALUE_LONG", PyString_FromString("long"));
+        PyDict_SetItemString(d,"wxGRID_VALUE_CHOICEINT", PyString_FromString("choiceint"));
+        PyDict_SetItemString(d,"wxGRID_VALUE_DATETIME", PyString_FromString("datetime"));
         PyDict_SetItemString(d,"cvar", SWIG_globals);
         SWIG_addvarlink(SWIG_globals,"wxGridNoCellCoords",_wrap_wxGridNoCellCoords_get, _wrap_wxGridNoCellCoords_set);
         SWIG_addvarlink(SWIG_globals,"wxGridNoCellRect",_wrap_wxGridNoCellRect_get, _wrap_wxGridNoCellRect_set);
index cfbddc55b44633e4eedfa2261907637eafed8667..36e48aae8b4566de9b99688bc2df621d51e819f3 100644 (file)
@@ -69,6 +69,9 @@ class wxGridCellRendererPtr :
     def __init__(self,this):
         self.this = this
         self.thisown = 0
+    def _setOORInfo(self, *_args, **_kwargs):
+        val = apply(gridc.wxGridCellRenderer__setOORInfo,(self,) + _args, _kwargs)
+        return val
     def SetParameters(self, *_args, **_kwargs):
         val = apply(gridc.wxGridCellRenderer_SetParameters,(self,) + _args, _kwargs)
         return val
@@ -87,7 +90,6 @@ class wxGridCellRendererPtr :
         return val
     def Clone(self, *_args, **_kwargs):
         val = apply(gridc.wxGridCellRenderer_Clone,(self,) + _args, _kwargs)
-        if val: val = wxGridCellRendererPtr(val) 
         return val
     def __repr__(self):
         return "<C wxGridCellRenderer instance at %s>" % (self.this,)
@@ -115,6 +117,7 @@ class wxPyGridCellRenderer(wxPyGridCellRendererPtr):
         self.this = apply(gridc.new_wxPyGridCellRenderer,_args,_kwargs)
         self.thisown = 1
         self._setCallbackInfo(self, wxPyGridCellRenderer)
+        self._setOORInfo(self)
 
 
 
@@ -129,6 +132,7 @@ class wxGridCellStringRenderer(wxGridCellStringRendererPtr):
     def __init__(self,*_args,**_kwargs):
         self.this = apply(gridc.new_wxGridCellStringRenderer,_args,_kwargs)
         self.thisown = 1
+        self._setOORInfo(self)
 
 
 
@@ -143,6 +147,7 @@ class wxGridCellNumberRenderer(wxGridCellNumberRendererPtr):
     def __init__(self,*_args,**_kwargs):
         self.this = apply(gridc.new_wxGridCellNumberRenderer,_args,_kwargs)
         self.thisown = 1
+        self._setOORInfo(self)
 
 
 
@@ -169,6 +174,7 @@ class wxGridCellFloatRenderer(wxGridCellFloatRendererPtr):
     def __init__(self,*_args,**_kwargs):
         self.this = apply(gridc.new_wxGridCellFloatRenderer,_args,_kwargs)
         self.thisown = 1
+        self._setOORInfo(self)
 
 
 
@@ -183,6 +189,7 @@ class wxGridCellBoolRenderer(wxGridCellBoolRendererPtr):
     def __init__(self,*_args,**_kwargs):
         self.this = apply(gridc.new_wxGridCellBoolRenderer,_args,_kwargs)
         self.thisown = 1
+        self._setOORInfo(self)
 
 
 
@@ -197,6 +204,7 @@ class wxGridCellDateTimeRenderer(wxGridCellDateTimeRendererPtr):
     def __init__(self,*_args,**_kwargs):
         self.this = apply(gridc.new_wxGridCellDateTimeRenderer,_args,_kwargs)
         self.thisown = 1
+        self._setOORInfo(self)
 
 
 
@@ -211,6 +219,7 @@ class wxGridCellEnumRenderer(wxGridCellEnumRendererPtr):
     def __init__(self,*_args,**_kwargs):
         self.this = apply(gridc.new_wxGridCellEnumRenderer,_args,_kwargs)
         self.thisown = 1
+        self._setOORInfo(self)
 
 
 
@@ -225,6 +234,7 @@ class wxGridCellAutoWrapStringRenderer(wxGridCellAutoWrapStringRendererPtr):
     def __init__(self,*_args,**_kwargs):
         self.this = apply(gridc.new_wxGridCellAutoWrapStringRenderer,_args,_kwargs)
         self.thisown = 1
+        self._setOORInfo(self)
 
 
 
@@ -233,6 +243,9 @@ class wxGridCellEditorPtr :
     def __init__(self,this):
         self.this = this
         self.thisown = 0
+    def _setOORInfo(self, *_args, **_kwargs):
+        val = apply(gridc.wxGridCellEditor__setOORInfo,(self,) + _args, _kwargs)
+        return val
     def IsCreated(self, *_args, **_kwargs):
         val = apply(gridc.wxGridCellEditor_IsCreated,(self,) + _args, _kwargs)
         return val
@@ -265,7 +278,6 @@ class wxGridCellEditorPtr :
         return val
     def Clone(self, *_args, **_kwargs):
         val = apply(gridc.wxGridCellEditor_Clone,(self,) + _args, _kwargs)
-        if val: val = wxGridCellEditorPtr(val) 
         return val
     def SetSize(self, *_args, **_kwargs):
         val = apply(gridc.wxGridCellEditor_SetSize,(self,) + _args, _kwargs)
@@ -341,6 +353,7 @@ class wxPyGridCellEditor(wxPyGridCellEditorPtr):
         self.this = apply(gridc.new_wxPyGridCellEditor,_args,_kwargs)
         self.thisown = 1
         self._setCallbackInfo(self, wxPyGridCellEditor)
+        self._setOORInfo(self)
 
 
 
@@ -355,6 +368,7 @@ class wxGridCellTextEditor(wxGridCellTextEditorPtr):
     def __init__(self,*_args,**_kwargs):
         self.this = apply(gridc.new_wxGridCellTextEditor,_args,_kwargs)
         self.thisown = 1
+        self._setOORInfo(self)
 
 
 
@@ -369,6 +383,7 @@ class wxGridCellNumberEditor(wxGridCellNumberEditorPtr):
     def __init__(self,*_args,**_kwargs):
         self.this = apply(gridc.new_wxGridCellNumberEditor,_args,_kwargs)
         self.thisown = 1
+        self._setOORInfo(self)
 
 
 
@@ -383,6 +398,7 @@ class wxGridCellFloatEditor(wxGridCellFloatEditorPtr):
     def __init__(self,*_args,**_kwargs):
         self.this = apply(gridc.new_wxGridCellFloatEditor,_args,_kwargs)
         self.thisown = 1
+        self._setOORInfo(self)
 
 
 
@@ -397,6 +413,7 @@ class wxGridCellBoolEditor(wxGridCellBoolEditorPtr):
     def __init__(self,*_args,**_kwargs):
         self.this = apply(gridc.new_wxGridCellBoolEditor,_args,_kwargs)
         self.thisown = 1
+        self._setOORInfo(self)
 
 
 
@@ -411,6 +428,7 @@ class wxGridCellChoiceEditor(wxGridCellChoiceEditorPtr):
     def __init__(self,*_args,**_kwargs):
         self.this = apply(gridc.new_wxGridCellChoiceEditor,_args,_kwargs)
         self.thisown = 1
+        self._setOORInfo(self)
 
 
 
@@ -425,6 +443,7 @@ class wxGridCellEnumEditor(wxGridCellEnumEditorPtr):
     def __init__(self,*_args,**_kwargs):
         self.this = apply(gridc.new_wxGridCellEnumEditor,_args,_kwargs)
         self.thisown = 1
+        self._setOORInfo(self)
 
 
 
@@ -439,6 +458,7 @@ class wxGridCellAutoWrapStringEditor(wxGridCellAutoWrapStringEditorPtr):
     def __init__(self,*_args,**_kwargs):
         self.this = apply(gridc.new_wxGridCellAutoWrapStringEditor,_args,_kwargs)
         self.thisown = 1
+        self._setOORInfo(self)
 
 
 
@@ -453,9 +473,11 @@ class wxGridCellAttrPtr :
     def __init__(self,this):
         self.this = this
         self.thisown = 0
+    def _setOORInfo(self, *_args, **_kwargs):
+        val = apply(gridc.wxGridCellAttr__setOORInfo,(self,) + _args, _kwargs)
+        return val
     def Clone(self, *_args, **_kwargs):
         val = apply(gridc.wxGridCellAttr_Clone,(self,) + _args, _kwargs)
-        if val: val = wxGridCellAttrPtr(val) 
         return val
     def MergeWith(self, *_args, **_kwargs):
         val = apply(gridc.wxGridCellAttr_MergeWith,(self,) + _args, _kwargs)
@@ -528,11 +550,9 @@ class wxGridCellAttrPtr :
         return val
     def GetRenderer(self, *_args, **_kwargs):
         val = apply(gridc.wxGridCellAttr_GetRenderer,(self,) + _args, _kwargs)
-        if val: val = wxGridCellRendererPtr(val) 
         return val
     def GetEditor(self, *_args, **_kwargs):
         val = apply(gridc.wxGridCellAttr_GetEditor,(self,) + _args, _kwargs)
-        if val: val = wxGridCellEditorPtr(val) 
         return val
     def IsReadOnly(self, *_args, **_kwargs):
         val = apply(gridc.wxGridCellAttr_IsReadOnly,(self,) + _args, _kwargs)
@@ -546,6 +566,7 @@ class wxGridCellAttr(wxGridCellAttrPtr):
     def __init__(self,*_args,**_kwargs):
         self.this = apply(gridc.new_wxGridCellAttr,_args,_kwargs)
         self.thisown = 1
+        self._setOORInfo(self)
 
 
 
@@ -554,9 +575,11 @@ class wxGridCellAttrProviderPtr :
     def __init__(self,this):
         self.this = this
         self.thisown = 0
+    def _setOORInfo(self, *_args, **_kwargs):
+        val = apply(gridc.wxGridCellAttrProvider__setOORInfo,(self,) + _args, _kwargs)
+        return val
     def GetAttr(self, *_args, **_kwargs):
         val = apply(gridc.wxGridCellAttrProvider_GetAttr,(self,) + _args, _kwargs)
-        if val: val = wxGridCellAttrPtr(val) 
         return val
     def SetAttr(self, *_args, **_kwargs):
         val = apply(gridc.wxGridCellAttrProvider_SetAttr,(self,) + _args, _kwargs)
@@ -579,6 +602,7 @@ class wxGridCellAttrProvider(wxGridCellAttrProviderPtr):
     def __init__(self,*_args,**_kwargs):
         self.this = apply(gridc.new_wxGridCellAttrProvider,_args,_kwargs)
         self.thisown = 1
+        self._setOORInfo(self)
 
 
 
@@ -592,7 +616,6 @@ class wxPyGridCellAttrProviderPtr(wxGridCellAttrProviderPtr):
         return val
     def base_GetAttr(self, *_args, **_kwargs):
         val = apply(gridc.wxPyGridCellAttrProvider_base_GetAttr,(self,) + _args, _kwargs)
-        if val: val = wxGridCellAttrPtr(val) 
         return val
     def base_SetAttr(self, *_args, **_kwargs):
         val = apply(gridc.wxPyGridCellAttrProvider_base_SetAttr,(self,) + _args, _kwargs)
@@ -618,12 +641,14 @@ class wxGridTableBasePtr(wxObjectPtr):
     def __init__(self,this):
         self.this = this
         self.thisown = 0
+    def _setOORInfo(self, *_args, **_kwargs):
+        val = apply(gridc.wxGridTableBase__setOORInfo,(self,) + _args, _kwargs)
+        return val
     def SetAttrProvider(self, *_args, **_kwargs):
         val = apply(gridc.wxGridTableBase_SetAttrProvider,(self,) + _args, _kwargs)
         return val
     def GetAttrProvider(self, *_args, **_kwargs):
         val = apply(gridc.wxGridTableBase_GetAttrProvider,(self,) + _args, _kwargs)
-        if val: val = wxGridCellAttrProviderPtr(val) 
         return val
     def SetView(self, *_args, **_kwargs):
         val = apply(gridc.wxGridTableBase_SetView,(self,) + _args, _kwargs)
@@ -711,7 +736,6 @@ class wxGridTableBasePtr(wxObjectPtr):
         return val
     def GetAttr(self, *_args, **_kwargs):
         val = apply(gridc.wxGridTableBase_GetAttr,(self,) + _args, _kwargs)
-        if val: val = wxGridCellAttrPtr(val) 
         return val
     def SetAttr(self, *_args, **_kwargs):
         val = apply(gridc.wxGridTableBase_SetAttr,(self,) + _args, _kwargs)
@@ -788,7 +812,6 @@ class wxPyGridTableBasePtr(wxGridTableBasePtr):
         return val
     def base_GetAttr(self, *_args, **_kwargs):
         val = apply(gridc.wxPyGridTableBase_base_GetAttr,(self,) + _args, _kwargs)
-        if val: val = wxGridCellAttrPtr(val) 
         return val
     def base_SetAttr(self, *_args, **_kwargs):
         val = apply(gridc.wxPyGridTableBase_base_SetAttr,(self,) + _args, _kwargs)
@@ -806,6 +829,7 @@ class wxPyGridTableBase(wxPyGridTableBasePtr):
         self.this = apply(gridc.new_wxPyGridTableBase,_args,_kwargs)
         self.thisown = 1
         self._setCallbackInfo(self, wxPyGridTableBase)
+        self._setOORInfo(self)
 
 
 
@@ -820,6 +844,7 @@ class wxGridStringTable(wxGridStringTablePtr):
     def __init__(self,*_args,**_kwargs):
         self.this = apply(gridc.new_wxGridStringTable,_args,_kwargs)
         self.thisown = 1
+        self._setOORInfo(self)
 
 
 
@@ -1320,11 +1345,9 @@ class wxGridPtr(wxScrolledWindowPtr):
         return val
     def GetDefaultRenderer(self, *_args, **_kwargs):
         val = apply(gridc.wxGrid_GetDefaultRenderer,(self,) + _args, _kwargs)
-        if val: val = wxGridCellRendererPtr(val) 
         return val
     def GetCellRenderer(self, *_args, **_kwargs):
         val = apply(gridc.wxGrid_GetCellRenderer,(self,) + _args, _kwargs)
-        if val: val = wxGridCellRendererPtr(val) 
         return val
     def SetDefaultEditor(self, *_args, **_kwargs):
         val = apply(gridc.wxGrid_SetDefaultEditor,(self,) + _args, _kwargs)
@@ -1334,11 +1357,9 @@ class wxGridPtr(wxScrolledWindowPtr):
         return val
     def GetDefaultEditor(self, *_args, **_kwargs):
         val = apply(gridc.wxGrid_GetDefaultEditor,(self,) + _args, _kwargs)
-        if val: val = wxGridCellEditorPtr(val) 
         return val
     def GetCellEditor(self, *_args, **_kwargs):
         val = apply(gridc.wxGrid_GetCellEditor,(self,) + _args, _kwargs)
-        if val: val = wxGridCellEditorPtr(val) 
         return val
     def GetCellValue(self, *_args, **_kwargs):
         val = apply(gridc.wxGrid_GetCellValue,(self,) + _args, _kwargs)
@@ -1396,19 +1417,15 @@ class wxGridPtr(wxScrolledWindowPtr):
         return val
     def GetDefaultEditorForCell(self, *_args, **_kwargs):
         val = apply(gridc.wxGrid_GetDefaultEditorForCell,(self,) + _args, _kwargs)
-        if val: val = wxGridCellEditorPtr(val) 
         return val
     def GetDefaultRendererForCell(self, *_args, **_kwargs):
         val = apply(gridc.wxGrid_GetDefaultRendererForCell,(self,) + _args, _kwargs)
-        if val: val = wxGridCellRendererPtr(val) 
         return val
     def GetDefaultEditorForType(self, *_args, **_kwargs):
         val = apply(gridc.wxGrid_GetDefaultEditorForType,(self,) + _args, _kwargs)
-        if val: val = wxGridCellEditorPtr(val) 
         return val
     def GetDefaultRendererForType(self, *_args, **_kwargs):
         val = apply(gridc.wxGrid_GetDefaultRendererForType,(self,) + _args, _kwargs)
-        if val: val = wxGridCellRendererPtr(val) 
         return val
     def SetMargins(self, *_args, **_kwargs):
         val = apply(gridc.wxGrid_SetMargins,(self,) + _args, _kwargs)
@@ -1604,6 +1621,8 @@ wxGRID_VALUE_FLOAT = gridc.wxGRID_VALUE_FLOAT
 wxGRID_VALUE_CHOICE = gridc.wxGRID_VALUE_CHOICE
 wxGRID_VALUE_TEXT = gridc.wxGRID_VALUE_TEXT
 wxGRID_VALUE_LONG = gridc.wxGRID_VALUE_LONG
+wxGRID_VALUE_CHOICEINT = gridc.wxGRID_VALUE_CHOICEINT
+wxGRID_VALUE_DATETIME = gridc.wxGRID_VALUE_DATETIME
 cvar = gridc.cvar
 wxGridNoCellCoords = wxGridCellCoordsPtr(gridc.cvar.wxGridNoCellCoords)
 wxGridNoCellRect = wxRectPtr(gridc.cvar.wxGridNoCellRect)