glib2 2.0.2 → 2.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README +4 -4
- data/Rakefile +31 -10
- data/ext/glib2/extconf.rb +2 -1
- data/ext/glib2/glib2.def +1 -0
- data/ext/glib2/rbglib.c +6 -5
- data/ext/glib2/rbglib.h +3 -3
- data/ext/glib2/rbglib_bookmarkfile.c +0 -5
- data/ext/glib2/rbglib_error.c +8 -11
- data/ext/glib2/rbglib_gettext.c +48 -0
- data/ext/glib2/rbglib_i18n.c +0 -4
- data/ext/glib2/rbglib_keyfile.c +0 -20
- data/ext/glib2/rbglib_maincontext.c +0 -14
- data/ext/glib2/rbglib_source.c +0 -4
- data/ext/glib2/rbglib_timer.c +0 -4
- data/ext/glib2/rbglib_unichar.c +0 -8
- data/ext/glib2/rbglib_utf8.c +0 -2
- data/ext/glib2/rbglib_utils.c +0 -16
- data/ext/glib2/rbglib_win32.c +0 -7
- data/ext/glib2/rbgobj_object.c +8 -12
- data/ext/glib2/rbgobj_strv.c +0 -4
- data/ext/glib2/rbgobj_typeinterface.c +0 -6
- data/ext/glib2/rbgobj_value.c +12 -0
- data/ext/glib2/rbgobject.c +20 -18
- data/ext/glib2/rbgobject.h +1 -0
- data/ext/glib2/rbgprivate.h +5 -2
- data/lib/glib2.rb +4 -0
- data/lib/gnome2/rake/external-package.rb +20 -3
- data/lib/gnome2/rake/native-binary-build-task.rb +47 -30
- data/lib/gnome2/rake/package-task.rb +11 -1
- data/lib/gnome2/rake/source-download-task.rb +2 -1
- data/lib/gnome2/rake/win32-binary-build-task.rb +28 -3
- data/lib/mkmf-gnome2.rb +2 -8
- metadata +13 -18
@@ -419,13 +419,11 @@ source_remove(G_GNUC_UNUSED VALUE self, VALUE tag)
|
|
419
419
|
return CBOOL2RVAL(g_source_remove(NUM2UINT(tag)));
|
420
420
|
}
|
421
421
|
|
422
|
-
#if GLIB_CHECK_VERSION(2,12,0)
|
423
422
|
static VALUE
|
424
423
|
source_current_source(G_GNUC_UNUSED VALUE self)
|
425
424
|
{
|
426
425
|
return BOXED2RVAL(g_main_current_source, G_TYPE_SOURCE);
|
427
426
|
}
|
428
|
-
#endif
|
429
427
|
|
430
428
|
static gboolean
|
431
429
|
invoke_source_func(gpointer data)
|
@@ -533,13 +531,11 @@ rg_release(VALUE self)
|
|
533
531
|
return self;
|
534
532
|
}
|
535
533
|
|
536
|
-
#if GLIB_CHECK_VERSION(2,10,0)
|
537
534
|
static VALUE
|
538
535
|
rg_owner_p(VALUE self)
|
539
536
|
{
|
540
537
|
return CBOOL2RVAL(g_main_context_is_owner(_SELF(self)));
|
541
538
|
}
|
542
|
-
#endif
|
543
539
|
|
544
540
|
/*
|
545
541
|
gboolean g_main_context_wait (GMainContext *context,
|
@@ -805,7 +801,6 @@ idle_remove(G_GNUC_UNUSED VALUE self, VALUE func)
|
|
805
801
|
return CBOOL2RVAL(g_idle_remove_by_data((gpointer)info));
|
806
802
|
}
|
807
803
|
|
808
|
-
#if GLIB_CHECK_VERSION(2,4,0)
|
809
804
|
static VALUE
|
810
805
|
child_watch_source_new(G_GNUC_UNUSED VALUE self, VALUE pid)
|
811
806
|
{
|
@@ -826,7 +821,6 @@ child_watch_add(VALUE self, VALUE pid)
|
|
826
821
|
return UINT2NUM(g_child_watch_add((GPid)NUM2INT(pid),
|
827
822
|
(GChildWatchFunc)child_watch_func, (gpointer)func));
|
828
823
|
}
|
829
|
-
#endif
|
830
824
|
|
831
825
|
#ifndef HAVE_RB_THREAD_BLOCKING_REGION
|
832
826
|
static void
|
@@ -846,9 +840,7 @@ Init_glib_main_context(void)
|
|
846
840
|
|
847
841
|
VALUE timeout = rb_define_module_under(mGLib, "Timeout");
|
848
842
|
VALUE idle = rb_define_module_under(mGLib, "Idle");
|
849
|
-
#if GLIB_CHECK_VERSION(2,4,0)
|
850
843
|
VALUE child_watch = rb_define_module_under(mGLib, "ChildWatch");
|
851
|
-
#endif
|
852
844
|
|
853
845
|
id_call = rb_intern("call");
|
854
846
|
id__callbacks__ = rb_intern("__callbacks__");
|
@@ -859,9 +851,7 @@ Init_glib_main_context(void)
|
|
859
851
|
|
860
852
|
mGLibSource = rb_const_get(mGLib, rb_intern("Source"));
|
861
853
|
rbg_define_singleton_method(mGLibSource, "remove", source_remove, 1);
|
862
|
-
#if GLIB_CHECK_VERSION(2,12,0)
|
863
854
|
rbg_define_singleton_method(mGLibSource, "current", source_current_source, 0);
|
864
|
-
#endif
|
865
855
|
/*
|
866
856
|
id_poll_func = rb_intern("__poll_func__");
|
867
857
|
*/
|
@@ -873,9 +863,7 @@ Init_glib_main_context(void)
|
|
873
863
|
RG_DEF_METHOD(wakeup, 0);
|
874
864
|
RG_DEF_METHOD(acquire, 0);
|
875
865
|
RG_DEF_METHOD(release, 0);
|
876
|
-
#if GLIB_CHECK_VERSION(2,10,0)
|
877
866
|
RG_DEF_METHOD_P(owner, 0);
|
878
|
-
#endif
|
879
867
|
RG_DEF_METHOD(prepare, 0);
|
880
868
|
RG_DEF_METHOD(query, 1);
|
881
869
|
/*
|
@@ -902,10 +890,8 @@ Init_glib_main_context(void)
|
|
902
890
|
rbg_define_singleton_method(idle, "add", idle_add, -1);
|
903
891
|
rbg_define_singleton_method(idle, "remove", idle_remove, 1);
|
904
892
|
|
905
|
-
#if GLIB_CHECK_VERSION(2,4,0)
|
906
893
|
rbg_define_singleton_method(child_watch, "source_new", child_watch_source_new, 1);
|
907
894
|
rbg_define_singleton_method(child_watch, "add", child_watch_add, 1);
|
908
|
-
#endif
|
909
895
|
|
910
896
|
default_poll_func = g_main_context_get_poll_func(NULL);
|
911
897
|
g_main_context_set_poll_func(NULL, rg_poll);
|
data/ext/glib2/rbglib_source.c
CHANGED
@@ -63,13 +63,11 @@ rg_attach(int argc, VALUE *argv, VALUE self)
|
|
63
63
|
RVAL2BOXED(context, G_TYPE_MAIN_CONTEXT)));
|
64
64
|
}
|
65
65
|
|
66
|
-
#if GLIB_CHECK_VERSION(2,12,0)
|
67
66
|
static VALUE
|
68
67
|
rg_destroyed_p(VALUE self)
|
69
68
|
{
|
70
69
|
return CBOOL2RVAL(g_source_is_destroyed(_SELF(self)));
|
71
70
|
}
|
72
|
-
#endif
|
73
71
|
|
74
72
|
static VALUE
|
75
73
|
rg_set_priority(VALUE self, VALUE priority)
|
@@ -178,9 +176,7 @@ Init_glib_source(void)
|
|
178
176
|
"CONTINUE", CBOOL2RVAL(G_SOURCE_CONTINUE));
|
179
177
|
|
180
178
|
RG_DEF_METHOD(attach, -1);
|
181
|
-
#if GLIB_CHECK_VERSION(2,12,0)
|
182
179
|
RG_DEF_METHOD_P(destroyed, 0);
|
183
|
-
#endif
|
184
180
|
RG_DEF_METHOD(set_priority, 1);
|
185
181
|
RG_DEF_METHOD(priority, 0);
|
186
182
|
RG_DEF_METHOD(set_can_recurse, 1);
|
data/ext/glib2/rbglib_timer.c
CHANGED
@@ -90,14 +90,12 @@ rg_stop(VALUE self)
|
|
90
90
|
return self;
|
91
91
|
}
|
92
92
|
|
93
|
-
#if GLIB_CHECK_VERSION(2,4,0)
|
94
93
|
static VALUE
|
95
94
|
rg_continue(VALUE self)
|
96
95
|
{
|
97
96
|
g_timer_continue(_SELF(self));
|
98
97
|
return self;
|
99
98
|
}
|
100
|
-
#endif
|
101
99
|
|
102
100
|
static VALUE
|
103
101
|
rg_elapsed(VALUE self)
|
@@ -123,9 +121,7 @@ Init_glib_timer(void)
|
|
123
121
|
RG_DEF_METHOD(initialize, 0);
|
124
122
|
RG_DEF_METHOD(start, 0);
|
125
123
|
RG_DEF_METHOD(stop, 0);
|
126
|
-
#if GLIB_CHECK_VERSION(2,4,0)
|
127
124
|
RG_DEF_METHOD(continue, 0);
|
128
|
-
#endif
|
129
125
|
RG_DEF_METHOD(elapsed, 0);
|
130
126
|
RG_DEF_METHOD(reset, 0);
|
131
127
|
}
|
data/ext/glib2/rbglib_unichar.c
CHANGED
@@ -45,9 +45,7 @@ DEF_IS_UNICHAR(xdigit)
|
|
45
45
|
DEF_IS_UNICHAR(title)
|
46
46
|
DEF_IS_UNICHAR(defined)
|
47
47
|
DEF_IS_UNICHAR(wide)
|
48
|
-
#if GLIB_CHECK_VERSION(2,12,0)
|
49
48
|
DEF_IS_UNICHAR(wide_cjk)
|
50
|
-
#endif
|
51
49
|
|
52
50
|
#undef DEF_IS_UNICHAR
|
53
51
|
|
@@ -95,7 +93,6 @@ rg_s_break_type(G_GNUC_UNUSED VALUE self, VALUE unichar)
|
|
95
93
|
G_TYPE_UNICODE_BREAK_TYPE);
|
96
94
|
}
|
97
95
|
|
98
|
-
#if GLIB_CHECK_VERSION(2,4,0)
|
99
96
|
static VALUE
|
100
97
|
rg_s_get_mirror_char(G_GNUC_UNUSED VALUE self, VALUE unichar)
|
101
98
|
{
|
@@ -107,7 +104,6 @@ rg_s_get_mirror_char(G_GNUC_UNUSED VALUE self, VALUE unichar)
|
|
107
104
|
return unichar;
|
108
105
|
}
|
109
106
|
}
|
110
|
-
#endif
|
111
107
|
|
112
108
|
#if GLIB_CHECK_VERSION(2,14,0)
|
113
109
|
static VALUE
|
@@ -179,10 +175,8 @@ Init_glib_unichar(void)
|
|
179
175
|
rbglib_m_unichar_isdefined, 1);
|
180
176
|
rbg_define_singleton_method(RG_TARGET_NAMESPACE, "wide?",
|
181
177
|
rbglib_m_unichar_iswide, 1);
|
182
|
-
#if GLIB_CHECK_VERSION(2,12,0)
|
183
178
|
rbg_define_singleton_method(RG_TARGET_NAMESPACE, "wide_cjk?",
|
184
179
|
rbglib_m_unichar_iswide_cjk, 1);
|
185
|
-
#endif
|
186
180
|
|
187
181
|
RG_DEF_SMETHOD(to_upper, 1);
|
188
182
|
RG_DEF_SMETHOD(to_lower, 1);
|
@@ -194,9 +188,7 @@ Init_glib_unichar(void)
|
|
194
188
|
RG_DEF_SMETHOD(type, 1);
|
195
189
|
RG_DEF_SMETHOD(break_type, 1);
|
196
190
|
|
197
|
-
#if GLIB_CHECK_VERSION(2,4,0)
|
198
191
|
RG_DEF_SMETHOD(get_mirror_char, 1);
|
199
|
-
#endif
|
200
192
|
|
201
193
|
#if GLIB_CHECK_VERSION(2,14,0)
|
202
194
|
RG_DEF_SMETHOD(combining_class, 1);
|
data/ext/glib2/rbglib_utf8.c
CHANGED
@@ -154,11 +154,9 @@ rg_s_collate_key(int argc, VALUE *argv, G_GNUC_UNUSED VALUE self)
|
|
154
154
|
|
155
155
|
utf8 = StringValueCStr(rb_utf8);
|
156
156
|
len = RSTRING_LEN(rb_utf8);
|
157
|
-
#if GLIB_CHECK_VERSION(2,8,0)
|
158
157
|
if (RVAL2CBOOL(for_filename))
|
159
158
|
key = g_utf8_collate_key_for_filename(utf8, len);
|
160
159
|
else
|
161
|
-
#endif
|
162
160
|
key = g_utf8_collate_key(utf8, len);
|
163
161
|
|
164
162
|
result = CSTR2RVAL(key);
|
data/ext/glib2/rbglib_utils.c
CHANGED
@@ -24,7 +24,6 @@
|
|
24
24
|
|
25
25
|
#define RG_TARGET_NAMESPACE mGLib
|
26
26
|
|
27
|
-
#if GLIB_CHECK_VERSION(2,2,0)
|
28
27
|
static VALUE
|
29
28
|
rg_s_application_name(G_GNUC_UNUSED VALUE self)
|
30
29
|
{
|
@@ -37,7 +36,6 @@ rg_s_set_application_name(VALUE self, VALUE application_name)
|
|
37
36
|
g_set_prgname(RVAL2CSTR_ACCEPT_NIL(application_name));
|
38
37
|
return self;
|
39
38
|
}
|
40
|
-
#endif
|
41
39
|
|
42
40
|
static VALUE
|
43
41
|
rg_s_prgname(G_GNUC_UNUSED VALUE self)
|
@@ -58,7 +56,6 @@ rg_s_getenv(G_GNUC_UNUSED VALUE self, VALUE variable)
|
|
58
56
|
return CSTR2RVAL(g_getenv(RVAL2CSTR(variable)));
|
59
57
|
}
|
60
58
|
|
61
|
-
#if GLIB_CHECK_VERSION(2,4,0)
|
62
59
|
static VALUE
|
63
60
|
rg_s_setenv(G_GNUC_UNUSED VALUE self, VALUE variable, VALUE value, VALUE overwrite)
|
64
61
|
{
|
@@ -73,9 +70,7 @@ rg_s_unsetenv(VALUE self, VALUE variable)
|
|
73
70
|
g_unsetenv(RVAL2CSTR(variable));
|
74
71
|
return self;
|
75
72
|
}
|
76
|
-
#endif
|
77
73
|
|
78
|
-
#if GLIB_CHECK_VERSION(2,8,0)
|
79
74
|
#ifdef HAVE_G_LISTENV
|
80
75
|
static VALUE
|
81
76
|
rg_s_listenv(G_GNUC_UNUSED VALUE self)
|
@@ -98,7 +93,6 @@ rg_s_host_name(G_GNUC_UNUSED VALUE self)
|
|
98
93
|
{
|
99
94
|
return CSTR2RVAL(g_get_host_name());
|
100
95
|
}
|
101
|
-
#endif
|
102
96
|
|
103
97
|
static VALUE
|
104
98
|
rg_s_user_name(G_GNUC_UNUSED VALUE self)
|
@@ -112,7 +106,6 @@ rg_s_real_name(G_GNUC_UNUSED VALUE self)
|
|
112
106
|
return CSTR2RVAL(g_get_real_name());
|
113
107
|
}
|
114
108
|
|
115
|
-
#if GLIB_CHECK_VERSION(2, 6, 0)
|
116
109
|
static VALUE
|
117
110
|
rg_s_user_cache_dir(G_GNUC_UNUSED VALUE self)
|
118
111
|
{
|
@@ -142,7 +135,6 @@ rg_s_system_config_dirs(G_GNUC_UNUSED VALUE self)
|
|
142
135
|
{
|
143
136
|
return STRV2RVAL((const gchar **)g_get_system_config_dirs());
|
144
137
|
}
|
145
|
-
#endif
|
146
138
|
|
147
139
|
#if GLIB_CHECK_VERSION(2, 14, 0)
|
148
140
|
static VALUE
|
@@ -301,33 +293,25 @@ Init_glib_utils(void)
|
|
301
293
|
G_DEF_CONSTANTS(RG_TARGET_NAMESPACE, G_TYPE_USER_DIRECTORY, "G_");
|
302
294
|
#endif
|
303
295
|
|
304
|
-
#if GLIB_CHECK_VERSION(2,2,0)
|
305
296
|
RG_DEF_SMETHOD(application_name, 0);
|
306
297
|
RG_DEF_SMETHOD(set_application_name, 1);
|
307
|
-
#endif
|
308
298
|
RG_DEF_SMETHOD(prgname, 0);
|
309
299
|
RG_DEF_SMETHOD(set_prgname, 1);
|
310
300
|
RG_DEF_SMETHOD(getenv, 1);
|
311
|
-
#if GLIB_CHECK_VERSION(2,4,0)
|
312
301
|
RG_DEF_SMETHOD(setenv, 2);
|
313
302
|
RG_DEF_SMETHOD(unsetenv, 1);
|
314
|
-
#endif
|
315
|
-
#if GLIB_CHECK_VERSION(2,8,0)
|
316
303
|
#ifdef HAVE_G_LISTENV
|
317
304
|
RG_DEF_SMETHOD(listenv, 0);
|
318
305
|
#endif
|
319
306
|
RG_DEF_SMETHOD(host_name, 0);
|
320
|
-
#endif
|
321
307
|
RG_DEF_SMETHOD(user_name, 0);
|
322
308
|
RG_DEF_SMETHOD(real_name, 0);
|
323
309
|
|
324
|
-
#if GLIB_CHECK_VERSION(2, 6, 0)
|
325
310
|
RG_DEF_SMETHOD(user_cache_dir, 0);
|
326
311
|
RG_DEF_SMETHOD(user_data_dir, 0);
|
327
312
|
RG_DEF_SMETHOD(user_config_dir, 0);
|
328
313
|
RG_DEF_SMETHOD(system_data_dirs, 0);
|
329
314
|
RG_DEF_SMETHOD(system_config_dirs, 0);
|
330
|
-
#endif
|
331
315
|
#if GLIB_CHECK_VERSION(2, 14, 0)
|
332
316
|
RG_DEF_SMETHOD(get_user_special_dir, 1);
|
333
317
|
#endif
|
data/ext/glib2/rbglib_win32.c
CHANGED
@@ -45,15 +45,12 @@ rbglib_m_win32_locale_deprecated(VALUE self)
|
|
45
45
|
return rg_s_locale(self);
|
46
46
|
}
|
47
47
|
|
48
|
-
#if GLIB_CHECK_VERSION(2,6,0)
|
49
48
|
static VALUE
|
50
49
|
rg_s_version(VALUE self)
|
51
50
|
{
|
52
51
|
return UINT2NUM(g_win32_get_windows_version());
|
53
52
|
}
|
54
|
-
#endif
|
55
53
|
|
56
|
-
#if GLIB_CHECK_VERSION(2,8,0)
|
57
54
|
static VALUE
|
58
55
|
rg_s_locale_filename_from_utf8(VALUE self, VALUE utf8_filename)
|
59
56
|
{
|
@@ -68,8 +65,6 @@ rbglib_m_win32_locale_filename_from_utf8_deprecated(VALUE self,
|
|
68
65
|
return rg_s_locale_filename_from_utf8(self, utf8_filename);
|
69
66
|
}
|
70
67
|
|
71
|
-
#endif
|
72
|
-
|
73
68
|
# if GLIB_CHECK_VERSION(2, 16, 0)
|
74
69
|
static VALUE
|
75
70
|
rg_s_get_package_installation_directory_of_module(int argc,
|
@@ -105,12 +100,10 @@ Init_glib_win32(void)
|
|
105
100
|
/* Deprecated */
|
106
101
|
rbg_define_singleton_method(mGLib, "win32_locale", rbglib_m_win32_locale_deprecated, 0);
|
107
102
|
|
108
|
-
# if GLIB_CHECK_VERSION(2,8,0)
|
109
103
|
RG_DEF_SMETHOD(locale_filename_from_utf8, 1);
|
110
104
|
/* Deprecated */
|
111
105
|
rbg_define_singleton_method(mGLib, "win32_locale_filename_from_utf8",
|
112
106
|
rbglib_m_win32_locale_filename_from_utf8_deprecated, 1);
|
113
|
-
# endif
|
114
107
|
|
115
108
|
# if GLIB_CHECK_VERSION(2, 16, 0)
|
116
109
|
RG_DEF_SMETHOD(get_package_installation_directory_of_module, -1);
|
data/ext/glib2/rbgobj_object.c
CHANGED
@@ -156,22 +156,10 @@ rbgobj_get_gobject(VALUE obj)
|
|
156
156
|
return holder->gobj;
|
157
157
|
}
|
158
158
|
|
159
|
-
static VALUE
|
160
|
-
dummy_init(int argc, VALUE *argv, VALUE self)
|
161
|
-
{
|
162
|
-
GType gtype = CLASS2GTYPE(CLASS_OF(self));
|
163
|
-
if (G_TYPE_IS_ABSTRACT(gtype))
|
164
|
-
rb_raise(rb_eTypeError, "initializing abstract class");
|
165
|
-
else
|
166
|
-
return rb_call_super(argc, argv);
|
167
|
-
}
|
168
|
-
|
169
159
|
void
|
170
160
|
rbgobj_init_object_class(VALUE klass)
|
171
161
|
{
|
172
162
|
rbgobj_define_property_accessors(klass);
|
173
|
-
if (G_TYPE_IS_ABSTRACT(CLASS2GTYPE(klass)))
|
174
|
-
rbg_define_method(klass, "initialize", dummy_init, -1);
|
175
163
|
}
|
176
164
|
|
177
165
|
/**********************************************************************/
|
@@ -629,9 +617,17 @@ rg_type_name(VALUE self)
|
|
629
617
|
static VALUE
|
630
618
|
rg_initialize(int argc, VALUE *argv, VALUE self)
|
631
619
|
{
|
620
|
+
GType gtype;
|
632
621
|
VALUE params_hash;
|
633
622
|
GObject* gobj;
|
634
623
|
|
624
|
+
gtype = CLASS2GTYPE(CLASS_OF(self));
|
625
|
+
if (G_TYPE_IS_ABSTRACT(gtype)) {
|
626
|
+
rb_raise(rb_eTypeError,
|
627
|
+
"initializing abstract class: %s",
|
628
|
+
RBG_INSPECT(CLASS_OF(self)));
|
629
|
+
}
|
630
|
+
|
635
631
|
rb_scan_args(argc, argv, "01", ¶ms_hash);
|
636
632
|
|
637
633
|
if (!NIL_P(params_hash))
|
data/ext/glib2/rbgobj_strv.c
CHANGED
@@ -21,8 +21,6 @@
|
|
21
21
|
|
22
22
|
#include "rbgprivate.h"
|
23
23
|
|
24
|
-
#if GLIB_CHECK_VERSION(2,6,0)
|
25
|
-
|
26
24
|
static VALUE
|
27
25
|
strv_to_ruby(const GValue *from)
|
28
26
|
{
|
@@ -44,5 +42,3 @@ Init_gobject_gstrv(void)
|
|
44
42
|
rbgobj_register_g2r_func(G_TYPE_STRV, strv_to_ruby);
|
45
43
|
rbgobj_register_r2g_func(G_TYPE_STRV, strv_from_ruby);
|
46
44
|
}
|
47
|
-
|
48
|
-
#endif
|
@@ -35,8 +35,6 @@ rg_append_features(G_GNUC_UNUSED VALUE self, VALUE klass)
|
|
35
35
|
return rb_call_super(1, &klass);
|
36
36
|
}
|
37
37
|
|
38
|
-
#if GLIB_CHECK_VERSION(2,4,0)
|
39
|
-
|
40
38
|
static VALUE
|
41
39
|
rg_install_property(VALUE self, VALUE pspec_obj)
|
42
40
|
{
|
@@ -122,8 +120,6 @@ rg_properties(int argc, VALUE* argv, VALUE self)
|
|
122
120
|
return ary;
|
123
121
|
}
|
124
122
|
|
125
|
-
#endif
|
126
|
-
|
127
123
|
void
|
128
124
|
rbgobj_init_interface(VALUE interf)
|
129
125
|
{
|
@@ -145,11 +141,9 @@ Init_gobject_typeinterface(void)
|
|
145
141
|
RG_TARGET_NAMESPACE = rb_define_module_under(mGLib, "MetaInterface");
|
146
142
|
rbg_define_method(RG_TARGET_NAMESPACE, "gtype", generic_s_gtype, 0);
|
147
143
|
RG_DEF_METHOD(append_features, 1);
|
148
|
-
#if GLIB_CHECK_VERSION(2,4,0)
|
149
144
|
RG_DEF_METHOD(install_property, 1);
|
150
145
|
RG_DEF_METHOD(property, 1);
|
151
146
|
RG_DEF_METHOD(properties, -1);
|
152
|
-
#endif
|
153
147
|
|
154
148
|
rbgobj_mInterface = G_DEF_INTERFACE(G_TYPE_INTERFACE, "Interface", mGLib);
|
155
149
|
}
|
data/ext/glib2/rbgobj_value.c
CHANGED
@@ -367,6 +367,17 @@ rg_value(VALUE self)
|
|
367
367
|
return GVAL2RVAL(value);
|
368
368
|
}
|
369
369
|
|
370
|
+
static VALUE
|
371
|
+
rg_to_s(VALUE self)
|
372
|
+
{
|
373
|
+
GValue *value;
|
374
|
+
gchar *string_value;
|
375
|
+
|
376
|
+
value = _SELF(self);
|
377
|
+
string_value = g_strdup_value_contents(value);
|
378
|
+
return CSTR2RVAL_FREE(string_value);
|
379
|
+
}
|
380
|
+
|
370
381
|
void
|
371
382
|
Init_gobject_gvalue(void)
|
372
383
|
{
|
@@ -380,4 +391,5 @@ Init_gobject_gvalue(void)
|
|
380
391
|
RG_DEF_METHOD(initialize, 2);
|
381
392
|
RG_DEF_METHOD(type, 0);
|
382
393
|
RG_DEF_METHOD(value, 0);
|
394
|
+
RG_DEF_METHOD(to_s, 0);
|
383
395
|
}
|
data/ext/glib2/rbgobject.c
CHANGED
@@ -149,25 +149,31 @@ rbgobj_ruby_object_from_instance2(gpointer instance, gboolean alloc)
|
|
149
149
|
}
|
150
150
|
}
|
151
151
|
|
152
|
+
void
|
153
|
+
rbgobj_instance_unref(gpointer instance)
|
154
|
+
{
|
155
|
+
GType type;
|
156
|
+
|
157
|
+
type = G_TYPE_FROM_INSTANCE(instance);
|
158
|
+
if (!rbgobj_convert_unref(type, instance)) {
|
159
|
+
type = G_TYPE_FUNDAMENTAL(type);
|
160
|
+
switch (type) {
|
161
|
+
case G_TYPE_OBJECT:
|
162
|
+
g_object_unref(instance);
|
163
|
+
break;
|
164
|
+
default:
|
165
|
+
rbgobj_convert_unref(type, instance);
|
166
|
+
break;
|
167
|
+
}
|
168
|
+
}
|
169
|
+
}
|
170
|
+
|
152
171
|
VALUE
|
153
172
|
rbgobj_ruby_object_from_instance_with_unref(gpointer instance)
|
154
173
|
{
|
155
174
|
VALUE result = rbgobj_ruby_object_from_instance(instance);
|
156
175
|
if (!NIL_P(result)) {
|
157
|
-
|
158
|
-
|
159
|
-
type = G_TYPE_FROM_INSTANCE(instance);
|
160
|
-
if (!rbgobj_convert_unref(type, instance)) {
|
161
|
-
type = G_TYPE_FUNDAMENTAL(type);
|
162
|
-
switch (type) {
|
163
|
-
case G_TYPE_OBJECT:
|
164
|
-
g_object_unref(instance);
|
165
|
-
break;
|
166
|
-
default:
|
167
|
-
rbgobj_convert_unref(type, instance);
|
168
|
-
break;
|
169
|
-
}
|
170
|
-
}
|
176
|
+
rbgobj_instance_unref(instance);
|
171
177
|
}
|
172
178
|
return result;
|
173
179
|
}
|
@@ -265,11 +271,9 @@ rbgobj_define_property_accessors(VALUE klass)
|
|
265
271
|
gtype = CLASS2GTYPE(klass);
|
266
272
|
|
267
273
|
if (G_TYPE_IS_INTERFACE(gtype)){
|
268
|
-
#if GLIB_CHECK_VERSION(2,4,0)
|
269
274
|
gpointer iface = g_type_default_interface_ref(gtype);
|
270
275
|
pspecs = g_object_interface_list_properties(iface, &n_properties);
|
271
276
|
g_type_default_interface_unref(iface);
|
272
|
-
#endif
|
273
277
|
} else {
|
274
278
|
GObjectClass* oclass = G_OBJECT_CLASS(g_type_class_ref(gtype));
|
275
279
|
pspecs = g_object_class_list_properties(oclass, &n_properties);
|
@@ -369,9 +373,7 @@ Init_gobject(void)
|
|
369
373
|
Init_gobject_gvalue();
|
370
374
|
Init_gobject_gvaluetypes();
|
371
375
|
Init_gobject_gboxed();
|
372
|
-
#if GLIB_CHECK_VERSION(2,6,0)
|
373
376
|
Init_gobject_gstrv();
|
374
|
-
#endif
|
375
377
|
Init_gobject_value_array();
|
376
378
|
Init_gobject_genumflags();
|
377
379
|
Init_gobject_gparam();
|