gtk2 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 (255) hide show
  1. data/Rakefile +66 -1
  2. data/ext/gtk2/extconf.rb +0 -96
  3. data/ext/gtk2/global.h +274 -13
  4. data/ext/gtk2/gtk2.def +5 -3
  5. data/ext/gtk2/init.c +263 -19
  6. data/ext/gtk2/rbgdk.c +245 -89
  7. data/ext/gtk2/rbgdk.h +32 -6
  8. data/ext/gtk2/rbgdkatom.c +38 -28
  9. data/ext/gtk2/rbgdkcairo.c +32 -42
  10. data/ext/gtk2/rbgdkcolor.c +52 -42
  11. data/ext/gtk2/rbgdkcolormap.c +42 -37
  12. data/ext/gtk2/rbgdkconst.c +23 -13
  13. data/ext/gtk2/rbgdkconversions.h +19 -6
  14. data/ext/gtk2/rbgdkcursor.c +37 -25
  15. data/ext/gtk2/rbgdkdevice.c +77 -67
  16. data/ext/gtk2/rbgdkdisplay.c +158 -150
  17. data/ext/gtk2/rbgdkdisplaymanager.c +27 -15
  18. data/ext/gtk2/rbgdkdragcontext.c +121 -70
  19. data/ext/gtk2/rbgdkdraw.c +252 -160
  20. data/ext/gtk2/rbgdkevent.c +30 -20
  21. data/ext/gtk2/rbgdkgc.c +123 -116
  22. data/ext/gtk2/rbgdkgeometry.c +77 -68
  23. data/ext/gtk2/rbgdkimage.c +58 -47
  24. data/ext/gtk2/rbgdkinput.c +33 -26
  25. data/ext/gtk2/rbgdkkeymap.c +38 -27
  26. data/ext/gtk2/rbgdkkeyval.c +44 -32
  27. data/ext/gtk2/rbgdkpango.c +66 -39
  28. data/ext/gtk2/rbgdkpangorenderer.c +63 -35
  29. data/ext/gtk2/rbgdkpixbuf.c +36 -25
  30. data/ext/gtk2/rbgdkpixmap.c +65 -49
  31. data/ext/gtk2/rbgdkproperty.c +66 -60
  32. data/ext/gtk2/rbgdkrectangle.c +54 -46
  33. data/ext/gtk2/rbgdkregion.c +144 -79
  34. data/ext/gtk2/rbgdkrgb.c +74 -58
  35. data/ext/gtk2/rbgdkscreen.c +103 -97
  36. data/ext/gtk2/rbgdkselection.c +49 -39
  37. data/ext/gtk2/rbgdkthreads.c +32 -19
  38. data/ext/gtk2/rbgdktimecoord.c +60 -38
  39. data/ext/gtk2/rbgdkvisual.c +79 -71
  40. data/ext/gtk2/rbgdkwindow.c +284 -305
  41. data/ext/gtk2/rbgdkwindowattr.c +69 -58
  42. data/ext/gtk2/rbgdkx11.c +41 -28
  43. data/ext/gtk2/rbgtk.c +498 -19
  44. data/ext/gtk2/rbgtk.h +35 -20
  45. data/ext/gtk2/rbgtkaboutdialog.c +33 -80
  46. data/ext/gtk2/rbgtkaccelerator.c +36 -23
  47. data/ext/gtk2/rbgtkaccelgroup.c +50 -40
  48. data/ext/gtk2/rbgtkaccelgroupentry.c +32 -20
  49. data/ext/gtk2/rbgtkaccelkey.c +40 -28
  50. data/ext/gtk2/rbgtkaccellabel.c +30 -18
  51. data/ext/gtk2/rbgtkaccelmap.c +55 -42
  52. data/ext/gtk2/rbgtkaccessible.c +25 -14
  53. data/ext/gtk2/rbgtkaction.c +68 -68
  54. data/ext/gtk2/rbgtkactiongroup.c +317 -195
  55. data/ext/gtk2/rbgtkadjustment.c +33 -46
  56. data/ext/gtk2/rbgtkalignment.c +36 -24
  57. data/ext/gtk2/rbgtkallocation.c +53 -42
  58. data/ext/gtk2/rbgtkarrow.c +34 -22
  59. data/ext/gtk2/rbgtkaspectframe.c +32 -20
  60. data/ext/gtk2/rbgtkassistant.c +81 -61
  61. data/ext/gtk2/rbgtkbbox.c +32 -20
  62. data/ext/gtk2/rbgtkbin.c +28 -16
  63. data/ext/gtk2/rbgtkbindingset.c +42 -35
  64. data/ext/gtk2/rbgtkborder.c +34 -23
  65. data/ext/gtk2/rbgtkbox.c +40 -29
  66. data/ext/gtk2/rbgtkbuildable.c +57 -45
  67. data/ext/gtk2/rbgtkbuilder.c +53 -38
  68. data/ext/gtk2/rbgtkbutton.c +41 -55
  69. data/ext/gtk2/rbgtkcalendar.c +51 -40
  70. data/ext/gtk2/rbgtkcelleditable.c +28 -17
  71. data/ext/gtk2/rbgtkcelllayout.c +41 -30
  72. data/ext/gtk2/rbgtkcellrenderer.c +43 -32
  73. data/ext/gtk2/rbgtkcellrendereraccel.c +26 -18
  74. data/ext/gtk2/rbgtkcellrenderercombo.c +25 -17
  75. data/ext/gtk2/rbgtkcellrendererpixbuf.c +24 -17
  76. data/ext/gtk2/rbgtkcellrendererprogress.c +25 -17
  77. data/ext/gtk2/rbgtkcellrendererspin.c +24 -16
  78. data/ext/gtk2/rbgtkcellrendererspinner.c +23 -11
  79. data/ext/gtk2/rbgtkcellrenderertext.c +28 -21
  80. data/ext/gtk2/rbgtkcellrenderertoggle.c +24 -16
  81. data/ext/gtk2/rbgtkcellview.c +34 -33
  82. data/ext/gtk2/rbgtkcheckbutton.c +28 -16
  83. data/ext/gtk2/rbgtkcheckmenuitem.c +31 -19
  84. data/ext/gtk2/rbgtkclipboard.c +123 -77
  85. data/ext/gtk2/rbgtkcolorbutton.c +26 -31
  86. data/ext/gtk2/rbgtkcolorsel.c +109 -55
  87. data/ext/gtk2/rbgtkcolorselectiondialog.c +28 -19
  88. data/ext/gtk2/rbgtkcombo.c +43 -32
  89. data/ext/gtk2/rbgtkcombobox.c +44 -83
  90. data/ext/gtk2/rbgtkcomboboxentry.c +26 -21
  91. data/ext/gtk2/rbgtkconst.c +23 -13
  92. data/ext/gtk2/rbgtkcontainer.c +153 -100
  93. data/ext/gtk2/rbgtkconversions.h +19 -6
  94. data/ext/gtk2/rbgtkcurve.c +46 -36
  95. data/ext/gtk2/rbgtkdialog.c +104 -70
  96. data/ext/gtk2/rbgtkdrag.c +173 -121
  97. data/ext/gtk2/rbgtkdrawingarea.c +28 -16
  98. data/ext/gtk2/rbgtkeditable.c +63 -51
  99. data/ext/gtk2/rbgtkentry.c +48 -85
  100. data/ext/gtk2/rbgtkentrycompletion.c +42 -55
  101. data/ext/gtk2/rbgtkeventbox.c +28 -16
  102. data/ext/gtk2/rbgtkexpander.c +26 -35
  103. data/ext/gtk2/rbgtkfilechooser.c +87 -143
  104. data/ext/gtk2/rbgtkfilechooserbutton.c +26 -32
  105. data/ext/gtk2/rbgtkfilechooserdialog.c +25 -15
  106. data/ext/gtk2/rbgtkfilechooserwidget.c +26 -15
  107. data/ext/gtk2/rbgtkfilefilter.c +45 -35
  108. data/ext/gtk2/rbgtkfilesel.c +54 -43
  109. data/ext/gtk2/rbgtkfilesystemerror.c +51 -0
  110. data/ext/gtk2/rbgtkfixed.c +36 -25
  111. data/ext/gtk2/rbgtkfontbutton.c +26 -37
  112. data/ext/gtk2/rbgtkfontselection.c +27 -15
  113. data/ext/gtk2/rbgtkfontselectiondialog.c +43 -32
  114. data/ext/gtk2/rbgtkframe.c +39 -28
  115. data/ext/gtk2/rbgtkgamma.c +32 -20
  116. data/ext/gtk2/rbgtkhandlebox.c +31 -19
  117. data/ext/gtk2/rbgtkhbbox.c +28 -16
  118. data/ext/gtk2/rbgtkhbox.c +29 -17
  119. data/ext/gtk2/rbgtkhpaned.c +28 -16
  120. data/ext/gtk2/rbgtkhruler.c +28 -16
  121. data/ext/gtk2/rbgtkhscale.c +28 -16
  122. data/ext/gtk2/rbgtkhscrollbar.c +28 -16
  123. data/ext/gtk2/rbgtkhseparator.c +28 -16
  124. data/ext/gtk2/rbgtkiconfactory.c +35 -23
  125. data/ext/gtk2/rbgtkiconinfo.c +42 -30
  126. data/ext/gtk2/rbgtkiconset.c +31 -19
  127. data/ext/gtk2/rbgtkiconsize.c +38 -25
  128. data/ext/gtk2/rbgtkiconsource.c +62 -50
  129. data/ext/gtk2/rbgtkicontheme.c +95 -95
  130. data/ext/gtk2/rbgtkiconview.c +87 -121
  131. data/ext/gtk2/rbgtkimage.c +31 -40
  132. data/ext/gtk2/rbgtkimagemenuitem.c +26 -14
  133. data/ext/gtk2/rbgtkimcontext.c +46 -34
  134. data/ext/gtk2/rbgtkimcontextsimple.c +47 -24
  135. data/ext/gtk2/rbgtkimmulticontext.c +26 -14
  136. data/ext/gtk2/rbgtkinputdialog.c +28 -16
  137. data/ext/gtk2/rbgtkinvisible.c +24 -18
  138. data/ext/gtk2/rbgtkitem.c +32 -20
  139. data/ext/gtk2/rbgtkitemfactory.c +65 -57
  140. data/ext/gtk2/rbgtklabel.c +46 -57
  141. data/ext/gtk2/rbgtklayout.c +40 -29
  142. data/ext/gtk2/rbgtklinkbutton.c +26 -15
  143. data/ext/gtk2/rbgtkliststore.c +145 -102
  144. data/ext/gtk2/rbgtkmacros.h +19 -6
  145. data/ext/gtk2/rbgtkmenu.c +47 -59
  146. data/ext/gtk2/rbgtkmenubar.c +30 -30
  147. data/ext/gtk2/rbgtkmenuitem.c +34 -41
  148. data/ext/gtk2/rbgtkmenushell.c +43 -42
  149. data/ext/gtk2/rbgtkmenutoolbutton.c +27 -16
  150. data/ext/gtk2/rbgtkmessagedialog.c +31 -25
  151. data/ext/gtk2/rbgtkmisc.c +33 -22
  152. data/ext/gtk2/rbgtknotebook.c +98 -134
  153. data/ext/gtk2/rbgtkobject.c +46 -81
  154. data/ext/gtk2/rbgtkoptionmenu.c +35 -23
  155. data/ext/gtk2/rbgtkpagesetup.c +64 -54
  156. data/ext/gtk2/rbgtkpagesetupunixdialog.c +34 -27
  157. data/ext/gtk2/rbgtkpaned.c +46 -36
  158. data/ext/gtk2/rbgtkpapersize.c +60 -54
  159. data/ext/gtk2/rbgtkplug.c +32 -20
  160. data/ext/gtk2/rbgtkprintcontext.c +43 -35
  161. data/ext/gtk2/rbgtkprinter.c +36 -37
  162. data/ext/gtk2/rbgtkprintjob.c +36 -37
  163. data/ext/gtk2/rbgtkprintoperation.c +44 -33
  164. data/ext/gtk2/rbgtkprintoperationpreview.c +30 -18
  165. data/ext/gtk2/rbgtkprintsettings.c +248 -192
  166. data/ext/gtk2/rbgtkprintunixdialog.c +33 -45
  167. data/ext/gtk2/rbgtkprogress.c +23 -13
  168. data/ext/gtk2/rbgtkprogressbar.c +47 -46
  169. data/ext/gtk2/rbgtkradioaction.c +84 -39
  170. data/ext/gtk2/rbgtkradiobutton.c +33 -21
  171. data/ext/gtk2/rbgtkradiomenuitem.c +86 -45
  172. data/ext/gtk2/rbgtkradiotoolbutton.c +99 -53
  173. data/ext/gtk2/rbgtkrange.c +36 -56
  174. data/ext/gtk2/rbgtkrc.c +61 -49
  175. data/ext/gtk2/rbgtkrcstyle.c +59 -48
  176. data/ext/gtk2/rbgtkrecentaction.c +28 -16
  177. data/ext/gtk2/rbgtkrecentchooser.c +58 -92
  178. data/ext/gtk2/rbgtkrecentchooserdialog.c +29 -18
  179. data/ext/gtk2/rbgtkrecentchoosermenu.c +25 -21
  180. data/ext/gtk2/rbgtkrecentchooserwidget.c +24 -13
  181. data/ext/gtk2/rbgtkrecentdata.c +47 -36
  182. data/ext/gtk2/rbgtkrecentfilter.c +55 -46
  183. data/ext/gtk2/rbgtkrecentfilterinfo.c +51 -40
  184. data/ext/gtk2/rbgtkrecentinfo.c +66 -56
  185. data/ext/gtk2/rbgtkrecentmanager.c +47 -43
  186. data/ext/gtk2/rbgtkruler.c +35 -30
  187. data/ext/gtk2/rbgtkscale.c +29 -18
  188. data/ext/gtk2/rbgtkscalebutton.c +27 -27
  189. data/ext/gtk2/rbgtkscrollbar.c +23 -13
  190. data/ext/gtk2/rbgtkscrolledwindow.c +44 -60
  191. data/ext/gtk2/rbgtkselection.c +87 -67
  192. data/ext/gtk2/rbgtkselectiondata.c +74 -65
  193. data/ext/gtk2/rbgtkseparator.c +23 -13
  194. data/ext/gtk2/rbgtkseparatormenuitem.c +25 -13
  195. data/ext/gtk2/rbgtkseparatortoolitem.c +26 -21
  196. data/ext/gtk2/rbgtksettings.c +123 -103
  197. data/ext/gtk2/rbgtksizegroup.c +33 -30
  198. data/ext/gtk2/rbgtksocket.c +32 -20
  199. data/ext/gtk2/rbgtkspinbutton.c +48 -38
  200. data/ext/gtk2/rbgtkspinner.c +27 -14
  201. data/ext/gtk2/rbgtkstatusbar.c +36 -31
  202. data/ext/gtk2/rbgtkstatusicon.c +31 -44
  203. data/ext/gtk2/rbgtkstock.c +137 -125
  204. data/ext/gtk2/rbgtkstyle.c +177 -161
  205. data/ext/gtk2/rbgtktable.c +58 -47
  206. data/ext/gtk2/rbgtktargetlist.c +56 -36
  207. data/ext/gtk2/rbgtktearoffmenuitem.c +28 -16
  208. data/ext/gtk2/rbgtktextappearance.c +44 -34
  209. data/ext/gtk2/rbgtktextattributes.c +54 -42
  210. data/ext/gtk2/rbgtktextbuffer.c +188 -191
  211. data/ext/gtk2/rbgtktextchild.c +29 -18
  212. data/ext/gtk2/rbgtktextiter.c +153 -145
  213. data/ext/gtk2/rbgtktextmark.c +33 -30
  214. data/ext/gtk2/rbgtktexttag.c +34 -22
  215. data/ext/gtk2/rbgtktexttagtable.c +36 -25
  216. data/ext/gtk2/rbgtktextview.c +85 -73
  217. data/ext/gtk2/rbgtktoggleaction.c +27 -22
  218. data/ext/gtk2/rbgtktogglebutton.c +37 -26
  219. data/ext/gtk2/rbgtktoggletoolbutton.c +26 -20
  220. data/ext/gtk2/rbgtktoolbar.c +66 -69
  221. data/ext/gtk2/rbgtktoolbutton.c +27 -40
  222. data/ext/gtk2/rbgtktoolitem.c +60 -62
  223. data/ext/gtk2/rbgtktooltip.c +36 -25
  224. data/ext/gtk2/rbgtktooltips.c +42 -34
  225. data/ext/gtk2/rbgtktreedragdest.c +20 -11
  226. data/ext/gtk2/rbgtktreedragsource.c +20 -11
  227. data/ext/gtk2/rbgtktreeiter.c +58 -47
  228. data/ext/gtk2/rbgtktreemodel.c +83 -65
  229. data/ext/gtk2/rbgtktreemodelfilter.c +47 -35
  230. data/ext/gtk2/rbgtktreemodelsort.c +38 -27
  231. data/ext/gtk2/rbgtktreepath.c +55 -44
  232. data/ext/gtk2/rbgtktreerowreference.c +60 -42
  233. data/ext/gtk2/rbgtktreeselection.c +61 -52
  234. data/ext/gtk2/rbgtktreesortable.c +52 -42
  235. data/ext/gtk2/rbgtktreestore.c +88 -67
  236. data/ext/gtk2/rbgtktreeview.c +157 -185
  237. data/ext/gtk2/rbgtktreeviewcolumn.c +57 -62
  238. data/ext/gtk2/rbgtkuimanager.c +61 -61
  239. data/ext/gtk2/rbgtkvbbox.c +28 -16
  240. data/ext/gtk2/rbgtkvbox.c +29 -17
  241. data/ext/gtk2/rbgtkviewport.c +28 -16
  242. data/ext/gtk2/rbgtkvolumebutton.c +28 -16
  243. data/ext/gtk2/rbgtkvpaned.c +28 -16
  244. data/ext/gtk2/rbgtkvruler.c +28 -16
  245. data/ext/gtk2/rbgtkvscale.c +28 -16
  246. data/ext/gtk2/rbgtkvscrollbar.c +28 -16
  247. data/ext/gtk2/rbgtkvseparator.c +28 -16
  248. data/ext/gtk2/rbgtkwidget.c +284 -296
  249. data/ext/gtk2/rbgtkwindow.c +156 -214
  250. data/ext/gtk2/rbgtkwindowgroup.c +35 -24
  251. data/sample/testgtk/labels.rb +1 -0
  252. data/sample/testgtk/testgtk.rb +2 -0
  253. metadata +16 -17
  254. data/ChangeLog +0 -6902
  255. data/ext/gtk2/rbgtkmain.c +0 -493
