X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/dd9f7fea29e3f8bb61861f52984b7943512346ac..11f0bb6988110777c5ed8ef944cbdd8f8684d786:/wxPython/src/grid.i diff --git a/wxPython/src/grid.i b/wxPython/src/grid.i index ea4dbbafdb..1127faf0d8 100644 --- a/wxPython/src/grid.i +++ b/wxPython/src/grid.i @@ -20,9 +20,6 @@ #include #include - DECLARE_DEF_STRING(PanelNameStr); - DECLARE_DEF_STRING2(DateTimeFormatStr, wxT("%c")); - static const wxString wxPyEmptyString(wxT("")); %} @@ -31,8 +28,14 @@ %import windows.i %pythoncode { wx = core } + %include _grid_rename.i +MAKE_CONST_WXSTRING_NOSWIG(EmptyString); +MAKE_CONST_WXSTRING_NOSWIG(PanelNameStr); +MAKE_CONST_WXSTRING2(DateTimeFormatStr, wxT("%c")); + + //--------------------------------------------------------------------------- // OOR related typemaps and helper functions @@ -646,7 +649,7 @@ IMP_PYCALLBACK__STRING( wxPyGridCellRenderer, wxGridCellRenderer, SetParameters) // Let SWIG know about it so it can create the Python version class wxPyGridCellRenderer : public wxGridCellRenderer { public: - %addtofunc wxPyGridCellRenderer "self._setCallbackInfo(self, PyGridCellRenderer);self._setOORInfo(self)" + %pythonAppend wxPyGridCellRenderer "self._setCallbackInfo(self, PyGridCellRenderer);self._setOORInfo(self)" wxPyGridCellRenderer(); void _setCallbackInfo(PyObject* self, PyObject* _class); @@ -660,7 +663,7 @@ public: class wxGridCellStringRenderer : public wxGridCellRenderer { public: - %addtofunc wxGridCellStringRenderer "self._setOORInfo(self)" + %pythonAppend wxGridCellStringRenderer "self._setOORInfo(self)" wxGridCellStringRenderer(); }; @@ -668,7 +671,7 @@ public: class wxGridCellNumberRenderer : public wxGridCellStringRenderer { public: - %addtofunc wxGridCellNumberRenderer "self._setOORInfo(self)" + %pythonAppend wxGridCellNumberRenderer "self._setOORInfo(self)" wxGridCellNumberRenderer(); }; @@ -676,7 +679,7 @@ public: class wxGridCellFloatRenderer : public wxGridCellStringRenderer { public: - %addtofunc wxGridCellFloatRenderer "self._setOORInfo(self)" + %pythonAppend wxGridCellFloatRenderer "self._setOORInfo(self)" wxGridCellFloatRenderer(int width = -1, int precision = -1); int GetWidth() const; @@ -689,7 +692,7 @@ public: class wxGridCellBoolRenderer : public wxGridCellRenderer { public: - %addtofunc wxGridCellBoolRenderer "self._setOORInfo(self)" + %pythonAppend wxGridCellBoolRenderer "self._setOORInfo(self)" wxGridCellBoolRenderer(); }; @@ -697,7 +700,7 @@ public: class wxGridCellDateTimeRenderer : public wxGridCellStringRenderer { public: - %addtofunc wxGridCellDateTimeRenderer "self._setOORInfo(self)" + %pythonAppend wxGridCellDateTimeRenderer "self._setOORInfo(self)" wxGridCellDateTimeRenderer(wxString outformat = wxPyDateTimeFormatStr, wxString informat = wxPyDateTimeFormatStr); }; @@ -706,7 +709,7 @@ public: class wxGridCellEnumRenderer : public wxGridCellStringRenderer { public: - %addtofunc wxGridCellEnumRenderer "self._setOORInfo(self)" + %pythonAppend wxGridCellEnumRenderer "self._setOORInfo(self)" wxGridCellEnumRenderer( const wxString& choices = wxPyEmptyString ); }; @@ -714,7 +717,7 @@ public: class wxGridCellAutoWrapStringRenderer : public wxGridCellStringRenderer { public: - %addtofunc wxGridCellAutoWrapStringRenderer "self._setOORInfo(self)" + %pythonAppend wxGridCellAutoWrapStringRenderer "self._setOORInfo(self)" wxGridCellAutoWrapStringRenderer(); }; @@ -894,7 +897,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: - %addtofunc wxPyGridCellEditor "self._setCallbackInfo(self, PyGridCellEditor);self._setOORInfo(self)" + %pythonAppend wxPyGridCellEditor "self._setCallbackInfo(self, PyGridCellEditor);self._setOORInfo(self)" wxPyGridCellEditor(); void _setCallbackInfo(PyObject* self, PyObject* _class); @@ -916,7 +919,7 @@ public: class wxGridCellTextEditor : public wxGridCellEditor { public: - %addtofunc wxGridCellTextEditor "self._setOORInfo(self)" + %pythonAppend wxGridCellTextEditor "self._setOORInfo(self)" wxGridCellTextEditor(); virtual wxString GetValue(); }; @@ -925,7 +928,7 @@ public: class wxGridCellNumberEditor : public wxGridCellTextEditor { public: - %addtofunc wxGridCellNumberEditor "self._setOORInfo(self)" + %pythonAppend wxGridCellNumberEditor "self._setOORInfo(self)" wxGridCellNumberEditor(int min = -1, int max = -1); virtual wxString GetValue(); }; @@ -934,7 +937,7 @@ public: class wxGridCellFloatEditor : public wxGridCellTextEditor { public: - %addtofunc wxGridCellFloatEditor "self._setOORInfo(self)" + %pythonAppend wxGridCellFloatEditor "self._setOORInfo(self)" wxGridCellFloatEditor(); virtual wxString GetValue(); }; @@ -943,7 +946,7 @@ public: class wxGridCellBoolEditor : public wxGridCellEditor { public: - %addtofunc wxGridCellBoolEditor "self._setOORInfo(self)" + %pythonAppend wxGridCellBoolEditor "self._setOORInfo(self)" wxGridCellBoolEditor(); virtual wxString GetValue(); }; @@ -951,9 +954,9 @@ public: class wxGridCellChoiceEditor : public wxGridCellEditor { public: - %addtofunc wxGridCellChoiceEditor "self._setOORInfo(self)" - wxGridCellChoiceEditor(int LCOUNT = 0, - const wxString* choices = NULL, + %pythonAppend wxGridCellChoiceEditor "self._setOORInfo(self)" + wxGridCellChoiceEditor(int choices = 0, + const wxString* choices_array = NULL, bool allowOthers = False); virtual wxString GetValue(); }; @@ -962,7 +965,7 @@ public: class wxGridCellEnumEditor : public wxGridCellChoiceEditor { public: - %addtofunc wxGridCellEnumEditor "self._setOORInfo(self)" + %pythonAppend wxGridCellEnumEditor "self._setOORInfo(self)" wxGridCellEnumEditor( const wxString& choices = wxPyEmptyString ); virtual wxString GetValue(); }; @@ -971,7 +974,7 @@ public: class wxGridCellAutoWrapStringEditor : public wxGridCellTextEditor { public: - %addtofunc wxGridCellAutoWrapStringEditor "self._setOORInfo(self)" + %pythonAppend wxGridCellAutoWrapStringEditor "self._setOORInfo(self)" wxGridCellAutoWrapStringEditor(); virtual wxString GetValue(); }; @@ -1000,7 +1003,7 @@ public: } } - %addtofunc wxGridCellAttr "self._setOORInfo(self)" + %pythonAppend wxGridCellAttr "self._setOORInfo(self)" wxGridCellAttr(wxGridCellAttr *attrDefault = NULL); @@ -1032,8 +1035,15 @@ public: wxColour GetTextColour() const; wxColour GetBackgroundColour() const; wxFont GetFont() const; - void GetAlignment(int *OUTPUT, int *OUTPUT) const; - void GetSize(int *OUTPUT, int *OUTPUT) const; + + DocDeclA( + void, GetAlignment(int *OUTPUT, int *OUTPUT) const, + "GetAlignment() -> (hAlign, vAlign)"); + + DocDeclA( + void, GetSize(int *OUTPUT, int *OUTPUT) const, + "GetSize() -> (num_rows, num_cols)"); + bool GetOverflow() const; wxGridCellRenderer *GetRenderer(wxGrid* grid, int row, int col) const; wxGridCellEditor *GetEditor(wxGrid* grid, int row, int col) const; @@ -1047,7 +1057,7 @@ public: class wxGridCellAttrProvider { public: - %addtofunc wxGridCellAttrProvider "self._setOORInfo(self)" + %pythonAppend wxGridCellAttrProvider "self._setOORInfo(self)" wxGridCellAttrProvider(); // ???? virtual ~wxGridCellAttrProvider(); @@ -1090,7 +1100,7 @@ public: class wxPyGridCellAttrProvider : public wxGridCellAttrProvider { public: - %addtofunc wxPyGridCellAttrProvider "self._setCallbackInfo(self, PyGridCellAttrProvider)" + %pythonAppend wxPyGridCellAttrProvider "self._setCallbackInfo(self, PyGridCellAttrProvider)" wxPyGridCellAttrProvider(); void _setCallbackInfo(PyObject* self, PyObject* _class); @@ -1304,7 +1314,7 @@ public: class wxPyGridTableBase : public wxGridTableBase { public: - %addtofunc wxPyGridTableBase "self._setCallbackInfo(self, PyGridTableBase);self._setOORInfo(self)" + %pythonAppend wxPyGridTableBase "self._setCallbackInfo(self, PyGridTableBase);self._setOORInfo(self)" wxPyGridTableBase(); void _setCallbackInfo(PyObject* self, PyObject* _class); @@ -1339,7 +1349,7 @@ public: class wxGridStringTable : public wxGridTableBase { public: - %addtofunc wxGridStringTable "self._setOORInfo(self)" + %pythonAppend wxGridStringTable "self._setOORInfo(self)" wxGridStringTable( int numRows=0, int numCols=0 ); }; @@ -1382,42 +1392,6 @@ public: //--------------------------------------------------------------------------- -class wxGridCellCoords -{ -public: - wxGridCellCoords( int r=-1, int c=-1 ); - ~wxGridCellCoords(); - - int GetRow() const; - void SetRow( int n ); - int GetCol() const; - void SetCol( int n ); - void Set( int row, int col ); - - bool operator==( const wxGridCellCoords& other ) const; - bool operator!=( const wxGridCellCoords& other ) const; - - %extend { - PyObject* asTuple() { - PyObject* tup = PyTuple_New(2); - PyTuple_SET_ITEM(tup, 0, PyInt_FromLong(self->GetRow())); - PyTuple_SET_ITEM(tup, 1, PyInt_FromLong(self->GetCol())); - return tup; - } - } - %pythoncode { - def __str__(self): return str(self.asTuple()) - def __repr__(self): return 'wxGridCellCoords'+str(self.asTuple()) - def __len__(self): return len(self.asTuple()) - def __getitem__(self, index): return self.asTuple()[index] - def __setitem__(self, index, val): - if index == 0: self.SetRow(val) - elif index == 1: self.SetCol(val) - else: raise IndexError - } - -}; - // Typemap to allow conversion of sequence objects to wxGridCellCoords... %typemap(in) wxGridCellCoords& (wxGridCellCoords temp) { $1 = &temp; @@ -1432,6 +1406,11 @@ public: %{ bool wxGridCellCoords_helper(PyObject* source, wxGridCellCoords** obj) { + if (source == Py_None) { + **obj = wxGridCellCoords(-1,-1); + return True; + } + // If source is an object instance then it may already be the right type if (wxPySwigInstance_Check(source)) { wxGridCellCoords* ptr; @@ -1505,6 +1484,47 @@ PyObject* wxGridCellCoordsArray_helper(const wxGridCellCoordsArray& source) } %} + + + + +class wxGridCellCoords +{ +public: + wxGridCellCoords( int r=-1, int c=-1 ); + ~wxGridCellCoords(); + + int GetRow() const; + void SetRow( int n ); + int GetCol() const; + void SetCol( int n ); + void Set( int row, int col ); + + bool operator==( const wxGridCellCoords& other ) const; + bool operator!=( const wxGridCellCoords& other ) const; + + %extend { + PyObject* asTuple() { + PyObject* tup = PyTuple_New(2); + PyTuple_SET_ITEM(tup, 0, PyInt_FromLong(self->GetRow())); + PyTuple_SET_ITEM(tup, 1, PyInt_FromLong(self->GetCol())); + return tup; + } + } + %pythoncode { + def __str__(self): return str(self.asTuple()) + def __repr__(self): return 'wxGridCellCoords'+str(self.asTuple()) + def __len__(self): return len(self.asTuple()) + def __getitem__(self, index): return self.asTuple()[index] + def __setitem__(self, index, val): + if index == 0: self.SetRow(val) + elif index == 1: self.SetCol(val) + else: raise IndexError + } + +}; + + //--------------------------------------------------------------------------- //--------------------------------------------------------------------------- // The grid itself @@ -1523,7 +1543,7 @@ typedef wxGrid::wxGridSelectionModes WXGRIDSELECTIONMODES; class wxGrid : public wxScrolledWindow { public: - %addtofunc wxGrid "self._setOORInfo(self)" + %pythonAppend wxGrid "self._setOORInfo(self)" wxGrid( wxWindow *parent, wxWindowID id, @@ -1533,9 +1553,16 @@ public: const wxString& name = wxPyPanelNameStr); - enum wxGridSelectionModes {wxGridSelectCells, - wxGridSelectRows, - wxGridSelectColumns}; + enum wxGridSelectionModes { + wxGridSelectCells, + wxGridSelectRows, + wxGridSelectColumns + }; + %pythoncode { + SelectCells = wxGridSelectCells + SelectRows = wxGridSelectRows + SelectColumns = wxGridSelectColumns, + } bool CreateGrid( int numRows, int numCols, WXGRIDSELECTIONMODES selmode = wxGrid::wxGridSelectCells ); @@ -1583,9 +1610,10 @@ public: // // // void StringToLines( const wxString& value, wxArrayString& lines ); - void GetTextBoxSize( wxDC& dc, - wxArrayString& lines, - long *OUTPUT, long *OUTPUT ); + DocDeclA( + void, GetTextBoxSize( wxDC& dc, wxArrayString& lines, + long *OUTPUT, long *OUTPUT ), + "GetTextBoxSize(DC dc, list lines) -> (width, height)"); // ------ @@ -1679,8 +1707,15 @@ public: wxColour GetLabelBackgroundColour(); wxColour GetLabelTextColour(); wxFont GetLabelFont(); - void GetRowLabelAlignment( int *OUTPUT, int *OUTPUT ); - void GetColLabelAlignment( int *OUTPUT, int *OUTPUT ); + + DocDeclA( + void, GetRowLabelAlignment( int *OUTPUT, int *OUTPUT ), + "GetRowLabelAlignment() -> (horiz, vert)"); + + DocDeclA( + void, GetColLabelAlignment( int *OUTPUT, int *OUTPUT ), + "GetColLabelAlignment() -> (horiz, vert)"); + int GetColLabelTextOrientation(); wxString GetRowLabelValue( int row ); wxString GetColLabelValue( int col ); @@ -1742,11 +1777,21 @@ public: wxColour GetCellTextColour( int row, int col ); wxFont GetDefaultCellFont(); wxFont GetCellFont( int row, int col ); - void GetDefaultCellAlignment( int *OUTPUT, int *OUTPUT ); - void GetCellAlignment( int row, int col, int *OUTPUT, int *OUTPUT ); + + DocDeclA( + void, GetDefaultCellAlignment( int *OUTPUT, int *OUTPUT ), + "GetDefaultCellAlignment() -> (horiz, vert)"); + + DocDeclA( + void, GetCellAlignment( int row, int col, int *OUTPUT, int *OUTPUT ), + "GetCellAlignment() -> (horiz, vert)"); + bool GetDefaultCellOverflow(); bool GetCellOverflow( int row, int col ); - void GetCellSize( int row, int col, int *OUTPUT, int *OUTPUT ); + + DocDeclA( + void, GetCellSize( int row, int col, int *OUTPUT, int *OUTPUT ), + "GetCellSize(int row, int col) -> (num_rows, num_cols)"); void SetDefaultRowSize( int height, bool resizeExistingRows = False ); void SetRowSize( int row, int height );