poppler 3.1.8 → 3.1.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (71) hide show
  1. checksums.yaml +4 -4
  2. data/dependency-check/Rakefile +44 -0
  3. data/lib/poppler.rb +21 -107
  4. data/lib/poppler/annot-callout-line.rb +57 -0
  5. data/lib/poppler/cairo.rb +23 -0
  6. data/lib/poppler/color.rb +36 -0
  7. data/lib/poppler/deprecated.rb +67 -0
  8. data/lib/poppler/document.rb +108 -0
  9. data/lib/poppler/image-mapping.rb +25 -0
  10. data/lib/poppler/index-iter.rb +30 -0
  11. data/lib/poppler/loader.rb +139 -0
  12. data/lib/poppler/page.rb +61 -0
  13. data/lib/poppler/rectangle.rb +40 -0
  14. data/lib/poppler/version.rb +35 -0
  15. data/sample/number-pdf.rb +21 -2
  16. data/sample/pdf2.rb +0 -4
  17. data/sample/pdf2svg.rb +1 -1
  18. data/sample/pdf2text.rb +1 -1
  19. data/sample/pdfcrop.rb +1 -1
  20. data/sample/pdfdiv.rb +1 -1
  21. data/test/fixtures/image.odt +0 -0
  22. data/test/fixtures/image.pdf +0 -0
  23. data/test/fixtures/multiple-pages.odt +0 -0
  24. data/test/fixtures/multiple-pages.pdf +0 -0
  25. data/test/fixtures/text-field.odt +0 -0
  26. data/test/fixtures/text-field.pdf +0 -0
  27. data/test/poppler-test-utils.rb +24 -16
  28. data/test/run-test.rb +26 -4
  29. data/test/test-annotation.rb +76 -0
  30. data/test/{test_color.rb → test-color.rb} +0 -3
  31. data/test/test-constants.rb +16 -0
  32. data/test/{test_document.rb → test-document.rb} +26 -10
  33. data/test/test-page.rb +101 -0
  34. metadata +28 -45
  35. data/README +0 -35
  36. data/ext/poppler/depend +0 -6
  37. data/ext/poppler/extconf.rb +0 -73
  38. data/ext/poppler/poppler.def +0 -2
  39. data/ext/poppler/rbpoppler-action.c +0 -402
  40. data/ext/poppler/rbpoppler-annotation-callout-line.c +0 -127
  41. data/ext/poppler/rbpoppler-annotation-free-text.c +0 -46
  42. data/ext/poppler/rbpoppler-annotation-mapping.c +0 -72
  43. data/ext/poppler/rbpoppler-annotation-markup.c +0 -98
  44. data/ext/poppler/rbpoppler-annotation-text.c +0 -53
  45. data/ext/poppler/rbpoppler-annotation.c +0 -74
  46. data/ext/poppler/rbpoppler-attachment.c +0 -124
  47. data/ext/poppler/rbpoppler-button-field.c +0 -56
  48. data/ext/poppler/rbpoppler-choice-field.c +0 -131
  49. data/ext/poppler/rbpoppler-color.c +0 -107
  50. data/ext/poppler/rbpoppler-document.c +0 -224
  51. data/ext/poppler/rbpoppler-font-info.c +0 -59
  52. data/ext/poppler/rbpoppler-fonts-iter.c +0 -127
  53. data/ext/poppler/rbpoppler-form-field-mapping.c +0 -44
  54. data/ext/poppler/rbpoppler-form-field.c +0 -98
  55. data/ext/poppler/rbpoppler-image-mapping.c +0 -48
  56. data/ext/poppler/rbpoppler-index-iter.c +0 -130
  57. data/ext/poppler/rbpoppler-link-mapping.c +0 -47
  58. data/ext/poppler/rbpoppler-page-transition.c +0 -59
  59. data/ext/poppler/rbpoppler-page.c +0 -322
  60. data/ext/poppler/rbpoppler-private.h +0 -77
  61. data/ext/poppler/rbpoppler-ps-file.c +0 -66
  62. data/ext/poppler/rbpoppler-rectangle.c +0 -92
  63. data/ext/poppler/rbpoppler-text-field.c +0 -91
  64. data/ext/poppler/rbpoppler.c +0 -110
  65. data/ext/poppler/rbpoppler.h +0 -61
  66. data/ext/poppler/rbpopplerconversions.h +0 -105
  67. data/extconf.rb +0 -49
  68. data/test/fixtures/image.png +0 -0
  69. data/test/test_annotation.rb +0 -86
  70. data/test/test_constants.rb +0 -30
  71. data/test/test_page.rb +0 -51
