gtk3 2.2.0 → 2.2.1

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 (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
+