gdk3 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 (63) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +18 -4
  3. data/lib/gdk3/atom.rb +26 -0
  4. data/lib/gdk3/cairo.rb +60 -0
  5. data/lib/gdk3/color.rb +27 -0
  6. data/lib/gdk3/deprecated.rb +14 -16
  7. data/lib/gdk3/event.rb +38 -0
  8. data/lib/gdk3/loader.rb +266 -0
  9. data/lib/gdk3/rectangle.rb +38 -0
  10. data/lib/gdk3/rgba.rb +32 -0
  11. data/lib/gdk3/window-attr.rb +28 -0
  12. data/lib/gdk3/window.rb +21 -0
  13. data/lib/gdk3.rb +61 -2
  14. data/test/run-test.rb +15 -6
  15. data/test/test-gdk-cairo.rb +41 -0
  16. data/test/test-gdk-event-type.rb +25 -0
  17. data/test/test-gdk-event.rb +47 -49
  18. data/test/test-gdk-keyval.rb +21 -0
  19. data/test/test-gdk-pixbuf.rb +49 -0
  20. data/test/test-gdk-rectangle.rb +35 -4
  21. data/test/test-gdk-rgba.rb +6 -1
  22. data/test/test-gdk-window-attr.rb +1 -1
  23. metadata +23 -51
  24. data/ext/gdk3/depend +0 -11
  25. data/ext/gdk3/extconf.rb +0 -130
  26. data/ext/gdk3/gdk3.def +0 -12
  27. data/ext/gdk3/init.c +0 -35
  28. data/ext/gdk3/rbgdk.c +0 -491
  29. data/ext/gdk3/rbgdk3.h +0 -73
  30. data/ext/gdk3/rbgdk3conversions.h +0 -121
  31. data/ext/gdk3/rbgdk3private.h +0 -85
  32. data/ext/gdk3/rbgdkatom.c +0 -122
  33. data/ext/gdk3/rbgdkcairo.c +0 -91
  34. data/ext/gdk3/rbgdkcolor.c +0 -137
  35. data/ext/gdk3/rbgdkconst.c +0 -33
  36. data/ext/gdk3/rbgdkcursor.c +0 -92
  37. data/ext/gdk3/rbgdkdevice.c +0 -253
  38. data/ext/gdk3/rbgdkdevicemanager.c +0 -39
  39. data/ext/gdk3/rbgdkdisplay.c +0 -434
  40. data/ext/gdk3/rbgdkdisplaymanager.c +0 -55
  41. data/ext/gdk3/rbgdkdragcontext.c +0 -191
  42. data/ext/gdk3/rbgdkevent.c +0 -1173
  43. data/ext/gdk3/rbgdkgeometry.c +0 -253
  44. data/ext/gdk3/rbgdkkeymap.c +0 -151
  45. data/ext/gdk3/rbgdkkeyval.c +0 -108
  46. data/ext/gdk3/rbgdkpango.c +0 -197
  47. data/ext/gdk3/rbgdkpangorenderer.c +0 -144
  48. data/ext/gdk3/rbgdkpixbuf.c +0 -176
  49. data/ext/gdk3/rbgdkproperty.c +0 -305
  50. data/ext/gdk3/rbgdkrectangle.c +0 -140
  51. data/ext/gdk3/rbgdkrgb.c +0 -199
  52. data/ext/gdk3/rbgdkrgba.c +0 -142
  53. data/ext/gdk3/rbgdkscreen.c +0 -443
  54. data/ext/gdk3/rbgdkselection.c +0 -146
  55. data/ext/gdk3/rbgdkthreads.c +0 -77
  56. data/ext/gdk3/rbgdktimecoord.c +0 -133
  57. data/ext/gdk3/rbgdkvisual.c +0 -251
  58. data/ext/gdk3/rbgdkwindow.c +0 -1069
  59. data/ext/gdk3/rbgdkwindowattr.c +0 -191
  60. data/ext/gdk3/rbgdkx11.c +0 -102
  61. data/ext/gdk3/rbgdkx11x11window.c +0 -66
  62. data/extconf.rb +0 -49
  63. data/lib/gdk3/base.rb +0 -59
