gtk3 2.2.0 → 2.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (69) hide show
  1. checksums.yaml +4 -4
  2. data/ext/gtk3/extconf.rb +1 -1
  3. data/ext/gtk3/rbgtk-color-button.c +7 -1
  4. data/ext/gtk3/rbgtk-dialog.c +26 -6
  5. data/ext/gtk3/rbgtk-image.c +1 -0
  6. data/ext/gtk3/rbgtk-selection-data.c +4 -5
  7. data/ext/gtk3/rbgtk-stack-switcher.c +41 -0
  8. data/ext/gtk3/rbgtk-window.c +8 -0
  9. data/ext/gtk3/rbgtk.c +158 -0
  10. data/ext/gtk3/rbgtk3.h +33 -0
  11. data/ext/gtk3/rbgtk3conversions.h +60 -1
  12. data/ext/gtk3/rbgtk3private.h +1 -1
  13. data/lib/gtk3.rb +1 -0
  14. data/sample/gtk-demo/cairo-arc-negative.rb +1 -1
  15. data/sample/gtk-demo/cairo-arc.rb +1 -1
  16. data/sample/gtk-demo/cairo-clip-image.rb +6 -6
  17. data/sample/gtk-demo/cairo-clip-rectangle.rb +2 -2
  18. data/sample/gtk-demo/cairo-curve-rectangle.rb +2 -2
  19. data/sample/gtk-demo/cairo-curve-to.rb +2 -2
  20. data/sample/gtk-demo/cairo-dash.rb +1 -1
  21. data/sample/gtk-demo/cairo-fill-and-stroke.rb +1 -1
  22. data/sample/gtk-demo/cairo-fill-and-stroke2.rb +2 -2
  23. data/sample/gtk-demo/cairo-gradient.rb +1 -1
  24. data/sample/gtk-demo/cairo-image-pattern.rb +5 -5
  25. data/sample/gtk-demo/cairo-image.rb +4 -4
  26. data/sample/gtk-demo/cairo-line-cap.rb +8 -8
  27. data/sample/gtk-demo/cairo-line-join.rb +3 -3
  28. data/sample/gtk-demo/cairo-long-lines.rb +3 -3
  29. data/sample/gtk-demo/cairo-pattern-fill.rb +11 -11
  30. data/sample/gtk-demo/cairo-self-intersect.rb +2 -2
  31. data/sample/gtk-demo/cairo-text-align-center.rb +4 -4
  32. data/sample/gtk-demo/cairo-text-extents.rb +5 -5
  33. data/sample/gtk-demo/cairo-text.rb +3 -3
  34. data/sample/gtk-demo/common.rb +0 -1
  35. data/sample/gtk-demo/dialog.rb +23 -23
  36. data/sample/gtk-demo/drawingarea.rb +5 -1
  37. data/sample/gtk-demo/editable_cells.rb +28 -28
  38. data/sample/gtk-demo/entry_completion.rb +3 -3
  39. data/sample/gtk-demo/images.rb +75 -75
  40. data/sample/gtk-demo/item_factory.rb +40 -40
  41. data/sample/gtk-demo/list_store.rb +13 -13
  42. data/sample/gtk-demo/menus.rb +34 -34
  43. data/sample/gtk-demo/panes.rb +28 -28
  44. data/sample/gtk-demo/rotated_text.rb +41 -53
  45. data/sample/gtk-demo/sizegroup.rb +17 -17
  46. data/sample/gtk-demo/spinner.rb +1 -1
  47. data/sample/gtk-demo/textview.rb +137 -137
  48. data/sample/gtk-demo/theming.ui +319 -0
  49. data/sample/gtk-demo/theming_style_classes.rb +48 -0
  50. data/sample/gtk-demo/tree_store.rb +127 -127
  51. data/sample/misc/assistant.rb +6 -66
  52. data/sample/misc/bindings.rb +22 -32
  53. data/sample/misc/button.rb +8 -5
  54. data/sample/misc/buttonbox.rb +2 -2
  55. data/sample/misc/checkbutton.rb +4 -1
  56. data/sample/misc/colorselection.rb +7 -10
  57. data/sample/misc/combo_check.rb +34 -26
  58. data/sample/misc/combobox.rb +10 -11
  59. data/sample/misc/cursor.rb +3 -1
  60. data/sample/misc/dialog.rb +12 -12
  61. data/sample/misc/dialog2.rb +13 -16
  62. data/sample/misc/drawing.rb +40 -21
  63. data/sample/misc/statusicon.rb +28 -45
  64. data/sample/misc/threads.rb +16 -18
  65. data/sample/misc/tree_progress.rb +10 -12
  66. data/test/run-test.rb +17 -9
  67. data/test/test_gtk_search_bar.rb +1 -1
  68. data/test/test_gtk_stack_switcher.rb +30 -0
  69. metadata +25 -21
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5c6994d68f81dec49c86dc70f29f78378bb9ec9a
4
- data.tar.gz: 5251145db0e1b4ed585131342dbd9dc2d6a84a8d
3
+ metadata.gz: 86ace380c7f68b661c83c42978c6d07aaca67133
4
+ data.tar.gz: 15ae090f259f378bc6629b140d8e93d371fbde48
5
5
  SHA512:
