home *** CD-ROM | disk | FTP | other *** search
/ tusportal.tus.k12.pa.us / tusportal.tus.k12.pa.us.tar / tusportal.tus.k12.pa.us / Wyse / latest-image.raw / 0.img / usr / lib / pygtk / 2.0 / demos / buttonbox.py < prev    next >
Text File  |  2010-05-11  |  3KB  |  89 lines

  1. #!/usr/bin/env python
  2. '''Button Box
  3.  
  4. This demo shows various button box configurations available.  It also
  5. uses stock buttons, and use of mnemonics for navigation.'''
  6.  
  7. import gtk
  8.  
  9. def create_bbox(horizontal=True, title=None, spacing=0,
  10.         layout=gtk.BUTTONBOX_SPREAD):
  11.     frame = gtk.Frame(title)
  12.  
  13.     if horizontal:
  14.         bbox = gtk.HButtonBox()
  15.     else:
  16.         bbox = gtk.VButtonBox()
  17.  
  18.     bbox.set_border_width(5)
  19.     bbox.set_layout(layout)
  20.     bbox.set_spacing(spacing)
  21.     frame.add(bbox)
  22.  
  23.     button = gtk.Button(stock='gtk-ok')
  24.     bbox.add(button)
  25.  
  26.     button = gtk.Button(stock='gtk-cancel')
  27.     bbox.add(button)
  28.  
  29.     button = gtk.Button(stock='gtk-help')
  30.     bbox.add(button)
  31.  
  32.     return frame
  33.  
  34. class ButtonBoxDemo(gtk.Window):
  35.     def __init__(self, parent=None):
  36.         # Create the toplevel window
  37.         gtk.Window.__init__(self)
  38.         try:
  39.             self.set_screen(parent.get_screen())
  40.         except AttributeError:
  41.             self.connect('destroy', lambda *w: gtk.main_quit())
  42.  
  43.         self.set_title(self.__class__.__name__)
  44.         self.set_border_width(10)
  45.  
  46.         main_vbox = gtk.VBox()
  47.         self.add(main_vbox)
  48.  
  49.         frame_horiz = gtk.Frame("Horizontal Button Boxes")
  50.         main_vbox.pack_start(frame_horiz, padding=10)
  51.  
  52.         vbox = gtk.VBox()
  53.         vbox.set_border_width(10)
  54.         frame_horiz.add(vbox)
  55.  
  56.         vbox.pack_start(create_bbox(True, "Spread", 40, gtk.BUTTONBOX_SPREAD),
  57.                 padding=0)
  58.         vbox.pack_start(create_bbox(True, "Edge", 40, gtk.BUTTONBOX_EDGE),
  59.                 padding=5)
  60.         vbox.pack_start(create_bbox(True, "Start", 40, gtk.BUTTONBOX_START),
  61.                 padding=5)
  62.         vbox.pack_start(create_bbox(True, "End", 40, gtk.BUTTONBOX_END),
  63.                 padding=5)
  64.  
  65.         frame_vert = gtk.Frame("Vertical Button Boxes")
  66.         main_vbox.pack_start(frame_vert, padding=10)
  67.  
  68.         hbox = gtk.HBox()
  69.         hbox.set_border_width(10)
  70.         frame_vert.add(hbox)
  71.  
  72.         hbox.pack_start(create_bbox(False, "Spread", 40, gtk.BUTTONBOX_SPREAD),
  73.                 padding=0)
  74.         hbox.pack_start(create_bbox(False, "Edge", 40, gtk.BUTTONBOX_EDGE),
  75.                 padding=5)
  76.         hbox.pack_start(create_bbox(False, "Start", 40, gtk.BUTTONBOX_START),
  77.                 padding=5)
  78.         hbox.pack_start(create_bbox(False, "End", 40, gtk.BUTTONBOX_END),
  79.                 padding=5)
  80.  
  81.         self.show_all()
  82.  
  83. def main():
  84.     ButtonBoxDemo()
  85.     gtk.main()
  86.  
  87. if __name__ == '__main__':
  88.     main()
  89.