diff options
author | Peter Alfredsen <loki_val@gentoo.org> | 2008-06-04 07:15:08 +0000 |
---|---|---|
committer | Peter Alfredsen <loki_val@gentoo.org> | 2008-06-04 07:15:08 +0000 |
commit | 3283f2b379e9fe3a6dbf4c7bd2549bdb4ac0d88a (patch) | |
tree | eb6eb5dd214befc36452d820ddf0ff60de977504 /dev-ruby | |
parent | Adding ~hppa back in (doh! needed a full tree updated) (diff) | |
download | historical-3283f2b379e9fe3a6dbf4c7bd2549bdb4ac0d88a.tar.gz historical-3283f2b379e9fe3a6dbf4c7bd2549bdb4ac0d88a.tar.bz2 historical-3283f2b379e9fe3a6dbf4c7bd2549bdb4ac0d88a.zip |
Blah
Diffstat (limited to 'dev-ruby')
-rw-r--r-- | dev-ruby/ruby-poppler/Manifest | 2 | ||||
-rw-r--r-- | dev-ruby/ruby-poppler/files/ruby-poppler-0.16.0-poppler-0.6.patch | 1592 | ||||
-rw-r--r-- | dev-ruby/ruby-poppler/files/ruby-poppler-0.16.0-poppler-0.7.patch | 251 |
3 files changed, 1 insertions, 1844 deletions
diff --git a/dev-ruby/ruby-poppler/Manifest b/dev-ruby/ruby-poppler/Manifest index 8eede5de4ccf..f24910593b9f 100644 --- a/dev-ruby/ruby-poppler/Manifest +++ b/dev-ruby/ruby-poppler/Manifest @@ -1,4 +1,4 @@ -AUX ruby-poppler-0.16.0-poppler-0.6.patch 54268 RMD160 fe4129a4fb068f78a77c1e33f05695f992f3a333 SHA1 031e1350c669e383c1adb1fdfe05b0e33626ad4e SHA256 bd8e1628ef275463ee4fe75a8f0cc0ebad6a24cc91d427b6a76a54b969bda828 +AUX ruby-poppler-0.16.0-poppler-0.6.patch 54248 RMD160 44ba5a95f9028ef1693b7a1bcc18482b8d844b2f SHA1 fad127d68fc80552c36cebe2430e70ae77cf8436 SHA256 c01e469541f784775ebc81d2b7a6d8f721ae5f07756ec1a1efa8ebfe278441f1 AUX ruby-poppler-0.16.0-poppler-0.7.patch 9487 RMD160 28f842831257f7ff86e7918221479e379061e78d SHA1 01a21e01379159220a16abc8595edd31e496ac78 SHA256 56713e732fea216d726e922c4564a32c21ca490c7ff8586ffbe7f1cf958e8520 DIST ruby-gnome2-all-0.16.0.tar.gz 1208856 RMD160 c83c7cdcf633ad5cc213180f641a6c8f18002a9c SHA1 488f6c1f139060e005f336c9c854c4dc5b3e6b7c SHA256 0910f08c5224bc39aad66c46b506e5c97e260475ede6b427d5365a9ef2d69ad4 EBUILD ruby-poppler-0.16.0-r1.ebuild 705 RMD160 c45cd1a02c7dc026b1b6c3c3ca00ce4fb5ac205d SHA1 e940a835ec4f0f6a9bc2e9ea1d07a93e7ce89637 SHA256 d72b9e2aa59a15d1bf921316e37f243c6adb851fe4cbf7fb79a5c4465363d099 diff --git a/dev-ruby/ruby-poppler/files/ruby-poppler-0.16.0-poppler-0.6.patch b/dev-ruby/ruby-poppler/files/ruby-poppler-0.16.0-poppler-0.6.patch deleted file mode 100644 index e0b741a4a309..000000000000 --- a/dev-ruby/ruby-poppler/files/ruby-poppler-0.16.0-poppler-0.6.patch +++ /dev/null @@ -1,1592 +0,0 @@ -Index: ruby-gnome2/poppler/sample/pdf2svg.rb -=================================================================== ---- ruby-gnome2/poppler/sample/pdf2svg.rb (révision 0) -+++ ruby-gnome2/poppler/sample/pdf2svg.rb (révision 2723) -@@ -0,0 +1,26 @@ -+#!/usr/bin/env ruby -+ -+require "poppler" -+ -+if ARGV.size < 1 -+ puts "usage: #{$0} input.pdf" -+ exit(-1) -+end -+ -+input, = ARGV -+ -+output = input.sub(/\..+$/, ".svg") -+output = "#{output}.svg" if input == output -+ -+doc = Poppler::Document.new(input) -+ -+width, height = doc.pages[0].size -+Cairo::SVGSurface.new(output, width, height) do |surface| -+ surface.restrict_to_version("1_2") -+ -+ context = Cairo::Context.new(surface) -+ doc.each do |page| -+ page.render(context) -+ context.show_page -+ end -+end - -Modification de propriétés sur ruby-gnome2/poppler/sample/pdf2svg.rb -___________________________________________________________________ -Nom : svn:executable - + * - -Index: ruby-gnome2/poppler/sample/pdf2text.rb -=================================================================== ---- ruby-gnome2/poppler/sample/pdf2text.rb (révision 2347) -+++ ruby-gnome2/poppler/sample/pdf2text.rb (copie de travail) -@@ -12,7 +12,5 @@ - - doc = Poppler::Document.new(input_uri) - doc.each do |page| -- width, height = page.size -- rectangle = Poppler::Rectangle.new(0, 0, width, height) -- puts page.get_text(rectangle) -+ puts page.get_text - end -Index: ruby-gnome2/poppler/sample/pdf2.rb -=================================================================== ---- ruby-gnome2/poppler/sample/pdf2.rb (révision 2347) -+++ ruby-gnome2/poppler/sample/pdf2.rb (copie de travail) -@@ -9,7 +9,6 @@ - end - - input, output, scale, rotate = ARGV --input_uri = "file://#{File.expand_path(input)}" - scale = (scale || 1.0).to_f - rotate = (rotate || 0).to_i % 360 - -@@ -95,9 +94,9 @@ - - if Poppler.cairo_available? - puts "using cairo..." -- pixbuf = to_pixbuf_with_cairo(input_uri, scale, rotate) -+ pixbuf = to_pixbuf_with_cairo(input, scale, rotate) - else -- pixbuf = to_pixbuf(input_uri, scale, rotate) -+ pixbuf = to_pixbuf(input, scale, rotate) - end - - if pixbuf.nil? -Index: ruby-gnome2/poppler/ChangeLog -=================================================================== ---- ruby-gnome2/poppler/ChangeLog (révision 2347) -+++ ruby-gnome2/poppler/ChangeLog (copie de travail) -@@ -1,3 +1,95 @@ -+2007-11-11 Kouhei Sutou <kou@cozmixng.org> -+ -+ * README: updated supported poppler-glib version: 0.5.2 - 0.6.2. -+ -+2007-10-20 Kouhei Sutou <kou@cozmixng.org> -+ -+ * sample/pdf2.rb: removed needless filename -> URI conversion. -+ -+ * sample/pdf2svg.rb: added a new example that convert PDF to SVG. -+ -+2007-10-13 Kouhei Sutou <kou@cozmixng.org> -+ -+ * src/: used POPPLER_CHECK_VERSION(0, 6, 0) not -+ POPPLER_CHECK_VERSION(0, 5, 9). -+ -+ * README: updated supported poppler-glib version: 0.5.2 - 0.6.1. -+ -+ * src/rbpoppler-document.c: -+ - used RVAL2DOC() not RVAL2GOBJ(). -+ - supported 0.6.0. -+ -+ * src/rbpoppler-attachment.c: supported 0.6.0. -+ -+2007-09-09 Kouhei Sutou <kou@cozmixng.org> -+ -+ * src/rbpoppler-page.c: supported 0.6.0. Bug 1790607. -+ -+2007-07-27 Kouhei Sutou <kou@cozmixng.org> -+ -+ * src/rbpoppler.h, src/rbpoppler-page.c: worked with poppler < -+ 0.5.9 again. -+ -+ * src/rbpoppler-document.c: used POPPLER_CHECK_VERSION(0, 5, 9) -+ instead of HAVE_POPPLER_FONT_INFO because my patch is accepted by -+ upstream. -+ -+ * src/rbpoppler.c, src/rbpoppler-page.c: don't show -+ poppler_form_field_get_field_type(). -+ -+ * src/lib/poppler.rb, src/rbpoppler.h, src/rbpoppler-page.c: -+ followed the recent poppler form API changes but not tested -+ because I don't have a PDF with form... -+ -+2007-07-13 Guillaume Cottenceau -+ -+ * src/rbpoppler-document.c, src/rbpoppler-page.c: replace RTEST -+ uses by RVAL2CBOOL -+ -+2007-07-13 Guillaume Cottenceau -+ -+ * src/rbpoppler-document.c: "? Qtrue : QFalse" => CBOOL2RVAL -+ cleanup -+ -+2007-06-23 Kouhei Sutou <kou@cozmixng.org> -+ -+ * src/rbpoppler.h, src/rbpoppler-page.c: followed new functions -+ and types in poppler-page.h. But this is not enough. We need more -+ works. -+ -+ * src/rbpoppler-document.c, src/lib/poppler.rb: supported -+ Poppler::Document.new(pdf_data). -+ -+ * src/rbpoppler.h (SELSTYLE2RVAL, RVAL2SELSTYLE): added. -+ -+ * src/rbpoppler-page.c: followed API changes of -+ poppler_page_render_selection() family at 0.5.9. -+ -+ * src/rbpoppler.c: added enum types appeared at 0.5.9. -+ -+ * src/rbpoppler-action.c, src/rbpoppler-document.c: removed -+ needless variables. -+ -+2007-04-07 Kouhei Sutou <kou@cozmixng.org> -+ -+ * src/rbpoppler-document.c (Poppler::Document#size): added a -+ convenient alias of Poppler::Document#n_pages. -+ -+ * src/rbpoppler-document.c (doc_initialize): accepted not only URI -+ but also file name. -+ -+ * src/lib/poppler.rb (Poppler::Document#ensure_uri): added. -+ -+2007-03-29 Kouhei Sutou <kou@cozmixng.org> -+ -+ * src/rbpoppler-document.c: added a convenient alias: -+ Poppler::Document#pages. -+ -+ * sample/pdf2text.rb: used default value. -+ -+ * src/rbpoppler-page.c (page_get_text): used page size rectangle -+ as default value. -+ - 2006-09-06 Kouhei Sutou <kou@cozmixng.org> - - * src/rbpoppler-action.c: -Index: ruby-gnome2/poppler/src/rbpoppler-page.c -=================================================================== ---- ruby-gnome2/poppler/src/rbpoppler-page.c (révision 2347) -+++ ruby-gnome2/poppler/src/rbpoppler-page.c (copie de travail) -@@ -4,7 +4,7 @@ - rbpoppler-page.c - - - $Author: ktou $ -- $Date: 2006/09/06 02:25:35 $ -+ $Date: 2007/10/13 05:56:39 $ - - Copyright (C) 2006 Ruby-GNOME2 Project Team - -@@ -12,16 +12,39 @@ - - #include "rbpoppler.h" - -+#define SELF(self) (POPPLER_PAGE(RVAL2GOBJ(self))) - #define RVAL2LM(obj) ((PopplerLinkMapping *)RVAL2BOXED(obj, POPPLER_TYPE_LINK_MAPPING)) -+#define RVAL2IM(obj) ((PopplerImageMapping *)RVAL2BOXED(obj, POPPLER_TYPE_IMAGE_MAPPING)) -+#define RVAL2FFM(obj) ((PopplerFormFieldMapping *)RVAL2BOXED(obj, POPPLER_TYPE_FORM_FIELD_MAPPING)) -+#define RVAL2FF(obj) (POPPLER_FORM_FIELD(RVAL2GOBJ(obj))) -+#define RVAL2TF(obj) RVAL2FF(obj) -+#define RVAL2BF(obj) RVAL2FF(obj) -+#define RVAL2CF(obj) RVAL2FF(obj) - --static VALUE cPSFile; -+#define TT2RVAL(obj) (GENUM2RVAL(obj, POPPLER_TYPE_PAGE_TRANSITION_TYPE)) -+#define RVAL2TT(obj) (RVAL2GENUM(obj, POPPLER_TYPE_PAGE_TRANSITION_TYPE)) -+#define TA2RVAL(obj) (GENUM2RVAL(obj, POPPLER_TYPE_PAGE_TRANSITION_ALIGNMENT)) -+#define RVAL2TA(obj) (RVAL2GENUM(obj, POPPLER_TYPE_PAGE_TRANSITION_ALIGNMENT)) -+#define TD2RVAL(obj) (GENUM2RVAL(obj, POPPLER_TYPE_PAGE_TRANSITION_DIRECTION)) -+#define RVAL2TD(obj) (RVAL2GENUM(obj, POPPLER_TYPE_PAGE_TRANSITION_DIRECTION)) -+#define FFT2RVAL(obj) (GENUM2RVAL(obj, POPPLER_TYPE_FORM_FIELD_TYPE)) -+#define RVAL2FFT(obj) (RVAL2GENUM(obj, POPPLER_TYPE_FORM_FIELD_TYPE)) -+#define FBT2RVAL(obj) (GENUM2RVAL(obj, POPPLER_TYPE_FORM_BUTTON_TYPE)) -+#define FTT2RVAL(obj) (GENUM2RVAL(obj, POPPLER_TYPE_FORM_TEXT_TYPE)) -+#define FCT2RVAL(obj) (GENUM2RVAL(obj, POPPLER_TYPE_FORM_CHOICE_TYPE)) - -+static VALUE cPSFile, cRectangle; -+ -+#if POPPLER_CHECK_VERSION(0, 6, 0) -+VALUE cUnknownField, cTextField, cButtonField, cChoiceField, cSignatureField; -+#endif -+ - static VALUE - page_render_to_pixbuf(VALUE self, VALUE src_x, VALUE src_y, VALUE src_width, - VALUE src_height, VALUE scale, VALUE rotation, - VALUE pixbuf) - { -- poppler_page_render_to_pixbuf(RVAL2GOBJ(self), NUM2INT(src_x), -+ poppler_page_render_to_pixbuf(SELF(self), NUM2INT(src_x), - NUM2INT(src_y), NUM2INT(src_width), - NUM2INT(src_height), NUM2DBL(scale), - NUM2INT(rotation), RVAL2GOBJ(pixbuf)); -@@ -32,7 +55,7 @@ - static VALUE - page_render(VALUE self, VALUE cairo) - { -- poppler_page_render(RVAL2GOBJ(self), RVAL2CRCONTEXT(cairo)); -+ poppler_page_render(SELF(self), RVAL2CRCONTEXT(cairo)); - return Qnil; - } - #endif -@@ -40,7 +63,7 @@ - static VALUE - page_render_to_ps(VALUE self, VALUE ps_file) - { -- poppler_page_render_to_ps(RVAL2GOBJ(self), RVAL2GOBJ(ps_file)); -+ poppler_page_render_to_ps(SELF(self), RVAL2GOBJ(ps_file)); - return Qnil; - } - -@@ -48,7 +71,7 @@ - page_render_generic(int argc, VALUE *argv, VALUE self) - { - if (argc == 1) { -- if (RTEST(rb_obj_is_kind_of(argv[0], cPSFile))) { -+ if (RVAL2CBOOL(rb_obj_is_kind_of(argv[0], cPSFile))) { - return page_render_to_ps(self, argv[0]); - } else { - #ifdef RB_POPPLER_CAIRO_AVAILABLE -@@ -70,20 +93,34 @@ - page_get_size(VALUE self) - { - double width, height; -- poppler_page_get_size(RVAL2GOBJ(self), &width, &height); -+ poppler_page_get_size(SELF(self), &width, &height); - return rb_ary_new3(2, rb_float_new(width), rb_float_new(height)); - } - - static VALUE - page_get_index(VALUE self) - { -- return INT2NUM(poppler_page_get_index(RVAL2GOBJ(self))); -+ return INT2NUM(poppler_page_get_index(SELF(self))); - } - -+#if POPPLER_CHECK_VERSION(0, 6, 0) - static VALUE -+page_get_duration(VALUE self) -+{ -+ return rb_float_new(poppler_page_get_duration(SELF(self))); -+} -+ -+static VALUE -+page_get_transition(VALUE self) -+{ -+ return TRANS2RVAL(poppler_page_get_transition(SELF(self))); -+} -+#endif -+ -+static VALUE - page_get_thumbnail(VALUE self) - { -- return GOBJ2RVAL(poppler_page_get_thumbnail(RVAL2GOBJ(self))); -+ return GOBJ2RVAL(poppler_page_get_thumbnail(SELF(self))); - } - - static VALUE -@@ -91,7 +128,7 @@ - { - int width, height; - -- if (poppler_page_get_thumbnail_size(RVAL2GOBJ(self), &width, &height)) -+ if (poppler_page_get_thumbnail_size(SELF(self), &width, &height)) - return rb_ary_new3(2, INT2NUM(width), INT2NUM(height)); - else - return Qnil; -@@ -100,17 +137,60 @@ - static VALUE - page_find_text(VALUE self, VALUE text) - { -- return GLIST2ARY2F(poppler_page_find_text(RVAL2GOBJ(self), RVAL2CSTR(text)), -+ return GLIST2ARY2F(poppler_page_find_text(SELF(self), RVAL2CSTR(text)), - POPPLER_TYPE_RECTANGLE); - } - - static VALUE --page_get_text(VALUE self, VALUE rect) -+page_get_text(int argc, VALUE *argv, VALUE self) - { - gchar *text; -- VALUE rb_text; -+#if POPPLER_CHECK_VERSION(0, 6, 0) -+ PopplerSelectionStyle style = POPPLER_SELECTION_GLYPH; -+#endif -+ VALUE rb_text, arg1, arg2, rb_rect; -+ PopplerPage *page; - -- text = poppler_page_get_text(RVAL2GOBJ(self), RVAL2RECT(rect)); -+ rb_scan_args(argc, argv, "02", &arg1, &arg2); -+ -+ page = SELF(self); -+ if (NIL_P(arg1)) { -+ rb_rect = arg2; -+ } else { -+ if (RTEST(rb_obj_is_kind_of(arg2, cRectangle))) { -+ rb_rect = arg2; -+ } else { -+ rb_rect = Qnil; -+#if POPPLER_CHECK_VERSION(0, 6, 0) -+ if (!NIL_P(arg2)) { -+ style = RVAL2SELSTYLE(arg2); -+ } -+#endif -+ } -+ } -+ -+ if (NIL_P(rb_rect)) { -+ PopplerRectangle rect; -+ double width, height; -+ -+ rect.x1 = 0; -+ rect.y1 = 0; -+ poppler_page_get_size(page, &width, &height); -+ rect.x2 = width; -+ rect.y2 = height; -+ text = poppler_page_get_text(page, -+#if POPPLER_CHECK_VERSION(0, 6, 0) -+ style, -+#endif -+ &rect); -+ } else { -+ text = poppler_page_get_text(page, -+#if POPPLER_CHECK_VERSION(0, 6, 0) -+ style, -+#endif -+ RVAL2RECT(rb_rect)); -+ } -+ - rb_text = CSTR2RVAL(text); - g_free(text); - return rb_text; -@@ -119,15 +199,50 @@ - static VALUE - page_get_link_mapping(VALUE self) - { -- return GLIST2ARY2F(poppler_page_get_link_mapping(RVAL2GOBJ(self)), -+ return GLIST2ARY2F(poppler_page_get_link_mapping(SELF(self)), - POPPLER_TYPE_LINK_MAPPING); - } - -+#if POPPLER_CHECK_VERSION(0, 6, 0) - static VALUE --page_get_selection_region(VALUE self, VALUE scale, VALUE selection) -+page_get_image_mapping(VALUE self) - { -- return REGION2RVAL(poppler_page_get_selection_region(RVAL2GOBJ(self), -+ return GLIST2ARY2F(poppler_page_get_image_mapping(SELF(self)), -+ POPPLER_TYPE_IMAGE_MAPPING); -+} -+ -+static VALUE -+page_get_form_field_mapping(VALUE self) -+{ -+ return GLIST2ARY2F(poppler_page_get_form_field_mapping(SELF(self)), -+ POPPLER_TYPE_FORM_FIELD_MAPPING); -+} -+#endif -+ -+static VALUE -+page_get_selection_region(int argc, VALUE *argv, VALUE self) -+{ -+#if POPPLER_CHECK_VERSION(0, 6, 0) -+ PopplerSelectionStyle style = POPPLER_SELECTION_GLYPH; -+#endif -+ VALUE arg2, arg3, scale, selection; -+ -+ rb_scan_args(argc, argv, "21", &scale, &arg2, &arg3); -+ -+ if (NIL_P(arg3)) { -+ selection = arg2; -+ } else { -+#if POPPLER_CHECK_VERSION(0, 6, 0) -+ style = RVAL2SELSTYLE(arg2); -+#endif -+ selection = arg3; -+ } -+ -+ return REGION2RVAL(poppler_page_get_selection_region(SELF(self), - NUM2DBL(scale), -+#if POPPLER_CHECK_VERSION(0, 6, 0) -+ style, -+#endif - RVAL2RECT(selection))); - } - -@@ -136,15 +251,16 @@ - static VALUE - page_render_selection(VALUE self, VALUE cairo, - VALUE selection, VALUE rb_old_selection, -- VALUE glyph_color, VALUE background_color) -+ VALUE style, VALUE glyph_color, VALUE background_color) - { - PopplerRectangle *old_selection = NULL; - - if (!NIL_P(rb_old_selection)) - old_selection = RVAL2RECT(rb_old_selection); -- poppler_page_render_selection(RVAL2GOBJ(self), RVAL2CRCONTEXT(cairo), -+ poppler_page_render_selection(SELF(self), RVAL2CRCONTEXT(cairo), - RVAL2RECT(selection), - old_selection, -+ RVAL2SELSTYLE(style), - RVAL2COLOR(glyph_color), - RVAL2COLOR(background_color)); - return Qnil; -@@ -159,17 +275,24 @@ - page_render_selection_to_pixbuf(VALUE self, VALUE scale, VALUE rotation, - VALUE pixbuf, VALUE selection, - VALUE rb_old_selection, -+#ifdef HAVE_POPPLER_PAGE_RENDER_SELECTION_TO_PIXBUF -+ VALUE style, -+#endif - VALUE glyph_color, VALUE background_color) - { - PopplerRectangle *old_selection = NULL; - - if (!NIL_P(rb_old_selection)) - old_selection = RVAL2RECT(rb_old_selection); -- poppler_page_render_selection_to_pixbuf(RVAL2GOBJ(self), NUM2DBL(scale), -+ poppler_page_render_selection_to_pixbuf(SELF(self), -+ NUM2DBL(scale), - NUM2INT(rotation), - RVAL2GOBJ(pixbuf), - RVAL2RECT(selection), - old_selection, -+#ifdef HAVE_POPPLER_PAGE_RENDER_SELECTION_TO_PIXBUF -+ RVAL2SELSTYLE(style), -+#endif - RVAL2COLOR(glyph_color), - RVAL2COLOR(background_color)); - return Qnil; -@@ -178,26 +301,88 @@ - static VALUE - page_render_selection_generic(int argc, VALUE *argv, VALUE self) - { -- if (argc == 5) { -+ if (argc == 6) { - #if defined(RB_POPPLER_CAIRO_AVAILABLE) && \ - defined(HAVE_POPPLER_PAGE_RENDER_SELECTION_TO_PIXBUF) - return page_render_selection(self, argv[0], argv[1], argv[2], -- argv[3], argv[4]); -+ argv[3], argv[4], argv[5]); - #else - rb_raise(rb_eArgError, "cairo is not available"); - #endif -+#ifdef HAVE_POPPLER_PAGE_RENDER_SELECTION_TO_PIXBUF -+ } else if (argc == 8) { -+ return page_render_selection_to_pixbuf(self, argv[0], argv[1], -+ argv[2], argv[3], argv[4], -+ argv[5], argv[6], argv[7]); -+#else - } else if (argc == 7) { - return page_render_selection_to_pixbuf(self, argv[0], argv[1], - argv[2], argv[3], argv[4], - argv[5], argv[6]); -+#endif - } else { - rb_raise(rb_eArgError, -- "wrong number of arguments (%d for 5 or 7)", argc); -+ "wrong number of arguments (%d for 5 or %d)", argc, -+#ifdef HAVE_POPPLER_PAGE_RENDER_SELECTION_TO_PIXBUF -+ 8 -+#else -+ 7 -+#endif -+ ); - } - } - -+#if POPPLER_CHECK_VERSION(0, 6, 0) -+static VALUE -+page_get_crop_box(VALUE self) -+{ -+ PopplerRectangle rect; - -+ poppler_page_get_crop_box(SELF(self), &rect); -+ return RECT2RVAL(&rect); -+} -+#endif -+ - -+#define DEF_READER(prefix, name, member, self_to_c, member_to_rb) \ -+static VALUE \ -+prefix ## _get_ ## name(VALUE self) \ -+{ \ -+ return member_to_rb((self_to_c(self))->member); \ -+} -+ -+#define DEF_WRITER(prefix, name, member, self_to_c, value_to_c) \ -+static VALUE \ -+prefix ## _set_ ## name(VALUE self, VALUE value) \ -+{ \ -+ (self_to_c(self))->member = value_to_c(value); \ -+ return Qnil; \ -+} -+ -+#define DEF_WRITER_WITH_SETTER(prefix, name, member, \ -+ self_to_c, value_setter) \ -+static VALUE \ -+prefix ## _set_ ## name(VALUE self, VALUE value) \ -+{ \ -+ value_setter((self_to_c(self))->member, value); \ -+ return Qnil; \ -+} -+ -+#define DEF_ACCESSOR(prefix, member, self_to_c, member_to_rb, value_to_c) \ -+ DEF_READER(prefix, member, member, self_to_c, member_to_rb) \ -+ DEF_WRITER(prefix, member, member, self_to_c, value_to_c) \ -+ -+#define DEF_ACCESSOR_WITH_SETTER(prefix, member, self_to_c, \ -+ member_to_rb, value_setter) \ -+ DEF_READER(prefix, member, member, self_to_c, member_to_rb) \ -+ DEF_WRITER_WITH_SETTER(prefix, member, member, self_to_c, value_setter) -+ -+#define DEF_ACCESSOR_WITH_NAME(prefix, name, member, self_to_c, \ -+ member_to_rb, value_to_c) \ -+ DEF_READER(prefix, name, member, self_to_c, member_to_rb) \ -+ DEF_WRITER(prefix, name, member, self_to_c, value_to_c) -+ -+ - /* A rectangle on a page, with coordinates in PDF points. */ - static VALUE - rectangle_initialize(VALUE self, VALUE x1, VALUE y1, VALUE x2, VALUE y2) -@@ -213,107 +398,320 @@ - return Qnil; - } - -+DEF_ACCESSOR(rectangle, x1, RVAL2RECT, rb_float_new, NUM2DBL) -+DEF_ACCESSOR(rectangle, y1, RVAL2RECT, rb_float_new, NUM2DBL) -+DEF_ACCESSOR(rectangle, x2, RVAL2RECT, rb_float_new, NUM2DBL) -+DEF_ACCESSOR(rectangle, y2, RVAL2RECT, rb_float_new, NUM2DBL) -+ - static VALUE --rectangle_get_x1(VALUE self) -+rectangle_to_a(VALUE self) - { -- return rb_float_new(RVAL2RECT(self)->x1); -+ PopplerRectangle *rectangle = RVAL2RECT(self); -+ return rb_ary_new3(4, -+ rb_float_new(rectangle->x1), -+ rb_float_new(rectangle->y1), -+ rb_float_new(rectangle->x2), -+ rb_float_new(rectangle->y2)); - } - --static VALUE --rectangle_get_y1(VALUE self) -+ -+/* Mapping between areas on the current page and PopplerActions */ -+#define RECT_ENTITY2RVAL(rect) RECT2RVAL(&(rect)) -+#define RECT_ENTITY_SET(rect, rb_rect) rectangle_set(&(rect), rb_rect) -+static void -+rectangle_set(PopplerRectangle *rect, VALUE rb_rect) - { -- return rb_float_new(RVAL2RECT(self)->y1); -+ *rect = *(RVAL2RECT(rb_rect)); - } - --static VALUE --rectangle_get_x2(VALUE self) -+DEF_ACCESSOR_WITH_SETTER(link_mapping, area, -+ RVAL2LM, RECT_ENTITY2RVAL, RECT_ENTITY_SET) -+DEF_ACCESSOR(link_mapping, action, RVAL2LM, ACTION2RVAL, RVAL2ACTION) -+ -+#if POPPLER_CHECK_VERSION(0, 6, 0) -+ -+/* Page Transition */ -+DEF_ACCESSOR(page_trans, type, RVAL2TRANS, RVAL2TT, TT2RVAL) -+DEF_ACCESSOR(page_trans, alignment, RVAL2TRANS, RVAL2TA, TA2RVAL) -+DEF_ACCESSOR(page_trans, direction, RVAL2TRANS, RVAL2TD, TD2RVAL) -+DEF_ACCESSOR(page_trans, duration, RVAL2TRANS, NUM2INT, INT2NUM) -+DEF_ACCESSOR(page_trans, angle, RVAL2TRANS, NUM2INT, INT2NUM) -+DEF_ACCESSOR(page_trans, scale, RVAL2TRANS, NUM2DBL, rb_float_new) -+DEF_ACCESSOR(page_trans, rectangular, RVAL2TRANS, RVAL2CBOOL, CBOOL2RVAL) -+ -+ -+/* Mapping between areas on the current page and images */ -+DEF_ACCESSOR_WITH_SETTER(image_mapping, area, -+ RVAL2IM, RECT_ENTITY2RVAL, RECT_ENTITY_SET) -+DEF_ACCESSOR(image_mapping, image, RVAL2IM, GOBJ2RVAL, RVAL2GDK_PIXBUF) -+ -+ -+/* Mapping between areas on the current page and form fields */ -+VALUE -+rb_poppler_ruby_object_from_form_field(PopplerFormField *field) - { -- return rb_float_new(RVAL2RECT(self)->x2); -+ VALUE obj; -+ -+ obj = rbgobj_ruby_object_from_instance2(field, FALSE); -+ if (NIL_P(obj)) { -+ switch (poppler_form_field_get_field_type(field)) { -+ case POPPLER_FORM_FIELD_UNKNOWN: -+ obj = rbgobj_create_object(cUnknownField); -+ break; -+ case POPPLER_FORM_FIELD_BUTTON: -+ obj = rbgobj_create_object(cButtonField); -+ break; -+ case POPPLER_FORM_FIELD_TEXT: -+ obj = rbgobj_create_object(cTextField); -+ break; -+ case POPPLER_FORM_FIELD_CHOICE: -+ obj = rbgobj_create_object(cChoiceField); -+ break; -+ case POPPLER_FORM_FIELD_SIGNATURE: -+ obj = rbgobj_create_object(cSignatureField); -+ break; -+ } -+ g_object_ref(field); -+ G_INITIALIZE(obj, (gpointer)field); -+ } -+ -+ return obj; - } - --static VALUE --rectangle_get_y2(VALUE self) -+DEF_ACCESSOR_WITH_SETTER(form_field_mapping, area, -+ RVAL2FFM, RECT_ENTITY2RVAL, RECT_ENTITY_SET) -+DEF_ACCESSOR(form_field_mapping, field, RVAL2FFM, FF2RVAL, RVAL2FF) -+ -+/* FormField */ -+VALUE -+form_field_get_id(VALUE self) - { -- return rb_float_new(RVAL2RECT(self)->y2); -+ return INT2NUM(poppler_form_field_get_id(RVAL2FF(self))); - } - -+VALUE -+form_field_get_font_size(VALUE self) -+{ -+ return rb_float_new(poppler_form_field_get_font_size(RVAL2FF(self))); -+} - --static VALUE --rectangle_set_x1(VALUE self, VALUE x1) -+VALUE -+form_field_is_read_only(VALUE self) - { -- RVAL2RECT(self)->x1 = NUM2DBL(x1); -+ return CBOOL2RVAL(poppler_form_field_is_read_only(RVAL2FF(self))); -+} -+ -+/* Button Field */ -+VALUE -+button_field_get_button_type(VALUE self) -+{ -+ return FBT2RVAL(poppler_form_field_button_get_button_type(RVAL2FF(self))); -+} -+ -+VALUE -+button_field_get_state(VALUE self) -+{ -+ return CBOOL2RVAL(poppler_form_field_button_get_state(RVAL2BF(self))); -+} -+ -+VALUE -+button_field_set_state(VALUE self, VALUE state) -+{ -+ poppler_form_field_button_set_state(RVAL2BF(self), RVAL2CBOOL(state)); - return Qnil; - } - --static VALUE --rectangle_set_y1(VALUE self, VALUE y1) -+/* Text Field */ -+VALUE -+text_field_get_text_type(VALUE self) - { -- RVAL2RECT(self)->y1 = NUM2DBL(y1); -+ return FTT2RVAL(poppler_form_field_text_get_text_type(RVAL2TF(self))); -+} -+ -+VALUE -+text_field_get_text(VALUE self) -+{ -+ return CSTR2RVAL(poppler_form_field_text_get_text(RVAL2TF(self))); -+} -+ -+VALUE -+text_field_set_text(VALUE self, VALUE text) -+{ -+ poppler_form_field_text_set_text(RVAL2TF(self), RVAL2CSTR2(text)); - return Qnil; - } - --static VALUE --rectangle_set_x2(VALUE self, VALUE x2) -+VALUE -+text_field_get_max_length(VALUE self) - { -- RVAL2RECT(self)->x2 = NUM2DBL(x2); -+ return INT2NUM(poppler_form_field_text_get_max_len(RVAL2TF(self))); -+} -+ -+VALUE -+text_field_do_spell_check(VALUE self) -+{ -+ return CBOOL2RVAL(poppler_form_field_text_do_spell_check(RVAL2TF(self))); -+} -+ -+VALUE -+text_field_do_scroll(VALUE self) -+{ -+ return CBOOL2RVAL(poppler_form_field_text_do_scroll(RVAL2TF(self))); -+} -+ -+VALUE -+text_field_is_rich_text(VALUE self) -+{ -+ return CBOOL2RVAL(poppler_form_field_text_is_rich_text(RVAL2TF(self))); -+} -+ -+VALUE -+text_field_is_password(VALUE self) -+{ -+ return CBOOL2RVAL(poppler_form_field_text_is_password(RVAL2TF(self))); -+} -+ -+ -+/* Choice Field */ -+VALUE -+choice_field_get_choice_type(VALUE self) -+{ -+ return FCT2RVAL(poppler_form_field_choice_get_choice_type(RVAL2CF(self))); -+} -+ -+VALUE -+choice_field_is_editable(VALUE self) -+{ -+ return CBOOL2RVAL(poppler_form_field_choice_is_editable(RVAL2CF(self))); -+} -+ -+VALUE -+choice_field_can_select_multiple(VALUE self) -+{ -+ return CBOOL2RVAL(poppler_form_field_choice_can_select_multiple(RVAL2CF(self))); -+} -+ -+VALUE -+choice_field_do_spell_check(VALUE self) -+{ -+ return CBOOL2RVAL(poppler_form_field_choice_do_spell_check(RVAL2CF(self))); -+} -+ -+VALUE -+choice_field_commit_on_change(VALUE self) -+{ -+ return CBOOL2RVAL(poppler_form_field_choice_commit_on_change(RVAL2CF(self))); -+} -+ -+VALUE -+choice_field_get_n_items(VALUE self) -+{ -+ return INT2NUM(poppler_form_field_choice_get_n_items(RVAL2CF(self))); -+} -+ -+VALUE -+choice_field_get_item(VALUE self, VALUE index) -+{ -+ return CSTR2RVAL(poppler_form_field_choice_get_item(RVAL2CF(self), -+ NUM2INT(index))); -+} -+ -+VALUE -+choice_field_is_item_selected(VALUE self, VALUE index) -+{ -+ return CBOOL2RVAL(poppler_form_field_choice_is_item_selected(RVAL2CF(self), -+ NUM2INT(index))); -+} -+ -+VALUE -+choice_field_select_item(VALUE self, VALUE index) -+{ -+ poppler_form_field_choice_select_item(RVAL2CF(self), NUM2INT(index)); - return Qnil; - } - --static VALUE --rectangle_set_y2(VALUE self, VALUE y2) -+VALUE -+choice_field_unselect_all(VALUE self) - { -- RVAL2RECT(self)->y2 = NUM2DBL(y2); -+ poppler_form_field_choice_unselect_all(RVAL2CF(self)); - return Qnil; - } - --static VALUE --rectangle_to_a(VALUE self) -+VALUE -+choice_field_toggle_item(VALUE self, VALUE index) - { -- PopplerRectangle *rectangle = RVAL2RECT(self); -- return rb_ary_new3(4, -- rb_float_new(rectangle->x1), -- rb_float_new(rectangle->y1), -- rb_float_new(rectangle->x2), -- rb_float_new(rectangle->y2)); -+ poppler_form_field_choice_toggle_item(RVAL2CF(self), NUM2INT(index)); -+ return Qnil; - } - -- --/* Mapping between areas on the current page and PopplerActions */ --static VALUE --link_mapping_get_area(VALUE self) -+VALUE -+choice_field_set_text(VALUE self, VALUE text) - { -- return RECT2RVAL(&(RVAL2LM(self)->area)); -+ poppler_form_field_choice_set_text(RVAL2CF(self), RVAL2CSTR2(text)); -+ return Qnil; - } - --static VALUE --link_mapping_get_action(VALUE self) -+VALUE -+choice_field_get_text(VALUE self) - { -- return ACTION2RVAL(RVAL2LM(self)->action); -+ return CSTR2RVAL(poppler_form_field_choice_get_text(RVAL2CF(self))); - } -+#endif - - void - Init_poppler_page(VALUE mPoppler) - { -- VALUE cPage, cRectangle, cLinkMapping; -+ VALUE cPage, cLinkMapping; -+#if POPPLER_CHECK_VERSION(0, 6, 0) -+ VALUE cPageTransition, cImageMapping, cFormFieldMapping, cFormField; -+#endif - - cPage = G_DEF_CLASS(POPPLER_TYPE_PAGE, "Page", mPoppler); - cRectangle = G_DEF_CLASS(POPPLER_TYPE_RECTANGLE, "Rectangle", mPoppler); - cLinkMapping = G_DEF_CLASS(POPPLER_TYPE_LINK_MAPPING, "LinkMapping", - mPoppler); -+#if POPPLER_CHECK_VERSION(0, 6, 0) -+ cPageTransition = G_DEF_CLASS(POPPLER_TYPE_PAGE_TRANSITION, -+ "PageTransition", mPoppler); -+ cImageMapping = G_DEF_CLASS(POPPLER_TYPE_IMAGE_MAPPING, -+ "ImageMapping", mPoppler); -+ cFormFieldMapping = G_DEF_CLASS(POPPLER_TYPE_FORM_FIELD_MAPPING, -+ "FormFieldMapping", mPoppler); -+ -+ cFormField = G_DEF_CLASS(POPPLER_TYPE_FORM_FIELD, "FormField", mPoppler); -+ cUnknownField = rb_define_class_under(mPoppler, "UnknownField", cFormField); -+ cTextField = rb_define_class_under(mPoppler, "TextField", cFormField); -+ cButtonField = rb_define_class_under(mPoppler, "ButtonField", cFormField); -+ cChoiceField = rb_define_class_under(mPoppler, "ChoiceField", cFormField); -+ cSignatureField = rb_define_class_under(mPoppler, "SignatureField", -+ cFormField); -+#endif - cPSFile = rb_const_get(mPoppler, rb_intern("PSFile")); - - rb_define_method(cPage, "render", page_render_generic, -1); - rb_define_method(cPage, "size", page_get_size, 0); - rb_define_method(cPage, "index", page_get_index, 0); -+#if POPPLER_CHECK_VERSION(0, 6, 0) -+ rb_define_method(cPage, "duration", page_get_duration, 0); -+ rb_define_method(cPage, "transition", page_get_transition, 0); -+#endif - rb_define_method(cPage, "thumbnail", page_get_thumbnail, 0); - rb_define_method(cPage, "thumbnail_size", page_get_thumbnail_size, 0); - rb_define_method(cPage, "find_text", page_find_text, 1); -- rb_define_method(cPage, "get_text", page_get_text, 1); -+ rb_define_method(cPage, "get_text", page_get_text, -1); - rb_define_method(cPage, "link_mapping", page_get_link_mapping, 0); -+#if POPPLER_CHECK_VERSION(0, 6, 0) -+ rb_define_method(cPage, "image_mapping", page_get_image_mapping, 0); -+ rb_define_method(cPage, "form_field_mapping", -+ page_get_form_field_mapping, 0); -+#endif - rb_define_method(cPage, "get_selection_region", -- page_get_selection_region, 2); -+ page_get_selection_region, -1); - rb_define_method(cPage, "render_selection", - page_render_selection_generic, -1); -+#if POPPLER_CHECK_VERSION(0, 6, 0) -+ rb_define_method(cPage, "crop_box", page_get_crop_box, 0); -+#endif - - G_DEF_SETTERS(cPage); - -@@ -335,5 +733,102 @@ - rb_define_method(cLinkMapping, "area", link_mapping_get_area, 0); - rb_define_method(cLinkMapping, "action", link_mapping_get_action, 0); - -+ rb_define_method(cLinkMapping, "set_area", link_mapping_set_area, 1); -+ rb_define_method(cLinkMapping, "set_action", link_mapping_set_action, 1); -+ - G_DEF_SETTERS(cLinkMapping); -+ -+#if POPPLER_CHECK_VERSION(0, 6, 0) -+/* Page Transition */ -+ rb_define_method(cPageTransition, "type", page_trans_get_type, 0); -+ rb_define_method(cPageTransition, "alignment", page_trans_get_alignment, 0); -+ rb_define_method(cPageTransition, "direction", page_trans_get_direction, 0); -+ rb_define_method(cPageTransition, "duration", page_trans_get_duration, 0); -+ rb_define_method(cPageTransition, "angle", page_trans_get_angle, 0); -+ rb_define_method(cPageTransition, "scale", page_trans_get_scale, 0); -+ rb_define_method(cPageTransition, "rectangular", -+ page_trans_get_rectangular, 0); -+ -+ rb_define_method(cPageTransition, "set_type", page_trans_set_type, 1); -+ rb_define_method(cPageTransition, "set_alignment", -+ page_trans_set_alignment, 1); -+ rb_define_method(cPageTransition, "set_direction", -+ page_trans_set_direction, 1); -+ rb_define_method(cPageTransition, "set_duration", -+ page_trans_set_duration, 1); -+ rb_define_method(cPageTransition, "set_angle", page_trans_set_angle, 1); -+ rb_define_method(cPageTransition, "set_scale", page_trans_set_scale, 1); -+ rb_define_method(cPageTransition, "set_rectangular", -+ page_trans_set_rectangular, 1); -+ -+ G_DEF_SETTERS(cPageTransition); -+ -+ -+/* Mapping between areas on the current page and images */ -+ rb_define_method(cImageMapping, "area", image_mapping_get_area, 0); -+ rb_define_method(cImageMapping, "image", image_mapping_get_image, 0); -+ -+ rb_define_method(cImageMapping, "set_area", image_mapping_set_area, 1); -+ rb_define_method(cImageMapping, "set_image", image_mapping_set_image, 1); -+ -+ G_DEF_SETTERS(cImageMapping); -+ -+ -+/* Mapping between areas on the current page and form fields */ -+ rb_define_method(cFormFieldMapping, "area", form_field_mapping_get_area, 0); -+ rb_define_method(cFormFieldMapping, "field", form_field_mapping_get_field, -+ 0); -+ -+ rb_define_method(cFormFieldMapping, "set_area", -+ form_field_mapping_set_area, 1); -+ rb_define_method(cFormFieldMapping, "set_field", -+ form_field_mapping_set_field, 1); -+ -+ G_DEF_SETTERS(cFormFieldMapping); -+ -+/* FormField */ -+ rb_define_method(cFormField, "id", form_field_get_id, 0); -+ rb_define_method(cFormField, "font_size", form_field_get_font_size, 0); -+ rb_define_method(cFormField, "read_only?", form_field_is_read_only, 0); -+ -+ G_DEF_SETTERS(cFormField); -+ -+ -+ rb_define_method(cButtonField, "active?", button_field_get_state, 0); -+ rb_define_method(cButtonField, "set_active", button_field_set_state, 1); -+ -+ G_DEF_SETTERS(cButtonField); -+ -+ -+ rb_define_method(cTextField, "type", text_field_get_text_type, 0); -+ rb_define_method(cTextField, "text", text_field_get_text, 0); -+ rb_define_method(cTextField, "set_text", text_field_set_text, 1); -+ rb_define_method(cTextField, "max_length", text_field_get_max_length, 0); -+ rb_define_method(cTextField, "spell_check?", text_field_do_spell_check, 0); -+ rb_define_method(cTextField, "scroll?", text_field_do_scroll, 0); -+ rb_define_method(cTextField, "rich_text?", text_field_is_rich_text, 0); -+ rb_define_method(cTextField, "password?", text_field_is_password, 0); -+ -+ G_DEF_SETTERS(cTextField); -+ -+ -+ rb_define_method(cChoiceField, "type", choice_field_get_choice_type, 0); -+ rb_define_method(cChoiceField, "editable?", choice_field_is_editable, 0); -+ rb_define_method(cChoiceField, "select_multiple?", -+ choice_field_can_select_multiple, 0); -+ rb_define_method(cChoiceField, "spell_check?", -+ choice_field_do_spell_check, 0); -+ rb_define_method(cChoiceField, "commit_on_change?", -+ choice_field_commit_on_change, 0); -+ rb_define_method(cChoiceField, "n_items", choice_field_get_n_items, 0); -+ rb_define_method(cChoiceField, "[]", choice_field_get_item, 1); -+ rb_define_method(cChoiceField, "selected?", -+ choice_field_is_item_selected, 1); -+ rb_define_method(cChoiceField, "select", choice_field_select_item, 1); -+ rb_define_method(cChoiceField, "unselect_all", choice_field_unselect_all, 0); -+ rb_define_method(cChoiceField, "text", choice_field_get_text, 0); -+ rb_define_method(cChoiceField, "set_text", choice_field_set_text, 1); -+ -+ G_DEF_SETTERS(cChoiceField); -+#endif - } -Index: ruby-gnome2/poppler/src/rbpoppler-action.c -=================================================================== ---- ruby-gnome2/poppler/src/rbpoppler-action.c (révision 2347) -+++ ruby-gnome2/poppler/src/rbpoppler-action.c (copie de travail) -@@ -4,7 +4,7 @@ - rbpoppler-action.c - - - $Author: ktou $ -- $Date: 2006/09/06 13:42:01 $ -+ $Date: 2007/06/23 02:43:53 $ - - Copyright (C) 2006 Ruby-GNOME2 Project Team - -@@ -151,8 +151,7 @@ - void - Init_poppler_action(VALUE mPoppler) - { -- VALUE cActionType, cDestType, cDest; -- VALUE cAction, cActionAny, cActionGotoDest, cActionGotoRemote; -+ VALUE cDest, cAction, cActionAny, cActionGotoDest, cActionGotoRemote; - VALUE cActionLaunch, cActionUri, cActionNamed, cActionMovie; - - cAction = G_DEF_CLASS(POPPLER_TYPE_ACTION, "Action", mPoppler); -@@ -199,8 +198,8 @@ - G_DEF_SETTERS(cActionNamed); - G_DEF_SETTERS(cActionMovie); - -- cActionType = G_DEF_CLASS(POPPLER_TYPE_ACTION_TYPE, "ActionType", mPoppler); -- cDestType = G_DEF_CLASS(POPPLER_TYPE_DEST_TYPE, "DestType", mPoppler); -+ G_DEF_CLASS(POPPLER_TYPE_ACTION_TYPE, "ActionType", mPoppler); -+ G_DEF_CLASS(POPPLER_TYPE_DEST_TYPE, "DestType", mPoppler); - - cDest = G_DEF_CLASS(POPPLER_TYPE_DEST, "Dest", mPoppler); - -Index: ruby-gnome2/poppler/src/rbpoppler-document.c -=================================================================== ---- ruby-gnome2/poppler/src/rbpoppler-document.c (révision 2347) -+++ ruby-gnome2/poppler/src/rbpoppler-document.c (copie de travail) -@@ -4,7 +4,7 @@ - rbpoppler-document.c - - - $Author: ktou $ -- $Date: 2006/06/17 14:34:54 $ -+ $Date: 2007/10/13 05:56:39 $ - - Copyright (C) 2006 Ruby-GNOME2 Project Team - -@@ -12,18 +12,16 @@ - - #include "rbpoppler.h" - -+#define RVAL2DOC(obj) (POPPLER_DOCUMENT(RVAL2GOBJ(obj))) -+ - #define IITER2RVAL(obj) (BOXED2RVAL(obj, POPPLER_TYPE_INDEX_ITER)) - #define RVAL2IITER(obj) (RVAL2BOXED(obj, POPPLER_TYPE_INDEX_ITER)) - #define FITER2RVAL(obj) (BOXED2RVAL(obj, POPPLER_TYPE_FONTS_ITER)) - #define RVAL2FITER(obj) (RVAL2BOXED(obj, POPPLER_TYPE_FONTS_ITER)) - --#ifdef POPPLER_TYPE_FONT_INFO --# define HAVE_POPPLER_FONT_INFO 1 --#endif -- --static ID id_new, id_valid; -+static ID id_new, id_valid, id_pdf_data_p, id_ensure_uri; - static VALUE cIndexIter; --#ifdef HAVE_POPPLER_FONT_INFO -+#if POPPLER_CHECK_VERSION(0, 6, 0) - static VALUE cFontInfo; - #endif - -@@ -31,16 +29,29 @@ - static VALUE - doc_initialize(int argc, VALUE *argv, VALUE self) - { -- PopplerDocument *document; -+ PopplerDocument *document = NULL; - GError *error = NULL; -- VALUE uri, rb_password; -+ VALUE uri_or_data, rb_password; - const char *password; - -- rb_scan_args(argc, argv, "11", &uri, &rb_password); -+ rb_scan_args(argc, argv, "11", &uri_or_data, &rb_password); - - password = NIL_P(rb_password) ? NULL : RVAL2CSTR(rb_password); -- document = poppler_document_new_from_file(RVAL2CSTR(uri), password, &error); - -+#if POPPLER_CHECK_VERSION(0, 6, 0) -+ if (RVAL2CBOOL(rb_funcall(self, id_pdf_data_p, 1, uri_or_data))) { -+ document = poppler_document_new_from_data(RSTRING_PTR(uri_or_data), -+ RSTRING_LEN(uri_or_data), -+ password, &error); -+ } -+#endif -+ -+ if (!document && !error) { -+ uri_or_data = rb_funcall(self, id_ensure_uri, 1, uri_or_data); -+ document = poppler_document_new_from_file(RVAL2CSTR(uri_or_data), -+ password, &error); -+ } -+ - if (error) - RAISE_GERROR(error); - -@@ -54,7 +65,7 @@ - gboolean result; - GError *error = NULL; - -- result = poppler_document_save(RVAL2GOBJ(self), RVAL2CSTR(uri), &error); -+ result = poppler_document_save(RVAL2DOC(self), RVAL2CSTR(uri), &error); - - if (error) - RAISE_GERROR(error); -@@ -65,7 +76,7 @@ - static VALUE - doc_get_n_pages(VALUE self) - { -- return INT2NUM(poppler_document_get_n_pages(RVAL2GOBJ(self))); -+ return INT2NUM(poppler_document_get_n_pages(RVAL2DOC(self))); - } - - static VALUE -@@ -74,11 +85,11 @@ - VALUE rb_page; - PopplerPage *page; - -- if (RTEST(rb_obj_is_kind_of(index_or_label, rb_cInteger))) { -- page = poppler_document_get_page(RVAL2GOBJ(self), -+ if (RVAL2CBOOL(rb_obj_is_kind_of(index_or_label, rb_cInteger))) { -+ page = poppler_document_get_page(RVAL2DOC(self), - NUM2INT(index_or_label)); -- } else if (RTEST(rb_obj_is_kind_of(index_or_label, rb_cString))) { -- page = poppler_document_get_page_by_label(RVAL2GOBJ(self), -+ } else if (RVAL2CBOOL(rb_obj_is_kind_of(index_or_label, rb_cString))) { -+ page = poppler_document_get_page_by_label(RVAL2DOC(self), - RVAL2CSTR(index_or_label)); - } else { - VALUE inspect; -@@ -96,29 +107,38 @@ - static VALUE - doc_has_attachments(VALUE self) - { -- return CBOOL2RVAL(poppler_document_has_attachments(RVAL2GOBJ(self))); -+ return CBOOL2RVAL(poppler_document_has_attachments(RVAL2DOC(self))); - } - - static VALUE - doc_get_attachments(VALUE self) - { -- return GLIST2ARYF(poppler_document_get_attachments(RVAL2GOBJ(self))); -+ return GLIST2ARYF(poppler_document_get_attachments(RVAL2DOC(self))); - } - - static VALUE - doc_find_dest(VALUE self, VALUE link_name) - { -- return GOBJ2RVAL(poppler_document_find_dest(RVAL2GOBJ(self), -+ return GOBJ2RVAL(poppler_document_find_dest(RVAL2DOC(self), - RVAL2CSTR(link_name))); - } - -+#if POPPLER_CHECK_VERSION(0, 6, 0) - static VALUE -+doc_get_form_field(VALUE self, VALUE id) -+{ -+ return GOBJ2RVAL(poppler_document_get_form_field(RVAL2DOC(self), -+ NUM2INT(id))); -+} -+#endif -+ -+static VALUE - doc_each(VALUE self) - { - PopplerDocument *document; - int i, n_pages; - -- document = RVAL2GOBJ(self); -+ document = RVAL2DOC(self); - n_pages = poppler_document_get_n_pages(document); - for (i = 0; i < n_pages; i++) { - PopplerPage *page; -@@ -139,7 +159,7 @@ - return rb_funcall(cIndexIter, id_new, 1, self); - } - --#ifdef HAVE_POPPLER_FONT_INFO -+#if POPPLER_CHECK_VERSION(0, 6, 0) - static VALUE - doc_get_font_info(VALUE self) - { -@@ -151,7 +171,7 @@ - - /* Interface for getting the Index of a poppler_document */ - #define CHECK_IITER_IS_VALID(iter) do { \ -- if (!RTEST(index_iter_valid_p(iter))) \ -+ if (!RVAL2CBOOL(index_iter_valid_p(iter))) \ - return Qnil; \ - } while (0) - -@@ -168,7 +188,7 @@ - iter = poppler_index_iter_new(RVAL2GOBJ(document)); - G_INITIALIZE(self, iter); - poppler_index_iter_free(iter); -- rb_ivar_set(self, id_valid, iter ? Qtrue : Qfalse); -+ rb_ivar_set(self, id_valid, CBOOL2RVAL(iter)); - return Qnil; - } - -@@ -228,7 +248,7 @@ - } - - --#ifdef HAVE_POPPLER_FONT_INFO -+#if POPPLER_CHECK_VERSION(0, 6, 0) - - static VALUE - font_info_initialize(VALUE self, VALUE document) -@@ -254,7 +274,7 @@ - - - #define CHECK_FITER_IS_VALID(iter) do { \ -- if (!RTEST(fonts_iter_valid_p(iter))) \ -+ if (!RVAL2CBOOL(fonts_iter_valid_p(iter))) \ - return Qnil; \ - } while (0) - -@@ -278,7 +298,16 @@ - return CSTR2RVAL(poppler_fonts_iter_get_full_name(RVAL2FITER(self))); - } - -+#if POPPLER_CHECK_VERSION(0, 6, 0) - static VALUE -+fonts_iter_get_file_name(VALUE self) -+{ -+ CHECK_FITER_IS_VALID(self); -+ return CSTR2RVAL(poppler_fonts_iter_get_file_name(RVAL2FITER(self))); -+} -+#endif -+ -+static VALUE - fonts_iter_get_font_type(VALUE self) - { - CHECK_FITER_IS_VALID(self); -@@ -363,44 +392,49 @@ - Init_poppler_document(VALUE mPoppler) - { - VALUE cDocument, cFontsIter, cPSFile; -- VALUE cPageLayout, cPageMode, cFontType; -- VALUE cViewerPreferences, cPermissions; - - id_new = rb_intern("new"); - id_valid = rb_intern("valid?"); -+ id_pdf_data_p = rb_intern("pdf_data?"); -+ id_ensure_uri = rb_intern("ensure_uri"); - - cDocument = G_DEF_CLASS(POPPLER_TYPE_DOCUMENT, "Document", mPoppler); - cIndexIter = G_DEF_CLASS(POPPLER_TYPE_INDEX_ITER, "IndexIter", mPoppler); --#ifdef HAVE_POPPLER_FONT_INFO -+#if POPPLER_CHECK_VERSION(0, 6, 0) - cFontInfo = G_DEF_CLASS(POPPLER_TYPE_FONT_INFO, "FontInfo", mPoppler); - #endif - cFontsIter = G_DEF_CLASS(POPPLER_TYPE_FONTS_ITER, "FontsIter", mPoppler); - cPSFile = G_DEF_CLASS(POPPLER_TYPE_PS_FILE, "PSFile", mPoppler); - -- cPageLayout = G_DEF_CLASS(POPPLER_TYPE_PAGE_LAYOUT, "PageLayout", mPoppler); -- cPageMode = G_DEF_CLASS(POPPLER_TYPE_PAGE_MODE, "PageMode", mPoppler); -- cFontType = G_DEF_CLASS(POPPLER_TYPE_FONT_TYPE, "FontType", mPoppler); -- cViewerPreferences = G_DEF_CLASS(POPPLER_TYPE_VIEWER_PREFERENCES, -- "ViewerPreferences", mPoppler); -- cPermissions = G_DEF_CLASS(POPPLER_TYPE_PERMISSIONS, "Permissions", -- mPoppler); -+ G_DEF_CLASS(POPPLER_TYPE_PAGE_LAYOUT, "PageLayout", mPoppler); -+ G_DEF_CLASS(POPPLER_TYPE_PAGE_MODE, "PageMode", mPoppler); -+ G_DEF_CLASS(POPPLER_TYPE_FONT_TYPE, "FontType", mPoppler); -+ G_DEF_CLASS(POPPLER_TYPE_VIEWER_PREFERENCES, "ViewerPreferences", mPoppler); -+ G_DEF_CLASS(POPPLER_TYPE_PERMISSIONS, "Permissions", mPoppler); - - rb_include_module(cDocument, rb_mEnumerable); - - rb_define_method(cDocument, "initialize", doc_initialize, -1); - rb_define_method(cDocument, "save", doc_save, 1); - rb_define_method(cDocument, "n_pages", doc_get_n_pages, 0); -+ rb_define_alias(cDocument, "size", "n_pages"); - rb_define_method(cDocument, "get_page", doc_get_page, 1); - rb_define_alias(cDocument, "[]", "get_page"); - rb_define_method(cDocument, "has_attachments?", doc_has_attachments, 0); - rb_define_alias(cDocument, "have_attachments?", "has_attachments?"); - rb_define_method(cDocument, "attachments", doc_get_attachments, 0); - rb_define_method(cDocument, "find_dest", doc_find_dest, 1); -+ rb_define_alias(cDocument, "get_destination", "find_dest"); - -+#if POPPLER_CHECK_VERSION(0, 6, 0) -+ rb_define_method(cDocument, "get_form_field", doc_get_form_field, 1); -+#endif -+ - rb_define_method(cDocument, "each", doc_each, 0); -+ rb_define_alias(cDocument, "pages", "to_a"); - - rb_define_method(cDocument, "index_iter", doc_get_index_iter, 0); --#ifdef HAVE_POPPLER_FONT_INFO -+#if POPPLER_CHECK_VERSION(0, 6, 0) - rb_define_method(cDocument, "font_info", doc_get_font_info, 0); - #endif - -@@ -424,7 +458,7 @@ - G_DEF_SETTERS(cIndexIter); - - --#ifdef HAVE_POPPLER_FONT_INFO -+#if POPPLER_CHECK_VERSION(0, 6, 0) - rb_define_method(cFontInfo, "initialize", font_info_initialize, 1); - rb_define_method(cFontInfo, "scan", font_info_scan, 1); - G_DEF_SETTERS(cFontInfo); -@@ -434,6 +468,9 @@ - - rb_define_method(cFontsIter, "name", fonts_iter_get_name, 0); - rb_define_method(cFontsIter, "full_name", fonts_iter_get_full_name, 0); -+#if POPPLER_CHECK_VERSION(0, 6, 0) -+ rb_define_method(cFontsIter, "file_name", fonts_iter_get_file_name, 0); -+#endif - rb_define_method(cFontsIter, "font_type", fonts_iter_get_font_type, 0); - rb_define_method(cFontsIter, "embedded?", fonts_iter_is_embedded, 0); - rb_define_method(cFontsIter, "subset?", fonts_iter_is_subset, 0); -Index: ruby-gnome2/poppler/src/lib/poppler.rb -=================================================================== ---- ruby-gnome2/poppler/src/lib/poppler.rb (révision 2347) -+++ ruby-gnome2/poppler/src/lib/poppler.rb (copie de travail) -@@ -1,3 +1,4 @@ -+require "tempfile" - require "glib2" - require "gdk_pixbuf2" - begin -@@ -14,6 +15,59 @@ - LOG_DOMAIN = "Poppler" - - VERSION = version.split(".").collect {|x| x.to_i} -+ -+ class Document -+ private -+ def pdf_data?(data) -+ /\A%PDF-1\.\d/ =~ data -+ end -+ -+ def ensure_uri(uri) -+ if pdf_data?(uri) -+ @pdf = Tempfile.new("ruby-poppler-pdf") -+ @pdf.binmode -+ @pdf.print(uri) -+ @pdf.close -+ uri = @pdf.path -+ end -+ -+ if GLib.path_is_absolute?(uri) -+ GLib.filename_to_uri(uri) -+ elsif /\A[a-zA-Z][a-zA-Z\d\-+.]*:/.match(uri) -+ uri -+ else -+ GLib.filename_to_uri(File.expand_path(uri)) -+ end -+ end -+ end -+ -+ if defined?(TextField) -+ class TextField -+ def multiline? -+ type == FormTextType::MULTILINE -+ end -+ -+ def file_select? -+ type == FormTextType::FILE_SELECT -+ end -+ -+ def normal? -+ type == FormTextType::NORMAL -+ end -+ end -+ end -+ -+ if defined?(ChoiceField) -+ class ChoiceField -+ def combo? -+ type == FormChioceType::COMBO -+ end -+ -+ def list? -+ type == FormChoiceType::LIST -+ end -+ end -+ end - end - - if Poppler.cairo_available? -Index: ruby-gnome2/poppler/src/rbpoppler.c -=================================================================== ---- ruby-gnome2/poppler/src/rbpoppler.c (révision 2347) -+++ ruby-gnome2/poppler/src/rbpoppler.c (copie de travail) -@@ -4,7 +4,7 @@ - rbpoppler.c - - - $Author: ktou $ -- $Date: 2006/05/18 02:26:58 $ -+ $Date: 2007/10/13 05:56:39 $ - - Copyright (C) 2006 Ruby-GNOME2 Project Team - -@@ -38,7 +38,7 @@ - void - Init_poppler(void) - { -- VALUE mPoppler, cError, cOrientation, cBackend; -+ VALUE mPoppler; - - mPoppler = rb_define_module("Poppler"); - -@@ -48,11 +48,23 @@ - INT2FIX(POPPLER_MINOR_VERSION), - INT2FIX(POPPLER_MICRO_VERSION))); - -- cError = G_DEF_CLASS(POPPLER_TYPE_ERROR, "Error", mPoppler); -- cOrientation = G_DEF_CLASS(POPPLER_TYPE_ORIENTATION, "Orientation", -- mPoppler); -- cBackend = G_DEF_CLASS(POPPLER_TYPE_BACKEND, "Backend", mPoppler); -+ G_DEF_CLASS(POPPLER_TYPE_ERROR, "Error", mPoppler); -+ G_DEF_CLASS(POPPLER_TYPE_ORIENTATION, "Orientation", mPoppler); -+#if POPPLER_CHECK_VERSION(0, 6, 0) -+ G_DEF_CLASS(POPPLER_TYPE_PAGE_TRANSITION_TYPE, -+ "PageTransitionType", mPoppler); -+ G_DEF_CLASS(POPPLER_TYPE_PAGE_TRANSITION_ALIGNMENT, -+ "PageTransitionAlignment", mPoppler); -+ G_DEF_CLASS(POPPLER_TYPE_PAGE_TRANSITION_DIRECTION, -+ "PageTransitionDirection", mPoppler); -+ G_DEF_CLASS(POPPLER_TYPE_SELECTION_STYLE, "SelectionStyle", mPoppler); -+ G_DEF_CLASS(POPPLER_TYPE_FORM_BUTTON_TYPE, "FormButtonType", mPoppler); -+ G_DEF_CLASS(POPPLER_TYPE_FORM_TEXT_TYPE, "FormTextType", mPoppler); -+ G_DEF_CLASS(POPPLER_TYPE_FORM_CHOICE_TYPE, "FormChoiceType", mPoppler); - -+#endif -+ G_DEF_CLASS(POPPLER_TYPE_BACKEND, "Backend", mPoppler); -+ - rb_define_module_function(mPoppler, "backend", get_backend, 0); - rb_define_module_function(mPoppler, "version", get_version, 0); - rb_define_module_function(mPoppler, "cairo_available?", cairo_available, 0); -Index: ruby-gnome2/poppler/src/rbpoppler.h -=================================================================== ---- ruby-gnome2/poppler/src/rbpoppler.h (révision 2347) -+++ ruby-gnome2/poppler/src/rbpoppler.h (copie de travail) -@@ -38,18 +38,29 @@ - #define REGION2RVAL(obj) (BOXED2RVAL(obj, GDK_TYPE_REGION)) - #define RVAL2DEST(obj) ((PopplerDest *)RVAL2BOXED(obj, POPPLER_TYPE_DEST)) - #define DEST2RVAL(obj) (BOXED2RVAL(obj, POPPLER_TYPE_DEST)) -+#define TRANS2RVAL(obj) (BOXED2RVAL(obj, POPPLER_TYPE_PAGE_TRANSITION)) -+#define RVAL2TRANS(obj) ((PopplerPageTransition *)RVAL2BOXED(obj, POPPLER_TYPE_PAGE_TRANSITION)) -+ - #define DESTTYPE2RVAL(obj) (GENUM2RVAL(obj, POPPLER_TYPE_DEST_TYPE)) - #define ACTIONTYPE2RVAL(obj) (GENUM2RVAL(obj, POPPLER_TYPE_ACTION_TYPE)) - #define RVAL2ACTIONTYPE(obj) (RVAL2GENUM(obj, POPPLER_TYPE_ACTION_TYPE)) -+#define SELSTYLE2RVAL(obj) (GENUM2RVAL(obj, POPPLER_TYPE_SELECTION_STYLE)) -+#define RVAL2SELSTYLE(obj) (RVAL2GENUM(obj, POPPLER_TYPE_SELECTION_STYLE)) - #define RVAL2COLOR(obj) ((GdkColor *)RVAL2BOXED(obj, GDK_TYPE_COLOR)) - - #define ACTION2RVAL(obj) (rb_poppler_ruby_object_from_action(obj)) - #define RVAL2ACTION(obj) (rb_poppler_action_from_ruby_object(obj)) -+#define FF2RVAL(obj) (rb_poppler_ruby_object_from_form_field(obj)) - - extern VALUE rb_poppler_ruby_object_from_action(PopplerAction *action); - extern PopplerAction *rb_poppler_action_from_ruby_object(VALUE action); -+#if POPPLER_CHECK_VERSION(0, 6, 0) -+extern VALUE rb_poppler_ruby_object_from_form_field(PopplerFormField *field); -+#endif - -+#define RVAL2GDK_PIXBUF(pixbuf) (GDK_PIXBUF(RVAL2GOBJ(pixbuf))) - -+ - extern void Init_poppler_document(VALUE mPoppler); - extern void Init_poppler_page(VALUE mPoppler); - extern void Init_poppler_attachment(VALUE mPoppler); -Index: ruby-gnome2/poppler/src/rbpoppler-attachment.c -=================================================================== ---- ruby-gnome2/poppler/src/rbpoppler-attachment.c (révision 2347) -+++ ruby-gnome2/poppler/src/rbpoppler-attachment.c (copie de travail) -@@ -4,7 +4,7 @@ - rbpoppler-attachment.c - - - $Author: ktou $ -- $Date: 2006/05/17 12:51:19 $ -+ $Date: 2007/10/13 05:53:10 $ - - Copyright (C) 2006 Ruby-GNOME2 Project Team - -@@ -69,7 +69,15 @@ - return CSTR2RVAL(SELF(self)->description); - } - -+#if POPPLER_CHECK_VERSION(0, 6, 0) - static VALUE -+attachment_get_size(VALUE self) -+{ -+ return INT2NUM(SELF(self)->size); -+} -+#endif -+ -+static VALUE - attachment_get_mtime(VALUE self) - { - return rb_time_new(SELF(self)->mtime, 0); -@@ -81,6 +89,16 @@ - return rb_time_new(SELF(self)->ctime, 0); - } - -+#if POPPLER_CHECK_VERSION(0, 6, 0) -+static VALUE -+attachment_get_checksum(VALUE self) -+{ -+ GString *checksum; -+ checksum = SELF(self)->checksum; -+ return rb_str_new(checksum->str, checksum->len); -+} -+#endif -+ - void - Init_poppler_attachment(VALUE mPoppler) - { -@@ -93,8 +111,14 @@ - rb_define_method(cAttachment, "save", attachment_save, -1); - rb_define_method(cAttachment, "name", attachment_get_name, 0); - rb_define_method(cAttachment, "description", attachment_get_description, 0); -+#if POPPLER_CHECK_VERSION(0, 6, 0) -+ rb_define_method(cAttachment, "size", attachment_get_size, 0); -+#endif - rb_define_method(cAttachment, "mtime", attachment_get_mtime, 0); - rb_define_method(cAttachment, "ctime", attachment_get_ctime, 0); -+#if POPPLER_CHECK_VERSION(0, 6, 0) -+ rb_define_method(cAttachment, "checksum", attachment_get_checksum, 0); -+#endif - - G_DEF_SETTERS(cAttachment); - } - -Modification de propriétés sur ruby-gnome2/poppler/src -___________________________________________________________________ -Nom : svn:ignore - + Makefile -poppler.so -rbpopplerversion.h - - -Index: ruby-gnome2/poppler/README -=================================================================== ---- ruby-gnome2/poppler/README (révision 2347) -+++ ruby-gnome2/poppler/README (copie de travail) -@@ -12,7 +12,7 @@ - Ruby/GdkPixbuf2: http://ruby-gnome2.sourceforge.net/ - cairo/rcairo: http://cairographics.org/ (optional) - -- [*]: 0.5.2 or later is requried. -+ [*]: 0.5.2 - 0.6.2 is requried. - - Install - ------- - -Modification de propriétés sur poppler -___________________________________________________________________ -Nom : svn:ignore - + Makefile -mkmf.log - - diff --git a/dev-ruby/ruby-poppler/files/ruby-poppler-0.16.0-poppler-0.7.patch b/dev-ruby/ruby-poppler/files/ruby-poppler-0.16.0-poppler-0.7.patch deleted file mode 100644 index d78a8e4d6f7c..000000000000 --- a/dev-ruby/ruby-poppler/files/ruby-poppler-0.16.0-poppler-0.7.patch +++ /dev/null @@ -1,251 +0,0 @@ -Index: ruby-gnome2-0.16.0/poppler/ChangeLog -=================================================================== ---- ruby-gnome2-0.16.0.orig/poppler/ChangeLog 2008-05-29 17:13:17.000000000 +0200 -+++ ruby-gnome2-0.16.0/poppler/ChangeLog 2008-05-29 17:13:46.000000000 +0200 -@@ -1,3 +1,8 @@ -+2008-03-20 Kouhei Sutou <kou@cozmixng.org> -+ -+ * src/rbpoppler.[ch], src/rbpoppler-page.c: just buildable with -+ poppler-glib 0.7.3. -+ - 2007-11-11 Kouhei Sutou <kou@cozmixng.org> - - * README: updated supported poppler-glib version: 0.5.2 - 0.6.2. -Index: ruby-gnome2-0.16.0/poppler/src/rbpoppler-page.c -=================================================================== ---- ruby-gnome2-0.16.0.orig/poppler/src/rbpoppler-page.c 2008-05-29 17:13:16.000000000 +0200 -+++ ruby-gnome2-0.16.0/poppler/src/rbpoppler-page.c 2008-05-29 17:13:25.000000000 +0200 -@@ -39,6 +39,33 @@ - VALUE cUnknownField, cTextField, cButtonField, cChoiceField, cSignatureField; - #endif - -+#ifdef POPPLER_TYPE_COLOR -+extern VALUE mGdk; -+VALUE rb_cPopplerColor; -+ -+PopplerColor * -+rb_poppler_ruby_object_to_color(VALUE color) -+{ -+ static VALUE rb_cGdkColor = Qnil; -+ -+ if (NIL_P(rb_cGdkColor)) { -+ rb_cGdkColor = rb_const_get(mGdk, rb_intern("Color")); -+ } -+ -+ if (RTEST(rb_obj_is_kind_of(color, rb_cGdkColor))) { -+ GdkColor *gdk_color; -+ gdk_color = RVAL2GDKCOLOR(color); -+ color = rb_funcall(rb_cPopplerColor, rb_intern("new"), -+ 3, -+ UINT2NUM(gdk_color->red), -+ UINT2NUM(gdk_color->green), -+ UINT2NUM(gdk_color->blue)); -+ } -+ -+ return RVAL2BOXED(color, POPPLER_TYPE_COLOR); -+} -+#endif -+ - static VALUE - page_render_to_pixbuf(VALUE self, VALUE src_x, VALUE src_y, VALUE src_width, - VALUE src_height, VALUE scale, VALUE rotation, -@@ -293,8 +320,8 @@ - #ifdef HAVE_POPPLER_PAGE_RENDER_SELECTION_TO_PIXBUF - RVAL2SELSTYLE(style), - #endif -- RVAL2COLOR(glyph_color), -- RVAL2COLOR(background_color)); -+ RVAL2GDKCOLOR(glyph_color), -+ RVAL2GDKCOLOR(background_color)); - return Qnil; - } - -@@ -415,6 +442,55 @@ - } - - -+#ifdef POPPLER_TYPE_COLOR -+/* A color in RGB */ -+static VALUE -+color_initialize(VALUE self, VALUE red, VALUE green, VALUE blue) -+{ -+ PopplerColor color; -+ -+ color.red = NUM2UINT(red); -+ color.green = NUM2UINT(green); -+ color.blue = NUM2UINT(blue); -+ -+ G_INITIALIZE(self, &color); -+ return Qnil; -+} -+ -+DEF_ACCESSOR(color, red, RVAL2COLOR, UINT2NUM, NUM2UINT) -+DEF_ACCESSOR(color, green, RVAL2COLOR, UINT2NUM, NUM2UINT) -+DEF_ACCESSOR(color, blue, RVAL2COLOR, UINT2NUM, NUM2UINT) -+ -+static VALUE -+color_to_a(VALUE self) -+{ -+ PopplerColor *color; -+ color = RVAL2COLOR(self); -+ return rb_ary_new3(3, -+ UINT2NUM(color->red), -+ UINT2NUM(color->green), -+ UINT2NUM(color->blue)); -+} -+ -+static VALUE -+color_inspect(VALUE self) -+{ -+ VALUE inspected; -+ gchar *rgb; -+ PopplerColor *color; -+ -+ color = RVAL2COLOR(self); -+ inspected = rb_call_super(0, NULL); -+ rb_str_resize(inspected, RSTRING_LEN(inspected) - 1); -+ rgb = g_strdup_printf(": [%u, %u, %u]>", -+ color->red, color->green, color->blue); -+ rb_str_cat2(inspected, rgb); -+ g_free(rgb); -+ return inspected; -+} -+#endif -+ -+ - /* Mapping between areas on the current page and PopplerActions */ - #define RECT_ENTITY2RVAL(rect) RECT2RVAL(&(rect)) - #define RECT_ENTITY_SET(rect, rb_rect) rectangle_set(&(rect), rb_rect) -@@ -443,7 +519,11 @@ - /* Mapping between areas on the current page and images */ - DEF_ACCESSOR_WITH_SETTER(image_mapping, area, - RVAL2IM, RECT_ENTITY2RVAL, RECT_ENTITY_SET) -+#ifdef HAVE_ST_IMAGE_ID -+DEF_ACCESSOR(image_mapping, image_id, RVAL2IM, INT2NUM, NUM2INT) -+#else - DEF_ACCESSOR(image_mapping, image, RVAL2IM, GOBJ2RVAL, RVAL2GDK_PIXBUF) -+#endif - - - /* Mapping between areas on the current page and form fields */ -@@ -668,6 +748,9 @@ - - cPage = G_DEF_CLASS(POPPLER_TYPE_PAGE, "Page", mPoppler); - cRectangle = G_DEF_CLASS(POPPLER_TYPE_RECTANGLE, "Rectangle", mPoppler); -+#ifdef POPPLER_TYPE_COLOR -+ rb_cPopplerColor = G_DEF_CLASS(POPPLER_TYPE_COLOR, "Color", mPoppler); -+#endif - cLinkMapping = G_DEF_CLASS(POPPLER_TYPE_LINK_MAPPING, "LinkMapping", - mPoppler); - #if POPPLER_CHECK_VERSION(0, 6, 0) -@@ -729,6 +812,21 @@ - - G_DEF_SETTERS(cRectangle); - -+#ifdef POPPLER_TYPE_COLOR -+/* A color in RGB */ -+ rb_define_method(rb_cPopplerColor, "initialize", color_initialize, 3); -+ rb_define_method(rb_cPopplerColor, "red", color_get_red, 0); -+ rb_define_method(rb_cPopplerColor, "green", color_get_green, 0); -+ rb_define_method(rb_cPopplerColor, "blue", color_get_blue, 0); -+ rb_define_method(rb_cPopplerColor, "set_red", color_set_red, 1); -+ rb_define_method(rb_cPopplerColor, "set_green", color_set_green, 1); -+ rb_define_method(rb_cPopplerColor, "set_blue", color_set_blue, 1); -+ rb_define_method(rb_cPopplerColor, "to_a", color_to_a, 0); -+ rb_define_method(rb_cPopplerColor, "inspect", color_inspect, 0); -+ -+ G_DEF_SETTERS(rb_cPopplerColor); -+#endif -+ - /* Mapping between areas on the current page and PopplerActions */ - rb_define_method(cLinkMapping, "area", link_mapping_get_area, 0); - rb_define_method(cLinkMapping, "action", link_mapping_get_action, 0); -@@ -766,10 +864,19 @@ - - /* Mapping between areas on the current page and images */ - rb_define_method(cImageMapping, "area", image_mapping_get_area, 0); -+#ifdef HAVE_ST_IMAGE_ID -+ rb_define_method(cImageMapping, "image_id", image_mapping_get_image_id, 0); -+#else - rb_define_method(cImageMapping, "image", image_mapping_get_image, 0); -+#endif - - rb_define_method(cImageMapping, "set_area", image_mapping_set_area, 1); -+#ifdef HAVE_ST_IMAGE_ID -+ rb_define_method(cImageMapping, "set_image_id", -+ image_mapping_set_image_id, 1); -+#else - rb_define_method(cImageMapping, "set_image", image_mapping_set_image, 1); -+#endif - - G_DEF_SETTERS(cImageMapping); - -Index: ruby-gnome2-0.16.0/poppler/src/rbpoppler.c -=================================================================== ---- ruby-gnome2-0.16.0.orig/poppler/src/rbpoppler.c 2008-05-29 17:13:16.000000000 +0200 -+++ ruby-gnome2-0.16.0/poppler/src/rbpoppler.c 2008-05-29 17:13:25.000000000 +0200 -@@ -50,6 +50,7 @@ - - G_DEF_CLASS(POPPLER_TYPE_ERROR, "Error", mPoppler); - G_DEF_CLASS(POPPLER_TYPE_ORIENTATION, "Orientation", mPoppler); -+ - #if POPPLER_CHECK_VERSION(0, 6, 0) - G_DEF_CLASS(POPPLER_TYPE_PAGE_TRANSITION_TYPE, - "PageTransitionType", mPoppler); -@@ -61,8 +62,24 @@ - G_DEF_CLASS(POPPLER_TYPE_FORM_BUTTON_TYPE, "FormButtonType", mPoppler); - G_DEF_CLASS(POPPLER_TYPE_FORM_TEXT_TYPE, "FormTextType", mPoppler); - G_DEF_CLASS(POPPLER_TYPE_FORM_CHOICE_TYPE, "FormChoiceType", mPoppler); -+#endif - -+#if POPPLER_CHECK_VERSION(0, 7, 2) -+ G_RENAME_NICK("3D", "TYPE_3D"); -+ G_DEF_CLASS(POPPLER_TYPE_ANNOT_TYPE, "AnnotationType", mPoppler); -+ G_DEF_CLASS(POPPLER_TYPE_ANNOT_FLAG, "AnnotationFlag", mPoppler); -+ G_DEF_CLASS(POPPLER_TYPE_ANNOT_MARKUP_REPLY_TYPE, -+ "AnnotationMarkupReplyType", mPoppler); -+ G_RENAME_NICK("3D", "TYPE_3D"); -+ G_DEF_CLASS(POPPLER_TYPE_ANNOT_EXTERNAL_DATA_TYPE, -+ "AnnotationExternalDataType", mPoppler); -+ G_DEF_CLASS(POPPLER_TYPE_ANNOT_TEXT_ICON, "AnnotationTextIcon", mPoppler); -+ G_DEF_CLASS(POPPLER_TYPE_ANNOT_TEXT_STATE, "AnnotationTextState", mPoppler); -+ G_DEF_CLASS(POPPLER_TYPE_ANNOT_FREE_TEXT_QUADDING, -+ "AnnotationFreeTextQuadding", mPoppler); - #endif -+ -+ - G_DEF_CLASS(POPPLER_TYPE_BACKEND, "Backend", mPoppler); - - rb_define_module_function(mPoppler, "backend", get_backend, 0); -Index: ruby-gnome2-0.16.0/poppler/src/rbpoppler.h -=================================================================== ---- ruby-gnome2-0.16.0.orig/poppler/src/rbpoppler.h 2008-05-29 17:13:16.000000000 +0200 -+++ ruby-gnome2-0.16.0/poppler/src/rbpoppler.h 2008-05-29 17:13:25.000000000 +0200 -@@ -46,7 +46,14 @@ - #define RVAL2ACTIONTYPE(obj) (RVAL2GENUM(obj, POPPLER_TYPE_ACTION_TYPE)) - #define SELSTYLE2RVAL(obj) (GENUM2RVAL(obj, POPPLER_TYPE_SELECTION_STYLE)) - #define RVAL2SELSTYLE(obj) (RVAL2GENUM(obj, POPPLER_TYPE_SELECTION_STYLE)) --#define RVAL2COLOR(obj) ((GdkColor *)RVAL2BOXED(obj, GDK_TYPE_COLOR)) -+#define RVAL2GDKCOLOR(obj) ((GdkColor *)RVAL2BOXED(obj, GDK_TYPE_COLOR)) -+ -+#ifdef POPPLER_TYPE_COLOR -+extern PopplerColor *rb_poppler_ruby_object_to_color(VALUE color); -+# define RVAL2COLOR(obj) (rb_poppler_ruby_object_to_color(obj)) -+#else -+# define RVAL2COLOR(obj) (RVAL2GDKCOLOR(obj)) -+#endif - - #define ACTION2RVAL(obj) (rb_poppler_ruby_object_from_action(obj)) - #define RVAL2ACTION(obj) (rb_poppler_action_from_ruby_object(obj)) -Index: ruby-gnome2-0.16.0/poppler/extconf.rb -=================================================================== ---- ruby-gnome2-0.16.0.orig/poppler/extconf.rb 2008-05-29 17:13:17.000000000 +0200 -+++ ruby-gnome2-0.16.0/poppler/extconf.rb 2008-05-29 17:13:25.000000000 +0200 -@@ -31,6 +31,7 @@ - - make_version_header("POPPLER", PACKAGE_ID) - have_func("poppler_page_render_selection_to_pixbuf") -+have_struct_member("PopplerImageMapping", "image_id", ["poppler.h"]) - - create_makefile_at_srcdir(PACKAGE_NAME, SRCDIR, "-DRUBY_POPPLER_COMPILATION") - create_top_makefile |