]>
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
) 
  80     def OnRightUp(self
, evt
): 
  81         pos 
= evt
.GetPosition() 
  82         item
, flags
, col 
= self
.tree
.HitTest(pos
) 
  84             self
.log
.write('Flags: %s, Col:%s, Text: %s' % 
  85                            (flags
, col
, self
.tree
.GetItemText(item
, col
))) 
  87     def OnSize(self
, evt
): 
  88         self
.tree
.SetSize(self
.GetSize()) 
  91 #---------------------------------------------------------------------- 
  93 def runTest(frame
, nb
, log
): 
  94     win 
= TestPanel(nb
, log
) 
  97 #---------------------------------------------------------------------- 
 101 overview 
= """<html><body> 
 102 <h2><center>TreeListCtrl</center></h2> 
 104 The TreeListCtrl is essentially a wx.TreeCtrl with extra columns, 
 105 such that the look is similar to a wx.ListCtrl. 
 111 if __name__ 
== '__main__': 
 112     #raw_input("Press enter...") 
 115     run
.main(['', os
.path
.basename(sys
.argv
[0])] + sys
.argv
[1:])