Sha256: 3009424c03df5d022522362827f104b4f1c6e8023e87f81f9f3f33fa51c6a081

Contents?: true

Size: 1.25 KB

Versions: 106

Compression:

Stored size: 1.25 KB

Contents

# Copyright (c) 2015-2016 Ruby-GNOME2 Project Team
# This program is licenced under the same licence as Ruby-GNOME2.
#
=begin
= Revealer

GtkRevealer is a container that animates showing and hiding
of its sole child with nice transitions.
=end
class RevealerDemo
  def initialize(main_window)
    @builder = Gtk::Builder.new(:resource => "/revealer/revealer.ui")
    @builder.connect_signals {}

    @timeout = nil
    @count = 0

    @window = @builder["window"]
    @window.screen = main_window.screen
    @window.signal_connect "destroy" do
      if @timeout
        GLib::Source.remove(@timeout)
        @timeout = nil
      end
    end
  end

  def run
    if !@window.visible?
      add_timeout
      @window.show_all
    else
      @window.destroy
    end
    @window
  end

  private

  def add_timeout
    @timeout = GLib::Timeout.add(690) do
      name = "revealer#{@count}"

      revealer = @builder[name]
      revealer.reveal_child = true

      revealer.signal_connect "notify::child-revealed" do |widget|
        if widget.mapped?
          revealed = widget.child_revealed?
          widget.reveal_child = !revealed
        end
      end

      @count += 1
      if @count >= 9
        @timeout = nil
        false
      else
        true
      end
    end
  end
end

Version data entries

106 entries across 106 versions & 1 rubygems

Version Path
gtk3-4.2.7 sample/gtk-demo/revealer.rb
gtk3-4.2.6 sample/gtk-demo/revealer.rb
gtk3-4.2.5 sample/gtk-demo/revealer.rb
gtk3-4.2.4 sample/gtk-demo/revealer.rb
gtk3-4.2.3 sample/gtk-demo/revealer.rb
gtk3-4.2.2 sample/gtk-demo/revealer.rb
gtk3-4.2.1 sample/gtk-demo/revealer.rb
gtk3-4.2.0 sample/gtk-demo/revealer.rb
gtk3-4.1.9 sample/gtk-demo/revealer.rb
gtk3-4.1.8 sample/gtk-demo/revealer.rb
gtk3-4.1.7 sample/gtk-demo/revealer.rb
gtk3-4.1.6 sample/gtk-demo/revealer.rb
gtk3-4.1.5 sample/gtk-demo/revealer.rb
gtk3-4.1.4 sample/gtk-demo/revealer.rb
gtk3-4.1.3 sample/gtk-demo/revealer.rb
gtk3-4.1.2 sample/gtk-demo/revealer.rb
gtk3-4.1.1 sample/gtk-demo/revealer.rb
gtk3-4.1.0 sample/gtk-demo/revealer.rb
gtk3-4.0.9 sample/gtk-demo/revealer.rb
gtk3-4.0.8 sample/gtk-demo/revealer.rb