]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/src/_treectrl.i
Changes needed for new RTL methods, and also various other updates to
[wxWidgets.git] / wxPython / src / _treectrl.i
index a2e27f1ccc4dea409a345ad4afc09c5a42e28e22..4248e589e7909e3c936cc7e07102ae580778adbd 100644 (file)
@@ -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,13 +124,15 @@ public:
 class wxPyTreeItemData {
 public:
     wxPyTreeItemData(PyObject* obj = NULL);
-
+    ~wxPyTreeItemData();
+    
     PyObject* GetData();
     void      SetData(PyObject* obj);
 
     const wxTreeItemId& GetId();
     void                SetId(const wxTreeItemId& id);
 
+    %pythonAppend Destroy "args[0].thisown = 0"
     %extend { void Destroy() { delete self; } }
 };
 
@@ -144,7 +149,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 +165,7 @@ public:
     wxColour GetBackgroundColour();
     wxFont GetFont();
 
+    %pythonAppend Destroy "args[0].thisown = 0"
     %extend { void Destroy() { delete self; } }
 };
 
@@ -192,7 +199,6 @@ public:
 %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,10 +219,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_COMMAND_TREE_ITEM_MENU = wx.PyEventBinder(wxEVT_COMMAND_TREE_ITEM_MENU,         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
 //
@@ -224,7 +235,11 @@ EVT_COMMAND_TREE_ITEM_MENU = wx.PyEventBinder(wxEVT_COMMAND_TREE_ITEM_MENU,
 //     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
@@ -256,6 +271,7 @@ public:
 
         // Set the tooltip for the item (for EVT_TREE_ITEM_GETTOOLTIP events)
     void SetToolTip(const wxString& toolTip);
+    wxString GetToolTip();
 };
 
 //---------------------------------------------------------------------------
@@ -263,7 +279,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,
@@ -288,7 +304,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);
@@ -342,7 +358,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
@@ -372,10 +388,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
@@ -430,10 +446,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) {
@@ -458,10 +476,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);
@@ -510,7 +526,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;
@@ -540,7 +556,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")));
@@ -555,7 +571,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")));
@@ -584,6 +600,7 @@ public:
     wxTreeItemId GetPrevVisible(const wxTreeItemId& item) const;
 
     
+    %disownarg( wxPyTreeItemData* data );
     
     // add the root node to the tree
     wxTreeItemId AddRoot(const wxString& text,
@@ -618,7 +635,8 @@ public:
                             wxPyTreeItemData *data = NULL);
 
 
-
+    %cleardisown( wxPyTreeItemData* data );
+    
     // delete this item and associated data if any
     void Delete(const wxTreeItemId& item);
 
@@ -634,6 +652,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);
 
@@ -708,7 +732,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);
@@ -727,6 +751,10 @@ 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;
+
 };