poppler 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,58 @@
1
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
+ /*
3
+ * Copyright (C) 2011 Ruby-GNOME2 Project Team
4
+ * Copyright (C) 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 cButtonField
25
+ #define _SELF(obj) RVAL2POPPLERFORMFIELD(obj)
26
+
27
+ static VALUE RG_TARGET_NAMESPACE;
28
+
29
+ static VALUE
30
+ rg_type(VALUE self)
31
+ {
32
+ return POPPLERFORMBUTTONTYPE2RVAL(poppler_form_field_button_get_button_type(_SELF(self)));
33
+ }
34
+
35
+ static VALUE
36
+ rg_active_p(VALUE self)
37
+ {
38
+ return CBOOL2RVAL(poppler_form_field_button_get_state(_SELF(self)));
39
+ }
40
+
41
+ static VALUE
42
+ rg_set_active(VALUE self, VALUE state)
43
+ {
44
+ poppler_form_field_button_set_state(_SELF(self), RVAL2CBOOL(state));
45
+ return Qnil;
46
+ }
47
+
48
+ void
49
+ Init_poppler_button_field(VALUE mPoppler, VALUE cFormField)
50
+ {
51
+ RG_TARGET_NAMESPACE = rb_define_class_under(mPoppler, "ButtonField", cFormField);
52
+
53
+ RG_DEF_METHOD(type, 0);
54
+ RG_DEF_METHOD_P(active, 0);
55
+ RG_DEF_METHOD(set_active, 1);
56
+
57
+ G_DEF_SETTERS(RG_TARGET_NAMESPACE);
58
+ }
@@ -0,0 +1,133 @@
1
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
+ /*
3
+ * Copyright (C) 2011 Ruby-GNOME2 Project Team
4
+ * Copyright (C) 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 cChoiceField
25
+ #define _SELF(obj) RVAL2POPPLERFORMFIELD(obj)
26
+
27
+ static VALUE RG_TARGET_NAMESPACE;
28
+
29
+ static VALUE
30
+ rg_type(VALUE self)
31
+ {
32
+ return POPPLERFORMCHOICETYPE2RVAL(poppler_form_field_choice_get_choice_type(_SELF(self)));
33
+ }
34
+
35
+ static VALUE
36
+ rg_editable_p(VALUE self)
37
+ {
38
+ return CBOOL2RVAL(poppler_form_field_choice_is_editable(_SELF(self)));
39
+ }
40
+
41
+ static VALUE
42
+ rg_select_multiple_p(VALUE self)
43
+ {
44
+ return CBOOL2RVAL(poppler_form_field_choice_can_select_multiple(_SELF(self)));
45
+ }
46
+
47
+ static VALUE
48
+ rg_spell_check_p(VALUE self)
49
+ {
50
+ return CBOOL2RVAL(poppler_form_field_choice_do_spell_check(_SELF(self)));
51
+ }
52
+
53
+ static VALUE
54
+ rg_commit_on_change_p(VALUE self)
55
+ {
56
+ return CBOOL2RVAL(poppler_form_field_choice_commit_on_change(_SELF(self)));
57
+ }
58
+
59
+ static VALUE
60
+ rg_n_items(VALUE self)
61
+ {
62
+ return INT2NUM(poppler_form_field_choice_get_n_items(_SELF(self)));
63
+ }
64
+
65
+ static VALUE
66
+ rg_operator_choice_field_get_item(VALUE self, VALUE index)
67
+ {
68
+ return CSTR2RVAL(poppler_form_field_choice_get_item(_SELF(self),
69
+ NUM2INT(index)));
70
+ }
71
+
72
+ static VALUE
73
+ rg_selected_p(VALUE self, VALUE index)
74
+ {
75
+ return CBOOL2RVAL(poppler_form_field_choice_is_item_selected(_SELF(self),
76
+ NUM2INT(index)));
77
+ }
78
+
79
+ static VALUE
80
+ rg_select(VALUE self, VALUE index)
81
+ {
82
+ poppler_form_field_choice_select_item(_SELF(self), NUM2INT(index));
83
+ return Qnil;
84
+ }
85
+
86
+ static VALUE
87
+ rg_unselect_all(VALUE self)
88
+ {
89
+ poppler_form_field_choice_unselect_all(_SELF(self));
90
+ return Qnil;
91
+ }
92
+
93
+ static VALUE
94
+ rg_toggle(VALUE self, VALUE index)
95
+ {
96
+ poppler_form_field_choice_toggle_item(_SELF(self), NUM2INT(index));
97
+ return Qnil;
98
+ }
99
+
100
+ static VALUE
101
+ rg_set_text(VALUE self, VALUE text)
102
+ {
103
+ poppler_form_field_choice_set_text(_SELF(self), RVAL2CSTR_ACCEPT_NIL(text));
104
+ return Qnil;
105
+ }
106
+
107
+ static VALUE
108
+ rg_text(VALUE self)
109
+ {
110
+ return CSTR2RVAL(poppler_form_field_choice_get_text(_SELF(self)));
111
+ }
112
+
113
+ void
114
+ Init_poppler_choice_field(VALUE mPoppler, VALUE cFormField)
115
+ {
116
+ RG_TARGET_NAMESPACE = rb_define_class_under(mPoppler, "ChoiceField", cFormField);
117
+
118
+ RG_DEF_METHOD(type, 0);
119
+ RG_DEF_METHOD_P(editable, 0);
120
+ RG_DEF_METHOD_P(select_multiple, 0);
121
+ RG_DEF_METHOD_P(spell_check, 0);
122
+ RG_DEF_METHOD_P(commit_on_change, 0);
123
+ RG_DEF_METHOD(n_items, 0);
124
+ RG_DEF_METHOD_OPERATOR("[]", choice_field_get_item, 1);
125
+ RG_DEF_METHOD_P(selected, 1);
126
+ RG_DEF_METHOD(select, 1);
127
+ RG_DEF_METHOD(unselect_all, 0);
128
+ RG_DEF_METHOD(toggle, 1);
129
+ RG_DEF_METHOD(text, 0);
130
+ RG_DEF_METHOD(set_text, 1);
131
+
132
+ G_DEF_SETTERS(RG_TARGET_NAMESPACE);
133
+ }
@@ -0,0 +1,122 @@
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 rb_cPopplerColor
25
+
26
+ #ifdef POPPLER_TYPE_COLOR
27
+ VALUE RG_TARGET_NAMESPACE;
28
+
29
+ PopplerColor *
30
+ rb_poppler_ruby_object_to_color(VALUE color)
31
+ {
32
+ #ifdef POPPLER_WITH_GDK
33
+ if (RTEST(rb_obj_is_kind_of(color, rb_cGdkColor))) {
34
+ GdkColor *gdk_color;
35
+
36
+ gdk_color = RVAL2GDKCOLOR(color);
37
+ color = rb_funcall(RG_TARGET_NAMESPACE, rb_intern("new"),
38
+ 3,
39
+ UINT2NUM(gdk_color->red),
40
+ UINT2NUM(gdk_color->green),
41
+ UINT2NUM(gdk_color->blue));
42
+ }
43
+ #endif
44
+
45
+ return RVAL2BOXED(color, POPPLER_TYPE_COLOR);
46
+ }
47
+
48
+ VALUE
49
+ rb_poppler_ruby_object_from_color_with_free(PopplerColor *color)
50
+ {
51
+ VALUE rb_color;
52
+
53
+ rb_color = POPPLERCOLOR2RVAL(color);
54
+ g_free(color);
55
+ return rb_color;
56
+ }
57
+
58
+ static VALUE
59
+ rg_initialize(VALUE self, VALUE red, VALUE green, VALUE blue)
60
+ {
61
+ PopplerColor color;
62
+
63
+ color.red = NUM2UINT(red);
64
+ color.green = NUM2UINT(green);
65
+ color.blue = NUM2UINT(blue);
66
+
67
+ G_INITIALIZE(self, &color);
68
+ return Qnil;
69
+ }
70
+
71
+ DEF_ACCESSOR(color, red, RVAL2POPPLERCOLOR, UINT2NUM, NUM2UINT)
72
+ DEF_ACCESSOR(color, green, RVAL2POPPLERCOLOR, UINT2NUM, NUM2UINT)
73
+ DEF_ACCESSOR(color, blue, RVAL2POPPLERCOLOR, UINT2NUM, NUM2UINT)
74
+
75
+ static VALUE
76
+ rg_to_a(VALUE self)
77
+ {
78
+ PopplerColor *color;
79
+ color = RVAL2POPPLERCOLOR(self);
80
+ return rb_ary_new3(3,
81
+ UINT2NUM(color->red),
82
+ UINT2NUM(color->green),
83
+ UINT2NUM(color->blue));
84
+ }
85
+
86
+ static VALUE
87
+ rg_inspect(VALUE self)
88
+ {
89
+ VALUE inspected;
90
+ gchar *rgb;
91
+ PopplerColor *color;
92
+
93
+ color = RVAL2POPPLERCOLOR(self);
94
+ inspected = rb_call_super(0, NULL);
95
+ rb_str_resize(inspected, RSTRING_LEN(inspected) - 1);
96
+ rgb = g_strdup_printf(": [%u, %u, %u]>",
97
+ color->red, color->green, color->blue);
98
+ rb_str_cat2(inspected, rgb);
99
+ g_free(rgb);
100
+ return inspected;
101
+ }
102
+ #endif
103
+
104
+ void
105
+ Init_poppler_color(VALUE mPoppler)
106
+ {
107
+ #ifdef POPPLER_TYPE_COLOR
108
+ RG_TARGET_NAMESPACE = G_DEF_CLASS(POPPLER_TYPE_COLOR, "Color", mPoppler);
109
+
110
+ RG_DEF_METHOD(initialize, 3);
111
+ rb_define_method(RG_TARGET_NAMESPACE, "red", color_get_red, 0);
112
+ rb_define_method(RG_TARGET_NAMESPACE, "green", color_get_green, 0);
113
+ rb_define_method(RG_TARGET_NAMESPACE, "blue", color_get_blue, 0);
114
+ rb_define_method(RG_TARGET_NAMESPACE, "set_red", color_set_red, 1);
115
+ rb_define_method(RG_TARGET_NAMESPACE, "set_green", color_set_green, 1);
116
+ rb_define_method(RG_TARGET_NAMESPACE, "set_blue", color_set_blue, 1);
117
+ RG_DEF_METHOD(to_a, 0);
118
+ RG_DEF_METHOD(inspect, 0);
119
+
120
+ G_DEF_SETTERS(RG_TARGET_NAMESPACE);
121
+ #endif
122
+ }
@@ -1,31 +1,34 @@
1
1
  /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
- /**********************************************************************
3
-
4
- rbpoppler-document.c -
5
-
6
- $Author: ktou $
7
- $Date: 2007/10/13 05:56:39 $
8
-
9
- Copyright (C) 2006 Ruby-GNOME2 Project Team
10
-
11
- **********************************************************************/
12
-
13
- #include "rbpoppler.h"
14
-
15
- #define RVAL2DOC(obj) (POPPLER_DOCUMENT(RVAL2GOBJ(obj)))
16
-
17
- #define IITER2RVAL(obj) (BOXED2RVAL(obj, POPPLER_TYPE_INDEX_ITER))
18
- #define RVAL2IITER(obj) (RVAL2BOXED(obj, POPPLER_TYPE_INDEX_ITER))
19
- #define FITER2RVAL(obj) (BOXED2RVAL(obj, POPPLER_TYPE_FONTS_ITER))
20
- #define RVAL2FITER(obj) (RVAL2BOXED(obj, POPPLER_TYPE_FONTS_ITER))
21
-
22
- static ID id_new, id_valid, id_pdf_data_p, id_ensure_uri;
2
+ /*
3
+ * Copyright (C) 2011 Ruby-GNOME2 Project Team
4
+ * Copyright (C) 2006 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 cDocument
25
+
26
+ static ID id_new, id_pdf_data_p, id_ensure_uri;
23
27
  static VALUE cIndexIter;
24
28
  static VALUE cFontInfo;
25
29
 
26
-
27
30
  static VALUE
28
- doc_initialize(int argc, VALUE *argv, VALUE self)
31
+ rg_initialize(int argc, VALUE *argv, VALUE self)
29
32
  {
30
33
  PopplerDocument *document = NULL;
31
34
  GError *error = NULL;
@@ -34,7 +37,7 @@ doc_initialize(int argc, VALUE *argv, VALUE self)
34
37
 
35
38
  rb_scan_args(argc, argv, "11", &uri_or_data, &rb_password);
36
39
 
37
- password = NIL_P(rb_password) ? NULL : RVAL2CSTR(rb_password);
40
+ password = RVAL2CSTR_ACCEPT_NIL(rb_password);
38
41
 
39
42
  if (RVAL2CBOOL(rb_funcall(self, id_pdf_data_p, 1, uri_or_data))) {
40
43
  document = poppler_document_new_from_data(RSTRING_PTR(uri_or_data),
@@ -56,13 +59,13 @@ doc_initialize(int argc, VALUE *argv, VALUE self)
56
59
  }
57
60
 
58
61
  static VALUE
59
- doc_save(VALUE self, VALUE uri)
62
+ rg_save(VALUE self, VALUE uri)
60
63
  {
61
64
  gboolean result;
62
65
  GError *error = NULL;
63
66
 
64
67
  uri = rb_funcall(self, id_ensure_uri, 1, uri);
65
- result = poppler_document_save(RVAL2DOC(self), RVAL2CSTR(uri), &error);
68
+ result = poppler_document_save(RVAL2POPPLERDOCUMENT(self), RVAL2CSTR(uri), &error);
66
69
 
67
70
  if (error)
68
71
  RAISE_GERROR(error);
@@ -71,14 +74,14 @@ doc_save(VALUE self, VALUE uri)
71
74
  }
72
75
 
73
76
  static VALUE
74
- doc_save_a_copy(VALUE self, VALUE uri)
77
+ rg_save_a_copy(VALUE self, VALUE uri)
75
78
  {
76
79
  gboolean result;
77
80
  GError *error = NULL;
78
81
 
79
82
  uri = rb_funcall(self, id_ensure_uri, 1, uri);
80
- result = poppler_document_save_a_copy(RVAL2DOC(self), RVAL2CSTR(uri),
81
- &error);
83
+ result = poppler_document_save_a_copy(RVAL2POPPLERDOCUMENT(self), RVAL2CSTR(uri),
84
+ &error);
82
85
 
83
86
  if (error)
84
87
  RAISE_GERROR(error);
@@ -87,22 +90,22 @@ doc_save_a_copy(VALUE self, VALUE uri)
87
90
  }
88
91
 
89
92
  static VALUE
90
- doc_get_n_pages(VALUE self)
93
+ rg_n_pages(VALUE self)
91
94
  {
92
- return INT2NUM(poppler_document_get_n_pages(RVAL2DOC(self)));
95
+ return INT2NUM(poppler_document_get_n_pages(RVAL2POPPLERDOCUMENT(self)));
93
96
  }
94
97
 
95
98
  static VALUE
96
- doc_get_page(VALUE self, VALUE index_or_label)
99
+ rg_get_page(VALUE self, VALUE index_or_label)
97
100
  {
98
101
  VALUE rb_page;
99
102
  PopplerPage *page;
100
103
 
101
104
  if (RVAL2CBOOL(rb_obj_is_kind_of(index_or_label, rb_cInteger))) {
102
- page = poppler_document_get_page(RVAL2DOC(self),
105
+ page = poppler_document_get_page(RVAL2POPPLERDOCUMENT(self),
103
106
  NUM2INT(index_or_label));
104
107
  } else if (RVAL2CBOOL(rb_obj_is_kind_of(index_or_label, rb_cString))) {
105
- page = poppler_document_get_page_by_label(RVAL2DOC(self),
108
+ page = poppler_document_get_page_by_label(RVAL2POPPLERDOCUMENT(self),
106
109
  RVAL2CSTR(index_or_label));
107
110
  } else {
108
111
  VALUE inspect;
@@ -118,38 +121,39 @@ doc_get_page(VALUE self, VALUE index_or_label)
118
121
  }
119
122
 
120
123
  static VALUE
121
- doc_has_attachments(VALUE self)
124
+ rg_has_attachments_p(VALUE self)
122
125
  {
123
- return CBOOL2RVAL(poppler_document_has_attachments(RVAL2DOC(self)));
126
+ return CBOOL2RVAL(poppler_document_has_attachments(RVAL2POPPLERDOCUMENT(self)));
124
127
  }
125
128
 
126
129
  static VALUE
127
- doc_get_attachments(VALUE self)
130
+ rg_attachments(VALUE self)
128
131
  {
129
- return GLIST2ARYF(poppler_document_get_attachments(RVAL2DOC(self)));
132
+ return GLIST2ARYF(poppler_document_get_attachments(RVAL2POPPLERDOCUMENT(self)));
130
133
  }
131
134
 
132
135
  static VALUE
133
- doc_find_dest(VALUE self, VALUE link_name)
136
+ rg_find_dest(VALUE self, VALUE link_name)
134
137
  {
135
- return GOBJ2RVAL(poppler_document_find_dest(RVAL2DOC(self),
136
- RVAL2CSTR(link_name)));
138
+ PopplerDest *dest;
139
+ dest = poppler_document_find_dest(RVAL2POPPLERDOCUMENT(self), RVAL2CSTR(link_name));
140
+ return POPPLERDEST2RVAL(dest);
137
141
  }
138
142
 
139
143
  static VALUE
140
- doc_get_form_field(VALUE self, VALUE id)
144
+ rg_get_form_field(VALUE self, VALUE id)
141
145
  {
142
- return GOBJ2RVAL(poppler_document_get_form_field(RVAL2DOC(self),
146
+ return GOBJ2RVAL(poppler_document_get_form_field(RVAL2POPPLERDOCUMENT(self),
143
147
  NUM2INT(id)));
144
148
  }
145
149
 
146
150
  static VALUE
147
- doc_each(VALUE self)
151
+ rg_each(VALUE self)
148
152
  {
149
153
  PopplerDocument *document;
150
154
  int i, n_pages;
151
155
 
152
- document = RVAL2DOC(self);
156
+ document = RVAL2POPPLERDOCUMENT(self);
153
157
  n_pages = poppler_document_get_n_pages(document);
154
158
  for (i = 0; i < n_pages; i++) {
155
159
  PopplerPage *page;
@@ -165,251 +169,29 @@ doc_each(VALUE self)
165
169
  }
166
170
 
167
171
  static VALUE
168
- doc_get_index_iter(VALUE self)
172
+ rg_index_iter(VALUE self)
169
173
  {
170
174
  return rb_funcall(cIndexIter, id_new, 1, self);
171
175
  }
172
176
 
173
177
  static VALUE
174
- doc_get_font_info(VALUE self)
178
+ rg_font_info(VALUE self)
175
179
  {
176
180
  return rb_funcall(cFontInfo, id_new, 1, self);
177
181
  }
178
182
 
179
-
180
-
181
- /* Interface for getting the Index of a poppler_document */
182
- #define CHECK_IITER_IS_VALID(iter) do { \
183
- if (!RVAL2CBOOL(index_iter_valid_p(iter))) \
184
- return Qnil; \
185
- } while (0)
186
-
187
- static VALUE
188
- index_iter_valid_p(VALUE self)
189
- {
190
- return rb_ivar_get(self, id_valid);
191
- }
192
-
193
- static VALUE
194
- index_iter_initialize(VALUE self, VALUE document)
195
- {
196
- PopplerIndexIter *iter;
197
- iter = poppler_index_iter_new(RVAL2GOBJ(document));
198
- G_INITIALIZE(self, iter);
199
- poppler_index_iter_free(iter);
200
- rb_ivar_set(self, id_valid, CBOOL2RVAL(iter));
201
- return Qnil;
202
- }
203
-
204
- static VALUE
205
- index_iter_get_child(VALUE self)
206
- {
207
- PopplerIndexIter *child;
208
- VALUE rb_child;
209
-
210
- CHECK_IITER_IS_VALID(self);
211
- child = poppler_index_iter_get_child(RVAL2IITER(self));
212
- rb_child = IITER2RVAL(child);
213
- poppler_index_iter_free(child);
214
- return rb_child;
215
- }
216
-
217
- static VALUE
218
- index_iter_is_open(VALUE self)
219
- {
220
- CHECK_IITER_IS_VALID(self);
221
- return CBOOL2RVAL(poppler_index_iter_is_open(RVAL2IITER(self)));
222
- }
223
-
224
- #ifndef HAVE_TYPE_POPPLERACTIONANY
225
- static VALUE
226
- index_iter_get_action(VALUE self)
227
- {
228
- CHECK_IITER_IS_VALID(self);
229
- return POPPLER_ACTION2RVAL(poppler_index_iter_get_action(RVAL2IITER(self)));
230
- }
231
- #endif
232
-
233
- static VALUE
234
- index_iter_next(VALUE self)
235
- {
236
- if (poppler_index_iter_next(RVAL2IITER(self))) {
237
- return Qtrue;
238
- } else {
239
- rb_ivar_set(self, id_valid, Qfalse);
240
- return Qfalse;
241
- }
242
- }
243
-
244
- static VALUE
245
- index_iter_each(VALUE self)
246
- {
247
- PopplerIndexIter *iter;
248
-
249
- CHECK_IITER_IS_VALID(self);
250
- iter = RVAL2IITER(self);
251
- do {
252
- rb_yield(self);
253
- } while (poppler_index_iter_next(iter));
254
- rb_ivar_set(self, id_valid, Qfalse);
255
-
256
- return self;
257
- }
258
-
259
-
260
- #if POPPLER_CHECK_VERSION(0, 6, 0)
261
-
262
- static VALUE
263
- font_info_initialize(VALUE self, VALUE document)
264
- {
265
- G_INITIALIZE(self, poppler_font_info_new(RVAL2GOBJ(document)));
266
- return Qnil;
267
- }
268
-
269
- static VALUE
270
- font_info_scan(VALUE self, VALUE n_pages)
271
- {
272
- VALUE rb_iter = Qnil;
273
- PopplerFontsIter *iter;
274
-
275
- if (poppler_font_info_scan(RVAL2GOBJ(self), NUM2INT(n_pages), &iter)) {
276
- rb_iter = FITER2RVAL(iter);
277
- rb_ivar_set(rb_iter, id_valid, Qtrue);
278
- poppler_fonts_iter_free(iter);
279
- }
280
- return rb_iter;
281
- }
282
- #endif
283
-
284
-
285
- #define CHECK_FITER_IS_VALID(iter) do { \
286
- if (!RVAL2CBOOL(fonts_iter_valid_p(iter))) \
287
- return Qnil; \
288
- } while (0)
289
-
290
- static VALUE
291
- fonts_iter_valid_p(VALUE self)
292
- {
293
- return rb_ivar_get(self, id_valid);
294
- }
295
-
296
- static VALUE
297
- fonts_iter_get_name(VALUE self)
298
- {
299
- CHECK_FITER_IS_VALID(self);
300
- return CSTR2RVAL(poppler_fonts_iter_get_name(RVAL2FITER(self)));
301
- }
302
-
303
- static VALUE
304
- fonts_iter_get_full_name(VALUE self)
305
- {
306
- CHECK_FITER_IS_VALID(self);
307
- return CSTR2RVAL(poppler_fonts_iter_get_full_name(RVAL2FITER(self)));
308
- }
309
-
310
- static VALUE
311
- fonts_iter_get_file_name(VALUE self)
312
- {
313
- CHECK_FITER_IS_VALID(self);
314
- return CSTR2RVAL(poppler_fonts_iter_get_file_name(RVAL2FITER(self)));
315
- }
316
-
317
- static VALUE
318
- fonts_iter_get_font_type(VALUE self)
319
- {
320
- CHECK_FITER_IS_VALID(self);
321
- return GENUM2RVAL(poppler_fonts_iter_get_font_type(RVAL2FITER(self)),
322
- POPPLER_TYPE_FONT_TYPE);
323
- }
324
-
325
- static VALUE
326
- fonts_iter_is_embedded(VALUE self)
327
- {
328
- CHECK_FITER_IS_VALID(self);
329
- return CBOOL2RVAL(poppler_fonts_iter_is_embedded(RVAL2FITER(self)));
330
- }
331
-
332
- static VALUE
333
- fonts_iter_is_subset(VALUE self)
334
- {
335
- CHECK_FITER_IS_VALID(self);
336
- return CBOOL2RVAL(poppler_fonts_iter_is_subset(RVAL2FITER(self)));
337
- }
338
-
339
- static VALUE
340
- fonts_iter_next(VALUE self)
341
- {
342
- if (poppler_fonts_iter_next(RVAL2FITER(self))) {
343
- return Qtrue;
344
- } else {
345
- rb_ivar_set(self, id_valid, Qfalse);
346
- return Qfalse;
347
- }
348
- }
349
-
350
- static VALUE
351
- fonts_iter_each(VALUE self)
352
- {
353
- PopplerFontsIter *iter;
354
-
355
- CHECK_FITER_IS_VALID(self);
356
- iter = RVAL2FITER(self);
357
- do {
358
- rb_yield(self);
359
- } while (poppler_fonts_iter_next(iter));
360
- rb_ivar_set(self, id_valid, Qfalse);
361
-
362
- return self;
363
- }
364
-
365
-
366
- /* Export to ps */
367
- static VALUE
368
- ps_file_initialize(VALUE self, VALUE document, VALUE filename,
369
- VALUE first_page, VALUE n_pages)
370
- {
371
- PopplerPSFile *ps_file;
372
-
373
- ps_file = poppler_ps_file_new(RVAL2GOBJ(document), RVAL2CSTR(filename),
374
- NUM2INT(first_page), NUM2INT(n_pages));
375
-
376
- if (!ps_file)
377
- rb_raise(rb_eRuntimeError, "can't create Poppler::PSFile");
378
-
379
- G_INITIALIZE(self, ps_file);
380
- return Qnil;
381
- }
382
-
383
- static VALUE
384
- ps_file_set_paper_size(VALUE self, VALUE width, VALUE height)
385
- {
386
- poppler_ps_file_set_paper_size(RVAL2GOBJ(self),
387
- NUM2DBL(width), NUM2DBL(height));
388
- return Qnil;
389
- }
390
-
391
- static VALUE
392
- ps_file_set_duplex(VALUE self, VALUE duplex)
393
- {
394
- poppler_ps_file_set_duplex(RVAL2GOBJ(self), RVAL2CBOOL(duplex));
395
- return Qnil;
396
- }
397
-
398
183
  void
