From 9d2c254d00fba082f0f0784697dcd997cb87da0c Mon Sep 17 00:00:00 2001 From: HomeWorld Date: Sat, 30 Oct 2010 13:56:37 +0300 Subject: [PATCH] Major rehaul of mainframe.py controls init. Bye bye monster flicker on sash resize --- eos | 2 +- gui/mainFrame.py | 58 ++++++++++++++++++++++++++++++------------------ 2 files changed, 38 insertions(+), 22 deletions(-) diff --git a/eos b/eos index e6c27eae9..0e48eb344 160000 --- a/eos +++ b/eos @@ -1 +1 @@ -Subproject commit e6c27eae925e1ba89aca77ba6326060ac54ee002 +Subproject commit 0e48eb34418a96cae07e61ba7d3fc368aa50e2cf diff --git a/gui/mainFrame.py b/gui/mainFrame.py index 5f564d8b1..bcf336ad5 100644 --- a/gui/mainFrame.py +++ b/gui/mainFrame.py @@ -36,6 +36,18 @@ import gui.fittingView as fv from wx._core import PyDeadObjectError import os.path +#dummy panel no paint no erasebk +class PFPanel(wx.Panel): + def __init__(self,parent): + wx.Panel.__init__(self,parent) + self.Bind(wx.EVT_PAINT, self.OnPaint) + self.Bind(wx.EVT_ERASE_BACKGROUND, self.OnBkErase) + + def OnPaint(self, event): + event.Skip() + def OnBkErase(self, event): + pass + class MainFrame(wx.Frame): __instance = None @classmethod @@ -45,6 +57,7 @@ class MainFrame(wx.Frame): def __init__(self): wx.Frame.__init__(self, None, wx.ID_ANY, title="pyfa - Python Fitting Assistant") MainFrame.__instance = self + self.SetBackgroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_BTNFACE ) ) i = wx.IconFromBitmap(bitmapLoader.getBitmap("pyfa", "icons")) self.SetIcon(i) @@ -52,8 +65,12 @@ class MainFrame(wx.Frame): self.SetMinSize((1000, 700)) self.SetSize((1000, 700)) + mainSizer = wx.BoxSizer(wx.HORIZONTAL) + self.splitter = wx.SplitterWindow(self, style = wx.SP_LIVE_UPDATE) + mainSizer.Add(self.splitter,1,wx.EXPAND) + self.notebookBrowsers = wx.Notebook(self.splitter, wx.ID_ANY) self.notebookBrowsers.Bind(wx.EVT_LEFT_DOWN, self.mouseHit) @@ -64,35 +81,34 @@ class MainFrame(wx.Frame): self.notebookBrowsers.AddPage(self.shipBrowser, "Ships") self.notebookBrowsers.SetSelection(1) - statsFitviewPanel = wx.Panel(self.splitter) - self.statsSizer = wx.BoxSizer(wx.HORIZONTAL) - statsFitviewPanel.SetSizer(self.statsSizer) + self.FitviewAdditionsPanel = PFPanel(self.splitter) + faSizer = wx.BoxSizer(wx.VERTICAL) - self.fittingPanel = wx.Panel(statsFitviewPanel) - fittingSizer = wx.BoxSizer(wx.VERTICAL) - self.fittingPanel.SetSizer(fittingSizer) - self.statsSizer.Add(self.fittingPanel, 1, wx.EXPAND) - - self.fitMultiSwitch = MultiSwitch(self.fittingPanel) + self.fitMultiSwitch = MultiSwitch(self.FitviewAdditionsPanel) self.fitMultiSwitch.AddTab() - fittingSizer.Add(self.fitMultiSwitch, 1, wx.EXPAND) + faSizer.Add(self.fitMultiSwitch,1,wx.EXPAND) - self.additionsPane = AdditionsPane(self.fittingPanel) - fittingSizer.Add(self.additionsPane, 0, wx.EXPAND) + self.additionsPane = AdditionsPane(self.FitviewAdditionsPanel) + faSizer.Add(self.additionsPane, 0, wx.EXPAND) - self.statsCharPickerSizer = wx.BoxSizer(wx.VERTICAL) - self.statsSizer.Add(self.statsCharPickerSizer, 0, wx.EXPAND | wx.TOP | wx.RIGHT | wx.LEFT, 3) + self.FitviewAdditionsPanel.SetSizer(faSizer) - self.charSelection = CharacterSelection(statsFitviewPanel) - self.statsCharPickerSizer.Add(self.charSelection, 0, wx.EXPAND) - - self.statsPane = StatsPane(statsFitviewPanel) - self.statsCharPickerSizer.Add(self.statsPane, 0, wx.EXPAND) - - self.splitter.SplitVertically(self.notebookBrowsers, statsFitviewPanel) + self.splitter.SplitVertically(self.notebookBrowsers, self.FitviewAdditionsPanel) self.splitter.SetMinimumPaneSize(200) self.splitter.SetSashPosition(300) + cstatsSizer = wx.BoxSizer(wx.VERTICAL) + + self.charSelection = CharacterSelection(self) + cstatsSizer.Add(self.charSelection, 0, wx.EXPAND | wx.TOP | wx.RIGHT | wx.LEFT , 3) + + self.statsPane = StatsPane(self) + cstatsSizer.Add(self.statsPane, 0, wx.EXPAND) + + mainSizer.Add(cstatsSizer, 0 , wx.EXPAND) + + self.SetSizer(mainSizer) + #Add menu self.SetMenuBar(MainMenuBar()) #self.SetToolBar(MainToolBar(self))