# Copyright: (c) 1998 by Total Control Software
# Licence: wxWindows license
#----------------------------------------------------------------------------
-#
-# 11/20/2003 - Jeff Grimmett (grimmtooth@softhome.net)
-#
-# o Updated for wx namespace
-#
-# 11/29/2003 - Jeff Grimmett (grimmtooth@softhome.net)
-#
-# o listctrl mixin needs wx renamer.
-# o wx.ListItem.GetText() returns a wxString pointer, not the text.
-#
-# 12/14/2003 - Jeff Grimmett (grimmtooth@softhome.net)
-#
-# o ColumnSorterMixin implementation was broke - added event.Skip()
-# to column click event to allow event to fall through to mixin.
-#
-# 12/21/2003 - Jeff Grimmett (grimmtooth@softhome.net)
-#
-# o wxColumnSorterMixin -> ColumnSorterMixin
-# o wxListCtrlAutoWidthMixin -> ListCtrlAutoWidthMixin
-#
+import sys
import wx
import wx.lib.mixins.listctrl as listmix
self.list = TestListCtrl(self, tID,
style=wx.LC_REPORT
- | wx.SUNKEN_BORDER
+ #| wx.BORDER_SUNKEN
+ | wx.BORDER_NONE
| wx.LC_EDIT_LABELS
- #| wxLC_NO_HEADER
- #| wxLC_VRULES | wxLC_HRULES
+ | wx.LC_SORT_ASCENDING
+ #| wx.LC_NO_HEADER
+ #| wx.LC_VRULES
+ #| wx.LC_HRULES
+ #| wx.LC_SINGLE_SEL
)
-
+
self.list.SetImageList(self.il, wx.IMAGE_LIST_SMALL)
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.list.InsertColumnInfo(2, info)
items = musicdata.items()
- for x in range(len(items)):
- key, data = items[x]
- self.list.InsertImageStringItem(x, data[0], self.idx1)
- self.list.SetStringItem(x, 1, data[1])
- self.list.SetStringItem(x, 2, data[2])
- self.list.SetItemData(x, key)
+ for key, data in items:
+ index = self.list.InsertImageStringItem(sys.maxint, data[0], self.idx1)
+ self.list.SetStringItem(index, 1, data[1])
+ self.list.SetStringItem(index, 2, data[2])
+ self.list.SetItemData(index, key)
self.list.SetColumnWidth(0, wx.LIST_AUTOSIZE)
self.list.SetColumnWidth(1, wx.LIST_AUTOSIZE)
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()
# 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()
#---------------------------------------------------------------------------
+# 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
if __name__ == '__main__':
import sys,os
import run
- run.main(['', os.path.basename(sys.argv[0])])
+ run.main(['', os.path.basename(sys.argv[0])] + sys.argv[1:])