gtk2 0.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (281) hide show
  1. data/ChangeLog +6664 -0
  2. data/README +33 -0
  3. data/Rakefile +71 -0
  4. data/extconf.rb +116 -0
  5. data/src/global.h +33 -0
  6. data/src/init.c +39 -0
  7. data/src/lib/gtk2.rb +13 -0
  8. data/src/lib/gtk2/base.rb +95 -0
  9. data/src/makeinits.rb +57 -0
  10. data/src/makekeysyms.rb +5 -0
  11. data/src/rbgdk.c +395 -0
  12. data/src/rbgdk.h +50 -0
  13. data/src/rbgdkatom.c +122 -0
  14. data/src/rbgdkcairo.c +100 -0
  15. data/src/rbgdkcolor.c +151 -0
  16. data/src/rbgdkcolormap.c +142 -0
  17. data/src/rbgdkconst.c +29 -0
  18. data/src/rbgdkconversions.h +18 -0
  19. data/src/rbgdkcursor.c +115 -0
  20. data/src/rbgdkdevice.c +235 -0
  21. data/src/rbgdkdisplay.c +634 -0
  22. data/src/rbgdkdisplaymanager.c +50 -0
  23. data/src/rbgdkdragcontext.c +280 -0
  24. data/src/rbgdkdraw.c +487 -0
  25. data/src/rbgdkevent.c +1020 -0
  26. data/src/rbgdkgc.c +456 -0
  27. data/src/rbgdkgeometry.c +272 -0
  28. data/src/rbgdkimage.c +155 -0
  29. data/src/rbgdkinput.c +70 -0
  30. data/src/rbgdkkeymap.c +153 -0
  31. data/src/rbgdkkeysyms.h +2174 -0
  32. data/src/rbgdkkeyval.c +105 -0
  33. data/src/rbgdkpango.c +171 -0
  34. data/src/rbgdkpangorenderer.c +132 -0
  35. data/src/rbgdkpixbuf.c +178 -0
  36. data/src/rbgdkpixmap.c +255 -0
  37. data/src/rbgdkproperty.c +342 -0
  38. data/src/rbgdkrectangle.c +146 -0
  39. data/src/rbgdkregion.c +242 -0
  40. data/src/rbgdkrgb.c +197 -0
  41. data/src/rbgdkscreen.c +535 -0
  42. data/src/rbgdkselection.c +161 -0
  43. data/src/rbgdkthreads.c +68 -0
  44. data/src/rbgdktimecoord.c +118 -0
  45. data/src/rbgdkvisual.c +273 -0
  46. data/src/rbgdkwindow.c +1302 -0
  47. data/src/rbgdkwindowattr.c +213 -0
  48. data/src/rbgdkx11.c +256 -0
  49. data/src/rbgtk.c +93 -0
  50. data/src/rbgtk.h +121 -0
  51. data/src/rbgtkaboutdialog.c +195 -0
  52. data/src/rbgtkaccelerator.c +78 -0
  53. data/src/rbgtkaccelgroup.c +216 -0
  54. data/src/rbgtkaccelgroupentry.c +85 -0
  55. data/src/rbgtkaccelkey.c +116 -0
  56. data/src/rbgtkaccellabel.c +46 -0
  57. data/src/rbgtkaccelmap.c +162 -0
  58. data/src/rbgtkaccessible.c +29 -0
  59. data/src/rbgtkaction.c +277 -0
  60. data/src/rbgtkactiongroup.c +377 -0
  61. data/src/rbgtkadjustment.c +153 -0
  62. data/src/rbgtkalignment.c +71 -0
  63. data/src/rbgtkallocation.c +171 -0
  64. data/src/rbgtkarrow.c +47 -0
  65. data/src/rbgtkaspectframe.c +46 -0
  66. data/src/rbgtkassistant.c +230 -0
  67. data/src/rbgtkbbox.c +47 -0
  68. data/src/rbgtkbin.c +31 -0
  69. data/src/rbgtkbindingset.c +192 -0
  70. data/src/rbgtkborder.c +80 -0
  71. data/src/rbgtkbox.c +142 -0
  72. data/src/rbgtkbuildable.c +115 -0
  73. data/src/rbgtkbuilder.c +154 -0
  74. data/src/rbgtkbutton.c +151 -0
  75. data/src/rbgtkcalendar.c +159 -0
  76. data/src/rbgtkcelleditable.c +49 -0
  77. data/src/rbgtkcelllayout.c +144 -0
  78. data/src/rbgtkcellrenderer.c +139 -0
  79. data/src/rbgtkcellrendereraccel.c +42 -0
  80. data/src/rbgtkcellrenderercombo.c +37 -0
  81. data/src/rbgtkcellrendererpixbuf.c +33 -0
  82. data/src/rbgtkcellrendererprogress.c +37 -0
  83. data/src/rbgtkcellrendererspin.c +38 -0
  84. data/src/rbgtkcellrenderertext.c +45 -0
  85. data/src/rbgtkcellrenderertoggle.c +32 -0
  86. data/src/rbgtkcellview.c +134 -0
  87. data/src/rbgtkcheckbutton.c +55 -0
  88. data/src/rbgtkcheckmenuitem.c +56 -0
  89. data/src/rbgtkclipboard.c +473 -0
  90. data/src/rbgtkcolorbutton.c +63 -0
  91. data/src/rbgtkcolorsel.c +175 -0
  92. data/src/rbgtkcolorselectiondialog.c +72 -0
  93. data/src/rbgtkcombo.c +117 -0
  94. data/src/rbgtkcombobox.c +240 -0
  95. data/src/rbgtkcomboboxentry.c +60 -0
  96. data/src/rbgtkconst.c +163 -0
  97. data/src/rbgtkcontainer.c +776 -0
  98. data/src/rbgtkconversions.h +26 -0
  99. data/src/rbgtkcurve.c +105 -0
  100. data/src/rbgtkdialog.c +244 -0
  101. data/src/rbgtkdrag.c +436 -0
  102. data/src/rbgtkdrawingarea.c +31 -0
  103. data/src/rbgtkeditable.c +152 -0
  104. data/src/rbgtkentry.c +161 -0
  105. data/src/rbgtkentrycompletion.c +167 -0
  106. data/src/rbgtkeventbox.c +31 -0
  107. data/src/rbgtkexpander.c +67 -0
  108. data/src/rbgtkfilechooser.c +403 -0
  109. data/src/rbgtkfilechooserbutton.c +72 -0
  110. data/src/rbgtkfilechooserdialog.c +58 -0
  111. data/src/rbgtkfilechooserwidget.c +50 -0
  112. data/src/rbgtkfilefilter.c +139 -0
  113. data/src/rbgtkfilesel.c +155 -0
  114. data/src/rbgtkfixed.c +72 -0
  115. data/src/rbgtkfontbutton.c +69 -0
  116. data/src/rbgtkfontselection.c +30 -0
  117. data/src/rbgtkfontselectiondialog.c +106 -0
  118. data/src/rbgtkframe.c +64 -0
  119. data/src/rbgtkgamma.c +47 -0
  120. data/src/rbgtkhandlebox.c +42 -0
  121. data/src/rbgtkhbbox.c +31 -0
  122. data/src/rbgtkhbox.c +38 -0
  123. data/src/rbgtkhpaned.c +31 -0
  124. data/src/rbgtkhruler.c +31 -0
  125. data/src/rbgtkhscale.c +45 -0
  126. data/src/rbgtkhscrollbar.c +38 -0
  127. data/src/rbgtkhseparator.c +30 -0
  128. data/src/rbgtkiconfactory.c +80 -0
  129. data/src/rbgtkiconinfo.c +118 -0
  130. data/src/rbgtkiconset.c +87 -0
  131. data/src/rbgtkiconsize.c +90 -0
  132. data/src/rbgtkiconsource.c +176 -0
  133. data/src/rbgtkicontheme.c +309 -0
  134. data/src/rbgtkiconview.c +351 -0
  135. data/src/rbgtkimage.c +152 -0
  136. data/src/rbgtkimagemenuitem.c +52 -0
  137. data/src/rbgtkimcontext.c +134 -0
  138. data/src/rbgtkimcontextsimple.c +48 -0
  139. data/src/rbgtkimmulticontext.c +38 -0
  140. data/src/rbgtkinits.c +473 -0
  141. data/src/rbgtkinputdialog.c +30 -0
  142. data/src/rbgtkinvisible.c +68 -0
  143. data/src/rbgtkitem.c +51 -0
  144. data/src/rbgtkitemfactory.c +312 -0
  145. data/src/rbgtklabel.c +168 -0
  146. data/src/rbgtklayout.c +91 -0
  147. data/src/rbgtklinkbutton.c +68 -0
  148. data/src/rbgtkliststore.c +412 -0
  149. data/src/rbgtkmacros.h +26 -0
  150. data/src/rbgtkmain.c +532 -0
  151. data/src/rbgtkmenu.c +272 -0
  152. data/src/rbgtkmenubar.c +48 -0
  153. data/src/rbgtkmenuitem.c +171 -0
  154. data/src/rbgtkmenushell.c +128 -0
  155. data/src/rbgtkmenutoolbutton.c +74 -0
  156. data/src/rbgtkmessagedialog.c +102 -0
  157. data/src/rbgtkmisc.c +63 -0
  158. data/src/rbgtknotebook.c +484 -0
  159. data/src/rbgtkobject.c +186 -0
  160. data/src/rbgtkoptionmenu.c +65 -0
  161. data/src/rbgtkpagesetup.c +196 -0
  162. data/src/rbgtkpagesetupunixdialog.c +80 -0
  163. data/src/rbgtkpaned.c +114 -0
  164. data/src/rbgtkpapersize.c +186 -0
  165. data/src/rbgtkplug.c +84 -0
  166. data/src/rbgtkprintcontext.c +124 -0
  167. data/src/rbgtkprinter.c +155 -0
  168. data/src/rbgtkprintjob.c +151 -0
  169. data/src/rbgtkprintoperation.c +152 -0
  170. data/src/rbgtkprintoperationpreview.c +54 -0
  171. data/src/rbgtkprintsettings.c +794 -0
  172. data/src/rbgtkprintunixdialog.c +98 -0
  173. data/src/rbgtkprogress.c +21 -0
  174. data/src/rbgtkprogressbar.c +72 -0
  175. data/src/rbgtkradioaction.c +102 -0
  176. data/src/rbgtkradiobutton.c +83 -0
  177. data/src/rbgtkradiomenuitem.c +115 -0
  178. data/src/rbgtkradiotoolbutton.c +99 -0
  179. data/src/rbgtkrange.c +98 -0
  180. data/src/rbgtkrc.c +228 -0
  181. data/src/rbgtkrcstyle.c +184 -0
  182. data/src/rbgtkrecentaction.c +52 -0
  183. data/src/rbgtkrecentchooser.c +276 -0
  184. data/src/rbgtkrecentchooserdialog.c +59 -0
  185. data/src/rbgtkrecentchoosermenu.c +55 -0
  186. data/src/rbgtkrecentchooserwidget.c +45 -0
  187. data/src/rbgtkrecentdata.c +152 -0
  188. data/src/rbgtkrecentfilter.c +180 -0
  189. data/src/rbgtkrecentfilterinfo.c +197 -0
  190. data/src/rbgtkrecentinfo.c +232 -0
  191. data/src/rbgtkrecentmanager.c +164 -0
  192. data/src/rbgtkruler.c +82 -0
  193. data/src/rbgtkscale.c +47 -0
  194. data/src/rbgtkscalebutton.c +115 -0
  195. data/src/rbgtkscrollbar.c +21 -0
  196. data/src/rbgtkscrolledwindow.c +160 -0
  197. data/src/rbgtkselection.c +171 -0
  198. data/src/rbgtkselectiondata.c +333 -0
  199. data/src/rbgtkseparator.c +21 -0
  200. data/src/rbgtkseparatormenuitem.c +28 -0
  201. data/src/rbgtkseparatortoolitem.c +40 -0
  202. data/src/rbgtksettings.c +225 -0
  203. data/src/rbgtksizegroup.c +74 -0
  204. data/src/rbgtksocket.c +72 -0
  205. data/src/rbgtkspinbutton.c +138 -0
  206. data/src/rbgtkstatusbar.c +90 -0
  207. data/src/rbgtkstatusicon.c +120 -0
  208. data/src/rbgtkstock.c +264 -0
  209. data/src/rbgtkstyle.c +722 -0
  210. data/src/rbgtktable.c +190 -0
  211. data/src/rbgtktargetlist.c +148 -0
  212. data/src/rbgtktearoffmenuitem.c +30 -0
  213. data/src/rbgtktextappearance.c +173 -0
  214. data/src/rbgtktextattributes.c +209 -0
  215. data/src/rbgtktextbuffer.c +993 -0
  216. data/src/rbgtktextchild.c +49 -0
  217. data/src/rbgtktextiter.c +553 -0
  218. data/src/rbgtktextmark.c +87 -0
  219. data/src/rbgtktexttag.c +66 -0
  220. data/src/rbgtktexttagtable.c +94 -0
  221. data/src/rbgtktextview.c +351 -0
  222. data/src/rbgtktoggleaction.c +76 -0
  223. data/src/rbgtktogglebutton.c +84 -0
  224. data/src/rbgtktoggletoolbutton.c +70 -0
  225. data/src/rbgtktoolbar.c +373 -0
  226. data/src/rbgtktoolbutton.c +75 -0
  227. data/src/rbgtktoolitem.c +184 -0
  228. data/src/rbgtktooltip.c +76 -0
  229. data/src/rbgtktooltips.c +107 -0
  230. data/src/rbgtktreedragdest.c +19 -0
  231. data/src/rbgtktreedragsource.c +19 -0
  232. data/src/rbgtktreeiter.c +259 -0
  233. data/src/rbgtktreemodel.c +256 -0
  234. data/src/rbgtktreemodelfilter.c +214 -0
  235. data/src/rbgtktreemodelsort.c +113 -0
  236. data/src/rbgtktreepath.c +195 -0
  237. data/src/rbgtktreerowreference.c +168 -0
  238. data/src/rbgtktreeselection.c +235 -0
  239. data/src/rbgtktreesortable.c +127 -0
  240. data/src/rbgtktreestore.c +379 -0
  241. data/src/rbgtktreeview.c +881 -0
  242. data/src/rbgtktreeviewcolumn.c +331 -0
  243. data/src/rbgtkuimanager.c +210 -0
  244. data/src/rbgtkvbbox.c +31 -0
  245. data/src/rbgtkvbox.c +38 -0
  246. data/src/rbgtkviewport.c +33 -0
  247. data/src/rbgtkvolumebutton.c +36 -0
  248. data/src/rbgtkvpaned.c +31 -0
  249. data/src/rbgtkvruler.c +30 -0
  250. data/src/rbgtkvscale.c +45 -0
  251. data/src/rbgtkvscrollbar.c +38 -0
  252. data/src/rbgtkvseparator.c +30 -0
  253. data/src/rbgtkwidget.c +1414 -0
  254. data/src/rbgtkwindow.c +822 -0
  255. data/src/rbgtkwindowgroup.c +48 -0
  256. data/test/gtk-test-utils.rb +15 -0
  257. data/test/run-test.rb +30 -0
  258. data/test/test_gc.rb +25 -0
  259. data/test/test_gdk.rb +18 -0
  260. data/test/test_gdk_color.rb +10 -0
  261. data/test/test_gdk_display.rb +37 -0
  262. data/test/test_gdk_event.rb +11 -0
  263. data/test/test_gdk_gc.rb +7 -0
  264. data/test/test_gdk_keymap.rb +8 -0
  265. data/test/test_gdk_pango.rb +9 -0
  266. data/test/test_gdk_selection_data.rb +17 -0
  267. data/test/test_gdk_window.rb +29 -0
  268. data/test/test_gdk_window_attribute.rb +9 -0
  269. data/test/test_gtk_about_dialog.rb +14 -0
  270. data/test/test_gtk_buildable.rb +66 -0
  271. data/test/test_gtk_builder.rb +188 -0
  272. data/test/test_gtk_entry.rb +18 -0
  273. data/test/test_gtk_icon_theme.rb +30 -0
  274. data/test/test_gtk_image.rb +8 -0
  275. data/test/test_gtk_list_store.rb +65 -0
  276. data/test/test_gtk_menu_item.rb +13 -0
  277. data/test/test_gtk_rc_style.rb +14 -0
  278. data/test/test_gtk_tree_path.rb +20 -0
  279. data/test/test_gtk_unix_print.rb +14 -0
  280. data/test/test_gtk_widget.rb +32 -0
  281. metadata +393 -0
