wxSplitterWindow.__init__(self, parent, ID)
         self.log = log
         EVT_SPLITTER_SASH_POS_CHANGED(self, self.GetId(), self.OnSashChanged)
+        EVT_SPLITTER_SASH_POS_CHANGING(self, self.GetId(), self.OnSashChanging)
 
     def OnSashChanged(self, evt):
-        self.log.WriteText("sash changed to " + str(evt.GetSashPosition()))
+        self.log.WriteText("sash changed to %s\n" % str(evt.GetSashPosition()))
+        # uncomment this to not allow the change
+        #evt.SetSashPosition(-1)
+
+    def OnSashChanging(self, evt):
+        self.log.WriteText("sash changing to %s\n" % str(evt.GetSashPosition()))
+        # uncomment this to not allow the change
+        #evt.SetSashPosition(-1)
 
 #---------------------------------------------------------------------------
 
     wxStaticText(p2, -1, "Panel Two", wxPoint(5,5)).SetBackgroundColour(wxBLUE)
 
     splitter.SetMinimumPaneSize(20)
-    splitter.SplitVertically(p1, p2)
-    splitter.SetSashPosition(100)
+    splitter.SplitVertically(p1, p2, 100)
+
+##     splitter.SetSize((300,300))
+##     print splitter.GetSashPosition()
+##     splitter.SetSashPosition(100)
+##     print splitter.GetSashPosition()
 
     return splitter