rsvg2 1.0.3-x86-mingw32 → 1.1.0-x86-mingw32

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.
@@ -0,0 +1,196 @@
1
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
+ /*
3
+ * Copyright (C) 2011 Ruby-GNOME2 Project Team
4
+ * Copyright (C) 2005-2006 Ruby-GNOME2 Project Team
5
+ * Copyright (C) 2004 Kouhei Sutou <kou@cozmixng.org>
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 "rsvg2.h"
24
+
25
+ #ifdef HAVE_TYPE_RSVGDIMENSIONDATA
26
+
27
+ #define RG_TARGET_NAMESPACE cDimensionData
28
+
29
+ #define RVAL2DIM(obj) ((RsvgDimensionData *)DATA_PTR(obj))
30
+
31
+ static VALUE RG_TARGET_NAMESPACE;
32
+
33
+ static ID id_closed;
34
+ static ID id_to_s;
35
+
36
+ static VALUE
37
+ to_s(VALUE obj)
38
+ {
39
+ return rb_funcall(obj, id_to_s, 0);
40
+ }
41
+
42
+ static void
43
+ rb_rsvg_dim_free(RsvgDimensionData *dimp)
44
+ {
45
+ if (dimp) {
46
+ free(dimp);
47
+ }
48
+ }
49
+
50
+ static VALUE
51
+ rb_rsvg_dim_alloc(VALUE klass)
52
+ {
53
+ RsvgDimensionData *dimp;
54
+ return Data_Make_Struct(klass, RsvgDimensionData, 0,
55
+ rb_rsvg_dim_free, dimp);
56
+ }
57
+
58
+ static VALUE
59
+ rg_initialize(int argc, VALUE *argv, VALUE self)
60
+ {
61
+ VALUE width, height, em, ex;
62
+ RsvgDimensionData *dimp;
63
+
64
+ dimp = RVAL2DIM(self);
65
+ rb_scan_args(argc, argv, "04", &width, &height, &em, &ex);
66
+
67
+ if (!NIL_P(width))
68
+ dimp->width = NUM2INT(width);
69
+ if (!NIL_P(height))
70
+ dimp->height = NUM2INT(height);
71
+ if (!NIL_P(em))
72
+ dimp->em = NUM2DBL(em);
73
+ if (!NIL_P(ex))
74
+ dimp->ex = NUM2DBL(ex);
75
+
76
+ return Qnil;
77
+ }
78
+
79
+ static VALUE
80
+ rg_width(VALUE self)
81
+ {
82
+ return INT2NUM(RVAL2DIM(self)->width);
83
+ }
84
+
85
+ static VALUE
86
+ rg_set_width(VALUE self, VALUE width)
87
+ {
88
+ RVAL2DIM(self)->width = NUM2INT(width);
89
+ return Qnil;
90
+ }
91
+
92
+ static VALUE
93
+ rg_height(VALUE self)
94
+ {
95
+ return INT2NUM(RVAL2DIM(self)->height);
96
+ }
97
+
98
+ static VALUE
99
+ rg_set_height(VALUE self, VALUE height)
100
+ {
101
+ RVAL2DIM(self)->height = NUM2INT(height);
102
+ return Qnil;
103
+ }
104
+
105
+ static VALUE
106
+ rg_em(VALUE self)
107
+ {
108
+ return rb_float_new(RVAL2DIM(self)->em);
109
+ }
110
+
111
+ static VALUE
112
+ rg_set_em(VALUE self, VALUE em)
113
+ {
114
+ RVAL2DIM(self)->em = NUM2DBL(em);
115
+ return Qnil;
116
+ }
117
+
118
+ static VALUE
119
+ rg_ex(VALUE self)
120
+ {
121
+ return rb_float_new(RVAL2DIM(self)->ex);
122
+ }
123
+
124
+ static VALUE
125
+ rg_set_ex(VALUE self, VALUE ex)
126
+ {
127
+ RVAL2DIM(self)->ex = NUM2DBL(ex);
128
+ return Qnil;
129
+ }
130
+
131
+ static VALUE
132
+ rg_to_a(VALUE self)
133
+ {
134
+ return rb_ary_new3(4,
135
+ rg_width(self),
136
+ rg_height(self),
137
+ rg_em(self),
138
+ rg_ex(self));
139
+ }
140
+
141
+ static VALUE
142
+ rg_to_s(VALUE self)
143
+ {
144
+ VALUE ret;
145
+
146
+ ret = rb_str_new2("#<");
147
+ rb_str_cat2(ret, rb_obj_classname(self));
148
+ rb_str_cat2(ret, ":");
149
+ rb_str_concat(ret, rb_funcall(INT2NUM(self), id_to_s, 0));
150
+ rb_str_cat2(ret, " ");
151
+
152
+ rb_str_cat2(ret, "width=");
153
+ rb_str_concat(ret, to_s(rg_width(self)));
154
+ rb_str_cat2(ret, ", ");
155
+ rb_str_cat2(ret, "height=");
156
+ rb_str_concat(ret, to_s(rg_height(self)));
157
+ rb_str_cat2(ret, ", ");
158
+ rb_str_cat2(ret, "em=");
159
+ rb_str_concat(ret, to_s(rg_em(self)));
160
+ rb_str_cat2(ret, ", ");
161
+ rb_str_cat2(ret, "ex=");
162
+ rb_str_concat(ret, to_s(rg_ex(self)));
163
+ rb_str_cat2(ret, ">");
164
+
165
+ return ret;
166
+ }
167
+ #endif
168
+
169
+ void
170
+ Init_rsvg_dimensiondata(VALUE mRSVG)
171
+ {
172
+ #ifdef HAVE_TYPE_RSVGDIMENSIONDATA
173
+ id_closed = rb_intern("closed");
174
+ id_to_s = rb_intern("to_s");
175
+
176
+ RG_TARGET_NAMESPACE = rb_define_class_under(mRSVG, "DimensionData", rb_cObject);
177
+
178
+ rb_define_alloc_func(RG_TARGET_NAMESPACE, rb_rsvg_dim_alloc);
179
+ RG_DEF_METHOD(initialize, -1);
180
+
181
+ RG_DEF_METHOD(width, 0);
182
+ RG_DEF_METHOD(set_width, 1);
183
+ RG_DEF_METHOD(height, 0);
184
+ RG_DEF_METHOD(set_height, 1);
185
+ RG_DEF_METHOD(em, 0);
186
+ RG_DEF_METHOD(set_em, 1);
187
+ RG_DEF_METHOD(ex, 0);
188
+ RG_DEF_METHOD(set_ex, 1);
189
+
190
+ RG_DEF_METHOD(to_s, 0);
191
+ RG_DEF_METHOD(to_a, 0);
192
+ RG_DEF_ALIAS("to_ary", "to_a");
193
+
194
+ G_DEF_SETTERS(RG_TARGET_NAMESPACE);
195
+ #endif
196
+ }
@@ -0,0 +1,477 @@
1
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
+ /*
3
+ * Copyright (C) 2011 Ruby-GNOME2 Project Team
4
+ * Copyright (C) 2005-2006 Ruby-GNOME2 Project Team
5
+ * Copyright (C) 2004 Kouhei Sutou <kou@cozmixng.org>
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 "rsvg2.h"
24
+
25
+ #define RG_TARGET_NAMESPACE cHandle
26
+ #ifdef RSVG_TYPE_HANDLE
27
+ # define _SELF(self) (RSVG_HANDLE(RVAL2GOBJ(self)))
28
+ #else
29
+ # define _SELF(self) ((RsvgHandle *)DATA_PTR(self))
30
+ #endif
31
+
32
+ static VALUE RG_TARGET_NAMESPACE;
33
+
34
+ static ID id_call;
35
+ static ID id_callback;
36
+ static ID id_closed;
37
+
38
+ static void
39
+ exec_callback(gint *width, gint *height, gpointer self)
40
+ {
41
+ VALUE result;
42
+ result = rb_funcall(rb_ivar_get((VALUE)self, id_callback),
43
+ id_call, 2, INT2NUM(*width), INT2NUM(*height));
44
+ if (T_ARRAY == TYPE(result)) {
45
+ VALUE w, h;
46
+ w = rb_ary_entry(result, 0);
47
+ h = rb_ary_entry(result, 1);
48
+ if (!NIL_P(w)) {
49
+ *width = NUM2INT(w);
50
+ }
51
+ if (!NIL_P(h)) {
52
+ *height = NUM2INT(h);
53
+ }
54
+ }
55
+ }
56
+
57
+ static VALUE
58
+ rg_set_dpi(VALUE self, VALUE dpi)
59
+ {
60
+ #ifdef HAVE_RSVG_HANDLE_SET_DPI
61
+ rsvg_handle_set_dpi(_SELF(self), NUM2DBL(dpi));
62
+ #else
63
+ rb_warning("rsvg_handle_set_dpi isn't supported in your librsvg");
64
+ #endif
65
+ return self;
66
+ }
67
+
68
+ static VALUE
69
+ rg_set_dpi_x_y(VALUE self, VALUE dpi_x, VALUE dpi_y)
70
+ {
71
+ #ifdef HAVE_RSVG_HANDLE_SET_DPI_X_Y
72
+ rsvg_handle_set_dpi_x_y(_SELF(self), NUM2DBL(dpi_x), NUM2DBL(dpi_y));
73
+ #else
74
+ rb_warning("rsvg_handle_set_dpi_x_y isn't supported in your librsvg");
75
+ #endif
76
+ return self;
77
+ }
78
+
79
+ #ifndef RSVG_TYPE_HANDLE
80
+ static void
81
+ rb_rsvg_handle_free(RsvgHandle *handle)
82
+ {
83
+ if (handle) {
84
+ rsvg_handle_free(handle);
85
+ }
86
+ }
87
+
88
+ static VALUE
89
+ rb_rsvg_handle_alloc(VALUE klass)
90
+ {
91
+ return Data_Wrap_Struct(klass, 0, rb_rsvg_handle_free, 0);
92
+ }
93
+ #endif
94
+
95
+ #if LIBRSVG_CHECK_VERSION(2, 14, 0)
96
+ static VALUE
97
+ rg_m_new_from_data(VALUE self, VALUE data)
98
+ {
99
+ GError *error = NULL;
100
+ RsvgHandle *handle;
101
+
102
+ handle = rsvg_handle_new_from_data((const guint8 *)RVAL2CSTR(data),
103
+ RSTRING_LEN(data), &error);
104
+
105
+ if (error)
106
+ RAISE_GERROR(error);
107
+
108
+ return GOBJ2RVAL(handle);
109
+ }
110
+
111
+ static VALUE
112
+ rg_m_new_from_file(VALUE self, VALUE file)
113
+ {
114
+ GError *error = NULL;
115
+ RsvgHandle *handle;
116
+
117
+ handle = rsvg_handle_new_from_file((const gchar *)RVAL2CSTR(file),
118
+ &error);
119
+
120
+ if (error)
121
+ RAISE_GERROR(error);
122
+
123
+ return GOBJ2RVAL(handle);
124
+ }
125
+ #endif
126
+
127
+ static VALUE
128
+ rg_initialize(int argc, VALUE *argv, VALUE self)
129
+ {
130
+ RsvgHandle *handle;
131
+ VALUE gz;
132
+ rb_scan_args(argc, argv, "01", &gz);
133
+
134
+ #if LIBRSVG_CHECK_VERSION(2, 11, 0)
135
+ handle = rsvg_handle_new();
136
+ #else
137
+ if (RVAL2CBOOL(gz)) {
138
+ # ifdef HAVE_LIBRSVG_RSVG_GZ_H
139
+ handle = rsvg_handle_new_gz();
140
+ # else
141
+ rb_warning("gz handling is not supported in your librsvg");
142
+ handle = rsvg_handle_new();
143
+ # endif
144
+ } else {
145
+ handle = rsvg_handle_new();
146
+ }
147
+ #endif
148
+
149
+ #ifdef RSVG_TYPE_HANDLE
150
+ G_INITIALIZE(self, handle);
151
+ #else
152
+ DATA_PTR(self) = handle;
153
+ #endif
154
+
155
+ rb_ivar_set(self, id_closed, Qfalse);
156
+ return Qnil;
157
+ }
158
+
159
+ static VALUE
160
+ rg_set_size_callback(VALUE self)
161
+ {
162
+ rb_ivar_set(self, id_callback, rb_block_proc());
163
+ rsvg_handle_set_size_callback(_SELF(self), exec_callback,
164
+ (gpointer)self, NULL);
165
+ return self;
166
+ }
167
+
168
+ static VALUE
169
+ rg_write(VALUE self, VALUE buf)
170
+ {
171
+ gboolean result;
172
+ GError *error = NULL;
173
+
174
+ result = rsvg_handle_write(_SELF(self), (const guchar*)RVAL2CSTR(buf),
175
+ RSTRING_LEN(buf), &error);
176
+
177
+ if (!result) RAISE_GERROR(error);
178
+
179
+ return CBOOL2RVAL(result);
180
+ }
181
+
182
+ static VALUE
183
+ rg_close(VALUE self)
184
+ {
185
+ gboolean result;
186
+ GError *error = NULL;
187
+
188
+ if (RVAL2CBOOL(rb_ivar_get(self, id_closed))) {
189
+ return Qnil;
190
+ }
191
+
192
+ result = rsvg_handle_close(_SELF(self), &error);
193
+
194
+ if (result) {
195
+ rb_ivar_set(self, id_closed, Qtrue);
196
+ } else {
197
+ RAISE_GERROR(error);
198
+ }
199
+
200
+ return CBOOL2RVAL(result);
201
+ }
202
+
203
+ static VALUE
204
+ rg_closed_p(VALUE self)
205
+ {
206
+ return rb_ivar_get(self, id_closed);
207
+ }
208
+
209
+ static VALUE
210
+ rg_pixbuf(int argc, VALUE *argv, VALUE self)
211
+ {
212
+ VALUE id;
213
+ VALUE rb_pixbuf;
214
+ GdkPixbuf *pixbuf = NULL;
215
+
216
+ rb_scan_args(argc, argv, "01", &id);
217
+ if (NIL_P(id)) {
218
+ pixbuf = rsvg_handle_get_pixbuf(_SELF(self));
219
+ } else {
220
+ #ifdef HAVE_RSVG_HANDLE_GET_PIXBUF_SUB
221
+ pixbuf = rsvg_handle_get_pixbuf_sub(_SELF(self),
222
+ (const char *)RVAL2CSTR(id));
223
+ #else
224
+ rb_warning("rsvg_handle_get_pixbuf_sub isn't "
225
+ "supported in your librsvg");
226
+ #endif
227
+ }
228
+
229
+ rb_pixbuf = GOBJ2RVAL(pixbuf);
230
+ if (pixbuf)
231
+ g_object_unref(pixbuf);
232
+ return rb_pixbuf;
233
+ }
234
+
235
+ #if LIBRSVG_CHECK_VERSION(2, 9, 0)
236
+ static VALUE
237
+ rg_base_uri(VALUE self)
238
+ {
239
+ return CSTR2RVAL(rsvg_handle_get_base_uri(_SELF(self)));
240
+ }
241
+
242
+ static VALUE
243
+ rg_set_base_uri(VALUE self, VALUE base_uri)
244
+ {
245
+ rsvg_handle_set_base_uri(_SELF(self), RVAL2CSTR(base_uri));
246
+ return self;
247
+ }
248
+ #endif
249
+
250
+ #ifdef HAVE_TYPE_RSVGDIMENSIONDATA
251
+ static VALUE
252
+ rg_dimensions(VALUE self)
253
+ {
254
+ RsvgDimensionData dim;
255
+ VALUE args[4];
256
+ VALUE cDimensionData = rb_const_get(rb_const_get(rb_cObject,
257
+ rb_intern("RSVG")), rb_intern("DimensionData"));
258
+
259
+ rsvg_handle_get_dimensions(_SELF(self), &dim);
260
+ args[0] = INT2NUM(dim.width);
261
+ args[1] = INT2NUM(dim.height);
262
+ args[2] = rb_float_new(dim.em);
263
+ args[3] = rb_float_new(dim.ex);
264
+ return rb_class_new_instance(sizeof(args) / sizeof(VALUE),
265
+ args, cDimensionData);
266
+ }
267
+ #endif
268
+
269
+ /* Accessibility API */
270
+ static VALUE
271
+ rg_title(VALUE self)
272
+ {
273
+ return CSTR2RVAL(rsvg_handle_get_title(_SELF(self)));
274
+ }
275
+
276
+ static VALUE
277
+ rg_desc(VALUE self)
278
+ {
279
+ return CSTR2RVAL(rsvg_handle_get_desc(_SELF(self)));
280
+ }
281
+
282
+ #ifdef HAVE_RSVG_HANDLE_GET_METADATA
283
+ static VALUE
284
+ rg_metadata(VALUE self)
285
+ {
286
+ return CSTR2RVAL(rsvg_handle_get_metadata(_SELF(self)));
287
+ }
288
+ #endif
289
+
290
+ #if !LIBRSVG_CHECK_VERSION(2, 11, 0)
291
+ /* Extended Convenience API */
292
+ static VALUE
293
+ rg_pixbuf_from_file_at_size(VALUE self, VALUE file_name,
294
+ VALUE width, VALUE height)
295
+ {
296
+ VALUE rb_pixbuf;
297
+ GdkPixbuf *pixbuf;
298
+ GError *error = NULL;
299
+
300
+ pixbuf = rsvg_pixbuf_from_file_at_size_ex(_SELF(self),
301
+ RVAL2CSTR(file_name),
302
+ NUM2INT(width),
303
+ NUM2INT(height),
304
+ &error);
305
+
306
+ if (error) RAISE_GERROR(error);
307
+
308
+ rb_pixbuf = GOBJ2RVAL(pixbuf);
309
+ g_object_unref(pixbuf);
310
+ return rb_pixbuf;
311
+ }
312
+
313
+ static VALUE
314
+ rg_pixbuf_from_file(VALUE self, VALUE file_name)
315
+ {
316
+ VALUE rb_pixbuf;
317
+ GdkPixbuf *pixbuf;
318
+ GError *error = NULL;
319
+
320
+ pixbuf = rsvg_pixbuf_from_file_ex(_SELF(self),
321
+ RVAL2CSTR(file_name),
322
+ &error);
323
+
324
+ if (error) RAISE_GERROR(error);
325
+
326
+ rb_pixbuf = GOBJ2RVAL(pixbuf);
327
+ g_object_unref(pixbuf);
328
+ return rb_pixbuf;
329
+ }
330
+
331
+ static VALUE
332
+ rg_pixbuf_from_file_at_zoom(VALUE self, VALUE file_name,
333
+ VALUE x_zoom, VALUE y_zoom)
334
+ {
335
+ VALUE rb_pixbuf;
336
+ GdkPixbuf *pixbuf;
337
+ GError *error = NULL;
338
+
339
+ pixbuf = rsvg_pixbuf_from_file_at_zoom_ex(_SELF(self),
340
+ RVAL2CSTR(file_name),
341
+ NUM2DBL(x_zoom),
342
+ NUM2DBL(y_zoom),
343
+ &error);
344
+
345
+ if (error) RAISE_GERROR(error);
346
+
347
+ rb_pixbuf = GOBJ2RVAL(pixbuf);
348
+ g_object_unref(pixbuf);
349
+ return rb_pixbuf;
350
+ }
351
+
352
+ static VALUE
353
+ rg_pixbuf_from_file_at_max_size(VALUE self, VALUE file_name,
354
+ VALUE max_width, VALUE max_height)
355
+ {
356
+ VALUE rb_pixbuf;
357
+ GdkPixbuf *pixbuf;
358
+ GError *error = NULL;
359
+
360
+ pixbuf = rsvg_pixbuf_from_file_at_max_size_ex(_SELF(self),
361
+ RVAL2CSTR(file_name),
362
+ NUM2INT(max_width),
363
+ NUM2INT(max_height),
364
+ &error);
365
+
366
+ if (error) RAISE_GERROR(error);
367
+
368
+ rb_pixbuf = GOBJ2RVAL(pixbuf);
369
+ g_object_unref(pixbuf);
370
+ return rb_pixbuf;
371
+ }
372
+
373
+ static VALUE
374
+ rg_pixbuf_from_file_at_zoom_with_max(VALUE self,
375
+ VALUE file_name,
376
+ VALUE x_zoom,
377
+ VALUE y_zoom,
378
+ VALUE max_width,
379
+ VALUE max_height)
380
+ {
381
+ VALUE rb_pixbuf;
382
+ GdkPixbuf *pixbuf;
383
+ GError *error = NULL;
384
+
385
+ pixbuf = rsvg_pixbuf_from_file_at_zoom_with_max_ex(_SELF(self),
386
+ RVAL2CSTR(file_name),
387
+ NUM2DBL(x_zoom),
388
+ NUM2DBL(y_zoom),
389
+ NUM2INT(max_width),
390
+ NUM2INT(max_height),
391
+ &error);
392
+
393
+ if (error) RAISE_GERROR(error);
394
+
395
+ rb_pixbuf = GOBJ2RVAL(pixbuf);
396
+ g_object_unref(pixbuf);
397
+ return rb_pixbuf;
398
+ }
399
+ #endif
400
+
401
+ #ifdef HAVE_LIBRSVG_RSVG_CAIRO_H
402
+ static VALUE
403
+ rg_render_cairo(int argc, VALUE *argv, VALUE self)
404
+ {
405
+ VALUE cr, id;
406
+ rb_scan_args(argc, argv, "11", &cr, &id);
407
+
408
+ if (NIL_P(id)) {
409
+ rsvg_handle_render_cairo( _SELF(self), RVAL2CRCONTEXT(cr));
410
+ } else {
411
+ rsvg_handle_render_cairo_sub( _SELF(self), RVAL2CRCONTEXT(cr),
412
+ (const char *)RVAL2CSTR(id));
413
+ }
414
+
415
+ return Qnil;
416
+ }
417
+ #endif
418
+
419
+ void
420
+ Init_rsvg_handle(VALUE mRSVG)
421
+ {
422
+ id_call = rb_intern("call");
423
+ id_callback = rb_intern("callback");
424
+ id_closed = rb_intern("closed");
425
+
426
+ #ifdef RSVG_TYPE_HANDLE
427
+ RG_TARGET_NAMESPACE = G_DEF_CLASS(RSVG_TYPE_HANDLE, "Handle", mRSVG);
428
+ #else
429
+ RG_TARGET_NAMESPACE = rb_define_class_under(mRSVG, "Handle", rb_cObject);
430
+ rb_define_alloc_func(RG_TARGET_NAMESPACE, rb_rsvg_handle_alloc);
431
+ #endif
432
+
433
+ #if LIBRSVG_CHECK_VERSION(2, 14, 0)
434
+ RG_DEF_MODFUNC(new_from_data, 1);
435
+ RG_DEF_MODFUNC(new_from_file, 1);
436
+ #endif
437
+
438
+ RG_DEF_METHOD(initialize, -1);
439
+ RG_DEF_METHOD(set_size_callback, 0);
440
+ RG_DEF_METHOD(set_dpi, 1);
441
+ RG_DEF_METHOD(set_dpi_x_y, 2);
442
+ RG_DEF_METHOD(write, 1);
443
+ RG_DEF_METHOD(close, 0);
444
+ RG_DEF_METHOD_P(closed, 0);
445
+ RG_DEF_METHOD(pixbuf, -1);
446
+
447
+ #if LIBRSVG_CHECK_VERSION(2, 9, 0)
448
+ RG_DEF_METHOD(base_uri, 0);
449
+ RG_DEF_METHOD(set_base_uri, 1);
450
+ #endif
451
+
452
+ #ifdef HAVE_TYPE_RSVGDIMENSIONDATA
453
+ RG_DEF_METHOD(dimensions, 0);
454
+ #endif
455
+
456
+ /* Accessibility API */
457
+ RG_DEF_METHOD(title, 0);
458
+ RG_DEF_METHOD(desc, 0);
459
+ #ifdef HAVE_RSVG_HANDLE_GET_METADATA
460
+ RG_DEF_METHOD(metadata, 0);
461
+ #endif
462
+
463
+ #if !LIBRSVG_CHECK_VERSION(2, 11, 0)
464
+ /* Extended Convenience API */
465
+ RG_DEF_METHOD(pixbuf_from_file_at_size, 3);
466
+ RG_DEF_METHOD(pixbuf_from_file, 1);
467
+ RG_DEF_METHOD(pixbuf_from_file_at_zoom, 3);
468
+ RG_DEF_METHOD(pixbuf_from_file_at_max_size, 3);
469
+ RG_DEF_METHOD(pixbuf_from_file_at_zoom_with_max, 5);
470
+ #endif
471
+
472
+ #ifdef HAVE_LIBRSVG_RSVG_CAIRO_H
473
+ RG_DEF_METHOD(render_cairo, -1);
474
+ #endif
475
+
476
+ G_DEF_SETTERS(RG_TARGET_NAMESPACE);
477
+ }