glib2 1.0.3 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (78) hide show
  1. data/ext/glib2/extconf.rb +1 -0
  2. data/ext/glib2/glib2.def +23 -0
  3. data/ext/glib2/rbgcompat.h +19 -5
  4. data/ext/glib2/rbglib.c +607 -160
  5. data/ext/glib2/rbglib.h +81 -26
  6. data/ext/glib2/rbglib2conversions.h +57 -0
  7. data/ext/glib2/rbglib_bookmarkfile.c +117 -107
  8. data/ext/glib2/rbglib_completion.c +37 -26
  9. data/ext/glib2/rbglib_convert.c +42 -30
  10. data/ext/glib2/rbglib_error.c +20 -10
  11. data/ext/glib2/rbglib_fileutils.c +48 -37
  12. data/ext/glib2/rbglib_i18n.c +24 -14
  13. data/ext/glib2/rbglib_int64.c +24 -16
  14. data/ext/glib2/rbglib_iochannel.c +146 -204
  15. data/ext/glib2/rbglib_iochannel_win32_socket.c +56 -0
  16. data/ext/glib2/rbglib_iochannelerror.c +49 -0
  17. data/ext/glib2/rbglib_keyfile.c +171 -182
  18. data/ext/glib2/rbglib_maincontext.c +107 -92
  19. data/ext/glib2/rbglib_mainloop.c +34 -21
  20. data/ext/glib2/rbglib_messages.c +53 -44
  21. data/ext/glib2/rbglib_pollfd.c +37 -26
  22. data/ext/glib2/rbglib_shell.c +29 -22
  23. data/ext/glib2/rbglib_shellerror.c +34 -0
  24. data/ext/glib2/rbglib_source.c +49 -36
  25. data/ext/glib2/rbglib_spawn.c +50 -61
  26. data/ext/glib2/rbglib_spawnerror.c +53 -0
  27. data/ext/glib2/rbglib_threads.c +28 -16
  28. data/ext/glib2/rbglib_timer.c +35 -24
  29. data/ext/glib2/rbglib_ucs4.c +79 -0
  30. data/ext/glib2/rbglib_unichar.c +209 -0
  31. data/ext/glib2/rbglib_unicode.c +34 -584
  32. data/ext/glib2/rbglib_utf16.c +78 -0
  33. data/ext/glib2/rbglib_utf8.c +259 -0
  34. data/ext/glib2/rbglib_utils.c +95 -91
  35. data/ext/glib2/rbglib_win32.c +52 -45
  36. data/ext/glib2/rbglibdeprecated.c +56 -0
  37. data/ext/glib2/rbglibdeprecated.h +34 -0
  38. data/ext/glib2/rbgobj_boxed.c +40 -33
  39. data/ext/glib2/rbgobj_closure.c +45 -34
  40. data/ext/glib2/rbgobj_convert.c +19 -9
  41. data/ext/glib2/rbgobj_enumflags.c +109 -0
  42. data/ext/glib2/rbgobj_enums.c +67 -646
  43. data/ext/glib2/rbgobj_flags.c +522 -0
  44. data/ext/glib2/rbgobj_fundamental.c +19 -6
  45. data/ext/glib2/rbgobj_object.c +90 -81
  46. data/ext/glib2/rbgobj_param.c +78 -83
  47. data/ext/glib2/rbgobj_paramspecs.c +20 -12
  48. data/ext/glib2/rbgobj_signal.c +248 -193
  49. data/ext/glib2/rbgobj_strv.c +20 -10
  50. data/ext/glib2/rbgobj_type.c +153 -149
  51. data/ext/glib2/rbgobj_typeinstance.c +49 -39
  52. data/ext/glib2/rbgobj_typeinterface.c +37 -27
  53. data/ext/glib2/rbgobj_typemodule.c +39 -29
  54. data/ext/glib2/rbgobj_typeplugin.c +36 -26
  55. data/ext/glib2/rbgobj_value.c +41 -11
  56. data/ext/glib2/rbgobj_valuearray.c +59 -23
  57. data/ext/glib2/rbgobj_valuetypes.c +27 -17
  58. data/ext/glib2/rbgobject.c +26 -40
  59. data/ext/glib2/rbgobject.h +38 -20
  60. data/ext/glib2/rbgprivate.h +87 -5
  61. data/ext/glib2/rbgutil.c +52 -238
  62. data/ext/glib2/rbgutil.h +55 -42
  63. data/ext/glib2/rbgutil_callback.c +47 -12
  64. data/ext/glib2/rbgutil_list.c +173 -0
  65. data/ext/glib2/rbgutil_list.h +85 -0
  66. data/ext/glib2/rbgutildeprecated.c +252 -0
  67. data/ext/glib2/rbgutildeprecated.h +63 -0
  68. data/lib/glib-mkenums.rb +2 -2
  69. data/lib/glib2.rb +2 -25
  70. data/lib/glib2/deprecatable.rb +149 -0
  71. data/lib/gnome2-raketask.rb +45 -15
  72. data/lib/gnome2-win32-binary-downloader.rb +1 -1
  73. data/lib/mkmf-gnome2.rb +37 -18
  74. data/test/test_flags.rb +129 -0
  75. data/test/test_key_file.rb +6 -2
  76. data/test/test_spawn.rb +33 -0
  77. metadata +26 -7
  78. data/ChangeLog +0 -3513
