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
)
29 EVT_LIST_ITEM_DESELECTED(self
, self
.GetId(), self
.OnItemDeselected
)
32 def OnItemSelected(self
, event
):
33 self
.currentItem
= event
.m_itemIndex
34 self
.log
.WriteText('OnItemSelected: "%s", "%s", "%s", "%s"\n' %
36 self
.GetItemText(self
.currentItem
),
37 self
.getColumnText(self
.currentItem
, 1),
38 self
.getColumnText(self
.currentItem
, 2)))
40 def OnItemActivated(self
, event
):
41 self
.currentItem
= event
.m_itemIndex
42 self
.log
.WriteText("OnItemActivated: %s\n" % self
.GetItemText(self
.currentItem
))
44 def getColumnText(self
, index
, col
):
45 item
= self
.GetItem(index
, col
)
48 def OnItemDeselected(self
, evt
):
52 #---------------------------------------------------
53 # These methods are callbacks for implementing the
54 # "virtualness" of the list...
55 def OnGetItemText(self
, item
, col
):
56 return "Item %d, column %d" % (item
, col
)
59 def OnGetItemImage(self
, item
):
60 return -1 # if used you should return the index in the ImageList
63 def OnGetItemAttr(self
, item
):
72 #----------------------------------------------------------------------
74 def runTest(frame
, nb
, log
):
75 win
= TestVirtualList(nb
, log
)
78 #----------------------------------------------------------------------
89 if __name__
== '__main__':
92 run
.main(['', os
.path
.basename(sys
.argv
[0])])