2 from wxPython
.wx
import *
4 #----------------------------------------------------------------------
6 class TestVirtualList(wxListCtrl
):
7 def __init__(self
, parent
, log
):
8 wxListCtrl
.__init
__(self
, parent
, -1,
9 style
=wxLC_REPORT|wxLC_VIRTUAL|wxLC_HRULES|wxLC_VRULES
)
12 self
.InsertColumn(0, "First")
13 self
.InsertColumn(1, "Second")
14 self
.InsertColumn(2, "Third")
15 self
.SetColumnWidth(0, 175)
16 self
.SetColumnWidth(1, 175)
17 self
.SetColumnWidth(2, 175)
19 self
.SetItemCount(1000000)
21 self
.attr1
= wxListItemAttr()
22 self
.attr1
.SetBackgroundColour("yellow")
24 self
.attr2
= wxListItemAttr()
25 self
.attr2
.SetBackgroundColour("light blue")
27 EVT_LIST_ITEM_SELECTED(self
, self
.GetId(), self
.OnItemSelected
)
28 EVT_LIST_ITEM_ACTIVATED(self
, self
.GetId(), self
.OnItemActivated
)
31 def OnItemSelected(self
, event
):
32 self
.currentItem
= event
.m_itemIndex
33 self
.log
.WriteText('OnItemSelected: "%s", "%s", "%s", "%s"\n' %
35 self
.GetItemText(self
.currentItem
),
36 self
.getColumnText(self
.currentItem
, 1),
37 self
.getColumnText(self
.currentItem
, 2)))
39 def OnItemActivated(self
, event
):
40 self
.currentItem
= event
.m_itemIndex
41 self
.log
.WriteText("OnItemActivated: %s\n" % self
.GetItemText(self
.currentItem
))
43 def getColumnText(self
, index
, col
):
44 item
= self
.GetItem(index
, col
)
47 #---------------------------------------------------
48 # These methods are callbacks for implementing the
49 # "virtualness" of the list...
50 def OnGetItemText(self
, item
, col
):
51 return "Item %d, column %d" % (item
, col
)
54 def OnGetItemImage(self
, item
):
55 return -1 # if used you should return the index in the ImageList
58 def OnGetItemAttr(self
, item
):
67 #----------------------------------------------------------------------
69 def runTest(frame
, nb
, log
):
70 win
= TestVirtualList(nb
, log
)
73 #----------------------------------------------------------------------
84 if __name__
== '__main__':
87 run
.main(['', os
.path
.basename(sys
.argv
[0])])