@@ -1,13 +1,23 @@
1
1
  /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
- /**********************************************************************
3
-
4
- rbgobj_gstrv.c -
5
-
6
- $Author: sakai $
7
- $Date: 2007/07/07 08:46:50 $
8
-
9
- Copyright (C) 2005 Masao Mutoh
10
- **********************************************************************/
2
+ /*
3
+ * Copyright (C) 2011 Ruby-GNOME2 Project Team
4
+ * Copyright (C) 2005 Masao Mutoh
5
+ *
6
+ * This library is free software; you can redistribute it and/or
7
+ * modify it under the terms of the GNU Lesser General Public
8
+ * License as published by the Free Software Foundation; either
9
+ * version 2.1 of the License, or (at your option) any later version.
10
+ *
11
+ * This library is distributed in the hope that it will be useful,
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
+ * Lesser General Public License for more details.
15
+ *
16
+ * You should have received a copy of the GNU Lesser General Public
17
+ * License along with this library; if not, write to the Free Software
18
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
+ * MA 02110-1301 USA
20
+ */
11
21
 
12
22
  #include "rbgprivate.h"
13
23
 
@@ -28,7 +38,7 @@ strv_from_ruby(VALUE from, GValue *to)
28
38
  }
29
39
 
30
40
  void
31
- Init_gobject_gstrv()
41
+ Init_gobject_gstrv(void)
32
42
  {
33
43
  /* GStrv is treated as Array */
34
44
  rbgobj_register_g2r_func(G_TYPE_STRV, strv_to_ruby);
@@ -1,19 +1,29 @@
1
1
  /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
- /**********************************************************************
3
-
4
- rbgobj_type.c -
5
-
6
- $Author: sakai $
7
- $Date: 2007/07/16 03:35:53 $
8
- created at: Sun Jun 9 20:31:47 JST 2002
9
-
10
- Copyright (C) 2002-2009 Ruby-GNOME2 Project Team
11
- Copyright (C) 2002,2003 Masahiro Sakai
12
-
13
- **********************************************************************/
2
+ /*
3
+ * Copyright (C) 2011 Ruby-GNOME2 Project Team
4
+ * Copyright (C) 2002-2009 Ruby-GNOME2 Project Team
5
+ * Copyright (C) 2002,2003 Masahiro Sakai
6
+ *
7
+ * This library is free software; you can redistribute it and/or
8
+ * modify it under the terms of the GNU Lesser General Public
9
+ * License as published by the Free Software Foundation; either
10
+ * version 2.1 of the License, or (at your option) any later version.
11
+ *
12
+ * This library is distributed in the hope that it will be useful,
13
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
+ * Lesser General Public License for more details.
16
+ *
17
+ * You should have received a copy of the GNU Lesser General Public
18
+ * License along with this library; if not, write to the Free Software
19
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
20
+ * MA 02110-1301 USA
21
+ */
14
22
 
15
23
  #include "rbgprivate.h"
16
24
 
25
+ #define RG_TARGET_NAMESPACE rbgobj_cType
26
+
17
27
  /**********************************************************************/
18
28
  /* Type Mapping */
19
29
 
@@ -52,7 +62,6 @@ cinfo_mark(RGObjClassInfo* cinfo)
52
62
  rb_gc_mark(cinfo->klass);
53
63
  }
54
64
 
55
-
56
65
  const RGObjClassInfo *
57
66
  rbgobj_lookup_class(VALUE klass)
58
67
  {
@@ -77,8 +86,8 @@ rbgobj_lookup_class(VALUE klass)
77
86
  }
78
87
 
79
88
  static const RGObjClassInfo *rbgobj_lookup_class_by_gtype_without_lock(GType gtype,
80
- VALUE parent,
81
- gboolean create_class);
89
+ VALUE parent,
90
+ gboolean create_class);
82
91
 
83
92
  static VALUE
84
93
  get_superclass(GType gtype)
@@ -106,12 +115,12 @@ get_superclass(GType gtype)
106
115
  default:
107
116
  {
108
117
  const RGObjClassInfo *cinfo_super;
109
- GType parent_type;
118
+ GType parent_type;
110
119
 
111
- parent_type = g_type_parent(gtype);
112
- cinfo_super = rbgobj_lookup_class_by_gtype_without_lock(parent_type,
113
- Qnil,
114
- TRUE);
120
+ parent_type = g_type_parent(gtype);
121
+ cinfo_super = rbgobj_lookup_class_by_gtype_without_lock(parent_type,
122
+ Qnil,
123
+ TRUE);
115
124
  return cinfo_super->klass;
116
125
  }
