self.dispatcherlisting = DispatcherListing(parent=self.notebook)
self.notebook.AddPage(page=self.dispatcherlisting, text='Dispatcher')
+
- self.SplitHorizontally(self.shell, self.notebook, -self.sashoffset)
+ # Initialize in an unsplit mode, and check later after loading
+ # settings if we should split or not.
+ self.shell.Hide()
+ self.notebook.Hide()
+ self.Initialize(self.shell)
+ self._shouldsplit = True
+ wx.CallAfter(self._CheckShouldSplit)
self.SetMinimumPaneSize(100)
self.Bind(wx.EVT_SIZE, self.SplitterOnSize)
self.Bind(wx.EVT_SPLITTER_SASH_POS_CHANGED, self.OnChanged)
+ self.Bind(wx.EVT_SPLITTER_DCLICK, self.OnSashDClick)
+
+ def _CheckShouldSplit(self):
+ if self._shouldsplit:
+ self.SplitHorizontally(self.shell, self.notebook, -self.sashoffset)
+ self.lastsashpos = self.GetSashPosition()
+ else:
+ self.lastsashpos = -1
+ self.issplit = self.IsSplit()
+
+ def ToggleTools(self):
+ """Toggle the display of the filling and other tools"""
+ if self.issplit:
+ self.Unsplit()
+ else:
+ self.SplitHorizontally(self.shell, self.notebook, -self.sashoffset)
+ self.lastsashpos = self.GetSashPosition()
+ self.issplit = self.IsSplit()
+
+ def ToolsShown(self):
+ return self.issplit
-
def OnChanged(self, event):
"""update sash offset from the bottom of the window"""
self.sashoffset = self.GetSize().height - event.GetSashPosition()
+ self.lastsashpos = event.GetSashPosition()
event.Skip()
-
+
+ def OnSashDClick(self, event):
+ self.Unsplit()
+ self.issplit = False
# Make the splitter expand the top window when resized
def SplitterOnSize(self, event):
zoom = config.ReadInt('View/Zoom/Display', -99)
if zoom != -99:
self.display.SetZoom(zoom)
-
+ self.issplit = config.ReadInt('Sash/IsSplit', True)
+ if not self.issplit:
+ self._shouldsplit = False
def SaveSettings(self, config):
self.shell.SaveSettings(config)
self.filling.SaveSettings(config)
- config.WriteInt('Sash/CrustPos', self.GetSashPosition())
+ if self.lastsashpos != -1:
+ config.WriteInt('Sash/CrustPos', self.lastsashpos)
+ config.WriteInt('Sash/IsSplit', self.issplit)
config.WriteInt('View/Zoom/Display', self.display.GetZoom())
dialog.Destroy()
+ def ToggleTools(self):
+ """Toggle the display of the filling and other tools"""
+ return self.crust.ToggleTools()
+
+ def ToolsShown(self):
+ return self.crust.ToolsShown()
+
def OnHelp(self, event):
"""Show a help dialog."""
frame.ShellFrameMixin.OnHelp(self, event)