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
.Toolbook
): 
  24     def __init__(self
, parent
, id, log
): 
  25         wx
.Toolbook
.__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 toolbar can be on either side of the Toolbook", 
  55         self
.Bind(wx
.EVT_TOOLBOOK_PAGE_CHANGED
, self
.OnPageChanged
) 
  56         self
.Bind(wx
.EVT_TOOLBOOK_PAGE_CHANGING
, self
.OnPageChanging
) 
  59     def makeColorPanel(self
, color
): 
  60         p 
= wx
.Panel(self
, -1) 
  61         win 
= ColorPanel
.ColoredPanel(p
, color
) 
  63         def OnCPSize(evt
, win
=win
): 
  64             win
.SetPosition((0,0)) 
  65             win
.SetSize(evt
.GetSize()) 
  66         p
.Bind(wx
.EVT_SIZE
, OnCPSize
) 
  70     def OnPageChanged(self
, event
): 
  71         old 
= event
.GetOldSelection() 
  72         new 
= event
.GetSelection() 
  73         sel 
= self
.GetSelection() 
  74         self
.log
.write('OnPageChanged,  old:%d, new:%d, sel:%d\n' % (old
, new
, sel
)) 
  77     def OnPageChanging(self
, event
): 
  78         old 
= event
.GetOldSelection() 
  79         new 
= event
.GetSelection() 
  80         sel 
= self
.GetSelection() 
  81         self
.log
.write('OnPageChanging, old:%d, new:%d, sel:%d\n' % (old
, new
, sel
)) 
  84 #---------------------------------------------------------------------------- 
  86 def runTest(frame
, nb
, log
): 
  87     testWin 
= TestTB(nb
, -1, log
) 
  90 #---------------------------------------------------------------------------- 
  97 This class is a control similar to a notebook control, but with a 
  98 wx.Toolbar instead of a set of tabs. 
 104 if __name__ 
== '__main__': 
 107     run
.main(['', os
.path
.basename(sys
.argv
[0])] + sys
.argv
[1:])