PyCrust now has an option for showing/hiding the notebook.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@44215 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn
2007-01-12 19:20:32 +00:00
parent 19a885344a
commit 302129f896
3 changed files with 61 additions and 6 deletions

View File

@@ -75,19 +75,49 @@ class Crust(wx.SplitterWindow):
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
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):
@@ -110,13 +140,17 @@ class Crust(wx.SplitterWindow):
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())
@@ -307,6 +341,13 @@ class CrustFrame(frame.Frame, frame.ShellFrameMixin):
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)