class ImagesDemo

Public Class Methods

new(main_window) click to toggle source
# File gtk3/sample/gtk-demo/images.rb, line 22
def initialize(main_window)
  @window = Gtk::Window.new(:toplevel)
  @window.screen = main_window.screen
  @window.title = "Images"
  @window.signal_connect "destroy" do
    GLib::Source.remove(@load_timeout) if @load_timeout
    @pixbuf_loader.close if @pixbuf_loader
  end

  @vbox = Gtk::Box.new(:vertical, 8)
  @vbox.margin = 16
  @window.add(@vbox)

  frame = generate_frame("<u>Image loaded from a file </u>")
  image = Gtk::Image.new(:icon_name => "gtk3-demo", :size => :dialog)
  frame.add(image)

  # Animation
  frame = generate_frame("<u>Animation loaded from a file</u>")
  image = Gtk::Image.new(:resource => "/images/floppybuddy.gif")
  frame.add(image)

  # Symbolic icon
  frame = generate_frame("<u>Symbolic themed icon</u>")
  gicon = Gio::ThemedIcon.new("battery-caution-charging-symbolic")
  image = Gtk::Image.new(:icon => gicon, :size => :dialog)
  frame.add(image)

  # Progressive
  frame = generate_frame("<u>Progressive image loading</u>")

  # Create an empty image for now; the progressive loader
  # will create the pixbuf and fill it in.
  image = Gtk::Image.new
  frame.add(image)
  start_progressive_loading(image)

  # Sensitivity control
  button = Gtk::ToggleButton.new(:label => "_Insensitive",
                                 :use_underline => true)
  @vbox.pack_start(button)
  button.signal_connect "toggled" do |toggle|
    @vbox.children.each do |child|
      child.sensitive = !toggle.active? if child.class != Gtk::ToggleButton
    end
  end
end

Public Instance Methods

run() click to toggle source
# File gtk3/sample/gtk-demo/images.rb, line 70
def run
  if !@window.visible?
    @window.show_all
  else
    @window.destroy
  end
  @window
end