#include <wx/grid.h>
#include <wx/generic/gridctrl.h>
- DECLARE_DEF_STRING(PanelNameStr);
- DECLARE_DEF_STRING2(DateTimeFormatStr, wxT("%c"));
- static const wxString wxPyEmptyString(wxT(""));
%}
%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
// 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);
class wxGridCellStringRenderer : public wxGridCellRenderer
{
public:
- %addtofunc wxGridCellStringRenderer "self._setOORInfo(self)"
+ %pythonAppend wxGridCellStringRenderer "self._setOORInfo(self)"
wxGridCellStringRenderer();
};
class wxGridCellNumberRenderer : public wxGridCellStringRenderer
{
public:
- %addtofunc wxGridCellNumberRenderer "self._setOORInfo(self)"
+ %pythonAppend wxGridCellNumberRenderer "self._setOORInfo(self)"
wxGridCellNumberRenderer();
};
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;
class wxGridCellBoolRenderer : public wxGridCellRenderer
{
public:
- %addtofunc wxGridCellBoolRenderer "self._setOORInfo(self)"
+ %pythonAppend wxGridCellBoolRenderer "self._setOORInfo(self)"
wxGridCellBoolRenderer();
};
class wxGridCellDateTimeRenderer : public wxGridCellStringRenderer
{
public:
- %addtofunc wxGridCellDateTimeRenderer "self._setOORInfo(self)"
+ %pythonAppend wxGridCellDateTimeRenderer "self._setOORInfo(self)"
wxGridCellDateTimeRenderer(wxString outformat = wxPyDateTimeFormatStr,
wxString informat = wxPyDateTimeFormatStr);
};
class wxGridCellEnumRenderer : public wxGridCellStringRenderer
{
public:
- %addtofunc wxGridCellEnumRenderer "self._setOORInfo(self)"
+ %pythonAppend wxGridCellEnumRenderer "self._setOORInfo(self)"
wxGridCellEnumRenderer( const wxString& choices = wxPyEmptyString );
};
class wxGridCellAutoWrapStringRenderer : public wxGridCellStringRenderer
{
public:
- %addtofunc wxGridCellAutoWrapStringRenderer "self._setOORInfo(self)"
+ %pythonAppend wxGridCellAutoWrapStringRenderer "self._setOORInfo(self)"
wxGridCellAutoWrapStringRenderer();
};
// 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);
class wxGridCellTextEditor : public wxGridCellEditor
{
public:
- %addtofunc wxGridCellTextEditor "self._setOORInfo(self)"
+ %pythonAppend wxGridCellTextEditor "self._setOORInfo(self)"
wxGridCellTextEditor();
virtual wxString GetValue();
};
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();
};
class wxGridCellFloatEditor : public wxGridCellTextEditor
{
public:
- %addtofunc wxGridCellFloatEditor "self._setOORInfo(self)"
+ %pythonAppend wxGridCellFloatEditor "self._setOORInfo(self)"
wxGridCellFloatEditor();
virtual wxString GetValue();
};
class wxGridCellBoolEditor : public wxGridCellEditor
{
public:
- %addtofunc wxGridCellBoolEditor "self._setOORInfo(self)"
+ %pythonAppend wxGridCellBoolEditor "self._setOORInfo(self)"
wxGridCellBoolEditor();
virtual wxString GetValue();
};
class wxGridCellChoiceEditor : public wxGridCellEditor
{
public:
- %addtofunc wxGridCellChoiceEditor "self._setOORInfo(self)"
+ %pythonAppend wxGridCellChoiceEditor "self._setOORInfo(self)"
wxGridCellChoiceEditor(int choices = 0,
const wxString* choices_array = NULL,
bool allowOthers = False);
class wxGridCellEnumEditor : public wxGridCellChoiceEditor
{
public:
- %addtofunc wxGridCellEnumEditor "self._setOORInfo(self)"
+ %pythonAppend wxGridCellEnumEditor "self._setOORInfo(self)"
wxGridCellEnumEditor( const wxString& choices = wxPyEmptyString );
virtual wxString GetValue();
};
class wxGridCellAutoWrapStringEditor : public wxGridCellTextEditor
{
public:
- %addtofunc wxGridCellAutoWrapStringEditor "self._setOORInfo(self)"
+ %pythonAppend wxGridCellAutoWrapStringEditor "self._setOORInfo(self)"
wxGridCellAutoWrapStringEditor();
virtual wxString GetValue();
};
}
}
- %addtofunc wxGridCellAttr "self._setOORInfo(self)"
+ %pythonAppend wxGridCellAttr "self._setOORInfo(self)"
wxGridCellAttr(wxGridCellAttr *attrDefault = NULL);
class wxGridCellAttrProvider
{
public:
- %addtofunc wxGridCellAttrProvider "self._setOORInfo(self)"
+ %pythonAppend wxGridCellAttrProvider "self._setOORInfo(self)"
wxGridCellAttrProvider();
// ???? virtual ~wxGridCellAttrProvider();
class wxPyGridCellAttrProvider : public wxGridCellAttrProvider
{
public:
- %addtofunc wxPyGridCellAttrProvider "self._setCallbackInfo(self, PyGridCellAttrProvider)"
+ %pythonAppend wxPyGridCellAttrProvider "self._setCallbackInfo(self, PyGridCellAttrProvider)"
wxPyGridCellAttrProvider();
void _setCallbackInfo(PyObject* self, PyObject* _class);
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);
class wxGridStringTable : public wxGridTableBase
{
public:
- %addtofunc wxGridStringTable "self._setOORInfo(self)"
+ %pythonAppend wxGridStringTable "self._setOORInfo(self)"
wxGridStringTable( int numRows=0, int numCols=0 );
};
//---------------------------------------------------------------------------
-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;
%{
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;
}
%}
+
+
+
+
+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
class wxGrid : public wxScrolledWindow
{
public:
- %addtofunc wxGrid "self._setOORInfo(self)"
+ %pythonAppend wxGrid "self._setOORInfo(self)"
wxGrid( wxWindow *parent,
wxWindowID id,
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 );
void EndBatch();
int GetBatchCount();
void ForceRefresh();
- void Refresh(bool eraseb=True, const wxRect* rect= NULL);
// ------ edit control functions