Check validity of items before using them

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@33375 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn
2005-04-06 04:23:16 +00:00
parent 37254c9a9e
commit a22318a0a9

View File

@@ -84,32 +84,34 @@ class TestTreeCtrlPanel(wx.Panel):
self.Bind(wx.EVT_TREE_ITEM_ACTIVATED, self.OnActivate, self.tree) 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_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 OnRightDown(self, event):
def OnRightClick(self, event):
pt = event.GetPosition(); pt = event.GetPosition();
item, flags = self.tree.HitTest(pt) item, flags = self.tree.HitTest(pt)
self.log.WriteText("OnRightClick: %s, %s, %s\n" % if item:
(self.tree.GetItemText(item), type(item), item.__class__)) self.log.WriteText("OnRightClick: %s, %s, %s\n" %
self.tree.SelectItem(item) (self.tree.GetItemText(item), type(item), item.__class__))
self.tree.SelectItem(item)
def OnRightUp(self, event): def OnRightUp(self, event):
pt = event.GetPosition(); pt = event.GetPosition();
item, flags = self.tree.HitTest(pt) item, flags = self.tree.HitTest(pt)
self.log.WriteText("OnRightUp: %s (manually starting label edit)\n" if item:
% self.tree.GetItemText(item)) self.log.WriteText("OnRightUp: %s (manually starting label edit)\n"
self.tree.EditLabel(item) % self.tree.GetItemText(item))
self.tree.EditLabel(item)
def OnBeginEdit(self, event): def OnBeginEdit(self, event):
self.log.WriteText("OnBeginEdit\n") self.log.WriteText("OnBeginEdit\n")
# show how to prevent edit... # 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() wx.Bell()
self.log.WriteText("You can't edit this one...\n") self.log.WriteText("You can't edit this one...\n")
@@ -141,9 +143,10 @@ class TestTreeCtrlPanel(wx.Panel):
def OnLeftDClick(self, event): def OnLeftDClick(self, event):
pt = event.GetPosition(); pt = event.GetPosition();
item, flags = self.tree.HitTest(pt) item, flags = self.tree.HitTest(pt)
self.log.WriteText("OnLeftDClick: %s\n" % self.tree.GetItemText(item)) if item:
parent = self.tree.GetItemParent(item) self.log.WriteText("OnLeftDClick: %s\n" % self.tree.GetItemText(item))
self.tree.SortChildren(parent) parent = self.tree.GetItemParent(item)
self.tree.SortChildren(parent)
event.Skip() event.Skip()
@@ -154,25 +157,29 @@ class TestTreeCtrlPanel(wx.Panel):
def OnItemExpanded(self, event): def OnItemExpanded(self, event):
item = event.GetItem() 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): def OnItemCollapsed(self, event):
item = event.GetItem() 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): def OnSelChanged(self, event):
self.item = event.GetItem() self.item = event.GetItem()
self.log.WriteText("OnSelChanged: %s\n" % self.tree.GetItemText(self.item)) if self.item:
if wx.Platform == '__WXMSW__': self.log.WriteText("OnSelChanged: %s\n" % self.tree.GetItemText(self.item))
self.log.WriteText("BoundingRect: %s\n" % if wx.Platform == '__WXMSW__':
self.tree.GetBoundingRect(self.item, True)) self.log.WriteText("BoundingRect: %s\n" %
#items = self.tree.GetSelections() self.tree.GetBoundingRect(self.item, True))
#print map(self.tree.GetItemText, items) #items = self.tree.GetSelections()
#print map(self.tree.GetItemText, items)
event.Skip() event.Skip()
def OnActivate(self, event): 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))
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------