/* 
 * gprintable.c 
 *
 * Copyright (C) 2003 Jean Bréfort <jean.brefort@normalesup.org>
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301
 * USA
 */

#include "gprintable.h"

GType
g_printable_get_type (void)
{
	static GType g_printable_type = 0;

	if (!g_printable_type) {
		static const GTypeInfo g_printable_info = {
	  		sizeof (GPrintableIface),
	  		NULL, NULL, NULL, NULL, NULL, 0, 0, NULL
		};
		g_printable_type = g_type_register_static (G_TYPE_INTERFACE, "GPrintable", &g_printable_info, 0);
	}

	return g_printable_type;
}

void
g_printable_print (GPrintable *gprintable, GnomePrintContext *pc)
{
	GPrintableIface *iface;

	g_return_if_fail (G_IS_PRINTABLE (gprintable));
	g_return_if_fail (GNOME_IS_PRINT_CONTEXT (pc));

	iface = G_PRINTABLE_GET_IFACE (gprintable);

	if (iface->print)
		iface->print (gprintable, pc);
}

void
g_printable_export_svg (GPrintable *gprintable, xmlDocPtr doc, xmlNodePtr node)
{
	GPrintableIface *iface;

	g_return_if_fail (G_IS_PRINTABLE (gprintable));
	g_return_if_fail (doc != NULL);
	g_return_if_fail (node != NULL);

	iface = G_PRINTABLE_GET_IFACE (gprintable);

	if (iface->export_svg)
		iface->export_svg (gprintable, doc, node);
}


syntax highlighted by Code2HTML, v. 0.9.1