3 import wx
.lib
.scrolledpanel
as scrolled
5 #----------------------------------------------------------------------
7 text
= "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"
10 class TestPanel(scrolled
.ScrolledPanel
):
11 def __init__(self
, parent
, log
):
13 scrolled
.ScrolledPanel
.__init
__(self
, parent
, -1)
15 vbox
= wx
.BoxSizer(wx
.VERTICAL
)
16 desc
= wx
.StaticText(self
, -1,
17 "ScrolledPanel extends wx.ScrolledWindow, adding all "
18 "the necessary bits to set up scroll handling for you.\n\n"
19 "Here are three fixed size examples of its use. The "
20 "demo panel for this sample is also using it -- the \nwxStaticLine "
21 "below is intentionally made too long so a scrollbar will be "
24 desc
.SetForegroundColour("Blue")
25 vbox
.Add(desc
, 0, wx
.ALIGN_LEFT|wx
.ALL
, 5)
26 vbox
.Add(wx
.StaticLine(self
, -1, size
=(1024,-1)), 0, wx
.ALL
, 5)
31 panel1
= scrolled
.ScrolledPanel(self
, -1, size
=(140, 300),
32 style
= wx
.TAB_TRAVERSAL|wx
.SUNKEN_BORDER
, name
="panel1" )
33 fgs1
= wx
.FlexGridSizer(cols
=2, vgap
=4, hgap
=4)
36 label
= wx
.StaticText(panel1
, -1, word
+":")
38 # A test for scrolling with a too big control
40 # tc = wx.TextCtrl(panel1, -1, word, size=(150,-1))
42 # tc = wx.TextCtrl(panel1, -1, word, size=(50,-1))
44 tc
= wx
.TextCtrl(panel1
, -1, word
, size
=(50,-1))
46 fgs1
.Add(label
, flag
=wx
.ALIGN_RIGHT | wx
.ALIGN_CENTER_VERTICAL | wx
.LEFT
, border
=10)
47 fgs1
.Add(tc
, flag
=wx
.RIGHT
, border
=10)
49 panel1
.SetSizer( fgs1
)
50 panel1
.SetAutoLayout(1)
51 panel1
.SetupScrolling()
53 panel2
= scrolled
.ScrolledPanel(self
, -1, size
=(350, 50),
54 style
= wx
.TAB_TRAVERSAL|wx
.SUNKEN_BORDER
, name
="panel2")
55 panel3
= scrolled
.ScrolledPanel(self
, -1, size
=(200,100),
56 style
= wx
.TAB_TRAVERSAL|wx
.SUNKEN_BORDER
, name
="panel3")
58 fgs2
= wx
.FlexGridSizer(cols
=25, vgap
=4, hgap
=4)
59 fgs3
= wx
.FlexGridSizer(cols
=5, vgap
=4, hgap
=4)
61 for i
in range(len(words
)):
64 label2
= wx
.StaticText(panel2
, -1, word
)
65 fgs2
.Add(label2
, flag
=wx
.ALIGN_LEFT | wx
.ALIGN_CENTER_VERTICAL
)
66 label3
= wx
.StaticText(panel3
, -1, word
)
67 fgs3
.Add(label3
, flag
=wx
.ALIGN_LEFT | wx
.ALIGN_CENTER_VERTICAL
)
69 tc2
= wx
.TextCtrl(panel2
, -1, word
, size
=(50,-1))
70 fgs2
.Add(tc2
, flag
=wx
.LEFT
, border
=5)
71 tc3
= wx
.TextCtrl(panel3
, -1, word
)
72 fgs3
.Add(tc3
, flag
=wx
.LEFT
, border
=5)
74 panel2
.SetSizer( fgs2
)
75 panel2
.SetAutoLayout(1)
76 panel2
.SetupScrolling(scroll_y
= False)
78 panel3
.SetSizer( fgs3
)
79 panel3
.SetAutoLayout(1)
80 panel3
.SetupScrolling()
82 hbox
= wx
.BoxSizer(wx
.HORIZONTAL
)
84 hbox
.Add(panel1
, 0, wx
.FIXED_MINSIZE
)
87 vbox2
= wx
.BoxSizer(wx
.VERTICAL
)
88 vbox2
.Add(panel2
, 0, wx
.FIXED_MINSIZE
)
91 vbox2
.Add(panel3
, 0, wx
.FIXED_MINSIZE
)
101 #----------------------------------------------------------------------
104 def runTest(frame
, nb
, log
):
105 win
= TestPanel(nb
, log
)
108 #----------------------------------------------------------------------
112 overview
= """<html><body>
113 ScrolledPanel fills a "hole" in the implementation of wx.ScrolledWindow,
114 providing automatic scrollbar and scrolling behavior and the tab traversal
115 mangement that wx.ScrolledWindow lacks.
120 if __name__
== '__main__':
123 run
.main(['', os
.path
.basename(sys
.argv
[0])] + sys
.argv
[1:])