Add a menu icon to stat panels which have a context menu associated with them

This commit is contained in:
Ryan Holmes
2019-03-26 09:37:03 -04:00
parent fa0892032f
commit 3c5846a983
4 changed files with 18 additions and 8 deletions

View File

@@ -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"

View File

@@ -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)

View File

@@ -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

View File

@@ -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)