Module: GirFFI::InfoExt::ISignalInfo

Defined in:
lib/gir_ffi/info_ext/i_signal_info.rb

Overview

Extensions for GObjectIntrospection::ISignalInfo needed by GirFFI

Instance Method Summary collapse

Instance Method Details

#arguments_to_gvalues(instance, arguments) ⇒ Object



17
18
19
20
21
22
23
24
# File 'lib/gir_ffi/info_ext/i_signal_info.rb', line 17

def arguments_to_gvalues instance, arguments
  arg_g_values = args.map { |info| info.argument_type.make_g_value }
  arg_g_values.zip(arguments).each do |g_value, arg|
    g_value.set_value arg
  end

  arg_g_values.unshift GObject::Value.wrap_instance(instance)
end

#gvalue_for_return_valueObject



26
27
28
# File 'lib/gir_ffi/info_ext/i_signal_info.rb', line 26

def gvalue_for_return_value
  return_type.make_g_value
end

#wrap_in_closure(&block) ⇒ GObject::RubyClosure

Create a signal hander closure. Wraps the given block in a custom descendent of RubyClosure with a marshaller tailored for this signal.

Parameters:

  • block

    The body of the signal handler

Returns:



12
13
14
15
# File 'lib/gir_ffi/info_ext/i_signal_info.rb', line 12

def wrap_in_closure &block
  bldr = Builders::SignalClosureBuilder.new(self)
  bldr.build_class.new(&block)
end