@@ -1,23 +1,34 @@
1
1
  /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
- /************************************************
3
-
4
- rbgtkcombobox.c -
5
-
6
- $Author: ggc $
7
- $Date: 2007/07/13 16:07:31 $
8
-
9
- Copyright (C) 2004 Masao Mutoh
10
- ************************************************/
2
+ /*
3
+ * Copyright (C) 2011 Ruby-GNOME2 Project Team
4
+ * Copyright (C) 2004 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 "global.h"
13
-
23
+
14
24
  #if GTK_CHECK_VERSION(2,4,0)
15
25
 
26
+ #define RG_TARGET_NAMESPACE cComboBox
16
27
  #define _SELF(self) (GTK_COMBO_BOX(RVAL2GOBJ(self)))
17
28
  #define RVAL2WIDGET(w) (GTK_WIDGET(RVAL2GOBJ(w)))
18
29
 
19
30
  static VALUE
20
- combobox_initialize(int argc, VALUE *argv, VALUE self)
31
+ rg_initialize(int argc, VALUE *argv, VALUE self)
21
32
  {
22
33
  VALUE model_or_false;
23
34
  GtkWidget* widget;
@@ -39,22 +50,8 @@ combobox_initialize(int argc, VALUE *argv, VALUE self)
39
50
  return Qnil;
40
51
  }
41
52
 
42
- /* Defined as properties.
43
- void gtk_combo_box_set_wrap_width (GtkComboBox *combo_box,
44
- gint width);
45
- void gtk_combo_box_set_row_span_column
46
- (GtkComboBox *combo_box,
47
- gint row_span);
48
- void gtk_combo_box_set_column_span_column
49
- (GtkComboBox *combo_box,
50
- gint column_span);
51
- gint gtk_combo_box_get_active (GtkComboBox *combo_box);
52
- void gtk_combo_box_set_active (GtkComboBox *combo_box,
53
- gint index);
54
- */
55
-
56
53
  static VALUE
