Sophie

Sophie

distrib > Mandriva > 2008.1 > x86_64 > media > main-testing > by-pkgid > 09cef380cab976ef2429223a14de963d > files > 137

ruby-gtk2-0.16.0-4.1mdv2008.1.x86_64.rpm

=begin
  tree_progress.rb - Gtk::TreeView and Gtk::CellRendererProgress 
  sample script.

  Copyright (C) 2004-2006 Darren Willis, Masao Mutoh
  This program is licenced under the same licence as Ruby-GNOME2.

  $Id: tree_progress.rb,v 1.3 2006/06/17 13:18:12 mutoh Exp $
=end


require 'gtk2'

if str = Gtk.check_version(2, 6, 0)
  puts "This sample requires GTK+ 2.6.0 or later"
  puts str
  exit
end

win = Gtk::Window.new("Gtk::CellRendererProgress sample")
win.set_default_size(300, 50)
model = Gtk::ListStore.new(String, Float)
view = Gtk::TreeView.new(model)

prog = model.append
prog[0] = "bar 1"
prog[1] = 50

prog1 = model.append
prog1[0] = "bar 2"
prog1[1] = 5

prog2 = model.append
prog2[0] = "bar 3"
prog2[1] = 10

arenderer = Gtk::CellRendererText.new
acol = Gtk::TreeViewColumn.new("words", arenderer, :text  => 0)
view.append_column(acol)

prenderer = Gtk::CellRendererProgress.new
pcol = Gtk::TreeViewColumn.new("Progress", prenderer, :value  => 1)
view.append_column(pcol)

win.signal_connect("delete_event"){
  Gtk.main_quit
}

win.add(view)
win.show_all

dir = 1
thr = Thread.new do
  loop {
    prog2[1] += dir
    if prog2[1] > 100
      prog2[1] = 100
      dir = - dir
    end
    if prog2[1] < 0
      prog2[1] = 0
      dir = - dir
    end
    sleep 0.01
  }
end

Gtk.main