class Rabbit::Progress

Attributes

background[R]
foreground[R]
window[R]

Public Class Methods

new() click to toggle source
# File lib/rabbit/progress.rb, line 6
def initialize
  @window = Gtk::Window.new(Gtk::Window::POPUP)
  @window.app_paintable = true
  @bar = Gtk::ProgressBar.new
  @bar.show_text = true
  @window.add(@bar)
  @original_style = @bar.style
  @foreground = nil
  @background = nil
end

Public Instance Methods

background=(color) click to toggle source
# File lib/rabbit/progress.rb, line 22
def background=(color)
  @background = color
  setup_progress_color
end
clear_color() click to toggle source
# File lib/rabbit/progress.rb, line 27
def clear_color
  @foreground = nil
  @background = nil
  setup_progress_color
end
end_progress() click to toggle source
# File lib/rabbit/progress.rb, line 47
def end_progress
  return if @max.nil?
  @current = @max
  @bar.fraction = @current / @max
end
foreground=(color) click to toggle source
# File lib/rabbit/progress.rb, line 17
def foreground=(color)
  @foreground = color
  setup_progress_color
end
start_progress(max, parent) click to toggle source
# File lib/rabbit/progress.rb, line 33
def start_progress(max, parent)
  return if max.zero?
  @window.transient_for = parent
  @window.show_all
  @bar.fraction = @current = 0
  @max = max.to_f
end
update_progress(i) click to toggle source
# File lib/rabbit/progress.rb, line 41
def update_progress(i)
  return if @max.nil?
  @current = i
  @bar.fraction = @current / @max
end

Private Instance Methods

setup_progress_color() click to toggle source
# File lib/rabbit/progress.rb, line 54
def setup_progress_color
  style = @original_style.copy
  if @foreground
    rgb = @foreground.to_gdk_rgb
    style.set_bg(Gtk::STATE_PRELIGHT, *rgb)
  end
  if @background
    rgb = @background.to_gdk_rgb
    style.set_bg(Gtk::STATE_NORMAL, *rgb)
  end
  @bar.style = style
end