Sha256: 6b55008944613eafdc44bcb422a920a2466f5487eb8bfbd7965286aea461de40

Contents?: true

Size: 2 KB

Versions: 131

Compression:

Stored size: 2 KB

Contents

#!/usr/bin/env ruby
=begin
  treestore.rb - Gtk::TreeStore sample

  Copyright (c) 2016 Ruby-GNOME2 Project Team
  This program is licenced under the same licence as Ruby-GNOME2.
  Based on  https://developer.gnome.org/gtk3/stable/TreeWidget.html
=end

require "gtk3"

TITLE_COLUMN = 0
AUTHOR_COLUMN = 1
CHECKED_COLUMN = 2

model = Gtk::TreeStore.new(String, String, TrueClass)
iter = model.append(nil)
iter[TITLE_COLUMN] = "The Principle of Reason"
iter[AUTHOR_COLUMN] = "Martin Heidegger"
iter[CHECKED_COLUMN] = false

iter = model.append(nil)
iter.set_values(["The Art of Computer Programming", "Donald E. Knuth", true])

# append child
child_iter = model.append(iter)
child_iter[TITLE_COLUMN] = "Volume 1: Fundamental Algorithms"

# append another child
child_iter = model.append(iter)
child_iter.set_value(TITLE_COLUMN, "Volume 2: Seminumerical Algorithms")
child_iter.set_value(CHECKED_COLUMN, true)

# append another child
child_iter = model.append(iter)
child_iter.set_values(["Volume 3: Sorting and Searching",
                       "Donald E. Knuth",
                       true])

def treeview_widget_of(model)
  treeview = Gtk::TreeView.new(model)
  treeview.append_column(Gtk::TreeViewColumn.new("Title",
                                                 Gtk::CellRendererText.new,
                                                 :text => TITLE_COLUMN))
  treeview.append_column(Gtk::TreeViewColumn.new("Author",
                                                 Gtk::CellRendererText.new,
                                                 :text => AUTHOR_COLUMN))
  treeview.append_column(Gtk::TreeViewColumn.new("Author",
                                                 Gtk::CellRendererToggle.new,
                                                 :active => CHECKED_COLUMN))
  treeview
end

def display_model(model)
  win = Gtk::Window.new(:toplevel)
  win.title = "Simple Gtk::TreeStore"
  win.add(treeview_widget_of(model))
  win.show_all
  win.signal_connect("destroy") { Gtk.main_quit }
  Gtk.main
end

display_model(model)

Version data entries

131 entries across 123 versions & 2 rubygems

Version Path
gtk3-4.2.7 sample/misc/treestore.rb
gtk3-4.2.6 sample/misc/treestore.rb
gtk3-4.2.5 sample/misc/treestore.rb
gtk3-4.2.4 sample/misc/treestore.rb
gtk3-4.2.3 sample/misc/treestore.rb
gtk3-4.2.2 sample/misc/treestore.rb
gtk3-4.2.1 sample/misc/treestore.rb
gtk3-4.2.0 sample/misc/treestore.rb
gtk3-4.1.9 sample/misc/treestore.rb
gtk3-4.1.8 sample/misc/treestore.rb
gtk3-4.1.7 sample/misc/treestore.rb
gtk3-4.1.6 sample/misc/treestore.rb
gtk3-4.1.5 sample/misc/treestore.rb
gtk3-4.1.4 sample/misc/treestore.rb
gtk3-4.1.3 sample/misc/treestore.rb
gtk3-4.1.2 sample/misc/treestore.rb
gtk3-4.1.1 sample/misc/treestore.rb
gtk3-4.1.0 sample/misc/treestore.rb
gtk3-4.0.9 sample/misc/treestore.rb
gtk3-4.0.8 sample/misc/treestore.rb