From 2e5d88d4c1e450d8c709936855c1ccec9cc710ec Mon Sep 17 00:00:00 2001 From: cncfanatics Date: Thu, 26 Aug 2010 01:02:54 +0200 Subject: [PATCH] Rename fitMultiSwitch to multiswitch and allow it to contain nonfit stuff --- gui/{fitMultiSwitch.py => multiSwitch.py} | 78 +++++++++++++---------- 1 file changed, 45 insertions(+), 33 deletions(-) rename gui/{fitMultiSwitch.py => multiSwitch.py} (64%) diff --git a/gui/fitMultiSwitch.py b/gui/multiSwitch.py similarity index 64% rename from gui/fitMultiSwitch.py rename to gui/multiSwitch.py index aaf9eb15e..55422a576 100644 --- a/gui/fitMultiSwitch.py +++ b/gui/multiSwitch.py @@ -24,7 +24,7 @@ from gui.fittingView import FittingView import gui.shipBrowser as sb import controller -class FitMultiSwitch(wx.Notebook): +class MultiSwitch(wx.Notebook): def __init__(self, parent): wx.Notebook.__init__(self, parent, wx.ID_ANY) self.fitPanes = [] @@ -41,21 +41,24 @@ class FitMultiSwitch(wx.Notebook): self.imageList = wx.ImageList(16, 16) self.SetImageList(self.imageList) - def AddTab(self): + def AddTab(self, type="fit", frame=None, title=None): pos = self.GetPageCount() - 1 - p = wx.Panel(self) - sizer = wx.BoxSizer(wx.HORIZONTAL) - p.view = FittingView(p) - sizer.Add(p.view, 1, wx.EXPAND | wx.RESERVE_SPACE_EVEN_IF_HIDDEN) + if type == "fit": + p = wx.Panel(self) + p.type = "fit" + sizer = wx.BoxSizer(wx.HORIZONTAL) + p.view = FittingView(p) + sizer.Add(p.view, 1, wx.EXPAND | wx.RESERVE_SPACE_EVEN_IF_HIDDEN) - p.SetSizer(sizer) + p.SetSizer(sizer) + + self.InsertPage(pos, p, "") + self.setTabTitle(pos, None) + else: + self.InsertPage(pos, frame, title) + frame.type=type - # Get fit name - fitID = self.shipBrowser.getSelectedFitID() - p.view.changeFit(fitID) - self.InsertPage(pos, p, "") - self.setTabTitle(pos, fitID) wx.CallAfter(self.ChangeSelection, pos) def removeTab(self, i): @@ -78,42 +81,51 @@ class FitMultiSwitch(wx.Notebook): def checkAdd(self, event): if event.Selection == self.GetPageCount() - 1: self.AddTab() + #Veto to prevent the + tab from being selected event.Veto() def setTabTitle(self, tab, fitID): - if fitID == None: - self.SetPageText(tab, "Empty Tab") - self.SetPageImage(tab, -1) - else: - cFit = controller.Fit.getInstance() - fit = cFit.getFit(fitID) - self.SetPageText(tab, "%s: %s" % (fit.ship.item.name, fit.name)) - bitmap = bitmapLoader.getBitmap("race_%s_small" % fit.ship.item.race, "icons") - imageId = self.imageList.Add(bitmap) - self.SetPageImage(tab, imageId) + page = self.GetPage(tab) + if page.type == "fit": + if fitID == None: + self.SetPageText(tab, "Empty Tab") + self.SetPageImage(tab, -1) + else: + cFit = controller.Fit.getInstance() + fit = cFit.getFit(fitID) + self.SetPageText(tab, "%s: %s" % (fit.ship.item.name, fit.name)) + bitmap = bitmapLoader.getBitmap("race_%s_small" % fit.ship.item.race, "icons") + imageId = self.imageList.Add(bitmap) + self.SetPageImage(tab, imageId) def changeFit(self, event): - fitID = event.fitID selected = self.GetSelection() - view = self.GetPage(selected).view - #Change title of current tab to new fit - self.setTabTitle(selected, fitID) - view.changeFit(fitID) + page = self.GetPage(selected) + if page.type == "fit": + fitID = event.fitID + view = page.view + #Change title of current tab to new fit + self.setTabTitle(selected, fitID) + view.changeFit(fitID) def processRename(self, event): fitID = event.fitID # Loop through every tab and check if they're our culprit, if so, change tab name for i in xrange(self.GetPageCount() - 1): - view = self.GetPage(i).view - if view.activeFitID == fitID: - self.setTabTitle(i, fitID) + page = self.GetPage(i) + if page.type == "fit": + view = page.view + if view.activeFitID == fitID: + self.setTabTitle(i, fitID) def processRemove(self, event): fitID = event.fitID for i in xrange(self.GetPageCount() - 2, -1, -1): - view = self.GetPage(i).view - if view.activeFitID == fitID: - self.removeTab(i) + page = self.GetPage(i) + if page.type == "fit": + view = page.view + if view.activeFitID == fitID: + self.removeTab(i) #Deleting a tab might have put us on the "+" tab, make sure we don't stay there