]>
git.saurik.com Git - wxWidgets.git/blob - wxPython/demo/TreeListCtrl.py
3 import wx
.gizmos
as gizmos
7 #----------------------------------------------------------------------
9 class TestPanel(wx
.Panel
):
10 def __init__(self
, parent
, log
):
12 wx
.Panel
.__init
__(self
, parent
, -1)
13 self
.Bind(wx
.EVT_SIZE
, self
.OnSize
)
15 self
.tree
= gizmos
.TreeListCtrl(self
, -1, style
=
18 #| wx.TR_TWIST_BUTTONS
22 | wx
.TR_FULL_ROW_HIGHLIGHT
26 il
= wx
.ImageList(isz
[0], isz
[1])
27 fldridx
= il
.Add(wx
.ArtProvider_GetBitmap(wx
.ART_FOLDER
, wx
.ART_OTHER
, isz
))
28 fldropenidx
= il
.Add(wx
.ArtProvider_GetBitmap(wx
.ART_FILE_OPEN
, wx
.ART_OTHER
, isz
))
29 fileidx
= il
.Add(wx
.ArtProvider_GetBitmap(wx
.ART_NORMAL_FILE
, wx
.ART_OTHER
, isz
))
30 smileidx
= il
.Add(images
.getSmilesBitmap())
32 self
.tree
.SetImageList(il
)
36 self
.tree
.AddColumn("Main column")
37 self
.tree
.AddColumn("Column 1")
38 self
.tree
.AddColumn("Column 2")
39 self
.tree
.SetMainColumn(0) # the one with the tree in it...
40 self
.tree
.SetColumnWidth(0, 175)
43 self
.root
= self
.tree
.AddRoot("The Root Item")
44 self
.tree
.SetItemText(self
.root
, "col 1 root", 1)
45 self
.tree
.SetItemText(self
.root
, "col 2 root", 2)
46 self
.tree
.SetItemImage(self
.root
, fldridx
, which
= wx
.TreeItemIcon_Normal
)
47 self
.tree
.SetItemImage(self
.root
, fldropenidx
, which
= wx
.TreeItemIcon_Expanded
)
52 child
= self
.tree
.AppendItem(self
.root
, txt
)
53 self
.tree
.SetItemText(child
, txt
+ "(c1)", 1)
54 self
.tree
.SetItemText(child
, txt
+ "(c2)", 2)
55 self
.tree
.SetItemImage(child
, fldridx
, which
= wx
.TreeItemIcon_Normal
)
56 self
.tree
.SetItemImage(child
, fldropenidx
, which
= wx
.TreeItemIcon_Expanded
)
59 txt
= "item %d-%s" % (x
, chr(ord("a")+y
))
60 last
= self
.tree
.AppendItem(child
, txt
)
61 self
.tree
.SetItemText(last
, txt
+ "(c1)", 1)
62 self
.tree
.SetItemText(last
, txt
+ "(c2)", 2)
63 self
.tree
.SetItemImage(last
, fldridx
, which
= wx
.TreeItemIcon_Normal
)
64 self
.tree
.SetItemImage(last
, fldropenidx
, which
= wx
.TreeItemIcon_Expanded
)
67 txt
= "item %d-%s-%d" % (x
, chr(ord("a")+y
), z
)
68 item
= self
.tree
.AppendItem(last
, txt
)
69 self
.tree
.SetItemText(item
, txt
+ "(c1)", 1)
70 self
.tree
.SetItemText(item
, txt
+ "(c2)", 2)
71 self
.tree
.SetItemImage(item
, fileidx
, which
= wx
.TreeItemIcon_Normal
)
72 self
.tree
.SetItemImage(item
, smileidx
, which
= wx
.TreeItemIcon_Selected
)
75 self
.tree
.Expand(self
.root
)
77 self
.tree
.GetMainWindow().Bind(wx
.EVT_RIGHT_UP
, self
.OnRightUp
)
78 self
.tree
.Bind(wx
.EVT_TREE_ITEM_ACTIVATED
, self
.OnActivate
)
81 def OnActivate(self
, evt
):
82 self
.log
.write('OnActivate: %s' % self
.tree
.GetItemText(evt
.GetItem()))
85 def OnRightUp(self
, evt
):
86 pos
= evt
.GetPosition()
87 item
, flags
, col
= self
.tree
.HitTest(pos
)
89 self
.log
.write('Flags: %s, Col:%s, Text: %s' %
90 (flags
, col
, self
.tree
.GetItemText(item
, col
)))
92 def OnSize(self
, evt
):
93 self
.tree
.SetSize(self
.GetSize())
96 #----------------------------------------------------------------------
98 def runTest(frame
, nb
, log
):
99 win
= TestPanel(nb
, log
)
102 #----------------------------------------------------------------------
106 overview
= """<html><body>
107 <h2><center>TreeListCtrl</center></h2>
109 The TreeListCtrl is essentially a wx.TreeCtrl with extra columns,
110 such that the look is similar to a wx.ListCtrl.
116 if __name__
== '__main__':
117 #raw_input("Press enter...")
120 run
.main(['', os
.path
.basename(sys
.argv
[0])] + sys
.argv
[1:])