@@ -1,47 +0,0 @@
1
- /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
- /*
3
- * Copyright (C) 2006-2013 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 "rbpoppler-private.h"
22
-
23
- #define RG_TARGET_NAMESPACE cLinkMapping
24
-
25
- void
26
- rectangle_set(PopplerRectangle *rect, VALUE rb_rect)
27
- {
28
- *rect = *(RVAL2POPPLERRECTANGLE(rb_rect));
29
- }
30
-
31
- DEF_ACCESSOR_WITH_SETTER(link_mapping, area,
32
- RVAL2POPPLERLINKMAPPING, RECT_ENTITY2RVAL, RECT_ENTITY_SET)
33
- DEF_ACCESSOR(link_mapping, action, RVAL2POPPLERLINKMAPPING,
34
- POPPLERACTION2RVAL, RVAL2POPPLERACTION)
35
-
36
- void
37
- Init_poppler_link_mapping(VALUE mPoppler)
38
- {
39
- VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(POPPLER_TYPE_LINK_MAPPING, "LinkMapping",
40
- mPoppler);
41
-
42
- rbg_define_method(RG_TARGET_NAMESPACE, "area", link_mapping_get_area, 0);
43
- rbg_define_method(RG_TARGET_NAMESPACE, "action", link_mapping_get_action, 0);
44
-
45
- rbg_define_method(RG_TARGET_NAMESPACE, "set_area", link_mapping_set_area, 1);
46
- rbg_define_method(RG_TARGET_NAMESPACE, "set_action", link_mapping_set_action, 1);
47
- }
@@ -1,59 +0,0 @@
1
- /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
- /*
3
- * Copyright (C) 2006-2013 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 "rbpoppler-private.h"
22
-
23
- #define RG_TARGET_NAMESPACE cPageTransition
24
-
25
- DEF_ACCESSOR(page_trans, type, RVAL2POPPLERPAGETRANSITION, RVAL2POPPLERPAGETRANSITIONTYPE, POPPLERPAGETRANSITIONTYPE2RVAL)
26
- DEF_ACCESSOR(page_trans, alignment, RVAL2POPPLERPAGETRANSITION, RVAL2POPPLERPAGETRANSITIONALIGNMENT, POPPLERPAGETRANSITIONALIGNMENT2RVAL)
27
- DEF_ACCESSOR(page_trans, direction, RVAL2POPPLERPAGETRANSITION, RVAL2POPPLERPAGETRANSITIONDIRECTION, POPPLERPAGETRANSITIONDIRECTION2RVAL)
28
- DEF_ACCESSOR(page_trans, duration, RVAL2POPPLERPAGETRANSITION, NUM2INT, INT2NUM)
29
- DEF_ACCESSOR(page_trans, angle, RVAL2POPPLERPAGETRANSITION, NUM2INT, INT2NUM)
30
- DEF_ACCESSOR(page_trans, scale, RVAL2POPPLERPAGETRANSITION, NUM2DBL, rb_float_new)
31
- DEF_ACCESSOR(page_trans, rectangular, RVAL2POPPLERPAGETRANSITION, RVAL2CBOOL, CBOOL2RVAL)
32
-
33
- void
34
- Init_poppler_page_transition(VALUE mPoppler)
35
- {
36
- VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(POPPLER_TYPE_PAGE_TRANSITION,
37
- "PageTransition", mPoppler);
38
-
39
- rbg_define_method(RG_TARGET_NAMESPACE, "type", page_trans_get_type, 0);
40
- rbg_define_method(RG_TARGET_NAMESPACE, "alignment", page_trans_get_alignment, 0);
41
- rbg_define_method(RG_TARGET_NAMESPACE, "direction", page_trans_get_direction, 0);
42
- rbg_define_method(RG_TARGET_NAMESPACE, "duration", page_trans_get_duration, 0);
43
- rbg_define_method(RG_TARGET_NAMESPACE, "angle", page_trans_get_angle, 0);
44
- rbg_define_method(RG_TARGET_NAMESPACE, "scale", page_trans_get_scale, 0);
45
- rbg_define_method(RG_TARGET_NAMESPACE, "rectangular",
46
- page_trans_get_rectangular, 0);
47
-
48
- rbg_define_method(RG_TARGET_NAMESPACE, "set_type", page_trans_set_type, 1);
49
- rbg_define_method(RG_TARGET_NAMESPACE, "set_alignment",
50
- page_trans_set_alignment, 1);
51
- rbg_define_method(RG_TARGET_NAMESPACE, "set_direction",
52
- page_trans_set_direction, 1);
53
- rbg_define_method(RG_TARGET_NAMESPACE, "set_duration",
54
- page_trans_set_duration, 1);
55
- rbg_define_method(RG_TARGET_NAMESPACE, "set_angle", page_trans_set_angle, 1);
56
- rbg_define_method(RG_TARGET_NAMESPACE, "set_scale", page_trans_set_scale, 1);
57
- rbg_define_method(RG_TARGET_NAMESPACE, "set_rectangular",
58
- page_trans_set_rectangular, 1);
59
- }
@@ -1,322 +0,0 @@
1
- /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
- /*
3
- * Copyright (C) 2011 Ruby-GNOME2 Project Team
4
- * Copyright (C) 2006-2008 Ruby-GNOME2 Project Team
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 "rbpoppler-private.h"
23
-
24
- #define RG_TARGET_NAMESPACE cPage
25
- #define SELF(self) (RVAL2POPPLERPAGE(self))
26
-
27
- static VALUE cRectangle;
28
- static VALUE cPSFile;
29
-
30
- static VALUE
31
- page_render(VALUE self, VALUE cairo)
32
- {
33
- poppler_page_render(SELF(self), RVAL2CRCONTEXT(cairo));
34
- return Qnil;
35
- }
36
-
37
- static VALUE
38
- page_render_to_ps(VALUE self, VALUE ps_file)
39
- {
40
- poppler_page_render_to_ps(SELF(self), RVAL2POPPLERPSFILE(ps_file));
41
- return Qnil;
42
- }
43
-
44
- static VALUE
45
- rg_render(VALUE self, VALUE ps_file_or_cairo)
46
- {
47
- if (RVAL2CBOOL(rb_obj_is_kind_of(ps_file_or_cairo, cPSFile))) {
48
- return page_render_to_ps(self, ps_file_or_cairo);
49
- } else {
50
- return page_render(self, ps_file_or_cairo);
51
- }
52
- }
53
-
54
- static VALUE
55
- page_render_for_printing(VALUE self, VALUE cairo)
56
- {
57
- poppler_page_render_for_printing(SELF(self), RVAL2CRCONTEXT(cairo));
58
- return Qnil;
59
- }
60
-
61
- static VALUE
62
- rg_render_for_printing(VALUE self, VALUE cairo)
63
- {
64
- return page_render_for_printing(self, cairo);
65
- }
66
-
67
- static VALUE
68
- page_render_selection(VALUE self, VALUE cairo,
69
- VALUE selection, VALUE rb_old_selection,
70
- VALUE style, VALUE glyph_color, VALUE background_color)
71
- {
72
- PopplerRectangle *old_selection = NULL;
73
-
74
- if (!NIL_P(rb_old_selection))
75
- old_selection = RVAL2POPPLERRECTANGLE(rb_old_selection);
76
- poppler_page_render_selection(SELF(self), RVAL2CRCONTEXT(cairo),
77
- RVAL2POPPLERRECTANGLE(selection),
78
- old_selection,
79
- RVAL2POPPLERSELECTIONSTYLE(style),
80
- RVAL2POPPLERCOLOR(glyph_color),
81
- RVAL2POPPLERCOLOR(background_color));
82
- return Qnil;
83
- }
84
-
85
- static VALUE
86
- rg_render_selection(VALUE self,
87
- VALUE cairo, VALUE selection, VALUE old_selection,
88
- VALUE style, VALUE glyph_color, VALUE background_color)
89
- {
90
- return page_render_selection(self, cairo, selection, old_selection,
91
- style, glyph_color, background_color);
92
- }
93
-
94
- static VALUE
95
- rg_size(VALUE self)
96
- {
97
- double width, height;
98
- poppler_page_get_size(SELF(self), &width, &height);
99
- return rb_ary_new3(2, rb_float_new(width), rb_float_new(height));
100
- }
101
-
102
- static VALUE
103
- rg_index(VALUE self)
104
- {
105
- return INT2NUM(poppler_page_get_index(SELF(self)));
106
- }
107
-
108
- static VALUE
109
- rg_duration(VALUE self)
110
- {
111
- return rb_float_new(poppler_page_get_duration(SELF(self)));
112
- }
113
-
114
- static VALUE
115
- rg_transition(VALUE self)
116
- {
117
- return POPPLERPAGETRANSITION2RVAL(poppler_page_get_transition(SELF(self)));
118
- }
119
-
120
- static VALUE
121
- rg_thumbnail(VALUE self)
122
- {
123
- return CRSURFACE2RVAL(poppler_page_get_thumbnail(SELF(self)));
124
- }
125
-
126
- static VALUE
127
- rg_thumbnail_size(VALUE self)
128
- {
129
- int width, height;
130
-
131
- if (poppler_page_get_thumbnail_size(SELF(self), &width, &height))
132
- return rb_ary_new3(2, INT2NUM(width), INT2NUM(height));
133
- else
134
- return Qnil;
135
- }
136
-
137
- static VALUE
138
- rg_find_text(VALUE self, VALUE text)
139
- {
140
- return GLIST2ARY2F(poppler_page_find_text(SELF(self), RVAL2CSTR(text)),
141
- POPPLER_TYPE_RECTANGLE);
142
- }
143
-
144
- static VALUE
145
- rg_get_text(int argc, VALUE *argv, VALUE self)
146
- {
147
- gchar *text;
148
- PopplerSelectionStyle style = POPPLER_SELECTION_GLYPH;
149
- VALUE rb_text, arg1, arg2, rb_rect;
150
- PopplerPage *page;
151
-
152
- rb_scan_args(argc, argv, "02", &arg1, &arg2);
153
-
154
- page = SELF(self);
155
- rb_rect = Qnil;
156
- if (!NIL_P(arg1)) {
157
- if (RTEST(rb_obj_is_kind_of(arg1, cRectangle))) {
158
- rb_rect = arg1;
159
- } else {
160
- rb_raise(rb_eArgError, "wrong first arrument. selection rectangle is expected.");
161
- }
162
-
163
- if (!NIL_P(arg2)) {
164
- style = RVAL2POPPLERSELECTIONSTYLE(arg2);
165
- }
166
- }
167
-
168
- if (NIL_P(rb_rect)) {
169
- #if POPPLER_CHECK_VERSION(0, 15, 0)
170
- text = poppler_page_get_text(page);
171
- #else
172
- PopplerRectangle rect;
173
- double width, height;
174
-
175
- rect.x1 = 0;
176
- rect.y1 = 0;
177
- poppler_page_get_size(page, &width, &height);
178
- rect.x2 = width;
179
- rect.y2 = height;
180
- text = poppler_page_get_text(page,
181
- style,
182
- &rect);
183
- #endif
184
- } else {
185
- PopplerRectangle *rect;
186
-
187
- rect = RVAL2POPPLERRECTANGLE(rb_rect);
188
- #if POPPLER_CHECK_VERSION(0, 15, 0)
189
- text = poppler_page_get_selected_text(page, style, rect);
190
- #else
191
- text = poppler_page_get_text(page, style, rect);
192
- #endif
193
- }
194
-
195
- rb_text = CSTR2RVAL(text);
196
- g_free(text);
197
- return rb_text;
198
- }
199
-
200
- #if POPPLER_CHECK_VERSION(0, 16, 0)
201
- static VALUE
202
- rg_text_layout(VALUE self)
203
- {
204
- PopplerRectangle *rectangles;
205
- guint n_rectangles;
206
-
207
- if (poppler_page_get_text_layout(SELF(self), &rectangles, &n_rectangles)) {
208
- VALUE rb_rectangles;
209
- guint i;
210
-
211
- rb_rectangles = rb_ary_new2(n_rectangles);
212
- for (i = 0; i < n_rectangles; i++) {
213
- rb_ary_push(rb_rectangles,
214
- POPPLERRECTANGLE2RVAL(&(rectangles[i])));
215
- }
216
- g_free(rectangles);
217
-
218
- return rb_rectangles;
219
- } else {
220
- return Qnil;
221
- }
222
- }
223
- #endif
224
-
225
- static VALUE
226
- rg_get_selection_region(VALUE self, VALUE scale, VALUE style, VALUE selection)
227
- {
228
- return GLIST2ARY2F(poppler_page_get_selection_region(SELF(self),
229
- NUM2DBL(scale),
230
- RVAL2POPPLERSELECTIONSTYLE(style),
231
- RVAL2POPPLERRECTANGLE(selection)),
232
- POPPLER_TYPE_RECTANGLE);
233
- }
234
-
235
- static VALUE
236
- rg_link_mapping(VALUE self)
237
- {
238
- return GLIST2ARY2F(poppler_page_get_link_mapping(SELF(self)),
239
- POPPLER_TYPE_LINK_MAPPING);
240
- }
241
-
242
- static VALUE
243
- rg_image_mapping(VALUE self)
244
- {
245
- VALUE mappings;
246
- GList *image_mapping, *node;
247
-
248
- mappings = rb_ary_new();
249
- image_mapping = poppler_page_get_image_mapping(SELF(self));
250
- for (node = image_mapping; node; node = g_list_next(node)) {
251
- PopplerImageMapping *image_mapping;
252
- VALUE mapping;
253
-
254
- image_mapping = node->data;
255
- mapping = POPPLERIMAGEMAPPING2RVAL(image_mapping);
256
- rb_iv_set(mapping, "@page", self);
257
- }
258
- poppler_page_free_image_mapping(image_mapping);
259
-
260
- return mappings;
261
- }
262
-
263
- static VALUE
264
- rg_get_image(VALUE self, VALUE image_id)
265
- {
266
- return CRSURFACE2RVAL(poppler_page_get_image(SELF(self), NUM2INT(image_id)));
267
- }
268
-
269
- static VALUE
270
- rg_form_field_mapping(VALUE self)
271
- {
272
- return GLIST2ARY2F(poppler_page_get_form_field_mapping(SELF(self)),
273
- POPPLER_TYPE_FORM_FIELD_MAPPING);
274
- }
275
-
276
- static VALUE
277
- rg_annotation_mapping(VALUE self)
278
- {
279
- return GLIST2ARY2F(poppler_page_get_annot_mapping(SELF(self)),
280
- POPPLER_TYPE_ANNOT_MAPPING);
281
- }
282
-
283
- static VALUE
284
- rg_crop_box(VALUE self)
285
- {
286
- PopplerRectangle rect;
287
-
288
- poppler_page_get_crop_box(SELF(self), &rect);
289
- return POPPLERRECTANGLE2RVAL(&rect);
290
- }
291
-
292
- void
293
- Init_poppler_page(VALUE mPoppler)
294
- {
295
- VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(POPPLER_TYPE_PAGE, "Page", mPoppler);
296
- cRectangle = rb_const_get(mPoppler, rb_intern("Rectangle"));
297
- cPSFile = rb_const_get(mPoppler, rb_intern("PSFile"));
298
-
299
- RG_DEF_METHOD(render, 1);
300
- RG_DEF_METHOD(render_for_printing, 1);
301
- RG_DEF_METHOD(size, 0);
302
- RG_DEF_METHOD(index, 0);
303
- RG_DEF_METHOD(duration, 0);
304
- RG_DEF_METHOD(transition, 0);
305
-
306
- RG_DEF_METHOD(thumbnail, 0);
307
- RG_DEF_METHOD(thumbnail_size, 0);
308
- RG_DEF_METHOD(find_text, 1);
309
- RG_DEF_METHOD(get_text, -1);
310
- #if POPPLER_CHECK_VERSION(0, 16, 0)
311
- RG_DEF_METHOD(text_layout, 0);
312
- #endif
313
- RG_DEF_METHOD(get_selection_region, 3);
314
- RG_DEF_METHOD(link_mapping, 0);
315
- RG_DEF_METHOD(image_mapping, 0);
316
- RG_DEF_METHOD(get_image, 1);
317
-
318
- RG_DEF_METHOD(form_field_mapping, 0);
319
- RG_DEF_METHOD(annotation_mapping, 0);
320
- RG_DEF_METHOD(render_selection, 6);
321
- RG_DEF_METHOD(crop_box, 0);
322
- }
@@ -1,77 +0,0 @@
1
- #ifndef __RBPOPPLER_PRIVATE_H__
2
- #define __RBPOPPLER_PRIVATE_H__
3
-
4
- #include "rbpoppler.h"
5
-
6
- #define RVAL2GDKPIXBUF(o) (GDK_PIXBUF(RVAL2GOBJ(o)))
7
-
8
- G_GNUC_INTERNAL void Init_poppler_index_iter(VALUE mPoppler);
9
- G_GNUC_INTERNAL void Init_poppler_font_info(VALUE mPoppler);
10
- G_GNUC_INTERNAL void Init_poppler_document(VALUE mPoppler);
11
- G_GNUC_INTERNAL void Init_poppler_fonts_iter(VALUE mPoppler);
12
- G_GNUC_INTERNAL void Init_poppler_ps_file(VALUE mPoppler);
13
- G_GNUC_INTERNAL void Init_poppler_rectangle(VALUE mPoppler);
14
- G_GNUC_INTERNAL void Init_poppler_page(VALUE mPoppler);
15
- G_GNUC_INTERNAL void Init_poppler_color(VALUE mPoppler);
16
- G_GNUC_INTERNAL void Init_poppler_link_mapping(VALUE mPoppler);
17
- G_GNUC_INTERNAL void Init_poppler_page_transition(VALUE mPoppler);
18
- G_GNUC_INTERNAL void Init_poppler_image_mapping(VALUE mPoppler);
19
- G_GNUC_INTERNAL void Init_poppler_form_field_mapping(VALUE mPoppler);
20
- G_GNUC_INTERNAL void Init_poppler_annotation_mapping(VALUE mPoppler);
21
- G_GNUC_INTERNAL void Init_poppler_attachment(VALUE mPoppler);
22
- G_GNUC_INTERNAL void Init_poppler_action(VALUE mPoppler);
23
- G_GNUC_INTERNAL void Init_poppler_annotation(VALUE mPoppler);
24
- G_GNUC_INTERNAL void Init_poppler_annotation_markup(VALUE mPoppler);
25
- G_GNUC_INTERNAL void Init_poppler_annotation_text(VALUE mPoppler);
26
- G_GNUC_INTERNAL void Init_poppler_annotation_free_text(VALUE mPoppler);
27
- G_GNUC_INTERNAL void Init_poppler_annotation_callout_line(VALUE mPoppler);
28
- G_GNUC_INTERNAL void Init_poppler_form_field(VALUE mPoppler);
29
- G_GNUC_INTERNAL void Init_poppler_button_field(VALUE mPoppler, VALUE cFormField);
30
- G_GNUC_INTERNAL void Init_poppler_text_field(VALUE mPoppler, VALUE cFormField);
31
- G_GNUC_INTERNAL void Init_poppler_choice_field(VALUE mPoppler, VALUE cFormField);
32
-
33
- G_GNUC_INTERNAL void rectangle_set(PopplerRectangle *rect, VALUE rb_rect);
34
-
35
- #define RECT_ENTITY2RVAL(rect) POPPLERRECTANGLE2RVAL(&(rect))
36
- #define RECT_ENTITY_SET(rect, rb_rect) rectangle_set(&(rect), rb_rect)
37
-
38
- #define DEF_READER(prefix, name, member, self_to_c, member_to_rb) \
39
- static VALUE \
40
- prefix ## _get_ ## name(VALUE self) \
41
- { \
42
- return member_to_rb((self_to_c(self))->member); \
43
- }
44
-
45
- #define DEF_WRITER(prefix, name, member, self_to_c, value_to_c) \
46
- static VALUE \
47
- prefix ## _set_ ## name(VALUE self, VALUE value) \
48
- { \
49
- (self_to_c(self))->member = value_to_c(value); \
50
- return Qnil; \
51
- }
52
-
53
- #define DEF_WRITER_WITH_SETTER(prefix, name, member, \
54
- self_to_c, value_setter) \
55
- static VALUE \
56
- prefix ## _set_ ## name(VALUE self, VALUE value) \
57
- { \
58
- value_setter((self_to_c(self))->member, value); \
59
- return Qnil; \
60
- }
61
-
62
- #define DEF_ACCESSOR(prefix, member, self_to_c, member_to_rb, value_to_c) \
63
- DEF_READER(prefix, member, member, self_to_c, member_to_rb) \
64
- DEF_WRITER(prefix, member, member, self_to_c, value_to_c) \
65
-
66
- #define DEF_ACCESSOR_WITH_SETTER(prefix, member, self_to_c, \
67
- member_to_rb, value_setter) \
68
- DEF_READER(prefix, member, member, self_to_c, member_to_rb) \
69
- DEF_WRITER_WITH_SETTER(prefix, member, member, self_to_c, value_setter)
70
-
71
- #define DEF_ACCESSOR_WITH_NAME(prefix, name, member, self_to_c, \
72
- member_to_rb, value_to_c) \
73
- DEF_READER(prefix, name, member, self_to_c, member_to_rb) \
74
- DEF_WRITER(prefix, name, member, self_to_c, value_to_c)
75
-
76
-
77
- #endif