module GObject
Module representing GLib's GObject namespace.
Preload type contants
The part of the GObject namespace that is needed by GObjectIntrospection.
Constants
- TYPE_ARRAY
- TYPE_BOOLEAN
- TYPE_BOXED
- TYPE_BYTE_ARRAY
- TYPE_CHAR
- TYPE_DOUBLE
- TYPE_ENUM
- TYPE_FLAGS
- TYPE_FLOAT
- TYPE_GTYPE
- TYPE_HASH_TABLE
- TYPE_INT
- TYPE_INT64
- TYPE_INTERFACE
- TYPE_INVALID
- TYPE_LONG
- TYPE_NONE
- TYPE_OBJECT
- TYPE_PARAM
- TYPE_POINTER
- TYPE_STRING
- TYPE_STRV
- TYPE_UCHAR
- TYPE_UINT
- TYPE_UINT64
- TYPE_ULONG
- TYPE_VARIANT
Public Class Methods
object_class_from_instance(instance)
click to toggle source
# File lib/ffi-gobject.rb, line 27 def self.object_class_from_instance(instance) object_class_from_instance_pointer instance.to_ptr end
object_class_from_instance_pointer(inst_ptr)
click to toggle source
# File lib/ffi-gobject.rb, line 31 def self.object_class_from_instance_pointer(inst_ptr) return nil if inst_ptr.null? klsptr = inst_ptr.get_pointer 0 ObjectClass.wrap klsptr end
param_spec_int(name, nick, blurb, minimum, maximum, default_value, flags)
click to toggle source
Smells of :reek:LongParameterList: due to the C interface. rubocop:disable Metrics/ParameterLists
# File lib/ffi-gobject.rb, line 73 def self.param_spec_int(name, nick, blurb, minimum, maximum, default_value, flags) ptr = Lib.g_param_spec_int(name, nick, blurb, minimum, maximum, default_value, flags) ParamSpecInt.wrap(ptr) end
signal_connect(object, detailed_signal, data = nil, after = false, &block)
click to toggle source
# File lib/ffi-gobject.rb, line 57 def self.signal_connect(object, detailed_signal, data = nil, after = false, &block) raise ArgumentError, 'Block needed' unless block_given? signal_name, = detailed_signal.split('::') sig_info = object.class.find_signal signal_name closure = sig_info.wrap_in_closure { |*args| block.call(*args << data) } signal_connect_closure object, detailed_signal, closure, after end
signal_connect_after(object, detailed_signal, data = nil, &block)
click to toggle source
# File lib/ffi-gobject.rb, line 67 def self.signal_connect_after(object, detailed_signal, data = nil, &block) signal_connect object, detailed_signal, data, true, &block end
signal_emit(object, detailed_signal, *args)
click to toggle source
# File lib/ffi-gobject.rb, line 41 def self.signal_emit(object, detailed_signal, *args) signal, detail = detailed_signal.split('::') signal_id = signal_lookup_from_instance signal, object detail_quark = GLib.quark_from_string(detail) sig_info = object.class.find_signal signal argument_gvalues = sig_info.arguments_to_gvalues object, args return_gvalue = sig_info.gvalue_for_return_value result = signal_emitv argument_gvalues, signal_id, detail_quark, return_gvalue # NOTE: Depending on the version of GObjectIntrospection, the result will # be stored in result or return_gvalue. This was changed between versions # 1.44 and 1.46. result || return_gvalue end
signal_lookup_from_instance(signal, object)
click to toggle source
# File lib/ffi-gobject.rb, line 37 def self.signal_lookup_from_instance(signal, object) signal_lookup signal, type_from_instance(object) end
type_from_instance(instance)
click to toggle source
# File lib/ffi-gobject.rb, line 23 def self.type_from_instance(instance) type_from_instance_pointer instance.to_ptr end
type_from_instance_pointer(inst_ptr)
click to toggle source
# File lib/ffi-gobject.rb, line 17 def self.type_from_instance_pointer(inst_ptr) return nil if inst_ptr.null? klsptr = inst_ptr.get_pointer 0 GirFFI::InOutPointer.new(:GType, klsptr).to_value end
type_init()
click to toggle source
# File lib/gir_ffi-base/gobject.rb, line 5 def self.type_init Lib.g_type_init end