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:])