# HG changeset patch # User laurent # Date 1303376777 -7200 # Node ID 08f32198e932ec668107fd92dd2a167a24e2fe1a # Parent d506a353b3d3e69195c46bb821fc58dd78494cbb Adding support for saving frame size while closing and restore it at next launch diff -r d506a353b3d3 -r 08f32198e932 PLCOpenEditor.py --- a/PLCOpenEditor.py Thu Apr 21 09:55:28 2011 +0200 +++ b/PLCOpenEditor.py Thu Apr 21 11:06:17 2011 +0200 @@ -632,6 +632,7 @@ # @param debug The filepath to open if no controler defined (default: False). def __init__(self, parent, enable_debug = False): self.Controler = None + self.Config = wx.ConfigBase.Get() self.EnableDebug = enable_debug self._init_ctrls(parent) @@ -696,9 +697,27 @@ self.PageSetupData.SetMarginBottomRight(wx.Point(10, 20)) self.SetRefreshFunctions() - - self.Maximize() - + + def Show(self): + wx.Frame.Show(self) + wx.CallAfter(self.RestoreFrameSize) + + def RestoreFrameSize(self): + frame_size = None + if self.Config.HasEntry("framesize"): + frame_size = cPickle.loads(str(self.Config.Read("framesize"))) + + if frame_size is None: + self.Maximize() + else: + self.SetClientSize(frame_size) + + def SaveFrameSize(self): + if not self.IsMaximized(): + self.Config.Write("framesize", cPickle.dumps(self.GetClientSize())) + elif self.Config.HasEntry("framesize"): + self.Config.DeleteEntry("framesize") + self.Config.Flush() #------------------------------------------------------------------------------- # General Functions @@ -2526,6 +2545,9 @@ if self.Controler is None or self.CheckSaveBeforeClosing(_("Close Application")): if USE_AUI: self.AUIManager.UnInit() + + self.SaveFrameSize() + event.Skip() else: event.Veto()