Class: GObject::Object
- Inherits:
-
Object
show all
- Defined in:
- lib/ffi-gobject/object.rb
Overview
Overrides for GObject, GObject’s generic base class.
Instance Method Summary
collapse
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method, *args) ⇒ Object
TODO: Generate accessor methods from GIR at class definition time
10
11
12
13
14
15
16
17
18
|
# File 'lib/ffi-gobject/object.rb', line 10
def method_missing method, *args
if respond_to?("get_#{method}")
return send("get_#{method}", *args)
end
if method.to_s =~ /(.*)=$/ && respond_to?("set_#{$1}")
return send("set_#{$1}", *args)
end
super
end
|
Instance Method Details
#get_property_extended(property_name) ⇒ Object
27
28
29
30
31
32
33
34
35
36
|
# File 'lib/ffi-gobject/object.rb', line 27
def get_property_extended property_name
gvalue = get_property property_name
type_info = get_property_type property_name
case type_info.tag
when :ghash, :glist
adjust_value_to_type gvalue.get_value_plain, type_info
else
gvalue.get_value
end
end
|
#get_property_with_override(property_name) ⇒ Object
Also known as:
get_property
38
39
40
41
42
43
44
45
|
# File 'lib/ffi-gobject/object.rb', line 38
def get_property_with_override property_name
pspec = type_class.find_property property_name
gvalue = GObject::Value.for_g_type pspec.value_type
get_property_without_override property_name, gvalue
gvalue
end
|
#set_property_extended(property_name, value) ⇒ Object
47
48
49
50
51
52
|
# File 'lib/ffi-gobject/object.rb', line 47
def set_property_extended property_name, value
type_info = get_property_type property_name
adjusted_value = adjust_value_to_type(value, type_info)
set_property property_name, adjusted_value
end
|
#set_property_with_override(property_name, value) ⇒ Object
Also known as:
set_property
54
55
56
57
58
59
|
# File 'lib/ffi-gobject/object.rb', line 54
def set_property_with_override property_name, value
pspec = type_class.find_property property_name
gvalue = GObject::Value.for_g_type pspec.value_type
gvalue.set_value value
set_property_without_override property_name, gvalue
end
|
#signal_connect(event, &block) ⇒ Object
20
21
22
|
# File 'lib/ffi-gobject/object.rb', line 20
def signal_connect event, &block
GObject.signal_connect(self, event, &block)
end
|
#type_class ⇒ Object
61
62
63
|
# File 'lib/ffi-gobject/object.rb', line 61
def type_class
GObject::ObjectClass.wrap(to_ptr.get_pointer 0)
end
|