-# 11/21/2003 - Jeff Grimmett (grimmtooth@softhome.net)
-#
-# o Updated for wx namespace
-#
import string
import wx
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)
-
- def OnRightClick(self, event):
+ def OnRightDown(self, event):
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)
- 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...
- 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()
- (child, cookie) = self.tree.GetFirstChild(root, cookie)
+ (child, cookie) = self.tree.GetFirstChild(root)
while child.IsOk():
self.log.WriteText("Child [%s] visible = %d" %
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:
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()
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()
- 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()
- 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):
- 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))
#---------------------------------------------------------------------------
overview = """\
-A tree control presents information as a hierarchy, with items that may be
+A TreeCtrl presents information as a hierarchy, with items that may be
expanded to show further items. Items in a tree control are referenced by
-wxTreeItemId handles.
+wx.TreeItemId handles.
"""
if __name__ == '__main__':
import sys,os
import run
- run.main(['', os.path.basename(sys.argv[0])])
+ run.main(['', os.path.basename(sys.argv[0])] + sys.argv[1:])