gdk3 1.2.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 (44) hide show
  1. data/Rakefile +53 -0
  2. data/ext/gdk3/depend +11 -0
  3. data/ext/gdk3/extconf.rb +127 -0
  4. data/ext/gdk3/gdk3.def +12 -0
  5. data/ext/gdk3/init.c +35 -0
  6. data/ext/gdk3/rbgdk.c +540 -0
  7. data/ext/gdk3/rbgdk3.h +71 -0
  8. data/ext/gdk3/rbgdk3conversions.h +118 -0
  9. data/ext/gdk3/rbgdk3private.h +93 -0
  10. data/ext/gdk3/rbgdkatom.c +122 -0
  11. data/ext/gdk3/rbgdkcairo.c +95 -0
  12. data/ext/gdk3/rbgdkcolor.c +137 -0
  13. data/ext/gdk3/rbgdkconst.c +33 -0
  14. data/ext/gdk3/rbgdkcursor.c +99 -0
  15. data/ext/gdk3/rbgdkdevice.c +197 -0
  16. data/ext/gdk3/rbgdkdisplay.c +482 -0
  17. data/ext/gdk3/rbgdkdisplaymanager.c +55 -0
  18. data/ext/gdk3/rbgdkdragcontext.c +191 -0
  19. data/ext/gdk3/rbgdkdraw.c +520 -0
  20. data/ext/gdk3/rbgdkevent.c +926 -0
  21. data/ext/gdk3/rbgdkgeometry.c +252 -0
  22. data/ext/gdk3/rbgdkkeymap.c +151 -0
  23. data/ext/gdk3/rbgdkkeyval.c +108 -0
  24. data/ext/gdk3/rbgdkpango.c +197 -0
  25. data/ext/gdk3/rbgdkpangorenderer.c +144 -0
  26. data/ext/gdk3/rbgdkpixbuf.c +176 -0
  27. data/ext/gdk3/rbgdkproperty.c +305 -0
  28. data/ext/gdk3/rbgdkrectangle.c +140 -0
  29. data/ext/gdk3/rbgdkrgb.c +199 -0
  30. data/ext/gdk3/rbgdkrgba.c +142 -0
  31. data/ext/gdk3/rbgdkscreen.c +443 -0
  32. data/ext/gdk3/rbgdkselection.c +146 -0
  33. data/ext/gdk3/rbgdkthreads.c +77 -0
  34. data/ext/gdk3/rbgdktimecoord.c +133 -0
  35. data/ext/gdk3/rbgdkvisual.c +251 -0
  36. data/ext/gdk3/rbgdkwindow.c +1044 -0
  37. data/ext/gdk3/rbgdkwindowattr.c +191 -0
  38. data/ext/gdk3/rbgdkx11.c +102 -0
  39. data/ext/gdk3/rbgdkx11x11window.c +66 -0
  40. data/extconf.rb +49 -0
  41. data/lib/gdk3.rb +3 -0
  42. data/lib/gdk3/base.rb +50 -0
  43. data/lib/gdk3/deprecated.rb +152 -0
  44. metadata +156 -0
