X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/dd9f7fea29e3f8bb61861f52984b7943512346ac..1b35fec738ef02e1d0a5419466c42ccbb13b6676:/wxPython/src/_treectrl.i?ds=sidebyside diff --git a/wxPython/src/_treectrl.i b/wxPython/src/_treectrl.i index 52112b1a91..0dfc6bfd00 100644 --- a/wxPython/src/_treectrl.i +++ b/wxPython/src/_treectrl.i @@ -18,10 +18,9 @@ %{ #include #include "wx/wxPython/pytree.h" - - const wxChar* wx_TreeCtrlNameStr = _T("wxTreeCtrl"); - DECLARE_DEF_STRING(_TreeCtrlNameStr); %} + +MAKE_CONST_WXSTRING2(TreeCtrlNameStr, _T("wxTreeCtrl")); //--------------------------------------------------------------------------- %newgroup @@ -83,7 +82,6 @@ enum { //--------------------------------------------------------------------------- %newgroup -typedef void *wxTreeItemIdValue; // wxTreeItemId identifies an element of the tree. In this implementation, it's // just a trivial wrapper around Win32 HTREEITEM or a pointer to some private @@ -109,7 +107,7 @@ public: } } - wxTreeItemIdValue m_pItem; + void* m_pItem; %pythoncode { @@ -196,7 +194,7 @@ public: %constant wxEventType wxEVT_COMMAND_TREE_ITEM_MIDDLE_CLICK; %constant wxEventType wxEVT_COMMAND_TREE_END_DRAG; %constant wxEventType wxEVT_COMMAND_TREE_STATE_IMAGE_CLICK; - +%constant wxEventType wxEVT_COMMAND_TREE_ITEM_GETTOOLTIP; %pythoncode { @@ -220,7 +218,7 @@ EVT_TREE_ITEM_RIGHT_CLICK = wx.PyEventBinder(wxEVT_COMMAND_TREE_ITEM_RIGHT_CLIC EVT_TREE_ITEM_MIDDLE_CLICK = wx.PyEventBinder(wxEVT_COMMAND_TREE_ITEM_MIDDLE_CLICK, 1) EVT_TREE_END_DRAG = wx.PyEventBinder(wxEVT_COMMAND_TREE_END_DRAG , 1) EVT_TREE_STATE_IMAGE_CLICK = wx.PyEventBinder(wxEVT_COMMAND_TREE_STATE_IMAGE_CLICK, 1) - +EVT_TREE_ITEM_GETTOOLTIP = wx.PyEventBinder(wxEVT_COMMAND_TREE_ITEM_GETTOOLTIP, 1) } @@ -261,6 +259,8 @@ public: bool IsEditCancelled() const; void SetEditCanceled(bool editCancelled); + // Set the tooltip for the item (for EVT_TREE_ITEM_GETTOOLTIP events) + void SetToolTip(const wxString& toolTip); }; //--------------------------------------------------------------------------- @@ -318,15 +318,15 @@ IMPLEMENT_ABSTRACT_CLASS(wxPyTreeCtrl, wxTreeCtrl); %name(TreeCtrl)class wxPyTreeCtrl : public wxControl { public: - %addtofunc wxPyTreeCtrl "self._setOORInfo(self);self._setCallbackInfo(self, TreeCtrl)" - %addtofunc wxPyTreeCtrl() "" + %pythonAppend wxPyTreeCtrl "self._setOORInfo(self);self._setCallbackInfo(self, TreeCtrl)" + %pythonAppend wxPyTreeCtrl() "" wxPyTreeCtrl(wxWindow *parent, wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxTR_DEFAULT_STYLE, const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxPy_TreeCtrlNameStr); + const wxString& name = wxPyTreeCtrlNameStr); %name(PreTreeCtrl)wxPyTreeCtrl(); bool Create(wxWindow *parent, wxWindowID id = -1, @@ -334,7 +334,7 @@ public: const wxSize& size = wxDefaultSize, long style = wxTR_DEFAULT_STYLE, const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxPy_TreeCtrlNameStr); + const wxString& name = wxPyTreeCtrlNameStr); void _setCallbackInfo(PyObject* self, PyObject* _class); @@ -370,10 +370,10 @@ public: void SetImageList(wxImageList *imageList); void SetStateImageList(wxImageList *imageList); - %addtofunc AssignImageList "args[1].thisown = 0"; - %addtofunc AssignStateImageList "args[1].thisown = 0"; + %apply SWIGTYPE *DISOWN { wxImageList *imageList }; void AssignImageList(wxImageList *imageList); void AssignStateImageList(wxImageList *imageList); + %clear wxImageList *imageList; // retrieve items label @@ -533,12 +533,12 @@ public: // opaque "cookie" value that should be passed to GetNextChild in // order to continue the search. PyObject* GetFirstChild(const wxTreeItemId& item) { - wxTreeItemIdValue cookie = 0; - wxTreeItemId ritem = self->GetFirstChild(item, cookie); + void* cookie = 0; + wxTreeItemId* ritem = new wxTreeItemId(self->GetFirstChild(item, cookie)); wxPyBeginBlockThreads(); PyObject* tup = PyTuple_New(2); - PyTuple_SET_ITEM(tup, 0, wxPyConstructObject(&ritem, wxT("wxTreeItemId"), True)); - PyTuple_SET_ITEM(tup, 1, wxPyConstructObject(cookie, wxT("wxTreeItemIdValue"), True)); + PyTuple_SET_ITEM(tup, 0, wxPyConstructObject(ritem, wxT("wxTreeItemId"), True)); + PyTuple_SET_ITEM(tup, 1, wxPyMakeSwigPtr(cookie, wxT("void"))); wxPyEndBlockThreads(); return tup; } @@ -548,12 +548,12 @@ public: // value returned from GetFirstChild or the previous GetNextChild. // Returns a wxTreeItemId and an opaque "cookie" value that should be // passed to GetNextChild in order to continue the search. - PyObject* GetNextChild(const wxTreeItemId& item, wxTreeItemIdValue& cookie) { - wxTreeItemId ritem = self->GetNextChild(item, cookie); + PyObject* GetNextChild(const wxTreeItemId& item, void* cookie) { + wxTreeItemId* ritem = new wxTreeItemId(self->GetNextChild(item, cookie)); wxPyBeginBlockThreads(); PyObject* tup = PyTuple_New(2); - PyTuple_SET_ITEM(tup, 0, wxPyConstructObject(&ritem, wxT("wxTreeItemId"), True)); - PyTuple_SET_ITEM(tup, 1, wxPyConstructObject(cookie, wxT("wxTreeItemIdValue"), True)); + PyTuple_SET_ITEM(tup, 0, wxPyConstructObject(ritem, wxT("wxTreeItemId"), True)); + PyTuple_SET_ITEM(tup, 1, wxPyMakeSwigPtr(cookie, wxT("void"))); wxPyEndBlockThreads(); return tup; } @@ -642,12 +642,19 @@ public: // remove the selection from currently selected item (if any) void Unselect(); + // remove the selection from the given one (multiselect mode only) + void UnselectItem(const wxTreeItemId& item); + // unselect all items (only makes sense for multiple selection control) void UnselectAll(); // select this item - void SelectItem(const wxTreeItemId& item); + void SelectItem(const wxTreeItemId& item, bool select = True); + + // toggle the item selection + void ToggleItemSelection(const wxTreeItemId& item); + // make sure this item is visible (expanding the parent item and/or // scrolling to this item if necessary) void EnsureVisible(const wxTreeItemId& item); @@ -682,12 +689,13 @@ public: - // determine to which item (if any) belongs the given point (the - // coordinates specified are relative to the client area of tree ctrl) - // and fill the flags parameter with a bitmask of wxTREE_HITTEST_xxx - // constants. - // - wxTreeItemId HitTest(const wxPoint& point, int& OUTPUT); + DocDeclAStr( + wxTreeItemId, HitTest(const wxPoint& point, int& OUTPUT), + "HitTest(Point point) -> (item, where)", + "Determine which item (if any) belongs the given point. The\n" + "coordinates specified are relative to the client area of tree ctrl\n" + "and the where return value is set to a bitmask of wxTREE_HITTEST_xxx\n" + "constants.\n"); %extend {