]> git.saurik.com Git - wxWidgets.git/blame - wxPython/demo/wxScrolledPanel.py
Fixed drive handling on OS/2.
[wxWidgets.git] / wxPython / demo / wxScrolledPanel.py
CommitLineData
1e4a197e
RD
1from wxPython.wx import *
2from wxPython.lib.scrolledpanel import wxScrolledPanel
3
4#----------------------------------------------------------------------
5
6text = "one two buckle my shoe three four shut the door five six pick up sticks seven eight lay them straight nine ten big fat hen"
7
8
9class TestPanel(wxScrolledPanel):
10 def __init__(self, parent, log):
11 self.log = log
12 wxScrolledPanel.__init__(self, parent, -1)
13
14 vbox = wxBoxSizer(wxVERTICAL)
15 desc = wxStaticText(self, -1,
16 "wxScrolledPanel extends wxScrolledWindow, adding all "
17 "the necessary bits to set up scroll handling for you.\n\n"
1fded56b
RD
18 "Here are three fixed size examples of its use. The "
19 "demo panel for this sample is also using it -- the \nwxStaticLine"
20 "below is intentionally made too long so a scrollbar will be "
21 "activated."
1e4a197e
RD
22 )
23 desc.SetForegroundColour("Blue")
24 vbox.Add(desc, 0, wxALIGN_LEFT|wxALL, 5)
1fded56b 25 vbox.Add(wxStaticLine(self, -1, size=(1024,-1)), 0, wxALL, 5)
fd3f2efe 26 vbox.Add((20,20))
1e4a197e
RD
27
28 words = text.split()
29
30 panel1 = wxScrolledPanel(self, -1, size=(120,300),
31 style = wxTAB_TRAVERSAL|wxSUNKEN_BORDER )
32 fgs1 = wxFlexGridSizer(cols=2, vgap=4, hgap=4)
33
34 for word in words:
35 label = wxStaticText(panel1, -1, word+":")
36 tc = wxTextCtrl(panel1, -1, word, size=(50,-1))
37 fgs1.Add(label, flag=wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL)
38 fgs1.Add(tc, flag=wxEXPAND|wxRIGHT, border=25)
39
40 panel1.SetSizer( fgs1 )
41 panel1.SetAutoLayout(1)
42 panel1.SetupScrolling( scroll_x=False )
43
44 panel2 = wxScrolledPanel(self, -1, size=(350, 40),
45 style = wxTAB_TRAVERSAL|wxSUNKEN_BORDER)
46 panel3 = wxScrolledPanel(self, -1, size=(200,100),
47 style = wxTAB_TRAVERSAL|wxSUNKEN_BORDER)
48
49 fgs2 = wxFlexGridSizer(cols=25, vgap=4, hgap=4)
50 fgs3 = wxFlexGridSizer(cols=5, vgap=4, hgap=4)
51
52 for i in range(len(words)):
53 word = words[i]
54 if i % 5 != 4:
55 label2 = wxStaticText(panel2, -1, word)
56 fgs2.Add(label2, flag=wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL)
57 label3 = wxStaticText(panel3, -1, word)
58 fgs3.Add(label3, flag=wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL)
59 else:
60 tc2 = wxTextCtrl(panel2, -1, word, size=(50,-1))
61 fgs2.Add(tc2, flag=wxLEFT, border=5)
62 tc3 = wxTextCtrl(panel3, -1, word )
63 fgs3.Add(tc3, flag=wxLEFT, border=5)
64
65 panel2.SetSizer( fgs2 )
66 panel2.SetAutoLayout(1)
67 panel2.SetupScrolling(scroll_y = False)
68
69 panel3.SetSizer( fgs3 )
70 panel3.SetAutoLayout(1)
71 panel3.SetupScrolling()
72
73 hbox = wxBoxSizer(wxHORIZONTAL)
fd3f2efe 74 hbox.Add((20,20))
1e4a197e 75 hbox.Add(panel1, 0)
fd3f2efe 76 hbox.Add((40, 10))
1e4a197e
RD
77
78 vbox2 = wxBoxSizer(wxVERTICAL)
79 vbox2.Add(panel2, 0)
fd3f2efe 80 vbox2.Add((20, 50))
1e4a197e
RD
81
82 vbox2.Add(panel3, 0)
fd3f2efe 83 vbox2.Add((20, 10))
1e4a197e
RD
84 hbox.Add(vbox2)
85
86 vbox.AddSizer(hbox, 0)
87 self.SetSizer(vbox)
88 self.SetAutoLayout(1)
89 self.SetupScrolling()
90
91
92#----------------------------------------------------------------------
93
94
95def runTest(frame, nb, log):
96 win = TestPanel(nb, log)
97 return win
98
99#----------------------------------------------------------------------
100
101
102
103overview = """<html><body>
104wxScrolledPanel fills a "hole" in the implementation of wxScrolledWindow,
105providing automatic scrollbar and scrolling behavior and the tab traversal
8b9a4190 106management that wxScrolledWindow lacks.
1e4a197e
RD
107</body></html>
108"""
109
110
111if __name__ == '__main__':
112 import sys,os
113 import run
114 run.main(['', os.path.basename(sys.argv[0])])