57
- combobox_get_active_iter(VALUE self)
54
+ rg_active_iter(VALUE self)
58
55
  {
59
56
  GtkTreeIter iter;
60
57
  VALUE val = Qnil;
@@ -67,75 +64,50 @@ combobox_get_active_iter(VALUE self)
67
64
  }
68
65
 
69
66
  static VALUE
70
- combobox_set_active_iter(VALUE self, VALUE iter)
67
+ rg_set_active_iter(VALUE self, VALUE iter)
71
68
  {
72
69
  gtk_combo_box_set_active_iter(_SELF(self), RVAL2GTKTREEITER(iter));
73
70
  return self;
74
71
  }
75
72
 
76
- /* Defined as properties
77
- GtkTreeModel* gtk_combo_box_get_model (GtkComboBox *combo_box);
78
- void gtk_combo_box_set_model (GtkComboBox *combo_box,
79
- GtkTreeModel *model);
80
- */
81
-
82
-
83
73
  static VALUE
84
- combobox_append_text(VALUE self, VALUE text)
74
+ rg_append_text(VALUE self, VALUE text)
85
75
  {
86
76
  gtk_combo_box_append_text(_SELF(self), RVAL2CSTR(text));
87
77
  return self;
88
78
  }
89
79
 
90
80
  static VALUE
