X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c6281ceb776325251aa119c7b496e6152303996a..299647acac7960652aadb008775429c1f8ea9b8d:/wxPython/demo/TreeListCtrl.py diff --git a/wxPython/demo/TreeListCtrl.py b/wxPython/demo/TreeListCtrl.py new file mode 100644 index 0000000000..4015c0665f --- /dev/null +++ b/wxPython/demo/TreeListCtrl.py @@ -0,0 +1,121 @@ +# 11/22/2003 - Jeff Grimmett (grimmtooth@softhome.net) +# +# o Updated for wx namespace +# + +import wx +import wx.gizmos as gizmos + +import images + +#---------------------------------------------------------------------- + +class TestPanel(wx.Panel): + def __init__(self, parent, log): + self.log = log + wx.Panel.__init__(self, parent, -1) + self.Bind(wx.EVT_SIZE, self.OnSize) + + self.tree = gizmos.TreeListCtrl(self, -1, style = wx.TR_DEFAULT_STYLE + #| wx.TR_ROW_LINES + #| wx.TR_NO_LINES + #| wx.TR_TWIST_BUTTONS + ) + isz = (16,16) + il = wx.ImageList(isz[0], isz[1]) + fldridx = il.Add(wx.ArtProvider_GetBitmap(wx.ART_FOLDER, wx.ART_OTHER, isz)) + fldropenidx = il.Add(wx.ArtProvider_GetBitmap(wx.ART_FILE_OPEN, wx.ART_OTHER, isz)) + fileidx = il.Add(wx.ArtProvider_GetBitmap(wx.ART_REPORT_VIEW, wx.ART_OTHER, isz)) + smileidx = il.Add(images.getSmilesBitmap()) + + self.tree.SetImageList(il) + self.il = il + + # create some columns + self.tree.AddColumn("Main column") + self.tree.AddColumn("Column 1") + self.tree.AddColumn("Column 2") + self.tree.SetMainColumn(0) # the one with the tree in it... + self.tree.SetColumnWidth(0, 175) + + + self.root = self.tree.AddRoot("The Root Item") + self.tree.SetItemText(self.root, "col 1 root", 1) + self.tree.SetItemText(self.root, "col 2 root", 2) + self.tree.SetItemImage(self.root, fldridx, which = wx.TreeItemIcon_Normal) + self.tree.SetItemImage(self.root, fldropenidx, which = wx.TreeItemIcon_Expanded) + + + for x in range(15): + txt = "Item %d" % x + child = self.tree.AppendItem(self.root, txt) + self.tree.SetItemText(child, txt + "(c1)", 1) + self.tree.SetItemText(child, txt + "(c2)", 2) + self.tree.SetItemImage(child, fldridx, which = wx.TreeItemIcon_Normal) + self.tree.SetItemImage(child, fldropenidx, which = wx.TreeItemIcon_Expanded) + + for y in range(5): + txt = "item %d-%s" % (x, chr(ord("a")+y)) + last = self.tree.AppendItem(child, txt) + self.tree.SetItemText(last, txt + "(c1)", 1) + self.tree.SetItemText(last, txt + "(c2)", 2) + self.tree.SetItemImage(last, fldridx, which = wx.TreeItemIcon_Normal) + self.tree.SetItemImage(last, fldropenidx, which = wx.TreeItemIcon_Expanded) + + for z in range(5): + txt = "item %d-%s-%d" % (x, chr(ord("a")+y), z) + item = self.tree.AppendItem(last, txt) + self.tree.SetItemText(item, txt + "(c1)", 1) + self.tree.SetItemText(item, txt + "(c2)", 2) + self.tree.SetItemImage(item, fileidx, which = wx.TreeItemIcon_Normal) + self.tree.SetItemImage(item, smileidx, which = wx.TreeItemIcon_Selected) + + + self.tree.Expand(self.root) + + self.tree.GetMainWindow().Bind(wx.EVT_RIGHT_UP, self.OnRightUp) + + + def OnRightUp(self, evt): + # Convert the position from being relative to the subwindow to + # being relative to the outer treelist window so HitTest will + # have the point it is expecting. + pos = evt.GetPosition() + pos = self.tree.GetMainWindow().ClientToScreen(pos) + pos = self.tree.ScreenToClient(pos) + item, flags, col = self.tree.HitTest(pos) + + if item: + print flags, col, self.tree.GetItemText(item, col) + + + def OnSize(self, evt): + self.tree.SetSize(self.GetSize()) + + +#---------------------------------------------------------------------- + +def runTest(frame, nb, log): + win = TestPanel(nb, log) + return win + +#---------------------------------------------------------------------- + + + +overview = """ +

wxTreeListCtrl

+ +The wx.TreeListCtrl is essentially a wx.TreeCtrl with extra columns, +such that the look is similar to a wx.ListCtrl. + + +""" + + +if __name__ == '__main__': + #raw_input("Press enter...") + import sys,os + import run + run.main(['', os.path.basename(sys.argv[0])]) +