module RuGUI::SignalSupport

Public Class Methods

included(base) click to toggle source
# File lib/rugui/signal_support.rb, line 43
def self.included(base)
  base.class_inheritable_accessor :signal_connections
  base.signal_connections = []
  base.extend(ClassMethods)
end

Public Instance Methods

autoconnect_declared_signals(sender) click to toggle source

Autoconnects declared signal handlers for the widgets in the sender to methods in this instance, or to blocks which have this instance as context.

# File lib/rugui/signal_support.rb, line 29
def autoconnect_declared_signals(sender)
  self.signal_connections.each do |signal_connection|
    if sender.respond_to?(signal_connection.widget_name)
      widget = sender.send(signal_connection.widget_name)

      if (not signal_connection.receiver_block.nil?) and self.is_a?(signal_connection.receiver_class)
        sender.framework_adapter.connect_declared_signal_block(widget, signal_connection.signal_name, self, signal_connection.receiver_block)
      elsif not signal_connection.receiver_method_name.nil? and self.respond_to?(signal_connection.receiver_method_name)
        sender.framework_adapter.connect_declared_signal(widget, signal_connection.signal_name, self, signal_connection.receiver_method_name)
      end
    end
  end
end