7 colourList 
= [ "Aquamarine", "Grey", "Blue", "Blue Violet", "Brown", "Cadet Blue", 
   8                "Coral", "Wheat", "Cyan", "Dark Grey", "Dark Green", 
  12 #---------------------------------------------------------------------------- 
  14 def getNextImageID(count
): 
  23 class TestTB(wx
.Treebook
): 
  24     def __init__(self
, parent
, id, log
): 
  25         wx
.Treebook
.__init
__(self
, parent
, id, style
= 
  34         # make an image list using the LBXX images 
  35         il 
= wx
.ImageList(32, 32) 
  37             f 
= getattr(images
, 'getLB%02dBitmap' % (x
+1)) 
  40         self
.AssignImageList(il
) 
  41         imageIdGenerator 
= getNextImageID(il
.GetImageCount()) 
  43         # Now make a bunch of panels for the list book 
  45         for colour 
in colourList
: 
  46             win 
= self
.makeColorPanel(colour
) 
  47             self
.AddPage(win
, colour
, imageId
=imageIdGenerator
.next()) 
  49                 st 
= wx
.StaticText(win
.win
, -1, 
  50                           "You can put nearly any type of window here,\n" 
  51                           "and the wx.TreeCtrl can be on either side of the\n" 
  56             win 
= self
.makeColorPanel(colour
) 
  57             st 
= wx
.StaticText(win
.win
, -1, "this is a sub-page", (10,10)) 
  58             self
.AddSubPage(win
, 'a sub-page', imageId
=imageIdGenerator
.next()) 
  60         self
.Bind(wx
.EVT_TREEBOOK_PAGE_CHANGED
, self
.OnPageChanged
) 
  61         self
.Bind(wx
.EVT_TREEBOOK_PAGE_CHANGING
, self
.OnPageChanging
) 
  64     def makeColorPanel(self
, color
): 
  65         p 
= wx
.Panel(self
, -1) 
  66         win 
= ColorPanel
.ColoredPanel(p
, color
) 
  68         def OnCPSize(evt
, win
=win
): 
  69             win
.SetPosition((0,0)) 
  70             win
.SetSize(evt
.GetSize()) 
  71         p
.Bind(wx
.EVT_SIZE
, OnCPSize
) 
  75     def OnPageChanged(self
, event
): 
  76         old 
= event
.GetOldSelection() 
  77         new 
= event
.GetSelection() 
  78         sel 
= self
.GetSelection() 
  79         self
.log
.write('OnPageChanged,  old:%d, new:%d, sel:%d\n' % (old
, new
, sel
)) 
  82     def OnPageChanging(self
, event
): 
  83         old 
= event
.GetOldSelection() 
  84         new 
= event
.GetSelection() 
  85         sel 
= self
.GetSelection() 
  86         self
.log
.write('OnPageChanging, old:%d, new:%d, sel:%d\n' % (old
, new
, sel
)) 
  89 #---------------------------------------------------------------------------- 
  91 def runTest(frame
, nb
, log
): 
  92     testWin 
= TestTB(nb
, -1, log
) 
  95 #---------------------------------------------------------------------------- 
 102 This class is a control similar to a notebook control, but with a 
 103 wx.TreeCtrl instead of a set of tabs. 
 109 if __name__ 
== '__main__': 
 112     run
.main(['', os
.path
.basename(sys
.argv
[0])] + sys
.argv
[1:])