6
- metadata.gz: 715a487f3600c51a9080836381218d4dba59bf44b9547146288e822be356b183c2a36313e28aef031d3e9d693256d07e46552293ca6d9db9d3e011bda1ffbf11
7
- data.tar.gz: e68133a79404d51521e4b9f1f6adc25f3aed6182297f853b329b90b0eb3d3be9c13bafa570434be9649245541aee5d9535451ac872cbeb809b1b92bc9bfb8c1d
6
+ metadata.gz: a1927bb46da007d645fb39afd588cf0b82d45ea66e5f3880dfb8fde8f0308982cf59ff3522eb3a77ee5ecaf340bcd754348e1c5e4a373be588199eb8b7041ffc
7
+ data.tar.gz: 2a5d05997753b21191141781ec86b6d308d7bb86c8756f1f74fd7e51d0e7c0b9473b4f89c640c328d69eab5df9c69d2cdd6318fb8046502512e5ffd23c44b6a1
@@ -33,7 +33,7 @@ end
33
33
 
34
34
  have_func("rb_errinfo")
35
35
 
36
- ["glib2", "atk", "pango", "gdk_pixbuf2", "gdk3"].each do |package|
36
+ ["glib2", "cairo-gobject", "atk", "pango", "gdk_pixbuf2"].each do |package|
37
37
  directory = "#{package}#{version_suffix}"
38
38
  build_dir = "#{directory}/tmp/#{RUBY_PLATFORM}/#{package}/#{RUBY_VERSION}"
