]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/demo/wxListCtrl_virtual.py
Fixed drive handling on OS/2.
[wxWidgets.git] / wxPython / demo / wxListCtrl_virtual.py
index 3e9a8fa7c1856c24c20c844e8427b3883c8ca802..ba64a193c92a63df7ca5b96310e823f977223d87 100644 (file)
@@ -1,5 +1,6 @@
 
 from wxPython.wx import *
+import images
 
 #----------------------------------------------------------------------
 
@@ -9,6 +10,11 @@ class TestVirtualList(wxListCtrl):
                             style=wxLC_REPORT|wxLC_VIRTUAL|wxLC_HRULES|wxLC_VRULES)
         self.log = log
 
+        self.il = wxImageList(16, 16)
+        self.idx1 = self.il.Add(images.getSmilesBitmap())
+        self.SetImageList(self.il, wxIMAGE_LIST_SMALL)
+
+
         self.InsertColumn(0, "First")
         self.InsertColumn(1, "Second")
         self.InsertColumn(2, "Third")
@@ -26,6 +32,7 @@ class TestVirtualList(wxListCtrl):
 
         EVT_LIST_ITEM_SELECTED(self, self.GetId(), self.OnItemSelected)
         EVT_LIST_ITEM_ACTIVATED(self, self.GetId(), self.OnItemActivated)
+        EVT_LIST_ITEM_DESELECTED(self, self.GetId(), self.OnItemDeselected)
 
 
     def OnItemSelected(self, event):
@@ -38,22 +45,31 @@ class TestVirtualList(wxListCtrl):
 
     def OnItemActivated(self, event):
         self.currentItem = event.m_itemIndex
-        self.log.WriteText("OnItemActivated: %s\n" % self.GetItemText(self.currentItem))
+        self.log.WriteText("OnItemActivated: %s\nTopItem: %s\n" %
+                           (self.GetItemText(self.currentItem), self.GetTopItem()))
 
     def getColumnText(self, index, col):
         item = self.GetItem(index, col)
         return item.GetText()
 
+    def OnItemDeselected(self, evt):
+        self.log.WriteText("OnItemDeselected: %s" % evt.m_itemIndex)
+
+
     #---------------------------------------------------
     # These methods are callbacks for implementing the
-    # "virtualness" of the list...
+    # "virtualness" of the list...  Normally you would
+    # determine the text, attributes and/or image based
+    # on values from some external data source, but for
+    # this demo we'll just calculate them
     def OnGetItemText(self, item, col):
         return "Item %d, column %d" % (item, col)
 
-
     def OnGetItemImage(self, item):
-        return -1  # if used you should return the index in the ImageList
-
+        if item % 3 == 0:
+            return self.idx1
+        else:
+            return -1
 
     def OnGetItemAttr(self, item):
         if item % 3 == 1: