Class: MyListProgress

Inherits:
Gtk::ProgressBar
  • Object
show all
Defined in:
lib/SB/ListProgress.rb

Overview

this file is part of manqod manqod is distributed under the CDDL licence the author of manqod is Dobai-Pataky Balint([email protected])

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeMyListProgress



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/SB/ListProgress.rb', line 6

def initialize
  @counter=0.0
  @max=nil
  @visible_steps=1
  @progresses=Hash.new
  @list_name=nil
  @frac=0
  @pfrac=0
  super()
#   modify_font(Pango::FontDescription.new('Monospace 3'))
  set_height_request(6)
  set_width_request(100)
  set_activity_mode(false)
  modify_font(Pango::FontDescription.new("sans 7"))
#   set_show_text(false)
  @pulse_thread=nil
end

Instance Attribute Details

#counterObject (readonly)

Returns the value of attribute counter.



23
24
25
# File 'lib/SB/ListProgress.rb', line 23

def counter
  @counter
end

#doneObject

Returns the value of attribute done.



24
25
26
# File 'lib/SB/ListProgress.rb', line 24

def done
  @done
end

#maxObject (readonly)

Returns the value of attribute max.



23
24
25
# File 'lib/SB/ListProgress.rb', line 23

def max
  @max
end

#visible_stepsObject (readonly)

Returns the value of attribute visible_steps.



23
24
25
# File 'lib/SB/ListProgress.rb', line 23

def visible_steps
  @visible_steps
end

Instance Method Details

#set_counter(new_counter) ⇒ Object



53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# File 'lib/SB/ListProgress.rb', line 53

def set_counter(new_counter)
  new_counter=max if new_counter>max
  @counter=new_counter.to_f
  
  if max==0
    @frac=0
    else
    @frac=counter.to_f/max.to_f
=begin
    if counter==0
      else
      set_text((100.0*counter/max).round.to_s+"%")
    end
=end

  end
  if (@pfrac*100/visible_steps).round!=(@frac*100/visible_steps).round
    Gtk.thread_protect{set_fraction(@frac) unless destroyed?}
    Gtk.show_thread_changes
    @pfrac=@frac
  end
end

#set_visible_steps(new_vs) ⇒ Object



48
49
50
51
# File 'lib/SB/ListProgress.rb', line 48

def set_visible_steps(new_vs)
  @visible_steps=new_vs.to_f
  self
end

#start_pulseObject



26
27
28
29
30
31
32
33
34
# File 'lib/SB/ListProgress.rb', line 26

def start_pulse
  @pulse_thread=Thread.new{
    loop do
      sleep 0.1
      Gtk.thread_protect{pulse unless destroyed?}
      Gtk.show_thread_changes
    end
  }
end

#zero(new_max, list_name = nil) ⇒ Object



36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/SB/ListProgress.rb', line 36

def zero(new_max,list_name=nil)
  Thread.kill(@pulse_thread) unless @pulse_thread.nil?
  @pulse_thread=nil
  @max=new_max
  @done=false
  set_counter(0)
  if @list_name!=list_name
    @list_name=list_name
    Gtk.thread_protect{set_text(@list_name) unless destroyed?}
  end
  self
end