From 3c5846a9836a0540f9fd3909be86774d19c0802d Mon Sep 17 00:00:00 2001 From: Ryan Holmes Date: Tue, 26 Mar 2019 09:37:03 -0400 Subject: [PATCH] Add a menu icon to stat panels which have a context menu associated with them --- gui/builtinStatsViews/firepowerViewFull.py | 4 ++-- gui/builtinStatsViews/resistancesViewFull.py | 5 ++--- gui/statsPane.py | 15 +++++++++++++-- gui/toggle_panel.py | 2 +- 4 files changed, 18 insertions(+), 8 deletions(-) diff --git a/gui/builtinStatsViews/firepowerViewFull.py b/gui/builtinStatsViews/firepowerViewFull.py index c678e0b61..9a7f41d4f 100644 --- a/gui/builtinStatsViews/firepowerViewFull.py +++ b/gui/builtinStatsViews/firepowerViewFull.py @@ -47,10 +47,10 @@ class FirepowerViewFull(StatsView): parent = self.panel = contentPanel self.headerPanel = headerPanel - hsizer = self.headerPanel.GetSizer() + hsizer = self.headerPanel.Parent.GetHeaderContentSizer() self.stEff = wx.StaticText(self.headerPanel, wx.ID_ANY, "( Effective )") hsizer.Add(self.stEff) - self.headerPanel.GetParent().AddToggleItem(self.stEff) + # self.headerPanel.GetParent().AddToggleItem(self.stEff) panel = "full" diff --git a/gui/builtinStatsViews/resistancesViewFull.py b/gui/builtinStatsViews/resistancesViewFull.py index 684a0e617..d053b91b2 100644 --- a/gui/builtinStatsViews/resistancesViewFull.py +++ b/gui/builtinStatsViews/resistancesViewFull.py @@ -55,9 +55,8 @@ class ResistancesViewFull(StatsView): self.headerPanel = headerPanel # Custom header EHP - headerContentSizer = wx.BoxSizer(wx.HORIZONTAL) - hsizer = headerPanel.GetSizer() - hsizer.Add(headerContentSizer, 0, 0, 0) + headerContentSizer = self.headerPanel.Parent.GetHeaderContentSizer() + self.stEff = wx.StaticText(headerPanel, wx.ID_ANY, "( Effective HP: ") headerContentSizer.Add(self.stEff) headerPanel.GetParent().AddToggleItem(self.stEff) diff --git a/gui/statsPane.py b/gui/statsPane.py index ec13c5ff8..654531033 100644 --- a/gui/statsPane.py +++ b/gui/statsPane.py @@ -114,7 +114,7 @@ class StatsPane(wx.Panel): tp.SetLabel(view.getHeaderText(None)) view.refreshPanel(None) - contentPanel.Bind(wx.EVT_CONTEXT_MENU, self.contextHandler(contentPanel)) + contentPanel.Bind(wx.EVT_CONTEXT_MENU, self.contextHandler(contentPanel, tp)) mainSizer.Add(tp, 0, wx.EXPAND | wx.LEFT, 3) if i < maxviews - 1: @@ -130,14 +130,25 @@ class StatsPane(wx.Panel): self.mainFrame.Bind(GE.FIT_CHANGED, self.fitChanged) @staticmethod - def contextHandler(contentPanel): + def contextHandler(contentPanel, tp): viewName = contentPanel.viewName def handler(event): menu = ContextMenu.getMenu(None, (viewName,)) + if menu is not None: contentPanel.PopupMenu(menu) event.Skip() + if ContextMenu.hasMenu(None, (viewName,)): + sizer = tp.GetHeaderContentSizer() + sizer.AddStretchSpacer() + # Add menu + header_menu = wx.StaticText(tp.GetHeaderPanel(), wx.ID_ANY, "\u2630", size=wx.Size((10, -1))) + sizer.Add(header_menu , 0, wx.EXPAND | wx.RIGHT | wx.ALIGN_RIGHT, 5) + + header_menu.Bind(wx.EVT_CONTEXT_MENU, handler) + header_menu.Bind(wx.EVT_LEFT_UP, handler) + return handler diff --git a/gui/toggle_panel.py b/gui/toggle_panel.py index 2f7421d38..46215badb 100644 --- a/gui/toggle_panel.py +++ b/gui/toggle_panel.py @@ -49,7 +49,7 @@ class TogglePanel (wx.Panel): # Add a sizer for additional header items if we need it self.hcontent_sizer = wx.BoxSizer(wx.HORIZONTAL) - header_sizer.Add(self.hcontent_sizer, 0, wx.RIGHT, 5) + header_sizer.Add(self.hcontent_sizer, 1, wx.RIGHT, 5) # Create the content panel, set sizer, and add to main sizer self.content_panel = wx.Panel(self)