-        from wxd import wx_
-        self.wxdocs = Filling(parent=self.notebook, 
-                              rootObject=wx_,
-                              rootLabel='wx', 
-                              rootIsNamespace=False,
-                              static=True)
-        self.notebook.AddPage(page=self.wxdocs, text='wxPython Docs')
-        from wxd import stc_
-        self.stcdocs = Filling(parent=self.notebook, 
-                               rootObject=stc_.StyledTextCtrl,
-                               rootLabel='StyledTextCtrl', 
-                               rootIsNamespace=False,
-                               static=True)
-        self.notebook.AddPage(page=self.stcdocs, text='StyledTextCtrl Docs')
-        self.SplitHorizontally(self.shell, self.notebook, 300)
-        self.SetMinimumPaneSize(1)
+        
+        self.SplitHorizontally(self.shell, self.notebook, -self.sashoffset)
+        self.SetMinimumPaneSize(100)
+
+        self.Bind(wx.EVT_SIZE, self.SplitterOnSize)
+        self.Bind(wx.EVT_SPLITTER_SASH_POS_CHANGED, self.OnChanged)
+
+    
+    def OnChanged(self, event):
+        """update sash offset from the bottom of the window"""
+        self.sashoffset = self.GetSize().height - event.GetSashPosition()
+        event.Skip()
+        
+
+    # Make the splitter expand the top window when resized
+    def SplitterOnSize(self, event):
+        splitter = event.GetEventObject()
+        sz = splitter.GetSize()
+        splitter.SetSashPosition(sz.height - self.sashoffset, True)
+        event.Skip()
+
+
+    def LoadSettings(self, config):
+        self.shell.LoadSettings(config)
+        self.filling.LoadSettings(config)
+
+        pos = config.ReadInt('Sash/CrustPos', 400)
+        wx.CallAfter(self.SetSashPosition, pos)
+        def _updateSashPosValue():
+            sz = self.GetSize()
+            self.sashoffset = sz.height - self.GetSashPosition()
+        wx.CallAfter(_updateSashPosValue)
+        zoom = config.ReadInt('View/Zoom/Display', -99)
+        if zoom != -99:
+            self.display.SetZoom(zoom)
+
+
+    def SaveSettings(self, config):
+        self.shell.SaveSettings(config)
+        self.filling.SaveSettings(config)
+
+        config.WriteInt('Sash/CrustPos', self.GetSashPosition())
+        config.WriteInt('View/Zoom/Display', self.display.GetZoom())
+        
+
+