Hi,Sorry for the large diff file I posted this morning. Here is a new one with only relevant changes.
I also join a sample test program. Best regards, Jean
Attachment:
libgnomecanvas-2.2.0.1.diff.bz2
Description: Binary data
#include <libgnomecanvas/libgnomecanvas.h> #include <libgnomeprint/gnome-print.h> #include <libgnomeprint/gnome-print-job.h> int main (int argc, char *argv[]) { GnomeCanvas *canvas; GdkPixbuf *im; GnomeCanvasItem *image; GnomePrintJob *gpm; GnomePrintContext *gpc; double x, y; double matrix[6]={1.0, 0, 0, -1.0, 25, 750}; gtk_init (&argc, &argv); canvas = GNOME_CANVAS (gnome_canvas_new()); gtk_widget_set_size_request (GTK_WIDGET (canvas), 200, 200); gnome_canvas_set_scroll_region (GNOME_CANVAS (canvas), 0, 0, 200, 200); gnome_canvas_item_new (gnome_canvas_root (GNOME_CANVAS (canvas)), gnome_canvas_ellipse_get_type (), "x1", 50.0, "y1", 50.0, "x2", 150.0, "y2", 150.0, "outline_color", "black", "width_units", 4.0, NULL); im = gdk_pixbuf_new_from_file("image.png", NULL); x = 100 - (double) gdk_pixbuf_get_width(im) / 2.0; y = 100 - (double) gdk_pixbuf_get_height(im) / 2.0; if (im){ image = gnome_canvas_item_new (gnome_canvas_root (GNOME_CANVAS (canvas)), gnome_canvas_pixbuf_get_type (), "pixbuf", im, "x", x, "y", y, "width", (double) gdk_pixbuf_get_width(im), "height", (double) gdk_pixbuf_get_height(im), NULL); gdk_pixbuf_unref(im); } while(gtk_events_pending()) gtk_main_iteration(); gpm = gnome_print_job_new (NULL); gpc = gnome_print_job_get_context (gpm); gnome_print_beginpage (gpc, (const guchar*)""); gnome_print_concat (gpc, matrix); gnome_canvas_print (canvas, gpc); gnome_print_showpage (gpc); gnome_print_job_close (gpm); gnome_print_job_print (gpm); return 0; }