X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a72f4631fe5ab7ebeefdacf8ec9c826ea962133f..9e477492e29e03c02827b1e42a16cb09a13f5149:/wxPython/src/_treectrl.i?ds=sidebyside diff --git a/wxPython/src/_treectrl.i b/wxPython/src/_treectrl.i index 50830f0e57..b50cb86f8c 100644 --- a/wxPython/src/_treectrl.i +++ b/wxPython/src/_treectrl.i @@ -46,10 +46,13 @@ enum { wxTR_DEFAULT_STYLE, wxTR_TWIST_BUTTONS, - wxTR_MAC_BUTTONS, - wxTR_AQUA_BUTTONS, }; +%pythoncode { + %# obsolete + TR_MAC_BUTTONS = 0 + wxTR_AQUA_BUTTONS = 0 +} enum wxTreeItemIcon { @@ -117,17 +120,23 @@ public: // Python code should rarely be neccessary. Just use the GetItemPyData and // SetItemPyData tree methods instead of the GetItemData and SetItemData // methods. -%name(TreeItemData) class wxPyTreeItemData { +%rename(TreeItemData) wxPyTreeItemData; +class wxPyTreeItemData { public: wxPyTreeItemData(PyObject* obj = NULL); - + ~wxPyTreeItemData(); + PyObject* GetData(); void SetData(PyObject* obj); const wxTreeItemId& GetId(); void SetId(const wxTreeItemId& id); + %pythonPrepend Destroy "args[0].this.own(False)" %extend { void Destroy() { delete self; } } + + %property(Data, GetData, SetData, doc="See `GetData` and `SetData`"); + %property(Id, GetId, SetId, doc="See `GetId` and `SetId`"); }; @@ -143,7 +152,8 @@ public: wxTreeItemAttr(const wxColour& colText = wxNullColour, const wxColour& colBack = wxNullColour, const wxFont& font = wxNullFont); - + ~wxTreeItemAttr(); + // setters void SetTextColour(const wxColour& colText); void SetBackgroundColour(const wxColour& colBack); @@ -158,6 +168,7 @@ public: wxColour GetBackgroundColour(); wxFont GetFont(); + %pythonAppend Destroy "args[0].thisown = 0" %extend { void Destroy() { delete self; } } }; @@ -188,10 +199,9 @@ public: %constant wxEventType wxEVT_COMMAND_TREE_END_DRAG; %constant wxEventType wxEVT_COMMAND_TREE_STATE_IMAGE_CLICK; %constant wxEventType wxEVT_COMMAND_TREE_ITEM_GETTOOLTIP; - +%constant wxEventType wxEVT_COMMAND_TREE_ITEM_MENU; %pythoncode { - EVT_TREE_BEGIN_DRAG = wx.PyEventBinder(wxEVT_COMMAND_TREE_BEGIN_DRAG , 1) EVT_TREE_BEGIN_RDRAG = wx.PyEventBinder(wxEVT_COMMAND_TREE_BEGIN_RDRAG , 1) EVT_TREE_BEGIN_LABEL_EDIT = wx.PyEventBinder(wxEVT_COMMAND_TREE_BEGIN_LABEL_EDIT , 1) @@ -212,9 +222,15 @@ EVT_TREE_ITEM_MIDDLE_CLICK = wx.PyEventBinder(wxEVT_COMMAND_TREE_ITEM_MIDDLE_CLI 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) +EVT_TREE_ITEM_MENU = wx.PyEventBinder(wxEVT_COMMAND_TREE_ITEM_MENU, 1) } +%{ + static wxTreeItemId wxNullTreeItemId; +%} +wxTreeItemId wxNullTreeItemId; + // wxTreeEvent is a special class for all events associated with tree controls // @@ -222,7 +238,11 @@ EVT_TREE_ITEM_GETTOOLTIP = wx.PyEventBinder(wxEVT_COMMAND_TREE_ITEM_GETTOOLTIP // descriptions below class wxTreeEvent : public wxNotifyEvent { public: + %nokwargs wxTreeEvent; wxTreeEvent(wxEventType commandType = wxEVT_NULL, int id = 0); + wxTreeEvent(wxEventType commandType, + wxPyTreeCtrl* tree, + wxTreeItemId& item = wxNullTreeItemId); // get the item on which the operation was performed or the newly // selected item for wxEVT_COMMAND_TREE_SEL_CHANGED/ING events @@ -254,6 +274,16 @@ public: // Set the tooltip for the item (for EVT_TREE_ITEM_GETTOOLTIP events) void SetToolTip(const wxString& toolTip); + wxString GetToolTip(); + + %property(Item, GetItem, SetItem, doc="See `GetItem` and `SetItem`"); + %property(KeyCode, GetKeyCode, doc="See `GetKeyCode`"); + %property(KeyEvent, GetKeyEvent, SetKeyEvent, doc="See `GetKeyEvent` and `SetKeyEvent`"); + %property(Label, GetLabel, SetLabel, doc="See `GetLabel` and `SetLabel`"); + %property(OldItem, GetOldItem, SetOldItem, doc="See `GetOldItem` and `SetOldItem`"); + %property(Point, GetPoint, SetPoint, doc="See `GetPoint` and `SetPoint`"); + %property(ToolTip, GetToolTip, SetToolTip, doc="See `GetToolTip` and `SetToolTip`"); + %property(EditCancelled, IsEditCancelled, SetEditCanceled, doc="See `IsEditCancelled` and `SetEditCanceled`"); }; //--------------------------------------------------------------------------- @@ -261,7 +291,7 @@ public: %{ // C++ version of Python aware wxTreeCtrl class wxPyTreeCtrl : public wxTreeCtrl { - DECLARE_ABSTRACT_CLASS(wxPyTreeCtrl); + DECLARE_ABSTRACT_CLASS(wxPyTreeCtrl) public: wxPyTreeCtrl() : wxTreeCtrl() {} wxPyTreeCtrl(wxWindow *parent, wxWindowID id, @@ -286,7 +316,7 @@ public: const wxTreeItemId& item2) { int rval = 0; bool found; - bool blocked = wxPyBeginBlockThreads(); + wxPyBlock_t blocked = wxPyBeginBlockThreads(); if ((found = wxPyCBH_findCallback(m_myInst, "OnCompareItems"))) { PyObject *o1 = wxPyConstructObject((void*)&item1, wxT("wxTreeItemId"), false); PyObject *o2 = wxPyConstructObject((void*)&item2, wxT("wxTreeItemId"), false); @@ -311,9 +341,10 @@ IMPLEMENT_ABSTRACT_CLASS(wxPyTreeCtrl, wxTreeCtrl); MustHaveApp(wxPyTreeCtrl); -%name(TreeCtrl)class wxPyTreeCtrl : public wxControl { +%rename(TreeCtrl) wxPyTreeCtrl; +class wxPyTreeCtrl : public wxControl { public: - %pythonAppend wxPyTreeCtrl "self._setOORInfo(self);self._setCallbackInfo(self, TreeCtrl)" + %pythonAppend wxPyTreeCtrl "self._setOORInfo(self);" setCallbackInfo(TreeCtrl) %pythonAppend wxPyTreeCtrl() "" %typemap(out) wxPyTreeCtrl*; // turn off this typemap @@ -323,7 +354,7 @@ public: long style = wxTR_DEFAULT_STYLE, const wxValidator& validator = wxDefaultValidator, const wxString& name = wxPyTreeCtrlNameStr); - %name(PreTreeCtrl)wxPyTreeCtrl(); + %RenameCtor(PreTreeCtrl, wxPyTreeCtrl()); // Turn it back on again %typemap(out) wxPyTreeCtrl* { $result = wxPyMake_wxObject($1, $owner); } @@ -339,7 +370,7 @@ public: // get the total number of items in the control - size_t GetCount() const; + unsigned int GetCount() const; // indent is the number of pixels the children are indented relative to // the parents position. SetIndent() also redraws the control @@ -369,10 +400,10 @@ public: void SetImageList(wxImageList *imageList); void SetStateImageList(wxImageList *imageList); - %apply SWIGTYPE *DISOWN { wxImageList *imageList }; + %disownarg( wxImageList *imageList ); void AssignImageList(wxImageList *imageList); void AssignStateImageList(wxImageList *imageList); - %clear wxImageList *imageList; + %cleardisown( wxImageList *imageList ); // retrieve items label @@ -427,10 +458,12 @@ public: %extend { // associate a wxPyTreeItemData with the tree item + %disownarg( wxPyTreeItemData* data ); void SetItemData(const wxTreeItemId& item, wxPyTreeItemData* data) { data->SetId(item); // set the id self->SetItemData(item, data); } + %cleardisown( wxPyTreeItemData* data ); // associate a Python object with the tree item void SetItemPyData(const wxTreeItemId& item, PyObject* obj) { @@ -455,10 +488,8 @@ public: // the item will be shown in bold void SetItemBold(const wxTreeItemId& item, bool bold = true); -#ifdef __WXMSW__ // the item will be shown with a drop highlight void SetItemDropHighlight(const wxTreeItemId& item, bool highlight = true); -#endif // set the items text colour void SetItemTextColour(const wxTreeItemId& item, const wxColour& col); @@ -507,7 +538,7 @@ public: // NB: this operation is expensive and can take a long time for a // control with a lot of items (~ O(number of items)). PyObject* GetSelections() { - bool blocked = wxPyBeginBlockThreads(); + wxPyBlock_t blocked = wxPyBeginBlockThreads(); PyObject* rval = PyList_New(0); wxArrayTreeItemIds array; size_t num, x; @@ -537,7 +568,7 @@ public: PyObject* GetFirstChild(const wxTreeItemId& item) { void* cookie = 0; wxTreeItemId* ritem = new wxTreeItemId(self->GetFirstChild(item, cookie)); - bool blocked = wxPyBeginBlockThreads(); + wxPyBlock_t blocked = wxPyBeginBlockThreads(); PyObject* tup = PyTuple_New(2); PyTuple_SET_ITEM(tup, 0, wxPyConstructObject(ritem, wxT("wxTreeItemId"), true)); PyTuple_SET_ITEM(tup, 1, wxPyMakeSwigPtr(cookie, wxT("void"))); @@ -552,7 +583,7 @@ public: // passed to GetNextChild in order to continue the search. PyObject* GetNextChild(const wxTreeItemId& item, void* cookie) { wxTreeItemId* ritem = new wxTreeItemId(self->GetNextChild(item, cookie)); - bool blocked = wxPyBeginBlockThreads(); + wxPyBlock_t blocked = wxPyBeginBlockThreads(); PyObject* tup = PyTuple_New(2); PyTuple_SET_ITEM(tup, 0, wxPyConstructObject(ritem, wxT("wxTreeItemId"), true)); PyTuple_SET_ITEM(tup, 1, wxPyMakeSwigPtr(cookie, wxT("void"))); @@ -581,6 +612,7 @@ public: wxTreeItemId GetPrevVisible(const wxTreeItemId& item) const; + %disownarg( wxPyTreeItemData* data ); // add the root node to the tree wxTreeItemId AddRoot(const wxString& text, @@ -601,12 +633,12 @@ public: wxPyTreeItemData *data = NULL); // insert a new item before the one with the given index - %name(InsertItemBefore) - wxTreeItemId InsertItem(const wxTreeItemId& parent, + %Rename(InsertItemBefore, + wxTreeItemId, InsertItem(const wxTreeItemId& parent, size_t index, const wxString& text, int image = -1, int selectedImage = -1, - wxPyTreeItemData *data = NULL); + wxPyTreeItemData *data = NULL)); // insert a new item in as the last child of the parent wxTreeItemId AppendItem(const wxTreeItemId& parent, @@ -615,7 +647,8 @@ public: wxPyTreeItemData *data = NULL); - + %cleardisown( wxPyTreeItemData* data ); + // delete this item and associated data if any void Delete(const wxTreeItemId& item); @@ -631,6 +664,12 @@ public: // expand this item void Expand(const wxTreeItemId& item); + // expand the item and all its childs and thats childs + void ExpandAllChildren(const wxTreeItemId& item); + + // expand all items + void ExpandAll(); + // collapse the item without removing its children void Collapse(const wxTreeItemId& item); @@ -705,7 +744,7 @@ value is set to a bitmask of wxTREE_HITTEST_xxx constants. PyObject* GetBoundingRect(const wxTreeItemId& item, bool textOnly = false) { wxRect rect; if (self->GetBoundingRect(item, rect, textOnly)) { - bool blocked = wxPyBeginBlockThreads(); + wxPyBlock_t blocked = wxPyBeginBlockThreads(); wxRect* r = new wxRect(rect); PyObject* val = wxPyConstructObject((void*)r, wxT("wxRect"), true); wxPyEndBlockThreads(blocked); @@ -724,6 +763,21 @@ value is set to a bitmask of wxTREE_HITTEST_xxx constants. static wxVisualAttributes GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL); + + void SetQuickBestSize(bool q); + bool GetQuickBestSize() const; + + %property(Count, GetCount, doc="See `GetCount`"); + %property(EditControl, GetEditControl, doc="See `GetEditControl`"); + %property(FirstVisibleItem, GetFirstVisibleItem, doc="See `GetFirstVisibleItem`"); + %property(ImageList, GetImageList, SetImageList, doc="See `GetImageList` and `SetImageList`"); + %property(Indent, GetIndent, SetIndent, doc="See `GetIndent` and `SetIndent`"); + %property(QuickBestSize, GetQuickBestSize, SetQuickBestSize, doc="See `GetQuickBestSize` and `SetQuickBestSize`"); + %property(RootItem, GetRootItem, doc="See `GetRootItem`"); + %property(Selection, GetSelection, doc="See `GetSelection`"); + %property(Selections, GetSelections, doc="See `GetSelections`"); + %property(Spacing, GetSpacing, SetSpacing, doc="See `GetSpacing` and `SetSpacing`"); + %property(StateImageList, GetStateImageList, SetStateImageList, doc="See `GetStateImageList` and `SetStateImageList`"); };