From 5924f6b37d26362c7199838c413752f56e6fc880 Mon Sep 17 00:00:00 2001 From: Kevin Ollivier Date: Sat, 11 Nov 2006 23:48:32 +0000 Subject: [PATCH] Adding the option to toggle between native and generic listctrl. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@43327 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- wxPython/demo/ListCtrl.py | 28 +++++++++++++++++----------- wxPython/demo/ListCtrl_edit.py | 19 +++++++++++++++---- wxPython/demo/ListCtrl_virtual.py | 29 +++++++++++++++++++++++++---- 3 files changed, 57 insertions(+), 19 deletions(-) diff --git a/wxPython/demo/ListCtrl.py b/wxPython/demo/ListCtrl.py index 4f3ad75586..0fb6d95166 100644 --- a/wxPython/demo/ListCtrl.py +++ b/wxPython/demo/ListCtrl.py @@ -90,7 +90,16 @@ class TestListCtrlPanel(wx.Panel, listmix.ColumnSorterMixin): self.log = log tID = wx.NewId() - + + sizer = wx.BoxSizer(wx.VERTICAL) + + if wx.Platform == "__WXMAC__": + 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 +119,7 @@ class TestListCtrlPanel(wx.Panel, listmix.ColumnSorterMixin): ) self.list.SetImageList(self.il, wx.IMAGE_LIST_SMALL) + sizer.Add(self.list, 1, wx.EXPAND | wx.ALL, 4) self.PopulateList() @@ -119,7 +129,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 +153,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: @@ -346,17 +361,8 @@ 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) - - - #--------------------------------------------------------------------------- -# for testing the new native control on wxMac -#wx.SystemOptions.SetOptionInt("mac.listctrl.always_use_generic", 0) - def runTest(frame, nb, log): win = TestListCtrlPanel(nb, log) return win diff --git a/wxPython/demo/ListCtrl_edit.py b/wxPython/demo/ListCtrl_edit.py index eaa4ba0380..4a8a65e3e3 100644 --- a/wxPython/demo/ListCtrl_edit.py +++ b/wxPython/demo/ListCtrl_edit.py @@ -87,18 +87,29 @@ class TestListCtrlPanel(wx.Panel): self.log = log tID = wx.NewId() + sizer = wx.BoxSizer(wx.VERTICAL) + + if wx.Platform == "__WXMAC__": + 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.list = TestListCtrl(self, tID, style=wx.LC_REPORT | wx.BORDER_NONE | wx.LC_SORT_ASCENDING ) - self.Bind(wx.EVT_SIZE, self.OnSize) + sizer.Add(self.list, 1, wx.EXPAND | wx.ALL, 4) + self.SetSizer(sizer) + self.SetAutoLayout(True) - def OnSize(self, event): - w,h = self.GetClientSizeTuple() - self.list.SetDimensions(0, 0, w, h) + def OnUseNative(self, event): + wx.SystemOptions.SetOptionInt("mac.listctrl.always_use_generic", not event.IsChecked()) + wx.GetApp().GetTopWindow().LoadDemo("ListCtrl_edit") diff --git a/wxPython/demo/ListCtrl_virtual.py b/wxPython/demo/ListCtrl_virtual.py index c050880a13..4c2e8c6a35 100644 --- a/wxPython/demo/ListCtrl_virtual.py +++ b/wxPython/demo/ListCtrl_virtual.py @@ -83,13 +83,34 @@ class TestVirtualList(wx.ListCtrl): return None +class TestVirtualListPanel(wx.Panel): + def __init__(self, parent, log): + wx.Panel.__init__(self, parent, -1, style=wx.WANTS_CHARS) + + self.log = log + sizer = wx.BoxSizer(wx.VERTICAL) + + if wx.Platform == "__WXMAC__": + 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.list = TestVirtualList(self, self.log) + sizer.Add(self.list, 1, wx.EXPAND | wx.ALL, 4) + + self.SetSizer(sizer) + self.SetAutoLayout(True) + + def OnUseNative(self, event): + wx.SystemOptions.SetOptionInt("mac.listctrl.always_use_generic", not event.IsChecked()) + wx.GetApp().GetTopWindow().LoadDemo("ListCtrl_virtual") + #---------------------------------------------------------------------- -# for testing the new native control on wxMac -#wx.SystemOptions.SetOptionInt("mac.listctrl.always_use_generic", 0) - def runTest(frame, nb, log): - win = TestVirtualList(nb, log) + win = TestVirtualListPanel(nb, log) return win #----------------------------------------------------------------------