91
- combobox_insert_text(VALUE self, VALUE position, VALUE text)
81
+ rg_insert_text(VALUE self, VALUE position, VALUE text)
92
82
  {
93
83
  gtk_combo_box_insert_text(_SELF(self), NUM2INT(position), RVAL2CSTR(text));
94
84
  return self;
95
85
  }
96
86
 
97
87
  static VALUE
98
- combobox_prepend_text(VALUE self, VALUE text)
88
+ rg_prepend_text(VALUE self, VALUE text)
99
89
  {
100
90
  gtk_combo_box_prepend_text(_SELF(self), RVAL2CSTR(text));
101
91
  return self;
102
92
  }
103
93
 
104
94
  static VALUE
105
- combobox_remove_text(VALUE self, VALUE position)
95
+ rg_remove_text(VALUE self, VALUE position)
106
96
  {
107
97
  gtk_combo_box_remove_text(_SELF(self), NUM2INT(position));
108
98
  return self;
109
99
  }
110
-
111
- /* Defined as Signals
112
- void gtk_combo_box_popup (GtkComboBox *combo_box);
113
- void gtk_combo_box_popdown (GtkComboBox *combo_box);
114
- */
115
100
 
116
101
  #if GTK_CHECK_VERSION(2,6,0)
117
- /* Defined as Property
118
- void gtk_combo_box_set_add_tearoffs (GtkComboBox *combo_box,
119
- gboolean add_tearoffs);
120
- gboolean gtk_combo_box_get_add_tearoffs (GtkComboBox *combo_box);
121
- gint gtk_combo_box_get_column_span_column
122
- (GtkComboBox *combo_box);
123
- gint gtk_combo_box_get_wrap_width (GtkComboBox *combo_box);
124
-
125
- gboolean gtk_combo_box_get_focus_on_click
126
- (GtkComboBox *combo);
127
- gint gtk_combo_box_get_row_span_column
128
- (GtkComboBox *combo_box);
129
- */
130
102
 
131
103
  static VALUE
132
- combobox_get_active_text(VALUE self)
104
+ rg_active_text(VALUE self)
133
105
  {
134
106
  return CSTR2RVAL_FREE(gtk_combo_box_get_active_text(_SELF(self)));
135
107
  }
136
108
 
137
109
  static VALUE
138
- combobox_get_popup_accessible(VALUE self)
110
+ rg_popup_accessible(VALUE self)
139
111
  {
140
112
  return GOBJ2RVAL(gtk_combo_box_get_popup_accessible(_SELF(self)));
141
113
  }
@@ -154,7 +126,7 @@ row_separator_func(GtkTreeModel *model, GtkTreeIter *iter, gpointer *func)
154
126
  }
155
127
 
156
128
  static VALUE
157
- combobox_set_row_separator_func(VALUE self)
129
+ rg_set_row_separator_func(VALUE self)
158
130
  {
159
131
  VALUE func = rb_block_proc();
160
132
  G_RELATIVE(self, func);
@@ -164,39 +136,28 @@ combobox_set_row_separator_func(VALUE self)
164
136
  return self;
165
137
  }
166
138
 
167
- /* Defined as Properties
168
- void gtk_combo_box_set_focus_on_click (GtkComboBox *combo,
169
- gboolean focus_on_click);
170
- */
171
-
172
139
  #endif
173
140
  #endif
174
141
 
175
- /* Defined as Properties
176
- void gtk_combo_box_set_title (GtkComboBox *combo_box,
177
- const gchar *title);
178
- const gchar* gtk_combo_box_get_title (GtkComboBox *combo_box);
179
- */
180
-
181
142
  void
182
- Init_gtk_combobox()
143
+ Init_gtk_combobox(VALUE mGtk)
183
144
  {
184
145
  #if GTK_CHECK_VERSION(2,4,0)
185
- VALUE gCombobox = G_DEF_CLASS(GTK_TYPE_COMBO_BOX, "ComboBox", mGtk);
146
+ VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_COMBO_BOX, "ComboBox", mGtk);
186
147
 
187
- rb_define_method(gCombobox, "initialize", combobox_initialize, -1);
188
- rb_define_method(gCombobox, "active_iter", combobox_get_active_iter, 0);
189
- rb_define_method(gCombobox, "set_active_iter", combobox_set_active_iter, 1);
190
- G_DEF_SETTER(gCombobox, "active_iter");
191
- rb_define_method(gCombobox, "append_text", combobox_append_text, 1);
192
- rb_define_method(gCombobox, "insert_text", combobox_insert_text, 2);
193
- rb_define_method(gCombobox, "prepend_text", combobox_prepend_text, 1);
194
- rb_define_method(gCombobox, "remove_text", combobox_remove_text, 1);
148
+ RG_DEF_METHOD(initialize, -1);
149
+ RG_DEF_METHOD(active_iter, 0);
150
+ RG_DEF_METHOD(set_active_iter, 1);
151
+ G_DEF_SETTER(RG_TARGET_NAMESPACE, "active_iter");
152
+ RG_DEF_METHOD(append_text, 1);
153
+ RG_DEF_METHOD(insert_text, 2);
154
+ RG_DEF_METHOD(prepend_text, 1);
155
+ RG_DEF_METHOD(remove_text, 1);
195
156
 
196
157
  #if GTK_CHECK_VERSION(2,6,0)
197
- rb_define_method(gCombobox, "active_text", combobox_get_active_text, 0);
198
- rb_define_method(gCombobox, "popup_accessible", combobox_get_popup_accessible, 0);
199
- rb_define_method(gCombobox, "set_row_separator_func", combobox_set_row_separator_func, 0);
158
+ RG_DEF_METHOD(active_text, 0);
159
+ RG_DEF_METHOD(popup_accessible, 0);
160
+ RG_DEF_METHOD(set_row_separator_func, 0);
200
161
  #endif
201
162
  #endif
202
163
  }
@@ -1,20 +1,32 @@
1
1
  /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
