diff --git a/gui/builtinViewColumns/dps.py b/gui/builtinViewColumns/dps.py index ad49dc152..7f3bd307f 100644 --- a/gui/builtinViewColumns/dps.py +++ b/gui/builtinViewColumns/dps.py @@ -25,6 +25,7 @@ import eos.config import gui.mainFrame from eos.saveddata.fit import Fit from eos.utils.spoolSupport import SpoolOptions, SpoolType +from gui.bitmap_loader import BitmapLoader from gui.viewColumn import ViewColumn from gui.utils.numberFormatter import formatAmount @@ -36,7 +37,8 @@ class DpsColumn(ViewColumn): def __init__(self, fittingView, params): ViewColumn.__init__(self, fittingView) self.mainFrame = gui.mainFrame.MainFrame.getInstance() - self.columnText = 'DPS' + self.imageId = fittingView.imageList.GetImageIndex(1432, 'icons') + self.bitmap = BitmapLoader.getBitmap(1432, 'icons') self.mask = wx.LIST_MASK_TEXT def getText(self, stuff): @@ -48,5 +50,8 @@ class DpsColumn(ViewColumn): return formatAmount(dps, 3, 0, 0) return '' + def getToolTip(self, stuff): + return 'Declared DPS' + DpsColumn.register() diff --git a/gui/builtinViewColumns/volley.py b/gui/builtinViewColumns/volley.py index 9c00e9111..47463b266 100644 --- a/gui/builtinViewColumns/volley.py +++ b/gui/builtinViewColumns/volley.py @@ -25,6 +25,7 @@ import eos.config import gui.mainFrame from eos.saveddata.fit import Fit from eos.utils.spoolSupport import SpoolOptions, SpoolType +from gui.bitmap_loader import BitmapLoader from gui.viewColumn import ViewColumn from gui.utils.numberFormatter import formatAmount @@ -36,7 +37,8 @@ class VolleyColumn(ViewColumn): def __init__(self, fittingView, params): ViewColumn.__init__(self, fittingView) self.mainFrame = gui.mainFrame.MainFrame.getInstance() - self.columnText = 'Volley' + self.imageId = fittingView.imageList.GetImageIndex(1397, 'icons') + self.bitmap = BitmapLoader.getBitmap(1397, 'icons') self.mask = wx.LIST_MASK_TEXT def getText(self, stuff): @@ -48,5 +50,7 @@ class VolleyColumn(ViewColumn): return formatAmount(dps, 3, 0, 0) return '' + def getToolTip(self, stuff): + return 'Declared volley' VolleyColumn.register() diff --git a/gui/graphFrame/lists.py b/gui/graphFrame/lists.py index 9f351b81e..ba8e0094d 100644 --- a/gui/graphFrame/lists.py +++ b/gui/graphFrame/lists.py @@ -38,8 +38,10 @@ class BaseList(gui.display.Display): self.graphFrame = graphFrame self.fits = [] - fitToolTip = wx.ToolTip('Drag a fit into this list to graph it') - self.SetToolTip(fitToolTip) + self.hoveredRow = None + self.hoveredColumn = None + + self.defaultTT = 'Drag a fit into this list to graph it' self.contextMenu = wx.Menu() removeItem = wx.MenuItem(self.contextMenu, 1, 'Remove Fit') @@ -52,6 +54,8 @@ class BaseList(gui.display.Display): self.Bind(wx.EVT_LEFT_DCLICK, self.OnLeftDClick) self.Bind(wx.EVT_CHAR_HOOK, self.kbEvent) self.Bind(wx.EVT_CONTEXT_MENU, self.OnContextMenu) + self.Bind(wx.EVT_MOTION, self.OnMouseMove) + self.Bind(wx.EVT_LEAVE_WINDOW, self.OnLeaveWindow) def kbEvent(self, event): keycode = event.GetKeyCode() @@ -148,6 +152,34 @@ class BaseList(gui.display.Display): self.update(self.fits) self.graphFrame.draw() + def OnLeaveWindow(self, event): + self.SetToolTip(None) + self.hoveredRow = None + self.hoveredColumn = None + event.Skip() + + def OnMouseMove(self, event): + row, _, col = self.HitTestSubItem(event.Position) + if row != self.hoveredRow or col != self.hoveredColumn: + if self.ToolTip is not None: + self.SetToolTip(None) + else: + self.hoveredRow = row + self.hoveredColumn = col + if row != -1 and col != -1 and col < self.ColumnCount: + try: + fit = self.fits[row] + except IndexError: + return + tooltip = self.activeColumns[col].getToolTip(fit) + if tooltip: + self.SetToolTip(tooltip) + else: + self.SetToolTip(self.defaultTT) + else: + self.SetToolTip(self.defaultTT) + event.Skip() + class FitList(BaseList):