diff --git a/ChangeLog b/ChangeLog index a9846cde8..fbad90c97 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2008-04-16 Mike Kestner + + * gtk/Gtk.metadata: hide PrintContext.get_CairoContext. + * gtk/PrintContext.custom: manual get_cairo_context implementation. + Mono.Cairo assumes it is wrapping owned references, so we need to + take a ref out on the returned cairo_t pointer. + * sample/GtkDemo/DemoPrinting.cs: dispose the CairoContext in + to be a good citizen and avoid warnings. + 2008-04-15 Mike Kestner * generator/ReturnValue.cs: use new GLib.Opaque.OwnedCopy for owned diff --git a/gtk/Gtk.metadata b/gtk/Gtk.metadata index 8739135f5..9f8a08fff 100644 --- a/gtk/Gtk.metadata +++ b/gtk/Gtk.metadata @@ -491,6 +491,7 @@ 1 1 IsEmbedded + 1 GetAcceptsPdf GetAcceptsPs GetHasDetails diff --git a/gtk/Makefile.am b/gtk/Makefile.am index 1bfaaf8da..4cbeb304a 100644 --- a/gtk/Makefile.am +++ b/gtk/Makefile.am @@ -91,6 +91,7 @@ customs = \ Notebook.custom \ Object.custom \ Plug.custom \ + PrintContext.custom \ Printer.custom \ RadioButton.custom \ RadioMenuItem.custom \ diff --git a/gtk/PrintContext.custom b/gtk/PrintContext.custom new file mode 100644 index 000000000..c94cad313 --- /dev/null +++ b/gtk/PrintContext.custom @@ -0,0 +1,35 @@ +// PrintContext.custom - customizations to Gtk.PrintContext +// +// Authors: Mike Kestner +// +// Copyright (c) 2008 Novell, Inc. +// +// This program is free software; you can redistribute it and/or +// modify it under the terms of version 2 of the Lesser GNU General +// Public License as published by the Free Software Foundation. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this program; if not, write to the +// Free Software Foundation, Inc., 59 Temple Place - Suite 330, +// Boston, MA 02111-1307, USA. + + + [DllImport("libgtk-win32-2.0-0.dll")] + static extern IntPtr gtk_print_context_get_cairo_context(IntPtr raw); + + [DllImport("libcairo-2.dll")] + static extern void cairo_reference (IntPtr raw); + + public Cairo.Context CairoContext { + get { + IntPtr raw_ret = gtk_print_context_get_cairo_context (Handle); + cairo_reference (raw_ret); + return new Cairo.Context (raw_ret); + } + } + diff --git a/sample/GtkDemo/DemoPrinting.cs b/sample/GtkDemo/DemoPrinting.cs index f326f390f..6b2c0dc61 100644 --- a/sample/GtkDemo/DemoPrinting.cs +++ b/sample/GtkDemo/DemoPrinting.cs @@ -126,6 +126,7 @@ namespace GtkDemo cr.RelMoveTo (0, fontSize); line++; } + (cr as IDisposable).Dispose (); layout = null; }