]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/demo/TreeCtrl.py
wxCheckListBox doesn't require wxUSE_OWNER_DRAWN when using WXUNIVERSAL
[wxWidgets.git] / wxPython / demo / TreeCtrl.py
index 84fe4ab2184cf994682062c5b7e217ac94ffa623..f36a659521a7faf104a3aece41f2fec2ea39c394 100644 (file)
@@ -84,39 +84,41 @@ class TestTreeCtrlPanel(wx.Panel):
         self.Bind(wx.EVT_TREE_ITEM_ACTIVATED, self.OnActivate, self.tree)
 
         self.tree.Bind(wx.EVT_LEFT_DCLICK, self.OnLeftDClick)
         self.Bind(wx.EVT_TREE_ITEM_ACTIVATED, self.OnActivate, self.tree)
 
         self.tree.Bind(wx.EVT_LEFT_DCLICK, self.OnLeftDClick)
-        self.tree.Bind(wx.EVT_RIGHT_DOWN, self.OnRightClick)
+        self.tree.Bind(wx.EVT_RIGHT_DOWN, self.OnRightDown)
         self.tree.Bind(wx.EVT_RIGHT_UP, self.OnRightUp)
 
 
         self.tree.Bind(wx.EVT_RIGHT_UP, self.OnRightUp)
 
 
-
-    def OnRightClick(self, event):
+    def OnRightDown(self, event):
         pt = event.GetPosition();
         item, flags = self.tree.HitTest(pt)
         pt = event.GetPosition();
         item, flags = self.tree.HitTest(pt)
-        self.log.WriteText("OnRightClick: %s, %s, %s\n" %
-                           (self.tree.GetItemText(item), type(item), item.__class__))
-        self.tree.SelectItem(item)
+        if item:
+            self.log.WriteText("OnRightClick: %s, %s, %s\n" %
+                               (self.tree.GetItemText(item), type(item), item.__class__))
+            self.tree.SelectItem(item)
 
 
     def OnRightUp(self, event):
         pt = event.GetPosition();
         item, flags = self.tree.HitTest(pt)
 
 
     def OnRightUp(self, event):
         pt = event.GetPosition();
         item, flags = self.tree.HitTest(pt)
-        self.log.WriteText("OnRightUp: %s (manually starting label edit)\n"
-                           % self.tree.GetItemText(item))
-        self.tree.EditLabel(item)
+        if item:        
+            self.log.WriteText("OnRightUp: %s (manually starting label edit)\n"
+                               % self.tree.GetItemText(item))
+            self.tree.EditLabel(item)
 
 
 
     def OnBeginEdit(self, event):
         self.log.WriteText("OnBeginEdit\n")
         # show how to prevent edit...
 
 
 
     def OnBeginEdit(self, event):
         self.log.WriteText("OnBeginEdit\n")
         # show how to prevent edit...
-        if self.tree.GetItemText(event.GetItem()) == "The Root Item":
+        item = event.GetItem()
+        if item and self.tree.GetItemText(item) == "The Root Item":
             wx.Bell()
             self.log.WriteText("You can't edit this one...\n")
 
             # Lets just see what's visible of its children
             cookie = 0
             root = event.GetItem()
             wx.Bell()
             self.log.WriteText("You can't edit this one...\n")
 
             # Lets just see what's visible of its children
             cookie = 0
             root = event.GetItem()
-            (child, cookie) = self.tree.GetFirstChild(root, cookie)
+            (child, cookie) = self.tree.GetFirstChild(root)
 
             while child.IsOk():
                 self.log.WriteText("Child [%s] visible = %d" %
 
             while child.IsOk():
                 self.log.WriteText("Child [%s] visible = %d" %
@@ -128,7 +130,8 @@ class TestTreeCtrlPanel(wx.Panel):
 
 
     def OnEndEdit(self, event):
 
 
     def OnEndEdit(self, event):
-        self.log.WriteText("OnEndEdit\n")
+        self.log.WriteText("OnEndEdit: %s %s\n" %
+                           (event.IsEditCancelled(), event.GetLabel()) )
         # show how to reject edit, we'll not allow any digits
         for x in event.GetLabel():
             if x in string.digits:
         # show how to reject edit, we'll not allow any digits
         for x in event.GetLabel():
             if x in string.digits:
@@ -140,9 +143,11 @@ class TestTreeCtrlPanel(wx.Panel):
     def OnLeftDClick(self, event):
         pt = event.GetPosition();
         item, flags = self.tree.HitTest(pt)
     def OnLeftDClick(self, event):
         pt = event.GetPosition();
         item, flags = self.tree.HitTest(pt)
-        self.log.WriteText("OnLeftDClick: %s\n" % self.tree.GetItemText(item))
-        parent = self.tree.GetItemParent(item)
-        self.tree.SortChildren(parent)
+        if item:
+            self.log.WriteText("OnLeftDClick: %s\n" % self.tree.GetItemText(item))
+            parent = self.tree.GetItemParent(item)
+            if parent.IsOk():
+                self.tree.SortChildren(parent)
         event.Skip()
 
 
         event.Skip()
 
 
@@ -153,25 +158,29 @@ class TestTreeCtrlPanel(wx.Panel):
 
     def OnItemExpanded(self, event):
         item = event.GetItem()
 
     def OnItemExpanded(self, event):
         item = event.GetItem()
-        self.log.WriteText("OnItemExpanded: %s\n" % self.tree.GetItemText(item))
+        if item:
+            self.log.WriteText("OnItemExpanded: %s\n" % self.tree.GetItemText(item))
 
     def OnItemCollapsed(self, event):
         item = event.GetItem()
 
     def OnItemCollapsed(self, event):
         item = event.GetItem()
-        self.log.WriteText("OnItemCollapsed: %s\n" % self.tree.GetItemText(item))
+        if item:
+            self.log.WriteText("OnItemCollapsed: %s\n" % self.tree.GetItemText(item))
 
     def OnSelChanged(self, event):
         self.item = event.GetItem()
 
     def OnSelChanged(self, event):
         self.item = event.GetItem()
-        self.log.WriteText("OnSelChanged: %s\n" % self.tree.GetItemText(self.item))
-        if wx.Platform == '__WXMSW__':
-            self.log.WriteText("BoundingRect: %s\n" %
-                               self.tree.GetBoundingRect(self.item, True))
-        #items = self.tree.GetSelections()
-        #print map(self.tree.GetItemText, items)
+        if self.item:
+            self.log.WriteText("OnSelChanged: %s\n" % self.tree.GetItemText(self.item))
+            if wx.Platform == '__WXMSW__':
+                self.log.WriteText("BoundingRect: %s\n" %
+                                   self.tree.GetBoundingRect(self.item, True))
+            #items = self.tree.GetSelections()
+            #print map(self.tree.GetItemText, items)
         event.Skip()
 
 
     def OnActivate(self, event):
         event.Skip()
 
 
     def OnActivate(self, event):
-        self.log.WriteText("OnActivate: %s\n" % self.tree.GetItemText(self.item))
+        if self.item:
+            self.log.WriteText("OnActivate: %s\n" % self.tree.GetItemText(self.item))
 
 
 #---------------------------------------------------------------------------
 
 
 #---------------------------------------------------------------------------