Class: MultiProgress

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

Instance Method Summary collapse

Constructor Details

#initializeMultiProgress

Returns a new instance of MultiProgress.



78
79
80
81
82
83
# File 'lib/SB/ListProgress.rb', line 78

def initialize
  @max=0
  super()
  @progresses=Hash.new
  signal_connect("destroy"){|me| @progresses.each_value{|progress| progress.destroy} }
end

Instance Method Details

#all_done?Boolean

Returns:

  • (Boolean)


141
142
143
144
145
# File 'lib/SB/ListProgress.rb', line 141

def all_done?
  d=0
  @progresses.each_value{|progress| d+=1 if progress.done}
  @progresses.size == d
end

#done(list_id) ⇒ Object



120
121
122
123
124
125
126
127
128
129
130
# File 'lib/SB/ListProgress.rb', line 120

def done(list_id)
  @progresses[list_id].done=true if @progresses.has_key?(list_id)
  if all_done?
    @progresses.each_value{|progress| 
      remove(progress)
      progress.destroy
    }
    @progresses.clear
  end
  SB.instance.show unless SB.instance.visible?
end

#killed(list_id) ⇒ Object



132
133
134
135
136
137
138
139
# File 'lib/SB/ListProgress.rb', line 132

def killed(list_id)
  if @progresses.has_key?(list_id)
    pr=@progresses.delete(list_id)
    remove(pr)
    pr.destroy
    p pr.destroyed?
  end
end

#pulse(list_id) ⇒ Object



85
86
87
88
89
90
91
92
93
94
95
# File 'lib/SB/ListProgress.rb', line 85

def pulse(list_id)
  #init the progress
  unless @progresses.has_key?(list_id)
    @progresses[list_id]=MyListProgress.new
    pack_start(@progresses[list_id])
    @progresses[list_id].show
  end
  SB.instance.show

  @progresses[list_id].start_pulse
end

#step(list_id, new_value) ⇒ Object



111
112
113
114
115
116
117
118
# File 'lib/SB/ListProgress.rb', line 111

def step(list_id,new_value)
  if @progresses.has_key?(list_id)
    @progresses[list_id].set_counter(new_value) unless @progresses[list_id].destroyed?
    SB.instance.show unless SB.instance.visible?
  end
#   sleep 0.1
  self
end

#to_sObject



146
147
148
# File 'lib/SB/ListProgress.rb', line 146

def to_s
  "MultiProgress"
end

#zero(list_id, rowcount, list_name = nil, visible_steps = 15) ⇒ Object



97
98
99
100
101
102
103
104
105
106
107
108
109
# File 'lib/SB/ListProgress.rb', line 97

def zero(list_id,rowcount,list_name=nil,visible_steps=15)
  #init the progress
  unless @progresses.has_key?(list_id)
    @progresses[list_id]=MyListProgress.new
    @progresses[list_id].set_visible_steps(visible_steps)
    pack_start(@progresses[list_id])
    @progresses[list_id].show
  end

  @progresses[list_id].zero(rowcount,list_name) unless @progresses[list_id].destroyed?
  SB.instance.show
  self
end