Added support for ctrl+tab/ctrl+shift+tab (next/prev multiswitch tab)

This commit is contained in:
HomeWorld
2011-01-14 13:14:35 +02:00
parent c1ce9cd885
commit be9c66b42e
2 changed files with 36 additions and 1 deletions

View File

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

View File

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