X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9b4e3f352b36dee39d7e451a6c9db90862f5563e..1e4a197e4c60e461b8068b0619692ea083e30b8b:/wxPython/demo/wxScrolledPanel.py?ds=inline diff --git a/wxPython/demo/wxScrolledPanel.py b/wxPython/demo/wxScrolledPanel.py new file mode 100644 index 0000000000..079f878dc6 --- /dev/null +++ b/wxPython/demo/wxScrolledPanel.py @@ -0,0 +1,112 @@ +from wxPython.wx import * +from wxPython.lib.scrolledpanel import wxScrolledPanel + +#---------------------------------------------------------------------- + +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" + + +class TestPanel(wxScrolledPanel): + def __init__(self, parent, log): + self.log = log + wxScrolledPanel.__init__(self, parent, -1) + + vbox = wxBoxSizer(wxVERTICAL) + desc = wxStaticText(self, -1, + "wxScrolledPanel extends wxScrolledWindow, adding all " + "the necessary bits to set up scroll handling for you.\n\n" + "Here are three fixed size examples of its use, and the " + "mail demo panel is also using it." + ) + desc.SetForegroundColour("Blue") + vbox.Add(desc, 0, wxALIGN_LEFT|wxALL, 5) + vbox.Add(wxStaticLine(self, -1), 0, wxEXPAND|wxALL, 5) + vbox.AddSpacer(20,20) + + words = text.split() + + panel1 = wxScrolledPanel(self, -1, size=(120,300), + style = wxTAB_TRAVERSAL|wxSUNKEN_BORDER ) + fgs1 = wxFlexGridSizer(cols=2, vgap=4, hgap=4) + + for word in words: + label = wxStaticText(panel1, -1, word+":") + tc = wxTextCtrl(panel1, -1, word, size=(50,-1)) + fgs1.Add(label, flag=wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL) + fgs1.Add(tc, flag=wxEXPAND|wxRIGHT, border=25) + + panel1.SetSizer( fgs1 ) + panel1.SetAutoLayout(1) + panel1.SetupScrolling( scroll_x=False ) + + panel2 = wxScrolledPanel(self, -1, size=(350, 40), + style = wxTAB_TRAVERSAL|wxSUNKEN_BORDER) + panel3 = wxScrolledPanel(self, -1, size=(200,100), + style = wxTAB_TRAVERSAL|wxSUNKEN_BORDER) + + fgs2 = wxFlexGridSizer(cols=25, vgap=4, hgap=4) + fgs3 = wxFlexGridSizer(cols=5, vgap=4, hgap=4) + + for i in range(len(words)): + word = words[i] + if i % 5 != 4: + label2 = wxStaticText(panel2, -1, word) + fgs2.Add(label2, flag=wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL) + label3 = wxStaticText(panel3, -1, word) + fgs3.Add(label3, flag=wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL) + else: + tc2 = wxTextCtrl(panel2, -1, word, size=(50,-1)) + fgs2.Add(tc2, flag=wxLEFT, border=5) + tc3 = wxTextCtrl(panel3, -1, word ) + fgs3.Add(tc3, flag=wxLEFT, border=5) + + panel2.SetSizer( fgs2 ) + panel2.SetAutoLayout(1) + panel2.SetupScrolling(scroll_y = False) + + panel3.SetSizer( fgs3 ) + panel3.SetAutoLayout(1) + panel3.SetupScrolling() + + hbox = wxBoxSizer(wxHORIZONTAL) + hbox.AddSpacer(20,20) + hbox.Add(panel1, 0) + hbox.AddSpacer(40, 10) + + vbox2 = wxBoxSizer(wxVERTICAL) + vbox2.Add(panel2, 0) + vbox2.AddSpacer(20, 50) + + vbox2.Add(panel3, 0) + vbox2.AddSpacer(20, 10) + hbox.Add(vbox2) + + vbox.AddSizer(hbox, 0) + self.SetSizer(vbox) + self.SetAutoLayout(1) + self.SetupScrolling() + + +#---------------------------------------------------------------------- + + +def runTest(frame, nb, log): + win = TestPanel(nb, log) + return win + +#---------------------------------------------------------------------- + + + +overview = """ +wxScrolledPanel fills a "hole" in the implementation of wxScrolledWindow, +providing automatic scrollbar and scrolling behavior and the tab traversal +mangement that wxScrolledWindow lacks. + +""" + + +if __name__ == '__main__': + import sys,os + import run + run.main(['', os.path.basename(sys.argv[0])])