]> git.saurik.com Git - wxWidgets.git/blame - wxPython/demo/Listbook.py
The great wxVScrolledWindow refactoring: allow using it both horizontal and
[wxWidgets.git] / wxPython / demo / Listbook.py
CommitLineData
2f0f3b0f 1
8fa876ca 2import wx
2f0f3b0f 3
372bde9b 4import ColorPanel
95bfd958 5import images
372bde9b 6
fbd5dd1d
RD
7colourList = [ "Aquamarine", "Black", "Blue", "Blue Violet", "Brown", "Cadet Blue",
8 "Coral", "Cornflower Blue", "Cyan", "Dark Grey", "Dark Green",
6c75a4cf 9 "Dark Olive Green",
fbd5dd1d 10 ]
2f0f3b0f
RD
11
12#----------------------------------------------------------------------------
13
8fa876ca 14class TestLB(wx.Listbook):
2f0f3b0f 15 def __init__(self, parent, id, log):
8fa876ca 16 wx.Listbook.__init__(self, parent, id, style=
6aabc8da
RD
17 wx.BK_DEFAULT
18 #wx.BK_TOP
19 #wx.BK_BOTTOM
20 #wx.BK_LEFT
21 #wx.BK_RIGHT
2f0f3b0f
RD
22 )
23 self.log = log
24
6c75a4cf 25 # make an image list using the LBXX images
372bde9b 26 il = wx.ImageList(32, 32)
6c75a4cf
RD
27 for x in range(12):
28 f = getattr(images, 'getLB%02dBitmap' % (x+1))
fbd5dd1d
RD
29 bmp = f()
30 il.Add(bmp)
2f0f3b0f 31 self.AssignImageList(il)
fbd5dd1d
RD
32
33 # Now make a bunch of panels for the list book
34 first = True
35 imID = 0
36 for colour in colourList:
37 win = self.makeColorPanel(colour)
38 self.AddPage(win, colour, imageId=imID)
39 imID += 1
40 if imID == il.GetImageCount(): imID = 0
41 if first:
372bde9b 42 st = wx.StaticText(win.win, -1,
fbd5dd1d
RD
43 "You can put nearly any type of window here,\n"
44 "and the list can be on any side of the Listbook",
372bde9b 45 wx.Point(10, 10))
fbd5dd1d 46 first = False
2f0f3b0f 47
f12166fc
RD
48 self.Bind(wx.EVT_LISTBOOK_PAGE_CHANGED, self.OnPageChanged)
49 self.Bind(wx.EVT_LISTBOOK_PAGE_CHANGING, self.OnPageChanging)
2f0f3b0f
RD
50
51
52 def makeColorPanel(self, color):
8fa876ca 53 p = wx.Panel(self, -1)
2f0f3b0f
RD
54 win = ColorPanel.ColoredPanel(p, color)
55 p.win = win
56 def OnCPSize(evt, win=win):
e79c4165 57 win.SetPosition((0,0))
2f0f3b0f 58 win.SetSize(evt.GetSize())
8fa876ca 59 p.Bind(wx.EVT_SIZE, OnCPSize)
2f0f3b0f
RD
60 return p
61
62
63 def OnPageChanged(self, event):
64 old = event.GetOldSelection()
65 new = event.GetSelection()
66 sel = self.GetSelection()
67 self.log.write('OnPageChanged, old:%d, new:%d, sel:%d\n' % (old, new, sel))
68 event.Skip()
69
70 def OnPageChanging(self, event):
71 old = event.GetOldSelection()
72 new = event.GetSelection()
73 sel = self.GetSelection()
74 self.log.write('OnPageChanging, old:%d, new:%d, sel:%d\n' % (old, new, sel))
75 event.Skip()
76
77#----------------------------------------------------------------------------
78
79def runTest(frame, nb, log):
80 testWin = TestLB(nb, -1, log)
81 return testWin
82
83#----------------------------------------------------------------------------
84
85
2f0f3b0f
RD
86overview = """\
87<html><body>
95bfd958 88<h2>wx.Listbook</h2>
2f0f3b0f
RD
89<p>
90This class is a control similar to a notebook control, but with a
95bfd958 91wx.ListCtrl instead of a set of tabs.
2f0f3b0f
RD
92
93"""
94
95
96
97if __name__ == '__main__':
98 import sys,os
99 import run
8eca4fef 100 run.main(['', os.path.basename(sys.argv[0])] + sys.argv[1:])
2f0f3b0f
RD
101
102
f12166fc 103