39
39
  add_depend_package(package, "#{directory}/ext/#{package}",
@@ -34,7 +34,13 @@ rg_initialize(int argc, VALUE *argv, VALUE self)
34
34
  if (NIL_P(color)){
35
35
  widget = gtk_color_button_new();
36
36
  } else {
37
- widget = gtk_color_button_new_with_color(RVAL2GDKCOLOR(color));
37
+ GType gtype = RVAL2GTYPE(color);
38
+
39
+ if (gtype == GDK_TYPE_COLOR) {
40
+ widget = gtk_color_button_new_with_color(RVAL2GDKCOLOR(color));
41
+ } else {
42
+ widget = gtk_color_button_new_with_rgba(RVAL2GDKRGBA(color));
43
+ }
38
44
  }
39
45
 
40
46
  RBGTK_INITIALIZE(self, widget);
@@ -1,6 +1,6 @@
1
1
  /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
2
  /*
3
- * Copyright (C) 2011 Ruby-GNOME2 Project Team
3
+ * Copyright (C) 2011-2014 Ruby-GNOME2 Project Team
4
4
  * Copyright (C) 2002-2005 Ruby-GNOME2 Project Team
5
5
  * Copyright (C) 1998-2000 Yukihiro Matsumoto,
6
6
  * Daisuke Kanda,
@@ -74,15 +74,35 @@ rg_initialize(int argc, VALUE *argv, VALUE self)
74
74
  return Qnil;
75
75
  }
76
76
 
77
+ static gboolean
78
+ destroy_dialog(gpointer user_data)
79
+ {
80
+ GtkWidget *dialog = user_data;
81
+ gtk_widget_destroy(dialog);
82
+ return G_SOURCE_REMOVE;
83
+ }
84
+
77
85
  static VALUE
78
86
  rg_run(VALUE self)
79
87
  {
80
- if (rb_block_given_p()){
81
- VALUE ret = INT2NUM(gtk_dialog_run(_SELF(self)));
82
- rb_yield(ret);
83
- return ret;
88
+ GtkDialog *dialog;
89
+ GSource *interrupt_source;
90
+ VALUE response;
91
+
92
+ dialog = _SELF(self);
93
+ interrupt_source = rbg_interrupt_source_new();
94
+ g_source_set_callback(interrupt_source, destroy_dialog, dialog, NULL);
95
+ g_source_attach(interrupt_source, NULL);
96
+ response = INT2NUM(gtk_dialog_run(dialog));
97
+ g_source_destroy(interrupt_source);
98
+ g_source_unref(interrupt_source);
99
+
100
+ rb_thread_check_ints();
101
+
102
+ if (rb_block_given_p()) {
103
+ return rb_yield(response);
84
104
  } else {
85
- return INT2NUM(gtk_dialog_run(_SELF(self)));
105
+ return response;
86
106
  }
87
107
  }
88
108
 
@@ -72,6 +72,7 @@ rg_initialize(int argc, VALUE *argv, VALUE self)
72
72
  rb_raise(rb_eArgError, "Invalid arguments.");
73
73
 
74
74
  RBGTK_INITIALIZE(self, widget);
75
+ g_object_unref(widget);
75
76
 
76
77
  return Qnil;
77
78
  }
@@ -36,20 +36,19 @@ rbgtk_atom2selectiondata(VALUE type, VALUE size, VALUE src, GdkAtom *gtype,
36
36
  GdkAtom ntype = RVAL2ATOM(type);
37
37
 
38
38
  if(ntype == GDK_SELECTION_TYPE_INTEGER){
39
- int *i;
40
- i = ALLOC(int);
39
+ glong *i;
40
+ i = ALLOC(glong);
41
41
  *i = NUM2INT(src);
42
42
  dat = i;
43
- fmt = sizeof(int) * 8;
43
+ fmt = 32;
44
44
  len = 1;
45
45
  } else if(ntype == GDK_SELECTION_TYPE_STRING) {
46
46
  dat = (void *)RVAL2CSTR(src);
47
+ fmt = 8;
47
48
  if (NIL_P(size)) {
48
- fmt = sizeof(char) * 8;
49
49
  len = RSTRING_LEN(src);
50
50
  } else {
51
51
  len = NUM2UINT(size);
52
- fmt = (RSTRING_LEN(src) / len) * 8;
53
52
  }
54
53
  /* TODO
55
54
  } else if(ntype == compound_text){
@@ -0,0 +1,41 @@
1
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
+ /*
3
+ * Copyright (C) 2014 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 "rbgtk3private.h"
22
+
23
+ #if GTK_CHECK_VERSION(3, 10, 0)
24
+
25
+ #define RG_TARGET_NAMESPACE cStackSwitcher
26
+
27
+ static VALUE
28
+ rg_initialize(VALUE self)
29
+ {
30
+ RBGTK_INITIALIZE(self, gtk_stack_switcher_new());
31
+ return Qnil;
32
+ }
33
+
34
+ void
35
+ Init_gtk_stack_switcher(VALUE mGtk)
36
+ {
37
+ VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_STACK_SWITCHER, "StackSwitcher", mGtk);
38
+
39
+ RG_DEF_METHOD(initialize, 0);
40
+ }
41
+ #endif
@@ -485,6 +485,13 @@ rg_set_default_geometry(VALUE self, VALUE width, VALUE height)
485
485
  return self;
486
486
  }
487
487
 
488
+ static VALUE
489
+ rg_set_titlebar(VALUE self, VALUE titlebar)
490
+ {
491
+ gtk_window_set_titlebar(_SELF(self), RVAL2GTKWIDGET(titlebar));
492
+ return self;
493
+ }
494
+
488
495
  void
489
496
  Init_gtk_window(VALUE mGtk)
490
497
  {
@@ -544,6 +551,7 @@ Init_gtk_window(VALUE mGtk)
544
551
  RG_DEF_METHOD(propagate_key_event, 1);
545
552
  RG_DEF_METHOD(resize_to_geometry, 2);
546
553
  RG_DEF_METHOD(set_default_geometry, 2);
554
+ RG_DEF_METHOD(set_titlebar, 1);
547
555
 
548
556
  G_DEF_CLASS(GTK_TYPE_WINDOW_POSITION, "Position", RG_TARGET_NAMESPACE);
549
557
  G_DEF_CLASS(GTK_TYPE_WINDOW_TYPE, "Type", RG_TARGET_NAMESPACE);
@@ -28,6 +28,146 @@
28
28
  #endif
29
29
  #include <locale.h>
30
30
 
31
+ /* TODO: REMOVE ME */
32
+ /*
33
+ * They are temporary. They will be needless after Ruby/GTK3
34
+ * is based on Ruby/GObjectIntrospection.
35
+ */
36
+ /* From Ruby/GDK3 - start */
37
+ static GdkGeometry*
38
+ geo_copy(const GdkGeometry* geo)
39
+ {
40
+ GdkGeometry* new_geo;
41
+ g_return_val_if_fail (geo != NULL, NULL);
42
+ new_geo = g_new(GdkGeometry, 1);
43
+ *new_geo = *geo;
44
+ return new_geo;
45
+ }
46
+
47
+ GType
48
+ gdk_geometry_get_type(void)
49
+ {
50
+ static GType our_type = 0;
51
+ if (our_type == 0)
52
+ our_type = g_boxed_type_register_static ("GdkGeometry",
53
+ (GBoxedCopyFunc)geo_copy,
54
+ (GBoxedFreeFunc)g_free);
55
+ return our_type;
56
+ }
57
+
58
+ static GdkAtomData *
59
+ gdk_atom_copy(const GdkAtom atom)
60
+ {
61
+ GdkAtomData* data;
62
+ data = g_new(GdkAtomData, 1);
63
+ data->atom = atom;
64
+ return data;
65
+ }
66
+
67
+ GType
68
+ gdk_atom_get_type(void)
69
+ {
70
+ static GType our_type = 0;
71
+ if (our_type == 0)
72
+ our_type = g_boxed_type_register_static ("GdkAtomData",
73
+ (GBoxedCopyFunc)gdk_atom_copy,
74
+ (GBoxedFreeFunc)g_free);
75
+ return our_type;
76
+ }
77
+
78
+ struct rbgdk_rval2gdkatoms_args {
79
+ VALUE ary;
80
+ long n;
81
+ GdkAtom *result;
82
+ };
83
+
84
+ static VALUE
85
+ rbgdk_rval2gdkatoms_body(VALUE value)
86
+ {
87
+ long i;
88
+ struct rbgdk_rval2gdkatoms_args *args = (struct rbgdk_rval2gdkatoms_args *)value;
89
+
90
+ for (i = 0; i < args->n; i++)
91
+ args->result[i] = RVAL2ATOM(RARRAY_PTR(args->ary)[i]);
92
+
93
+ return Qnil;
94
+ }
95
+
96
+ static G_GNUC_NORETURN VALUE
97
+ rbgdk_rval2gdkatoms_rescue(VALUE value)
98
+ {
99
+ g_free(((struct rbgdk_rval2gdkatoms_args *)value)->result);
100
+
101
+ rb_exc_raise(rb_errinfo());
102
+ }
103
+
104
+ GdkAtom *
105
+ rbgdk_rval2gdkatoms(VALUE value, long *n)
106
+ {
107
+ struct rbgdk_rval2gdkatoms_args args;
108
+
109
+ args.ary = rb_ary_to_ary(value);
110
+ args.n = RARRAY_LEN(args.ary);
111
+ args.result = g_new(GdkAtom, args.n + 1);
112
+
113
+ rb_rescue(rbgdk_rval2gdkatoms_body, (VALUE)&args,
114
+ rbgdk_rval2gdkatoms_rescue, (VALUE)&args);
115
+
116
+ *n = args.n;
117
+
118
+ return args.result;
119
+ }
120
+
121
+ struct rval2gdkpixbufglist_args {
122
+ VALUE ary;
123
+ long n;
124
+ GList *result;
125
+ };
126
+
127
+ static VALUE
128
+ rbgdk_rval2gdkpixbufglist_body(VALUE value)
129
+ {
130
+ long i;
131
+ struct rval2gdkpixbufglist_args *args = (struct rval2gdkpixbufglist_args *)value;
132
+
133
+ for (i = 0; i < args->n; i++)
134
+ args->result = g_list_append(args->result, RVAL2GDKPIXBUF(RARRAY_PTR(args->ary)[i]));
135
+
136
+ return Qnil;
137
+ }
138
+
139
+ static G_GNUC_NORETURN VALUE
140
+ rbgdk_rval2gdkpixbufglist_rescue(VALUE value)
141
+ {
142
+ g_list_free(((struct rval2gdkpixbufglist_args *)value)->result);
143
+
144
+ rb_exc_raise(rb_errinfo());
145
+ }
146
+
147
+ GList *
148
+ rbgdk_rval2gdkpixbufglist(VALUE value)
149
+ {
150
+ struct rval2gdkpixbufglist_args args;
151
+
152
+ args.ary = rb_ary_to_ary(value);
153
+ args.n = RARRAY_LEN(args.ary);
154
+ args.result = NULL;
155
+
156
+ rb_rescue(rbgdk_rval2gdkpixbufglist_body, (VALUE)&args,
157
+ rbgdk_rval2gdkpixbufglist_rescue, (VALUE)&args);
158
+
159
+ return args.result;
160
+ }
161
+
162
+ GdkAtom
163
+ rbgdk_rval2gdkatom(VALUE atom)
164
+ {
165
+ if (TYPE(atom) == T_STRING)
166
+ return gdk_atom_intern(RVAL2CSTR(atom), FALSE);
167
+ return (RVAL2GDKATOM(atom))->atom;
168
+ }
169
+ /* From Ruby/GDK3 - end */
170
+
31
171
  #define RG_TARGET_NAMESPACE mGtk
32
172
 
33
173
  static VALUE RG_TARGET_NAMESPACE;
@@ -179,10 +319,27 @@ rg_s_init(int argc, VALUE *argv, VALUE self)
179
319
  gtk_init()
180
320
  */
181
321
 
322
+ static gboolean
323
+ quit_loop(G_GNUC_UNUSED gpointer user_data)
324
+ {
325
+ gtk_main_quit();
326
+ return G_SOURCE_REMOVE;
327
+ }
328
+
182
329
  static VALUE
183
330
  rg_s_main(G_GNUC_UNUSED VALUE self)
184
331
  {
332
+ GSource *interrupt_source;
333
+
334
+ interrupt_source = rbg_interrupt_source_new();
335
+ g_source_set_callback(interrupt_source, quit_loop, NULL, NULL);
336
+ g_source_attach(interrupt_source, NULL);
185
337
  gtk_main();
338
+ g_source_destroy(interrupt_source);
339
+ g_source_unref(interrupt_source);
340
+
341
+ rb_thread_check_ints();
342
+
186
343
  return Qnil;
187
344
  }
188
345
 
@@ -569,6 +726,7 @@ Init_gtk(void)
569
726
  Init_gtk_spinner(RG_TARGET_NAMESPACE);
570
727
  #if GTK_CHECK_VERSION(3, 10, 0)
571
728
  Init_gtk_stack(RG_TARGET_NAMESPACE);
729
+ Init_gtk_stack_switcher(RG_TARGET_NAMESPACE);
572
730
  #endif
573
731
  Init_gtk_statusbar(RG_TARGET_NAMESPACE);
574
732
  Init_gtk_status_icon(RG_TARGET_NAMESPACE);
@@ -30,6 +30,39 @@
30
30
  #include <rbgobject.h>
31
31
  #include "rbgtk3conversions.h"
32
32
 
33
+ /* TODO: REMOVE ME */
34
+ /*
35
+ * They are temporary. They will be needless after Ruby/GTK3
36
+ * is based on Ruby/GObjectIntrospection.
37
+ */
38
+ /* From rbgdk3.h - start */
39
+ #include <gdk/gdk.h>
40
+ #ifdef GDK_WINDOWING_X11
41
+ # include <gdk/gdkx.h>
42
+ #endif
43
+ #ifdef GDK_WINDOWING_WIN32
44
+ # include <gdk/gdkwin32.h>
45
+ #endif
46
+
47
+ #define RVAL2GDKPIXBUFGLIST(value) rbgdk_rval2gdkpixbufglist(value)
48
+ #define RVAL2ATOM(atom) rbgdk_rval2gdkatom(atom)
49
+ #define RVAL2GDKATOMS(value, n) rbgdk_rval2gdkatoms(value, n)
50
+
51
+ #define GDK_TYPE_GEOMETRY (gdk_geometry_get_type())
52
+ #define GDK_TYPE_ATOM (gdk_atom_get_type())
53
+
54
+ typedef struct {
55
+ GdkAtom atom;
56
+ } GdkAtomData;
57
+
58
+ GType gdk_atom_get_type(void);
59
+ GType gdk_geometry_get_type(void);
60
+
61
+ GList *rbgdk_rval2gdkpixbufglist(VALUE value);
62
+ GdkAtom rbgdk_rval2gdkatom(VALUE atom);
63
+ GdkAtom *rbgdk_rval2gdkatoms(VALUE value, long *n);
64
+ /* From rbgdk3.h - end */
65
+
33
66
  #define RBGTK_MAJOR_VERSION RBGLIB_MAJOR_VERSION
34
67
  #define RBGTK_MINOR_VERSION RBGLIB_MINOR_VERSION
35
68
  #define RBGTK_MICRO_VERSION RBGLIB_MICRO_VERSION
@@ -366,7 +366,7 @@
366
366
  #define RVAL2GTKUIMANAGERITEMTYPE(o) (RVAL2GFLAGS(o, GTK_TYPE_UI_MANAGER_ITEM_TYPE))
367
367
  #define GTKUIMANAGERITEMTYPE2RVAL(o) (GFLAGS2RVAL(o, GTK_TYPE_UI_MANAGER_ITEM_TYPE))
368
368
 
369
- /* For GIO. They are temporary. They will be needless after Ruby/GDK3
369
+ /* For GIO. They are temporary. They will be needless after Ruby/GTK3
370
370
  * is based on Ruby/GObjectIntrospection.
371
371
  */
372
372
  #define RVAL2GFILE(o) (G_FILE(RVAL2GOBJ(o)))
@@ -374,4 +374,63 @@
374
374
  #define RVAL2GPERMISSION(o) (G_PERMISSION(RVAL2GOBJ(o)))
375
375
  #define RVAL2GAPPLICATIONFLAGS(o) (RVAL2GFLAGS(o, G_TYPE_APPLICATION_FLAGS))
376
376
 
377
+ /* For GDK. They are temporary. They will be needless after Ruby/GTK3
378
+ * is based on Ruby/GObjectIntrospection.
379
+ */
380
+ #define RVAL2GDKCOLOR(o) ((GdkColor*)RVAL2BOXED(o, GDK_TYPE_COLOR))
381
+ #define GDKCOLOR2RVAL(o) (BOXED2RVAL(o, GDK_TYPE_COLOR))
382
+
383
+ #define RVAL2GDKRGBA(o) ((GdkRGBA*)RVAL2BOXED(o, GDK_TYPE_RGBA))
384
+ #define GDKRGBA2RVAL(o) (BOXED2RVAL(o, GDK_TYPE_RGBA))
385
+
386
+ #define RVAL2GDKMODIFIERTYPE(o) (RVAL2GFLAGS(o, GDK_TYPE_MODIFIER_TYPE))
387
+
388
+ #define RVAL2GDKDRAGCONTEXT(o) (GDK_DRAG_CONTEXT(RVAL2GOBJ(o)))
389
+
390
+ #define RVAL2GDKSCREEN(o) (GDK_SCREEN(RVAL2GOBJ(o)))
391
+
392
+ #define RVAL2GDKWINDOW(o) (GDK_WINDOW(RVAL2GOBJ(o)))
393
+
394
+ #define GDKEVENT2RVAL(o) (BOXED2RVAL(o, GDK_TYPE_EVENT))
395
+ #define RVAL2GDKEVENT(o) ((GdkEvent *)RVAL2BOXED(o, GDK_TYPE_EVENT))
396
+ #define GEV2RVAL(ev) GDKEVENT2RVAL(ev)
397
+ #define RVAL2GEV(ev) RVAL2GDKEVENT(ev)
398
+
399
+ #define GDKMODIFIERTYPE2RVAL(o) (GFLAGS2RVAL(o, GDK_TYPE_MODIFIER_TYPE))
400
+
401
+ #define GDKRECTANGLE2RVAL(o) (BOXED2RVAL(o, CAIRO_GOBJECT_TYPE_RECTANGLE_INT))
402
+ #define RVAL2GDKRECTANGLE(o) ((GdkRectangle*)RVAL2BOXED(o, CAIRO_GOBJECT_TYPE_RECTANGLE_INT))
403
+
404
+ #define RVAL2GDKDISPLAYOBJECT(o) (GDK_DISPLAY_OBJECT(RVAL2GOBJ(o)))
405
+
406
+ #define GDKATOM2RVAL(o) (BOXED2RVAL(o, GDK_TYPE_ATOM))
407
+ #define RVAL2GDKATOM(o) ((GdkAtomData*)RVAL2BOXED(o, GDK_TYPE_ATOM))
408
+
409
+ #define RVAL2GDKEVENTKEY(o) ((GdkEventKey*)RVAL2GDKEVENT(o))
410
+
411
+ #define RVAL2GDKDRAGACTION(o) (RVAL2GFLAGS(o, GDK_TYPE_DRAG_ACTION))
412
+
413
+ #define RVAL2GDKGEOMETRY(o) ((GdkGeometry*)RVAL2BOXED(o, GDK_TYPE_GEOMETRY))
414
+
415
+ #define RVAL2GDKWINDOWHINTS(o) (RVAL2GFLAGS(o, GDK_TYPE_WINDOW_HINTS))
416
+
417
+ #define RVAL2GDKWINDOWEDGE(o) (RVAL2GENUM(o, GDK_TYPE_WINDOW_EDGE))
418
+
419
+ #define RVAL2GDKDEVICE(o) (GDK_DEVICE(RVAL2GOBJ(o)))
420
+
421
+ #define RVAL2GDKEVENTMASK(o) (RVAL2GFLAGS(o, GDK_TYPE_EVENT_MASK))
422
+ #define GDKEVENTMASK2RVAL(o) (GFLAGS2RVAL(o, GDK_TYPE_EVENT_MASK))
423
+
424
+ #define RVAL2GDKVISUAL(o) (GDK_VISUAL(RVAL2GOBJ(o)))
425
+
426
+ #define RVAL2GDKDRAGPROTOCOL(o) (RVAL2GENUM(o, GDK_TYPE_DRAG_PROTOCOL))
427
+
377
428
  #endif /* __RBGTK3CONVERSIONS_H__ */
429
+
430
+
431
+
432
+
433
+
434
+
435
+
436
+