117
126
  }
@@ -119,7 +128,7 @@ get_superclass(GType gtype)
119
128
 
120
129
  static const RGObjClassInfo *
121
130
  rbgobj_lookup_class_by_gtype_without_lock(GType gtype, VALUE parent,
122
- gboolean create_class)
131
+ gboolean create_class)
123
132
  {
124
133
  GType fundamental_type;
125
134
  RGObjClassInfo* cinfo;
@@ -135,7 +144,7 @@ rbgobj_lookup_class_by_gtype_without_lock(GType gtype, VALUE parent,
135
144
  return cinfo;
136
145
 
137
146
  if (!create_class)
138
- return NULL;
147
+ return NULL;
139
148
 
140
149
  c = Data_Make_Struct(rb_cData, RGObjClassInfo, cinfo_mark, NULL, cinfo);
141
150
  cinfo->gtype = gtype;
@@ -154,11 +163,11 @@ rbgobj_lookup_class_by_gtype_without_lock(GType gtype, VALUE parent,
154
163
  if (NIL_P(parent)) parent = get_superclass(gtype);
155
164
  cinfo->klass = rb_funcall(rb_cClass, id_new, 1, parent);
156
165
  break;
157
-
166
+
158
167
  case G_TYPE_INTERFACE:
159
168
  cinfo->klass = rb_module_new();
160
169
  break;
161
-
170
+
162
171
  default:
163
172
  if (NIL_P(parent)) parent = get_superclass(gtype);
164
173
  if (NIL_P(parent)) {
@@ -173,7 +182,7 @@ rbgobj_lookup_class_by_gtype_without_lock(GType gtype, VALUE parent,
173
182
  }
174
183
 
175
184
  cinfod = (RGObjClassInfoDynamic *)g_hash_table_lookup(dynamic_gtype_list,
176
- g_type_name(gtype));
185
+ g_type_name(gtype));
177
186
  if (cinfod){
178
187
  cinfo->mark = cinfod->mark;
179
188
  cinfo->free = cinfod->free;
@@ -182,10 +191,10 @@ rbgobj_lookup_class_by_gtype_without_lock(GType gtype, VALUE parent,
182
191
 
183
192
  rb_hash_aset(klass_to_cinfo, cinfo->klass, c);
184
193
  g_hash_table_insert(gtype_to_cinfo, GUINT_TO_POINTER(gtype), cinfo);
185
-
194
+
186
195
  if (G_TYPE_IS_CLASSED(gtype))
187
196
  gclass = g_type_class_ref(gtype);
188
-
197
+
189
198
  if (G_TYPE_IS_INSTANTIATABLE(gtype) || G_TYPE_IS_INTERFACE(gtype))
190
199
  rbgobj_define_action_methods(cinfo->klass);
191
200
 
@@ -196,11 +205,11 @@ rbgobj_lookup_class_by_gtype_without_lock(GType gtype, VALUE parent,
196
205
 
197
206
  interfaces = g_type_interfaces(gtype, &n_interfaces);
198
207
  for (i = 0; i < n_interfaces; i++){
199
- const RGObjClassInfo *iface_cinfo;
200
- iface_cinfo =
201
- rbgobj_lookup_class_by_gtype_without_lock(interfaces[i],
202
- Qnil,
203
- TRUE);
208
+ const RGObjClassInfo *iface_cinfo;
209
+ iface_cinfo =
210
+ rbgobj_lookup_class_by_gtype_without_lock(interfaces[i],
211
+ Qnil,
212
+ TRUE);
204
213
  rb_include_module(cinfo->klass, iface_cinfo->klass);
205
214
  }
206
215
  g_free(interfaces);
@@ -239,13 +248,13 @@ rbgobj_lookup_class_by_gtype_body(VALUE data)
239
248
  const RGObjClassInfo *cinfo;
240
249
 
241
250
  cinfo = rbgobj_lookup_class_by_gtype_without_lock(cdata->gtype,
242
- cdata->parent,
243
- cdata->create_class);
251
+ cdata->parent,
252
+ cdata->create_class);
244
253
  return (VALUE)cinfo;
245
254
  }
246
255
 
247
256
  static VALUE
248
- rbgobj_lookup_class_by_gtype_ensure(VALUE data)
257
+ rbgobj_lookup_class_by_gtype_ensure(G_GNUC_UNUSED VALUE data)
249
258
  {
250
259
  rb_funcall(lookup_class_mutex, id_unlock, 0);
251
260
  return Qundef;
@@ -259,7 +268,7 @@ rbgobj_lookup_class_by_gtype(GType gtype, VALUE parent)
259
268
 
260
269
  const RGObjClassInfo *
261
270
  rbgobj_lookup_class_by_gtype_full(GType gtype, VALUE parent,
262
- gboolean create_class)
271
+ gboolean create_class)
263
272
  {
264
273
  RGObjClassByGtypeData data;
265
274
 
@@ -268,14 +277,14 @@ rbgobj_lookup_class_by_gtype_full(GType gtype, VALUE parent,
268
277
  data.create_class = create_class;
269
278
 
270
279
  if (create_class) {
271
- rb_funcall(lookup_class_mutex, id_lock, 0);
272
- return (RGObjClassInfo *)rb_ensure(rbgobj_lookup_class_by_gtype_body,
273
- (VALUE)&data,
274
- rbgobj_lookup_class_by_gtype_ensure,
275
- (VALUE)&data);
280
+ rb_funcall(lookup_class_mutex, id_lock, 0);
281
+ return (RGObjClassInfo *)rb_ensure(rbgobj_lookup_class_by_gtype_body,
282
+ (VALUE)&data,
283
+ rbgobj_lookup_class_by_gtype_ensure,
284
+ (VALUE)&data);
276
285
  } else {
277
- return rbgobj_lookup_class_by_gtype_without_lock(gtype, parent,
278
- create_class);
286
+ return rbgobj_lookup_class_by_gtype_without_lock(gtype, parent,
287
+ create_class);
279
288
  }
280
289
  }
281
290
 
@@ -325,16 +334,16 @@ rbgobj_register_class(VALUE klass,
325
334
  VALUE c = Qnil;
326
335
 
327
336
  if (klass2gtype)
328
- c = Data_Make_Struct(rb_cData, RGObjClassInfo, cinfo_mark, NULL, cinfo);
337
+ c = Data_Make_Struct(rb_cData, RGObjClassInfo, cinfo_mark, NULL, cinfo);
329
338
  if (gtype2klass && !cinfo)
330
- cinfo = g_new(RGObjClassInfo, 1);
339
+ cinfo = g_new(RGObjClassInfo, 1);
331
340
 
332
341
  if (cinfo) {
333
- cinfo->klass = klass;
334
- cinfo->gtype = gtype;
335
- cinfo->mark = NULL;
336
- cinfo->free = NULL;
337
- cinfo->flags = 0;
342
+ cinfo->klass = klass;
343
+ cinfo->gtype = gtype;
344
+ cinfo->mark = NULL;
345
+ cinfo->free = NULL;
346
+ cinfo->flags = 0;
338
347
  }
339
348
 
340
349
  if (klass2gtype)
@@ -351,7 +360,7 @@ rbgobj_register_class(VALUE klass,
351
360
  rbgobj_register_class(klass, gtype, FALSE, TRUE)
352
361
 
353
362
  static void
354
- Init_typemap()
363
+ init_typemap(void)
355
364
  {
356
365
  id_new = rb_intern("new");
357
366
  id_superclass = rb_intern("superclass");
@@ -391,13 +400,13 @@ Init_typemap()
391
400
  /**********************************************************************/
392
401
  /* GLib::Type */
393
402
 
394
- VALUE rbgobj_cType;
403
+ VALUE RG_TARGET_NAMESPACE;
395
404
  static ID id_gtype;
396
405
 
397
406
  VALUE
398
407
  rbgobj_gtype_new(GType gtype)
399
408
  {
400
- VALUE result = rb_obj_alloc(rbgobj_cType);
409
+ VALUE result = rb_obj_alloc(RG_TARGET_NAMESPACE);
401
410
  VALUE arg = ULONG2NUM(gtype);
402
411
  rb_obj_call_init(result, 1, &arg);
403
412
  return result;
@@ -406,7 +415,7 @@ rbgobj_gtype_new(GType gtype)
406
415
  GType
407
416
  rbgobj_gtype_get(VALUE self)
408
417
  {
409
- if (RVAL2CBOOL(rb_obj_is_kind_of(self, rbgobj_cType))) {
418
+ if (RVAL2CBOOL(rb_obj_is_kind_of(self, RG_TARGET_NAMESPACE))) {
410
419
  return NUM2ULONG(rb_ivar_get(self, id_gtype));
411
420
  } else {
412
421
  return CLASS2GTYPE(self);
@@ -415,7 +424,7 @@ rbgobj_gtype_get(VALUE self)
415
424
  }
416
425
 
417
426
  static VALUE
418
- type_initialize(VALUE self, VALUE type)
427
+ rg_initialize(VALUE self, VALUE type)
419
428
  {
420
429
  GType gtype;
421
430
 
@@ -432,12 +441,12 @@ type_initialize(VALUE self, VALUE type)
432
441
  rb_raise(rb_eArgError, "invalid type");
433
442
 
434
443
  rb_ivar_set(self, id_gtype, UINT2NUM(gtype));
435
-
444
+
436
445
  return Qnil;
437
446
  }
438
447
 
439
448
  static VALUE
440
- type_inspect(VALUE self)
449
+ rg_inspect(VALUE self)
441
450
  {
442
451
  GType gtype = rbgobj_gtype_get(self);
443
452
  gchar* str;
@@ -451,9 +460,9 @@ type_inspect(VALUE self)
451
460
  }
452
461
 
453
462
  static VALUE
454
- type_compare(VALUE self, VALUE other)
463
+ rg_operator_type_compare(VALUE self, VALUE other)
455
464
  {
456
- if (!RVAL2CBOOL(rb_obj_is_kind_of(other, rbgobj_cType)))
465
+ if (!RVAL2CBOOL(rb_obj_is_kind_of(other, RG_TARGET_NAMESPACE)))
457
466
  return Qnil;
458
467
  else {
459
468
  GType a = rbgobj_gtype_get(self);
@@ -471,9 +480,9 @@ type_compare(VALUE self, VALUE other)
471
480
  }
472
481
 
473
482
  static VALUE
474
- type_eq(VALUE self, VALUE other)
483
+ rg_operator_type_eq(VALUE self, VALUE other)
475
484
  {
476
- if (!RVAL2CBOOL(rb_obj_is_kind_of(other, rbgobj_cType)))
485
+ if (!RVAL2CBOOL(rb_obj_is_kind_of(other, RG_TARGET_NAMESPACE)))
477
486
  return Qnil;
478
487
  else {
479
488
  GType a = rbgobj_gtype_get(self);
@@ -483,9 +492,9 @@ type_eq(VALUE self, VALUE other)
483
492
  }
484
493
 
485
494
  static VALUE
486
- type_lt_eq(VALUE self, VALUE other)
495
+ rg_operator_type_lt_eq(VALUE self, VALUE other)
487
496
  {
488
- if (!RVAL2CBOOL(rb_obj_is_kind_of(other, rbgobj_cType)))
497
+ if (!RVAL2CBOOL(rb_obj_is_kind_of(other, RG_TARGET_NAMESPACE)))
489
498
  return Qnil;
490
499
  else {
491
500
  GType a = rbgobj_gtype_get(self);
@@ -495,9 +504,9 @@ type_lt_eq(VALUE self, VALUE other)
495
504
  }
496
505
 
497
506
  static VALUE
498
- type_gt_eq(VALUE self, VALUE other)
507
+ rg_operator_type_gt_eq(VALUE self, VALUE other)
499
508
  {
500
- if (!RVAL2CBOOL(rb_obj_is_kind_of(other, rbgobj_cType)))
509
+ if (!RVAL2CBOOL(rb_obj_is_kind_of(other, RG_TARGET_NAMESPACE)))
501
510
  return Qnil;
502
511
  else {
503
512
  GType a = rbgobj_gtype_get(self);
@@ -507,9 +516,9 @@ type_gt_eq(VALUE self, VALUE other)
507
516
  }
508
517
 
509
518
  static VALUE
510
- type_lt(VALUE self, VALUE other)
519
+ rg_operator_type_lt(VALUE self, VALUE other)
511
520
  {
512
- if (!RVAL2CBOOL(rb_obj_is_kind_of(other, rbgobj_cType)))
521
+ if (!RVAL2CBOOL(rb_obj_is_kind_of(other, RG_TARGET_NAMESPACE)))
513
522
  return Qnil;
514
523
  else {
515
524
  GType a = rbgobj_gtype_get(self);
@@ -519,9 +528,9 @@ type_lt(VALUE self, VALUE other)
519
528
  }
520
529
 
521
530
  static VALUE
522
- type_gt(VALUE self, VALUE other)
531
+ rg_operator_type_gt(VALUE self, VALUE other)
523
532
  {
524
- if (!RVAL2CBOOL(rb_obj_is_kind_of(other, rbgobj_cType)))
533
+ if (!RVAL2CBOOL(rb_obj_is_kind_of(other, RG_TARGET_NAMESPACE)))
525
534
  return Qnil;
526
535
  else {
527
536
  GType a = rbgobj_gtype_get(self);
@@ -531,110 +540,110 @@ type_gt(VALUE self, VALUE other)
531
540
  }
532
541
 
533
542
  static VALUE
534
- type_to_int(VALUE self)
543
+ rg_hash(VALUE self)
535
544
  {
536
545
  return rb_ivar_get(self, id_gtype);
537
546
  }
538
547
 
539
548
  static VALUE
540
- type_to_class(VALUE self)
549
+ rg_to_class(VALUE self)
541
550
  {
542
551
  return GTYPE2CLASS(rbgobj_gtype_get(self));
543
552
  }
544
553
 
545
554
  static VALUE
546
- type_fundamental(VALUE self)
555
+ rg_fundamental(VALUE self)
547
556
  {
548
557
  return rbgobj_gtype_new(G_TYPE_FUNDAMENTAL(rbgobj_gtype_get(self)));
549
558
  }
550
559
 
551
560
  static VALUE
552
- type_is_fundamental(VALUE self)
561
+ rg_fundamental_p(VALUE self)
553
562
  {
554
563
  return CBOOL2RVAL(G_TYPE_IS_FUNDAMENTAL(rbgobj_gtype_get(self)));
555
564
  }
556
565
 
557
566
  static VALUE
558
- type_is_derived(VALUE self)
567
+ rg_derived_p(VALUE self)
559
568
  {
560
569
  return CBOOL2RVAL(G_TYPE_IS_DERIVED(rbgobj_gtype_get(self)));
561
570
  }
562
571
 
563
572
  static VALUE
564
- type_is_interface(VALUE self)
573
+ rg_interface_p(VALUE self)
565
574
  {
566
575
  return CBOOL2RVAL(G_TYPE_IS_INTERFACE(rbgobj_gtype_get(self)));
567
576
  }
568
577
 
569
578
  static VALUE
570
- type_is_classed(VALUE self)
579
+ rg_classed_p(VALUE self)
571
580
  {
572
581
  return CBOOL2RVAL(G_TYPE_IS_CLASSED(rbgobj_gtype_get(self)));
573
582
  }
574
583
 
575
584
  static VALUE
576
- type_is_instantiatable(VALUE self)
585
+ rg_instantiatable_p(VALUE self)
577
586
  {
578
587
  return CBOOL2RVAL(G_TYPE_IS_INSTANTIATABLE(rbgobj_gtype_get(self)));
579
588
  }
580
589
 
581
590
  static VALUE
582
- type_is_derivable(VALUE self)
591
+ rg_derivable_p(VALUE self)
583
592
  {
584
593
  return CBOOL2RVAL(G_TYPE_IS_DERIVABLE(rbgobj_gtype_get(self)));
585
594
  }
586
595
 
587
596
  static VALUE
588
- type_is_deep_derivable(VALUE self)
597
+ rg_deep_derivable_p(VALUE self)
589
598
  {
590
599
  return CBOOL2RVAL(G_TYPE_IS_DEEP_DERIVABLE(rbgobj_gtype_get(self)));
591
600
  }
592
601
 
593
602
  static VALUE
594
- type_is_abstract(VALUE self)
603
+ rg_abstract_p(VALUE self)
595
604
  {
596
605
  return CBOOL2RVAL(G_TYPE_IS_ABSTRACT(rbgobj_gtype_get(self)));
597
606
  }
598
607
 
599
608
  static VALUE
600
- type_is_value_abstract(VALUE self)
609
+ rg_value_abstract_p(VALUE self)
601
610
  {
602
611
  return CBOOL2RVAL(G_TYPE_IS_VALUE_ABSTRACT(rbgobj_gtype_get(self)));
603
612
  }
604
613
 
605
614
  static VALUE
606
- type_is_value_type(VALUE self)
615
+ rg_value_type_p(VALUE self)
607
616
  {
608
617
  return CBOOL2RVAL(G_TYPE_IS_VALUE_TYPE(rbgobj_gtype_get(self)));
609
618
  }
610
619
 
611
620
  static VALUE
612
- type_has_value_table(VALUE self)
621
+ rg_has_value_table(VALUE self)
613
622
  {
614
623
  return CBOOL2RVAL(G_TYPE_HAS_VALUE_TABLE(rbgobj_gtype_get(self)));
615
624
  }
616
625
 
617
626
  static VALUE
618
- type_name(VALUE self)
627
+ rg_name(VALUE self)
619
628
  {
620
629
  return rb_str_new2(g_type_name(rbgobj_gtype_get(self)));
621
630
  }
622
631
 
623
632
  static VALUE
624
- type_parent(VALUE self)
633
+ rg_parent(VALUE self)
625
634
  {
626
635
  GType parent = g_type_parent(rbgobj_gtype_get(self));
627
636
  return parent ? rbgobj_gtype_new(parent) : Qnil;
628
637
  }
629
638
 
630
639
  static VALUE
631
- type_depth(VALUE self)
640
+ rg_depth(VALUE self)
632
641
  {
633
642
  return UINT2NUM(g_type_depth(rbgobj_gtype_get(self)));
634
643
  }
635
644
 
636
645
  static VALUE
637
- type_next_base(VALUE leaf_type, VALUE root_type)
646
+ rg_next_base(VALUE leaf_type, VALUE root_type)
638
647
  {
639
648
  GType ret = g_type_next_base(rbgobj_gtype_get(leaf_type),
640
649
  rbgobj_gtype_get(root_type));
@@ -642,7 +651,7 @@ type_next_base(VALUE leaf_type, VALUE root_type)
642
651
  }
643
652
 
644
653
  static VALUE
645
- type_is_a(VALUE self, VALUE is_a_type)
654
+ rg_type_is_a_p(VALUE self, VALUE is_a_type)
646
655
  {
647
656
  return CBOOL2RVAL(g_type_is_a(rbgobj_gtype_get(self), rbgobj_gtype_get(is_a_type)));
648
657
  }
@@ -653,12 +662,12 @@ gpointer g_type_class_peek (GType type);
653
662
  void g_type_class_unref (gpointer g_class);
654
663
  gpointer g_type_class_peek_parent (gpointer g_class);
655
664
  gpointer g_type_interface_peek (gpointer instance_class,
656
- GType iface_type);
665
+ GType iface_type);
657
666
  gpointer g_type_interface_peek_parent (gpointer g_iface);
658
667
  #endif
659
668
 
660
669
  static VALUE
661
- type_children(VALUE self)
670
+ rg_children(VALUE self)
662
671
  {
663
672
  guint n_children;
664
673
  GType* types;
@@ -675,7 +684,7 @@ type_children(VALUE self)
675
684
  }
676
685
 
677
686
  static VALUE
678
- type_interfaces(VALUE self)
687
+ rg_interfaces(VALUE self)
679
688
  {
680
689
  guint n_interfaces;
681
690
  GType* types;
@@ -692,7 +701,7 @@ type_interfaces(VALUE self)
692
701
  }
693
702
 
694
703
  static VALUE
695
- type_class_size(VALUE self)
704
+ rg_class_size(VALUE self)
696
705
  {
697
706
  GTypeQuery query;
698
707
  g_type_query(rbgobj_gtype_get(self), &query);
@@ -700,25 +709,30 @@ type_class_size(VALUE self)
700
709
  }
701
710
 
702
711
  static VALUE
703
- type_instance_size(VALUE self)
712
+ rg_instance_size(VALUE self)
704
713
  {
705
714
  GTypeQuery query;
706
715
  g_type_query(rbgobj_gtype_get(self), &query);
707
716
  return UINT2NUM(query.instance_size);
708
717
  }
709
718
 
710
-
711
719
  static inline void
712
720
  _def_fundamental_type(VALUE ary, GType gtype, const char* name)
713
721
  {
714
722
  VALUE c = rbgobj_gtype_new(gtype);
715
- rb_define_const(rbgobj_cType, name, c);
723
+ rb_define_const(RG_TARGET_NAMESPACE, name, c);
716
724
  rb_ary_push(ary, c);
717
725
  }
718
726
 
719
- static void
720
- Init_type()
727
+ /**********************************************************************/
728
+
729
+ void
730
+ Init_gobject_gtype(void)
721
731
  {
732
+ g_type_init();
733
+ init_typemap();
734
+
735
+ /* type */
722
736
  rb_cMutex = rb_const_get(rb_cObject, rb_intern("Mutex"));
723
737
  id_lock = rb_intern("lock");
724
738
  id_unlock = rb_intern("unlock");
@@ -728,50 +742,50 @@ Init_type()
728
742
  dynamic_gtype_list = g_hash_table_new(g_str_hash, g_str_equal);
729
743
  id_gtype = rb_intern("__gobject_gtype__");
730
744
 
731
- rbgobj_cType = rb_define_class_under(mGLib, "Type", rb_cObject);
732
-
733
- rb_define_alias(CLASS_OF(rbgobj_cType), "[]", "new");
734
- rb_define_method(rbgobj_cType, "initialize", type_initialize, 1);
735
- rb_define_method(rbgobj_cType, "inspect", type_inspect, 0);
736
- rb_define_method(rbgobj_cType, "<=>", type_compare, 1);
737
- rb_define_method(rbgobj_cType, "==", type_eq, 1);
738
- rb_define_method(rbgobj_cType, "<=", type_lt_eq, 1);
739
- rb_define_method(rbgobj_cType, ">=", type_gt_eq, 1);
740
- rb_define_method(rbgobj_cType, "<", type_lt, 1);
741
- rb_define_method(rbgobj_cType, ">", type_gt, 1);
742
- rb_define_method(rbgobj_cType, "eql?", type_eq, 1);
743
- rb_define_method(rbgobj_cType, "hash", type_to_int, 0);
744
- rb_define_method(rbgobj_cType, "to_i", type_to_int, 0);
745
- rb_define_method(rbgobj_cType, "to_int", type_to_int, 0);
746
- rb_define_method(rbgobj_cType, "to_class", type_to_class, 0);
747
-
748
- rb_define_method(rbgobj_cType, "fundamental", type_fundamental, 0);
749
- rb_define_method(rbgobj_cType, "fundamental?", type_is_fundamental, 0);
750
- rb_define_method(rbgobj_cType, "derived?", type_is_derived, 0);
751
- rb_define_method(rbgobj_cType, "interface?", type_is_interface, 0);
752
- rb_define_method(rbgobj_cType, "classed?", type_is_classed, 0);
753
- rb_define_method(rbgobj_cType, "instantiatable?", type_is_instantiatable, 0);
754
- rb_define_method(rbgobj_cType, "derivable?", type_is_derivable, 0);
755
- rb_define_method(rbgobj_cType, "deep_derivable?", type_is_deep_derivable, 0);
756
- rb_define_method(rbgobj_cType, "abstract?", type_is_abstract, 0);
757
- rb_define_method(rbgobj_cType, "value_abstract?", type_is_value_abstract, 0);
758
- rb_define_method(rbgobj_cType, "value_type?", type_is_value_type, 0);
759
- rb_define_method(rbgobj_cType, "has_value_table", type_has_value_table, 0);
760
-
761
- rb_define_method(rbgobj_cType, "name", type_name, 0);
762
- rb_define_method(rbgobj_cType, "to_s", type_name, 0);
763
- rb_define_method(rbgobj_cType, "parent", type_parent, 0);
764
- rb_define_method(rbgobj_cType, "depth", type_depth, 0);
765
- rb_define_method(rbgobj_cType, "next_base", type_next_base, 1);
766
- rb_define_method(rbgobj_cType, "type_is_a?", type_is_a, 1);
767
- rb_define_method(rbgobj_cType, "children", type_children, 0);
768
- rb_define_method(rbgobj_cType, "interfaces", type_interfaces, 0);
769
- rb_define_method(rbgobj_cType, "class_size", type_class_size, 0);
770
- rb_define_method(rbgobj_cType, "instance_size", type_instance_size, 0);
745
+ RG_TARGET_NAMESPACE = rb_define_class_under(mGLib, "Type", rb_cObject);
746
+
747
+ rb_define_alias(CLASS_OF(RG_TARGET_NAMESPACE), "[]", "new");
748
+ RG_DEF_METHOD(initialize, 1);
749
+ RG_DEF_METHOD(inspect, 0);
750
+ RG_DEF_METHOD_OPERATOR("<=>", type_compare, 1);
751
+ RG_DEF_METHOD_OPERATOR("==", type_eq, 1);
752
+ RG_DEF_METHOD_OPERATOR("<=", type_lt_eq, 1);
753
+ RG_DEF_METHOD_OPERATOR(">=", type_gt_eq, 1);
754
+ RG_DEF_METHOD_OPERATOR("<", type_lt, 1);
755
+ RG_DEF_METHOD_OPERATOR(">", type_gt, 1);
756
+ RG_DEF_ALIAS("eql?", "==");
757
+ RG_DEF_METHOD(hash, 0);
758
+ RG_DEF_ALIAS("to_i", "hash");
759
+ RG_DEF_ALIAS("to_int", "hash");
760
+ RG_DEF_METHOD(to_class, 0);
761
+
762
+ RG_DEF_METHOD(fundamental, 0);
763
+ RG_DEF_METHOD_P(fundamental, 0);
764
+ RG_DEF_METHOD_P(derived, 0);
765
+ RG_DEF_METHOD_P(interface, 0);
766
+ RG_DEF_METHOD_P(classed, 0);
767
+ RG_DEF_METHOD_P(instantiatable, 0);
768
+ RG_DEF_METHOD_P(derivable, 0);
769
+ RG_DEF_METHOD_P(deep_derivable, 0);
770
+ RG_DEF_METHOD_P(abstract, 0);
771
+ RG_DEF_METHOD_P(value_abstract, 0);
772
+ RG_DEF_METHOD_P(value_type, 0);
773
+ RG_DEF_METHOD(has_value_table, 0);
774
+
775
+ RG_DEF_METHOD(name, 0);
776
+ RG_DEF_ALIAS("to_s", "name");
777
+ RG_DEF_METHOD(parent, 0);
778
+ RG_DEF_METHOD(depth, 0);
779
+ RG_DEF_METHOD(next_base, 1);
780
+ RG_DEF_METHOD_P(type_is_a, 1);
781
+ RG_DEF_METHOD(children, 0);
782
+ RG_DEF_METHOD(interfaces, 0);
783
+ RG_DEF_METHOD(class_size, 0);
784
+ RG_DEF_METHOD(instance_size, 0);
771
785
 
772
786
  {
773
787
  VALUE ary = rb_ary_new();
774
- rb_define_const(rbgobj_cType, "FUNDAMENTAL_MAX", INT2FIX(G_TYPE_FUNDAMENTAL_MAX));
788
+ rb_define_const(RG_TARGET_NAMESPACE, "FUNDAMENTAL_MAX", INT2FIX(G_TYPE_FUNDAMENTAL_MAX));
775
789
  _def_fundamental_type(ary, G_TYPE_NONE, "NONE");
776
790
  _def_fundamental_type(ary, G_TYPE_INTERFACE, "INTERFACE");
777
791
  _def_fundamental_type(ary, G_TYPE_CHAR, "CHAR");
@@ -792,16 +806,6 @@ Init_type()
792
806
  _def_fundamental_type(ary, G_TYPE_BOXED, "BOXED");
793
807
  _def_fundamental_type(ary, G_TYPE_PARAM, "PARAM");
794
808
  _def_fundamental_type(ary, G_TYPE_OBJECT, "OBJECT");
795
- rb_define_const(rbgobj_cType, "FUNDAMENTAL_TYPES", ary); /* FIXME: better name */
809
+ rb_define_const(RG_TARGET_NAMESPACE, "FUNDAMENTAL_TYPES", ary); /* FIXME: better name */
796
810
  }
797
811
  }
798
-
799
- /**********************************************************************/
800
-
801
- void
802
- Init_gobject_gtype()
803
- {
804
- g_type_init();
805
- Init_typemap();
806
- Init_type();
807
- }