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 / list_store.pyo (.txt) < prev    next >
Python Compiled Bytecode  |  2010-05-11  |  5KB  |  88 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.6)
  3.  
  4. '''Tree View/List Store
  5.  
  6. The GtkListStore is used to store data in list form, to be used
  7. later on by a GtkTreeView to display it. This demo builds a
  8. simple GtkListStore and displays it. See the Stock Browser
  9. demo for a more advanced example.'''
  10. import gobject
  11. import gtk
  12. (COLUMN_FIXED, COLUMN_NUMBER, COLUMN_SEVERITY, COLUMN_DESCRIPTION) = range(4)
  13. data = ((False, 60482, 'Normal', 'scrollable notebooks and hidden tabs'), (False, 60620, 'Critical', 'gdk_window_clear_area(gdkwindow-win32.c) is not thread-safe'), (False, 50214, 'Major', 'Xft support does not clean up correctly'), (True, 52877, 'Major', 'GtkFileSelection needs a refresh method. '), (False, 56070, 'Normal', "Can't click button after setting in sensitive"), (True, 56355, 'Normal', 'GtkLabel - Not all changes propagate correctly'), (False, 50055, 'Normal', 'Rework width/height computations for TreeView'), (False, 58278, 'Normal', "gtk_dialog_set_response_sensitive() doesn't work"), (False, 55767, 'Normal', 'Getters for all setters'), (False, 56925, 'Normal', 'Gtkcalender size'), (False, 56221, 'Normal', 'Selectable label needs right-click copy menu'), (True, 50939, 'Normal', 'Add shift clicking to GtkTextView'), (False, 6112, 'Enhancement', 'netscape-like collapsable toolbars'), (False, 1, 'Normal', 'First bug :=)'))
  14.  
  15. class ListStoreDemo(gtk.Window):
  16.     
  17.     def __init__(self, parent = None):
  18.         gtk.Window.__init__(self)
  19.         
  20.         try:
  21.             self.set_screen(parent.get_screen())
  22.         except AttributeError:
  23.             self.connect('destroy', (lambda : gtk.main_quit()))
  24.  
  25.         self.set_title(self.__class__.__name__)
  26.         self.set_border_width(8)
  27.         self.set_default_size(300, 250)
  28.         vbox = gtk.VBox(False, 8)
  29.         self.add(vbox)
  30.         label = gtk.Label('This is the bug list (note: not based on real data, it would be nice to have a nice ODBC interface to bugzilla or so, though).')
  31.         vbox.pack_start(label, False, False)
  32.         sw = gtk.ScrolledWindow()
  33.         sw.set_shadow_type(gtk.SHADOW_ETCHED_IN)
  34.         sw.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
  35.         vbox.pack_start(sw)
  36.         model = self._ListStoreDemo__create_model()
  37.         treeview = gtk.TreeView(model)
  38.         treeview.set_rules_hint(True)
  39.         treeview.set_search_column(COLUMN_DESCRIPTION)
  40.         sw.add(treeview)
  41.         self._ListStoreDemo__add_columns(treeview)
  42.         self.show_all()
  43.  
  44.     
  45.     def __create_model(self):
  46.         lstore = gtk.ListStore(gobject.TYPE_BOOLEAN, gobject.TYPE_UINT, gobject.TYPE_STRING, gobject.TYPE_STRING)
  47.         for item in data:
  48.             iter = lstore.append()
  49.             lstore.set(iter, COLUMN_FIXED, item[COLUMN_FIXED], COLUMN_NUMBER, item[COLUMN_NUMBER], COLUMN_SEVERITY, item[COLUMN_SEVERITY], COLUMN_DESCRIPTION, item[COLUMN_DESCRIPTION])
  50.         
  51.         return lstore
  52.  
  53.     
  54.     def fixed_toggled(self, cell, path, model):
  55.         iter = model.get_iter((int(path),))
  56.         fixed = model.get_value(iter, COLUMN_FIXED)
  57.         fixed = not fixed
  58.         model.set(iter, COLUMN_FIXED, fixed)
  59.  
  60.     
  61.     def __add_columns(self, treeview):
  62.         model = treeview.get_model()
  63.         renderer = gtk.CellRendererToggle()
  64.         renderer.connect('toggled', self.fixed_toggled, model)
  65.         column = gtk.TreeViewColumn('Fixed', renderer, active = COLUMN_FIXED)
  66.         column.set_sizing(gtk.TREE_VIEW_COLUMN_FIXED)
  67.         column.set_fixed_width(50)
  68.         treeview.append_column(column)
  69.         column = gtk.TreeViewColumn('Bug Number', gtk.CellRendererText(), text = COLUMN_NUMBER)
  70.         column.set_sort_column_id(COLUMN_NUMBER)
  71.         treeview.append_column(column)
  72.         column = gtk.TreeViewColumn('Severity', gtk.CellRendererText(), text = COLUMN_SEVERITY)
  73.         column.set_sort_column_id(COLUMN_SEVERITY)
  74.         treeview.append_column(column)
  75.         column = gtk.TreeViewColumn('Description', gtk.CellRendererText(), text = COLUMN_DESCRIPTION)
  76.         column.set_sort_column_id(COLUMN_DESCRIPTION)
  77.         treeview.append_column(column)
  78.  
  79.  
  80.  
  81. def main():
  82.     ListStoreDemo()
  83.     gtk.main()
  84.  
  85. if __name__ == '__main__':
  86.     main()
  87.  
  88.