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 / menu.py < prev    next >
Text File  |  2010-05-11  |  2KB  |  89 lines

  1. #!/usr/bin/env python
  2. '''Menu
  3.  
  4. This example demonstrates the use of various menu types in gtk.  It
  5. demonstrates the new submenu navigation and scrolling menu features of
  6. gtk 2.0.'''
  7.  
  8. import gtk
  9.  
  10. def create_menu(depth, length=5):
  11.     if depth < 1:
  12.         return None
  13.  
  14.     menu = gtk.Menu()
  15.     group= None
  16.  
  17.     for i in range(length):
  18.         menuitem = gtk.RadioMenuItem(group, 'item %2d - %d' % (depth, i))
  19.         group = menuitem
  20.         menu.add(menuitem)
  21.         menuitem.show()
  22.         if depth > 1:
  23.             submenu = create_menu(depth - 1)
  24.             menuitem.set_submenu(submenu)
  25.     return menu
  26.  
  27. class MenuDemo(gtk.Window):
  28.     def __init__(self, parent=None):
  29.         # Create the toplevel window
  30.         gtk.Window.__init__(self)
  31.         try:
  32.             self.set_screen(parent.get_screen())
  33.         except AttributeError:
  34.             self.connect('destroy', lambda *w: gtk.main_quit())
  35.  
  36.         self.set_title(self.__class__.__name__)
  37.  
  38.         vbox = gtk.VBox()
  39.         self.add(vbox)
  40.  
  41.         menubar = gtk.MenuBar()
  42.         vbox.pack_start(menubar, expand=False)
  43.  
  44.         menuitem = gtk.MenuItem('test\nline2')
  45.         menuitem.set_submenu(create_menu(2, 50))
  46.         menubar.add(menuitem)
  47.  
  48.         menuitem = gtk.MenuItem('foo')
  49.         menuitem.set_submenu(create_menu(2))
  50.         menubar.add(menuitem)
  51.  
  52.         menuitem = gtk.MenuItem('bar')
  53.         menuitem.set_submenu(create_menu(2))
  54.         menuitem.set_right_justified(True)
  55.         menubar.add(menuitem)
  56.  
  57.         vbox2 = gtk.VBox(spacing=10)
  58.         vbox2.set_border_width(10)
  59.         vbox.pack_start(vbox2)
  60.  
  61.         combo_box = gtk.combo_box_new_text()
  62.         combo_box.set_wrap_width(2)
  63.         for i in range(50):
  64.             combo_box.append_text('item - %d' % i)
  65.         combo_box.set_active(0)
  66.         vbox2.pack_start(combo_box)
  67.  
  68.         separator = gtk.HSeparator()
  69.         vbox.pack_start(separator, expand=False)
  70.  
  71.         vbox2 = gtk.VBox(spacing=10)
  72.         vbox2.set_border_width(10)
  73.         vbox.pack_start(vbox2, expand=False)
  74.  
  75.         button = gtk.Button('close')
  76.         button.connect('clicked', lambda button, w=self: w.destroy())
  77.         vbox2.pack_start(button)
  78.         button.set_flags(gtk.CAN_DEFAULT)
  79.         button.grab_default()
  80.  
  81.         self.show_all()
  82.  
  83. def main():
  84.     MenuDemo()
  85.     gtk.main()
  86.  
  87. if __name__ == '__main__':
  88.     main()
  89.