Reorganized listctrl demo a bit so I can test a bug report
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@16552 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -84,7 +84,7 @@ class RunDemoApp(wxApp):
|
|||||||
|
|
||||||
|
|
||||||
def main(argv):
|
def main(argv):
|
||||||
if len(argv) != 2:
|
if len(argv) < 2:
|
||||||
print "Please specify a demo module name on the command-line"
|
print "Please specify a demo module name on the command-line"
|
||||||
raise SystemExit
|
raise SystemExit
|
||||||
|
|
||||||
|
@@ -92,21 +92,44 @@ class TestListCtrlPanel(wxPanel, wxColumnSorterMixin):
|
|||||||
|
|
||||||
self.il = wxImageList(16, 16)
|
self.il = wxImageList(16, 16)
|
||||||
|
|
||||||
idx1 = self.il.Add(images.getSmilesBitmap())
|
self.idx1 = self.il.Add(images.getSmilesBitmap())
|
||||||
self.sm_up = self.il.Add(images.getSmallUpArrowBitmap())
|
self.sm_up = self.il.Add(images.getSmallUpArrowBitmap())
|
||||||
self.sm_dn = self.il.Add(images.getSmallDnArrowBitmap())
|
self.sm_dn = self.il.Add(images.getSmallDnArrowBitmap())
|
||||||
|
|
||||||
#idx1 = self.il.AddIcon(wxIconFromXPMData(images.getSmilesData()))
|
|
||||||
#self.sm_up = self.il.AddIcon(wxIconFromXPMData(images.getSmallUpArrowData()))
|
|
||||||
#self.sm_dn = self.il.AddIcon(wxIconFromXPMData(images.getSmallDnArrowData()))
|
|
||||||
|
|
||||||
self.list = TestListCtrl(self, tID,
|
self.list = TestListCtrl(self, tID,
|
||||||
style=wxLC_REPORT|wxSUNKEN_BORDER)#|wxLC_VRULES|wxLC_HRULES)
|
style=wxLC_REPORT|wxSUNKEN_BORDER)#|wxLC_VRULES|wxLC_HRULES)
|
||||||
self.list.SetImageList(self.il, wxIMAGE_LIST_SMALL)
|
self.list.SetImageList(self.il, wxIMAGE_LIST_SMALL)
|
||||||
|
|
||||||
# Why doesn't this show up on MSW???
|
self.PopulateList()
|
||||||
#self.list.SetToolTip(wxToolTip("This is a ToolTip!"))
|
|
||||||
|
|
||||||
|
# Now that the list exists we can init the other base class,
|
||||||
|
# see wxPython/lib/mixins/listctrl.py
|
||||||
|
self.itemDataMap = musicdata
|
||||||
|
wxColumnSorterMixin.__init__(self, 3)
|
||||||
|
#self.SortListItems(0, true)
|
||||||
|
|
||||||
|
EVT_SIZE(self, self.OnSize)
|
||||||
|
EVT_LIST_ITEM_SELECTED(self, tID, self.OnItemSelected)
|
||||||
|
EVT_LIST_ITEM_DESELECTED(self, tID, self.OnItemDeselected)
|
||||||
|
EVT_LIST_ITEM_ACTIVATED(self, tID, self.OnItemActivated)
|
||||||
|
EVT_LIST_DELETE_ITEM(self, tID, self.OnItemDelete)
|
||||||
|
EVT_LIST_COL_CLICK(self, tID, self.OnColClick)
|
||||||
|
EVT_LIST_COL_RIGHT_CLICK(self, tID, self.OnColRightClick)
|
||||||
|
EVT_LIST_COL_BEGIN_DRAG(self, tID, self.OnColBeginDrag)
|
||||||
|
EVT_LIST_COL_DRAGGING(self, tID, self.OnColDragging)
|
||||||
|
EVT_LIST_COL_END_DRAG(self, tID, self.OnColEndDrag)
|
||||||
|
|
||||||
|
EVT_LEFT_DCLICK(self.list, self.OnDoubleClick)
|
||||||
|
EVT_RIGHT_DOWN(self.list, self.OnRightDown)
|
||||||
|
|
||||||
|
# for wxMSW
|
||||||
|
EVT_COMMAND_RIGHT_CLICK(self.list, tID, self.OnRightClick)
|
||||||
|
|
||||||
|
# for wxGTK
|
||||||
|
EVT_RIGHT_UP(self.list, self.OnRightClick)
|
||||||
|
|
||||||
|
|
||||||
|
def PopulateList(self):
|
||||||
if 0:
|
if 0:
|
||||||
# for normal, simple columns, you can add them like this:
|
# for normal, simple columns, you can add them like this:
|
||||||
self.list.InsertColumn(0, "Artist")
|
self.list.InsertColumn(0, "Artist")
|
||||||
@@ -129,22 +152,14 @@ class TestListCtrlPanel(wxPanel, wxColumnSorterMixin):
|
|||||||
info.m_text = "Genre"
|
info.m_text = "Genre"
|
||||||
self.list.InsertColumnInfo(2, info)
|
self.list.InsertColumnInfo(2, info)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
items = musicdata.items()
|
items = musicdata.items()
|
||||||
for x in range(len(items)):
|
for x in range(len(items)):
|
||||||
key, data = items[x]
|
key, data = items[x]
|
||||||
self.list.InsertImageStringItem(x, data[0], idx1)
|
self.list.InsertImageStringItem(x, data[0], self.idx1)
|
||||||
self.list.SetStringItem(x, 1, data[1])
|
self.list.SetStringItem(x, 1, data[1])
|
||||||
self.list.SetStringItem(x, 2, data[2])
|
self.list.SetStringItem(x, 2, data[2])
|
||||||
self.list.SetItemData(x, key)
|
self.list.SetItemData(x, key)
|
||||||
|
|
||||||
# Now that the list exists we can init the other base class,
|
|
||||||
# see wxPython/lib/mixins/listctrl.py
|
|
||||||
self.itemDataMap = musicdata
|
|
||||||
wxColumnSorterMixin.__init__(self, 3)
|
|
||||||
#self.SortListItems(0, true)
|
|
||||||
|
|
||||||
self.list.SetColumnWidth(0, wxLIST_AUTOSIZE)
|
self.list.SetColumnWidth(0, wxLIST_AUTOSIZE)
|
||||||
self.list.SetColumnWidth(1, wxLIST_AUTOSIZE)
|
self.list.SetColumnWidth(1, wxLIST_AUTOSIZE)
|
||||||
self.list.SetColumnWidth(2, 100)
|
self.list.SetColumnWidth(2, 100)
|
||||||
@@ -161,25 +176,6 @@ class TestListCtrlPanel(wxPanel, wxColumnSorterMixin):
|
|||||||
self.list.SetItem(item)
|
self.list.SetItem(item)
|
||||||
|
|
||||||
self.currentItem = 0
|
self.currentItem = 0
|
||||||
EVT_SIZE(self, self.OnSize)
|
|
||||||
EVT_LIST_ITEM_SELECTED(self, tID, self.OnItemSelected)
|
|
||||||
EVT_LIST_ITEM_DESELECTED(self, tID, self.OnItemDeselected)
|
|
||||||
EVT_LIST_ITEM_ACTIVATED(self, tID, self.OnItemActivated)
|
|
||||||
EVT_LIST_DELETE_ITEM(self, tID, self.OnItemDelete)
|
|
||||||
EVT_LIST_COL_CLICK(self, tID, self.OnColClick)
|
|
||||||
EVT_LIST_COL_RIGHT_CLICK(self, tID, self.OnColRightClick)
|
|
||||||
EVT_LIST_COL_BEGIN_DRAG(self, tID, self.OnColBeginDrag)
|
|
||||||
EVT_LIST_COL_DRAGGING(self, tID, self.OnColDragging)
|
|
||||||
EVT_LIST_COL_END_DRAG(self, tID, self.OnColEndDrag)
|
|
||||||
|
|
||||||
EVT_LEFT_DCLICK(self.list, self.OnDoubleClick)
|
|
||||||
EVT_RIGHT_DOWN(self.list, self.OnRightDown)
|
|
||||||
|
|
||||||
# for wxMSW
|
|
||||||
EVT_COMMAND_RIGHT_CLICK(self.list, tID, self.OnRightClick)
|
|
||||||
|
|
||||||
# for wxGTK
|
|
||||||
EVT_RIGHT_UP(self.list, self.OnRightClick)
|
|
||||||
|
|
||||||
|
|
||||||
# Used by the wxColumnSorterMixin, see wxPython/lib/mixins/listctrl.py
|
# Used by the wxColumnSorterMixin, see wxPython/lib/mixins/listctrl.py
|
||||||
@@ -191,7 +187,6 @@ class TestListCtrlPanel(wxPanel, wxColumnSorterMixin):
|
|||||||
return (self.sm_dn, self.sm_up)
|
return (self.sm_dn, self.sm_up)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def OnRightDown(self, event):
|
def OnRightDown(self, event):
|
||||||
self.x = event.GetX()
|
self.x = event.GetX()
|
||||||
self.y = event.GetY()
|
self.y = event.GetY()
|
||||||
@@ -274,7 +269,7 @@ class TestListCtrlPanel(wxPanel, wxColumnSorterMixin):
|
|||||||
|
|
||||||
menu.AppendItem(item)
|
menu.AppendItem(item)
|
||||||
menu.Append(tPopupID2, "Two")
|
menu.Append(tPopupID2, "Two")
|
||||||
menu.Append(tPopupID3, "Three")
|
menu.Append(tPopupID3, "ClearAll and repopulate")
|
||||||
menu.Append(tPopupID4, "DeleteAllItems")
|
menu.Append(tPopupID4, "DeleteAllItems")
|
||||||
menu.Append(tPopupID5, "GetItem")
|
menu.Append(tPopupID5, "GetItem")
|
||||||
EVT_MENU(self, tPopupID1, self.OnPopupOne)
|
EVT_MENU(self, tPopupID1, self.OnPopupOne)
|
||||||
@@ -296,6 +291,10 @@ class TestListCtrlPanel(wxPanel, wxColumnSorterMixin):
|
|||||||
|
|
||||||
def OnPopupThree(self, event):
|
def OnPopupThree(self, event):
|
||||||
self.log.WriteText("Popup three\n")
|
self.log.WriteText("Popup three\n")
|
||||||
|
self.list.ClearAll()
|
||||||
|
wxCallAfter(self.PopulateList)
|
||||||
|
#wxYield()
|
||||||
|
#self.PopulateList()
|
||||||
|
|
||||||
def OnPopupFour(self, event):
|
def OnPopupFour(self, event):
|
||||||
self.list.DeleteAllItems()
|
self.list.DeleteAllItems()
|
||||||
|
Reference in New Issue
Block a user