]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/src/_treectrl.i
Script updates
[wxWidgets.git] / wxPython / src / _treectrl.i
index e5bece1eeece24a430543705ab20e7b2a13cbada..253b6303ff92b3b1c9e45e1bc10b0ab83dd81a2a 100644 (file)
 %{
 #include <wx/treectrl.h>
 #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
@@ -98,18 +96,11 @@ public:
     bool IsOk() const;
 
     %extend {
-        bool operator==(const wxTreeItemId* other) {
-            if (!other) return False;
-            return *self == *other;
-        }
-
-        bool operator!=(const wxTreeItemId* other) {
-            if (!other) return True;
-            return *self != *other;
-        }
+        bool __eq__(const wxTreeItemId* other) { return other ? (*self == *other) : False; }
+        bool __ne__(const wxTreeItemId* other) { return other ? (*self != *other) : True;  }
     }
 
-    wxTreeItemIdValue m_pItem;
+    void*  m_pItem;
 
 
     %pythoncode {
@@ -320,15 +311,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,
@@ -336,7 +327,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);
 
@@ -372,10 +363,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
@@ -535,12 +526,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;
         }
@@ -550,12 +541,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;
         }            
@@ -644,12 +635,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);