From c703252ee599f149ce8e3e7915090e57ff9dd6fe Mon Sep 17 00:00:00 2001 From: HomeWorld Date: Mon, 6 Dec 2010 13:20:49 +0200 Subject: [PATCH] Moved gauges settings into preferences dialog --- gui/builtinPreferenceViews/__init__.py | 2 +- gui/builtinPreferenceViews/dummyView.py | 4 +- .../pyfaGaugePreferences.py | 101 ++++++++---------- gui/mainMenuBar.py | 2 +- gui/preferenceDialog.py | 19 +++- gui/preferenceView.py | 5 + icons/pref-gauges_big.png | Bin 0 -> 5180 bytes 7 files changed, 71 insertions(+), 62 deletions(-) create mode 100644 icons/pref-gauges_big.png diff --git a/gui/builtinPreferenceViews/__init__.py b/gui/builtinPreferenceViews/__init__.py index b4478713f..7bd3c3e15 100644 --- a/gui/builtinPreferenceViews/__init__.py +++ b/gui/builtinPreferenceViews/__init__.py @@ -1 +1 @@ -__all__ = ["dummyView"] +__all__ = ["pyfaGaugePreferences"] diff --git a/gui/builtinPreferenceViews/dummyView.py b/gui/builtinPreferenceViews/dummyView.py index 58e5e800d..8cdb606a1 100644 --- a/gui/builtinPreferenceViews/dummyView.py +++ b/gui/builtinPreferenceViews/dummyView.py @@ -17,9 +17,9 @@ # along with pyfa. If not, see . #=============================================================================== -from gui.preferenceView import PreferenceView import wx - +from gui.preferenceView import PreferenceView +from gui import bitmapLoader class DummyView(PreferenceView): title = "Dummy" diff --git a/gui/builtinPreferenceViews/pyfaGaugePreferences.py b/gui/builtinPreferenceViews/pyfaGaugePreferences.py index ca09c825e..b81798841 100755 --- a/gui/builtinPreferenceViews/pyfaGaugePreferences.py +++ b/gui/builtinPreferenceViews/pyfaGaugePreferences.py @@ -1,15 +1,11 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -########################################################################### -## Python code generated with wxFormBuilder (version May 4 2010) -## http://www.wxformbuilder.org/ -## -## PLEASE DO "NOT" EDIT THIS FILE! -########################################################################### import wx import copy +from gui.preferenceView import PreferenceView +from gui import bitmapLoader ########################################################################### ## Class PFGaugePref @@ -168,155 +164,153 @@ class PFGaugePreview(wx.Window): dc.DrawLabel(formatStr.format(value), rect, wx.ALIGN_CENTER) -class PFGaugePref ( wx.Dialog): +class PFGaugePref ( PreferenceView): + title = "Pyfa Gauge Theme" + def populatePanel( self, panel ): - def __init__( self ): - wx.Dialog.__init__ ( self, None, id = wx.ID_ANY, pos = wx.DefaultPosition, size = wx.Size( 500,261 ), style = wx.DEFAULT_DIALOG_STYLE ) - - self.SetTitle("Pyfa's Gauges colors editor") self.InitDefaultColours() mainSizer = wx.BoxSizer( wx.VERTICAL ) gSizer1 = wx.BoxSizer( wx.HORIZONTAL ) - self.st0100 = wx.StaticText( self, wx.ID_ANY, u"0 - 100", wx.DefaultPosition, wx.DefaultSize, wx.ALIGN_RIGHT ) + self.st0100 = wx.StaticText( panel, wx.ID_ANY, u"0 - 100", wx.DefaultPosition, wx.DefaultSize, wx.ALIGN_RIGHT ) self.st0100.Wrap( -1 ) gSizer1.Add( self.st0100, 1, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 ) - self.cp0100S = wx.ColourPickerCtrl( self, wx.ID_ANY, wx.BLACK, wx.DefaultPosition, wx.DefaultSize, wx.CLRP_DEFAULT_STYLE | wx.CLRP_SHOW_LABEL ) + self.cp0100S = wx.ColourPickerCtrl( panel, wx.ID_ANY, wx.BLACK, wx.DefaultPosition, wx.DefaultSize, wx.CLRP_DEFAULT_STYLE | wx.CLRP_SHOW_LABEL ) gSizer1.Add( self.cp0100S, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 ) - self.cp0100E = wx.ColourPickerCtrl( self, wx.ID_ANY, wx.BLACK, wx.DefaultPosition, wx.DefaultSize, wx.CLRP_DEFAULT_STYLE | wx.CLRP_SHOW_LABEL ) + self.cp0100E = wx.ColourPickerCtrl( panel, wx.ID_ANY, wx.BLACK, wx.DefaultPosition, wx.DefaultSize, wx.CLRP_DEFAULT_STYLE | wx.CLRP_SHOW_LABEL ) gSizer1.Add( self.cp0100E, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 ) - self.gauge0100S = PFGaugePreview( self, wx.ID_ANY, 33, wx.DefaultPosition, wx.DefaultSize, wx.SIMPLE_BORDER ) + self.gauge0100S = PFGaugePreview( panel, wx.ID_ANY, 33, wx.DefaultPosition, wx.DefaultSize, wx.SIMPLE_BORDER ) gSizer1.Add( self.gauge0100S, 0, wx.ALIGN_CENTER_VERTICAL|wx.LEFT, 5 ) - self.gauge0100M = PFGaugePreview( self, wx.ID_ANY, 66, wx.DefaultPosition, wx.DefaultSize, wx.SIMPLE_BORDER ) + self.gauge0100M = PFGaugePreview( panel, wx.ID_ANY, 66, wx.DefaultPosition, wx.DefaultSize, wx.SIMPLE_BORDER ) gSizer1.Add( self.gauge0100M, 0, wx.ALIGN_CENTER_VERTICAL|wx.LEFT, 5 ) - self.gauge0100E = PFGaugePreview( self, wx.ID_ANY, 100, wx.DefaultPosition, wx.DefaultSize, wx.SIMPLE_BORDER ) + self.gauge0100E = PFGaugePreview( panel, wx.ID_ANY, 100, wx.DefaultPosition, wx.DefaultSize, wx.SIMPLE_BORDER ) gSizer1.Add( self.gauge0100E, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT|wx.LEFT, 5 ) mainSizer.Add( gSizer1, 0, wx.EXPAND, 5 ) gSizer2 = wx.BoxSizer( wx.HORIZONTAL ) - self.st100101 = wx.StaticText( self, wx.ID_ANY, u"100 - 101", wx.DefaultPosition, wx.DefaultSize, wx.ALIGN_RIGHT ) + self.st100101 = wx.StaticText( panel, wx.ID_ANY, u"100 - 101", wx.DefaultPosition, wx.DefaultSize, wx.ALIGN_RIGHT ) self.st100101.Wrap( -1 ) gSizer2.Add( self.st100101, 1, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 ) - self.cp100101S = wx.ColourPickerCtrl( self, wx.ID_ANY, wx.BLACK, wx.DefaultPosition, wx.DefaultSize, wx.CLRP_DEFAULT_STYLE | wx.CLRP_SHOW_LABEL ) + self.cp100101S = wx.ColourPickerCtrl( panel, wx.ID_ANY, wx.BLACK, wx.DefaultPosition, wx.DefaultSize, wx.CLRP_DEFAULT_STYLE | wx.CLRP_SHOW_LABEL ) gSizer2.Add( self.cp100101S, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 ) - self.cp100101E = wx.ColourPickerCtrl( self, wx.ID_ANY, wx.BLACK, wx.DefaultPosition, wx.DefaultSize, wx.CLRP_DEFAULT_STYLE | wx.CLRP_SHOW_LABEL ) + self.cp100101E = wx.ColourPickerCtrl( panel, wx.ID_ANY, wx.BLACK, wx.DefaultPosition, wx.DefaultSize, wx.CLRP_DEFAULT_STYLE | wx.CLRP_SHOW_LABEL ) gSizer2.Add( self.cp100101E, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 ) - self.gauge100101S = PFGaugePreview( self, wx.ID_ANY, 33, wx.DefaultPosition, wx.DefaultSize, wx.SIMPLE_BORDER ) + self.gauge100101S = PFGaugePreview( panel, wx.ID_ANY, 33, wx.DefaultPosition, wx.DefaultSize, wx.SIMPLE_BORDER ) gSizer2.Add( self.gauge100101S, 0, wx.ALIGN_CENTER_VERTICAL|wx.LEFT, 5 ) - self.gauge100101M = PFGaugePreview( self, wx.ID_ANY, 66, wx.DefaultPosition, wx.DefaultSize, wx.SIMPLE_BORDER ) + self.gauge100101M = PFGaugePreview( panel, wx.ID_ANY, 66, wx.DefaultPosition, wx.DefaultSize, wx.SIMPLE_BORDER ) gSizer2.Add( self.gauge100101M, 0, wx.ALIGN_CENTER_VERTICAL|wx.LEFT, 5 ) - self.gauge100101E = PFGaugePreview( self, wx.ID_ANY, 100, wx.DefaultPosition, wx.DefaultSize, wx.SIMPLE_BORDER ) + self.gauge100101E = PFGaugePreview( panel, wx.ID_ANY, 100, wx.DefaultPosition, wx.DefaultSize, wx.SIMPLE_BORDER ) gSizer2.Add( self.gauge100101E, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT|wx.LEFT, 5 ) mainSizer.Add( gSizer2, 0, wx.EXPAND, 5 ) gSizer3 = wx.BoxSizer( wx.HORIZONTAL ) - self.st101103 = wx.StaticText( self, wx.ID_ANY, u"101 - 103", wx.DefaultPosition, wx.DefaultSize, wx.ALIGN_RIGHT ) + self.st101103 = wx.StaticText( panel, wx.ID_ANY, u"101 - 103", wx.DefaultPosition, wx.DefaultSize, wx.ALIGN_RIGHT ) self.st101103.Wrap( -1 ) gSizer3.Add( self.st101103, 1, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 ) - self.cp101103S = wx.ColourPickerCtrl( self, wx.ID_ANY, wx.BLACK, wx.DefaultPosition, wx.DefaultSize, wx.CLRP_DEFAULT_STYLE | wx.CLRP_SHOW_LABEL ) + self.cp101103S = wx.ColourPickerCtrl( panel, wx.ID_ANY, wx.BLACK, wx.DefaultPosition, wx.DefaultSize, wx.CLRP_DEFAULT_STYLE | wx.CLRP_SHOW_LABEL ) gSizer3.Add( self.cp101103S, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 ) - self.cp101103E = wx.ColourPickerCtrl( self, wx.ID_ANY, wx.BLACK, wx.DefaultPosition, wx.DefaultSize, wx.CLRP_DEFAULT_STYLE | wx.CLRP_SHOW_LABEL ) + self.cp101103E = wx.ColourPickerCtrl( panel, wx.ID_ANY, wx.BLACK, wx.DefaultPosition, wx.DefaultSize, wx.CLRP_DEFAULT_STYLE | wx.CLRP_SHOW_LABEL ) gSizer3.Add( self.cp101103E, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 ) - self.gauge101103S = PFGaugePreview( self, wx.ID_ANY, 33, wx.DefaultPosition, wx.DefaultSize, wx.SIMPLE_BORDER ) + self.gauge101103S = PFGaugePreview( panel, wx.ID_ANY, 33, wx.DefaultPosition, wx.DefaultSize, wx.SIMPLE_BORDER ) gSizer3.Add( self.gauge101103S, 0, wx.ALIGN_CENTER_VERTICAL|wx.LEFT, 5 ) - self.gauge101103M = PFGaugePreview( self, wx.ID_ANY, 66, wx.DefaultPosition, wx.DefaultSize, wx.SIMPLE_BORDER ) + self.gauge101103M = PFGaugePreview( panel, wx.ID_ANY, 66, wx.DefaultPosition, wx.DefaultSize, wx.SIMPLE_BORDER ) gSizer3.Add( self.gauge101103M, 0, wx.ALIGN_CENTER_VERTICAL|wx.LEFT, 5 ) - self.gauge101103E = PFGaugePreview( self, wx.ID_ANY, 100, wx.DefaultPosition, wx.DefaultSize, wx.SIMPLE_BORDER ) + self.gauge101103E = PFGaugePreview( panel, wx.ID_ANY, 100, wx.DefaultPosition, wx.DefaultSize, wx.SIMPLE_BORDER ) gSizer3.Add( self.gauge101103E, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT|wx.LEFT, 5 ) mainSizer.Add( gSizer3, 0, wx.EXPAND, 5 ) gSizer4 = wx.BoxSizer( wx.HORIZONTAL ) - self.st103105 = wx.StaticText( self, wx.ID_ANY, u"103 - 105", wx.DefaultPosition, wx.DefaultSize, wx.ALIGN_RIGHT ) + self.st103105 = wx.StaticText( panel, wx.ID_ANY, u"103 - 105", wx.DefaultPosition, wx.DefaultSize, wx.ALIGN_RIGHT ) self.st103105.Wrap( -1 ) gSizer4.Add( self.st103105, 1, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 ) - self.cp103105S = wx.ColourPickerCtrl( self, wx.ID_ANY, wx.BLACK, wx.DefaultPosition, wx.DefaultSize, wx.CLRP_DEFAULT_STYLE | wx.CLRP_SHOW_LABEL ) + self.cp103105S = wx.ColourPickerCtrl( panel, wx.ID_ANY, wx.BLACK, wx.DefaultPosition, wx.DefaultSize, wx.CLRP_DEFAULT_STYLE | wx.CLRP_SHOW_LABEL ) gSizer4.Add( self.cp103105S, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 ) - self.cp103105E = wx.ColourPickerCtrl( self, wx.ID_ANY, wx.BLACK, wx.DefaultPosition, wx.DefaultSize, wx.CLRP_DEFAULT_STYLE | wx.CLRP_SHOW_LABEL ) + self.cp103105E = wx.ColourPickerCtrl( panel, wx.ID_ANY, wx.BLACK, wx.DefaultPosition, wx.DefaultSize, wx.CLRP_DEFAULT_STYLE | wx.CLRP_SHOW_LABEL ) gSizer4.Add( self.cp103105E, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 ) - self.gauge103105S = PFGaugePreview( self, wx.ID_ANY, 33, wx.DefaultPosition, wx.DefaultSize, wx.SIMPLE_BORDER ) + self.gauge103105S = PFGaugePreview( panel, wx.ID_ANY, 33, wx.DefaultPosition, wx.DefaultSize, wx.SIMPLE_BORDER ) gSizer4.Add( self.gauge103105S, 0, wx.ALIGN_CENTER_VERTICAL|wx.LEFT, 5 ) - self.gauge103105M = PFGaugePreview( self, wx.ID_ANY, 66, wx.DefaultPosition, wx.DefaultSize, wx.SIMPLE_BORDER ) + self.gauge103105M = PFGaugePreview( panel, wx.ID_ANY, 66, wx.DefaultPosition, wx.DefaultSize, wx.SIMPLE_BORDER ) gSizer4.Add( self.gauge103105M, 0, wx.ALIGN_CENTER_VERTICAL|wx.LEFT, 5 ) - self.gauge103105E = PFGaugePreview( self, wx.ID_ANY, 100, wx.DefaultPosition, wx.DefaultSize, wx.SIMPLE_BORDER ) + self.gauge103105E = PFGaugePreview( panel, wx.ID_ANY, 100, wx.DefaultPosition, wx.DefaultSize, wx.SIMPLE_BORDER ) gSizer4.Add( self.gauge103105E, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT|wx.LEFT, 5 ) mainSizer.Add( gSizer4, 0, wx.EXPAND, 5 ) footerSizer = wx.BoxSizer( wx.VERTICAL ) - self.sl1 = wx.StaticLine( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LI_HORIZONTAL ) + self.sl1 = wx.StaticLine( panel, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LI_HORIZONTAL ) footerSizer.Add( self.sl1, 0, wx.EXPAND |wx.ALL, 5 ) previewSizer = wx.BoxSizer( wx.HORIZONTAL ) - self.wndPreview0100 = PFGaugePreview( self, wx.ID_ANY, 100, wx.DefaultPosition, wx.DefaultSize, 0) + self.wndPreview0100 = PFGaugePreview( panel, wx.ID_ANY, 100, wx.DefaultPosition, wx.DefaultSize, 0) previewSizer.Add( self.wndPreview0100, 1, wx.ALIGN_CENTER_VERTICAL, 5 ) - self.wndPreview100101 = PFGaugePreview( self, wx.ID_ANY, 100, wx.DefaultPosition, wx.DefaultSize, 0) + self.wndPreview100101 = PFGaugePreview( panel, wx.ID_ANY, 100, wx.DefaultPosition, wx.DefaultSize, 0) previewSizer.Add( self.wndPreview100101, 1, wx.ALIGN_CENTER_VERTICAL, 5 ) - self.wndPreview101103 = PFGaugePreview( self, wx.ID_ANY, 100, wx.DefaultPosition, wx.DefaultSize, 0) + self.wndPreview101103 = PFGaugePreview( panel, wx.ID_ANY, 100, wx.DefaultPosition, wx.DefaultSize, 0) previewSizer.Add( self.wndPreview101103, 1, wx.ALIGN_CENTER_VERTICAL, 5 ) - self.wndPreview103105 = PFGaugePreview( self, wx.ID_ANY, 100, wx.DefaultPosition, wx.DefaultSize, 0) + self.wndPreview103105 = PFGaugePreview( panel, wx.ID_ANY, 100, wx.DefaultPosition, wx.DefaultSize, 0) previewSizer.Add( self.wndPreview103105, 1, wx.ALIGN_CENTER_VERTICAL, 5 ) footerSizer.Add( previewSizer, 1, wx.EXPAND | wx.ALL, 5 ) buttonsSizer = wx.BoxSizer( wx.HORIZONTAL ) - self.cbLink = wx.CheckBox( self, wx.ID_ANY, u"Link Colors", wx.DefaultPosition, wx.DefaultSize, 0 ) + self.cbLink = wx.CheckBox( panel, wx.ID_ANY, u"Link Colors", wx.DefaultPosition, wx.DefaultSize, 0 ) buttonsSizer.Add( self.cbLink, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT | wx.LEFT, 5 ) - self.sliderGradientStart = wx.Slider( self, wx.ID_ANY, self.gradientStart, 0, 255, wx.DefaultPosition, (127,-1), wx.SL_HORIZONTAL|wx.SL_LABELS ) + self.sliderGradientStart = wx.Slider( panel, wx.ID_ANY, self.gradientStart, 0, 255, wx.DefaultPosition, (127,-1), wx.SL_HORIZONTAL|wx.SL_LABELS ) buttonsSizer.Add( self.sliderGradientStart, 1, wx.EXPAND | wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5 ) - self.btnRestore = wx.Button( self, wx.ID_ANY, u"Restore Defaults", wx.DefaultPosition, wx.DefaultSize, 0 ) + self.btnRestore = wx.Button( panel, wx.ID_ANY, u"Restore Defaults", wx.DefaultPosition, wx.DefaultSize, 0 ) buttonsSizer.Add( self.btnRestore, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5 ) - self.btnDump = wx.Button( self, wx.ID_ANY, u"Dump Colors", wx.DefaultPosition, wx.DefaultSize, 0 ) + self.btnDump = wx.Button( panel, wx.ID_ANY, u"Dump Colors", wx.DefaultPosition, wx.DefaultSize, 0 ) buttonsSizer.Add( self.btnDump, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5 ) - self.btnOk = wx.Button( self, wx.ID_ANY, u"OK", wx.DefaultPosition, wx.DefaultSize, 0 ) + self.btnOk = wx.Button( panel, wx.ID_ANY, u"Apply", wx.DefaultPosition, wx.DefaultSize, 0 ) buttonsSizer.Add( self.btnOk, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5 ) footerSizer.Add( buttonsSizer, 1, wx.ALIGN_RIGHT, 5 ) mainSizer.Add( footerSizer, 0, wx.EXPAND, 5 ) - self.SetSizer( mainSizer ) + panel.SetSizer( mainSizer ) self.SetColours() - self.Fit() - self.Layout() +# self.Fit() +# self.Layout() self.sliderGradientStart.Bind(wx.EVT_SCROLL, self.OnGradientStartScroll) self.btnRestore.Bind(wx.EVT_BUTTON, self.RestoreDefaults) @@ -335,6 +329,8 @@ class PFGaugePref ( wx.Dialog): self.cp103105S.Bind( wx.EVT_COLOURPICKER_CHANGED, self.OnColourChanged ) self.cp103105E.Bind( wx.EVT_COLOURPICKER_CHANGED, self.OnColourChanged ) + def getImage(self): + return bitmapLoader.getBitmap("pref-gauges_big", "icons") def InitDefaultColours(self): self.c0100S = wx.Colour(191, 191, 191, 255) @@ -436,7 +432,7 @@ class PFGaugePref ( wx.Dialog): event.Skip() def OnOk(self, event): - self.Close() + #Apply New Settings event.Skip() def DumpColours(self, event): @@ -502,9 +498,4 @@ class PFGaugePref ( wx.Dialog): def __del__( self ): pass -if __name__ == '__main__': - app = wx.PySimpleApp() - dlg = PFGaugePref() - dlg.ShowModal() - dlg.Destroy() - app.MainLoop() +PFGaugePref.register() \ No newline at end of file diff --git a/gui/mainMenuBar.py b/gui/mainMenuBar.py index bd2db801e..ea677c744 100644 --- a/gui/mainMenuBar.py +++ b/gui/mainMenuBar.py @@ -81,7 +81,7 @@ class MainMenuBar(wx.MenuBar): # graphFrameItem.Enable(gui.graphFrame.enabled) windowMenu.AppendItem(graphFrameItem) - #windowMenu.Append(wx.ID_PREFERENCES) + windowMenu.Append(wx.ID_PREFERENCES) # Help menu helpMenu = wx.Menu() diff --git a/gui/preferenceDialog.py b/gui/preferenceDialog.py index 82a353225..614fc7568 100644 --- a/gui/preferenceDialog.py +++ b/gui/preferenceDialog.py @@ -22,19 +22,32 @@ from gui.preferenceView import PreferenceView class PreferenceDialog(wx.Dialog): def __init__(self, parent): - wx.Dialog.__init__(self, parent, id=wx.ID_ANY, size=wx.Size(600, 400), style=wx.DEFAULT_DIALOG_STYLE) + wx.Dialog.__init__(self, parent, id=wx.ID_ANY, size=wx.DefaultSize, style=wx.DEFAULT_DIALOG_STYLE) + self.SetTitle("pyfa - Preferences") + mainSizer = wx.BoxSizer(wx.VERTICAL) + self.listbook = wx.Listbook(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LB_DEFAULT) self.listbook.GetListView().SetMinSize((500, -1)) self.listbook.GetListView().SetSize((500, -1)) + self.imageList = wx.ImageList(64,64) + self.listbook.SetImageList(self.imageList) + mainSizer.Add(self.listbook, 1, wx.EXPAND | wx.ALL, 5) self.SetSizer(mainSizer) - self.Layout() self.Centre(wx.BOTH) for title, prefView in PreferenceView.views.iteritems(): page = wx.Panel(self.listbook) + bmp = prefView.getImage() + if bmp: + imgID = self.imageList.Add(bmp) + else: + imgID = -1 prefView.populatePanel(page) - self.listbook.AddPage(page, title) + self.listbook.AddPage(page, title, imageId = imgID) + + self.Fit() + self.Layout() \ No newline at end of file diff --git a/gui/preferenceView.py b/gui/preferenceView.py index 86e8a2537..8833d8cb7 100644 --- a/gui/preferenceView.py +++ b/gui/preferenceView.py @@ -17,6 +17,8 @@ # along with pyfa. If not, see . #=============================================================================== +import wx + class PreferenceView(object): views = {} def __init__(self): @@ -36,5 +38,8 @@ class PreferenceView(object): def refreshPanel(self, fit): raise NotImplementedError() + def getImage(self): + return wx.NullBitmap + from gui.builtinPreferenceViews import * diff --git a/icons/pref-gauges_big.png b/icons/pref-gauges_big.png new file mode 100644 index 0000000000000000000000000000000000000000..72f74a3bb231391ed1a27f973b28461cb56cbba4 GIT binary patch literal 5180 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