Merge item hiding to CustomTreeCtrl

Move item hiding from HyperTreeList to CustomTreeCtrl so that both
trees can have the feature.

Add a HideItemWindows() method to hide windows only for a specific item
and its children. This is much faster than calling HideWindows().

Add context menu options to the CustomTreeCtrl demo so that Hiding
can be tested.
This commit is contained in:
cbeytas
2019-01-06 23:16:20 -05:00
parent 94ce8fc74a
commit 2315a7175b
3 changed files with 113 additions and 66 deletions

View File

@@ -1621,6 +1621,9 @@ class CustomTreeCtrl(CT.CustomTreeCtrl):
item7 = menu.Append(wx.ID_ANY, "Disable item")
menu.AppendSeparator()
item14 = menu.Append(wx.ID_ANY, "Hide Item")
item15 = menu.Append(wx.ID_ANY, "Unhide All Items")
menu.AppendSeparator()
item8 = menu.Append(wx.ID_ANY, "Change item icons")
menu.AppendSeparator()
@@ -1648,6 +1651,8 @@ class CustomTreeCtrl(CT.CustomTreeCtrl):
self.Bind(wx.EVT_MENU, self.OnItemPrepend, item11)
self.Bind(wx.EVT_MENU, self.OnItemAppend, item12)
self.Bind(wx.EVT_MENU, self.OnSeparatorInsert, item13)
self.Bind(wx.EVT_MENU, self.OnHideItem, item14)
self.Bind(wx.EVT_MENU, self.OnUnhideItems, item15)
self.PopupMenu(menu)
menu.Destroy()
@@ -1724,6 +1729,22 @@ class CustomTreeCtrl(CT.CustomTreeCtrl):
self.EnableItem(self.current, False)
def OnHideItem(self, event):
self.HideItem(self.current)
event.Skip()
def OnUnhideItems(self, event):
item = self.GetRootItem()
while item:
if item.IsHidden():
self.HideItem(item, False)
item = self.GetNext(item)
event.Skip()
def OnItemIcons(self, event):
bitmaps = [self.itemdict["normal"], self.itemdict["selected"],