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 / tree_store.pyc (.txt) < prev    next >
Python Compiled Bytecode  |  2010-05-11  |  8KB  |  576 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. """Tree View/Tree Store
  5.  
  6. The GtkTreeStore is used to store data in tree form, to be used
  7. later on by a GtkTreeView to display it. This demo builds a simple
  8. GtkTreeStore and displays it. If you're new to the GtkTreeView widgets
  9. and associates, look into the GtkListStore example first."""
  10. import gobject
  11. import gtk
  12. (HOLIDAY_NAME_COLUMN, ALEX_COLUMN, HAVOC_COLUMN, TIM_COLUMN, OWEN_COLUMN, DAVE_COLUMN, VISIBLE_COLUMN, WORLD_COLUMN, NUM_COLUMNS) = range(9)
  13. january = [
  14.     [
  15.         'New Years Day',
  16.         True,
  17.         True,
  18.         True,
  19.         True,
  20.         False,
  21.         True],
  22.     [
  23.         'Presidential Inauguration',
  24.         False,
  25.         True,
  26.         False,
  27.         True,
  28.         False,
  29.         False],
  30.     [
  31.         'Martin Luther King Jr. day',
  32.         False,
  33.         True,
  34.         False,
  35.         True,
  36.         False,
  37.         False]]
  38. february = [
  39.     [
  40.         "Presidents' Day",
  41.         False,
  42.         True,
  43.         False,
  44.         True,
  45.         False,
  46.         False],
  47.     [
  48.         'Groundhog Day',
  49.         False,
  50.         False,
  51.         False,
  52.         False,
  53.         False,
  54.         False],
  55.     [
  56.         "Valentine's Day",
  57.         False,
  58.         False,
  59.         False,
  60.         False,
  61.         True,
  62.         True]]
  63. march = [
  64.     [
  65.         'National Tree Planting Day',
  66.         False,
  67.         False,
  68.         False,
  69.         False,
  70.         False,
  71.         False],
  72.     [
  73.         "St Patrick's Day",
  74.         False,
  75.         False,
  76.         False,
  77.         False,
  78.         False,
  79.         True]]
  80. april = [
  81.     [
  82.         "April Fools' Day",
  83.         False,
  84.         False,
  85.         False,
  86.         False,
  87.         False,
  88.         True],
  89.     [
  90.         'Army Day',
  91.         False,
  92.         False,
  93.         False,
  94.         False,
  95.         False,
  96.         False],
  97.     [
  98.         'Earth Day',
  99.         False,
  100.         False,
  101.         False,
  102.         False,
  103.         False,
  104.         True],
  105.     [
  106.         "Administrative Professionals' Day",
  107.         False,
  108.         False,
  109.         False,
  110.         False,
  111.         False,
  112.         False]]
  113. may = [
  114.     [
  115.         "Nurses' Day",
  116.         False,
  117.         False,
  118.         False,
  119.         False,
  120.         False,
  121.         False],
  122.     [
  123.         'National Day of Prayer',
  124.         False,
  125.         False,
  126.         False,
  127.         False,
  128.         False,
  129.         False],
  130.     [
  131.         "Mothers' Day",
  132.         False,
  133.         False,
  134.         False,
  135.         False,
  136.         False,
  137.         True],
  138.     [
  139.         'Armed Forces Day',
  140.         False,
  141.         False,
  142.         False,
  143.         False,
  144.         False,
  145.         False],
  146.     [
  147.         'Memorial Day',
  148.         True,
  149.         True,
  150.         True,
  151.         True,
  152.         False,
  153.         True]]
  154. june = [
  155.     [
  156.         "June Fathers' Day",
  157.         False,
  158.         False,
  159.         False,
  160.         False,
  161.         False,
  162.         True],
  163.     [
  164.         'Juneteenth(Liberation of Slaves)',
  165.         False,
  166.         False,
  167.         False,
  168.         False,
  169.         False,
  170.         False],
  171.     [
  172.         'Flag Day',
  173.         False,
  174.         True,
  175.         False,
  176.         True,
  177.         False,
  178.         False]]
  179. july = [
  180.     [
  181.         "Parents' Day",
  182.         False,
  183.         False,
  184.         False,
  185.         False,
  186.         False,
  187.         True],
  188.     [
  189.         'Independence Day',
  190.         False,
  191.         True,
  192.         False,
  193.         True,
  194.         False,
  195.         False]]
  196. august = [
  197.     [
  198.         'Air Force Day',
  199.         False,
  200.         False,
  201.         False,
  202.         False,
  203.         False,
  204.         False],
  205.     [
  206.         'Coast Guard Day',
  207.         False,
  208.         False,
  209.         False,
  210.         False,
  211.         False,
  212.         False],
  213.     [
  214.         'Friendship Day',
  215.         False,
  216.         False,
  217.         False,
  218.         False,
  219.         False,
  220.         False]]
  221. september = [
  222.     [
  223.         "Grandparents' Day",
  224.         False,
  225.         False,
  226.         False,
  227.         False,
  228.         False,
  229.         True],
  230.     [
  231.         'Citizenship Day or Constitution Day',
  232.         False,
  233.         False,
  234.         False,
  235.         False,
  236.         False,
  237.         False],
  238.     [
  239.         'Labor Day',
  240.         True,
  241.         True,
  242.         True,
  243.         True,
  244.         False,
  245.         True]]
  246. october = [
  247.     [
  248.         "National Children's Day",
  249.         False,
  250.         False,
  251.         False,
  252.         False,
  253.         False,
  254.         False],
  255.     [
  256.         "Bosses' Day",
  257.         False,
  258.         False,
  259.         False,
  260.         False,
  261.         False,
  262.         False],
  263.     [
  264.         'Sweetest Day',
  265.         False,
  266.         False,
  267.         False,
  268.         False,
  269.         False,
  270.         False],
  271.     [
  272.         "Mother-in-Law's Day",
  273.         False,
  274.         False,
  275.         False,
  276.         False,
  277.         False,
  278.         False],
  279.     [
  280.         'Navy Day',
  281.         False,
  282.         False,
  283.         False,
  284.         False,
  285.         False,
  286.         False],
  287.     [
  288.         'Columbus Day',
  289.         False,
  290.         True,
  291.         False,
  292.         True,
  293.         False,
  294.         False],
  295.     [
  296.         'Halloween',
  297.         False,
  298.         False,
  299.         False,
  300.         False,
  301.         False,
  302.         True]]
  303. november = [
  304.     [
  305.         'Marine Corps Day',
  306.         False,
  307.         False,
  308.         False,
  309.         False,
  310.         False,
  311.         False],
  312.     [
  313.         "Veterans' Day",
  314.         True,
  315.         True,
  316.         True,
  317.         True,
  318.         False,
  319.         True],
  320.     [
  321.         'Thanksgiving',
  322.         False,
  323.         True,
  324.         False,
  325.         True,
  326.         False,
  327.         False]]
  328. december = [
  329.     [
  330.         'Pearl Harbor Remembrance Day',
  331.         False,
  332.         False,
  333.         False,
  334.         False,
  335.         False,
  336.         False],
  337.     [
  338.         'Christmas',
  339.         True,
  340.         True,
  341.         True,
  342.         True,
  343.         False,
  344.         True],
  345.     [
  346.         'Kwanzaa',
  347.         False,
  348.         False,
  349.         False,
  350.         False,
  351.         False,
  352.         False]]
  353. toplevel = [
  354.     [
  355.         'January',
  356.         False,
  357.         False,
  358.         False,
  359.         False,
  360.         False,
  361.         False,
  362.         january],
  363.     [
  364.         'February',
  365.         False,
  366.         False,
  367.         False,
  368.         False,
  369.         False,
  370.         False,
  371.         february],
  372.     [
  373.         'March',
  374.         False,
  375.         False,
  376.         False,
  377.         False,
  378.         False,
  379.         False,
  380.         march],
  381.     [
  382.         'April',
  383.         False,
  384.         False,
  385.         False,
  386.         False,
  387.         False,
  388.         False,
  389.         april],
  390.     [
  391.         'May',
  392.         False,
  393.         False,
  394.         False,
  395.         False,
  396.         False,
  397.         False,
  398.         may],
  399.     [
  400.         'June',
  401.         False,
  402.         False,
  403.         False,
  404.         False,
  405.         False,
  406.         False,
  407.         june],
  408.     [
  409.         'July',
  410.         False,
  411.         False,
  412.         False,
  413.         False,
  414.         False,
  415.         False,
  416.         july],
  417.     [
  418.         'August',
  419.         False,
  420.         False,
  421.         False,
  422.         False,
  423.         False,
  424.         False,
  425.         august],
  426.     [
  427.         'September',
  428.         False,
  429.         False,
  430.         False,
  431.         False,
  432.         False,
  433.         False,
  434.         september],
  435.     [
  436.         'October',
  437.         False,
  438.         False,
  439.         False,
  440.         False,
  441.         False,
  442.         False,
  443.         october],
  444.     [
  445.         'November',
  446.         False,
  447.         False,
  448.         False,
  449.         False,
  450.         False,
  451.         False,
  452.         november],
  453.     [
  454.         'December',
  455.         False,
  456.         False,
  457.         False,
  458.         False,
  459.         False,
  460.         False,
  461.         december]]
  462.  
  463. class TreeStoreDemo(gtk.Window):
  464.     
  465.     def __init__(self, parent = None):
  466.         gtk.Window.__init__(self)
  467.         
  468.         try:
  469.             self.set_screen(parent.get_screen())
  470.         except AttributeError:
  471.             self.connect('destroy', (lambda : gtk.main_quit()))
  472.  
  473.         self.set_title(self.__class__.__name__)
  474.         self.set_default_size(650, 400)
  475.         self.set_border_width(8)
  476.         vbox = gtk.VBox(False, 8)
  477.         self.add(vbox)
  478.         label = gtk.Label("Jonathan's Holiday Card Planning Sheet")
  479.         vbox.pack_start(label, False, False)
  480.         sw = gtk.ScrolledWindow()
  481.         sw.set_shadow_type(gtk.SHADOW_ETCHED_IN)
  482.         sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
  483.         vbox.pack_start(sw)
  484.         model = self._TreeStoreDemo__create_model()
  485.         treeview = gtk.TreeView(model)
  486.         treeview.set_rules_hint(True)
  487.         self._TreeStoreDemo__add_columns(treeview)
  488.         sw.add(treeview)
  489.         treeview.connect('realize', (lambda tv: tv.expand_all()))
  490.         self.show_all()
  491.  
  492.     
  493.     def __create_model(self):
  494.         model = gtk.TreeStore(gobject.TYPE_STRING, gobject.TYPE_BOOLEAN, gobject.TYPE_BOOLEAN, gobject.TYPE_BOOLEAN, gobject.TYPE_BOOLEAN, gobject.TYPE_BOOLEAN, gobject.TYPE_BOOLEAN, gobject.TYPE_BOOLEAN)
  495.         for month in toplevel:
  496.             iter = model.append(None)
  497.             model.set(iter, HOLIDAY_NAME_COLUMN, month[HOLIDAY_NAME_COLUMN], ALEX_COLUMN, False, HAVOC_COLUMN, False, TIM_COLUMN, False, OWEN_COLUMN, False, DAVE_COLUMN, False, VISIBLE_COLUMN, False, WORLD_COLUMN, False)
  498.             for holiday in month[-1]:
  499.                 child_iter = model.append(iter)
  500.                 model.set(child_iter, HOLIDAY_NAME_COLUMN, holiday[HOLIDAY_NAME_COLUMN], ALEX_COLUMN, holiday[ALEX_COLUMN], HAVOC_COLUMN, holiday[HAVOC_COLUMN], TIM_COLUMN, holiday[TIM_COLUMN], OWEN_COLUMN, holiday[OWEN_COLUMN], DAVE_COLUMN, holiday[DAVE_COLUMN], VISIBLE_COLUMN, True, WORLD_COLUMN, holiday[WORLD_COLUMN - 1])
  501.             
  502.         
  503.         return model
  504.  
  505.     
  506.     def on_item_toggled(self, cell, path_str, model):
  507.         column = cell.get_data('column')
  508.         iter = model.get_iter_from_string(path_str)
  509.         toggle_item = model.get_value(iter, column)
  510.         toggle_item = not toggle_item
  511.         model.set(iter, column, toggle_item)
  512.  
  513.     
  514.     def __add_columns(self, treeview):
  515.         model = treeview.get_model()
  516.         renderer = gtk.CellRendererText()
  517.         renderer.set_property('xalign', 0)
  518.         column = gtk.TreeViewColumn('Holiday', renderer, text = HOLIDAY_NAME_COLUMN)
  519.         column.set_clickable(True)
  520.         treeview.append_column(column)
  521.         renderer = gtk.CellRendererToggle()
  522.         renderer.set_property('xalign', 0)
  523.         renderer.set_data('column', ALEX_COLUMN)
  524.         renderer.connect('toggled', self.on_item_toggled, model)
  525.         column = gtk.TreeViewColumn('Alex', renderer, active = ALEX_COLUMN, visible = VISIBLE_COLUMN, activatable = WORLD_COLUMN)
  526.         column.set_sizing(gtk.TREE_VIEW_COLUMN_FIXED)
  527.         column.set_fixed_width(50)
  528.         column.set_clickable(True)
  529.         treeview.append_column(column)
  530.         renderer = gtk.CellRendererToggle()
  531.         renderer.set_property('xalign', 0)
  532.         renderer.set_data('column', HAVOC_COLUMN)
  533.         renderer.connect('toggled', self.on_item_toggled, model)
  534.         column = gtk.TreeViewColumn('Havoc', renderer, active = HAVOC_COLUMN, visible = VISIBLE_COLUMN)
  535.         column.set_sizing(gtk.TREE_VIEW_COLUMN_FIXED)
  536.         column.set_fixed_width(50)
  537.         column.set_clickable(True)
  538.         treeview.append_column(column)
  539.         renderer = gtk.CellRendererToggle()
  540.         renderer.set_property('xalign', 0)
  541.         renderer.set_data('column', TIM_COLUMN)
  542.         renderer.connect('toggled', self.on_item_toggled, model)
  543.         column = gtk.TreeViewColumn('Tim', renderer, active = TIM_COLUMN, visible = VISIBLE_COLUMN, activatable = WORLD_COLUMN)
  544.         column.set_sizing(gtk.TREE_VIEW_COLUMN_FIXED)
  545.         column.set_fixed_width(50)
  546.         column.set_clickable(True)
  547.         treeview.append_column(column)
  548.         renderer = gtk.CellRendererToggle()
  549.         renderer.set_property('xalign', 0)
  550.         renderer.set_data('column', OWEN_COLUMN)
  551.         renderer.connect('toggled', self.on_item_toggled, model)
  552.         column = gtk.TreeViewColumn('Owen', renderer, active = OWEN_COLUMN, visible = VISIBLE_COLUMN)
  553.         column.set_sizing(gtk.TREE_VIEW_COLUMN_FIXED)
  554.         column.set_fixed_width(50)
  555.         column.set_clickable(True)
  556.         treeview.append_column(column)
  557.         renderer = gtk.CellRendererToggle()
  558.         renderer.set_property('xalign', 0)
  559.         renderer.set_data('column', DAVE_COLUMN)
  560.         renderer.connect('toggled', self.on_item_toggled, model)
  561.         column = gtk.TreeViewColumn('Dave', renderer, active = DAVE_COLUMN, visible = VISIBLE_COLUMN)
  562.         column.set_sizing(gtk.TREE_VIEW_COLUMN_FIXED)
  563.         column.set_fixed_width(50)
  564.         column.set_clickable(True)
  565.         treeview.append_column(column)
  566.  
  567.  
  568.  
  569. def main():
  570.     TreeStoreDemo()
  571.     gtk.main()
  572.  
  573. if __name__ == '__main__':
  574.     main()
  575.  
  576.