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
)
63 # This is a workaround for a sizing bug on Mac...
64 wx
.FutureCall(100, self
.AdjustSize
)
67 print self
.GetTreeCtrl().GetBestSize()
68 self
.GetTreeCtrl().InvalidateBestSize()
70 print self
.GetTreeCtrl().GetBestSize()
73 def makeColorPanel(self
, color
):
74 p
= wx
.Panel(self
, -1)
75 win
= ColorPanel
.ColoredPanel(p
, color
)
77 def OnCPSize(evt
, win
=win
):
78 win
.SetPosition((0,0))
79 win
.SetSize(evt
.GetSize())
80 p
.Bind(wx
.EVT_SIZE
, OnCPSize
)
84 def OnPageChanged(self
, event
):
85 old
= event
.GetOldSelection()
86 new
= event
.GetSelection()
87 sel
= self
.GetSelection()
88 self
.log
.write('OnPageChanged, old:%d, new:%d, sel:%d\n' % (old
, new
, sel
))
91 def OnPageChanging(self
, event
):
92 old
= event
.GetOldSelection()
93 new
= event
.GetSelection()
94 sel
= self
.GetSelection()
95 self
.log
.write('OnPageChanging, old:%d, new:%d, sel:%d\n' % (old
, new
, sel
))
98 #----------------------------------------------------------------------------
100 def runTest(frame
, nb
, log
):
101 testWin
= TestTB(nb
, -1, log
)
104 #----------------------------------------------------------------------------
111 This class is a control similar to a notebook control, but with a
112 wx.TreeCtrl instead of a set of tabs.
118 if __name__
== '__main__':
121 run
.main(['', os
.path
.basename(sys
.argv
[0])] + sys
.argv
[1:])