X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e70b4d2db930a297f0625b7d43109f793fd3338a..3c69a2ec864e94f58243500ca6d41c980b0fa4fe:/wxPython/src/grid.i diff --git a/wxPython/src/grid.i b/wxPython/src/grid.i index 0c7718da11..2574e9edb4 100644 --- a/wxPython/src/grid.i +++ b/wxPython/src/grid.i @@ -523,16 +523,19 @@ public: class wxGridCellRenderer : public wxGridCellWorker { +public: virtual void Draw(wxGrid& grid, wxGridCellAttr& attr, wxDC& dc, const wxRect& rect, int row, int col, bool isSelected); + virtual wxSize GetBestSize(wxGrid& grid, wxGridCellAttr& attr, wxDC& dc, int row, int col); + virtual wxGridCellRenderer *Clone() const; }; @@ -590,6 +593,7 @@ public: rval = *ptr; } else if (PySequence_Check(ro) && PyObject_Length(ro) == 2) { + PyErr_Clear(); // Clear the exception left over from wxPyConvertSwigPtr PyObject* o1 = PySequence_GetItem(ro, 0); PyObject* o2 = PySequence_GetItem(ro, 1); if (PyNumber_Check(o1) && PyNumber_Check(o2)) @@ -640,7 +644,7 @@ IMP_PYCALLBACK__STRING( wxPyGridCellRenderer, wxGridCellRenderer, SetParameters) // Let SWIG know about it so it can create the Python version class wxPyGridCellRenderer : public wxGridCellRenderer { public: - %pythonAppend wxPyGridCellRenderer "self._setCallbackInfo(self, PyGridCellRenderer);self._setOORInfo(self)" + %pythonAppend wxPyGridCellRenderer "self._setOORInfo(self);" setCallbackInfo(PyGridCellRenderer); wxPyGridCellRenderer(); void _setCallbackInfo(PyObject* self, PyObject* _class); @@ -747,7 +751,7 @@ public: virtual void StartingClick(); virtual void HandleReturn(wxKeyEvent& event); - %pythonAppend Destroy "args[0].thisown = 0" + %pythonPrepend Destroy "args[0].this.own(False)" virtual void Destroy(); %property(CellAttr, GetCellAttr, SetCellAttr, doc="See `GetCellAttr` and `SetCellAttr`"); @@ -880,7 +884,7 @@ IMP_PYCALLBACK_STRING__constpure(wxPyGridCellEditor, wxGridCellEditor, GetValue) // Let SWIG know about it so it can create the Python version class wxPyGridCellEditor : public wxGridCellEditor { public: - %pythonAppend wxPyGridCellEditor "self._setCallbackInfo(self, PyGridCellEditor);self._setOORInfo(self)" + %pythonAppend wxPyGridCellEditor "self._setOORInfo(self);" setCallbackInfo(PyGridCellEditor) wxPyGridCellEditor(); void _setCallbackInfo(PyObject* self, PyObject* _class); @@ -936,11 +940,22 @@ public: }; +MAKE_CONST_WXSTRING2(OneString, _T("1")); class wxGridCellBoolEditor : public wxGridCellEditor { public: %pythonAppend wxGridCellBoolEditor "self._setOORInfo(self)" wxGridCellBoolEditor(); + + // set the string values returned by GetValue() for the true and false + // states, respectively + static void UseStringValues(const wxString& valueTrue = wxPyOneString, + const wxString& valueFalse = wxPyEmptyString); + + // return true if the given string is equal to the string representation of + // true value which we currently use + static bool IsTrueValue(const wxString& value); + }; class wxGridCellChoiceEditor : public wxGridCellEditor @@ -1109,7 +1124,7 @@ public: class wxPyGridCellAttrProvider : public wxGridCellAttrProvider { public: - %pythonAppend wxPyGridCellAttrProvider "self._setCallbackInfo(self, PyGridCellAttrProvider)" + %pythonAppend wxPyGridCellAttrProvider setCallbackInfo(PyGridCellAttrProvider) wxPyGridCellAttrProvider(); void _setCallbackInfo(PyObject* self, PyObject* _class); @@ -1338,11 +1353,11 @@ public: class wxPyGridTableBase : public wxGridTableBase { public: - %pythonAppend wxPyGridTableBase "self._setCallbackInfo(self, PyGridTableBase);self._setOORInfo(self)" + %pythonAppend wxPyGridTableBase "self._setOORInfo(self);" setCallbackInfo(PyGridTableBase) wxPyGridTableBase(); void _setCallbackInfo(PyObject* self, PyObject* _class); - %pythonAppend Destroy "args[0].thisown = 0" + %pythonPrepend Destroy "args[0].this.own(False)" %extend { void Destroy() { delete self; } } wxString GetTypeName( int row, int col ); @@ -1591,7 +1606,7 @@ public: def __str__(self): return str(self.Get()) def __repr__(self): return 'wxGridCellCoords'+str(self.Get()) def __len__(self): return len(self.Get()) - def __getitem__(self, index): return self.asTuple()[index] + def __getitem__(self, index): return self.Get()[index] def __setitem__(self, index, val): if index == 0: self.SetRow(val) elif index == 1: self.SetCol(val)