]>
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 
= wx
.TR_DEFAULT_STYLE
 
  18                                    #| wx.TR_TWIST_BUTTONS 
  21         il 
= wx
.ImageList(isz
[0], isz
[1]) 
  22         fldridx     
= il
.Add(wx
.ArtProvider_GetBitmap(wx
.ART_FOLDER
,      wx
.ART_OTHER
, isz
)) 
  23         fldropenidx 
= il
.Add(wx
.ArtProvider_GetBitmap(wx
.ART_FILE_OPEN
,   wx
.ART_OTHER
, isz
)) 
  24         fileidx     
= il
.Add(wx
.ArtProvider_GetBitmap(wx
.ART_REPORT_VIEW
, wx
.ART_OTHER
, isz
)) 
  25         smileidx    
= il
.Add(images
.getSmilesBitmap()) 
  27         self
.tree
.SetImageList(il
) 
  31         self
.tree
.AddColumn("Main column") 
  32         self
.tree
.AddColumn("Column 1") 
  33         self
.tree
.AddColumn("Column 2") 
  34         self
.tree
.SetMainColumn(0) # the one with the tree in it... 
  35         self
.tree
.SetColumnWidth(0, 175) 
  38         self
.root 
= self
.tree
.AddRoot("The Root Item") 
  39         self
.tree
.SetItemText(self
.root
, "col 1 root", 1) 
  40         self
.tree
.SetItemText(self
.root
, "col 2 root", 2) 
  41         self
.tree
.SetItemImage(self
.root
, fldridx
, which 
= wx
.TreeItemIcon_Normal
) 
  42         self
.tree
.SetItemImage(self
.root
, fldropenidx
, which 
= wx
.TreeItemIcon_Expanded
) 
  47             child 
= self
.tree
.AppendItem(self
.root
, txt
) 
  48             self
.tree
.SetItemText(child
, txt 
+ "(c1)", 1) 
  49             self
.tree
.SetItemText(child
, txt 
+ "(c2)", 2) 
  50             self
.tree
.SetItemImage(child
, fldridx
, which 
= wx
.TreeItemIcon_Normal
) 
  51             self
.tree
.SetItemImage(child
, fldropenidx
, which 
= wx
.TreeItemIcon_Expanded
) 
  54                 txt 
= "item %d-%s" % (x
, chr(ord("a")+y
)) 
  55                 last 
= self
.tree
.AppendItem(child
, txt
) 
  56                 self
.tree
.SetItemText(last
, txt 
+ "(c1)", 1) 
  57                 self
.tree
.SetItemText(last
, txt 
+ "(c2)", 2) 
  58                 self
.tree
.SetItemImage(last
, fldridx
, which 
= wx
.TreeItemIcon_Normal
) 
  59                 self
.tree
.SetItemImage(last
, fldropenidx
, which 
= wx
.TreeItemIcon_Expanded
) 
  62                     txt 
= "item %d-%s-%d" % (x
, chr(ord("a")+y
), z
) 
  63                     item 
= self
.tree
.AppendItem(last
,  txt
) 
  64                     self
.tree
.SetItemText(item
, txt 
+ "(c1)", 1) 
  65                     self
.tree
.SetItemText(item
, txt 
+ "(c2)", 2) 
  66                     self
.tree
.SetItemImage(item
, fileidx
, which 
= wx
.TreeItemIcon_Normal
) 
  67                     self
.tree
.SetItemImage(item
, smileidx
, which 
= wx
.TreeItemIcon_Selected
) 
  70         self
.tree
.Expand(self
.root
) 
  72         self
.tree
.GetMainWindow().Bind(wx
.EVT_RIGHT_UP
, self
.OnRightUp
) 
  75     def OnRightUp(self
, evt
): 
  76         # Convert the position from being relative to the subwindow to 
  77         # being relative to the outer treelist window so HitTest will 
  78         # have the point it is expecting. 
  79         pos 
= evt
.GetPosition() 
  80         pos 
= self
.tree
.GetMainWindow().ClientToScreen(pos
) 
  81         pos 
= self
.tree
.ScreenToClient(pos
) 
  82         item
, flags
, col 
= self
.tree
.HitTest(pos
) 
  85             print flags
, col
, self
.tree
.GetItemText(item
, col
) 
  88     def OnSize(self
, evt
): 
  89         self
.tree
.SetSize(self
.GetSize()) 
  92 #---------------------------------------------------------------------- 
  94 def runTest(frame
, nb
, log
): 
  95     win 
= TestPanel(nb
, log
) 
  98 #---------------------------------------------------------------------- 
 102 overview 
= """<html><body> 
 103 <h2><center>TreeListCtrl</center></h2> 
 105 The TreeListCtrl is essentially a wx.TreeCtrl with extra columns, 
 106 such that the look is similar to a wx.ListCtrl. 
 112 if __name__ 
== '__main__': 
 113     #raw_input("Press enter...") 
 116     run
.main(['', os
.path
.basename(sys
.argv
[0])])