4 #--------------------------------------------------------------------------- 
   6 class MySplitter(wx
.SplitterWindow
): 
   7     def __init__(self
, parent
, ID
, log
): 
   8         wx
.SplitterWindow
.__init
__(self
, parent
, ID
, 
   9                                    style 
= wx
.SP_LIVE_UPDATE
 
  13         self
.Bind(wx
.EVT_SPLITTER_SASH_POS_CHANGED
, self
.OnSashChanged
) 
  14         self
.Bind(wx
.EVT_SPLITTER_SASH_POS_CHANGING
, self
.OnSashChanging
) 
  16     def OnSashChanged(self
, evt
): 
  17         self
.log
.WriteText("sash changed to %s\n" % str(evt
.GetSashPosition())) 
  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) 
  25 #--------------------------------------------------------------------------- 
  27 def runTest(frame
, nb
, log
): 
  28     splitter 
= MySplitter(nb
, -1, log
) 
  31     #sty = wx.BORDER_SIMPLE 
  32     sty 
= wx
.BORDER_SUNKEN
 
  34     p1 
= wx
.Window(splitter
, style
=sty
) 
  35     p1
.SetBackgroundColour("pink") 
  36     wx
.StaticText(p1
, -1, "Panel One", (5,5)) 
  38     p2 
= wx
.Window(splitter
, style
=sty
) 
  39     p2
.SetBackgroundColour("sky blue") 
  40     wx
.StaticText(p2
, -1, "Panel Two", (5,5)) 
  42     splitter
.SetMinimumPaneSize(20) 
  43     splitter
.SplitVertically(p1
, p2
, -100) 
  48 #--------------------------------------------------------------------------- 
  52 This class manages up to two subwindows. The current view can be split 
  53 into two programmatically (perhaps from a menu command), and unsplit 
  54 either programmatically or via the wx.SplitterWindow user interface. 
  57 if __name__ 
== '__main__': 
  60     run
.main(['', os
.path
.basename(sys
.argv
[0])] + sys
.argv
[1:])