[Gtk-sharp-list] Gnome.Print
Larry Ewing
lewing@ximian.com
Mon, 05 Apr 2004 08:36:07 -0500
--=-KD0UPDPKWLQIlvhgmVsb
Content-Type: text/plain
Content-Transfer-Encoding: 7bit
I forgot to attach the new file, here it is.
--Larry
On Mon, 2004-04-05 at 08:31 -0500, Larry Ewing wrote:
> I was playing with the Gnome.Print bindings a while a ago and ran into
> the problem that it was impossible to print images. After a looking
> into it a little I've come up with a couple of possible patches and I'm
> wondering where to proceed from here.
>
> The first patch changes the generators signature so that it is possible
> to use the *image functions. The second one adds a Print.Pixbuf method
> and imports the *image functions with a different signature since
> Pixbuf.Pixels is a pointer type. I guess I'm wondering where to go from
> here.
>
> --Larry
--=-KD0UPDPKWLQIlvhgmVsb
Content-Disposition: attachment; filename=Print.custom
Content-Type: text/plain; name=Print.custom; charset=iso-8859-15
Content-Transfer-Encoding: 7bit
// Pixbuf.custom - Gdk Pixbuf class customizations
//
// Authors:
// Larry Ewing <lewing@ximian.com
//
// (C) 2004 Novell, Inc. (Larry Ewing)
//
// This code is inserted after the automatically generated code
[DllImport("gnomeprint-2-2")]
static extern unsafe int gnome_print_rgbimage(IntPtr pc, byte * data, int width, int height, int rowstride);
[DllImport("gnomeprint-2-2")]
static extern unsafe int gnome_print_rgbaimage(IntPtr pc, byte * data, int width, int height, int rowstride);
public static int Pixbuf (Gnome.PrintContext pc, Gdk.Pixbuf image) {
int raw_ret = 0;
if (image.NChannels == 4)
raw_ret = gnome_print_rgbaimage(pc.Handle, image.Pixels, image.Width, image.Height, image.Rowstride);
else
raw_ret = gnome_print_rgbimage(pc.Handle, image.Pixels, image.Width, image.Height, image.Rowstride);
int ret = raw_ret;
return ret;
}
--=-KD0UPDPKWLQIlvhgmVsb--