//----------------------------------------------------------------------
+%{
+ // Put some wx default wxChar* values into wxStrings.
+ const wxChar* wxListCtrlNameStr = _T("wxListCtrl");
+ DECLARE_DEF_STRING(ListCtrlNameStr);
+
+ const wxChar* wx_TreeCtrlNameStr = _T("wxTreeCtrl");
+ DECLARE_DEF_STRING(_TreeCtrlNameStr);
+ DECLARE_DEF_STRING(DirDialogDefaultFolderStr);
+
+ static const wxString wxPyEmptyString(wxT(""));
+%}
+
+
+%{
+ static const long longzero = 0;
+%}
+
//----------------------------------------------------------------------
enum {
public:
wxListEvent(wxEventType commandType = wxEVT_NULL, int id = 0);
+%readonly
int m_code;
long m_oldItemIndex;
long m_itemIndex;
int m_col;
wxPoint m_pointDrag;
wxListItem m_item;
+%readwrite
- int GetCode();
+ int GetKeyCode();
+ %pragma(python) addtoclass = "GetCode = GetKeyCode"
long GetIndex();
int GetColumn();
wxPoint GetPoint();
const wxSize& size,
long style,
const wxValidator& validator,
- char* name) :
+ const wxString& name) :
wxListCtrl(parent, id, pos, size, style, validator, name) {}
bool Create(wxWindow* parent, wxWindowID id,
const wxSize& size,
long style,
const wxValidator& validator,
- char* name) {
+ const wxString& name) {
return wxListCtrl::Create(parent, id, pos, size, style, validator, name);
}
const wxSize& size = wxDefaultSize,
long style = wxLC_ICON,
const wxValidator& validator = wxDefaultValidator,
- char* name = "listCtrl");
+ const wxString& name = wxPyListCtrlNameStr);
%name(wxPreListCtrl)wxPyListCtrl();
bool Create(wxWindow* parent, wxWindowID id = -1,
const wxSize& size = wxDefaultSize,
long style = wxLC_ICON,
const wxValidator& validator = wxDefaultValidator,
- char* name = "listCtrl");
+ const wxString& name = wxPyListCtrlNameStr);
void _setCallbackInfo(PyObject* self, PyObject* _class);
%pragma(python) addtomethod = "__init__:self._setCallbackInfo(self, wxListCtrl)"
bool SetBackgroundColour(const wxColour& col);
// Gets information about this column
- bool GetColumn(int col, wxListItem& item) const;
+ // bool GetColumn(int col, wxListItem& item) const;
+ %addmethods {
+ %new wxListItem* GetColumn(int col) {
+ wxListItem item;
+ item.SetMask(0xFFFF);
+ if (self->GetColumn(col, item))
+ return new wxListItem(item);
+ else
+ return NULL;
+ }
+ } // The OOR typemaps don't know what to do with the %new, so fix it up.
+ %pragma(python) addtoclass = "
+ def GetColumn(self, *_args, **_kwargs):
+ val = apply(controls2c.wxListCtrl_GetColumn,(self,) + _args, _kwargs)
+ if val is not None: val.thisown = 1
+ return val
+ "
// Sets information about this column
bool SetColumn(int col, wxListItem& item) ;
%pragma(python) addtoclass = "
def GetItem(self, *_args, **_kwargs):
val = apply(controls2c.wxListCtrl_GetItem,(self,) + _args, _kwargs)
- val.thisown = 1
+ if val is not None: val.thisown = 1
return val
"
// to scroll. If in report view mode, y specifies the number of lines to scroll.
bool ScrollList(int dx, int dy);
- // bool SortItems(wxListCtrlCompare fn, long data);
- %addmethods {
- // Sort items.
- // func is a function which takes 2 long arguments: item1, item2.
- // item1 is the long data associated with a first item (NOT the index).
- // item2 is the long data associated with a second item (NOT the index).
- // The return value is a negative number if the first item should precede the second
- // item, a positive number of the second item should precede the first,
- // or zero if the two items are equivalent.
- bool SortItems(PyObject* func) {
- if (!PyCallable_Check(func))
- return FALSE;
- return self->SortItems(wxPyListCtrl_SortItems, (long)func);
- }
- }
+ void SetItemTextColour( long item, const wxColour& col);
+ wxColour GetItemTextColour( long item ) const;
+ void SetItemBackgroundColour( long item, const wxColour &col);
+ wxColour GetItemBackgroundColour( long item ) const;
+
%pragma(python) addtoclass = "
# Some helpers...
def ClearColumnImage(self, col):
self.SetColumnImage(col, -1)
+
+ def Append(self, entry):
+ '''Append an item to the list control. The entry parameter should be a
+ sequence with an item for each column'''
+ if len(entry):
+ pos = self.GetItemCount()
+ self.InsertStringItem(pos, str(entry[0]))
+ for i in range(1, len(entry)):
+ self.SetStringItem(pos, i, str(entry[i]))
+ return pos
"
+
+
+ // bool SortItems(wxListCtrlCompare fn, long data);
+ %addmethods {
+ // Sort items.
+ // func is a function which takes 2 long arguments: item1, item2.
+ // item1 is the long data associated with a first item (NOT the index).
+ // item2 is the long data associated with a second item (NOT the index).
+ // The return value is a negative number if the first item should precede the second
+ // item, a positive number of the second item should precede the first,
+ // or zero if the two items are equivalent.
+ bool SortItems(PyObject* func) {
+ if (!PyCallable_Check(func))
+ return FALSE;
+ return self->SortItems(wxPyListCtrl_SortItems, (long)func);
+ }
+ }
+
+
+ %addmethods {
+ wxWindow* GetMainWindow() {
+ #ifdef __WXMSW__
+ return self;
+ #else
+ return (wxWindow*)self->m_mainWin;
+ #endif
+ }
+ }
};
const wxSize& size = wxDefaultSize,
long style = wxLC_REPORT,
const wxValidator& validator = wxDefaultValidator,
- const wxString &name = "listctrl" );
+ const wxString& name = wxPyListCtrlNameStr);
%name(wxPreListView)wxListView();
bool Create( wxWindow *parent,
const wxSize& size = wxDefaultSize,
long style = wxLC_REPORT,
const wxValidator& validator = wxDefaultValidator,
- const wxString &name = "listctrl" );
+ const wxString& name = wxPyListCtrlNameStr);
%pragma(python) addtomethod = "__init__:self._setOORInfo(self)"
%pragma(python) addtomethod = "wxPreListView:val._setOORInfo(val)"
wxTreeItemId GetOldItem();
wxPoint GetPoint();
const wxKeyEvent& GetKeyEvent();
- int GetCode();
+ int GetKeyCode();
+ %pragma(python) addtoclass = "GetCode = GetKeyCode"
const wxString& GetLabel();
};
const wxSize& size,
long style,
const wxValidator& validator,
- char* name) :
+ const wxString& name) :
wxTreeCtrl(parent, id, pos, size, style, validator, name) {}
bool Create(wxWindow *parent, wxWindowID id,
const wxSize& size,
long style,
const wxValidator& validator,
- char* name) {
+ const wxString& name) {
return wxTreeCtrl::Create(parent, id, pos, size, style, validator, name);
}
int rval = 0;
bool found;
wxPyBeginBlockThreads();
- if ((found = m_myInst.findCallback("OnCompareItems")))
- rval = m_myInst.callCallback(Py_BuildValue(
- "(OO)",
- wxPyConstructObject((void*)&item1, "wxTreeItemId"),
- wxPyConstructObject((void*)&item2, "wxTreeItemId")));
+ if ((found = m_myInst.findCallback("OnCompareItems"))) {
+ PyObject *o1 = wxPyConstructObject((void*)&item1, "wxTreeItemId");
+ PyObject *o2 = wxPyConstructObject((void*)&item2, "wxTreeItemId");
+ rval = m_myInst.callCallback(Py_BuildValue("(OO)",o1,o2));
+ Py_DECREF(o1);
+ Py_DECREF(o2);
+ }
wxPyEndBlockThreads();
if (! found)
rval = wxTreeCtrl::OnCompareItems(item1, item2);
const wxSize& size = wxDefaultSize,
long style = wxTR_HAS_BUTTONS | wxTR_LINES_AT_ROOT,
const wxValidator& validator = wxDefaultValidator,
- char* name = "wxTreeCtrl");
+ const wxString& name = wxPy_TreeCtrlNameStr);
%name(wxPreTreeCtrl)wxPyTreeCtrl();
bool Create(wxWindow *parent, wxWindowID id = -1,
const wxSize& size = wxDefaultSize,
long style = wxTR_HAS_BUTTONS | wxTR_LINES_AT_ROOT,
const wxValidator& validator = wxDefaultValidator,
- char* name = "wxTreeCtrl");
+ const wxString& name = wxPy_TreeCtrlNameStr);
void _setCallbackInfo(PyObject* self, PyObject* _class);
%pragma(python) addtomethod = "__init__:self._setCallbackInfo(self, wxTreeCtrl)"
size_t GetChildrenCount(const wxTreeItemId& item, bool recursively = TRUE);
- wxTreeItemId GetFirstChild(const wxTreeItemId& item, long& INOUT);
+ wxTreeItemId GetFirstChild(const wxTreeItemId& item, long& INOUT = longzero);
wxTreeItemId GetNextChild(const wxTreeItemId& item, long& INOUT);
wxTreeItemId GetNextSibling(const wxTreeItemId& item);
wxTreeItemId GetPrevSibling(const wxTreeItemId& item);
size_t before,
const wxString& text,
int image = -1, int selectedImage = -1,
- wxTreeItemData *data = NULL);
+ wxPyTreeItemData *data = NULL);
wxTreeItemId AppendItem(const wxTreeItemId& parent,
const wxString& text,
int image = -1, int selectedImage = -1,
wxDIRCTRL_SELECT_FIRST,
wxDIRCTRL_SHOW_FILTERS,
wxDIRCTRL_3D_INTERNAL,
+ wxDIRCTRL_EDIT_LABELS,
+
+ wxID_TREECTRL,
+ wxID_FILTERLISTCTRL,
};
{
public:
wxGenericDirCtrl(wxWindow *parent, const wxWindowID id = -1,
- const wxString &dir = wxDirDialogDefaultFolderStr,
+ const wxString& dir = wxPyDirDialogDefaultFolderStr,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = wxDIRCTRL_3D_INTERNAL|wxSUNKEN_BORDER,
- const wxString& filter = wxEmptyString,
+ const wxString& filter = wxPyEmptyString,
int defaultFilter = 0,
- const char* name = "dirCtrl" );
+ const wxString& name = wxPy_TreeCtrlNameStr);
%name(wxPreGenericDirCtrl)wxGenericDirCtrl();
%pragma(python) addtomethod = "__init__:self._setOORInfo(self)"
%pragma(python) addtomethod = "wxPreGenericDirCtrl:val._setOORInfo(val)"
bool Create(wxWindow *parent, const wxWindowID id = -1,
- const wxString &dir = wxDirDialogDefaultFolderStr,
+ const wxString& dir = wxPyDirDialogDefaultFolderStr,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = wxDIRCTRL_3D_INTERNAL|wxSUNKEN_BORDER,
- const wxString& filter = wxEmptyString,
+ const wxString& filter = wxPyEmptyString,
int defaultFilter = 0,
- const char* name = "dirCtrl" );
+ const wxString& name = wxPy_TreeCtrlNameStr);
// Try to expand as much of the given path as possible.