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