Merge branch 'master' of evefit.org:pyfa

This commit is contained in:
cncfanatics
2010-11-02 17:28:43 +01:00
5 changed files with 39 additions and 9 deletions

View File

@@ -28,6 +28,7 @@ class ActivityCheckbox(ViewColumn):
ViewColumn.__init__(self, fittingView)
self.resizable = False
self.size = 24
self.maxsize = self.size
self.mask = wx.LIST_MASK_WIDTH
for name, state in (("checked", wx.CONTROL_CHECKED), ("unchecked", 0)):
bitmap = wx.EmptyBitmap(16, 16)

View File

@@ -51,7 +51,7 @@ class MaxRange(ViewColumn):
if params["displayName"] or self.imageId == -1:
self.columnText = info.displayName if info.displayName != "" else info.name
self.mask |= wx.LIST_MASK_IMAGE
self.mask |= wx.LIST_MASK_TEXT
def getText(self, stuff):
maxRange = stuff.maxRange if hasattr(stuff, "maxRange") else stuff.getModifiedItemAttr("maxRange")

View File

@@ -27,6 +27,7 @@ class ModuleAmmoIcon(ViewColumn):
def __init__(self, fittingView, params):
ViewColumn.__init__(self, fittingView)
self.size = 16
self.maxsize = self.size
self.mask = wx.LIST_MASK_IMAGE
self.columnText = ""

View File

@@ -29,7 +29,9 @@ class Display(wx.ListCtrl):
self.imageList = wx.ImageList(16, 16)
self.SetImageList(self.imageList, wx.IMAGE_LIST_SMALL)
self.activeColumns = []
self.Bind(wx.EVT_LIST_COL_BEGIN_DRAG, self.resizeChecker)
self.columnsMinWidth = []
self.Bind(wx.EVT_LIST_COL_END_DRAG, self.resizeChecker)
self.Bind(wx.EVT_LIST_COL_BEGIN_DRAG, self.resizeSkip)
self.mainFrame = gui.mainFrame.MainFrame.getInstance()
@@ -45,6 +47,7 @@ class Display(wx.ListCtrl):
col = ViewColumn.getColumn(colName)(self, None)
self.addColumn(i, col)
self.columnsMinWidth.append(self.GetColumnWidth(i))
i += 1
info = wx.ListItem()
@@ -76,13 +79,23 @@ class Display(wx.ListCtrl):
def resizeChecker(self, event):
# we veto header cell resize by default till we find a way
# to assure a minimal size for the resized header cell
column = event.GetColumn()
wx.CallAfter(self.checkColumnSize,column)
event.Skip()
event.Veto()
def resizeSkip(self, event):
column = event.GetColumn()
colItem = self.activeColumns[column]
if self.activeColumns[column].maxsize != -1:
event.Veto()
else:
event.Skip()
# if self.activeColumns[event.Column].resizable is False:
# event.Veto()
# else:
# self.activeColumns[event.Column].resized = True
def checkColumnSize(self,column):
colItem = self.activeColumns[column]
if self.GetColumnWidth(column) < self.columnsMinWidth[column]:
self.SetColumnWidth(column,self.columnsMinWidth[column])
colItem.resized = True
def clearItemImages(self):
for i in xrange(self.imageList.ImageCount - 1, self.imageListBase, -1):
@@ -142,8 +155,22 @@ class Display(wx.ListCtrl):
self.SetItemData(item, id)
self.Freeze()
for i,col in enumerate(self.activeColumns):
self.SetColumnWidth(i, col.size)
if 'wxMSW' in wx.PlatformInfo:
for i,col in enumerate(self.activeColumns):
if not col.resized:
self.SetColumnWidth(i, col.size)
else:
for i, col in enumerate(self.activeColumns):
if not col.resized:
if col.size == wx.LIST_AUTOSIZE_USEHEADER:
self.SetColumnWidth(i, wx.LIST_AUTOSIZE_USEHEADER)
headerWidth = self.GetColumnWidth(i)
self.SetColumnWidth(i, wx.LIST_AUTOSIZE)
baseWidth = self.GetColumnWidth(i)
if baseWidth < headerWidth:
self.SetColumnWidth(i, headerWidth)
else:
self.SetColumnWidth(i, col.size)
self.Thaw()
for sel in selection:

View File

@@ -32,6 +32,7 @@ class ViewColumn(object):
self.imageId = -1
self.size = wx.LIST_AUTOSIZE_USEHEADER
self.mask = 0
self.maxsize = -1
@classmethod