class Glimmer::Gtk::WidgetProxy::WindowProxy

Proxy for Gtk window objects

Follows the Proxy Design Pattern

Constants

DEFAULT_HEIGHT
DEFAULT_WIDTH

Public Instance Methods

post_add_content() click to toggle source
# File lib/glimmer/gtk/widget_proxy/window_proxy.rb, line 72
def post_add_content
  unless @initial_content_added
    @initial_content_added = true
    self.set_default_size(DEFAULT_WIDTH, DEFAULT_HEIGHT) if default_size.include?(-1)
  end
end
present() click to toggle source
Calls superclass method
# File lib/glimmer/gtk/widget_proxy/window_proxy.rb, line 87
def present
  super
  unless @shown_at_least_once
    @shown_at_least_once = true
    ::Gtk.main
  end
end
show() click to toggle source
Calls superclass method
# File lib/glimmer/gtk/widget_proxy/window_proxy.rb, line 79
def show
  super
  unless @shown_at_least_once
    @shown_at_least_once = true
    ::Gtk.main
  end
end
signal_connect(signal, &block) click to toggle source
Calls superclass method
# File lib/glimmer/gtk/widget_proxy/window_proxy.rb, line 95
def signal_connect(signal, &block)
  @destroy_signal_connected = true if signal.to_s.downcase == 'destroy'
  super
end

Private Instance Methods

build_widget() click to toggle source
# File lib/glimmer/gtk/widget_proxy/window_proxy.rb, line 102
def build_widget
  @gtk = ::Gtk::Window.new(*(@args.empty? ? [:toplevel] : normalize_args(@args))).tap do |new_window|
    new_window.signal_connect(:destroy) do
      # TODO in the future, make this yield to external signal connections that do not want to quit app on hitting the window close button
      ::Gtk.main_quit unless @destroy_signal_connected
    end
  end
end