From be9c66b42e5d5f4ce375316926a3e5e30ef4d9df Mon Sep 17 00:00:00 2001 From: HomeWorld Date: Fri, 14 Jan 2011 13:14:35 +0200 Subject: [PATCH] Added support for ctrl+tab/ctrl+shift+tab (next/prev multiswitch tab) --- gui/chromeTabs.py | 21 +++++++++++++++++++++ gui/mainFrame.py | 16 +++++++++++++++- 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/gui/chromeTabs.py b/gui/chromeTabs.py index 9561ebe24..dde1648c1 100644 --- a/gui/chromeTabs.py +++ b/gui/chromeTabs.py @@ -151,6 +151,27 @@ class PFNotebook(wx.Panel): def GetPageCount(self): return len(self.pages) + def NextPage(self): + cpage = self.GetSelection() + + if cpage is None: + return + + if cpage < self.GetPageCount() - 1: + self.SetSelection(cpage + 1) + else: + self.SetSelection(0) + def PrevPage(self): + cpage = self.GetSelection() + + if cpage is None: + return + + if cpage > 0: + self.SetSelection(cpage - 1) + else: + self.SetSelection(self.GetPageCount() - 1) + def AddPage(self, tabWnd = None, tabTitle ="Empty Tab", tabImage = None, showClose = True): if self.activePage: self.activePage.Hide() diff --git a/gui/mainFrame.py b/gui/mainFrame.py index 8ab539ce0..03cec9aa5 100644 --- a/gui/mainFrame.py +++ b/gui/mainFrame.py @@ -326,20 +326,34 @@ class MainFrame(wx.Frame): self.Bind(wx.EVT_MENU, self.openGraphFrame, id=menuBar.graphFrameId) toggleShipMarketId = wx.NewId() + ctabnext = wx.NewId() + ctabprev = wx.NewId() # Close Page self.Bind(wx.EVT_MENU, self.CloseCurrentPage, id=self.closePageId) self.Bind(wx.EVT_MENU, self.HAddPage, id = self.addPageId) self.Bind(wx.EVT_MENU, self.toggleShipMarket, id = toggleShipMarketId) + self.Bind(wx.EVT_MENU, self.CTabNext, id = ctabnext) + self.Bind(wx.EVT_MENU, self.CTabPrev, id = ctabprev) actb = [(wx.ACCEL_CTRL, ord('T'), self.addPageId), (wx.ACCEL_CMD, ord('T'), self.addPageId), (wx.ACCEL_CTRL, ord("W"), self.closePageId), (wx.ACCEL_CMD, ord("W"), self.closePageId), (wx.ACCEL_CTRL, ord(" "), toggleShipMarketId), - (wx.ACCEL_CMD, ord(" "), toggleShipMarketId)] + (wx.ACCEL_CMD, ord(" "), toggleShipMarketId), + (wx.ACCEL_CTRL, wx.WXK_TAB, ctabnext), + (wx.ACCEL_CTRL | wx.ACCEL_SHIFT, wx.WXK_TAB, ctabprev), + (wx.ACCEL_CMD, wx.WXK_TAB, ctabnext), + (wx.ACCEL_CMD | wx.ACCEL_SHIFT, wx.WXK_TAB, ctabprev) + ] atable = wx.AcceleratorTable(actb) self.SetAcceleratorTable(atable) + def CTabNext(self, event): + self.fitMultiSwitch.NextPage() + + def CTabPrev(self, event): + self.fitMultiSwitch.PrevPage() def HAddPage(self,event): self.fitMultiSwitch.AddPage(wx.Panel(self, size = (0,0)), "Empty Tab")