File: tree_progress.rb

package info (click to toggle)
ruby-gnome2 0.12.0-2sarge1
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 6,820 kB
  • ctags: 7,421
  • sloc: ansic: 61,387; ruby: 17,307; makefile: 85; xml: 35; sql: 13
file content (71 lines) | stat: -rw-r--r-- 1,241 bytes parent folder | download
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
70
71
=begin
  tree_progress.rb - Gtk::TreeView and Gtk::CellRendererProgress 
  sample script.

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

  $Id: tree_progress.rb,v 1.1 2004/12/27 16:32:55 mutoh Exp $
=end


require 'gtk2'

Gtk.init

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
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