4 #--------------------------------------------------------------------------- 
   6 class MySplitter(wx
.SplitterWindow
): 
   7     def __init__(self
, parent
, ID
, log
): 
   8         wx
.SplitterWindow
.__init
__(self
, parent
, ID
) 
  11         self
.Bind(wx
.EVT_SPLITTER_SASH_POS_CHANGED
, self
.OnSashChanged
) 
  12         self
.Bind(wx
.EVT_SPLITTER_SASH_POS_CHANGING
, self
.OnSashChanging
) 
  14     def OnSashChanged(self
, evt
): 
  15         self
.log
.WriteText("sash changed to %s\n" % str(evt
.GetSashPosition())) 
  16         # uncomment this to not allow the change 
  17         #evt.SetSashPosition(-1) 
  19     def OnSashChanging(self
, evt
): 
  20         self
.log
.WriteText("sash changing to %s\n" % str(evt
.GetSashPosition())) 
  21         # uncomment this to not allow the change 
  22         #evt.SetSashPosition(-1) 
  24 #--------------------------------------------------------------------------- 
  26 def runTest(frame
, nb
, log
): 
  27     splitter 
= MySplitter(nb
, -1, log
) 
  29     p1 
= wx
.Window(splitter
, -1) 
  30     p1
.SetBackgroundColour(wx
.RED
) 
  31     wx
.StaticText(p1
, -1, "Panel One", (5,5)).SetBackgroundColour(wx
.RED
) 
  33     p2 
= wx
.Window(splitter
, -1) 
  34     p2
.SetBackgroundColour(wx
.BLUE
) 
  35     wx
.StaticText(p2
, -1, "Panel Two", (5,5)).SetBackgroundColour(wx
.BLUE
) 
  37     splitter
.SetMinimumPaneSize(20) 
  38     splitter
.SplitVertically(p1
, p2
, 100) 
  43 #--------------------------------------------------------------------------- 
  47 This class manages up to two subwindows. The current view can be split 
  48 into two programmatically (perhaps from a menu command), and unsplit 
  49 either programmatically or via the wx.SplitterWindow user interface. 
  52 if __name__ 
== '__main__': 
  55     run
.main(['', os
.path
.basename(sys
.argv
[0])])