- /************************************************
3
-
4
- rbgtkcomboboxentry.c -
5
-
6
- $Author: mutoh $
7
- $Date: 2004/05/30 16:41:13 $
8
-
9
- Copyright (C) 2004 Masao Mutoh
10
- ************************************************/
2
+ /*
3
+ * Copyright (C) 2011 Ruby-GNOME2 Project Team
4
+ * Copyright (C) 2004 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 "global.h"
13
-
23
+
14
24
  #if GTK_CHECK_VERSION(2,4,0)
15
25
 
26
+ #define RG_TARGET_NAMESPACE cComboBoxEntry
27
+
16
28
  static VALUE
17
- comboboxentry_initialize(int argc, VALUE *argv, VALUE self)
29
+ rg_initialize(int argc, VALUE *argv, VALUE self)
18
30
  {
19
31
  VALUE model_or_false, text_column;
20
32
  GtkWidget* widget;
@@ -38,20 +50,13 @@ comboboxentry_initialize(int argc, VALUE *argv, VALUE self)
38
50
  return Qnil;
39
51
  }
40
52
 
41
- /* Defined as property.
42
- void gtk_combo_box_entry_set_text_column
43
- (GtkComboBoxEntry *entry_box,
44
- gint text_column);
45
- gint gtk_combo_box_entry_get_text_column
46
- (GtkComboBoxEntry *entry_box);
47
- */
48
53
  #endif
49
54
 
50
55
  void
51
- Init_gtk_comboboxentry()
56
+ Init_gtk_comboboxentry(VALUE mGtk)
52
57
  {
53
58
  #if GTK_CHECK_VERSION(2,4,0)
54
- VALUE gComboboxentry = G_DEF_CLASS(GTK_TYPE_COMBO_BOX_ENTRY, "ComboBoxEntry", mGtk);
55
- rb_define_method(gComboboxentry, "initialize", comboboxentry_initialize, -1);
59
+ VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_COMBO_BOX_ENTRY, "ComboBoxEntry", mGtk);
60
+ RG_DEF_METHOD(initialize, -1);
56
61
  #endif
57
62
  }
@@ -1,16 +1,26 @@
1
1
  /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
- /************************************************
3
-
4
- rbgtkconst.c -
5
-
6
- $Author: mutoh $
7
- $Date: 2005/09/28 17:54:00 $
8
-
9
- Copyright (C) 2002,2003 Ruby-GNOME2 Project Team
10
- Copyright (C) 1998-2000 Yukihiro Matsumoto,
11
- Daisuke Kanda,
12
- Hiroshi Igarashi
13
- ************************************************/
2
+ /*
3
+ * Copyright (C) 2011 Ruby-GNOME2 Project Team
4
+ * Copyright (C) 2002,2003 Ruby-GNOME2 Project Team
5
+ * Copyright (C) 1998-2000 Yukihiro Matsumoto,
6
+ * Daisuke Kanda,
7
+ * Hiroshi Igarashi
8
+ *
9
+ * This library is free software; you can redistribute it and/or
10
+ * modify it under the terms of the GNU Lesser General Public
11
+ * License as published by the Free Software Foundation; either
12
+ * version 2.1 of the License, or (at your option) any later version.
13
+ *
14
+ * This library is distributed in the hope that it will be useful,
15
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
16
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17
+ * Lesser General Public License for more details.
18
+ *
19
+ * You should have received a copy of the GNU Lesser General Public
20
+ * License along with this library; if not, write to the Free Software
21
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
22
+ * MA 02110-1301 USA
23
+ */
14
24
 
15
25
  #include "global.h"
16
26
 
@@ -18,7 +28,7 @@
18
28
  * constants
19
29
  */
20
30
  void