399
184
  Init_poppler_document(VALUE mPoppler)
400
185
  {
401
- VALUE cDocument, cFontsIter, cPSFile;
186
+ VALUE RG_TARGET_NAMESPACE;
187
+ cIndexIter = rb_const_get(mPoppler, rb_intern("IndexIter"));
188
+ cFontInfo = rb_const_get(mPoppler, rb_intern("FontInfo"));
402
189
 
403
190
  id_new = rb_intern("new");
404
- id_valid = rb_intern("valid?");
405
191
  id_pdf_data_p = rb_intern("pdf_data?");
406
192
  id_ensure_uri = rb_intern("ensure_uri");
407
193
 
408
- cDocument = G_DEF_CLASS(POPPLER_TYPE_DOCUMENT, "Document", mPoppler);
409
- cIndexIter = G_DEF_CLASS(POPPLER_TYPE_INDEX_ITER, "IndexIter", mPoppler);
410
- cFontInfo = G_DEF_CLASS(POPPLER_TYPE_FONT_INFO, "FontInfo", mPoppler);
411
- cFontsIter = G_DEF_CLASS(POPPLER_TYPE_FONTS_ITER, "FontsIter", mPoppler);
412
- cPSFile = G_DEF_CLASS(POPPLER_TYPE_PS_FILE, "PSFile", mPoppler);
194
+ RG_TARGET_NAMESPACE = G_DEF_CLASS(POPPLER_TYPE_DOCUMENT, "Document", mPoppler);
413
195
 
414
196
  G_DEF_CLASS(POPPLER_TYPE_PAGE_LAYOUT, "PageLayout", mPoppler);
415
197
  G_DEF_CLASS(POPPLER_TYPE_PAGE_MODE, "PageMode", mPoppler);
@@ -417,76 +199,28 @@ Init_poppler_document(VALUE mPoppler)
417
199
  G_DEF_CLASS(POPPLER_TYPE_VIEWER_PREFERENCES, "ViewerPreferences", mPoppler);
418
200
  G_DEF_CLASS(POPPLER_TYPE_PERMISSIONS, "Permissions", mPoppler);
419
201
 
420
- rb_include_module(cDocument, rb_mEnumerable);
421
-
422
- rb_define_method(cDocument, "initialize", doc_initialize, -1);
423
- rb_define_method(cDocument, "save", doc_save, 1);
424
- rb_define_method(cDocument, "save_a_copy", doc_save_a_copy, 1);
425
- rb_define_method(cDocument, "n_pages", doc_get_n_pages, 0);
426
- rb_define_alias(cDocument, "size", "n_pages");
427
- rb_define_method(cDocument, "get_page", doc_get_page, 1);
428
- rb_define_alias(cDocument, "[]", "get_page");
429
- rb_define_method(cDocument, "has_attachments?", doc_has_attachments, 0);
430
- rb_define_alias(cDocument, "have_attachments?", "has_attachments?");
431
- rb_define_method(cDocument, "attachments", doc_get_attachments, 0);
432
- rb_define_method(cDocument, "find_dest", doc_find_dest, 1);
433
- rb_define_alias(cDocument, "get_destination", "find_dest");
434
-
435
- rb_define_method(cDocument, "get_form_field", doc_get_form_field, 1);
436
-
437
- rb_define_method(cDocument, "each", doc_each, 0);
438
- rb_define_alias(cDocument, "pages", "to_a");
439
-
440
- rb_define_method(cDocument, "index_iter", doc_get_index_iter, 0);
441
- rb_define_method(cDocument, "font_info", doc_get_font_info, 0);
442
-
443
- G_DEF_SETTERS(cDocument);
444
-
445
-
446
- /* Interface for getting the Index of a poppler_document */
447
- rb_include_module(cIndexIter, rb_mEnumerable);
448
-
449
- rb_define_method(cIndexIter, "initialize", index_iter_initialize, 1);
450
- rb_define_method(cIndexIter, "child", index_iter_get_child, 0);
451
- rb_define_method(cIndexIter, "open?", index_iter_is_open, 0);
452
- #ifndef HAVE_TYPE_POPPLERACTIONANY
453
- rb_define_method(cIndexIter, "action", index_iter_get_action, 0);
454
- #endif
455
- rb_define_method(cIndexIter, "next", index_iter_next, 0);
456
-
457
- rb_define_method(cIndexIter, "valid?", index_iter_valid_p, 0);
458
- rb_define_method(cIndexIter, "each", index_iter_each, 0);
459
-
460
- G_DEF_SETTERS(cIndexIter);
461
-
462
-
463
- #if POPPLER_CHECK_VERSION(0, 6, 0)
464
- rb_define_method(cFontInfo, "initialize", font_info_initialize, 1);
465
- rb_define_method(cFontInfo, "scan", font_info_scan, 1);
466
- G_DEF_SETTERS(cFontInfo);
467
- #endif
468
-
469
- rb_include_module(cFontsIter, rb_mEnumerable);
202
+ rb_include_module(RG_TARGET_NAMESPACE, rb_mEnumerable);
470
203
 
471
- rb_define_method(cFontsIter, "name", fonts_iter_get_name, 0);
472
- rb_define_method(cFontsIter, "full_name", fonts_iter_get_full_name, 0);
473
- #if POPPLER_CHECK_VERSION(0, 6, 0)
474
- rb_define_method(cFontsIter, "file_name", fonts_iter_get_file_name, 0);
475
- #endif
476
- rb_define_method(cFontsIter, "font_type", fonts_iter_get_font_type, 0);
477
- rb_define_method(cFontsIter, "embedded?", fonts_iter_is_embedded, 0);
478
- rb_define_method(cFontsIter, "subset?", fonts_iter_is_subset, 0);
479
- rb_define_method(cFontsIter, "next", fonts_iter_next, 0);
204
+ RG_DEF_METHOD(initialize, -1);
205
+ RG_DEF_METHOD(save, 1);
206
+ RG_DEF_METHOD(save_a_copy, 1);
207
+ RG_DEF_METHOD(n_pages, 0);
208
+ RG_DEF_ALIAS("size", "n_pages");
209
+ RG_DEF_METHOD(get_page, 1);
210
+ RG_DEF_ALIAS("[]", "get_page");
211
+ RG_DEF_METHOD_P(has_attachments, 0);
212
+ RG_DEF_ALIAS("have_attachments?", "has_attachments?");
213
+ RG_DEF_METHOD(attachments, 0);
214
+ RG_DEF_METHOD(find_dest, 1);
215
+ RG_DEF_ALIAS("get_destination", "find_dest");
480
216
 
481
- rb_define_method(cFontsIter, "valid?", fonts_iter_valid_p, 0);
482
- rb_define_method(cFontsIter, "each", fonts_iter_each, 0);
217
+ RG_DEF_METHOD(get_form_field, 1);
483
218
 
484
- G_DEF_SETTERS(cFontsIter);
219
+ RG_DEF_METHOD(each, 0);
220
+ RG_DEF_ALIAS("pages", "to_a");
485
221
 
486
- /* Export to ps */
487
- rb_define_method(cPSFile, "initialize", ps_file_initialize, 4);
488
- rb_define_method(cPSFile, "set_paper_size", ps_file_set_paper_size, 2);
489
- rb_define_method(cPSFile, "set_duplex", ps_file_set_duplex, 1);
222
+ RG_DEF_METHOD(index_iter, 0);
223
+ RG_DEF_METHOD(font_info, 0);
490
224
 
491
- G_DEF_SETTERS(cPSFile);
225
+ G_DEF_SETTERS(RG_TARGET_NAMESPACE);
492
226
  }