]> git.saurik.com Git - wxWidgets.git/blob - wxPython/demo/Listbook.py
Don't decref if the interpreter is not initialized, (eg. it's in its
[wxWidgets.git] / wxPython / demo / Listbook.py
1
2 import wx
3
4 import ColorPanel
5 import images
6
7 colourList = [ "Aquamarine", "Black", "Blue", "Blue Violet", "Brown", "Cadet Blue",
8 "Coral", "Cornflower Blue", "Cyan", "Dark Grey", "Dark Green",
9 "Dark Olive Green",
10 ]
11
12 #----------------------------------------------------------------------------
13
14 class TestLB(wx.Listbook):
15 def __init__(self, parent, id, log):
16 wx.Listbook.__init__(self, parent, id, style=
17 wx.BK_DEFAULT
18 #wx.BK_TOP
19 #wx.BK_BOTTOM
20 #wx.BK_LEFT
21 #wx.BK_RIGHT
22 )
23 self.log = log
24
25 # make an image list using the LBXX images
26 il = wx.ImageList(32, 32)
27 for x in range(12):
28 f = getattr(images, 'getLB%02dBitmap' % (x+1))
29 bmp = f()
30 il.Add(bmp)
31 self.AssignImageList(il)
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:
42 st = wx.StaticText(win.win, -1,
43 "You can put nearly any type of window here,\n"
44 "and the list can be on any side of the Listbook",
45 wx.Point(10, 10))
46 first = False
47
48 self.Bind(wx.EVT_LISTBOOK_PAGE_CHANGED, self.OnPageChanged)
49 self.Bind(wx.EVT_LISTBOOK_PAGE_CHANGING, self.OnPageChanging)
50
51
52 def makeColorPanel(self, color):
53 p = wx.Panel(self, -1)
54 win = ColorPanel.ColoredPanel(p, color)
55 p.win = win
56 def OnCPSize(evt, win=win):
57 win.SetPosition((0,0))
58 win.SetSize(evt.GetSize())
59 p.Bind(wx.EVT_SIZE, OnCPSize)
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
79 def runTest(frame, nb, log):
80 testWin = TestLB(nb, -1, log)
81 return testWin
82
83 #----------------------------------------------------------------------------
84
85
86 overview = """\
87 <html><body>
88 <h2>wx.Listbook</h2>
89 <p>
90 This class is a control similar to a notebook control, but with a
91 wx.ListCtrl instead of a set of tabs.
92
93 """
94
95
96
97 if __name__ == '__main__':
98 import sys,os
99 import run
100 run.main(['', os.path.basename(sys.argv[0])] + sys.argv[1:])
101
102
103