@@ -0,0 +1,142 @@
1
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
+ /*
3
+ * Copyright (C) 2011 Ruby-GNOME2 Project Team
4
+ *
5
+ * This library is free software; you can redistribute it and/or
6
+ * modify it under the terms of the GNU Lesser General Public
7
+ * License as published by the Free Software Foundation; either
8
+ * version 2.1 of the License, or (at your option) any later version.
9
+ *
10
+ * This library is distributed in the hope that it will be useful,
11
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13
+ * Lesser General Public License for more details.
14
+ *
15
+ * You should have received a copy of the GNU Lesser General Public
16
+ * License along with this library; if not, write to the Free Software
17
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
18
+ * MA 02110-1301 USA
19
+ */
20
+
21
+ #include "rbgdk3private.h"
22
+
23
+ #define RG_TARGET_NAMESPACE cRGBA
24
+ #define _SELF(self) (RVAL2GDKRGBA(self))
25
+
26
+ static VALUE
27
+ rg_s_parse(G_GNUC_UNUSED VALUE self, VALUE spec)
28
+ {
29
+ GdkRGBA color;
30
+ if (!gdk_rgba_parse(&color, RVAL2CSTR(spec)))
31
+ rb_raise(rb_eArgError, "can't parse color representation `%s'", RVAL2CSTR(spec));
32
+ return GDKRGBA2RVAL(&color);
33
+ }
34
+
35
+ static VALUE
36
+ rg_initialize(VALUE self, VALUE red, VALUE green, VALUE blue, VALUE alpha)
37
+ {
38
+ GdkRGBA color;
39
+
40
+ color.red = NUM2DBL(red);
41
+ color.green = NUM2DBL(green);
42
+ color.blue = NUM2DBL(blue);
43
+ color.alpha = NUM2DBL(alpha);
44
+
45
+ G_INITIALIZE(self, &color);
46
+
47
+ return Qnil;
48
+ }
49
+
50
+ static VALUE
51
+ rg_red(VALUE self)
52
+ {
53
+ return DBL2NUM(_SELF(self)->red);
54
+ }
55
+
56
+ static VALUE
57
+ rg_set_red(VALUE self, VALUE red)
58
+ {
59
+ _SELF(self)->red = NUM2DBL(red);
60
+ return self;
61
+ }
62
+
63
+ static VALUE
64
+ rg_green(VALUE self)
65
+ {
66
+ return DBL2NUM(_SELF(self)->green);
67
+ }
68
+
69
+ static VALUE
70
+ rg_set_green(VALUE self, VALUE green)
71
+ {
72
+ _SELF(self)->green = NUM2DBL(green);
73
+ return self;
74
+ }
75
+
76
+ static VALUE
77
+ rg_blue(VALUE self)
78
+ {
79
+ return DBL2NUM(_SELF(self)->blue);
80
+ }
81
+
82
+ static VALUE
83
+ rg_set_blue(VALUE self, VALUE blue)
84
+ {
85
+ _SELF(self)->blue = NUM2DBL(blue);
86
+ return self;
87
+ }
88
+
89
+ static VALUE
90
+ rg_alpha(VALUE self)
91
+ {
92
+ return DBL2NUM(_SELF(self)->alpha);
93
+ }
94
+
95
+ static VALUE
96
+ rg_set_alpha(VALUE self, VALUE alpha)
97
+ {
98
+ _SELF(self)->alpha = NUM2DBL(alpha);
99
+ return self;
100
+ }
101
+
102
+ static VALUE
103
+ rg_to_a(VALUE self)
104
+ {
105
+ GdkRGBA *color = _SELF(self);
106
+ return rb_ary_new3(4, DBL2NUM(color->red),
107
+ DBL2NUM(color->green),
108
+ DBL2NUM(color->blue),
109
+ DBL2NUM(color->alpha));
110
+ }
111
+
112
+ static VALUE
113
+ rg_to_s(VALUE self)
114
+ {
115
+ return CSTR2RVAL_FREE(gdk_rgba_to_string(_SELF(self)));
116
+ }
117
+
118
+ static VALUE
119
+ rg_operator_equal(VALUE self, VALUE other)
120
+ {
121
+ return CBOOL2RVAL(gdk_rgba_equal(_SELF(self), _SELF(other)));
122
+ }
123
+
124
+ void
125
+ Init_gdk_rgba(VALUE mGdk)
126
+ {
127
+ VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GDK_TYPE_RGBA, "RGBA", mGdk);
128
+
129
+ RG_DEF_SMETHOD(parse, 1);
130
+ RG_DEF_METHOD(initialize, 4);
131
+ RG_DEF_METHOD(red, 0);
132
+ RG_DEF_METHOD(set_red, 1);
133
+ RG_DEF_METHOD(green, 0);
134
+ RG_DEF_METHOD(set_green, 1);
135
+ RG_DEF_METHOD(blue, 0);
136
+ RG_DEF_METHOD(set_blue, 1);
137
+ RG_DEF_METHOD(alpha, 0);
138
+ RG_DEF_METHOD(set_alpha, 1);
139
+ RG_DEF_METHOD(to_a, 0);
140
+ RG_DEF_METHOD(to_s, 0);
141
+ RG_DEF_METHOD_OPERATOR("==", equal, 1);
142
+ }
@@ -0,0 +1,443 @@
1
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
+ /*
3
+ * Copyright (C) 2011 Ruby-GNOME2 Project Team
4
+ * Copyright (C) 2003-2006 Ruby-GNOME2 Project Team
5
+ * Copyright (C) 2003 Geoff Youngs
6
+ *
7
+ * This library is free software; you can redistribute it and/or
8
+ * modify it under the terms of the GNU Lesser General Public
9
+ * License as published by the Free Software Foundation; either
10
+ * version 2.1 of the License, or (at your option) any later version.
11
+ *
12
+ * This library is distributed in the hope that it will be useful,
13
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
+ * Lesser General Public License for more details.
16
+ *
17
+ * You should have received a copy of the GNU Lesser General Public
18
+ * License along with this library; if not, write to the Free Software
19
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
20
+ * MA 02110-1301 USA
21
+ */
22
+
23
+ #include "rbgdk3private.h"
24
+ #ifdef HAVE_RB_CAIRO_H
25
+ #include <rb_cairo.h>
26
+ #endif
27
+
28
+ #define RG_TARGET_NAMESPACE cScreen
29
+ #define _SELF(i) RVAL2GDKSCREEN(i)
30
+
31
+ static ID id_new;
32
+
33
+ static VALUE
34
+ rg_s_default(G_GNUC_UNUSED VALUE self)
35
+ {
36
+ return GOBJ2RVAL(gdk_screen_get_default());
37
+ }
38
+
39
+ /* deprecated
40
+ static VALUE
41
+ rg_default_colormap(VALUE self)
42
+ {
43
+ return GOBJ2RVAL(gdk_screen_get_default_colormap(_SELF(self)));
44
+ }
45
+
46
+ static VALUE
47
+ rg_set_default_colormap(VALUE self, VALUE colormap)
48
+ {
49
+ gdk_screen_set_default_colormap(_SELF(self),
50
+ RVAL2GDKCOLORMAP(colormap));
51
+ return self;
52
+ }
53
+
54
+ static VALUE
55
+ rg_system_colormap(VALUE self)
56
+ {
57
+ return GOBJ2RVAL(gdk_screen_get_system_colormap(_SELF(self)));
58
+ }
59
+ */
60
+
61
+ static VALUE
62
+ rg_system_visual(VALUE self)
63
+ {
64
+ return GOBJ2RVAL(gdk_screen_get_system_visual(_SELF(self)));
65
+ }
66
+
67
+ /* deprecated
68
+ static VALUE
69
+ rg_rgb_colormap(VALUE self)
70
+ {
71
+ return GOBJ2RVAL(gdk_screen_get_rgb_colormap(_SELF(self)));
72
+ }
73
+
74
+ static VALUE
75
+ rg_rgb_visual(VALUE self)
76
+ {
77
+ return GOBJ2RVAL(gdk_screen_get_rgb_visual(_SELF(self)));
78
+ }
79
+ */
80
+
81
+ /* deprecated
82
+ static VALUE
83
+ rg_rgba_colormap(VALUE self)
84
+ {
85
+ return GOBJ2RVAL(gdk_screen_get_rgba_colormap(_SELF(self)));
86
+ }
87
+ */
88
+
89
+ static VALUE
90
+ rg_rgba_visual(VALUE self)
91
+ {
92
+ return GOBJ2RVAL(gdk_screen_get_rgba_visual(_SELF(self)));
93
+ }
94
+
95
+ static VALUE
96
+ rg_composited_p(VALUE self)
97
+ {
98
+ return CBOOL2RVAL(gdk_screen_is_composited(_SELF(self)));
99
+ }
100
+
101
+ static VALUE
102
+ rg_root_window(VALUE self)
103
+ {
104
+ return GOBJ2RVAL(gdk_screen_get_root_window(_SELF(self)));
105
+ }
106
+
107
+ static VALUE
108
+ rg_display(VALUE self)
109
+ {
110
+ return GOBJ2RVAL(gdk_screen_get_display(_SELF(self)));
111
+ }
112
+
113
+ static VALUE
114
+ rg_number(VALUE self)
115
+ {
116
+ return INT2NUM(gdk_screen_get_number(_SELF(self)));
117
+ }
118
+ static VALUE
119
+ rg_width(VALUE self)
120
+ {
121
+ return INT2NUM(gdk_screen_get_width(_SELF(self)));
122
+ }
123
+ static VALUE
124
+ rg_height(VALUE self)
125
+ {
126
+ return INT2NUM(gdk_screen_get_height(_SELF(self)));
127
+ }
128
+ static VALUE
129
+ rg_width_mm(VALUE self)
130
+ {
131
+ return INT2NUM(gdk_screen_get_width_mm(_SELF(self)));
132
+ }
133
+ static VALUE
134
+ rg_height_mm(VALUE self)
135
+ {
136
+ return INT2NUM(gdk_screen_get_height_mm(_SELF(self)));
137
+ }
138
+
139
+ static VALUE
140
+ rg_visuals(VALUE self)
141
+ {
142
+ return GOBJGLIST2RVAL_FREE(gdk_screen_list_visuals(_SELF(self)),
143
+ g_list_free, NULL);
144
+ }
145
+
146
+ static VALUE
147
+ rg_toplevel_windows(VALUE self)
148
+ {
149
+ return GOBJGLIST2RVAL_FREE(gdk_screen_get_toplevel_windows(_SELF(self)),
150
+ g_list_free, NULL);
151
+ }
152
+
153
+ static VALUE
154
+ rg_display_name(VALUE self)
155
+ {
156
+ gchar* name = gdk_screen_make_display_name(_SELF(self));
157
+ VALUE ret = CSTR2RVAL(name);
158
+ g_free(name);
159
+ return ret;
160
+ }
161
+
162
+ static VALUE
163
+ rg_n_monitors(VALUE self)
164
+ {
165
+ return INT2NUM(gdk_screen_get_n_monitors(_SELF(self)));
166
+ }
167
+
168
+ static VALUE
169
+ rg_monitor_geometry(VALUE self, VALUE num)
170
+ {
171
+ GdkRectangle rect;
172
+ gdk_screen_get_monitor_geometry(_SELF(self), NUM2INT(num), &rect);
173
+ return GDKRECTANGLE2RVAL(&rect);
174
+ }
175
+
176
+ static VALUE
177
+ rg_get_monitor(int argc, VALUE *argv, VALUE self)
178
+ {
179
+ VALUE arg1, arg2;
180
+ VALUE ret;
181
+
182
+ rb_scan_args(argc, argv, "11", &arg1, &arg2);
183
+ if (argc == 2){
184
+ ret = INT2NUM(gdk_screen_get_monitor_at_point(_SELF(self),
185
+ NUM2INT(arg1), NUM2INT(arg2)));
186
+ } else if (argc == 1){
187
+ ret = INT2NUM(gdk_screen_get_monitor_at_window(_SELF(self),
188
+ RVAL2GDKWINDOW(arg1)));
189
+ } else {
190
+ rb_raise(rb_eArgError, "Wrong number of arguments: %d", argc);
191
+ }
192
+ return ret;
193
+ }
194
+
195
+ /* deprecated
196
+ static VALUE
197
+ rg_broadcast_client_message(VALUE self, VALUE event)
198
+ {
199
+ gdk_screen_broadcast_client_message(_SELF(self), RVAL2GEV(event));
200
+ return self;
201
+ }
202
+ */
203
+
204
+ /*
205
+ type: String, Integer, Gdk::Color.
206
+ */
207
+ static VALUE
208
+ rg_get_setting(int argc, VALUE *argv, VALUE self)
209
+ {
210
+ VALUE name, type;
211
+ GType gtype;
212
+ GValue val = G_VALUE_INIT;
213
+ gboolean ret;
214
+ VALUE value;
215
+
216
+ rb_scan_args(argc, argv, "11", &name, &type);
217
+ if NIL_P(type)
218
+ gtype = G_TYPE_STRING;
219
+ else
220
+ gtype = CLASS2GTYPE(type);
221
+
222
+ g_value_init(&val, gtype);
223
+ ret = gdk_screen_get_setting(_SELF(self), RVAL2CSTR(name), &val);
224
+ value = ret ? GVAL2RVAL(&val) : Qnil;
225
+ g_value_unset(&val);
226
+ return value;
227
+ }
228
+
229
+ #ifdef HAVE_RB_CAIRO_H
230
+ static VALUE
231
+ gdkscreen_get_font_options(VALUE self)
232
+ {
233
+ return CRFONTOPTIONS2RVAL((cairo_font_options_t *)gdk_screen_get_font_options(_SELF(self)));
234
+ }
235
+
236
+ static VALUE
237
+ gdkscreen_set_font_options(VALUE self, VALUE options)
238
+ {
239
+ gdk_screen_set_font_options(_SELF(self),
240
+ (const cairo_font_options_t *)RVAL2CRFONTOPTIONS(options));
241
+ return self;
242
+ }
243
+ #endif
244
+
245
+ static VALUE
246
+ rg_active_window(VALUE self)
247
+ {
248
+ return GOBJ2RVAL(gdk_screen_get_active_window(_SELF(self)));
249
+ }
250
+
251
+ static VALUE
252
+ rg_window_stack(VALUE self)
253
+ {
254
+ GList* list = gdk_screen_get_window_stack(_SELF(self));
255
+ VALUE ary = rb_ary_new();
256
+ while (list) {
257
+ rb_ary_push(ary, GOBJ2RVAL(list->data));
258
+ g_object_unref(list->data);
259
+ list = list->next;
260
+ }
261
+ g_list_free(list);
262
+ return ary;
263
+ }
264
+
265
+ static void
266
+ child_setup(gpointer func)
267
+ {
268
+ if (! NIL_P(func)){
269
+ rb_funcall((VALUE)func, id_call, 0);
270
+ }
271
+ }
272
+
273
+ /* deprecated
274
+ static VALUE
275
+ rg_spawn_on_screen(VALUE self, VALUE working_directory, VALUE argv, VALUE envp, VALUE flags)
276
+ {
277
+ GError *err = NULL;
278
+ gboolean ret;
279
+ gint child_pid;
280
+ VALUE func = Qnil;
281
+ gchar **gargv;
282
+ gchar **genvp;
283
+
284
+ if (rb_block_given_p()) {
285
+ func = rb_block_proc();
286
+ G_RELATIVE(self, func);
287
+ }
288
+
289
+ gargv = (gchar **)RVAL2STRV(argv);
290
+ genvp = (gchar **)RVAL2STRV_ACCEPT_NIL(envp);
291
+ ret = gdk_spawn_on_screen(_SELF(self),
292
+ RVAL2CSTR_ACCEPT_NIL(working_directory),
293
+ gargv, genvp, NUM2INT(flags),
294
+ (GSpawnChildSetupFunc)child_setup, (gpointer)func,
295
+ &child_pid, &err);
296
+ g_free(gargv);
297
+ g_free(genvp);
298
+ if (!ret)
299
+ RAISE_GERROR(err);
300
+
301
+ return INT2NUM(child_pid);
302
+ }
303
+
304
+ static VALUE
305
+ rg_spawn_on_screen_with_pipes(VALUE self, VALUE working_directory, VALUE argv, VALUE envp, VALUE flags)
306
+ {
307
+ GError *err = NULL;
308
+ gboolean ret;
309
+ gint child_pid;
310
+ VALUE func = Qnil;
311
+ gchar **gargv;
312
+ gchar **genvp;
313
+ gint standard_input, standard_output, standard_error;
314
+
315
+ if (rb_block_given_p()) {
316
+ func = rb_block_proc();
317
+ G_RELATIVE(self, func);
318
+ }
319
+
320
+ gargv = (gchar **)RVAL2STRV(argv);
321
+ genvp = (gchar **)RVAL2STRV_ACCEPT_NIL(envp);
322
+ ret = gdk_spawn_on_screen_with_pipes(_SELF(self),
323
+ RVAL2CSTR_ACCEPT_NIL(working_directory),
324
+ gargv, genvp, NUM2INT(flags),
325
+ (GSpawnChildSetupFunc)child_setup, (gpointer)func,
326
+ &child_pid,
327
+ &standard_input, &standard_output,
328
+ &standard_error, &err);
329
+ g_free(gargv);
330
+ g_free(genvp);
331
+ if (!ret)
332
+ RAISE_GERROR(err);
333
+
334
+ return rb_ary_new3(4, INT2NUM(child_pid),
335
+ rb_funcall(rb_cIO, id_new, 1, INT2NUM(standard_input)),
336
+ rb_funcall(rb_cIO, id_new, 1, INT2NUM(standard_output)),
337
+ rb_funcall(rb_cIO, id_new, 1, INT2NUM(standard_error)));
338
+ }
339
+ */
340
+
341
+ static VALUE
342
+ rg_spawn_command_line_on_screen(G_GNUC_UNUSED VALUE self, VALUE command_line)
343
+ {
344
+ GError *err = NULL;
345
+ VALUE ret;
346
+
347
+ ret = CBOOL2RVAL(g_spawn_command_line_async(RVAL2CSTR(command_line), &err));
348
+ if (!ret) RAISE_GERROR(err);
349
+
350
+ return ret;
351
+ }
352
+
353
+ /* From X Window System Interaction */
354
+ #ifdef GDK_WINDOWING_X11
355
+ #include <gdk/gdkx.h>
356
+ static VALUE
357
+ rg_xnumber(VALUE self)
358
+ {
359
+ return INT2NUM(GDK_SCREEN_XNUMBER(_SELF(self)));
360
+ }
361
+ static VALUE
362
+ rg_supports_net_wm_hint_p(VALUE self, VALUE property)
363
+ {
364
+ return CBOOL2RVAL(gdk_x11_screen_supports_net_wm_hint(_SELF(self),
365
+ RVAL2ATOM(property)));
366
+ }
367
+
368
+ static VALUE
369
+ rg_window_manager_name(VALUE self)
370
+ {
371
+ return CSTR2RVAL(gdk_x11_screen_get_window_manager_name(_SELF(self)));
372
+ }
373
+ static VALUE
374
+ rg_screen_number(VALUE self)
375
+ {
376
+ return INT2NUM(gdk_x11_screen_get_screen_number(_SELF(self)));
377
+ }
378
+ #endif
379
+
380
+ void
381
+ Init_gdk_screen(VALUE mGdk)
382
+ {
383
+ VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GDK_TYPE_SCREEN, "Screen", mGdk);
384
+
385
+ id_new = rb_intern("new");
386
+
387
+ RG_DEF_SMETHOD(default, 0);
388
+ /* deprecated
389
+ RG_DEF_METHOD(default_colormap, 0);
390
+ RG_DEF_METHOD(set_default_colormap, 1);
391
+ RG_DEF_METHOD(system_colormap, 0);
392
+ */
393
+ RG_DEF_METHOD(system_visual, 0);
394
+ /* deprecated
395
+ RG_DEF_METHOD(rgb_colormap, 0);
396
+ RG_DEF_METHOD(rgb_visual, 0);
397
+ */
398
+ /* deprecated
399
+ RG_DEF_METHOD(rgba_colormap, 0);
400
+ */
401
+ RG_DEF_METHOD(rgba_visual, 0);
402
+ RG_DEF_METHOD_P(composited, 0);
403
+ RG_DEF_METHOD(root_window, 0);
404
+ RG_DEF_METHOD(display, 0);
405
+ RG_DEF_METHOD(number, 0);
406
+ RG_DEF_METHOD(width, 0);
407
+ RG_DEF_METHOD(height, 0);
408
+ RG_DEF_METHOD(width_mm, 0);
409
+ RG_DEF_METHOD(height_mm, 0);
410
+ RG_DEF_METHOD(visuals, 0);
411
+ RG_DEF_METHOD(toplevel_windows, 0);
412
+ RG_DEF_METHOD(display_name, 0);
413
+ RG_DEF_METHOD(n_monitors, 0);
414
+ RG_DEF_METHOD(monitor_geometry, 1);
415
+ RG_DEF_METHOD(get_monitor, -1);
416
+ /* deprecated
417
+ RG_DEF_METHOD(broadcast_client_message, 1);
418
+ */
419
+ RG_DEF_METHOD(get_setting, -1);
420
+ #ifdef HAVE_RB_CAIRO_H
421
+ G_REPLACE_GET_PROPERTY(RG_TARGET_NAMESPACE, "font_options", gdkscreen_get_font_options, 0);
422
+ G_REPLACE_SET_PROPERTY(RG_TARGET_NAMESPACE, "font_options", gdkscreen_set_font_options, 1);
423
+ #endif
424
+ RG_DEF_METHOD(active_window, 0);
425
+ RG_DEF_METHOD(window_stack, 0);
426
+
427
+ /* deprecated
428
+ RG_DEF_METHOD(spawn_on_screen, 4);
429
+ RG_DEF_METHOD(spawn_on_screen_with_pipes, 4);
430
+ */
431
+ RG_DEF_METHOD(spawn_command_line_on_screen, 1);
432
+
433
+ #ifdef GDK_WINDOWING_X11
434
+ RG_DEF_METHOD(xnumber, 0);
435
+ RG_DEF_METHOD_P(supports_net_wm_hint, 0);
436
+ RG_DEF_METHOD(window_manager_name, 0);
437
+ RG_DEF_METHOD(screen_number, 0);
438
+ #endif
439
+
440
+ #ifdef GDK_WINDOWING_X11
441
+ G_DEF_CLASS3("GdkScreenX11", "ScreenX11", mGdk);
442
+ #endif
443
+ }