@@ -0,0 +1,115 @@
1
+ /* -*- c-file-style: "ruby" -*- */
2
+ /************************************************
3
+
4
+ rbgtkbuildable.c -
5
+
6
+ Copyright (C) 2008 Ruby-GNOME2 Project Team
7
+ ************************************************/
8
+
9
+ #include "global.h"
10
+
11
+ #if GTK_CHECK_VERSION(2, 12, 0)
12
+ #define _SELF(self) (GTK_BUILDABLE(RVAL2GOBJ(self)))
13
+ #define RVAL2BUILDER(obj) (GTK_BUILDER(RVAL2GOBJ(obj)))
14
+
15
+ static VALUE
16
+ buildable_get_name(VALUE self, VALUE name)
17
+ {
18
+ return CSTR2RVAL(gtk_buildable_get_name(_SELF(self)));
19
+ }
20
+
21
+ static VALUE
22
+ buildable_set_name(VALUE self, VALUE name)
23
+ {
24
+ gtk_buildable_set_name(_SELF(self), RVAL2CSTR(name));
25
+ return self;
26
+ }
27
+
28
+ static VALUE
29
+ buildable_add_child(int argc, VALUE *argv, VALUE self)
30
+ {
31
+ VALUE builder, child, type;
32
+
33
+ rb_scan_args(argc, argv, "21", &builder, &child, &type);
34
+ gtk_buildable_add_child(_SELF(self), RVAL2BUILDER(builder), RVAL2GOBJ(child),
35
+ RVAL2CSTR_ACCEPT_NIL(type));
36
+ return self;
37
+ }
38
+
39
+ static VALUE
40
+ buildable_set_buildable_property(VALUE self, VALUE rb_builder,
41
+ VALUE rb_name, VALUE rb_value)
42
+ {
43
+ GtkBuilder *builder;
44
+ const gchar *name;
45
+ GValue value = {0};
46
+
47
+ builder = RVAL2BUILDER(rb_builder);
48
+ name = RVAL2CSTR(rb_name);
49
+ rbgobj_initialize_gvalue(&value, rb_value);
50
+ gtk_buildable_set_buildable_property(_SELF(self), builder, name, &value);
51
+
52
+ return self;
53
+ }
54
+
55
+ static VALUE
56
+ buildable_construct_child(VALUE self, VALUE builder, VALUE name)
57
+ {
58
+ return GOBJ2RVAL(gtk_buildable_construct_child(_SELF(self),
59
+ RVAL2BUILDER(builder),
60
+ RVAL2CSTR(name)));
61
+ }
62
+
63
+ /*
64
+ customized buildable is not supported yet.
65
+
66
+ gboolean gtk_buildable_custom_tag_start (GtkBuildable *buildable,
67
+ GtkBuilder *builder,
68
+ GObject *child,
69
+ const gchar *tagname,
70
+ GMarkupParser *parser,
71
+ gpointer *data);
72
+ void gtk_buildable_custom_tag_end (GtkBuildable *buildable,
73
+ GtkBuilder *builder,
74
+ GObject *child,
75
+ const gchar *tagname,
76
+ gpointer *data);
77
+ void gtk_buildable_custom_finished (GtkBuildable *buildable,
78
+ GtkBuilder *builder,
79
+ GObject *child,
80
+ const gchar *tagname,
81
+ gpointer data);
82
+ void gtk_buildable_parser_finished (GtkBuildable *buildable,
83
+ GtkBuilder *builder);
84
+ */
85
+
86
+ static VALUE
87
+ buildable_get_internal_child(VALUE self, VALUE builder, VALUE child_name)
88
+ {
89
+ return GOBJ2RVAL(gtk_buildable_get_internal_child(_SELF(self),
90
+ RVAL2BUILDER(builder),
91
+ RVAL2CSTR(child_name)));
92
+ }
93
+ #endif
94
+
95
+ void
96
+ Init_gtk_buildable()
97
+ {
98
+ #if GTK_CHECK_VERSION(2, 12, 0)
99
+ VALUE cGtkBuildable;
100
+
101
+ cGtkBuildable = G_DEF_CLASS(GTK_TYPE_BUILDABLE, "Buildable", mGtk);
102
+
103
+ rb_define_method(cGtkBuildable, "builder_name", buildable_get_name, 0);
104
+ rb_define_method(cGtkBuildable, "set_builder_name", buildable_set_name, 1);
105
+ rb_define_method(cGtkBuildable, "add_child", buildable_add_child, -1);
106
+ rb_define_method(cGtkBuildable, "set_buildable_property",
107
+ buildable_set_buildable_property, 3);
108
+ rb_define_method(cGtkBuildable, "construct_child",
109
+ buildable_construct_child, 2);
110
+ rb_define_method(cGtkBuildable, "get_internal_child",
111
+ buildable_get_internal_child, 2);
112
+
113
+ G_DEF_SETTERS(cGtkBuildable);
114
+ #endif
115
+ }
@@ -0,0 +1,154 @@
1
+ /* -*- c-file-style: "ruby" -*- */
2
+ /************************************************
3
+
4
+ rbgtkbuilder.c -
5
+
6
+ Copyright (C) 2008 Ruby-GNOME2 Project Team
7
+ ************************************************/
8
+
9
+ #include "global.h"
10
+ #include <glib-enum-types.h> /* From Ruby/GLib2 */
11
+
12
+ #if GTK_CHECK_VERSION(2, 12, 0)
13
+ #define _SELF(self) (GTK_BUILDER(RVAL2GOBJ(self)))
14
+
15
+ static ID id___connect_signals__;
16
+
17
+ static void
18
+ builder_mark(gpointer object)
19
+ {
20
+ GtkBuilder *builder = object;
21
+ GSList *objects;
22
+
23
+ objects = gtk_builder_get_objects(builder);
24
+ g_slist_foreach(objects, (GFunc)rbgobj_gc_mark_instance, NULL);
25
+ g_slist_free(objects);
26
+ }
27
+
28
+ static VALUE
29
+ builder_initialize(VALUE self)
30
+ {
31
+ GtkBuilder *builder;
32
+
33
+ builder = gtk_builder_new();
34
+ G_INITIALIZE(self, builder);
35
+
36
+ return Qnil;
37
+ }
38
+
39
+ static VALUE
40
+ builder_add_from_file(VALUE self, VALUE filename)
41
+ {
42
+ GError *error = NULL;
43
+
44
+ if (gtk_builder_add_from_file(_SELF(self),
45
+ RVAL2CSTR(filename),
46
+ &error) == 0)
47
+ RAISE_GERROR(error);
48
+
49
+ return self;
50
+ }
51
+
52
+ static VALUE
53
+ builder_add_from_string(VALUE self, VALUE string)
54
+ {
55
+ GError *error = NULL;
56
+
57
+ if (gtk_builder_add_from_string(_SELF(self),
58
+ RVAL2CSTR(string),
59
+ RSTRING_LEN(string),
60
+ &error) == 0)
61
+ RAISE_GERROR(error);
62
+
63
+ return self;
64
+ }
65
+
66
+ static VALUE
67
+ builder_add(VALUE self, VALUE filename_or_xml)
68
+ {
69
+ const char xml_detect_re_str[] = "(?:\\A<|[\\r\\n])";
70
+ VALUE xml_detect_re;
71
+
72
+ xml_detect_re = rb_reg_new(xml_detect_re_str, strlen(xml_detect_re_str), 0);
73
+ if (NIL_P(rb_reg_match(xml_detect_re, filename_or_xml)))
74
+ return builder_add_from_file(self, filename_or_xml);
75
+ else
76
+ return builder_add_from_string(self, filename_or_xml);
77
+ }
78
+
79
+ static VALUE
80
+ builder_get_object(VALUE self, VALUE name)
81
+ {
82
+ return GOBJ2RVAL(gtk_builder_get_object(_SELF(self), RVAL2CSTR(name)));
83
+ }
84
+
85
+ static VALUE
86
+ builder_get_objects(VALUE self)
87
+ {
88
+ return GSLIST2ARY_FREE(gtk_builder_get_objects(_SELF(self)));
89
+ }
90
+
91
+ static void
92
+ connect_signals(GtkBuilder *builder, GObject *object, const gchar *signal_name,
93
+ const gchar *handler_name, GObject *connect_object,
94
+ GConnectFlags flags, gpointer user_data)
95
+ {
96
+ VALUE signal_connector = (VALUE)user_data;
97
+
98
+ rb_funcall(GOBJ2RVAL(builder), id___connect_signals__, 6,
99
+ signal_connector, GOBJ2RVAL(object), CSTR2RVAL(signal_name),
100
+ CSTR2RVAL(handler_name), GOBJ2RVAL(connect_object),
101
+ GFLAGS2RVAL(flags, G_TYPE_CONNECT_FLAGS));
102
+ }
103
+
104
+ static VALUE
105
+ builder_connect_signals(VALUE self)
106
+ {
107
+ VALUE signal_connector;
108
+
109
+ signal_connector = rb_block_proc();
110
+ G_CHILD_ADD(self, signal_connector);
111
+ gtk_builder_connect_signals_full(_SELF(self), connect_signals,
112
+ (gpointer)signal_connector);
113
+ G_CHILD_REMOVE(self, signal_connector);
114
+
115
+ return self;
116
+ }
117
+
118
+ static VALUE
119
+ builder_get_type_from_name(VALUE self, VALUE name)
120
+ {
121
+ return GTYPE2CLASS(gtk_builder_get_type_from_name(_SELF(self),
122
+ RVAL2CSTR(name)));
123
+ }
124
+ #endif
125
+
126
+ void
127
+ Init_gtk_builder()
128
+ {
129
+ #if GTK_CHECK_VERSION(2, 12, 0)
130
+ VALUE gBuilder;
131
+
132
+ id___connect_signals__ = rb_intern("__connect_signals__");
133
+
134
+ gBuilder = G_DEF_CLASS_WITH_GC_FUNC(GTK_TYPE_BUILDER, "Builder", mGtk,
135
+ builder_mark, NULL);
136
+
137
+ G_DEF_CLASS(GTK_TYPE_BUILDER_ERROR, "BuilderError", mGtk);
138
+
139
+ rb_define_method(gBuilder, "initialize", builder_initialize, 0);
140
+
141
+ rb_define_method(gBuilder, "add_from_file", builder_add_from_file, 1);
142
+ rb_define_method(gBuilder, "add_from_string", builder_add_from_string, 1);
143
+ rb_define_method(gBuilder, "add", builder_add, 1);
144
+ rb_define_alias(gBuilder, "<<", "add");
145
+
146
+ rb_define_method(gBuilder, "get_object", builder_get_object, 1);
147
+ rb_define_alias(gBuilder, "[]", "get_object");
148
+ rb_define_method(gBuilder, "objects", builder_get_objects, 0);
149
+
150
+ rb_define_method(gBuilder, "connect_signals", builder_connect_signals, 0);
151
+
152
+ rb_define_method(gBuilder, "get_type", builder_get_type_from_name, 1);
153
+ #endif
154
+ }
@@ -0,0 +1,151 @@
1
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
+ /************************************************
3
+
4
+ rbgtkbutton.c -
5
+
6
+ $Author: ggc $
7
+ $Date: 2007/07/13 16:07:31 $
8
+
9
+ Copyright (C) 2002-2004 Ruby-GNOME2 Project Team
10
+ Copyright (C) 1998-2000 Yukihiro Matsumoto,
11
+ Daisuke Kanda,
12
+ Hiroshi Igarashi
13
+ ************************************************/
14
+
15
+ #include "global.h"
16
+
17
+ #define _SELF(self) (GTK_BUTTON(RVAL2GOBJ(self)))
18
+
19
+ static VALUE
20
+ button_initialize(argc, argv, self)
21
+ int argc;
22
+ VALUE *argv;
23
+ VALUE self;
24
+ {
25
+ VALUE label, use_underline;
26
+ GtkWidget *widget = NULL;
27
+
28
+ if (rb_scan_args(argc, argv, "02", &label, &use_underline) > 0) {
29
+ if (TYPE(label) == T_STRING){
30
+ if (NIL_P(use_underline) || RVAL2CBOOL(use_underline)){
31
+ widget = gtk_button_new_with_mnemonic(RVAL2CSTR(label));
32
+ } else {
33
+ widget = gtk_button_new_with_label(RVAL2CSTR(label));
34
+ }
35
+ } else if (TYPE(label) == T_SYMBOL){
36
+ widget = gtk_button_new_from_stock(rb_id2name(SYM2ID(label)));
37
+ } else {
38
+ rb_raise(rb_eArgError, "invalid argument %s (expect Symbol(Gtk::Stock constants) or String)",
39
+ rb_class2name(CLASS_OF(label)));
40
+ }
41
+ } else {
42
+ widget = gtk_button_new();
43
+ }
44
+
45
+ RBGTK_INITIALIZE(self, widget);
46
+ return Qnil;
47
+ }
48
+
49
+ static VALUE
50
+ button_pressed(self)
51
+ VALUE self;
52
+ {
53
+ gtk_button_pressed(GTK_BUTTON(RVAL2GOBJ(self)));
54
+ return self;
55
+ }
56
+
57
+ static VALUE
58
+ button_released(self)
59
+ VALUE self;
60
+ {
61
+ gtk_button_released(_SELF(self));
62
+ return self;
63
+ }
64
+
65
+ static VALUE
66
+ button_clicked(self)
67
+ VALUE self;
68
+ {
69
+ gtk_button_clicked(_SELF(self));
70
+ return self;
71
+ }
72
+
73
+ static VALUE
74
+ button_enter(self)
75
+ VALUE self;
76
+ {
77
+ gtk_button_enter(_SELF(self));
78
+ return self;
79
+ }
80
+
81
+ static VALUE
82
+ button_leave(self)
83
+ VALUE self;
84
+ {
85
+ gtk_button_leave(_SELF(self));
86
+ return self;
87
+ }
88
+
89
+ #if GTK_CHECK_VERSION(2,4,0)
90
+ static VALUE
91
+ button_set_alignment(self, xalign, yalign)
92
+ VALUE self, xalign, yalign;
93
+ {
94
+ gtk_button_set_alignment(_SELF(self), NUM2DBL(xalign), NUM2DBL(yalign));
95
+ return self;
96
+ }
97
+
98
+ static VALUE
99
+ button_get_alignment(self)
100
+ VALUE self;
101
+ {
102
+ gfloat xalign, yalign;
103
+ gtk_button_get_alignment(_SELF(self), &xalign, &yalign);
104
+
105
+ return rb_assoc_new(rb_float_new(xalign), rb_float_new(yalign));
106
+ }
107
+ #endif
108
+
109
+ /* Defined as properties.
110
+ void gtk_button_set_relief (GtkButton *button,
111
+ GtkReliefStyle newstyle);
112
+ GtkReliefStyle gtk_button_get_relief (GtkButton *button);
113
+ const gchar* gtk_button_get_label (GtkButton *button);
114
+ void gtk_button_set_label (GtkButton *button,
115
+ const gchar *label);
116
+ gboolean gtk_button_get_use_stock (GtkButton *button);
117
+ void gtk_button_set_use_stock (GtkButton *button,
118
+ gboolean use_stock);
119
+ gboolean gtk_button_get_use_underline (GtkButton *button);
120
+ void gtk_button_set_use_underline (GtkButton *button,
121
+ gboolean use_underline);
122
+ void gtk_button_set_focus_on_click (GtkButton *button,
123
+ gboolean focus_on_click);
124
+ gboolean gtk_button_get_focus_on_click (GtkButton *button);
125
+ void gtk_button_set_image (GtkButton *button,
126
+ GtkWidget *image);
127
+ GtkWidget* gtk_button_get_image (GtkButton *button);
128
+ void gtk_button_set_image_position (GtkButton *button,
129
+ GtkPositionType position);
130
+ GtkPositionType gtk_button_get_image_position
131
+ (GtkButton *button);
132
+ */
133
+
134
+ void
135
+ Init_gtk_button()
136
+ {
137
+ VALUE gButton = G_DEF_CLASS(GTK_TYPE_BUTTON, "Button", mGtk);
138
+
139
+ rb_define_method(gButton, "initialize", button_initialize, -1);
140
+ rb_define_method(gButton, "pressed", button_pressed, 0);
141
+ rb_define_method(gButton, "released", button_released, 0);
142
+ rb_define_method(gButton, "clicked", button_clicked, 0);
143
+ rb_define_method(gButton, "enter", button_enter, 0);
144
+ rb_define_method(gButton, "leave", button_leave, 0);
145
+
146
+ #if GTK_CHECK_VERSION(2,4,0)
147
+ rb_define_method(gButton, "set_alignment", button_set_alignment, 2);
148
+ rb_define_method(gButton, "alignment", button_get_alignment, 0);
149
+ #endif
150
+ G_DEF_SETTERS(gButton);
151
+ }
@@ -0,0 +1,159 @@
1
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
+ /************************************************
3
+
4
+ rbgtkcalendar.c -
5
+
6
+ $Author: mutoh $
7
+ $Date: 2004/07/31 05:44:45 $
8
+
9
+ Copyright (C) 2002-2004 Ruby-GNOME2 Project Team
10
+ Copyright (C) 1998-2000 Yukihiro Matsumoto,
11
+ Daisuke Kanda,
12
+ Hiroshi Igarashi
13
+ ************************************************/
14
+
15
+ #include "global.h"
16
+
17
+ #define _SELF(self) (GTK_CALENDAR(RVAL2GOBJ(self)))
18
+
19
+ static VALUE
20
+ cal_init(self)
21
+ VALUE self;
22
+ {
23
+ RBGTK_INITIALIZE(self, gtk_calendar_new());
24
+ return Qnil;
25
+ }
26
+
27
+ static VALUE
28
+ cal_select_month(self, month, year)
29
+ VALUE self, month, year;
30
+ {
31
+ gint ret = gtk_calendar_select_month(_SELF(self),
32
+ NUM2INT(month)-1,
33
+ NUM2INT(year));
34
+ return INT2FIX(ret);
35
+ }
36
+
37
+ static VALUE
38
+ cal_select_day(self, day)
39
+ VALUE self, day;
40
+ {
41
+ gtk_calendar_select_day(_SELF(self), NUM2INT(day));
42
+ return self;
43
+ }
44
+
45
+ static VALUE
46
+ cal_mark_day(self, day)
47
+ VALUE self, day;
48
+ {
49
+ gtk_calendar_mark_day(_SELF(self), NUM2INT(day));
50
+ return self;
51
+ }
52
+
53
+ static VALUE
54
+ cal_unmark_day(self, day)
55
+ VALUE self, day;
56
+ {
57
+ gtk_calendar_unmark_day(_SELF(self), NUM2INT(day));
58
+ return self;
59
+ }
60
+
61
+ static VALUE
62
+ cal_clear_marks(self)
63
+ VALUE self;
64
+ {
65
+ gtk_calendar_clear_marks(_SELF(self));
66
+ return self;
67
+ }
68
+
69
+ static VALUE
70
+ cal_get_date(self)
71
+ VALUE self;
72
+ {
73
+ VALUE ret;
74
+ guint year, month, day;
75
+
76
+ gtk_calendar_get_date(_SELF(self), &year, &month, &day);
77
+ ret = rb_ary_new();
78
+ rb_ary_push(ret, INT2FIX(year));
79
+ rb_ary_push(ret, INT2FIX(month+1));
80
+ rb_ary_push(ret, INT2FIX(day));
81
+ return ret;
82
+ }
83
+
84
+ static VALUE
85
+ cal_freeze(self)
86
+ VALUE self;
87
+ {
88
+ gtk_calendar_freeze(_SELF(self));
89
+ return self;
90
+ }
91
+
92
+ static VALUE
93
+ cal_thaw(self)
94
+ VALUE self;
95
+ {
96
+ gtk_calendar_thaw(_SELF(self));
97
+ return self;
98
+ }
99
+
100
+ static VALUE
101
+ cal_get_display_options(argc, argv, self)
102
+ int argc;
103
+ VALUE *argv;
104
+ VALUE self;
105
+ {
106
+ VALUE flags;
107
+ rb_scan_args(argc, argv, "01", &flags);
108
+
109
+ if NIL_P(flags){
110
+ #if GTK_CHECK_VERSION(2,4,0)
111
+ return GFLAGS2RVAL(gtk_calendar_get_display_options(_SELF(self)),
112
+ GTK_TYPE_CALENDAR_DISPLAY_OPTIONS);
113
+ #else
114
+ rb_warn("Gtk::Calendar#display_options has supported since GTK+-2.4.");
115
+ #endif
116
+ } else {
117
+ /* This is for backward compatibility. */
118
+ rb_warning("Gtk::Calendar#display_options(flags) has been deprecated. Use Gtk::Calendar#set_display_options(flags).");
119
+ gtk_calendar_display_options(_SELF(self),
120
+ RVAL2GFLAGS(flags, GTK_TYPE_CALENDAR_DISPLAY_OPTIONS));
121
+ }
122
+ return self;
123
+ }
124
+
125
+ #if GTK_CHECK_VERSION(2,4,0)
126
+ static VALUE
127
+ cal_set_display_options(self, flags)
128
+ VALUE self, flags;
129
+ {
130
+ gtk_calendar_set_display_options(_SELF(self),
131
+ RVAL2GFLAGS(flags,
132
+ GTK_TYPE_CALENDAR_DISPLAY_OPTIONS));
133
+ return self;
134
+ }
135
+ #endif
136
+
137
+ void
138
+ Init_gtk_calendar()
139
+ {
140
+ VALUE gCalendar = G_DEF_CLASS(GTK_TYPE_CALENDAR, "Calendar", mGtk);
141
+
142
+ rb_define_method(gCalendar, "initialize", cal_init, 0);
143
+ rb_define_method(gCalendar, "select_month", cal_select_month, 2);
144
+ rb_define_method(gCalendar, "select_day", cal_select_day, 1);
145
+ rb_define_method(gCalendar, "mark_day", cal_mark_day, 1);
146
+ rb_define_method(gCalendar, "unmark_day", cal_unmark_day, 1);
147
+ rb_define_method(gCalendar, "clear_marks", cal_clear_marks, 0);
148
+ rb_define_method(gCalendar, "date", cal_get_date, 0);
149
+ rb_define_method(gCalendar, "freeze", cal_freeze, 0);
150
+ rb_define_method(gCalendar, "thaw", cal_thaw, 0);
151
+ rb_define_method(gCalendar, "display_options", cal_get_display_options, -1);
152
+ #if GTK_CHECK_VERSION(2,4,0)
153
+ rb_define_method(gCalendar, "set_display_options", cal_set_display_options, 1);
154
+ #endif
155
+ G_DEF_SETTERS(gCalendar);
156
+
157
+ G_DEF_CLASS(GTK_TYPE_CALENDAR_DISPLAY_OPTIONS, "DisplayOptions", gCalendar);
158
+ G_DEF_CONSTANTS(gCalendar, GTK_TYPE_CALENDAR_DISPLAY_OPTIONS, "GTK_CALENDAR_");
159
+ }