From e9ad573f39c41649e19b75e87a0cfbb373e9f123 Mon Sep 17 00:00:00 2001 From: cncfanatics Date: Mon, 16 Aug 2010 15:06:53 +0200 Subject: [PATCH] Actualy implement a listCtrl how its suposed to be implemented. --- gui/marketBrowser.py | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/gui/marketBrowser.py b/gui/marketBrowser.py index d3b223d1a..1adb700bb 100644 --- a/gui/marketBrowser.py +++ b/gui/marketBrowser.py @@ -17,6 +17,7 @@ # along with pyfa. If not, see . #=============================================================================== +import sys import wx import controller import bitmapLoader @@ -32,14 +33,18 @@ class MarketBrowser(wx.Panel): self.SetSizer(vbox) self.marketView = wx.TreeCtrl(self.splitter) - self.itemView = wx.ListView(self.splitter) + listStyle = wx.LC_REPORT | wx.BORDER_NONE | wx.LC_NO_HEADER | wx.LC_SINGLE_SEL + self.itemView = wx.ListCtrl(self.splitter, style = listStyle) treeStyle = self.marketView.GetWindowStyleFlag() treeStyle |= wx.TR_HIDE_ROOT self.marketView.SetWindowStyleFlag(treeStyle) - listStyle = wx.LC_NO_HEADER | wx.LC_SINGLE_SEL | wx.LC_REPORT - self.itemView.SetWindowStyleFlag(listStyle) - self.itemView.InsertColumn(0, "") + + info = wx.ListItem() + info.m_mask = wx.LIST_MASK_TEXT | wx.LIST_MASK_IMAGE + info.m_image = -1 + info.m_text = "Name" + self.itemView.InsertColumnInfo(0, info) self.splitter.SplitHorizontally(self.marketView, self.itemView) self.splitter.SetMinimumPaneSize(10) @@ -50,7 +55,7 @@ class MarketBrowser(wx.Panel): self.marketView.SetImageList(self.marketImageList) self.itemImageList = wx.ImageList(16, 16) - self.itemView.AssignImageList(self.itemImageList, wx.IMAGE_LIST_NORMAL) + self.itemView.SetImageList(self.itemImageList, wx.IMAGE_LIST_SMALL) cMarket = controller.Market.getInstance() @@ -96,16 +101,13 @@ class MarketBrowser(wx.Panel): cMarket = controller.Market.getInstance() idNameMap = {} + for id, name, iconFile in cMarket.getItems(self.marketView.GetPyData(root)): - item = wx.ListItem() if iconFile: iconId = self.itemImageList.Add(bitmapLoader.getBitmap(iconFile, "pack")) else: iconId = -1 - item.SetImage(iconId) - item.SetText(name) - item.SetData(id) - idNameMap[id] = name - self.itemView.InsertItem(item) + + index = self.itemView.InsertImageStringItem(sys.maxint, name, iconId) + self.itemView.SetItemData(index, id) self.itemView.SetColumnWidth(0, wx.LIST_AUTOSIZE) - self.itemView.SortItems(lambda id1, id2: cmp(idNameMap[id1], idNameMap[id2]))