diff --git a/gui/additionsPane.py b/gui/additionsPane.py index 3ee6f5fb8..e65536ddb 100644 --- a/gui/additionsPane.py +++ b/gui/additionsPane.py @@ -40,10 +40,10 @@ class AdditionsPane(TogglePanel): self.mainFrame = gui.mainFrame.MainFrame.getInstance() -# self.notebook = wx.Notebook(pane) self.notebook = gui.chromeTabs.PFNotebook(pane, False) size = wx.Size() - size.SetHeight(200) + # This size lets you see 4 drones at a time + size.SetHeight(160) self.notebook.SetMinSize(size) baseSizer.Add(self.notebook, 1, wx.EXPAND) self.notebook.AddPage(DroneView(self.notebook), "Drones", showClose = False) diff --git a/gui/display.py b/gui/display.py index 6d6fc2803..f36b1a952 100644 --- a/gui/display.py +++ b/gui/display.py @@ -30,7 +30,8 @@ class Display(wx.ListCtrl): #Autodetect if doubleBuffered is None: - self.SetDoubleBuffered("wxMSW" in wx.PlatformInfo and platform.release() != "XP") + if "wxMSW" in wx.PlatformInfo and platform.release() != "XP": + self.SetDoubleBuffered(True) else: self.SetDoubleBuffered(doubleBuffered) diff --git a/gui/fittingView.py b/gui/fittingView.py index 7499b9df8..47fd2e129 100644 --- a/gui/fittingView.py +++ b/gui/fittingView.py @@ -91,7 +91,6 @@ class FittingView(d.Display): self.Show(False) self.parent = parent self.mainFrame.Bind(FIT_CHANGED, self.fitChanged) -# self.mainFrame.Bind(gui.shipBrowser.EVT_FIT_SELECTED, self.fitSelected) self.mainFrame.Bind(gui.shipBrowser.EVT_FIT_RENAMED, self.fitRenamed) self.mainFrame.Bind(gui.shipBrowser.EVT_FIT_REMOVED, self.fitRemoved) self.mainFrame.Bind(gui.marketBrowser.ITEM_SELECTED, self.appendItem) @@ -118,7 +117,6 @@ class FittingView(d.Display): def Destroy(self): self.parent.Unbind(gui.chromeTabs.EVT_NOTEBOOK_PAGE_CHANGED, handler=self.pageChanged) self.mainFrame.Unbind(FIT_CHANGED, handler=self.fitChanged) -# self.mainFrame.Unbind(gui.shipBrowser.EVT_FIT_SELECTED, handler=self.fitSelected) self.mainFrame.Unbind(gui.shipBrowser.EVT_FIT_RENAMED, handler=self.fitRenamed) self.mainFrame.Unbind(gui.shipBrowser.EVT_FIT_REMOVED, handler=self.fitRemoved) self.mainFrame.Unbind(gui.marketBrowser.ITEM_SELECTED, handler=self.appendItem) diff --git a/gui/mainFrame.py b/gui/mainFrame.py index 403624fbc..66daf0732 100644 --- a/gui/mainFrame.py +++ b/gui/mainFrame.py @@ -81,7 +81,7 @@ class MainFrame(wx.Frame): faSizer = wx.BoxSizer(wx.VERTICAL) self.fitMultiSwitch = MultiSwitch(self.FitviewAdditionsPanel) - #self.fitMultiSwitch.AddTab() + #self.fitMultiSwitch.AddPage() faSizer.Add(self.fitMultiSwitch,1,wx.EXPAND) self.additionsPane = AdditionsPane(self.FitviewAdditionsPanel) @@ -148,7 +148,11 @@ class MainFrame(wx.Frame): # self.notebookBrowsers.SetSelection(tab) def CloseCurrentFit(self, evt): - self.fitMultiSwitch.removeCurrentTab() + ms = self.fitMultiSwitch + + page = ms.GetSelection() + if page is not None: + ms.DeletePage(page) def ExitApp(self, evt): try: @@ -278,7 +282,7 @@ class MainFrame(wx.Frame): def HAddTab(self,event): - self.fitMultiSwitch.AddTab() + self.fitMultiSwitch.AddPage(wx.Panel(self, size = (0,0)), "Empty Tab") def toggleShipMarket(self, event): sel = self.notebookBrowsers.GetSelection() diff --git a/gui/patternEditor.py b/gui/patternEditor.py index bc956585f..09b615935 100644 --- a/gui/patternEditor.py +++ b/gui/patternEditor.py @@ -92,59 +92,54 @@ class DmgPatternEditorDlg (wx.Dialog): self.expbitmap = bitmapLoader.getBitmap("explosive_big", "icons") dmgeditSizer = wx.FlexGridSizer(2, 4, 0, 2) - dmgeditSizer.AddGrowableCol(1) - dmgeditSizer.AddGrowableCol(2) + dmgeditSizer.AddGrowableCol(0) + dmgeditSizer.AddGrowableCol(3) dmgeditSizer.SetFlexibleDirection(wx.BOTH) dmgeditSizer.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED) width = -1 defSize = wx.Size(width,-1) - self.editEm = IntCtrl(self, wx.ID_ANY, 0, wx.DefaultPosition, defSize, wx.TE_RIGHT) - dmgeditSizer.Add(self.editEm, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) - self.bmpEM = wx.StaticBitmap(self, wx.ID_ANY, self.embitmap) - dmgeditSizer.Add(self.bmpEM, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL, 5) + dmgeditSizer.Add(self.bmpEM, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT, 5) + self.editEm = IntCtrl(self, wx.ID_ANY, 0, wx.DefaultPosition, defSize) + dmgeditSizer.Add(self.editEm, 0, wx.BOTTOM | wx.TOP | wx.ALIGN_CENTER_VERTICAL, 5) self.bmpTHERM = wx.StaticBitmap(self, wx.ID_ANY, self.thermbitmap) - dmgeditSizer.Add(self.bmpTHERM, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT, 5) - + dmgeditSizer.Add(self.bmpTHERM, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT | wx.LEFT, 25) self.editThermal = IntCtrl(self, wx.ID_ANY, 0, wx.DefaultPosition, defSize, 0) - dmgeditSizer.Add(self.editThermal, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) - - self.editKinetic = IntCtrl(self, wx.ID_ANY, 0, wx.DefaultPosition, defSize, wx.TE_RIGHT) - dmgeditSizer.Add(self.editKinetic, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) + dmgeditSizer.Add(self.editThermal, 0, wx.BOTTOM | wx.TOP | wx.ALIGN_CENTER_VERTICAL, 5) self.bmpKIN = wx.StaticBitmap(self, wx.ID_ANY, self.kinbitmap) - dmgeditSizer.Add(self.bmpKIN, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL, 5) + dmgeditSizer.Add(self.bmpKIN, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT, 5) + self.editKinetic = IntCtrl(self, wx.ID_ANY, 0, wx.DefaultPosition, defSize) + dmgeditSizer.Add(self.editKinetic, 0, wx.BOTTOM | wx.TOP | wx.ALIGN_CENTER_VERTICAL, 5) self.bmpEXP = wx.StaticBitmap(self, wx.ID_ANY, self.expbitmap) - dmgeditSizer.Add(self.bmpEXP, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT, 5) - + dmgeditSizer.Add(self.bmpEXP, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT | wx.LEFT, 25) self.editExplosive = IntCtrl(self, wx.ID_ANY, 0, wx.DefaultPosition, defSize, 0) - dmgeditSizer.Add(self.editExplosive, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) + dmgeditSizer.Add(self.editExplosive, 0, wx.BOTTOM | wx.TOP | wx.ALIGN_CENTER_VERTICAL, 5) contentSizer.Add(dmgeditSizer, 1, wx.EXPAND | wx.ALL, 5) self.slfooter = wx.StaticLine(self) contentSizer.Add(self.slfooter, 0, wx.EXPAND | wx.TOP, 5) footerSizer = wx.BoxSizer(wx.HORIZONTAL) - perSizer = wx.BoxSizer(wx.VERTICAL) self.stPercentages = wx.StaticText(self, wx.ID_ANY, u"") self.stPercentages.Wrap(-1) - perSizer.Add(self.stPercentages, 0, wx.BOTTOM | wx.LEFT, 5) + perSizer.Add(self.stPercentages, 0, wx.BOTTOM | wx.TOP | wx.LEFT, 5) - footerSizer.Add(perSizer, 0, 0, 5) + footerSizer.Add(perSizer, 1, wx.ALIGN_CENTER_VERTICAL, 5) self.totSizer = wx.BoxSizer(wx.VERTICAL) - self.stTotal = wx.StaticText(self, wx.ID_ANY, u"") - self.stTotal.Wrap(-1) - self.totSizer.Add(self.stTotal, 0, wx.ALIGN_RIGHT | wx.BOTTOM | wx.RIGHT, 5) +# self.stTotal = wx.StaticText(self, wx.ID_ANY, u"LOL") +# self.stTotal.Wrap(-1) +# self.totSizer.Add(self.stTotal, 0, wx.ALIGN_RIGHT | wx.BOTTOM | wx.RIGHT, 5) - footerSizer.Add(self.totSizer, 1, 0, 5) +# footerSizer.Add(self.totSizer, 1, 0, 5) contentSizer.Add(footerSizer, 0, wx.EXPAND, 5) @@ -158,7 +153,7 @@ class DmgPatternEditorDlg (wx.Dialog): for name, art in importExport: bitmap = wx.ArtProvider.GetBitmap(art, wx.ART_BUTTON) btn = wx.BitmapButton(self, wx.ID_ANY, bitmap) - + btn.SetMinSize( btn.GetSize() ) btn.SetMaxSize( btn.GetSize() ) @@ -166,7 +161,7 @@ class DmgPatternEditorDlg (wx.Dialog): setattr(self, name, btn) btn.Enable(True) btn.SetToolTipString("%s patterns" % name.capitalize()) - footerSizer.Add(btn, 0, wx.ALIGN_CENTER_HORIZONTAL) + footerSizer.Add(btn, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_RIGHT) # @@ -305,7 +300,7 @@ class DmgPatternEditorDlg (wx.Dialog): def processRename(self, event): newName = self.namePicker.GetLineText(0) self.stPercentages.SetLabel("") - self.stTotal.SetLabel("") +# self.stTotal.SetLabel("") p = self.getActivePattern() for pattern in self.choices: if pattern.name == newName and p != pattern: diff --git a/gui/shipBrowser.py b/gui/shipBrowser.py index d58023a5a..3930a67fc 100644 --- a/gui/shipBrowser.py +++ b/gui/shipBrowser.py @@ -25,7 +25,6 @@ SearchSelected, EVT_SB_SEARCH_SEL = wx.lib.newevent.NewEvent() class ShipBrowser(wx.Panel): def __init__(self, parent): wx.Panel.__init__ (self, parent,style = 0) - # if 'wxGTK' in wx.PlatformInfo else wx.DOUBLE_BORDER) self._lastWidth = 0 self._activeStage = 1 @@ -83,8 +82,6 @@ class ShipBrowser(wx.Panel): def SizeRefreshList(self, event): ewidth, eheight = event.GetSize() -## if ewidth != self._lastWidth: -## self._lastWidth = ewidth self.Layout() self.lpane.Layout() self.lpane.RefreshList(True) @@ -148,7 +145,6 @@ class ShipBrowser(wx.Panel): self.lpane.AddWidget(ShipItem(self.lpane, ID, (name, fits), race)) self.lpane.RefreshList() -# self.lpane.ShowLoading(False) def stage2(self, event): back = event.back @@ -160,7 +156,6 @@ class ShipBrowser(wx.Panel): self.lastdata = categoryID -# self.lpane.ShowLoading(True) self.lpane.RemoveAllChildren() sMarket = service.Market.getInstance() sMarket.getShipListDelayed(self.stage2Callback, categoryID) @@ -314,16 +309,9 @@ class HeaderPane (wx.Panel): self.sbRewind.SetBackgroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_BTNFACE ) ) self.sbRewind.SetBitmapSelected(self.rewBmp) -# self.sbForward = PFGenBitmapButton( self, wx.ID_ANY, self.forwBmp, wx.DefaultPosition, bmpSize, wx.BORDER_NONE ) -# mainSizer.Add(self.sbForward, 0, wx.LEFT | wx.TOP | wx.BOTTOM | wx.ALIGN_CENTER_VERTICAL , 5) -# self.sbForward.SetBackgroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_BTNFACE ) ) - self.sl1 = wx.StaticLine( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LI_VERTICAL ) mainSizer.Add( self.sl1, 0, wx.EXPAND |wx.LEFT, 5 ) -# self.sl2 = wx.StaticLine( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LI_VERTICAL ) -# mainSizer.Add( self.sl2, 0, wx.EXPAND |wx.LEFT, 5 ) - self.sbNewFit = PFGenBitmapButton( self, wx.ID_ANY, self.newBmp, wx.DefaultPosition, bmpSize, wx.BORDER_NONE ) mainSizer.Add(self.sbNewFit, 0, wx.LEFT | wx.TOP | wx.BOTTOM | wx.ALIGN_CENTER_VERTICAL , 5) self.sbNewFit.SetBackgroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_BTNFACE ) ) @@ -356,10 +344,6 @@ class HeaderPane (wx.Panel): self.SetSizer(mainSizer) -# self.sbForward.Bind(wx.EVT_BUTTON,self.OnForward) -# self.sbForward.Bind( wx.EVT_ENTER_WINDOW, self.OnEnterWForward ) -# self.sbForward.Bind( wx.EVT_LEAVE_WINDOW, self.OnLeaveWForward ) - self.sbReset.Bind(wx.EVT_BUTTON,self.OnReset) self.sbReset.Bind( wx.EVT_ENTER_WINDOW, self.OnEnterWReset ) self.sbReset.Bind( wx.EVT_LEAVE_WINDOW, self.OnLeaveWReset ) @@ -369,7 +353,6 @@ class HeaderPane (wx.Panel): self.sbRewind.Bind( wx.EVT_LEAVE_WINDOW, self.OnLeaveWRewind ) - self.sbSearch.Bind(wx.EVT_BUTTON,self.OnSearch) self.sbSearch.Bind( wx.EVT_ENTER_WINDOW, self.OnEnterWSearch ) self.sbSearch.Bind( wx.EVT_LEAVE_WINDOW, self.OnLeaveWSearch ) @@ -450,18 +433,6 @@ class HeaderPane (wx.Panel): item = menu.Append(-1, txt) menu.Bind(wx.EVT_MENU, self.OnMenuSelected, item) -# if 'wxMSW' in wx.PlatformInfo: -# menu.Break() -# else: -# menu.AppendSeparator() - -# for txt in normalCMItems: -# if txt =="_sep_": -# menu.AppendSeparator() -# else: -# item = menu.Append(-1, txt) -# item.Enable(False) -# menu.Bind(wx.EVT_MENU, self.OnMenuSelected, item) return menu @@ -473,9 +444,6 @@ class HeaderPane (wx.Panel): self.spanel.Show(False) self.toggleSearch = -1 -# if self.menu: -# self.menu.Destroy() - stxt = self.search.GetValue() if stxt not in self.recentSearches: if stxt: @@ -492,6 +460,7 @@ class HeaderPane (wx.Panel): self.toggleSearch = -1 else: event.Skip() + def doSearch(self, event): stxt = self.search.GetValue() if len(stxt) > 2: @@ -499,12 +468,10 @@ class HeaderPane (wx.Panel): def ToggleNewFitSB(self, toggle): self.sbNewFit.Show(toggle) -# self.sl2.Show(toggle) self.Layout() def ToggleFitViewModeSB(self, toggle): self.sbSwitchFitView.Show(toggle) -# self.sl2.Show(toggle) self.Layout() def OnReset(self,event): @@ -534,7 +501,6 @@ class HeaderPane (wx.Panel): self.sbReset.Refresh() event.Skip() - def OnEnterWForward(self, event): if self.toggleSearch != 1: self.stStatus.SetLabel("Forward") @@ -568,7 +534,6 @@ class HeaderPane (wx.Panel): else: self.stStatus.Disable() - self.SetCursor(wx.StockCursor(wx.CURSOR_HAND)) event.Skip() @@ -711,35 +676,19 @@ class HeaderPane (wx.Panel): class ListPane (wx.ScrolledWindow): def __init__(self, parent): wx.ScrolledWindow.__init__ (self, parent, id=wx.ID_ANY, pos=wx.DefaultPosition, size=wx.Size(1, 1), style=wx.TAB_TRAVERSAL) + self._wList = [] self._wCount = 0 - self.mainFrame = gui.mainFrame.MainFrame.getInstance() self.SetBackgroundColour(wx.SystemSettings_GetColour(wx.SYS_COLOUR_WINDOW)) self.SetVirtualSize((1, 1)) self.SetScrollRate(0, 1) + self.Bind(wx.EVT_SCROLLWIN_LINEUP, self.MScrollUp) self.Bind(wx.EVT_SCROLLWIN_LINEDOWN, self.MScrollDown) self.Bind(wx.EVT_CHILD_FOCUS, self.OnChildFocus) -# self.loadingAnim = wx.animate.Animation(os.path.join(config.pyfaPath,"icons/fit_loading.gif")) -# self.animCtrl = wx.animate.AnimationCtrl(self, -1, self.loadingAnim) -# self.animCtrl.SetUseWindowBackgroundColour() -# self.animCtrl.Hide() - -# def ShowLoading(self, mode = True): -# if mode: -# aweight,aheight = self.animCtrl.GetSize() -# cweight,cheight = self.GetSize() -# ax = (cweight - aweight)/2 -# ay = (cheight - aheight)/2 -# self.animCtrl.SetPosition((ax,ay)) -# self.animCtrl.Show() -# self.animCtrl.Play() -# else: -# self.animCtrl.Stop() -# self.animCtrl.Hide() def OnChildFocus(self, event): event.Skip() @@ -751,7 +700,7 @@ class ListPane (wx.ScrolledWindow): posy = self.GetScrollPos(wx.VERTICAL) posy -= 12 self.Scroll(0, posy) -# self.RefreshList() + event.Skip() def MScrollDown(self, event): @@ -759,7 +708,7 @@ class ListPane (wx.ScrolledWindow): posy = self.GetScrollPos(wx.VERTICAL) posy += 12 self.Scroll(0, posy) -# self.RefreshList() + event.Skip() @@ -803,7 +752,6 @@ class ListPane (wx.ScrolledWindow): # if we need to adjust if new_vs_x != -1 or new_vs_y != -1: - #print "%s: (%s, %s)" % (self.GetName(), new_vs_x, new_vs_y) self.Scroll(new_vs_x, new_vs_y) @@ -813,21 +761,29 @@ class ListPane (wx.ScrolledWindow): self._wList.append(widget) self._wCount += 1 + # Override this method if needed ( return False by default if we do not want to scroll to selected widget) + def IsWidgetSelectedByContext(self, widget): + mainFrame = gui.mainFrame.MainFrame.getInstance() + stage = self.Parent.GetActiveStage() + fit = mainFrame.getActiveFit() + if stage == 3 or stage == 4: + if self._wList[widget].GetType() == 3: + if fit == self._wList[widget].fitID: + return True + return False + def RefreshList(self, doRefresh = False): ypos = 0 maxy = 0 scrollTo = 0 - stage = self.Parent.GetActiveStage() - fit = self.mainFrame.getActiveFit() + selected = None for i in xrange( len(self._wList) ): iwidth, iheight = self._wList[i].GetSize() xa, ya = self.CalcScrolledPosition((0, maxy)) self._wList[i].SetPosition((xa, ya)) - if stage == 3 or stage == 4: - if self._wList[i].GetType() == 3: - if fit == self._wList[i].fitID: - selected = self._wList[i] + if self.IsWidgetSelectedByContext(i): + selected = self._wList[i] maxy += iheight self.SetVirtualSize((1, maxy)) @@ -920,9 +876,6 @@ class CategoryItem(wx.Window): r.left = 0 r.height = r.height / 2 if self.highlighted: -# mdc.SetBackground(wx.Brush(wx.SystemSettings_GetColour(wx.SYS_COLOUR_HIGHLIGHT))) -# mdc.Clear() -# mdc.SetTextForeground(wx.SystemSettings_GetColour(wx.SYS_COLOUR_HIGHLIGHTTEXT)) sr = 221 sg = 221 @@ -982,10 +935,6 @@ class CategoryItem(wx.Window): fPosX = rect.width - addX - xtext fPosY = (rect.height -ytext)/2 -# if fittings > 0: -# mdc.DrawText(fformat % fittings, fPosX, fPosY) -# else: -# mdc.DrawText(fformat, fPosX, fPosY) event.Skip() @@ -1579,10 +1528,6 @@ class FitItem(wx.Window): if targetWnd == cfitWnd: wx.PostEvent(self.mainFrame, FitSelected(fitID=self.fitID)) -# elif targetWnd == cfitWnd.view: -# wx.PostEvent(self.mainFrame, FitSelected(fitID=self.fitID)) -# elif targetWnd.Parent == cfitWnd.view: -# wx.PostEvent(self.mainFrame, FitSelected(fitID=self.fitID)) elif targetWnd == msWnd: