Fitting view/display improvements
This commit is contained in:
@@ -28,6 +28,7 @@ class ActivityCheckbox(ViewColumn):
|
||||
ViewColumn.__init__(self, fittingView)
|
||||
self.resizable = False
|
||||
self.size = 24
|
||||
self.mask = wx.LIST_MASK_WIDTH
|
||||
for name, state in (("checked", wx.CONTROL_CHECKED), ("unchecked", 0)):
|
||||
bitmap = wx.EmptyBitmap(16, 16)
|
||||
dc = wx.MemoryDC()
|
||||
|
||||
@@ -22,6 +22,7 @@ from gui.viewColumn import ViewColumn
|
||||
from gui import bitmapLoader
|
||||
import service
|
||||
from util import formatAmount
|
||||
import wx
|
||||
|
||||
class AttributeDisplay(ViewColumn):
|
||||
name = "Attribute Display"
|
||||
@@ -45,11 +46,13 @@ class AttributeDisplay(ViewColumn):
|
||||
self.imageId = -1
|
||||
else:
|
||||
self.imageId = -1
|
||||
self.mask = wx.LIST_MASK_IMAGE
|
||||
else:
|
||||
self.imageId = -1
|
||||
|
||||
if params["displayName"] or self.imageId == -1:
|
||||
self.columnText = info.displayName if info.displayName != "" else info.name
|
||||
self.mask |= wx.LIST_MASK_IMAGE
|
||||
|
||||
def getText(self, mod):
|
||||
if hasattr(mod, "item"):
|
||||
|
||||
@@ -22,10 +22,14 @@ from gui import bitmapLoader
|
||||
import service
|
||||
from util import formatAmount
|
||||
|
||||
import wx
|
||||
class CapacitorUse(ViewColumn):
|
||||
name = "Capacitor Usage"
|
||||
def __init__(self, fittingView, params):
|
||||
ViewColumn.__init__(self, fittingView)
|
||||
|
||||
self.mask = wx.LIST_MASK_IMAGE
|
||||
|
||||
cAttribute = service.Attribute.getInstance()
|
||||
info = cAttribute.getAttributeInfo("capacitorNeed")
|
||||
bitmap = bitmapLoader.getBitmap(info.icon.iconFile, "pack")
|
||||
|
||||
@@ -21,12 +21,13 @@ from gui import builtinViewColumns
|
||||
from gui.viewColumn import ViewColumn
|
||||
from gui import bitmapLoader
|
||||
from eos.types import Slot
|
||||
|
||||
import wx
|
||||
class DroneDps(ViewColumn):
|
||||
name = "Drone DPS"
|
||||
def __init__(self, fittingView, params):
|
||||
ViewColumn.__init__(self, fittingView)
|
||||
self.columnText = ""
|
||||
self.mask = wx.LIST_MASK_IMAGE
|
||||
bitmap = bitmapLoader.getBitmap("droneBandwidth_small", "icons")
|
||||
self.imageId = fittingView.imageList.Add(bitmap)
|
||||
|
||||
|
||||
@@ -21,12 +21,14 @@ from gui import builtinViewColumns
|
||||
from gui.viewColumn import ViewColumn
|
||||
from gui import bitmapLoader
|
||||
from eos.types import Slot
|
||||
import wx
|
||||
|
||||
class DroneNameAmount(ViewColumn):
|
||||
name = "Drone Name/Amount"
|
||||
def __init__(self, fittingView, params):
|
||||
ViewColumn.__init__(self, fittingView)
|
||||
self.columnText = "Name"
|
||||
self.mask = wx.LIST_MASK_TEXT
|
||||
|
||||
def getText(self, drone):
|
||||
return "%dx %s" % (drone.amount, drone.item.name)
|
||||
|
||||
@@ -22,6 +22,7 @@ from gui.viewColumn import ViewColumn
|
||||
from gui import bitmapLoader
|
||||
import service
|
||||
from util import formatAmount
|
||||
import wx
|
||||
|
||||
class MaxRange(ViewColumn):
|
||||
name = "Max range"
|
||||
@@ -30,6 +31,7 @@ class MaxRange(ViewColumn):
|
||||
params = {"showIcon": True,
|
||||
"displayName": False}
|
||||
ViewColumn.__init__(self, fittingView)
|
||||
|
||||
cAttribute = service.Attribute.getInstance()
|
||||
info = cAttribute.getAttributeInfo("maxRange")
|
||||
self.info = info
|
||||
@@ -43,11 +45,13 @@ class MaxRange(ViewColumn):
|
||||
self.imageId = -1
|
||||
else:
|
||||
self.imageId = -1
|
||||
self.mask = wx.LIST_MASK_IMAGE
|
||||
else:
|
||||
self.imageId = -1
|
||||
|
||||
if params["displayName"] or self.imageId == -1:
|
||||
self.columnText = info.displayName if info.displayName != "" else info.name
|
||||
self.mask |= wx.LIST_MASK_IMAGE
|
||||
|
||||
def getText(self, stuff):
|
||||
maxRange = stuff.maxRange if hasattr(stuff, "maxRange") else stuff.getModifiedItemAttr("maxRange")
|
||||
|
||||
@@ -20,11 +20,14 @@
|
||||
from gui import builtinViewColumns
|
||||
from gui.viewColumn import ViewColumn
|
||||
from gui import bitmapLoader
|
||||
|
||||
import wx
|
||||
class ModuleAmmo(ViewColumn):
|
||||
name = "Module Ammo"
|
||||
def __init__(self, fittingView, params):
|
||||
ViewColumn.__init__(self, fittingView)
|
||||
|
||||
self.mask = wx.LIST_MASK_IMAGE
|
||||
|
||||
self.imageId = fittingView.imageList.Add(bitmapLoader.getBitmap("damagePattern_small", "icons"))
|
||||
|
||||
def getText(self, mod):
|
||||
|
||||
@@ -27,6 +27,7 @@ class ModuleAmmoIcon(ViewColumn):
|
||||
def __init__(self, fittingView, params):
|
||||
ViewColumn.__init__(self, fittingView)
|
||||
self.size = 16
|
||||
self.mask = wx.LIST_MASK_IMAGE
|
||||
self.columnText = ""
|
||||
|
||||
def getText(self, mod):
|
||||
|
||||
@@ -21,12 +21,14 @@ from gui import builtinViewColumns
|
||||
from gui.viewColumn import ViewColumn
|
||||
from gui import bitmapLoader
|
||||
from eos.types import Slot
|
||||
import wx
|
||||
|
||||
class ModuleName(ViewColumn):
|
||||
name = "Module Name"
|
||||
def __init__(self, fittingView, params):
|
||||
ViewColumn.__init__(self, fittingView)
|
||||
self.columnText = "Name"
|
||||
self.mask = wx.LIST_MASK_TEXT
|
||||
|
||||
def getText(self, mod):
|
||||
if mod.isEmpty:
|
||||
|
||||
@@ -21,11 +21,13 @@ from gui.viewColumn import ViewColumn
|
||||
from gui import bitmapLoader
|
||||
import service
|
||||
from util import formatAmount
|
||||
import wx
|
||||
|
||||
class ModulePrice(ViewColumn):
|
||||
name = "Module Price"
|
||||
def __init__(self, fittingView, params):
|
||||
ViewColumn.__init__(self, fittingView)
|
||||
self.mask = wx.LIST_MASK_IMAGE
|
||||
bitmap = bitmapLoader.getBitmap("totalPrice_small", "icons")
|
||||
if bitmap:
|
||||
self.imageId = fittingView.imageList.Add(bitmap)
|
||||
|
||||
@@ -21,6 +21,7 @@ from gui import builtinViewColumns
|
||||
from gui.viewColumn import ViewColumn
|
||||
from gui import bitmapLoader
|
||||
from eos.types import State
|
||||
import wx
|
||||
|
||||
class ModuleState(ViewColumn):
|
||||
name = "Module State"
|
||||
@@ -28,6 +29,7 @@ class ModuleState(ViewColumn):
|
||||
ViewColumn.__init__(self, fittingView)
|
||||
self.resizable = False
|
||||
self.size = 20
|
||||
self.mask = wx.LIST_MASK_IMAGE
|
||||
self.stateNameMap = {}
|
||||
|
||||
def getText(self, mod):
|
||||
|
||||
@@ -23,6 +23,7 @@ from gui import bitmapLoader
|
||||
import service
|
||||
from util import formatAmount
|
||||
from eos.types import Hardpoint
|
||||
import wx
|
||||
|
||||
class MaxRange(ViewColumn):
|
||||
name = "Module Tracking"
|
||||
@@ -44,11 +45,15 @@ class MaxRange(ViewColumn):
|
||||
self.imageId = -1
|
||||
else:
|
||||
self.imageId = -1
|
||||
|
||||
self.mask = wx.LIST_MASK_IMAGE
|
||||
|
||||
else:
|
||||
self.imageId = -1
|
||||
|
||||
if params["displayName"] or self.imageId == -1:
|
||||
self.columnText = info.displayName if info.displayName != "" else info.name
|
||||
self.mask |= wx.LIST_MASK_TEXT
|
||||
|
||||
def getText(self, stuff):
|
||||
if stuff.hardpoint == Hardpoint.TURRET:
|
||||
|
||||
@@ -21,12 +21,14 @@ from gui import builtinViewColumns
|
||||
from gui.viewColumn import ViewColumn
|
||||
from gui import bitmapLoader
|
||||
from eos.types import Slot
|
||||
import wx
|
||||
|
||||
class StuffName(ViewColumn):
|
||||
name = "Name"
|
||||
def __init__(self, fittingView, params):
|
||||
ViewColumn.__init__(self, fittingView)
|
||||
self.columnText = "Name"
|
||||
self.mask = wx.LIST_MASK_TEXT
|
||||
|
||||
def getText(self, stuff):
|
||||
item = getattr(stuff, "item", stuff)
|
||||
|
||||
@@ -20,12 +20,15 @@
|
||||
from gui.viewColumn import ViewColumn
|
||||
import gui.builtinViewColumns.moduleAmmo
|
||||
from eos.types import Module
|
||||
import wx
|
||||
|
||||
class ProjectedAmmo(ViewColumn):
|
||||
name = "Projected Ammo"
|
||||
def __init__(self, fittingView, params):
|
||||
ViewColumn.__init__(self, fittingView)
|
||||
self.columnText = ""
|
||||
self.mask = wx.LIST_MASK_IMAGE
|
||||
|
||||
self.slave = gui.builtinViewColumns.moduleAmmo.ModuleAmmo(fittingView, params)
|
||||
self.imageId = self.slave.imageId
|
||||
def getText(self, stuff):
|
||||
|
||||
@@ -20,13 +20,15 @@
|
||||
from gui.viewColumn import ViewColumn
|
||||
import gui.builtinViewColumns.moduleAmmoIcon
|
||||
from eos.types import Module
|
||||
|
||||
import wx
|
||||
class ProjectedAmmoIcon(ViewColumn):
|
||||
name = "Projected Ammo Icon"
|
||||
def __init__(self, fittingView, params):
|
||||
ViewColumn.__init__(self, fittingView)
|
||||
self.columnText = ""
|
||||
self.size = 20
|
||||
self.mask = wx.LIST_MASK_IMAGE
|
||||
|
||||
self.slave = gui.builtinViewColumns.moduleAmmoIcon.ModuleAmmoIcon(fittingView, params)
|
||||
|
||||
def getText(self, stuff):
|
||||
|
||||
@@ -21,12 +21,14 @@ from gui.viewColumn import ViewColumn
|
||||
import gui.builtinViewColumns.name
|
||||
import gui.builtinViewColumns.droneNameAmount
|
||||
from eos.types import Drone
|
||||
import wx
|
||||
|
||||
class ProjectedName(ViewColumn):
|
||||
name = "Projected Name"
|
||||
def __init__(self, fittingView, params):
|
||||
ViewColumn.__init__(self, fittingView)
|
||||
self.columnText = "Name"
|
||||
self.mask = wx.LIST_MASK_TEXT
|
||||
self.slave = gui.builtinViewColumns.name.StuffName(fittingView, params)
|
||||
self.droneSlave = gui.builtinViewColumns.droneNameAmount.DroneNameAmount(fittingView, params)
|
||||
|
||||
|
||||
@@ -25,6 +25,7 @@ import gui.builtinViewColumns.moduleState
|
||||
import gui.builtinViewColumns.droneCheckbox
|
||||
from eos.types import Module, Drone, Fit
|
||||
import gui.bitmapLoader
|
||||
import wx
|
||||
|
||||
class ProjectedState(ViewColumn):
|
||||
name = "Projected State"
|
||||
@@ -32,6 +33,7 @@ class ProjectedState(ViewColumn):
|
||||
ViewColumn.__init__(self, view)
|
||||
self.columnText = ""
|
||||
self.size = 20
|
||||
self.mask = wx.LIST_MASK_IMAGE
|
||||
self.fitImageId = view.imageList.Add(gui.bitmapLoader.getBitmap("fit_small", "icons"))
|
||||
self.moduleSlave = gui.builtinViewColumns.moduleState.ModuleState(view, params)
|
||||
self.droneSlave = gui.builtinViewColumns.droneCheckbox.DroneCheckbox(view, params)
|
||||
|
||||
@@ -57,12 +57,14 @@ class Display(wx.ListCtrl):
|
||||
def addColumn(self, i, col):
|
||||
self.activeColumns.append(col)
|
||||
info = wx.ListItem()
|
||||
info.m_mask = col.mask
|
||||
info.m_mask = col.mask | wx.LIST_MASK_FORMAT | wx.LIST_MASK_WIDTH
|
||||
info.m_image = col.imageId
|
||||
info.m_text = col.columnText
|
||||
info.m_width = -1
|
||||
info.m_format = wx.LIST_FORMAT_LEFT
|
||||
self.InsertColumnInfo(i, info)
|
||||
col.resized = False
|
||||
self.SetColumnWidth(i, wx.LIST_AUTOSIZE_USEHEADER if col.size is wx.LIST_AUTOSIZE else col.size)
|
||||
self.SetColumnWidth(i, col.size)
|
||||
|
||||
def getColIndex(self, colClass):
|
||||
for i, col in enumerate(self.activeColumns):
|
||||
@@ -116,7 +118,6 @@ class Display(wx.ListCtrl):
|
||||
sel = self.GetNextSelected(sel)
|
||||
|
||||
item = -1
|
||||
self.sizeLastColumn = wx.LIST_AUTOSIZE_USEHEADER
|
||||
for id, st in enumerate(stuff):
|
||||
item = self.GetNextItem(item)
|
||||
for i, col in enumerate(self.activeColumns):
|
||||
@@ -135,28 +136,16 @@ class Display(wx.ListCtrl):
|
||||
|
||||
if oldText != newText or oldImageId != newImageId:
|
||||
self.SetItem(colItem)
|
||||
if i == len(self.activeColumns) - 1 and newText:
|
||||
self.sizeLastColumn = wx.LIST_AUTOSIZE
|
||||
|
||||
self.SetItemState(item, 0 , wx.LIST_STATE_FOCUSED | wx.LIST_STATE_SELECTED)
|
||||
|
||||
self.SetItemData(item, id)
|
||||
|
||||
self.Freeze()
|
||||
for i, col in enumerate(self.activeColumns):
|
||||
if not col.resized:
|
||||
if i< len(self.activeColumns) - 1:
|
||||
if col.size == wx.LIST_AUTOSIZE:
|
||||
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)
|
||||
else:
|
||||
self.SetColumnWidth(i,self.sizeLastColumn)
|
||||
for i,col in enumerate(self.activeColumns):
|
||||
self.SetColumnWidth(i, col.size)
|
||||
self.Thaw()
|
||||
|
||||
for sel in selection:
|
||||
self.Select(sel)
|
||||
|
||||
|
||||
@@ -260,9 +260,11 @@ class FittingView(d.Display):
|
||||
for slotType in Slot.getTypes():
|
||||
slot = Slot.getValue(slotType)
|
||||
slotMap[slot] = fit.getSlotsFree(slot) < 0
|
||||
|
||||
bkcolor = self.GetBackgroundColour()
|
||||
for i, mod in enumerate(self.mods):
|
||||
if slotMap[mod.slot]:
|
||||
self.SetItemBackgroundColour(i, wx.Colour(255, 51, 51))
|
||||
else:
|
||||
self.SetItemBackgroundColour(i, self.GetBackgroundColour())
|
||||
icolor = self.GetItemBackgroundColour(i)
|
||||
if icolor != bkcolor:
|
||||
self.SetItemBackgroundColour(i, bkcolor)
|
||||
|
||||
@@ -30,9 +30,9 @@ class ViewColumn(object):
|
||||
self.fittingView = fittingView
|
||||
self.columnText = ""
|
||||
self.imageId = -1
|
||||
self.size = wx.LIST_AUTOSIZE
|
||||
self.mask = wx.LIST_MASK_TEXT | wx.LIST_MASK_IMAGE
|
||||
self.resizable = True
|
||||
self.size = wx.LIST_AUTOSIZE_USEHEADER
|
||||
self.mask = 0
|
||||
|
||||
|
||||
@classmethod
|
||||
def register(cls):
|
||||
|
||||
Reference in New Issue
Block a user