70 lines
1.3 KiB
Ruby
70 lines
1.3 KiB
Ruby
|
=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
|
||
|
|