]> git.saurik.com Git - wxWidgets.git/commitdiff
PyCrust now has an option for showing/hiding the notebook.
authorRobin Dunn <robin@alldunn.com>
Fri, 12 Jan 2007 19:20:32 +0000 (19:20 +0000)
committerRobin Dunn <robin@alldunn.com>
Fri, 12 Jan 2007 19:20:32 +0000 (19:20 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@44215 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

wxPython/docs/CHANGES.txt
wxPython/wx/py/crust.py
wxPython/wx/py/frame.py

index f52205717c2d01f9ea13ca5e70cd5dec7c584595..d881573a295422b5d1786f2efcd1d3c856403d54 100644 (file)
@@ -17,6 +17,8 @@ multiple event types at once, and in these cases the typeId property
 may not give you what you want.  You should use te component events in
 these cases.
 
+PyCrust now has an option for showing/hiding the notebook.
+
 
 
 
index d3715d50efa9328fe5766fbd60a84c1f55ab1699..c8b8daa9cea10034e4a912208d97caf261bff313 100644 (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)
index 58b760e4d2870c89a6543d606fc20a48ab4a9b99..2ca5ec9061500f743d2573506c366bb9edacbb45 100644 (file)
@@ -55,6 +55,7 @@ ID_STARTUP = wx.NewId()
 ID_SETTINGS = wx.NewId()
 ID_FIND = wx.ID_FIND
 ID_FINDNEXT = wx.NewId()
+ID_SHOWTOOLS = wx.NewId()
 
 
 
@@ -154,6 +155,10 @@ class Frame(wx.Frame):
                  'Wrap lines at right edge', wx.ITEM_CHECK)
         m.Append(ID_SHOW_LINENUMBERS, '&Show Line Numbers\tCtrl+Shift+L', 'Show Line Numbers', wx.ITEM_CHECK)
         m.Append(ID_TOGGLE_MAXIMIZE, '&Toggle Maximize\tF11', 'Maximize/Restore Application')
+        if hasattr(self, 'ToggleTools'):
+            m.Append(ID_SHOWTOOLS,
+                     'Show &Tools\tF4',
+                     'Show the filling and other tools', wx.ITEM_CHECK)
 
         # Options
         m = self.autocompMenu = wx.Menu()
@@ -268,6 +273,7 @@ class Frame(wx.Frame):
         self.Bind(wx.EVT_MENU, self.OnExecStartupScript, id=ID_EXECSTARTUPSCRIPT)
         self.Bind(wx.EVT_MENU, self.OnFindText, id=ID_FIND)
         self.Bind(wx.EVT_MENU, self.OnFindNext, id=ID_FINDNEXT)
+        self.Bind(wx.EVT_MENU, self.OnToggleTools, id=ID_SHOWTOOLS)
 
         self.Bind(wx.EVT_UPDATE_UI, self.OnUpdateMenu, id=ID_NEW)
         self.Bind(wx.EVT_UPDATE_UI, self.OnUpdateMenu, id=ID_OPEN)
@@ -306,6 +312,7 @@ class Frame(wx.Frame):
         self.Bind(wx.EVT_UPDATE_UI, self.OnUpdateMenu, id=ID_EDITSTARTUPSCRIPT)
         self.Bind(wx.EVT_UPDATE_UI, self.OnUpdateMenu, id=ID_FIND)
         self.Bind(wx.EVT_UPDATE_UI, self.OnUpdateMenu, id=ID_FINDNEXT)
+        self.Bind(wx.EVT_UPDATE_UI, self.OnUpdateMenu, id=ID_SHOWTOOLS)
         
         self.Bind(wx.EVT_ACTIVATE, self.OnActivate)
         self.Bind(wx.EVT_FIND, self.OnFindNext)
@@ -510,7 +517,9 @@ class Frame(wx.Frame):
         self.findDlg.Destroy()
         self.findDlg = None
     
-
+    def OnToggleTools(self, event):
+        self.ToggleTools()
+        
 
     def OnUpdateMenu(self, event):
         """Update menu items based on current status and context."""
@@ -609,6 +618,9 @@ class Frame(wx.Frame):
                 event.Enable(hasattr(win, 'DoFindNext'))
             elif id == ID_FINDNEXT:
                 event.Enable(hasattr(win, 'DoFindNext'))
+
+            elif id == ID_SHOWTOOLS:
+                event.Check(self.ToolsShown())
                                              
             else:
                 event.Enable(False)