File: tree_progress.rb

package info (click to toggle)
ruby-gnome2 0.15.0-1.1
  • links: PTS
  • area: main
  • in suites: etch-m68k
  • size: 7,692 kB
  • ctags: 8,558
  • sloc: ansic: 69,912; ruby: 19,511; makefile: 97; xml: 35; sql: 13
file content (69 lines) | stat: -rw-r--r-- 1,301 bytes parent folder | download | duplicates (10)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
=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