wxEVT_COMMAND_LIST_ITEM_MIDDLE_CLICK,
wxEVT_COMMAND_LIST_ITEM_ACTIVATED,
wxEVT_COMMAND_LIST_CACHE_HINT,
+ wxEVT_COMMAND_LIST_COL_RIGHT_CLICK,
+ wxEVT_COMMAND_LIST_COL_BEGIN_DRAG,
+ wxEVT_COMMAND_LIST_COL_DRAGGING,
+ wxEVT_COMMAND_LIST_COL_END_DRAG,
+
};
def EVT_LIST_COL_CLICK(win, id, func):
win.Connect(id, -1, wxEVT_COMMAND_LIST_COL_CLICK, func)
+def EVT_LIST_COL_RIGHT_CLICK(win, id, func):
+ win.Connect(id, -1, wxEVT_COMMAND_LIST_COL_RIGHT_CLICK, func)
+
+def EVT_LIST_COL_BEGIN_DRAG(win, id, func):
+ win.Connect(id, -1, wxEVT_COMMAND_LIST_COL_BEGIN_DRAG, func)
+
+def EVT_LIST_COL_DRAGGING(win, id, func):
+ win.Connect(id, -1, wxEVT_COMMAND_LIST_COL_DRAGGING, func)
+
+def EVT_LIST_COL_END_DRAG(win, id, func):
+ win.Connect(id, -1, wxEVT_COMMAND_LIST_COL_END_DRAG, func)
+
def EVT_LIST_ITEM_RIGHT_CLICK(win, id, func):
win.Connect(id, -1, wxEVT_COMMAND_LIST_ITEM_RIGHT_CLICK, func)
wxLC_MASK_ALIGN,
wxLC_MASK_SORT,
+ wxLC_USER_TEXT,
};
class wxListEvent: public wxNotifyEvent {
public:
+ wxListEvent(wxEventType commandType = wxEVT_NULL, int id = 0);
+
int m_code;
long m_itemIndex;
long m_oldItemIndex;
long GetData();
long GetMask();
const wxListItem& GetItem();
+
+ long GetCacheFrom();
+ long GetCacheTo();
};
-%{
+%{ // C++ Version of a Python aware class
class wxPyListCtrl : public wxListCtrl {
DECLARE_ABSTRACT_CLASS(wxPyListCtrl);
public:
+ wxPyListCtrl() : wxListCtrl() {}
wxPyListCtrl(wxWindow* parent, wxWindowID id,
const wxPoint& pos,
const wxSize& size,
char* name) :
wxListCtrl(parent, id, pos, size, style, validator, name) {}
+ bool Create(wxWindow* parent, wxWindowID id,
+ const wxPoint& pos,
+ const wxSize& size,
+ long style,
+ const wxValidator& validator,
+ char* name) {
+ return wxListCtrl::Create(parent, id, pos, size, style, validator, name);
+ }
+
DEC_PYCALLBACK_STRING_LONGLONG(OnGetItemText);
DEC_PYCALLBACK_INT_LONG(OnGetItemImage);
DEC_PYCALLBACK_LISTATTR_LONG(OnGetItemAttr);
long style = wxLC_ICON,
const wxValidator& validator = wxDefaultValidator,
char* name = "listCtrl");
+ %name(wxPreListCtrl)wxPyListCtrl();
+
+ bool Create(wxWindow* parent, wxWindowID id = -1,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = wxLC_ICON,
+ const wxValidator& validator = wxDefaultValidator,
+ char* name = "listCtrl");
void _setSelf(PyObject* self, PyObject* _class);
- %pragma(python) addtomethod = "__init__:#wx._StdWindowCallbacks(self)"
%pragma(python) addtomethod = "__init__:self._setSelf(self, wxListCtrl)"
// or small icon view)
int GetCountPerPage() const;
+#ifdef __WXMSW__
// Gets the edit control for editing labels.
wxTextCtrl* GetEditControl() const;
-
+#endif
//bool GetItem(wxListItem& info) const ;
%addmethods {
//bool GetItemRect(long item, wxRect& rect, int code = wxLIST_RECT_BOUNDS) const ;
//bool GetItemPosition(long item, wxPoint& pos) const ;
+
+ // Gets the item position
%addmethods {
- // Gets the item position
%new wxPoint* GetItemPosition(long item) {
wxPoint* pos = new wxPoint;
self->GetItemPosition(item, *pos);
// Clears items, and columns if there are any.
void ClearAll();
+#ifdef __WXMSW__
// Edit the label
wxTextCtrl* EditLabel(long item /*, wxClassInfo* textControlClass = CLASSINFO(wxTextCtrl)*/);
// End label editing, optionally cancelling the edit
bool EndEditLabel(bool cancel);
+#endif
// Ensures this item is visible
bool EnsureVisible(long item) ;
}
}
+ %pragma(python) addtoclass = "
+ # Some helpers...
+
+ def Select(self, idx, on=1):
+ '''[de]select an item'''
+ if on: state = wxLIST_STATE_SELECTED
+ else: state = 0
+ self.SetItemState(idx, state, wxLIST_STATE_SELECTED)
+
+ def Focus(self, idx):
+ '''Focus and show the given item'''
+ self.SetItemState(idx, wxLIST_STATE_FOCUSED, wxLIST_STATE_FOCUSED)
+ self.EnsureVisible(idx)
+
+ def GetFocusedItem(self):
+ '''get the currently focused item or -1 if none'''
+ return self.GetNextItem(-1, wxLIST_NEXT_ALL, wxLIST_STATE_FOCUSED)
+
+ def IsSelected(self, idx):
+ '''return TRUE if the item is selected'''
+ return self.GetItemState(idx, wxLIST_STATE_SELECTED) != 0
+
+ def SetColumnImage(self, col, image):
+ item = wxListItem()
+ item.SetMask(wxLIST_MASK_IMAGE)
+ item.SetImage(image)
+ self.SetColumn(col, item)
+
+ def ClearColumnImage(self, col):
+ self.SetColumnImage(col, -1)
+ "
};
-%{
+%{ // Python aware sorting function for wxPyListCtrl
int wxCALLBACK wxPyListCtrl_SortItems(long item1, long item2, long funcPtr) {
int retval = 0;
PyObject* func = (PyObject*)funcPtr;
//----------------------------------------------------------------------
+class wxListView : public wxPyListCtrl
+{
+public:
+ wxListView( wxWindow *parent,
+ wxWindowID id = -1,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = wxLC_REPORT,
+ const wxValidator& validator = wxDefaultValidator,
+ const wxString &name = "listctrl" );
+ %name(wxPreListView)wxListView();
+
+ bool Create( wxWindow *parent,
+ wxWindowID id = -1,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = wxLC_REPORT,
+ const wxValidator& validator = wxDefaultValidator,
+ const wxString &name = "listctrl" );
+
+
+ // [de]select an item
+ void Select(long n, bool on = TRUE);
+
+ // focus and show the given item
+ void Focus(long index);
+
+ // get the currently focused item or -1 if none
+ long GetFocusedItem() const;
+
+ // get first and subsequent selected items, return -1 when no more
+ long GetNextSelected(long item) const;
+ long GetFirstSelected() const;
+
+ // return TRUE if the item is selected
+ bool IsSelected(long index);
+
+ void SetColumnImage(int col, int image);
+ void ClearColumnImage(int col);
+};
+
+
+//----------------------------------------------------------------------
+
+// wxTreeCtrl flags
+enum {
+ wxTR_NO_BUTTONS,
+ wxTR_HAS_BUTTONS,
+ wxTR_TWIST_BUTTONS,
+ wxTR_NO_LINES,
+ wxTR_MAC_BUTTONS,
+
+ wxTR_SINGLE,
+ wxTR_MULTIPLE,
+ wxTR_EXTENDED,
+
+ wxTR_EDIT_LABELS,
+ wxTR_LINES_AT_ROOT,
+ wxTR_HIDE_ROOT,
+ wxTR_ROW_LINES,
+ wxTR_HAS_VARIABLE_ROW_HEIGHT,
+
+ wxTR_DEFAULT_STYLE,
+};
+
enum wxTreeItemIcon
{
wxTreeItemIcon_Normal, // not selected, not expanded
};
+%pragma(python) code = "
+# wxTreeCtrl events
+def EVT_TREE_BEGIN_DRAG(win, id, func):
+ win.Connect(id, -1, wxEVT_COMMAND_TREE_BEGIN_DRAG, func)
+
+def EVT_TREE_BEGIN_RDRAG(win, id, func):
+ win.Connect(id, -1, wxEVT_COMMAND_TREE_BEGIN_RDRAG, func)
+
+def EVT_TREE_END_DRAG(win, id, func):
+ win.Connect(id, -1, wxEVT_COMMAND_TREE_END_DRAG, func)
+
+def EVT_TREE_BEGIN_LABEL_EDIT(win, id, func):
+ win.Connect(id, -1, wxEVT_COMMAND_TREE_BEGIN_LABEL_EDIT, func)
+
+def EVT_TREE_END_LABEL_EDIT(win, id, func):
+ win.Connect(id, -1, wxEVT_COMMAND_TREE_END_LABEL_EDIT, func)
+
+def EVT_TREE_GET_INFO(win, id, func):
+ win.Connect(id, -1, wxEVT_COMMAND_TREE_GET_INFO, func)
+
+def EVT_TREE_SET_INFO(win, id, func):
+ win.Connect(id, -1, wxEVT_COMMAND_TREE_SET_INFO, func)
+
+def EVT_TREE_ITEM_EXPANDED(win, id, func):
+ win.Connect(id, -1, wxEVT_COMMAND_TREE_ITEM_EXPANDED, func)
+
+def EVT_TREE_ITEM_EXPANDING(win, id, func):
+ win.Connect(id, -1, wxEVT_COMMAND_TREE_ITEM_EXPANDING, func)
+
+def EVT_TREE_ITEM_COLLAPSED(win, id, func):
+ win.Connect(id, -1, wxEVT_COMMAND_TREE_ITEM_COLLAPSED, func)
+
+def EVT_TREE_ITEM_COLLAPSING(win, id, func):
+ win.Connect(id, -1, wxEVT_COMMAND_TREE_ITEM_COLLAPSING, func)
+
+def EVT_TREE_SEL_CHANGED(win, id, func):
+ win.Connect(id, -1, wxEVT_COMMAND_TREE_SEL_CHANGED, func)
+
+def EVT_TREE_SEL_CHANGING(win, id, func):
+ win.Connect(id, -1, wxEVT_COMMAND_TREE_SEL_CHANGING, func)
+
+def EVT_TREE_KEY_DOWN(win, id, func):
+ win.Connect(id, -1, wxEVT_COMMAND_TREE_KEY_DOWN, func)
+
+def EVT_TREE_DELETE_ITEM(win, id, func):
+ win.Connect(id, -1, wxEVT_COMMAND_TREE_DELETE_ITEM, func)
+
+def EVT_TREE_ITEM_ACTIVATED(win, id, func):
+ win.Connect(id, -1, wxEVT_COMMAND_TREE_ITEM_ACTIVATED, func)
+
+def EVT_TREE_ITEM_RIGHT_CLICK(win, id, func):
+ win.Connect(id, -1, wxEVT_COMMAND_TREE_ITEM_RIGHT_CLICK, func)
+
+def EVT_TREE_ITEM_MIDDLE_CLICK(win, id, func):
+ win.Connect(id, -1, wxEVT_COMMAND_TREE_ITEM_MIDDLE_CLICK, func)
+"
+
+
+class wxTreeItemAttr
+{
+public:
+ // ctors
+ //wxTreeItemAttr() { }
+ wxTreeItemAttr(const wxColour& colText = wxNullColour,
+ const wxColour& colBack = wxNullColour,
+ const wxFont& font = wxNullFont);
+
+ // setters
+ void SetTextColour(const wxColour& colText);
+ void SetBackgroundColour(const wxColour& colBack);
+ void SetFont(const wxFont& font);
+
+ // accessors
+ bool HasTextColour();
+ bool HasBackgroundColour();
+ bool HasFont();
+
+ const wxColour& GetTextColour();
+ const wxColour& GetBackgroundColour();
+ const wxFont& GetFont();
+};
+
+
class wxTreeItemId {
public:
wxTreeItemId();
class wxTreeEvent : public wxNotifyEvent {
public:
+ wxTreeEvent(wxEventType commandType = wxEVT_NULL, int id = 0);
+
wxTreeItemId GetItem();
wxTreeItemId GetOldItem();
wxPoint GetPoint();
-%{
+%{ // C++ version of Python aware wxTreeCtrl
class wxPyTreeCtrl : public wxTreeCtrl {
DECLARE_ABSTRACT_CLASS(wxPyTreeCtrl);
public:
+ wxPyTreeCtrl() : wxTreeCtrl() {}
wxPyTreeCtrl(wxWindow *parent, wxWindowID id,
const wxPoint& pos,
const wxSize& size,
char* name) :
wxTreeCtrl(parent, id, pos, size, style, validator, name) {}
+ bool Create(wxWindow *parent, wxWindowID id,
+ const wxPoint& pos,
+ const wxSize& size,
+ long style,
+ const wxValidator& validator,
+ char* name) {
+ return wxTreeCtrl::Create(parent, id, pos, size, style, validator, name);
+ }
+
+
int OnCompareItems(const wxTreeItemId& item1,
const wxTreeItemId& item2) {
int rval = 0;
long style = wxTR_HAS_BUTTONS | wxTR_LINES_AT_ROOT,
const wxValidator& validator = wxDefaultValidator,
char* name = "wxTreeCtrl");
+ %name(wxPreTreeCtrl)wxPyTreeCtrl();
+
+ bool Create(wxWindow *parent, wxWindowID id = -1,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = wxTR_HAS_BUTTONS | wxTR_LINES_AT_ROOT,
+ const wxValidator& validator = wxDefaultValidator,
+ char* name = "wxTreeCtrl");
void _setSelf(PyObject* self, PyObject* _class);
- %pragma(python) addtomethod = "__init__:#wx._StdWindowCallbacks(self)"
%pragma(python) addtomethod = "__init__:self._setSelf(self, wxTreeCtrl)"
- void AssignImageList(wxImageList* imageList);
- %pragma(python) addtomethod = "AssignImageList:_args[0].thisown = 0"
size_t GetCount();
unsigned int GetIndent();
void SetIndent(unsigned int indent);
wxImageList *GetStateImageList();
void SetImageList(wxImageList *imageList);
void SetStateImageList(wxImageList *imageList);
+ void AssignImageList(wxImageList* imageList);
+ %pragma(python) addtomethod = "AssignImageList:_args[0].thisown = 0"
+ void AssignStateImageList(wxImageList* imageList);
+ %pragma(python) addtomethod = "AssignStateImageList:_args[0].thisown = 0"
unsigned int GetSpacing();
void SetSpacing(unsigned int spacing);
};
-//----------------------------------------------------------------------
-
-#ifdef SKIPTHIS
-#ifdef __WXMSW__
-
-
-enum {
- /* tab control event types */
- wxEVT_COMMAND_TAB_SEL_CHANGED,
- wxEVT_COMMAND_TAB_SEL_CHANGING,
-};
-
-
-class wxTabEvent : public wxCommandEvent {
-public:
-};
-
-
-
-class wxTabCtrl : public wxControl {
-public:
- wxTabCtrl(wxWindow* parent, wxWindowID id,
- const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize,
- long style = 0,
- char* name = "tabCtrl");
-
- %pragma(python) addtomethod = "__init__:#wx._StdWindowCallbacks(self)"
-
- bool DeleteAllItems();
- bool DeleteItem(int item);
- wxImageList* GetImageList();
- int GetItemCount();
- // TODO: void* GetItemData();
- int GetItemImage(int item);
-
- %addmethods {
- %new wxRect* GetItemRect(int item) {
- wxRect* rect = new wxRect;
- self->GetItemRect(item, *rect);
- return rect;
- }
- }
-
- wxString GetItemText(int item);
- bool GetRowCount();
- int GetSelection();
- int HitTest(const wxPoint& pt, long& OUTPUT);
- void InsertItem(int item, const wxString& text,
- int imageId = -1, void* clientData = NULL);
- // TODO: bool SetItemData(int item, void* data);
- bool SetItemImage(int item, int image);
- void SetImageList(wxImageList* imageList);
- void SetItemSize(const wxSize& size);
- bool SetItemText(int item, const wxString& text);
- void SetPadding(const wxSize& padding);
- int SetSelection(int item);
-
-};
-
-#endif
-#endif
-
//----------------------------------------------------------------------
%init %{