21
- Init_gtk_const()
31
+ Init_gtk_const(VALUE mGtk)
22
32
  {
23
33
  /*
24
34
  * version information
@@ -1,19 +1,30 @@
1
1
  /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
- /************************************************
3
-
4
- rbgtkcontainer.c -
5
-
6
- $Author: ggc $
7
- $Date: 2007/07/13 16:07:31 $
8
-
9
- Copyright (C) 2002-2006 Ruby-GNOME2 Project Team
10
- Copyright (C) 1998-2000 Yukihiro Matsumoto,
11
- Daisuke Kanda,
12
- Hiroshi Igarashi
13
- ************************************************/
2
+ /*
3
+ * Copyright (C) 2011 Ruby-GNOME2 Project Team
4
+ * Copyright (C) 2002-2006 Ruby-GNOME2 Project Team
5
+ * Copyright (C) 1998-2000 Yukihiro Matsumoto,
6
+ * Daisuke Kanda,
7
+ * Hiroshi Igarashi
8
+ *
9
+ * This library is free software; you can redistribute it and/or
10
+ * modify it under the terms of the GNU Lesser General Public
11
+ * License as published by the Free Software Foundation; either
12
+ * version 2.1 of the License, or (at your option) any later version.
13
+ *
14
+ * This library is distributed in the hope that it will be useful,
15
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
16
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17
+ * Lesser General Public License for more details.
18
+ *
19
+ * You should have received a copy of the GNU Lesser General Public
20
+ * License along with this library; if not, write to the Free Software
21
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
22
+ * MA 02110-1301 USA
23
+ */
14
24
 
15
25
  #include "global.h"
16
26
 
27
+ #define RG_TARGET_NAMESPACE cContainer
17
28
  #define _SELF(s) (GTK_CONTAINER(RVAL2GOBJ(self)))
18
29
 
19
30
  /*
@@ -25,13 +36,13 @@ static VALUE type_to_prop_setter_table;
25
36
  static VALUE type_to_prop_getter_table;
26
37
 
27
38
  static VALUE
28
- cont_is_resize_container(VALUE self)
39
+ rg_resize_container_p(VALUE self)
29
40
  {
30
41
  return CBOOL2RVAL(GTK_IS_RESIZE_CONTAINER(_SELF(self)));
31
42
  }
32
43
 
33
44
  static VALUE
34
- cont_remove(VALUE self, VALUE other)
45
+ rg_remove(VALUE self, VALUE other)
35
46
  {
36
47
  G_CHILD_REMOVE(self, other);
37
48
  gtk_container_remove(_SELF(self), GTK_WIDGET(RVAL2GOBJ(other)));
@@ -39,14 +50,14 @@ cont_remove(VALUE self, VALUE other)
39
50
  }
40
51
 
41
52
  static VALUE
42
- cont_check_resize(VALUE self)
53
+ rg_check_resize(VALUE self)
43
54
  {
44
55
  gtk_container_check_resize(_SELF(self));
45
56
  return self;
46
57
  }
47
58
 
48
59
  static VALUE
49
- cont_foreach(int argc, VALUE *argv, VALUE self)
60
+ rg_each(int argc, VALUE *argv, VALUE self)
50
61
  {
51
62
  VALUE callback;
52
63
 
@@ -59,7 +70,7 @@ cont_foreach(int argc, VALUE *argv, VALUE self)
59
70
  }
60
71
 
61
72
  static VALUE
62
- cont_forall(int argc, VALUE *argv, VALUE self)
73
+ rg_each_forall(int argc, VALUE *argv, VALUE self)
63
74
  {
64
75
  VALUE callback;
65
76
 
@@ -72,28 +83,27 @@ cont_forall(int argc, VALUE *argv, VALUE self)
72
83
  }
73
84
 
74
85
  static VALUE
75
- cont_get_children(VALUE self)
86
+ rg_children(VALUE self)
76
87
  {
77
88
  return GLIST2ARYF(gtk_container_get_children(_SELF(self)));
78
89
  }
79
90
 
80
91
  static VALUE
81
- cont_set_reallocate_redraws(VALUE self, VALUE needs_redraws)
92
+ rg_set_reallocate_redraws(VALUE self, VALUE needs_redraws)
82
93
  {
83
94
  gtk_container_set_reallocate_redraws(_SELF(self), RVAL2CBOOL(needs_redraws));
84
95
  return self;
85
96
  }
86
97
 
87
-
88
98
  static VALUE
89
- cont_set_focus_child(VALUE self, VALUE child)
99
+ rg_set_focus_child(VALUE self, VALUE child)
90
100
  {
91
101
  gtk_container_set_focus_child(_SELF(self), GTK_WIDGET(RVAL2GOBJ(child)));
92
102
  return self;
93
103
  }
94
104
 
95
105
  static VALUE
96
- cont_set_focus_vadjustment(VALUE self, VALUE adjustment)
106
+ rg_set_focus_vadjustment(VALUE self, VALUE adjustment)
97
107
  {
98
108
  gtk_container_set_focus_vadjustment(_SELF(self),
99
109
  NIL_P(adjustment) ? NULL : GTK_ADJUSTMENT(RVAL2GOBJ(adjustment)));
@@ -101,7 +111,7 @@ cont_set_focus_vadjustment(VALUE self, VALUE adjustment)
101
111
  }
102
112
 
103
113
  static VALUE
104
- cont_set_focus_hadjustment(VALUE self, VALUE adjustment)
114
+ rg_set_focus_hadjustment(VALUE self, VALUE adjustment)
105
115
  {
106
116
  gtk_container_set_focus_hadjustment(_SELF(self),
107
117
  NIL_P(adjustment) ? NULL : GTK_ADJUSTMENT(RVAL2GOBJ(adjustment)));
@@ -109,28 +119,28 @@ cont_set_focus_hadjustment(VALUE self, VALUE adjustment)
109
119
  }
110
120
 
111
121
  static VALUE
112
- cont_get_focus_vadjustment(VALUE self)
122
+ rg_focus_vadjustment(VALUE self)
113
123
  {
114
124
  GtkAdjustment* adj = gtk_container_get_focus_vadjustment(_SELF(self));
115
125
  return adj ? GOBJ2RVAL(adj) : Qnil;
116
126
  }
117
127
 
118
128
  static VALUE
119
- cont_get_focus_hadjustment(VALUE self)
129
+ rg_focus_hadjustment(VALUE self)
120
130
  {
121
131
  GtkAdjustment* adj = gtk_container_get_focus_hadjustment(_SELF(self));
122
132
  return adj ? GOBJ2RVAL(adj) : Qnil;
123
133
  }
124
134
 
125
135
  static VALUE
126
- cont_get_resize_children(VALUE self)
136
+ rg_resize_children(VALUE self)
127
137
  {
128
138
  gtk_container_resize_children(_SELF(self));
129
139
  return self;
130
140
  }
131
141
 
132
142
  static VALUE
133
- cont_get_child_type(VALUE self)
143
+ rg_child_type(VALUE self)
134
144
  {
135
145
  return GTYPE2CLASS(gtk_container_child_type(_SELF(self)));
136
146
  }
@@ -187,7 +197,7 @@ rbgtkcontainer_register_child_property_getter(GType gtype, const char *name, GVa
187
197
  }
188
198
 
189
199
  static VALUE
190
- cont_child_get_property(VALUE self, VALUE child, VALUE prop_name)
200
+ rg_child_get_property(VALUE self, VALUE child, VALUE prop_name)
191
201
  {
192
202
  GParamSpec* pspec;
193
203
  const char* name;
@@ -205,9 +215,9 @@ cont_child_get_property(VALUE self, VALUE child, VALUE prop_name)
205
215
  rb_raise(rb_eArgError, "No such property: %s", name);
206
216
  else {
207
217
  GValueToRValueFunc getter = NULL;
208
- GValue gval = {0,};
218
+ GValue gval = G_VALUE_INIT;
209
219
  VALUE ret;
210
-
220
+
211
221
  {
212
222
  VALUE table = rb_hash_aref(type_to_prop_getter_table,
213
223
  INT2FIX(pspec->owner_type));
@@ -231,7 +241,7 @@ cont_child_get_property(VALUE self, VALUE child, VALUE prop_name)
231
241
  }
232
242
 
233
243
  static VALUE
234
- cont_child_set_property(VALUE self, VALUE child, VALUE prop_name, VALUE val)
244
+ rg_child_set_property(VALUE self, VALUE child, VALUE prop_name, VALUE val)
235
245
  {
236
246
  GParamSpec* pspec;
237
247
  const char* name;
@@ -249,7 +259,7 @@ cont_child_set_property(VALUE self, VALUE child, VALUE prop_name, VALUE val)
249
259
  rb_raise(rb_eArgError, "No such property: %s", name);
250
260
  else {
251
261
  RValueToGValueFunc setter = NULL;
252
- GValue gval = {0,};
262
+ GValue gval = G_VALUE_INIT;
253
263
  g_value_init(&gval, G_PARAM_SPEC_VALUE_TYPE(pspec));
254
264
 
255
265
  {
@@ -280,7 +290,7 @@ cont_child_set_property(VALUE self, VALUE child, VALUE prop_name, VALUE val)
280
290
  }
281
291
 
282
292
  static VALUE
283
- cont_add(int argc, VALUE *argv, VALUE self)
293
+ rg_add(int argc, VALUE *argv, VALUE self)
284
294
  {
285
295
  VALUE other, properties;
286
296
  GtkWidget *child;
@@ -297,13 +307,13 @@ cont_add(int argc, VALUE *argv, VALUE self)
297
307
  int i;
298
308
  VALUE ary;
299
309
  GObject* obj;
300
-
310
+
301
311
  Check_Type(properties, T_HASH);
302
312
  ary = rb_funcall(properties, rb_intern("to_a"), 0);
303
313
  obj = RVAL2GOBJ(self);
304
-
314
+
305
315
  for (i = 0; i < RARRAY_LEN(ary); i++) {
306
- cont_child_set_property(self, other,
316
+ rg_child_set_property(self, other,
307
317
  RARRAY_PTR(RARRAY_PTR(ary)[i])[0],
308
318
  RARRAY_PTR(RARRAY_PTR(ary)[i])[1]);
309
319
  }
@@ -324,7 +334,7 @@ void gtk_container_child_set_valist (GtkContainer *container,
324
334
  */
325
335
 
326
336
  static VALUE
327
- cont_propagate_expose(VALUE self, VALUE child, VALUE event)
337
+ rg_propagate_expose(VALUE self, VALUE child, VALUE event)
328
338
  {
329
339
  gtk_container_propagate_expose(_SELF(self), GTK_WIDGET(RVAL2GOBJ(child)),
330
340
  (GdkEventExpose *)RVAL2GEV(event));
@@ -332,7 +342,7 @@ cont_propagate_expose(VALUE self, VALUE child, VALUE event)
332
342
  }
333
343
 
334
344
  static VALUE
335
- cont_get_focus_chain(VALUE self)
345
+ rg_focus_chain(VALUE self)
336
346
  {
337
347
  gboolean ret;
338
348
  GList *glist = NULL;
@@ -340,31 +350,71 @@ cont_get_focus_chain(VALUE self)
340
350
  return GLIST2ARYF(glist);
341
351
  }
342
352
 
353
+ struct rval2gtkwidgetglist_args {
354
+ VALUE ary;
355
+ long n;
356
+ GList *result;
357
+ };
358
+
343
359
  static VALUE
344
- cont_set_focus_chain(VALUE self, VALUE focusable_widgets)
360
+ rbg_rval2gtkwidgetglist_body(VALUE value)
345
361
  {
346
- int i;
347
- GList *glist = NULL;
362
+ long i;
363
+ struct rval2gtkwidgetglist_args *args = (struct rval2gtkwidgetglist_args *)value;
348
364
 
349
- Check_Type(focusable_widgets, T_ARRAY);
350
- for (i = 0; i < RARRAY_LEN(focusable_widgets); i++) {
351
- glist = g_list_append(glist, RVAL2GOBJ(RARRAY_PTR(focusable_widgets)[i]));
352
- }
353
- gtk_container_set_focus_chain(_SELF(self), glist);
354
- g_list_free(glist);
365
+ for (i = 0; i < args->n; i++)
366
+ args->result = g_list_append(args->result, GTK_WIDGET(RVAL2GOBJ(RARRAY_PTR(args->ary)[i])));
367
+
368
+ return Qnil;
369
+ }
370
+
371
+ static G_GNUC_NORETURN VALUE
372
+ rbg_rval2gtkwidgetglist_rescue(VALUE value)
373
+ {
374
+ g_list_free(((struct rval2gtkwidgetglist_args *)value)->result);
375
+
376
+ rb_exc_raise(rb_errinfo());
377
+ }
378
+
379
+ static GList *
380
+ rbg_rval2gtkwidgetglist(VALUE value)
381
+ {
382
+ struct rval2gtkwidgetglist_args args;
383
+
384
+ args.ary = rb_ary_to_ary(value);
385
+ args.n = RARRAY_LEN(args.ary);
386
+ args.result = NULL;
387
+
388
+ rb_rescue(rbg_rval2gtkwidgetglist_body, (VALUE)&args,
389
+ rbg_rval2gtkwidgetglist_rescue, (VALUE)&args);
390
+
391
+ return args.result;
392
+ }
393
+
394
+ #define RVAL2GTKWIDGETGLIST(value) rbg_rval2gtkwidgetglist(value)
395
+
396
+ static VALUE
397
+ rg_set_focus_chain(VALUE self, VALUE rbfocusable_widgets)
398
+ {
399
+ GtkContainer *container = _SELF(self);
400
+ GList *focusable_widgets = RVAL2GTKWIDGETGLIST(rbfocusable_widgets);
401
+
402
+ gtk_container_set_focus_chain(container, focusable_widgets);
403
+
404
+ g_list_free(focusable_widgets);
355
405
 
356
406
  return self;
357
407
  }
358
408
 
359
409
  static VALUE
360
- cont_unset_focus_chain(VALUE self)
410
+ rg_unset_focus_chain(VALUE self)
361
411
  {
362
412
  gtk_container_unset_focus_chain(_SELF(self));
363
413
  return self;
364
414
  }
365
415
 
366
416
  static VALUE
367
- cont_s_child_property(VALUE self, VALUE property_name)
417
+ rg_s_child_property(VALUE self, VALUE property_name)
368
418
  {
369
419
  GObjectClass* oclass;
370
420
  const char* name;
@@ -391,7 +441,7 @@ cont_s_child_property(VALUE self, VALUE property_name)
391
441
  }
392
442
 
393
443
  static VALUE
394
- cont_s_install_child_property(int argc, VALUE *argv, VALUE self)
444
+ rg_s_install_child_property(int argc, VALUE *argv, VALUE self)
395
445
  {
396
446
  const RGObjClassInfo* cinfo = rbgobj_lookup_class(self);
397
447
  GtkContainerClass* gclass;
@@ -415,7 +465,7 @@ cont_s_install_child_property(int argc, VALUE *argv, VALUE self)
415
465
  }
416
466
 
417
467
  static VALUE
418
- cont_s_child_properties(int argc, VALUE *argv, VALUE self)
468
+ rg_s_child_properties(int argc, VALUE *argv, VALUE self)
419
469
  {
420
470
  GObjectClass* oclass = g_type_class_ref(CLASS2GTYPE(self));
421
471
  guint n_properties;
@@ -451,7 +501,7 @@ cont_initialize(int argc, VALUE *argv, VALUE self)
451
501
  {
452
502
  VALUE params_hash;
453
503
  GObject* gobj;
454
-
504
+
455
505
  rb_scan_args(argc, argv, "01", &params_hash);
456
506
 
457
507
  if (!NIL_P(params_hash))
@@ -466,7 +516,7 @@ cont_initialize(int argc, VALUE *argv, VALUE self)
466
516
  // FIXME: use rb_protect
467
517
  static void
468
518
  get_prop_func(GObject* object,
469
- guint property_id,
519
+ G_GNUC_UNUSED guint property_id,
470
520
  GValue* value,
471
521
  GParamSpec* pspec)
472
522
  {
@@ -492,7 +542,7 @@ get_prop_func(GObject* object,
492
542
  // FIXME: use rb_protect
493
543
  static void
494
544
  set_prop_func(GObject* object,
495
- guint property_id,
545
+ G_GNUC_UNUSED guint property_id,
496
546
  const GValue* value,
497
547
  GParamSpec* pspec)
498
548
  {
@@ -514,11 +564,11 @@ set_prop_func(GObject* object,
514
564
 
515
565
  // FIXME: use rb_protect
516
566
  static void
517
- get_child_prop_func(GtkContainer* container,
518
- GtkWidget* child,
519
- guint property_id,
520
- GValue* value,
521
- GParamSpec* pspec)
567
+ get_child_prop_func(GtkContainer *container,
568
+ GtkWidget *child,
569
+ G_GNUC_UNUSED guint property_id,
570
+ GValue *value,
571
+ GParamSpec *pspec)
522
572
  {
523
573
  ID ruby_getter = (ID)g_param_spec_get_qdata(pspec, q_ruby_getter);
524
574
  if (!ruby_getter) {
@@ -541,11 +591,11 @@ get_child_prop_func(GtkContainer* container,
541
591
 
542
592
  // FIXME: use rb_protect
543
593
  static void
544
- set_child_prop_func(GtkContainer* container,
545
- GtkWidget* child,
546
- guint property_id,
547
- const GValue* value,
548
- GParamSpec* pspec)
594
+ set_child_prop_func(GtkContainer *container,
595
+ GtkWidget *child,
596
+ G_GNUC_UNUSED guint property_id,
597
+ const GValue *value,
598
+ GParamSpec *pspec)
549
599
  {
550
600
  ID ruby_setter = (ID)g_param_spec_get_qdata(pspec, q_ruby_setter);
551
601
  if (!ruby_setter) {
@@ -565,7 +615,7 @@ set_child_prop_func(GtkContainer* container,
565
615
 
566
616
  // FIXME: use rb_protect
567
617
  static void
568
- class_init_func(gpointer g_class, gpointer class_data)
618
+ class_init_func(gpointer g_class, G_GNUC_UNUSED gpointer class_data)
569
619
  {
570
620
  GObjectClass* g_class1 = G_OBJECT_CLASS(g_class);
571
621
  GtkContainerClass* g_class2 = GTK_CONTAINER_CLASS(g_class);
@@ -584,7 +634,7 @@ class_init_func(gpointer g_class, gpointer class_data)
584
634
  }
585
635
 
586
636
  static VALUE
587
- type_register(int argc, VALUE* argv, VALUE self)
637
+ rg_s_type_register(int argc, VALUE* argv, VALUE self)
588
638
  {
589
639
  VALUE type_name, flags;
590
640
  volatile VALUE class_init_proc = Qnil;
@@ -593,6 +643,7 @@ type_register(int argc, VALUE* argv, VALUE self)
593
643
 
594
644
  rb_scan_args(argc, argv, "03", &type_name, &info, &flags);
595
645
 
646
+ /* TODO: Replace this copy-paste job with the real thing in glib2. */
596
647
  {
597
648
  const RGObjClassInfo* cinfo = rbgobj_lookup_class(self);
598
649
  if (cinfo->klass == self)
@@ -622,6 +673,8 @@ type_register(int argc, VALUE* argv, VALUE self)
622
673
  GTypeQuery query;
623
674
  g_type_query(parent_type, &query);
624
675
 
676
+ /* TODO: This should not require a new GTypeInfo, as GLib doesn't
677
+ * retain a copy. */
625
678
  info = g_new0(GTypeInfo, 1);
626
679
  info->class_size = query.class_size;
627
680
  info->base_init = NULL;
@@ -667,7 +720,7 @@ type_register(int argc, VALUE* argv, VALUE self)
667
720
  /**********************************************************************/
668
721
 
669
722
  static void
670
- cont_mark_callback(GtkWidget* w, gpointer data)
723
+ cont_mark_callback(GtkWidget *w, G_GNUC_UNUSED gpointer data)
671
724
  {
672
725
  rbgobj_gc_mark_instance(w);
673
726
  }
@@ -681,47 +734,47 @@ cont_mark(void* p)
681
734
  /**********************************************************************/
682
735
 
683
736
  void
684
- Init_gtk_container()
685
- {
686
- VALUE gContainer;
687
-
688
- gContainer = G_DEF_CLASS_WITH_GC_FUNC(GTK_TYPE_CONTAINER, "Container",
689
- mGtk, cont_mark, NULL);
690
- rb_define_method(gContainer, "resize_container?", cont_is_resize_container, 0);
691
- rb_define_method(gContainer, "add", cont_add, -1);
692
- rb_define_alias(gContainer, "<<", "add");
693
- rb_define_method(gContainer, "remove", cont_remove, 1);
694
- rb_define_method(gContainer, "check_resize", cont_check_resize, 0);
695
- rb_define_method(gContainer, "each", cont_foreach, -1);
696
- rb_define_method(gContainer, "each_forall", cont_forall, -1);
697
- rb_define_method(gContainer, "children", cont_get_children, 0);
698
- rb_define_method(gContainer, "set_reallocate_redraws", cont_set_reallocate_redraws, 1);
699
- rb_define_method(gContainer, "set_focus_child", cont_set_focus_child, 1);
700
- rb_define_method(gContainer, "set_focus_vadjustment", cont_set_focus_vadjustment, 1);
701
- rb_define_method(gContainer, "set_focus_hadjustment", cont_set_focus_hadjustment, 1);
702
- rb_define_method(gContainer, "focus_vadjustment", cont_get_focus_vadjustment, 0);
703
- rb_define_method(gContainer, "focus_hadjustment", cont_get_focus_hadjustment, 0);
704
- rb_define_method(gContainer, "resize_children", cont_get_resize_children, 0);
705
- rb_define_method(gContainer, "child_type", cont_get_child_type, 0);
706
- rb_define_method(gContainer, "child_get_property", cont_child_get_property, 2);
707
- rb_define_method(gContainer, "child_set_property", cont_child_set_property, 3);
708
- rb_define_method(gContainer, "propagate_expose", cont_propagate_expose, 2);
709
- rb_define_method(gContainer, "focus_chain", cont_get_focus_chain, 0);
710
- rb_define_method(gContainer, "set_focus_chain", cont_set_focus_chain, 1);
711
- rb_define_method(gContainer, "unset_focus_chain", cont_unset_focus_chain, 0);
712
- rb_define_singleton_method(gContainer, "child_property", cont_s_child_property, 1);
713
- rb_define_singleton_method(gContainer, "child_properties", cont_s_child_properties, -1);
714
- rb_define_singleton_method(gContainer, "install_child_property", cont_s_install_child_property, -1);
737
+ Init_gtk_container(VALUE mGtk)
738
+ {
739
+ VALUE RG_TARGET_NAMESPACE;
740
+
741
+ RG_TARGET_NAMESPACE = G_DEF_CLASS_WITH_GC_FUNC(GTK_TYPE_CONTAINER, "Container",
742
+ mGtk, cont_mark, NULL);
743
+ RG_DEF_METHOD_P(resize_container, 0);
744
+ RG_DEF_METHOD(add, -1);
745
+ RG_DEF_ALIAS("<<", "add");
746
+ RG_DEF_METHOD(remove, 1);
747
+ RG_DEF_METHOD(check_resize, 0);
748
+ RG_DEF_METHOD(each, -1);
749
+ RG_DEF_METHOD(each_forall, -1);
750
+ RG_DEF_METHOD(children, 0);
751
+ RG_DEF_METHOD(set_reallocate_redraws, 1);
752
+ RG_DEF_METHOD(set_focus_child, 1);
753
+ RG_DEF_METHOD(set_focus_vadjustment, 1);
754
+ RG_DEF_METHOD(set_focus_hadjustment, 1);
755
+ RG_DEF_METHOD(focus_vadjustment, 0);
756
+ RG_DEF_METHOD(focus_hadjustment, 0);
757
+ RG_DEF_METHOD(resize_children, 0);
758
+ RG_DEF_METHOD(child_type, 0);
759
+ RG_DEF_METHOD(child_get_property, 2);
760
+ RG_DEF_METHOD(child_set_property, 3);
761
+ RG_DEF_METHOD(propagate_expose, 2);
762
+ RG_DEF_METHOD(focus_chain, 0);
763
+ RG_DEF_METHOD(set_focus_chain, 1);
764
+ RG_DEF_METHOD(unset_focus_chain, 0);
765
+ RG_DEF_SMETHOD(child_property, 1);
766
+ RG_DEF_SMETHOD(child_properties, -1);
767
+ RG_DEF_SMETHOD(install_child_property, -1);
715
768
 
716
769
  q_ruby_getter = g_quark_from_static_string("__ruby_getter");
717
770
  q_ruby_setter = g_quark_from_static_string("__ruby_setter");
718
771
 
719
- rb_define_singleton_method(gContainer, "type_register", type_register, -1);
772
+ RG_DEF_SMETHOD(type_register, -1);
720
773
 
721
774
  rb_global_variable(&proc_mod_eval);
722
775
  proc_mod_eval = rb_eval_string("lambda{|obj,proc| obj.module_eval(&proc)}");
723
776
 
724
- G_DEF_SETTERS(gContainer);
777
+ G_DEF_SETTERS(RG_TARGET_NAMESPACE);
725
778
 
726
779
  rb_global_variable(&type_to_prop_setter_table);
727
780
  rb_global_variable(&type_to_prop_getter_table);