module GObject

Constants

TYPE_ARRAY
TYPE_BOOLEAN
TYPE_BOXED
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_TAG_TO_GTYPE
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 42
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 46
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
object_is_floating(obj) click to toggle source
# File lib/ffi-gobject.rb, line 28
def self.object_is_floating obj
  Lib::g_object_is_floating obj.to_ptr
end
object_ref(obj) click to toggle source
# File lib/ffi-gobject.rb, line 16
def self.object_ref obj
  Lib::g_object_ref obj.to_ptr
end
object_ref_sink(obj) click to toggle source
# File lib/ffi-gobject.rb, line 20
def self.object_ref_sink obj
  Lib::g_object_ref_sink obj.to_ptr
end
object_unref(obj) click to toggle source
# File lib/ffi-gobject.rb, line 24
def self.object_unref obj
  Lib::g_object_unref obj.to_ptr
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.

# File lib/ffi-gobject.rb, line 83
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, &block) click to toggle source
# File lib/ffi-gobject.rb, line 71
def self.signal_connect object, detailed_signal, data=nil, &block
  signal, _ = detailed_signal.split('::')
  sig_info = object.class.find_signal signal
  callback = sig_info.signal_callback(&block)
  GirFFI::CallbackBase.store_callback callback

  data_ptr = GirFFI::InPointer.from_object data

  Lib.g_signal_connect_data object, detailed_signal, callback, data_ptr, nil, 0
end
signal_emit(object, detailed_signal, *args) click to toggle source
# File lib/ffi-gobject.rb, line 58
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
  arr = sig_info.signal_arguments_to_gvalue_array object, *args
  rval = sig_info.gvalue_for_signal_return_value

  Lib.g_signal_emitv arr.values, signal_id, detail_quark, rval

  return rval
end
signal_lookup_from_instance(signal, object) click to toggle source
# File lib/ffi-gobject.rb, line 54
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 38
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 32
def self.type_from_instance_pointer inst_ptr
  return nil if inst_ptr.null?
  klsptr = inst_ptr.get_pointer 0
  klsptr.send "get_#{GirFFI::TypeMap::TAG_TYPE_MAP[:GType]}", 0
end
type_init() click to toggle source
# File lib/gir_ffi-base/gobject.rb, line 4
def self.type_init
  Lib::g_type_init
end