BasicWindow
# File gtk2/sample/gtk-demo/list_store.rb, line 38 def initialize super('GtkListStore demo') self.border_width = 8 vbox = Gtk::VBox.new(false, 8) add(vbox) label = Gtk::Label.new('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).') vbox.pack_start(label, false, false, 0) sw = Gtk::ScrolledWindow.new(nil, nil) sw.shadow_type = Gtk::SHADOW_ETCHED_IN sw.set_policy(Gtk::POLICY_NEVER, Gtk::POLICY_AUTOMATIC) vbox.pack_start(sw, true, true, 0) # create tree model model = create_model # create tree view treeview = Gtk::TreeView.new(model) treeview.rules_hint = true treeview.search_column = COLUMN_DESCRIPTION sw.add(treeview) # add columns to the tree view add_columns(treeview) set_default_size(280, 250) end
# File gtk2/sample/gtk-demo/list_store.rb, line 83 def add_columns(treeview) # column for fixed toggles renderer = Gtk::CellRendererToggle.new renderer.signal_connect('toggled') do |cell, path| fixed_toggled(treeview.model, path) end column = Gtk::TreeViewColumn.new('Fixed?', renderer, 'active' => COLUMN_FIXED) # set this column to a fixed sizing (of 50 pixels) column.sizing = Gtk::TreeViewColumn::FIXED column.fixed_width = 50 treeview.append_column(column) # column for bug numbers renderer = Gtk::CellRendererText.new column = Gtk::TreeViewColumn.new('Bug number', renderer, 'text' => COLUMN_NUMBER) column.set_sort_column_id(COLUMN_NUMBER) treeview.append_column(column) # column for severities renderer = Gtk::CellRendererText.new column = Gtk::TreeViewColumn.new('Severity', renderer, 'text' => COLUMN_SEVERITY) column.set_sort_column_id(COLUMN_SEVERITY) treeview.append_column(column) # column for description renderer = Gtk::CellRendererText.new column = Gtk::TreeViewColumn.new('Description', renderer, 'text' => COLUMN_DESCRIPTION) column.set_sort_column_id(COLUMN_DESCRIPTION) treeview.append_column(column) end
# File gtk2/sample/gtk-demo/list_store.rb, line 69 def create_model # create list store store = Gtk::ListStore.new(TrueClass, Integer, String, String) # add data to the list store DATA.each do |bug| iter = store.append bug.each_with_index do |value, index| iter[index] = value end end return store end
# File gtk2/sample/gtk-demo/list_store.rb, line 124 def fixed_toggled(model, path_str) path = Gtk::TreePath.new(path_str) # get toggled iter iter = model.get_iter(path) fixed =iter[COLUMN_FIXED] # do something with the value fixed ^= 1 # set new value iter[COLUMN_FIXED] = fixed end
Generated with the Darkfish Rdoc Generator 2.