X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/41d1d7e34bfa5ebd0bfcdb7fb6df0243663a85a4..8a14de8aa913d127467af566392489a0cb8b9745:/wxPython/demo/ListCtrl.py diff --git a/wxPython/demo/ListCtrl.py b/wxPython/demo/ListCtrl.py index da993466ec..c766332fe9 100644 --- a/wxPython/demo/ListCtrl.py +++ b/wxPython/demo/ListCtrl.py @@ -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,16 +120,18 @@ class TestListCtrlPanel(wx.Panel, listmix.ColumnSorterMixin): ) self.list.SetImageList(self.il, wx.IMAGE_LIST_SMALL) + sizer.Add(self.list, 1, wx.EXPAND) self.PopulateList() # Now that the list exists we can init the other base class, - # see wxPython/lib/mixins/listctrl.py + # see wx/lib/mixins/listctrl.py self.itemDataMap = musicdata 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: @@ -190,22 +206,22 @@ class TestListCtrlPanel(wx.Panel, listmix.ColumnSorterMixin): self.currentItem = 0 - # Used by the ColumnSorterMixin, see wxPython/lib/mixins/listctrl.py + # Used by the ColumnSorterMixin, see wx/lib/mixins/listctrl.py def GetListCtrl(self): return self.list - # Used by the ColumnSorterMixin, see wxPython/lib/mixins/listctrl.py + # Used by the ColumnSorterMixin, see wx/lib/mixins/listctrl.py def GetSortImages(self): return (self.sm_dn, self.sm_up) def OnRightDown(self, event): - self.x = event.GetX() - self.y = event.GetY() - self.log.WriteText("x, y = %s\n" % str((self.x, self.y))) - item, flags = self.list.HitTest((self.x, self.y)) + x = event.GetX() + y = event.GetY() + 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() @@ -313,7 +329,7 @@ class TestListCtrlPanel(wx.Panel, listmix.ColumnSorterMixin): # Popup the menu. If an item is selected then its handler # will be called before PopupMenu returns. - self.PopupMenu(menu, (self.x, self.y)) + self.PopupMenu(menu) menu.Destroy() @@ -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):