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,5 @@
1
+ while gets
2
+ if ~ /^#define\s+(GDK_\w+)\s+\d+/
3
+ print %{rb_define_const(mGdkKeyval, "#$1", INT2FIX(#$1));\n}
4
+ end
5
+ end
@@ -0,0 +1,395 @@
1
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
+ /************************************************
3
+
4
+ rbgdk.c -
5
+
6
+ $Author: ggc $
7
+ $Date: 2007/07/13 16:07:30 $
8
+
9
+ Copyright (C) 2002,2003 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
+ VALUE mGdk;
18
+
19
+ /* We don't need them.
20
+ void gdk_init (gint *argc,
21
+ gchar ***argv);
22
+ gboolean gdk_init_check (gint *argc,
23
+ gchar ***argv);
24
+ void gdk_parse_args (gint *argc,
25
+ gchar ***argv);
26
+ */
27
+
28
+ #if GTK_CHECK_VERSION(2,2,0)
29
+ static VALUE
30
+ gdk_s_get_display_arg_name(self)
31
+ VALUE self;
32
+ {
33
+ return CSTR2RVAL(gdk_get_display_arg_name());
34
+ }
35
+ #endif
36
+
37
+ static VALUE
38
+ gdk_s_set_locale(self)
39
+ VALUE self;
40
+ {
41
+ return CSTR2RVAL(gdk_set_locale());
42
+ }
43
+
44
+ static VALUE
45
+ gdk_s_set_sm_client_id(self, id)
46
+ VALUE self, id;
47
+ {
48
+ gdk_set_sm_client_id(NIL_P(id) ? NULL : RVAL2CSTR(id));
49
+ return self;
50
+ }
51
+
52
+ #if GTK_CHECK_VERSION(2,2,0)
53
+ static VALUE
54
+ gdk_s_notify_startup_complete(int argc, VALUE *argv, VALUE self)
55
+ {
56
+ VALUE startup_id;
57
+
58
+ rb_scan_args(argc, argv, "01", &startup_id);
59
+
60
+ if (NIL_P(startup_id)) {
61
+ gdk_notify_startup_complete();
62
+ } else {
63
+ #if GTK_CHECK_VERSION(2, 12, 0)
64
+ gdk_notify_startup_complete_with_id(RVAL2CSTR(startup_id));
65
+ #else
66
+ rb_raise(rb_eNotImpError,
67
+ "GTK+ >= 2.12 is required to use "
68
+ "Gdk.notify_startup_complete with startup ID.");
69
+ #endif
70
+ }
71
+ return self;
72
+ }
73
+ #endif
74
+
75
+ static VALUE
76
+ gdk_s_get_program_class(self)
77
+ VALUE self;
78
+ {
79
+ return CSTR2RVAL(gdk_get_program_class());
80
+ }
81
+
82
+ static VALUE
83
+ gdk_s_set_program_class(self, program_class)
84
+ VALUE self, program_class;
85
+ {
86
+ gdk_set_program_class(RVAL2CSTR(program_class));
87
+ return self;
88
+ }
89
+
90
+ static VALUE
91
+ gdk_s_get_display(self)
92
+ VALUE self;
93
+ {
94
+ return CSTR2RVAL(gdk_get_display());
95
+ }
96
+
97
+ #ifdef HAVE_X11_XLIB_H
98
+ #ifdef HAVE_XGETERRORTEXT
99
+ #include <X11/Xlib.h>
100
+ #include <errno.h>
101
+
102
+ static VALUE rb_x_error;
103
+ static VALUE rb_x_io_error;
104
+
105
+ static int
106
+ rbgdk_x_error(display, error)
107
+ Display* display;
108
+ XErrorEvent* error;
109
+ {
110
+ gchar buf[64];
111
+
112
+ XGetErrorText(display, error->error_code, buf, 63);
113
+
114
+ rb_funcall((VALUE)rb_x_error, id_call, 4, INT2NUM(error->serial),
115
+ INT2NUM(error->error_code), INT2NUM(error->request_code),
116
+ INT2NUM(error->minor_code));
117
+ return 0;
118
+ }
119
+
120
+ static int
121
+ rbgdk_x_io_error(display)
122
+ Display* display;
123
+ {
124
+ int errno_saved = errno;
125
+ const gchar* disp;
126
+ const gchar* error;
127
+
128
+ #if GTK_CHECK_VERSION(2,2,0)
129
+ disp = display ? DisplayString(display) : gdk_get_display_arg_name();
130
+ #else
131
+ disp = DisplayString(display);
132
+ #endif
133
+ if (! disp)
134
+ disp = "(none)";
135
+
136
+ error = g_strerror(errno_saved);
137
+
138
+ rb_funcall((VALUE)rb_x_io_error, id_call, 3, CSTR2RVAL(disp),
139
+ INT2NUM(errno), CSTR2RVAL(error));
140
+ return 0;
141
+ }
142
+ #endif
143
+ #endif
144
+
145
+ static VALUE
146
+ gdk_s_set_x_error_handler(self)
147
+ VALUE self;
148
+ {
149
+ #ifdef HAVE_XGETERRORTEXT
150
+ rb_x_error = rb_block_proc();
151
+ G_RELATIVE(self, rb_x_error);
152
+ XSetErrorHandler(rbgdk_x_error);
153
+ #else
154
+ rb_warn("Not supported on this environment.");
155
+ #endif
156
+ return self;
157
+ }
158
+
159
+ static VALUE
160
+ gdk_s_set_x_io_error_handler(self)
161
+ VALUE self;
162
+ {
163
+ #ifdef HAVE_XGETERRORTEXT
164
+ rb_x_io_error = rb_block_proc();
165
+ G_RELATIVE(self, rb_x_io_error);
166
+ XSetIOErrorHandler(rbgdk_x_io_error);
167
+ #else
168
+ rb_warn("Not supported on this environment.");
169
+ #endif
170
+ return self;
171
+ }
172
+
173
+ static VALUE
174
+ gdk_s_flush(self)
175
+ VALUE self;
176
+ {
177
+ gdk_flush();
178
+ return self;
179
+ }
180
+
181
+ static VALUE
182
+ gdk_s_screen_width(self)
183
+ VALUE self;
184
+ {
185
+ return INT2NUM(gdk_screen_width());
186
+ }
187
+
188
+ static VALUE
189
+ gdk_s_screen_width_mm(self)
190
+ VALUE self;
191
+ {
192
+ return INT2NUM(gdk_screen_width_mm());
193
+ }
194
+
195
+ static VALUE
196
+ gdk_s_screen_height(self)
197
+ VALUE self;
198
+ {
199
+ return INT2NUM(gdk_screen_height());
200
+ }
201
+
202
+ static VALUE
203
+ gdk_s_screen_height_mm(self)
204
+ VALUE self;
205
+ {
206
+ return INT2NUM(gdk_screen_height_mm());
207
+ }
208
+
209
+ static VALUE
210
+ gdk_s_pointer_grab(self, win, owner_events, event_mask, confine_to, cursor, time)
211
+ VALUE self, win, owner_events, event_mask, confine_to, cursor, time;
212
+ {
213
+ return GENUM2RVAL(gdk_pointer_grab(GDK_WINDOW(RVAL2GOBJ(win)),
214
+ RVAL2CBOOL(owner_events),
215
+ RVAL2GFLAGS(event_mask, GDK_TYPE_EVENT_MASK),
216
+ NIL_P(confine_to)?NULL:GDK_WINDOW(RVAL2GOBJ(confine_to)),
217
+ NIL_P(cursor)?NULL:(GdkCursor*)RVAL2BOXED(cursor, GDK_TYPE_CURSOR),
218
+ NUM2INT(time)), GDK_TYPE_GRAB_STATUS);
219
+ }
220
+
221
+ static VALUE
222
+ gdk_s_pointer_ungrab(self, time)
223
+ VALUE self, time;
224
+ {
225
+ gdk_pointer_ungrab(NUM2INT(time));
226
+ return self;
227
+ }
228
+
229
+ static VALUE
230
+ gdk_s_keyboard_grab(self, win, owner_events, time)
231
+ VALUE self, win, owner_events, time;
232
+ {
233
+ return GENUM2RVAL(gdk_keyboard_grab(GDK_WINDOW(RVAL2GOBJ(win)),
234
+ RVAL2CBOOL(owner_events), NUM2INT(time)),
235
+ GDK_TYPE_GRAB_STATUS);
236
+ }
237
+
238
+ static VALUE
239
+ gdk_s_keyboard_ungrab(self, time)
240
+ VALUE self, time;
241
+ {
242
+ gdk_keyboard_ungrab(NUM2INT(time));
243
+ return self;
244
+ }
245
+
246
+ static VALUE
247
+ gdk_s_pointer_is_grabbed(self)
248
+ VALUE self;
249
+ {
250
+ return CBOOL2RVAL(gdk_pointer_is_grabbed());
251
+ }
252
+
253
+ static VALUE
254
+ gdk_s_set_double_click_time(self, msec)
255
+ VALUE self, msec;
256
+ {
257
+ gdk_set_double_click_time(NUM2UINT(msec));
258
+ return self;
259
+ }
260
+
261
+ static VALUE
262
+ gdk_s_beep(self)
263
+ VALUE self;
264
+ {
265
+ gdk_beep();
266
+ return self;
267
+ }
268
+
269
+ static VALUE
270
+ gdk_s_error_trap_push(self)
271
+ VALUE self;
272
+ {
273
+ gdk_error_trap_push();
274
+ return self;
275
+ }
276
+
277
+ static VALUE
278
+ gdk_s_error_trap_pop(self)
279
+ VALUE self;
280
+ {
281
+ gdk_error_trap_pop();
282
+ return self;
283
+ }
284
+
285
+ static VALUE
286
+ gdk_s_windowing_x11(self)
287
+ VALUE self;
288
+ {
289
+ #ifdef GDK_WINDOWING_X11
290
+ return Qtrue;
291
+ #else
292
+ return Qfalse;
293
+ #endif
294
+ }
295
+
296
+ static VALUE
297
+ gdk_s_windowing_win32(self)
298
+ VALUE self;
299
+ {
300
+ #ifdef GDK_WINDOWING_WIN32
301
+ return Qtrue;
302
+ #else
303
+ return Qfalse;
304
+ #endif
305
+ }
306
+
307
+ static VALUE
308
+ gdk_s_windowing_fb(self)
309
+ VALUE self;
310
+ {
311
+ #ifdef GDK_WINDOWING_FB
312
+ return Qtrue;
313
+ #else
314
+ return Qfalse;
315
+ #endif
316
+ }
317
+
318
+ static VALUE
319
+ gdk_s_windowing_quartz(self)
320
+ VALUE self;
321
+ {
322
+ #ifdef GDK_WINDOWING_QUARTZ
323
+ return Qtrue;
324
+ #else
325
+ return Qfalse;
326
+ #endif
327
+ }
328
+
329
+ static VALUE
330
+ gdk_s_windowing_directfb(self)
331
+ VALUE self;
332
+ {
333
+ #ifdef GDK_WINDOWING_DIRECTFB
334
+ return Qtrue;
335
+ #else
336
+ return Qfalse;
337
+ #endif
338
+ }
339
+
340
+ static VALUE
341
+ gdk_m_target(self)
342
+ VALUE self;
343
+ {
344
+ return CSTR2RVAL(RUBY_GTK2_TARGET);
345
+ }
346
+
347
+ void
348
+ Init_gtk_gdk()
349
+ {
350
+ mGdk = rb_define_module("Gdk");
351
+
352
+ #if GTK_CHECK_VERSION(2,2,0)
353
+ rb_define_module_function(mGdk, "display_arg_name", gdk_s_get_display_arg_name, 0);
354
+ #endif
355
+ rb_define_module_function(mGdk, "set_locale", gdk_s_set_locale, 0);
356
+ rb_define_module_function(mGdk, "set_sm_client_id", gdk_s_set_sm_client_id, 1);
357
+ #if GTK_CHECK_VERSION(2, 2, 0)
358
+ rb_define_module_function(mGdk, "notify_startup_complete",
359
+ gdk_s_notify_startup_complete, -1);
360
+ #endif
361
+ rb_define_module_function(mGdk, "program_class", gdk_s_get_program_class, 0);
362
+ rb_define_module_function(mGdk, "set_program_class", gdk_s_set_program_class, 1);
363
+ rb_define_module_function(mGdk, "display", gdk_s_get_display, 0);
364
+
365
+ rb_define_module_function(mGdk, "set_x_error_handler", gdk_s_set_x_error_handler , 0);
366
+ rb_define_module_function(mGdk, "set_x_io_error_handler", gdk_s_set_x_io_error_handler , 0);
367
+ rb_define_module_function(mGdk, "screen_width", gdk_s_screen_width, 0);
368
+ rb_define_module_function(mGdk, "screen_width_mm", gdk_s_screen_width_mm, 0);
369
+ rb_define_module_function(mGdk, "screen_height", gdk_s_screen_height, 0);
370
+ rb_define_module_function(mGdk, "screen_height_mm", gdk_s_screen_height_mm, 0);
371
+ rb_define_module_function(mGdk, "beep", gdk_s_beep, 0);
372
+ rb_define_module_function(mGdk, "flush", gdk_s_flush, 0);
373
+ rb_define_module_function(mGdk, "set_double_click_time", gdk_s_set_double_click_time, 1);
374
+ rb_define_module_function(mGdk, "pointer_grab", gdk_s_pointer_grab, 6);
375
+ rb_define_module_function(mGdk, "pointer_ungrab", gdk_s_pointer_ungrab, 1);
376
+ rb_define_module_function(mGdk, "keyboard_grab", gdk_s_keyboard_grab, 3);
377
+ rb_define_module_function(mGdk, "keyboard_ungrab", gdk_s_keyboard_ungrab, 1);
378
+ rb_define_module_function(mGdk, "pointer_is_grabbed?", gdk_s_pointer_is_grabbed, 0);
379
+ rb_define_module_function(mGdk, "error_trap_push", gdk_s_error_trap_push, 0);
380
+ rb_define_module_function(mGdk, "error_trap_pop", gdk_s_error_trap_pop, 0);
381
+ rb_define_module_function(mGdk, "windowing_x11?", gdk_s_windowing_x11, 0);
382
+ rb_define_module_function(mGdk, "windowing_win32?", gdk_s_windowing_win32, 0);
383
+ rb_define_module_function(mGdk, "windowing_fb?", gdk_s_windowing_fb, 0);
384
+ rb_define_module_function(mGdk, "windowing_quartz?", gdk_s_windowing_quartz, 0);
385
+ rb_define_module_function(mGdk, "windowing_directfb?", gdk_s_windowing_directfb, 0);
386
+
387
+ rb_define_module_function(mGdk, "target", gdk_m_target, 0);
388
+
389
+ /* GdkGrabStatus */
390
+ G_DEF_CLASS(GDK_TYPE_GRAB_STATUS, "GrabStatus", mGdk);
391
+ G_DEF_CONSTANTS(mGdk, GDK_TYPE_GRAB_STATUS, "GDK_");
392
+
393
+ G_DEF_SETTERS(mGdk);
394
+ }
395
+
@@ -0,0 +1,50 @@
1
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
+ /************************************************
3
+
4
+ rbgdkconversions.h -
5
+
6
+ Copyright (C) 2008 Ruby-GNOME2 Project Team
7
+ ************************************************/
8
+
9
+ #ifndef __RB_GDK_H__
10
+ #define __RB_GDK_H__
11
+
12
+ #include <rbgobject.h>
13
+ #include <rbgtkmacros.h>
14
+ #include <gdk/gdk.h>
15
+ #include <rbgdkconversions.h>
16
+
17
+ #ifdef GDK_WINDOWING_X11
18
+ # include <gdk/gdkx.h>
19
+ #endif
20
+
21
+ #define GDK_BITMAP(b) ((GdkBitmap*)GDK_PIXMAP(b))
22
+
23
+ #define GEV2RVAL(ev) (make_gdkevent(ev))
24
+ #define RVAL2GEV(ev) (get_gdkevent(ev))
25
+ #define RVAL2ATOM(atom) (get_gdkatom(atom))
26
+
27
+ #define GDK_TYPE_GEOMETRY (gdk_geometry_get_type())
28
+ #define GDK_TYPE_REGION (gdk_region_get_type())
29
+ #define GDK_TYPE_ATOM (gdk_atom_get_type())
30
+ #define GDK_TYPE_WINDOW_ATTR (gdk_windowattr_get_type())
31
+ #define GDK_TYPE_TIME_COORD (gdk_timecoord_get_type())
32
+
33
+ RUBY_GTK2_VAR VALUE mGdk;
34
+ RUBY_GTK2_VAR VALUE rb_cGdkColor;
35
+
36
+ typedef struct {
37
+ GdkAtom atom;
38
+ } GdkAtomData;
39
+
40
+ extern GType gdk_windowattr_get_type(void);
41
+ extern GType gdk_atom_get_type(void);
42
+ extern GType gdk_geometry_get_type(void);
43
+ extern GType gdk_region_get_type(void);
44
+ extern GType gdk_timecoord_get_type(void);
45
+
46
+ extern GdkAtom get_gdkatom(VALUE atom);
47
+ extern VALUE make_gdkevent(GdkEvent* event);
48
+ extern GdkEvent* get_gdkevent(VALUE event);
49
+
50
+ #endif /* __RB_GDK_H__ */