X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1b8c7ba607a15a2ff8a04448138df9ffff7df6c5..96285a18aa6f39e754ae562cc427f005a3402f43:/wxPython/src/_treectrl.i diff --git a/wxPython/src/_treectrl.i b/wxPython/src/_treectrl.i index 94cdc1b404..adcac9458b 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 { @@ -121,14 +124,19 @@ public: 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`"); }; @@ -144,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); @@ -159,6 +168,7 @@ public: wxColour GetBackgroundColour(); wxFont GetFont(); + %pythonAppend Destroy "args[0].thisown = 0" %extend { void Destroy() { delete self; } } }; @@ -189,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) @@ -213,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 // @@ -223,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 @@ -255,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`"); }; //--------------------------------------------------------------------------- @@ -262,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, @@ -287,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); @@ -341,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 @@ -371,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 @@ -429,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) { @@ -457,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); @@ -509,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; @@ -539,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"))); @@ -554,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"))); @@ -583,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, @@ -617,7 +647,8 @@ public: wxPyTreeItemData *data = NULL); - + %cleardisown( wxPyTreeItemData* data ); + // delete this item and associated data if any void Delete(const wxTreeItemId& item); @@ -633,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); @@ -707,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); @@ -726,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`"); };