]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/demo/ListCtrl.py
The great wxVScrolledWindow refactoring: allow using it both horizontal and
[wxWidgets.git] / wxPython / demo / ListCtrl.py
index 7ef63aaf29670b1c723ede8b7232df6e114269e5..c766332fe9a7f00a408f5a936cc26f55b4f0915a 100644 (file)
@@ -90,7 +90,17 @@ class TestListCtrlPanel(wx.Panel, listmix.ColumnSorterMixin):
 
         self.log = log
         tID = wx.NewId()
-
+        
+        sizer = wx.BoxSizer(wx.VERTICAL)
+        
+        if wx.Platform == "__WXMAC__" and \
+               hasattr(wx.GetApp().GetTopWindow(), "LoadDemo"):
+            self.useNative = wx.CheckBox(self, -1, "Use native listctrl")
+            self.useNative.SetValue( 
+                not wx.SystemOptions.GetOptionInt("mac.listctrl.always_use_generic") )
+            self.Bind(wx.EVT_CHECKBOX, self.OnUseNative, self.useNative)
+            sizer.Add(self.useNative, 0, wx.ALL | wx.ALIGN_RIGHT, 4)
+            
         self.il = wx.ImageList(16, 16)
 
         self.idx1 = self.il.Add(images.getSmilesBitmap())
@@ -110,6 +120,7 @@ class TestListCtrlPanel(wx.Panel, listmix.ColumnSorterMixin):
                                  )
         
         self.list.SetImageList(self.il, wx.IMAGE_LIST_SMALL)
+        sizer.Add(self.list, 1, wx.EXPAND)
 
         self.PopulateList()
 
@@ -119,7 +130,8 @@ class TestListCtrlPanel(wx.Panel, listmix.ColumnSorterMixin):
         listmix.ColumnSorterMixin.__init__(self, 3)
         #self.SortListItems(0, True)
 
-        self.Bind(wx.EVT_SIZE, self.OnSize)
+        self.SetSizer(sizer)
+        self.SetAutoLayout(True)
 
         self.Bind(wx.EVT_LIST_ITEM_SELECTED, self.OnItemSelected, self.list)
         self.Bind(wx.EVT_LIST_ITEM_DESELECTED, self.OnItemDeselected, self.list)
@@ -142,6 +154,10 @@ class TestListCtrlPanel(wx.Panel, listmix.ColumnSorterMixin):
         self.list.Bind(wx.EVT_RIGHT_UP, self.OnRightClick)
 
 
+    def OnUseNative(self, event):
+        wx.SystemOptions.SetOptionInt("mac.listctrl.always_use_generic", not event.IsChecked())
+        wx.GetApp().GetTopWindow().LoadDemo("ListCtrl")
+
     def PopulateList(self):
         if 0:
             # for normal, simple columns, you can add them like this:
@@ -205,7 +221,7 @@ class TestListCtrlPanel(wx.Panel, listmix.ColumnSorterMixin):
         self.log.WriteText("x, y = %s\n" % str((x, y)))
         item, flags = self.list.HitTest((x, y))
 
-        if flags & wx.LIST_HITTEST_ONITEM:
+        if item != wx.NOT_FOUND and flags & wx.LIST_HITTEST_ONITEM:
             self.list.Select(item)
 
         event.Skip()
@@ -346,12 +362,6 @@ class TestListCtrlPanel(wx.Panel, listmix.ColumnSorterMixin):
         self.list.EditLabel(self.currentItem)
 
 
-    def OnSize(self, event):
-        w,h = self.GetClientSizeTuple()
-        self.list.SetDimensions(0, 0, w, h)
-
-
-
 #---------------------------------------------------------------------------
 
 def runTest(frame, nb, log):