rpms/ruby-gnome2/F-7 ruby-gnome2-all-0.16.0-glib-2.14.patch, NONE, 1.1 ruby-gnome2-all-0.16.0-newpoppler.patch, NONE, 1.1 ruby-gnome2-all-0.16.0-typedef.patch, NONE, 1.1 ruby-gnome2.spec, 1.4, 1.5
Allisson Azevedo (allisson)
fedora-extras-commits at redhat.com
Wed Oct 24 11:13:04 UTC 2007
Author: allisson
Update of /cvs/extras/rpms/ruby-gnome2/F-7
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv16939/F-7
Modified Files:
ruby-gnome2.spec
Added Files:
ruby-gnome2-all-0.16.0-glib-2.14.patch
ruby-gnome2-all-0.16.0-newpoppler.patch
ruby-gnome2-all-0.16.0-typedef.patch
Log Message:
Rebuild against new firefox
ruby-gnome2-all-0.16.0-glib-2.14.patch:
--- NEW FILE ruby-gnome2-all-0.16.0-glib-2.14.patch ---
--- ruby-gnome2-all-0.16.0/glib/src/rbglib_maincontext.c.glib2_14 2006-12-29 22:17:28.000000000 +0900
+++ ruby-gnome2-all-0.16.0/glib/src/rbglib_maincontext.c 2007-08-09 23:05:28.000000000 +0900
@@ -343,7 +343,7 @@
info->callback = func;
id = g_timeout_add_seconds(NUM2UINT(interval),
(GSourceFunc)invoke_source_func,
- (gpointer)info, g_free);
+ (gpointer)info);
info->id = id;
rb_id = UINT2NUM(id);
G_RELATIVE2(mGLibSource, func, id__callbacks__, rb_id);
--- ruby-gnome2-all-0.16.0/glib/src/rbglib_unicode.c.glib2_14 2006-12-29 22:17:28.000000000 +0900
+++ ruby-gnome2-all-0.16.0/glib/src/rbglib_unicode.c 2007-08-09 23:35:54.000000000 +0900
@@ -140,7 +140,7 @@
rbglib_m_unichar_get_script(VALUE self, VALUE unichar)
{
return GENUM2RVAL(g_unichar_get_script(NUM2UINT(unichar)),
- G_TYPE_UNICODE_SCRIPT_TYPE);
+ G_TYPE_UNICODE_SCRIPT);
}
#endif
ruby-gnome2-all-0.16.0-newpoppler.patch:
--- NEW FILE ruby-gnome2-all-0.16.0-newpoppler.patch ---
diff -up ruby-gnome2-all-0.16.0/poppler/src/rbpoppler.h.newpoppler ruby-gnome2-all-0.16.0/poppler/src/rbpoppler.h
--- ruby-gnome2-all-0.16.0/poppler/src/rbpoppler.h.newpoppler 2007-09-13 09:19:35.000000000 -0300
+++ ruby-gnome2-all-0.16.0/poppler/src/rbpoppler.h 2007-09-13 09:21:32.000000000 -0300
@@ -38,16 +38,27 @@ extern GType poppler_dest_get_type (void
#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, 5, 9)
+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);
diff -up ruby-gnome2-all-0.16.0/poppler/src/rbpoppler-page.c.newpoppler ruby-gnome2-all-0.16.0/poppler/src/rbpoppler-page.c
--- ruby-gnome2-all-0.16.0/poppler/src/rbpoppler-page.c.newpoppler 2007-09-13 09:19:47.000000000 -0300
+++ ruby-gnome2-all-0.16.0/poppler/src/rbpoppler-page.c 2007-09-13 09:21:06.000000000 -0300
@@ -4,7 +4,7 @@
rbpoppler-page.c -
$Author: ktou $
- $Date: 2006/09/06 02:25:35 $
+ $Date: 2007/09/08 15:06:45 $
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)
+
+#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;
+static VALUE cPSFile, cRectangle;
+
+#if POPPLER_CHECK_VERSION(0, 5, 9)
+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 @@ page_render_to_pixbuf(VALUE self, VALUE
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 @@ page_render(VALUE self, VALUE cairo)
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 @@ static VALUE
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 @@ static VALUE
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, 5, 9)
+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 @@ page_get_thumbnail_size(VALUE self)
{
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 @@ page_get_thumbnail_size(VALUE self)
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, 5, 9)
+ PopplerSelectionStyle style = POPPLER_SELECTION_GLYPH;
+#endif
+ VALUE rb_text, arg1, arg2, rb_rect;
+ PopplerPage *page;
+
+ 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, 5, 9)
+ 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, 5, 9)
+ style,
+#endif
+ &rect);
+ } else {
+ text = poppler_page_get_text(page,
+#if POPPLER_CHECK_VERSION(0, 5, 9)
+ style,
+#endif
+ RVAL2RECT(rb_rect));
+ }
- text = poppler_page_get_text(RVAL2GOBJ(self), RVAL2RECT(rect));
rb_text = CSTR2RVAL(text);
g_free(text);
return rb_text;
@@ -119,15 +199,50 @@ page_get_text(VALUE self, VALUE rect)
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, 5, 9)
+static VALUE
+page_get_image_mapping(VALUE 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(VALUE self, VALUE scale, VALUE selection)
+page_get_selection_region(int argc, VALUE *argv, VALUE self)
{
- return REGION2RVAL(poppler_page_get_selection_region(RVAL2GOBJ(self),
+#if POPPLER_CHECK_VERSION(0, 5, 9)
+ 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, 5, 9)
+ style = RVAL2SELSTYLE(arg2);
+#endif
+ selection = arg3;
+ }
+
+ return REGION2RVAL(poppler_page_get_selection_region(SELF(self),
NUM2DBL(scale),
+#if POPPLER_CHECK_VERSION(0, 5, 9)
+ style,
+#endif
RVAL2RECT(selection)));
}
@@ -136,15 +251,16 @@ page_get_selection_region(VALUE self, VA
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 @@ static VALUE
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,24 +301,86 @@ page_render_selection_to_pixbuf(VALUE se
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, 5, 9)
+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. */
@@ -213,107 +398,320 @@ rectangle_initialize(VALUE self, VALUE x
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, 5, 9)
+
+/* 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)
+{
+ 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;
+}
+
+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)->x2);
+ return INT2NUM(poppler_form_field_get_id(RVAL2FF(self)));
}
-static VALUE
-rectangle_get_y2(VALUE self)
+VALUE
+form_field_get_font_size(VALUE self)
+{
+ return rb_float_new(poppler_form_field_get_font_size(RVAL2FF(self)));
+}
+
+VALUE
+form_field_is_read_only(VALUE self)
{
- return rb_float_new(RVAL2RECT(self)->y2);
+ 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)));
+}
-static VALUE
-rectangle_set_x1(VALUE self, VALUE x1)
+VALUE
+button_field_get_state(VALUE self)
{
- RVAL2RECT(self)->x1 = NUM2DBL(x1);
+ 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)
+{
+ 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)
{
- RVAL2RECT(self)->x2 = NUM2DBL(x2);
+ 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, 5, 9)
+ 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, 5, 9)
+ 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, 5, 9)
+ 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, 5, 9)
+ 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, 5, 9)
+ rb_define_method(cPage, "crop_box", page_get_crop_box, 0);
+#endif
G_DEF_SETTERS(cPage);
@@ -335,5 +733,102 @@ Init_poppler_page(VALUE mPoppler)
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, 5, 9)
+/* 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
}
ruby-gnome2-all-0.16.0-typedef.patch:
--- NEW FILE ruby-gnome2-all-0.16.0-typedef.patch ---
--- ruby-gnome2-all-0.16.0/glib/src/rbgobj_boxed.c.typedef 2006-12-29 22:17:28.000000000 +0900
+++ ruby-gnome2-all-0.16.0/glib/src/rbgobj_boxed.c 2007-08-04 02:13:43.000000000 +0900
@@ -145,7 +145,8 @@
gpointer
rbgobj_boxed_get(obj, gtype)
- VALUE obj, gtype;
+ VALUE obj;
+ GType gtype;
{
boxed_holder* holder;
Data_Get_Struct(obj, boxed_holder, holder);
--- ruby-gnome2-all-0.16.0/gtk/src/rbgtk.h.typedef 2006-12-29 22:17:28.000000000 +0900
+++ ruby-gnome2-all-0.16.0/gtk/src/rbgtk.h 2007-08-04 02:17:36.000000000 +0900
@@ -115,7 +115,7 @@
*/
typedef void (*rbgtkiter_set_value_func)(void *model, GtkTreeIter *iter,
gint column, GValue *value);
-extern void rbgtk_register_treeiter_set_value_func(VALUE klass, rbgtkiter_set_value_func);
+extern void rbgtk_register_treeiter_set_value_func(GType klass, rbgtkiter_set_value_func);
/*
* Gtk::SelectionData
Index: ruby-gnome2.spec
===================================================================
RCS file: /cvs/extras/rpms/ruby-gnome2/F-7/ruby-gnome2.spec,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- ruby-gnome2.spec 9 Aug 2007 10:39:24 -0000 1.4
+++ ruby-gnome2.spec 24 Oct 2007 11:12:30 -0000 1.5
@@ -3,17 +3,18 @@
Name: ruby-gnome2
Version: 0.16.0
-Release: 9%{?dist}
+Release: 13%{?dist}
Summary: Ruby binding of libgnome/libgnomeui-2.x
Group: System Environment/Libraries
-License: LGPL
+License: LGPLv2+
URL: http://ruby-gnome2.sourceforge.jp/
Source0: http://downloads.sourceforge.net/%{name}/%{name}-all-%{version}.tar.gz
Patch0: ruby-gnome2-script.patch
Patch10: ruby-gnome2-all-0.16.0-typedef.patch
Patch11: ruby-gnome2-all-0.16.0-newpoppler.patch
+Patch12: ruby-gnome2-all-0.16.0-glib-2.14.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: ruby ruby-devel gtk2-devel libgnome-devel libgnomeui-devel
@@ -237,9 +238,22 @@
BuildRequires: ruby ruby-devel gtk2-devel pango-devel
-%if "%fedora" > "6"
-BuildRequires: firefox-devel = 2.0.0.6
-Requires: firefox = 2.0.0.6
+
+
+
+%if "%fedora" > "8"
+BuildRequires: firefox-devel = 2.0.0.8
+Requires: firefox = 2.0.0.8
+%endif
+
+%if "%fedora" == "8"
+BuildRequires: firefox-devel = 2.0.0.8
+Requires: firefox = 2.0.0.8
+%endif
+
+%if "%fedora" == "7"
+BuildRequires: firefox-devel = 2.0.0.8
+Requires: firefox = 2.0.0.8
%endif
%if "%fedora" == "6"
@@ -421,6 +435,7 @@
%patch0 -p1
%patch10 -p1 -b .typedef
%patch11 -p1 -b .newpoppler
+%patch12 -p1 -b .glib2_14
#Because of an error in upstream packaging there is a second ruby-gnome2 dir inside so we delete it
#%{__rm} -rf %{name}
@@ -615,6 +630,19 @@
%changelog
+* Wed Oct 24 2007 Allisson Azevedo <allisson at gmail.com> 0.16.0-13
+- Rebuild against new firefox
+
+* Thu Sep 13 2007 Allisson Azevedo <allisson at gmail.com> 0.16.0-12
+- Newpoppler.patch updated for poppler 0.6
+
+* Sat Sep 8 2007 Allisson Azevedo <allisson at gmail.com> 0.16.0-11
+- Rebuild against new poppler
+- Changed license to LGPLv2+
+
+* Thu Aug 9 2007 Mamoru Tasaka <mtasaka at ioa.s.u-tokyo.ac.jp> 0.16.0-10
+- Adjust to GLib 2.14 API + typo fix in glib module
+
* Thu Aug 9 2007 Allisson Azevedo <allisson at gmail.com> 0.16.0-9
- Rebuild against new firefox
More information about the fedora-extras-commits
mailing list