@@ -1,144 +0,0 @@
1
- /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
- /*
3
- * Copyright (C) 2011 Ruby-GNOME2 Project Team
4
- * Copyright (C) 2005 Masao Mutoh
5
- *
6
- * This library is free software; you can redistribute it and/or
7
- * modify it under the terms of the GNU Lesser General Public
8
- * License as published by the Free Software Foundation; either
9
- * version 2.1 of the License, or (at your option) any later version.
10
- *
11
- * This library is distributed in the hope that it will be useful,
12
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
- * Lesser General Public License for more details.
15
- *
16
- * You should have received a copy of the GNU Lesser General Public
17
- * License along with this library; if not, write to the Free Software
18
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
- * MA 02110-1301 USA
20
- */
21
-
22
- /* deprecated
23
- #include "rbgdk3private.h"
24
-
25
- #define RG_TARGET_NAMESPACE cPangoRenderer
26
- #define _SELF(s) (RVAL2GDKPANGORENDERER(s))
27
-
28
- static VALUE
29
- rg_initialize(int argc, VALUE *argv, VALUE self)
30
- {
31
- VALUE screen;
32
- GdkScreen* gscreen;
33
-
34
- rb_scan_args(argc, argv, "01", &screen);
35
-
36
- if (NIL_P(screen)){
37
- gscreen = gdk_screen_get_default();
38
- } else {
39
- gscreen = RVAL2GDKSCREEN(screen);
40
- }
41
-
42
- G_INITIALIZE(self, gdk_pango_renderer_new(gscreen));
43
-
44
- return Qnil;
45
- }
46
-
47
- static VALUE
48
- rg_s_get_default(int argc, VALUE *argv, G_GNUC_UNUSED VALUE self)
49
- {
50
- VALUE screen;
51
- GdkScreen* gscreen;
52
-
53
- rb_scan_args(argc, argv, "01", &screen);
54
-
55
- if (NIL_P(screen)){
56
- gscreen = gdk_screen_get_default();
57
- } else {
58
- gscreen = RVAL2GDKSCREEN(screen);
59
- }
60
- return GOBJ2RVAL(gdk_pango_renderer_get_default(gscreen));
61
- }
62
-
63
- static VALUE
64
- rg_s_default(G_GNUC_UNUSED VALUE self)
65
- {
66
- GdkScreen* gscreen = gdk_screen_get_default();
67
- return GOBJ2RVAL(gdk_pango_renderer_get_default(gscreen));
68
- }
69
-
70
- static VALUE
71
- rg_set_drawable(VALUE self, VALUE drawable)
72
- {
73
- gdk_pango_renderer_set_drawable(_SELF(self),
74
- RVAL2GDKDRAWABLE(drawable));
75
- return self;
76
- }
77
-
78
- static VALUE
79
- rg_set_gc(VALUE self, VALUE gc)
80
- {
81
- gdk_pango_renderer_set_gc(_SELF(self),
82
- NIL_P(gc) ? NULL : RVAL2GDKGC(gc));
83
- return self;
84
- }
85
-
86
- #ifdef HAVE_PANGO_RENDER_PART_GET_TYPE
87
- static VALUE
88
- rg_set_stipple(VALUE self, VALUE part, VALUE stipple)
89
- {
90
- gdk_pango_renderer_set_stipple(_SELF(self), RVAL2PANGORENDERPART(part),
91
- NIL_P(stipple) ? NULL : RVAL2GDKBITMAP(stipple));
92
-
93
- return self;
94
- }
95
- #else
96
- static VALUE
97
- prenderer_set_stipple(G_GNUC_UNUSED VALUE self,
98
- G_GNUC_UNUSED VALUE part,
99
- G_GNUC_UNUSED VALUE stipple)
100
- {
101
- rb_warning("Gdk::PangoRender#set_tipple is not supported (Require pango-1.8.1 or later");
102
-
103
- return self;
104
- }
105
- #endif
106
-
107
- #ifdef HAVE_PANGO_RENDER_PART_GET_TYPE
108
- static VALUE
109
- rg_set_override_color(VALUE self, VALUE part, VALUE color)
110
- {
111
- gdk_pango_renderer_set_override_color(_SELF(self),
112
- RVAL2PANGORENDERPART(part),
113
- RVAL2GDKCOLOR(color));
114
-
115
- return self;
116
- }
117
- #else
118
- static VALUE
119
- prenderer_set_override_color(G_GNUC_UNUSED VALUE self,
120
- G_GNUC_UNUSED VALUE part,
121
- G_GNUC_UNUSED VALUE color)
122
- {
123
- rb_warning("Gdk::PangoRender#set_override_color is not supported (Require pango-1.8.1 or later");
124
-
125
- return self;
126
- }
127
- #endif
128
-
129
- void
130
- Init_gdk_pangorenderer(VALUE mGdk)
131
- {
132
- VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GDK_TYPE_PANGO_RENDERER, "PangoRenderer", mGdk);
133
-
134
- RG_DEF_METHOD(initialize, -1);
135
- RG_DEF_METHOD(set_drawable, 1);
136
- RG_DEF_METHOD(set_gc, 1);
137
- RG_DEF_METHOD(set_stipple, 2);
138
- RG_DEF_METHOD(set_override_color, 2);
139
-
140
- RG_DEF_SMETHOD(get_default, -1);
141
- RG_DEF_SMETHOD(default, 0);
142
- }
143
- */
144
-
@@ -1,176 +0,0 @@
1
- /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
- /*
3
- * Copyright (C) 2011 Ruby-GNOME2 Project Team
4
- * Copyright (C) 2002,2003 Masao Mutoh
5
- *
6
- * This library is free software; you can redistribute it and/or
7
- * modify it under the terms of the GNU Lesser General Public
8
- * License as published by the Free Software Foundation; either
9
- * version 2.1 of the License, or (at your option) any later version.
10
- *
11
- * This library is distributed in the hope that it will be useful,
12
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
- * Lesser General Public License for more details.
15
- *
16
- * You should have received a copy of the GNU Lesser General Public
17
- * License along with this library; if not, write to the Free Software
18
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
- * MA 02110-1301 USA
20
- */
21
-
22
- #include "rbgdk3private.h"
23
-
24
- #define RG_TARGET_NAMESPACE cPixbuf
25
- #define _SELF(s) RVAL2GDKPIXBUF(s)
26
-
27
- /* deprecated
28
- static VALUE
29
- rg_render_threshold_alpha(VALUE self, VALUE bitmap, VALUE src_x, VALUE src_y, VALUE dest_x, VALUE dest_y, VALUE width, VALUE height, VALUE alpha_threshold)
30
- {
31
- gdk_pixbuf_render_threshold_alpha(_SELF(self), RVAL2GDKBITMAP(bitmap),
32
- NUM2INT(src_x), NUM2INT(src_y),
33
- NUM2INT(dest_x), NUM2INT(dest_y),
34
- NUM2INT(width), NUM2INT(height),
35
- NUM2INT(alpha_threshold));
36
- return self;
37
- }
38
-
39
- static VALUE
40
- rg_render_to_drawable(int argc, VALUE *argv, VALUE self)
41
- {
42
- VALUE gc, src_x, src_y, dest_x, dest_y, width, height,
43
- dither, x_dither, y_dither;
44
-
45
- rb_warn("Gdk::Pixbuf#render_to_drawable is obsolete. Use Gdk::Drawable#draw_pixbuf instead.");
46
-
47
- rb_scan_args(argc, argv, "73", &gc, &src_x, &src_y, &dest_x, &dest_y,
48
- &width, &height, &dither, &x_dither, &y_dither);
49
-
50
- if (NIL_P(gc))
51
- rb_raise(rb_eArgError, "arguments 1 must be non nil");
52
- if (NIL_P(src_x))
53
- rb_raise(rb_eArgError, "arguments 2 must be non nil");
54
- if (NIL_P(src_y))
55
- rb_raise(rb_eArgError, "arguments 3 must be non nil");
56
- if (NIL_P(dest_x))
57
- rb_raise(rb_eArgError, "arguments 4 must be non nil");
58
- if (NIL_P(dest_y))
59
- rb_raise(rb_eArgError, "arguments 5 must be non nil");
60
- if (NIL_P(width))
61
- rb_raise(rb_eArgError, "arguments 6 must be non nil");
62
- if (NIL_P(height))
63
- rb_raise(rb_eArgError, "arguments 7 must be non nil");
64
-
65
- gdk_pixbuf_render_to_drawable(_SELF(self),
66
- RVAL2GDKDRAWABLE(self),
67
- RVAL2GDKGC(gc),
68
- NUM2INT(src_x), NUM2INT(src_y),
69
- NUM2INT(dest_x), NUM2INT(dest_y),
70
- NUM2INT(width), NUM2INT(height),
71
- NIL_P(dither) ? GDK_RGB_DITHER_NONE : RVAL2GDKRGBDITHER(dither),
72
- NIL_P(x_dither) ? 0 : NUM2INT(x_dither),
73
- NIL_P(y_dither) ? 0 : NUM2INT(y_dither));
74
- return self;
75
- }
76
-
77
- static VALUE
78
- rg_render_pixmap_and_mask(int argc, VALUE *argv, VALUE self)
79
- {
80
- VALUE colormap_or_alpha, alpha;
81
- GdkPixmap *pixmap;
82
- GdkBitmap *mask;
83
-
84
- rb_scan_args(argc, argv, "11", &colormap_or_alpha, &alpha);
85
-
86
- if (rb_obj_is_kind_of(colormap_or_alpha, GTYPE2CLASS(GDK_TYPE_COLORMAP))){
87
- gdk_pixbuf_render_pixmap_and_mask_for_colormap(_SELF(self),
88
- RVAL2GOBJ(colormap_or_alpha),
89
- &pixmap,
90
- &mask,
91
- NIL_P(alpha)?0:NUM2INT(alpha));
92
- } else {
93
- gdk_pixbuf_render_pixmap_and_mask(_SELF(self),
94
- &pixmap,
95
- &mask,
96
- NIL_P(colormap_or_alpha)?
97
- 0:NUM2INT(colormap_or_alpha));
98
- }
99
-
100
- return rb_ary_new3(2,
101
- pixmap ? GOBJ2RVAL(pixmap) : Qnil,
102
- mask ? GOBJ2RVAL(mask) : Qnil);
103
- }
104
-
105
- static VALUE
106
- rg_s_from_drawable(int argc, VALUE *argv, G_GNUC_UNUSED VALUE self)
107
- {
108
- VALUE cmap, src, src_x, src_y, width, height, dest, dest_x, dest_y;
109
- GdkPixbuf* buf;
110
-
111
- rb_scan_args(argc, argv, "63", &cmap, &src, &src_x, &src_y, &width, &height,
112
- &dest, &dest_x, &dest_y);
113
-
114
- buf = gdk_pixbuf_get_from_drawable(RVAL2GDKPIXBUF(dest),
115
- RVAL2GDKDRAWABLE(src),
116
- RVAL2GDKCOLORMAP(cmap),
117
- NUM2INT(src_x), NUM2INT(src_y),
118
- NIL_P(dest_x) ? 0 : NUM2INT(dest_x),
119
- NIL_P(dest_y) ? 0 : NUM2INT(dest_y),
120
- NUM2INT(width), NUM2INT(height));
121
- if (NIL_P(dest)) {
122
- if (buf) {
123
- return GOBJ2RVALU(buf);
124
- } else {
125
- return Qnil;
126
- }
127
- } else {
128
- return dest;
129
- }
130
- }
131
-
132
- static VALUE
133
- rg_s_from_image(int argc, VALUE *argv, G_GNUC_UNUSED VALUE self)
134
- {
135
- VALUE cmap, src, src_x, src_y, width, height, dest, dest_x, dest_y;
136
- GdkPixbuf* buf;
137
-
138
- rb_scan_args(argc, argv, "63", &cmap, &src, &src_x, &src_y, &width, &height,
139
- &dest, &dest_x, &dest_y);
140
-
141
- buf = gdk_pixbuf_get_from_image(RVAL2GDKPIXBUF(dest),
142
- RVAL2GDKIMAGE(src),
143
- RVAL2GDKCOLORMAP(cmap),
144
- NUM2INT(src_x), NUM2INT(src_y),
145
- NIL_P(dest_x) ? 0 : NUM2INT(dest_x),
146
- NIL_P(dest_y) ? 0 : NUM2INT(dest_y),
147
- NUM2INT(width), NUM2INT(height));
148
- if (NIL_P(dest)) {
149
- if (buf) {
150
- return GOBJ2RVAL(buf);
151
- } else {
152
- return Qnil;
153
- }
154
- } else {
155
- return dest;
156
- }
157
- }
158
- */
159
-
160
- void
161
- Init_gdk_pixbuf(VALUE mGdk)
162
- {
163
- /*
164
- * This defines Gdk::Pixbuf methods of GDK side.
165
- */
166
- VALUE RG_TARGET_NAMESPACE = GTYPE2CLASS(GDK_TYPE_PIXBUF);
167
-
168
- /* deprecated
169
- RG_DEF_METHOD(render_threshold_alpha, 8);
170
- RG_DEF_METHOD(render_to_drawable, -1);
171
- RG_DEF_METHOD(render_pixmap_and_mask, -1);
172
-
173
- RG_DEF_SMETHOD(from_drawable, -1);
174
- RG_DEF_SMETHOD(from_image, -1);
175
- */
176
- }
@@ -1,305 +0,0 @@
1
- /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
- /*
3
- * Copyright (C) 2011 Ruby-GNOME2 Project Team
4
- * Copyright (C) 2002-2004 Ruby-GNOME2 Project Team
5
- * Copyright (C) 1998-2000 Yukihiro Matsumoto,
6
- * Daisuke Kanda,
7
- * Hiroshi Igarashi
8
- *
9
- * This library is free software; you can redistribute it and/or
10
- * modify it under the terms of the GNU Lesser General Public
11
- * License as published by the Free Software Foundation; either
12
- * version 2.1 of the License, or (at your option) any later version.
13
- *
14
- * This library is distributed in the hope that it will be useful,
15
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
16
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17
- * Lesser General Public License for more details.
18
- *
19
- * You should have received a copy of the GNU Lesser General Public
20
- * License along with this library; if not, write to the Free Software
21
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
22
- * MA 02110-1301 USA
23
- */
24
-
25
- #include "rbgdk3private.h"
26
-
27
- #define RG_TARGET_NAMESPACE mProperty
28
-
29
- /* deprecated
30
- static VALUE
31
- rg_s_text_property_to_text_list(int argc, VALUE *argv, G_GNUC_UNUSED VALUE self)
32
- {
33
- gint num, i;
34
- gchar** list;
35
- VALUE ret = Qnil;
36
-
37
- if (argc == 3) {
38
- VALUE encoding, format, text;
39
- rb_scan_args(argc, argv, "30", &encoding, &format, &text);
40
- StringValue(text);
41
-
42
- num = gdk_text_property_to_text_list(RVAL2ATOM(encoding),
43
- NUM2INT(format),
44
- (const guchar*)RVAL2CSTR(text),
45
- RSTRING_LEN(text), &list);
46
- } else {
47
- VALUE display, encoding, format, text;
48
- rb_scan_args(argc, argv, "40", &display, &encoding, &format, &text);
49
- StringValue(text);
50
-
51
- num = gdk_text_property_to_text_list_for_display(RVAL2GDKDISPLAYOBJECT(display),
52
- RVAL2ATOM(encoding),
53
- NUM2INT(format),
54
- (const guchar*)RVAL2CSTR(text),
55
- RSTRING_LEN(text),
56
- &list);
57
- }
58
-
59
- ret = rb_ary_new2(num);
60
- for (i =0; i < num; i++){
61
- rb_ary_push(ret, CSTR2RVAL(list[i]));
62
- }
63
- gdk_free_text_list(list);
64
- return ret;
65
- }
66
- */
67
-
68
- /* TODO
69
- static VALUE
70
- rg_s_text_property_to_utf8_list(int argc, VALUE *argv, G_GNUC_UNUSED VALUE self)
71
- {
72
- gint num, i;
73
- gchar** list;
74
- VALUE ret = Qnil;
75
-
76
- if (argc == 3) {
77
- VALUE encoding, format, text;
78
- rb_scan_args(argc, argv, "30", &encoding, &format, &text);
79
- StringValue(text);
80
-
81
- num = gdk_text_property_to_utf8_list(RVAL2ATOM(encoding),
82
- NUM2INT(format),
83
- (const guchar*)RVAL2CSTR(text),
84
- RSTRING_LEN(text), &list);
85
- } else {
86
- VALUE display, encoding, format, text;
87
- rb_scan_args(argc, argv, "40", &display, &encoding, &format, &text);
88
- StringValue(text);
89
-
90
- num = gdk_text_property_to_utf8_list_for_display(RVAL2GDKDISPLAYOBJECT(display),
91
- RVAL2ATOM(encoding),
92
- NUM2INT(format),
93
- (const guchar*)RVAL2CSTR(text),
94
- RSTRING_LEN(text),
95
- &list);
96
- }
97
-
98
- ret = rb_ary_new2(num);
99
- for (i =0; i < num; i++){
100
- rb_ary_push(ret, CSTR2RVAL(list[i]));
101
- }
102
- g_strfreev(list);
103
- return ret;
104
- }
105
- */
106
-
107
- /* deprecated
108
- static VALUE
109
- rg_s_string_to_compound_text(int argc, VALUE *argv, G_GNUC_UNUSED VALUE self)
110
- {
111
- gint num;
112
- GdkAtom encoding;
113
- gint format;
114
- guchar *ctext;
115
- gint length;
116
-
117
- if (argc == 1) {
118
- VALUE str;
119
- rb_scan_args(argc, argv, "10", &str);
120
- num = gdk_string_to_compound_text(RVAL2CSTR(str),
121
- &encoding, &format,
122
- &ctext, &length);
123
- } else {
124
- VALUE display, str;
125
-
126
- rb_scan_args(argc, argv, "20", &display, &str);
127
- num = gdk_string_to_compound_text_for_display(RVAL2GDKDISPLAYOBJECT(display),
128
- RVAL2CSTR(str),
129
- &encoding, &format,
130
- &ctext, &length);
131
- }
132
-
133
- if (num == 0){
134
- VALUE ret = CSTR2RVAL((const char*)ctext);
135
- gdk_free_compound_text(ctext);
136
- return rb_ary_new3(3, GDKATOM2RVAL(encoding),
137
- INT2NUM(format), ret);
138
- } else {
139
- rb_raise(rb_eRuntimeError, "failed to converts a string %d\n", num);
140
- }
141
- return Qnil;
142
- }
143
- */
144
-
145
- static VALUE
146
- rg_s_utf8_to_string_target(G_GNUC_UNUSED VALUE self, VALUE str)
147
- {
148
- return CSTR2RVAL((const char*)gdk_utf8_to_string_target(RVAL2CSTR(str)));
149
- }
150
-
151
- /* deprecated
152
- static VALUE
153
- rg_s_utf8_to_compound_text(int argc, VALUE *argv, G_GNUC_UNUSED VALUE self)
154
- {
155
- GdkAtom encoding;
156
- gint format;
157
- guchar *ctext;
158
- gint length;
159
- gint ret;
160
-
161
- if (argc == 1) {
162
- VALUE str;
163
- rb_scan_args(argc, argv, "10", &str);
164
-
165
- ret = gdk_utf8_to_compound_text(RVAL2CSTR(str),
166
- &encoding, &format,
167
- &ctext, &length);
168
- } else {
169
- VALUE display, str;
170
-
171
- rb_scan_args(argc, argv, "20", &display, &str);
172
- ret = gdk_utf8_to_compound_text_for_display(RVAL2GDKDISPLAYOBJECT(display),
173
- RVAL2CSTR(str),
174
- &encoding, &format,
175
- &ctext, &length);
176
- }
177
-
178
- if (ret){
179
- VALUE val = CSTR2RVAL((const char*)ctext);
180
- gdk_free_compound_text(ctext);
181
- return rb_ary_new3(3, GDKATOM2RVAL(encoding),
182
- INT2NUM(format), val);
183
- } else {
184
- rb_raise(rb_eRuntimeError, "failed to converts a string %d\n", ret);
185
- }
186
- return Qnil;
187
- }
188
- */
189
-
190
- /* TODO
191
- static VALUE
192
- rg_s_change(int argc, VALUE *argv, VALUE self)
193
- {
194
- int fmt, len;
195
- void* dat;
196
- GdkAtom ntype;
197
- VALUE win, property, type, size= Qnil, mode, src;
198
-
199
- if(6 == argc)
200
- rb_scan_args(argc, argv, "60", &win, &property, &type, &size, &mode, &src);
201
- else
202
- rb_scan_args(argc, argv, "50", &win, &property, &type, &mode, &src);
203
-
204
- rbgtk_atom2selectiondata(type, size, src, &ntype, &dat, &fmt, &len);
205
-
206
- gdk_property_change(RVAL2GDKWINDOW(win), RVAL2ATOM(property),
207
- ntype, fmt, RVAL2GDKPROPMODE(mode), dat, len);
208
-
209
- rbgtk_atom2selectiondata_free(ntype, dat);
210
-
211
- return self;
212
- }
213
- */
214
-
215
- static VALUE
216
- rg_s_get(int argc, VALUE *argv, G_GNUC_UNUSED VALUE self)
217
- {
218
- /* for argument processing */
219
- GdkAtom rtype;
220
- gint rfmt, rlen;
221
- guchar* rdat;
222
- VALUE win, property, type, offset=INT2FIX(0), length=INT2FIX(9999), delete;
223
-
224
- /* for inner processing */
225
- gint i;
226
- size_t j;
227
- VALUE ret = 0;
228
-
229
- if(6 == argc)
230
- rb_scan_args(argc, argv, "60", &win, &property, &type, &offset, &length, &delete);
231
- else
232
- rb_scan_args(argc, argv, "40", &win, &property, &type, &delete);
233
-
234
- if(gdk_property_get(RVAL2GDKWINDOW(win), RVAL2ATOM(property), RVAL2ATOM(type),
235
- NUM2INT(offset), NUM2INT(length),
236
- RVAL2CBOOL(delete), &rtype, &rfmt, &rlen, &rdat) == FALSE){
237
- return Qnil;
238
- }
239
-
240
- switch(rfmt){
241
- case 8:
242
- default:
243
- ret = RBG_STRING_SET_UTF8_ENCODING(rb_str_new((const char*)rdat, rlen));
244
- break;
245
-
246
- case 16:
247
- ret = rb_ary_new();
248
-
249
- for( i = 0; i < rlen; i++){
250
- rb_ary_push(ret, rb_Integer(((unsigned short*)rdat)[i]));
251
- }
252
- break;
253
-
254
- case 32:
255
- ret = rb_ary_new();
256
-
257
- if(rtype != GDK_SELECTION_TYPE_ATOM){
258
- for(j = 0; j < (rlen/sizeof(unsigned long)); j++){
259
- rb_ary_push(ret, INT2FIX(((unsigned long*)rdat)[j]));
260
- }
261
- } else {
262
- for(j = 0; j < (rlen/sizeof(unsigned long)); j++){
263
- rb_ary_push(ret, GDKATOM2RVAL((GdkAtom)((unsigned long*)rdat)[j]));
264
- }
265
- }
266
- break;
267
- }
268
-
269
- return rb_ary_new3(3, GDKATOM2RVAL(rtype),
270
- ret, INT2NUM(rlen));
271
- }
272
-
273
- static VALUE
274
- rg_s_delete(VALUE self, VALUE win, VALUE property)
275
- {
276
- gdk_property_delete(RVAL2GDKWINDOW(win), RVAL2ATOM(property));
277
- return self;
278
- }
279
-
280
- void
281
- Init_gdk_property(VALUE mGdk)
282
- {
283
- VALUE RG_TARGET_NAMESPACE = rb_define_module_under(mGdk, "Property");
284
-
285
- /* deprecated
286
- RG_DEF_SMETHOD(text_property_to_text_list, -1);
287
- */
288
- /* TODO
289
- RG_DEF_SMETHOD(text_property_to_utf8_list, -1);
290
- */
291
- /* deprecated
292
- RG_DEF_SMETHOD(string_to_compound_text, -1);
293
- */
294
- RG_DEF_SMETHOD(utf8_to_string_target, 1);
295
- /* deprecated
296
- RG_DEF_SMETHOD(utf8_to_compound_text, -1);
297
- */
298
- /* TODO
299
- RG_DEF_SMETHOD(change, -1);
300
- */
301
- RG_DEF_SMETHOD(get, -1);
302
- RG_DEF_SMETHOD(delete, 2);
303
-
304
- G_DEF_CLASS(GDK_TYPE_PROP_MODE, "PropMode", RG_TARGET_NAMESPACE);
305
- }