<MACRO>
<NAME>GNOME_TYPE_PRINT_GDI</NAME>
#define GNOME_TYPE_PRINT_GDI         (gnome_print_gdi_get_type ())
</MACRO>
<MACRO>
<NAME>GNOME_PRINT_GDI</NAME>
#define GNOME_PRINT_GDI(o)           (G_TYPE_CHECK_INSTANCE_CAST ((o), GNOME_TYPE_PRINT_GDI, GnomePrintGdi))
</MACRO>
<MACRO>
<NAME>GNOME_PRINT_GDI_CLASS</NAME>
#define GNOME_PRINT_GDI_CLASS(k)     (G_TYPE_CHECK_CLASS_CAST ((k),    GNOME_TYPE_PRINT_GDI, GnomePrintGdiClass))
</MACRO>
<MACRO>
<NAME>GNOME_IS_PRINT_GDI</NAME>
#define GNOME_IS_PRINT_GDI(o)        (G_TYPE_CHECK_INSTANCE_TYPE ((o), GNOME_TYPE_PRINT_GDI))
</MACRO>
<MACRO>
<NAME>GNOME_IS_PRINT_GDI_CLASS</NAME>
#define GNOME_IS_PRINT_GDI_CLASS(k)  (G_TYPE_CHECK_CLASS_TYPE ((k),    GNOME_TYPE_PRINT_GDI))
</MACRO>
<MACRO>
<NAME>GNOME_PRINT_GDI_GET_CLASS</NAME>
#define GNOME_PRINT_GDI_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o),  GNOME_TYPE_PRINT_GDI, GnomePrintGdiClass))
</MACRO>
<STRUCT>
<NAME>GnomePrintGdi</NAME>
</STRUCT>
<STRUCT>
<NAME>GnomePrintGdiClass</NAME>
</STRUCT>
<FUNCTION>
<NAME>gnome_print_gdi_get_type</NAME>
<RETURNS>GType  </RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_gdi_new</NAME>
<RETURNS>GnomePrintContext  *</RETURNS>
GnomePrintConfig *config
</FUNCTION>
<STRUCT>
<NAME>GPFontMap</NAME>
</STRUCT>
<STRUCT>
<NAME>GPFontEntry</NAME>
</STRUCT>
<STRUCT>
<NAME>GPFontEntryAlias</NAME>
</STRUCT>
<STRUCT>
<NAME>GPFamilyEntry</NAME>
</STRUCT>
<ENUM>
<NAME>GPFontEntryType</NAME>
typedef enum {
	GP_FONT_ENTRY_UNKNOWN,
	GP_FONT_ENTRY_TYPE1,
	GP_FONT_ENTRY_TRUETYPE,
	GP_FONT_ENTRY_ALIAS
} GPFontEntryType;
</ENUM>
<STRUCT>
<NAME>GPFontMap</NAME>
struct GPFontMap {
	gint refcount;
	gint num_fonts;

	GHashTable *fontdict;	  /* Name -> FontEntry */
	GHashTable *familydict;	  /* Family name -> FamilyEntry */
	GHashTable *filenamedict; /* File/index -> FontEntry */

	GSList *fonts;	        /* List of FontEntries, sorted A-Z */
	GSList *families;	/* List of FamilyEntries, sorted A-Z */

	GList *fontlist;	/* List of font names (pointing to entry->name) */
	GList *familylist;	/* List of family names (pointing to entry->name */
};
</STRUCT>
<STRUCT>
<NAME>GPFontEntry</NAME>
struct GPFontEntry {
	GPFontEntryType type;

	gint refcount;

	GnomeFontFace * face;

	gchar *name;
	gchar *familyname;
	gchar *speciesname;
	gchar *file;
	gint   index;
	gchar *unused;
	gint   italic_angle; /* italic < 0 */
	GnomeFontWeight Weight;

	gboolean is_alias; 
};
</STRUCT>
<STRUCT>
<NAME>GPFamilyEntry</NAME>
struct GPFamilyEntry {
	gint refcount;
	gchar *name;
	GSList *fonts; /* List with GPFontEntry childs */

	gboolean is_alias;
};
</STRUCT>
<STRUCT>
<NAME>GPFontEntryAlias</NAME>
struct GPFontEntryAlias {
	GPFontEntry entry;
	GPFontEntry * ref;
};
</STRUCT>
<FUNCTION>
<NAME>gp_fontmap_get</NAME>
<RETURNS>GPFontMap  *</RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>gp_fontmap_release</NAME>
<RETURNS>void  </RETURNS>
GPFontMap *
</FUNCTION>
<FUNCTION>
<NAME>gp_font_entry_ref</NAME>
<RETURNS>void  </RETURNS>
GPFontEntry * entry
</FUNCTION>
<FUNCTION>
<NAME>gp_font_entry_unref</NAME>
<RETURNS>void  </RETURNS>
GPFontEntry * entry
</FUNCTION>
<FUNCTION>
<NAME>gp_fontmap_lookup_weight</NAME>
<RETURNS>GnomeFontWeight  </RETURNS>
const gchar * weight
</FUNCTION>
<FUNCTION>
<NAME>libgnomeprint_marshal_VOID__OBJECT_DOUBLE_DOUBLE_POINTER</NAME>
<RETURNS>void  </RETURNS>
GClosure     *closure,GValue       *return_value,guint         n_param_values,const GValue *param_values,gpointer      invocation_hint,gpointer      marshal_data
</FUNCTION>
<FUNCTION>
<NAME>libgnomeprint_marshal_INT__OBJECT_POINTER_POINTER</NAME>
<RETURNS>void  </RETURNS>
GClosure     *closure,GValue       *return_value,guint         n_param_values,const GValue *param_values,gpointer      invocation_hint,gpointer      marshal_data
</FUNCTION>
<MACRO>
<NAME>GNOME_TYPE_RFONT</NAME>
#define GNOME_TYPE_RFONT         (gnome_rfont_get_type ())
</MACRO>
<MACRO>
<NAME>GNOME_RFONT</NAME>
#define GNOME_RFONT(o)           (G_TYPE_CHECK_INSTANCE_CAST ((o), GNOME_TYPE_RFONT, GnomeRFont))
</MACRO>
<MACRO>
<NAME>GNOME_RFONT_CLASS</NAME>
#define GNOME_RFONT_CLASS(k)     (G_TYPE_CHECK_CLASS_CAST ((k), GNOME_TYPE_RFONT, GnomeRFontClass))
</MACRO>
<MACRO>
<NAME>GNOME_IS_RFONT</NAME>
#define GNOME_IS_RFONT(o)        (G_TYPE_CHECK_INSTANCE_TYPE ((o), GNOME_TYPE_RFONT))
</MACRO>
<MACRO>
<NAME>GNOME_IS_RFONT_CLASS</NAME>
#define GNOME_IS_RFONT_CLASS(k)  (G_TYPE_CHECK_CLASS_TYPE ((k), GNOME_TYPE_RFONT))
</MACRO>
<MACRO>
<NAME>GNOME_RFONT_GET_CLASS</NAME>
#define GNOME_RFONT_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GNOME_TYPE_RFONT, GnomeRFontClass))
</MACRO>
<MACRO>
<NAME>gnome_rfont_ref</NAME>
#define gnome_rfont_ref(o)   g_object_ref (G_OBJECT (o))
</MACRO>
<MACRO>
<NAME>gnome_rfont_unref</NAME>
#define gnome_rfont_unref(o) g_object_unref (G_OBJECT (o))
</MACRO>
<MACRO>
<NAME>gnome_rfont_render_pgl_rgb8</NAME>
#define gnome_rfont_render_pgl_rgb8  gnome_pgl_render_rgb8
</MACRO>
<MACRO>
<NAME>gnome_rfont_render_pgl_rgba8</NAME>
#define gnome_rfont_render_pgl_rgba8 gnome_pgl_render_rgba8
</MACRO>
<MACRO>
<NAME>GNOME_RFONT_RENDER_DEFAULT</NAME>
#define GNOME_RFONT_RENDER_DEFAULT 0
</MACRO>
<STRUCT>
<NAME>GnomeRFont</NAME>
</STRUCT>
<STRUCT>
<NAME>GnomeRFontClass</NAME>
</STRUCT>
<FUNCTION>
<NAME>gnome_rfont_get_type</NAME>
<RETURNS>GType  </RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_get_rfont</NAME>
<RETURNS>GnomeRFont  *</RETURNS>
GnomeFont *font, const gdouble *t
</FUNCTION>
<FUNCTION>
<NAME>gnome_rfont_get_font</NAME>
<RETURNS>GnomeFont  *</RETURNS>
const GnomeRFont *rfont
</FUNCTION>
<FUNCTION>
<NAME>gnome_rfont_get_face</NAME>
<RETURNS>GnomeFontFace  *</RETURNS>
const GnomeRFont *rfont
</FUNCTION>
<FUNCTION>
<NAME>gnome_rfont_get_matrix</NAME>
<RETURNS>gdouble  *</RETURNS>
const GnomeRFont *rfont, gdouble *matrix
</FUNCTION>
<FUNCTION>
<NAME>gnome_rfont_get_glyph_stdadvance</NAME>
<RETURNS>ArtPoint  *</RETURNS>
GnomeRFont *rfont, gint glyph, ArtPoint *advance
</FUNCTION>
<FUNCTION>
<NAME>gnome_rfont_get_glyph_stdbbox</NAME>
<RETURNS>ArtDRect  *</RETURNS>
GnomeRFont *rfont, gint glyph, ArtDRect *bbox
</FUNCTION>
<FUNCTION>
<NAME>gnome_rfont_get_glyph_stdkerning</NAME>
<RETURNS>ArtPoint  *</RETURNS>
GnomeRFont *rfont, gint glyph0, gint glyph1, ArtPoint *kerning
</FUNCTION>
<FUNCTION>
<NAME>gnome_rfont_get_glyph_bpath</NAME>
<RETURNS>const ArtBpath  *</RETURNS>
GnomeRFont * rfont, gint glyph
</FUNCTION>
<FUNCTION>
<NAME>gnome_rfont_get_glyph_svp</NAME>
<RETURNS>const ArtSVP  *</RETURNS>
GnomeRFont * rfont, gint glyph
</FUNCTION>
<FUNCTION>
<NAME>gnome_rfont_get_closest_pango_font</NAME>
<RETURNS>PangoFont  *</RETURNS>
const GnomeRFont *rfont, PangoFontMap *map
</FUNCTION>
<FUNCTION>
<NAME>gnome_rfont_get_pango_description</NAME>
<RETURNS>PangoFontDescription  *</RETURNS>
const GnomeRFont *rfont
</FUNCTION>
<STRUCT>
<NAME>GnomePrintPdf</NAME>
</STRUCT>
<STRUCT>
<NAME>GnomePrintPdfFont</NAME>
</STRUCT>
<STRUCT>
<NAME>GnomePrintPdfFont</NAME>
struct GnomePrintPdfFont {
	GnomeFontFace *face;
	GnomeFontPsObject *pso;
	guint is_basic_14 : 1;
	guint is_type_1 : 1; /* FALSE == TrueType */

	gint nglyphs;
	gint object_number;

	gint code_assigned; /* It is a counter of the last code assigned */
	GHashTable *glyph_to_code; /* Given a glyph, give me its code  */
	gint *code_to_glyph; /* Array of code->glyph conversion */
	
	gint object_number_encoding;
	gint object_number_widths;
	gint object_number_lastchar;
};
</STRUCT>
<MACRO>
<NAME>EOL</NAME>
#define EOL "\r\n"
</MACRO>
<FUNCTION>
<NAME>gnome_print_pdf_print_sized</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintPdf *pdf, const char *content, gint len
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_pdf_fprintf</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintPdf *pdf, const char *format, ...
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_pdf_print_double</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintPdf *pdf, const gchar *format, gdouble x
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_pdf_object_new</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintPdf *pdf
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_pdf_object_start</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintPdf *pdf, gint object_number, gboolean dont_print
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_pdf_object_end</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintPdf *pdf, gint object_number, gboolean dont_print
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_embed_pdf_font</NAME>
<RETURNS>void  </RETURNS>
GnomePrintPdf *pdf, GnomePrintPdfFont *font, gint *glyph2unicode
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_pdf_t1_embed</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintPdf *pdf, const guchar *file_name, gint *object_number
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_pdf_tt_embed</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintPdf *pdf, const guchar *file_name, gint *object_number
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_pdf_tt_subset_embed</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintPdf *pdf, GnomePrintPdfFont *font, const guchar *file_name, gint *object_number
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_pdf_font_tounicode</NAME>
<RETURNS>void  </RETURNS>
GnomePrintPdf *pdf, GnomePrintPdfFont *font, gint *glyph2unicode, gint *object_number_descriptor_ret
</FUNCTION>
<STRUCT>
<NAME>GPPath</NAME>
</STRUCT>
<FUNCTION>
<NAME>gp_path_new</NAME>
<RETURNS>GPPath  *</RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>gp_path_new_sized</NAME>
<RETURNS>GPPath  *</RETURNS>
gint length
</FUNCTION>
<FUNCTION>
<NAME>gp_path_new_from_bpath</NAME>
<RETURNS>GPPath  *</RETURNS>
ArtBpath * bpath
</FUNCTION>
<FUNCTION>
<NAME>gp_path_new_from_static_bpath</NAME>
<RETURNS>GPPath  *</RETURNS>
ArtBpath * bpath
</FUNCTION>
<FUNCTION>
<NAME>gp_path_new_from_foreign_bpath</NAME>
<RETURNS>GPPath  *</RETURNS>
const ArtBpath * bpath
</FUNCTION>
<FUNCTION>
<NAME>gp_path_ref</NAME>
<RETURNS>void  </RETURNS>
GPPath * path
</FUNCTION>
<FUNCTION>
<NAME>gp_path_unref</NAME>
<RETURNS>void  </RETURNS>
GPPath * path
</FUNCTION>
<FUNCTION>
<NAME>gp_path_reset</NAME>
<RETURNS>void  </RETURNS>
GPPath * path
</FUNCTION>
<FUNCTION>
<NAME>gp_path_finish</NAME>
<RETURNS>void  </RETURNS>
GPPath * path
</FUNCTION>
<FUNCTION>
<NAME>gp_path_ensure_space</NAME>
<RETURNS>void  </RETURNS>
GPPath * path, gint space
</FUNCTION>
<FUNCTION>
<NAME>gp_path_copy</NAME>
<RETURNS>GPPath  *</RETURNS>
GPPath * dst, const GPPath * src
</FUNCTION>
<FUNCTION>
<NAME>gp_path_duplicate</NAME>
<RETURNS>GPPath  *</RETURNS>
const GPPath * path
</FUNCTION>
<FUNCTION>
<NAME>gp_path_concat</NAME>
<RETURNS>GPPath  *</RETURNS>
const GSList * list
</FUNCTION>
<FUNCTION>
<NAME>gp_path_split</NAME>
<RETURNS>GSList  *</RETURNS>
const GPPath * path
</FUNCTION>
<FUNCTION>
<NAME>gp_path_open_parts</NAME>
<RETURNS>GPPath  *</RETURNS>
const GPPath * path
</FUNCTION>
<FUNCTION>
<NAME>gp_path_closed_parts</NAME>
<RETURNS>GPPath  *</RETURNS>
const GPPath * path
</FUNCTION>
<FUNCTION>
<NAME>gp_path_close_all</NAME>
<RETURNS>GPPath  *</RETURNS>
const GPPath * path
</FUNCTION>
<FUNCTION>
<NAME>gp_path_moveto</NAME>
<RETURNS>void  </RETURNS>
GPPath * path, gdouble x, gdouble y
</FUNCTION>
<FUNCTION>
<NAME>gp_path_lineto</NAME>
<RETURNS>void  </RETURNS>
GPPath * path, gdouble x, gdouble y
</FUNCTION>
<FUNCTION>
<NAME>gp_path_curveto</NAME>
<RETURNS>void  </RETURNS>
GPPath * path, gdouble x0, gdouble y0,gdouble x1, gdouble y1, gdouble x2, gdouble y2
</FUNCTION>
<FUNCTION>
<NAME>gp_path_closepath</NAME>
<RETURNS>void  </RETURNS>
GPPath * path
</FUNCTION>
<FUNCTION>
<NAME>gp_path_lineto_moving</NAME>
<RETURNS>void  </RETURNS>
GPPath * path, gdouble x, gdouble y
</FUNCTION>
<FUNCTION>
<NAME>gp_path_closepath_current</NAME>
<RETURNS>void  </RETURNS>
GPPath * path
</FUNCTION>
<FUNCTION>
<NAME>gp_path_bpath</NAME>
<RETURNS>ArtBpath  *</RETURNS>
const GPPath * path
</FUNCTION>
<FUNCTION>
<NAME>gp_path_length</NAME>
<RETURNS>gint  </RETURNS>
const GPPath * path
</FUNCTION>
<FUNCTION>
<NAME>gp_path_is_empty</NAME>
<RETURNS>gboolean  </RETURNS>
const GPPath * path
</FUNCTION>
<FUNCTION>
<NAME>gp_path_has_currentpoint</NAME>
<RETURNS>gboolean  </RETURNS>
const GPPath * path
</FUNCTION>
<FUNCTION>
<NAME>gp_path_currentpoint</NAME>
<RETURNS>ArtPoint  *</RETURNS>
const GPPath * path, ArtPoint * p
</FUNCTION>
<FUNCTION>
<NAME>gp_path_last_bpath</NAME>
<RETURNS>ArtBpath  *</RETURNS>
const GPPath * path
</FUNCTION>
<FUNCTION>
<NAME>gp_path_first_bpath</NAME>
<RETURNS>ArtBpath  *</RETURNS>
const GPPath * path
</FUNCTION>
<FUNCTION>
<NAME>gp_path_any_open</NAME>
<RETURNS>gboolean  </RETURNS>
const GPPath * path
</FUNCTION>
<FUNCTION>
<NAME>gp_path_all_open</NAME>
<RETURNS>gboolean  </RETURNS>
const GPPath * path
</FUNCTION>
<FUNCTION>
<NAME>gp_path_any_closed</NAME>
<RETURNS>gboolean  </RETURNS>
const GPPath * path
</FUNCTION>
<FUNCTION>
<NAME>gp_path_all_closed</NAME>
<RETURNS>gboolean  </RETURNS>
const GPPath * path
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_filter_error_get_type</NAME>
<RETURNS>GType  </RETURNS>
void
</FUNCTION>
<MACRO>
<NAME>GNOME_TYPE_PRINT_PRINT_FILTER_ERROR</NAME>
#define GNOME_TYPE_PRINT_PRINT_FILTER_ERROR (gnome_print_filter_error_get_type())
</MACRO>
<FUNCTION>
<NAME>gnome_print_return_code_get_type</NAME>
<RETURNS>GType  </RETURNS>
void
</FUNCTION>
<MACRO>
<NAME>GNOME_TYPE_PRINT_PRINT_RETURN_CODE</NAME>
#define GNOME_TYPE_PRINT_PRINT_RETURN_CODE (gnome_print_return_code_get_type())
</MACRO>
<FUNCTION>
<NAME>gnome_print_unit_base_get_type</NAME>
<RETURNS>GType  </RETURNS>
void
</FUNCTION>
<MACRO>
<NAME>GNOME_TYPE_PRINT_PRINT_UNIT_BASE</NAME>
#define GNOME_TYPE_PRINT_PRINT_UNIT_BASE (gnome_print_unit_base_get_type())
</MACRO>
<STRUCT>
<NAME>GnomePosGlyphList</NAME>
</STRUCT>
<FUNCTION>
<NAME>gnome_pgl_from_gl</NAME>
<RETURNS>GnomePosGlyphList  *</RETURNS>
const GnomeGlyphList *gl, const gdouble *transform, guint flags
</FUNCTION>
<FUNCTION>
<NAME>gnome_pgl_destroy</NAME>
<RETURNS>void  </RETURNS>
GnomePosGlyphList *pgl
</FUNCTION>
<FUNCTION>
<NAME>gnome_pgl_bbox</NAME>
<RETURNS>ArtDRect  *</RETURNS>
const GnomePosGlyphList *pgl, ArtDRect *bbox
</FUNCTION>
<FUNCTION>
<NAME>gnome_pgl_test_point</NAME>
<RETURNS>gboolean  </RETURNS>
const GnomePosGlyphList *pgl, gdouble x, gdouble y
</FUNCTION>
<FUNCTION>
<NAME>gnome_pgl_render_rgba8</NAME>
<RETURNS>void  </RETURNS>
const GnomePosGlyphList * pgl, gdouble x, gdouble y, guchar * buf,gint width, gint height, gint rowstride, guint flags
</FUNCTION>
<FUNCTION>
<NAME>gnome_pgl_render_rgb8</NAME>
<RETURNS>void  </RETURNS>
const GnomePosGlyphList * pgl, gdouble x, gdouble y, guchar * buf,gint width, gint height, gint rowstride, guint flags
</FUNCTION>
<MACRO>
<NAME>GNOME_TYPE_PRINT_SVG</NAME>
#define GNOME_TYPE_PRINT_SVG  (gnome_print_svg_get_type ())
</MACRO>
<MACRO>
<NAME>GNOME_PRINT_SVG</NAME>
#define GNOME_PRINT_SVG(o)    (G_TYPE_CHECK_INSTANCE_CAST ((o), GNOME_TYPE_PRINT_SVG, GnomePrintSvg))
</MACRO>
<MACRO>
<NAME>GNOME_IS_PRINT_SVG</NAME>
#define GNOME_IS_PRINT_SVG(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GNOME_TYPE_PRINT_SVG))
</MACRO>
<FUNCTION>
<NAME>gnome_print_svg_get_type</NAME>
<RETURNS>GType  </RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_svg_new</NAME>
<RETURNS>GnomePrintContext  *</RETURNS>
GnomePrintConfig *config
</FUNCTION>
<MACRO>
<NAME>GNOME_TYPE_GLYPHLIST</NAME>
#define GNOME_TYPE_GLYPHLIST (gnome_glyphlist_get_type())
</MACRO>
<MACRO>
<NAME>GNOME_IS_GLYPHLIST</NAME>
#define GNOME_IS_GLYPHLIST(g) gnome_glyphlist_check (g, FALSE)
</MACRO>
<STRUCT>
<NAME>GnomeGlyphList</NAME>
</STRUCT>
<FUNCTION>
<NAME>gnome_glyphlist_get_type</NAME>
<RETURNS>GType  </RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>gnome_glyphlist_new</NAME>
<RETURNS>GnomeGlyphList  *</RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>gnome_glyphlist_ref</NAME>
<RETURNS>GnomeGlyphList  *</RETURNS>
GnomeGlyphList *gl
</FUNCTION>
<FUNCTION>
<NAME>gnome_glyphlist_unref</NAME>
<RETURNS>GnomeGlyphList  *</RETURNS>
GnomeGlyphList *gl
</FUNCTION>
<FUNCTION>
<NAME>gnome_glyphlist_duplicate</NAME>
<RETURNS>GnomeGlyphList  *</RETURNS>
GnomeGlyphList *gl
</FUNCTION>
<FUNCTION>
<NAME>gnome_glyphlist_check</NAME>
<RETURNS>gboolean  </RETURNS>
const GnomeGlyphList *gl, gboolean rules
</FUNCTION>
<FUNCTION>
<NAME>gnome_glyphlist_bbox</NAME>
<RETURNS>ArtDRect  *</RETURNS>
const GnomeGlyphList *gl, const gdouble *transform, gint flags, ArtDRect *bbox
</FUNCTION>
<FUNCTION>
<NAME>gnome_glyphlist_advance</NAME>
<RETURNS>void  </RETURNS>
GnomeGlyphList *gl, gboolean advance
</FUNCTION>
<FUNCTION>
<NAME>gnome_glyphlist_kerning</NAME>
<RETURNS>void  </RETURNS>
GnomeGlyphList *gl, gdouble kerning
</FUNCTION>
<FUNCTION>
<NAME>gnome_glyphlist_letterspace</NAME>
<RETURNS>void  </RETURNS>
GnomeGlyphList *gl, gdouble letterspace
</FUNCTION>
<FUNCTION>
<NAME>gnome_glyphlist_font</NAME>
<RETURNS>void  </RETURNS>
GnomeGlyphList *gl, GnomeFont *font
</FUNCTION>
<FUNCTION>
<NAME>gnome_glyphlist_color</NAME>
<RETURNS>void  </RETURNS>
GnomeGlyphList *gl, guint32 color
</FUNCTION>
<FUNCTION>
<NAME>gnome_glyphlist_moveto</NAME>
<RETURNS>void  </RETURNS>
GnomeGlyphList *gl, gdouble x, gdouble y
</FUNCTION>
<FUNCTION>
<NAME>gnome_glyphlist_rmoveto</NAME>
<RETURNS>void  </RETURNS>
GnomeGlyphList *gl, gdouble x, gdouble y
</FUNCTION>
<FUNCTION>
<NAME>gnome_glyphlist_glyph</NAME>
<RETURNS>void  </RETURNS>
GnomeGlyphList *gl, gint glyph
</FUNCTION>
<FUNCTION>
<NAME>gnome_glyphlist_glyphs</NAME>
<RETURNS>void  </RETURNS>
GnomeGlyphList *gl, gint *glyphs, gint num_glyphs
</FUNCTION>
<FUNCTION>
<NAME>gnome_glyphlist_text_dumb</NAME>
<RETURNS>void  </RETURNS>
GnomeGlyphList *gl, const guchar *text
</FUNCTION>
<FUNCTION>
<NAME>gnome_glyphlist_text_sized_dumb</NAME>
<RETURNS>void  </RETURNS>
GnomeGlyphList *gl, const guchar *text, gint length
</FUNCTION>
<FUNCTION>
<NAME>gnome_glyphlist_from_text_dumb</NAME>
<RETURNS>GnomeGlyphList  *</RETURNS>
GnomeFont *font, guint32 color,gdouble kerning, gdouble letterspace,const guchar *text
</FUNCTION>
<FUNCTION>
<NAME>gnome_glyphlist_from_text_sized_dumb</NAME>
<RETURNS>GnomeGlyphList  *</RETURNS>
GnomeFont *font, guint32 color,gdouble kerning, gdouble letterspace,const guchar *text, gint length
</FUNCTION>
<FUNCTION>
<NAME>gnome_glyphlist_dump</NAME>
<RETURNS>void  </RETURNS>
GnomeGlyphList const *gl
</FUNCTION>
<FUNCTION>
<NAME>gnome_glyphlist_dump_pgl</NAME>
<RETURNS>void  </RETURNS>
GnomeGlyphList const *gl
</FUNCTION>
<MACRO>
<NAME>GNOME_TYPE_FONT</NAME>
#define GNOME_TYPE_FONT    (gnome_font_get_type ())
</MACRO>
<MACRO>
<NAME>GNOME_FONT</NAME>
#define GNOME_FONT(obj)    (G_TYPE_CHECK_INSTANCE_CAST ((obj), GNOME_TYPE_FONT, GnomeFont))
</MACRO>
<MACRO>
<NAME>GNOME_IS_FONT</NAME>
#define GNOME_IS_FONT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GNOME_TYPE_FONT))
</MACRO>
<MACRO>
<NAME>gnome_font_ref</NAME>
#define gnome_font_ref(f)   g_object_ref   (G_OBJECT (f))
</MACRO>
<MACRO>
<NAME>gnome_font_unref</NAME>
#define gnome_font_unref(f) g_object_unref (G_OBJECT (f))
</MACRO>
<STRUCT>
<NAME>GnomeFont</NAME>
</STRUCT>
<STRUCT>
<NAME>GnomeFontFace</NAME>
</STRUCT>
<ENUM>
<NAME>GnomeFontWeight</NAME>
typedef enum {
	GNOME_FONT_LIGHTEST = 100,
	GNOME_FONT_EXTRA_LIGHT = 100,
	GNOME_FONT_THIN = 200,
	GNOME_FONT_LIGHT = 300,
	GNOME_FONT_BOOK = 400,
	GNOME_FONT_REGULAR = 400,
	GNOME_FONT_MEDIUM = 500,
	GNOME_FONT_SEMI = 600,
	GNOME_FONT_DEMI = 600,
	GNOME_FONT_BOLD = 700,
	GNOME_FONT_HEAVY = 900,
	GNOME_FONT_EXTRABOLD = 900,
	GNOME_FONT_BLACK = 1000,
	GNOME_FONT_EXTRABLACK = 1100,
	GNOME_FONT_HEAVIEST = 1100
} GnomeFontWeight;
</ENUM>
<FUNCTION>
<NAME>gnome_font_get_type</NAME>
<RETURNS>GType  </RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_get_name</NAME>
<RETURNS>const guchar    *</RETURNS>
const GnomeFont *font
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_get_family_name</NAME>
<RETURNS>const guchar    *</RETURNS>
const GnomeFont *font
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_get_species_name</NAME>
<RETURNS>const guchar    *</RETURNS>
const GnomeFont *font
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_get_ps_name</NAME>
<RETURNS>const guchar    *</RETURNS>
const GnomeFont *font
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_get_size</NAME>
<RETURNS>gdouble  </RETURNS>
const GnomeFont *font
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_get_face</NAME>
<RETURNS>GnomeFontFace   *</RETURNS>
const GnomeFont *font
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_get_glyph_stdadvance</NAME>
<RETURNS>ArtPoint        *</RETURNS>
GnomeFont *font, gint glyph, ArtPoint *advance
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_get_glyph_stdbbox</NAME>
<RETURNS>ArtDRect        *</RETURNS>
GnomeFont *font, gint glyph, ArtDRect *bbox
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_get_glyph_stdoutline</NAME>
<RETURNS>const ArtBpath  *</RETURNS>
GnomeFont *font, gint glyph
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_get_glyph_stdkerning</NAME>
<RETURNS>ArtPoint        *</RETURNS>
GnomeFont *font, gint glyph0, gint glyph1, ArtPoint *kerning
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_get_glyph_width</NAME>
<RETURNS>gdouble  </RETURNS>
GnomeFont *font, gint glyph
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_get_glyph_kerning</NAME>
<RETURNS>gdouble  </RETURNS>
GnomeFont *font, gint glyph1, gint glyph2
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_lookup_default</NAME>
<RETURNS>gint  </RETURNS>
GnomeFont *font, gint unicode
</FUNCTION>
<MACRO>
<NAME>gnome_font_get_weight_code</NAME>
#define gnome_font_get_weight_code(f) gnome_font_face_get_weight_code (gnome_font_get_face (f))
</MACRO>
<MACRO>
<NAME>gnome_font_is_italic</NAME>
#define gnome_font_is_italic(f)       gnome_font_face_is_italic       (gnome_font_get_face (f))
</MACRO>
<MACRO>
<NAME>gnome_font_is_fixed_width</NAME>
#define gnome_font_is_fixed_width(f)  gnome_font_face_is_fixed_width  (gnome_font_get_face (f))
</MACRO>
<FUNCTION>
<NAME>gnome_font_get_full_name</NAME>
<RETURNS>guchar    *</RETURNS>
GnomeFont *font
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_get_ascender</NAME>
<RETURNS>gdouble  </RETURNS>
GnomeFont *font
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_get_descender</NAME>
<RETURNS>gdouble  </RETURNS>
GnomeFont *font
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_get_underline_position</NAME>
<RETURNS>gdouble  </RETURNS>
GnomeFont *font
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_get_underline_thickness</NAME>
<RETURNS>gdouble  </RETURNS>
GnomeFont *font
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_find</NAME>
<RETURNS>GnomeFont  *</RETURNS>
const guchar *name, gdouble size
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_find_closest</NAME>
<RETURNS>GnomeFont  *</RETURNS>
const guchar *name, gdouble size
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_find_from_full_name</NAME>
<RETURNS>GnomeFont  *</RETURNS>
const guchar *string
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_find_from_filename</NAME>
<RETURNS>GnomeFont  *</RETURNS>
const guchar *filename, gint index_, gdouble size
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_find_closest_from_full_name</NAME>
<RETURNS>GnomeFont  *</RETURNS>
const guchar *string
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_find_closest_from_weight_slant</NAME>
<RETURNS>GnomeFont  *</RETURNS>
const guchar *family, GnomeFontWeight weight, gboolean italic, gdouble size
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_list</NAME>
<RETURNS>GList   *</RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_list_free</NAME>
<RETURNS>void  </RETURNS>
GList *fontlist
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_family_list</NAME>
<RETURNS>GList   *</RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_family_list_free</NAME>
<RETURNS>void  </RETURNS>
GList *fontlist
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_style_list</NAME>
<RETURNS>GList   *</RETURNS>
const guchar *family
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_style_list_free</NAME>
<RETURNS>void  </RETURNS>
GList *styles
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_get_closest_pango_font</NAME>
<RETURNS>PangoFont             *</RETURNS>
const GnomeFont *font, PangoFontMap *map, gdouble dpi
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_get_pango_description</NAME>
<RETURNS>PangoFontDescription  *</RETURNS>
const GnomeFont *font, gdouble dpi
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_get_width_utf8</NAME>
<RETURNS>double  </RETURNS>
GnomeFont *font, const char *s
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_get_width_utf8_sized</NAME>
<RETURNS>double  </RETURNS>
GnomeFont *font, const char *s, int n
</FUNCTION>
<MACRO>
<NAME>GNOME_TYPE_PRINT_PDF</NAME>
#define GNOME_TYPE_PRINT_PDF  (gnome_print_pdf_get_type ())
</MACRO>
<MACRO>
<NAME>GNOME_PRINT_PDF</NAME>
#define GNOME_PRINT_PDF(o)    (G_TYPE_CHECK_INSTANCE_CAST ((o), GNOME_TYPE_PRINT_PDF, GnomePrintPdf))
</MACRO>
<MACRO>
<NAME>GNOME_IS_PRINT_PDF</NAME>
#define GNOME_IS_PRINT_PDF(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GNOME_TYPE_PRINT_PDF))
</MACRO>
<FUNCTION>
<NAME>gnome_print_pdf_get_type</NAME>
<RETURNS>GType  </RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_pdf_new</NAME>
<RETURNS>GnomePrintContext  *</RETURNS>
GnomePrintConfig *config
</FUNCTION>
<STRUCT>
<NAME>GnomePrintUnit</NAME>
</STRUCT>
<ENUM>
<NAME>GnomePrintUnitBase</NAME>
typedef enum {
	GNOME_PRINT_UNIT_DIMENSIONLESS = (1 << 0), /* For percentages and like */
	GNOME_PRINT_UNIT_ABSOLUTE = (1 << 1),      /* Real world distances - i.e. mm, cm... */
	GNOME_PRINT_UNIT_DEVICE = (1 << 2),        /* Semi-real device-dependent distances i.e. pixels */
	GNOME_PRINT_UNIT_USERSPACE = (1 << 3)      /* Mathematical coordinates */
} GnomePrintUnitBase;
</ENUM>
<STRUCT>
<NAME>GnomePrintUnit</NAME>
struct GnomePrintUnit {
	guint version : 8; /* Has to be 0 at moment */
	guint base : 8; /* Base */
	gdouble unittobase;
	/* I am not absolutely sure, but seems that gettext can do the magic */
	guchar *name;
	guchar *abbr;
	guchar *plural;
	guchar *abbr_plural;
};
</STRUCT>
<MACRO>
<NAME>GNOME_TYPE_PRINT_UNIT</NAME>
#define GNOME_TYPE_PRINT_UNIT (gnome_print_unit_get_type ())
</MACRO>
<MACRO>
<NAME>GNOME_PRINT_PS_UNIT</NAME>
#define GNOME_PRINT_PS_UNIT   (gnome_print_unit_get_identity (GNOME_PRINT_UNIT_ABSOLUTE))
</MACRO>
<MACRO>
<NAME>GNOME_PRINT_UNITS_ALL</NAME>
#define GNOME_PRINT_UNITS_ALL (GNOME_PRINT_UNIT_DIMENSIONLESS | GNOME_PRINT_UNIT_ABSOLUTE | GNOME_PRINT_UNIT_DEVICE | GNOME_PRINT_UNIT_USERSPACE)
</MACRO>
<FUNCTION>
<NAME>gnome_print_unit_get_type</NAME>
<RETURNS>GType  </RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_unit_get_identity</NAME>
<RETURNS>const GnomePrintUnit  *</RETURNS>
guint base
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_unit_get_default</NAME>
<RETURNS>const GnomePrintUnit  *</RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_unit_get_by_name</NAME>
<RETURNS>const GnomePrintUnit  *</RETURNS>
const guchar *name
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_unit_get_by_abbreviation</NAME>
<RETURNS>const GnomePrintUnit  *</RETURNS>
const guchar *abbreviation
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_unit_get_list</NAME>
<RETURNS>GList  *</RETURNS>
guint bases
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_unit_free_list</NAME>
<RETURNS>void  </RETURNS>
GList *units
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_convert_distance</NAME>
<RETURNS>gboolean  </RETURNS>
gdouble *distance, const GnomePrintUnit *from, const GnomePrintUnit *to
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_convert_distance_full</NAME>
<RETURNS>gboolean  </RETURNS>
gdouble *distance, const GnomePrintUnit *from, const GnomePrintUnit *to,gdouble ctmscale, gdouble devicescale
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_unit_get_name</NAME>
<RETURNS>gchar  *</RETURNS>
const GnomePrintUnit *unit, gboolean plural, gboolean abbreviation, gint flags
</FUNCTION>
<MACRO>
<NAME>GNOME_PRINT_CONFIG_NODE</NAME>
#define GNOME_PRINT_CONFIG_NODE(c) gnome_print_config_get_node (c)
</MACRO>
<FUNCTION>
<NAME>gnome_print_config_get_node</NAME>
<RETURNS>GPANode  *</RETURNS>
GnomePrintConfig *config
</FUNCTION>
<ENUM>
<NAME>GnomePrintReturnCode</NAME>
typedef enum {
	GNOME_PRINT_OK = 0,
	GNOME_PRINT_ERROR_UNKNOWN        = -1,
	GNOME_PRINT_ERROR_BADVALUE       = -2,
	GNOME_PRINT_ERROR_NOCURRENTPOINT = -3,
	GNOME_PRINT_ERROR_NOCURRENTPATH  = -4,
	GNOME_PRINT_ERROR_TEXTCORRUPT    = -5,
	GNOME_PRINT_ERROR_BADCONTEXT     = -6,
	GNOME_PRINT_ERROR_NOPAGE         = -7,
	GNOME_PRINT_ERROR_NOMATCH        = -8
} GnomePrintReturnCode;
</ENUM>
<MACRO>
<NAME>GNOME_TYPE_PRINT_CONTEXT</NAME>
#define GNOME_TYPE_PRINT_CONTEXT  (gnome_print_context_get_type ())
</MACRO>
<MACRO>
<NAME>GNOME_PRINT_CONTEXT</NAME>
#define GNOME_PRINT_CONTEXT(o)    (G_TYPE_CHECK_INSTANCE_CAST ((o), GNOME_TYPE_PRINT_CONTEXT, GnomePrintContext))
</MACRO>
<MACRO>
<NAME>GNOME_IS_PRINT_CONTEXT</NAME>
#define GNOME_IS_PRINT_CONTEXT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GNOME_TYPE_PRINT_CONTEXT))
</MACRO>
<STRUCT>
<NAME>GnomePrintContext</NAME>
</STRUCT>
<FUNCTION>
<NAME>gnome_print_context_get_type</NAME>
<RETURNS>GType  </RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_context_new</NAME>
<RETURNS>GnomePrintContext  *</RETURNS>
GnomePrintConfig *config
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_context_close</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintContext *pc
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_context_create_transport</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintContext *ctx
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_newpath</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintContext *pc
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_moveto</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintContext *pc, gdouble x, gdouble y
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_lineto</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintContext *pc, gdouble x, gdouble y
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_curveto</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintContext *pc, gdouble x1, gdouble y1, gdouble x2, gdouble y2, gdouble x3, gdouble y3
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_closepath</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintContext *pc
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_strokepath</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintContext *pc
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_bpath</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintContext *pc, const ArtBpath *bpath, gboolean append
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_vpath</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintContext *pc, const ArtVpath *vpath, gboolean append
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_arcto</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintContext *pc, gdouble x, gdouble y, gdouble radius, gdouble angle1, gdouble angle2, gint direction
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_setrgbcolor</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintContext *pc, gdouble r, gdouble g, gdouble b
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_setopacity</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintContext *pc, gdouble opacity
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_setlinewidth</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintContext *pc, gdouble width
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_setmiterlimit</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintContext *pc, gdouble limit
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_setlinejoin</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintContext *pc, gint jointype
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_setlinecap</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintContext *pc, gint captype
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_setdash</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintContext *pc, gint n_values, const gdouble *values, gdouble offset
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_setfont</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintContext *pc, const GnomeFont *font
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_clip</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintContext *pc
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_eoclip</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintContext *pc
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_concat</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintContext *pc, const gdouble *matrix
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_scale</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintContext *pc, gdouble sx, gdouble sy
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_rotate</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintContext *pc, gdouble theta
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_translate</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintContext *pc, gdouble x, gdouble y
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_gsave</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintContext *pc
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_grestore</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintContext *pc
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_fill</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintContext *pc
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_eofill</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintContext *pc
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_stroke</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintContext *pc
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_show</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintContext *pc, const guchar *text
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_show_sized</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintContext *pc, const guchar *text, gint bytes
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_glyphlist</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintContext *pc, GnomeGlyphList *glyphlist
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_grayimage</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintContext *pc, const guchar *data, gint width, gint height, gint rowstride
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_rgbimage</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintContext *pc, const guchar *data, gint width, gint height, gint rowstride
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_rgbaimage</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintContext *pc, const guchar *data, gint width, gint height, gint rowstride
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_beginpage</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintContext *pc, const guchar *name
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_showpage</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintContext *pc
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_end_doc</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintContext *pc
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_line_stroked</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintContext *pc, gdouble x0, gdouble y0, gdouble x1, gdouble y1
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_rect_stroked</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintContext *pc, gdouble x, gdouble y, gdouble width, gdouble height
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_rect_filled</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintContext *pc, gdouble x, gdouble y, gdouble width, gdouble height
</FUNCTION>
<MACRO>
<NAME>GNOME_TYPE_PRINT_JOB</NAME>
#define GNOME_TYPE_PRINT_JOB (gnome_print_job_get_type ())
</MACRO>
<MACRO>
<NAME>GNOME_PRINT_JOB</NAME>
#define GNOME_PRINT_JOB(o)    (G_TYPE_CHECK_INSTANCE_CAST ((o), GNOME_TYPE_PRINT_JOB, GnomePrintJob))
</MACRO>
<MACRO>
<NAME>GNOME_IS_PRINT_JOB</NAME>
#define GNOME_IS_PRINT_JOB(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GNOME_TYPE_PRINT_JOB))
</MACRO>
<STRUCT>
<NAME>GnomePrintJob</NAME>
</STRUCT>
<STRUCT>
<NAME>GnomePrintJobClass</NAME>
</STRUCT>
<FUNCTION>
<NAME>gnome_print_job_get_type</NAME>
<RETURNS>GType  </RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_job_new</NAME>
<RETURNS>GnomePrintJob  *</RETURNS>
GnomePrintConfig *config
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_job_get_config</NAME>
<RETURNS>GnomePrintConfig  *</RETURNS>
GnomePrintJob *job
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_job_get_context</NAME>
<RETURNS>GnomePrintContext  *</RETURNS>
GnomePrintJob *job
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_job_close</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintJob *job
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_job_print</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintJob *job
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_job_set_file</NAME>
<RETURNS>void  </RETURNS>
GnomePrintJob *job, gchar *input
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_job_render</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintJob *job, GnomePrintContext *ctx
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_job_render_page</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintJob *job, GnomePrintContext *ctx, gint page, gboolean pageops
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_job_get_pages</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintJob *job
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_job_print_to_file</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintJob *job, gchar *output
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_job_get_page_size</NAME>
<RETURNS>gboolean  </RETURNS>
GnomePrintJob *job, gdouble *width, gdouble *height
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_job_get_page_size_from_config</NAME>
<RETURNS>gboolean  </RETURNS>
GnomePrintConfig *config, gdouble *width, gdouble *height
</FUNCTION>
<VARIABLE>
<NAME>gnome_print_locale_dir</NAME>
extern gchar *gnome_print_locale_dir;
</VARIABLE>
<VARIABLE>
<NAME>gnome_print_modules_dir</NAME>
extern gchar *gnome_print_modules_dir;
</VARIABLE>
<VARIABLE>
<NAME>gnome_print_data_dir</NAME>
extern gchar *gnome_print_data_dir;
</VARIABLE>
<STRUCT>
<NAME>GnomePrintPaper</NAME>
</STRUCT>
<STRUCT>
<NAME>GnomePrintPaper</NAME>
struct GnomePrintPaper {
	   guint version : 8; /* Has to be 0 at moment */
	   guchar *name;      /* Name such as A4 */
	   gdouble width, height;
};
</STRUCT>
<FUNCTION>
<NAME>gnome_print_paper_get_default</NAME>
<RETURNS>const GnomePrintPaper  *</RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_paper_get_by_name</NAME>
<RETURNS>const GnomePrintPaper  *</RETURNS>
const guchar *name
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_paper_get_by_size</NAME>
<RETURNS>const GnomePrintPaper  *</RETURNS>
gdouble width, gdouble height
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_paper_get_closest_by_size</NAME>
<RETURNS>const GnomePrintPaper  *</RETURNS>
gdouble width, gdouble height, gboolean mustfit
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_paper_get_list</NAME>
<RETURNS>GList  *</RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_paper_free_list</NAME>
<RETURNS>void  </RETURNS>
GList *papers
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_pango_font_map_new</NAME>
<RETURNS>PangoFontMap  *</RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_pango_get_default_font_map</NAME>
<RETURNS>PangoFontMap  *</RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_pango_create_context</NAME>
<RETURNS>PangoContext  *</RETURNS>
PangoFontMap      *fontmap
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_pango_update_context</NAME>
<RETURNS>void  </RETURNS>
PangoContext      *context,GnomePrintContext *gpc
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_pango_create_layout</NAME>
<RETURNS>PangoLayout   *</RETURNS>
GnomePrintContext *gpc
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_pango_glyph_string</NAME>
<RETURNS>void  </RETURNS>
GnomePrintContext *gpc, PangoFont *font, PangoGlyphString *glyphs
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_pango_layout_line</NAME>
<RETURNS>void  </RETURNS>
GnomePrintContext *gpc, PangoLayoutLine *line
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_pango_layout</NAME>
<RETURNS>void  </RETURNS>
GnomePrintContext *gpc, PangoLayout *layout
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_pango_layout_print</NAME>
<RETURNS>void  </RETURNS>
GnomePrintContext *gpc, PangoLayout* pl
</FUNCTION>
<STRUCT>
<NAME>pool_t</NAME>
struct pool_t
{
	GPtrArray *a;
};
</STRUCT>
<STRUCT>
<NAME>graph_t</NAME>
</STRUCT>
<STRUCT>
<NAME>graph_t</NAME>
struct graph_t {
	GnomePrintFilter *filter;
	GError *error;
};
</STRUCT>
<MACRO>
<NAME>GNOME_TYPE_PRINT_FILTER</NAME>
#define GNOME_TYPE_PRINT_FILTER (gnome_print_filter_get_type ())
</MACRO>
<MACRO>
<NAME>GNOME_PRINT_FILTER</NAME>
#define GNOME_PRINT_FILTER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GNOME_TYPE_PRINT_FILTER, GnomePrintFilter))
</MACRO>
<MACRO>
<NAME>GNOME_PRINT_FILTER_CLASS</NAME>
#define GNOME_PRINT_FILTER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GNOME_TYPE_PRINT_FILTER, GnomePrintFilterClass))
</MACRO>
<MACRO>
<NAME>GNOME_IS_PRINT_FILTER</NAME>
#define GNOME_IS_PRINT_FILTER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GNOME_TYPE_PRINT_FILTER))
</MACRO>
<MACRO>
<NAME>GNOME_IS_PRINT_FILTER_CLASS</NAME>
#define GNOME_IS_PRINT_FILTER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GNOME_TYPE_PRINT_FILTER))
</MACRO>
<MACRO>
<NAME>GNOME_PRINT_FILTER_GET_CLASS</NAME>
#define GNOME_PRINT_FILTER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GNOME_TYPE_PRINT_FILTER, GnomePrintFilterClass))
</MACRO>
<STRUCT>
<NAME>GnomePrintFilter</NAME>
</STRUCT>
<STRUCT>
<NAME>GnomePrintFilterPrivate</NAME>
</STRUCT>
<STRUCT>
<NAME>GnomePrintFilterClass</NAME>
</STRUCT>
<STRUCT>
<NAME>GnomePrintFilter</NAME>
struct GnomePrintFilter {
	GObject parent;

	GnomePrintFilterPrivate *priv;
};
</STRUCT>
<STRUCT>
<NAME>GnomePrintFilterClass</NAME>
struct GnomePrintFilterClass {
	GObjectClass parent_class;

	/* Signals */
	void (* changed)             (GnomePrintFilter *);
	void (* predecessor_added)   (GnomePrintFilter *, GnomePrintFilter *);
	void (* predecessor_removed) (GnomePrintFilter *, GnomePrintFilter *);
	void (* successor_added)     (GnomePrintFilter *, GnomePrintFilter *);
	void (* successor_removed)   (GnomePrintFilter *, GnomePrintFilter *);

	/* Methods */
	void (* reset) (GnomePrintFilter *);
	void (* flush) (GnomePrintFilter *);

	gint (* beginpage) (GnomePrintFilter *, GnomePrintContext *, const guchar *);
	gint (* showpage)  (GnomePrintFilter *);

	gint (* gsave)     (GnomePrintFilter *);
	gint (* grestore)  (GnomePrintFilter *);

	gint (* clip)      (GnomePrintFilter *, const ArtBpath *, ArtWindRule);
	gint (* fill)      (GnomePrintFilter *, const ArtBpath *, ArtWindRule);
	gint (* stroke)    (GnomePrintFilter *, const ArtBpath *);
	gint (* image)     (GnomePrintFilter *, const gdouble *, const guchar *, gint, gint, gint, gint);
	gint (* glyphlist) (GnomePrintFilter *, const gdouble *, GnomeGlyphList *);

	gint (* setrgbcolor)  (GnomePrintFilter *, gdouble, gdouble, gdouble);
	gint (* setopacity)   (GnomePrintFilter *, gdouble);
	gint (* setlinewidth) (GnomePrintFilter *, gdouble);
};
</STRUCT>
<FUNCTION>
<NAME>gnome_print_filter_get_type</NAME>
<RETURNS>GType  </RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_filter_new_from_module_name</NAME>
<RETURNS>GnomePrintFilter  *</RETURNS>
const gchar *module_name,const gchar *first_property_name, ...
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_filter_beginpage</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintFilter *, GnomePrintContext *, const guchar *
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_filter_showpage</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintFilter *
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_filter_gsave</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintFilter *
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_filter_grestore</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintFilter *
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_filter_clip</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintFilter *, const ArtBpath *, ArtWindRule
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_filter_fill</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintFilter *, const ArtBpath *, ArtWindRule
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_filter_stroke</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintFilter *, const ArtBpath *
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_filter_image</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintFilter *, const gdouble *, const guchar *, gint, gint, gint, gint
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_filter_glyphlist</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintFilter *, const gdouble *, GnomeGlyphList *
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_filter_setrgbcolor</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintFilter *, gdouble, gdouble, gdouble
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_filter_setopacity</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintFilter *, gdouble
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_filter_setlinewidth</NAME>
<RETURNS>gint  </RETURNS>
GnomePrintFilter *, gdouble
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_filter_changed</NAME>
<RETURNS>void  </RETURNS>
GnomePrintFilter *
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_filter_reset</NAME>
<RETURNS>void  </RETURNS>
GnomePrintFilter *
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_filter_flush</NAME>
<RETURNS>void  </RETURNS>
GnomePrintFilter *
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_filter_append_predecessor</NAME>
<RETURNS>void  </RETURNS>
GnomePrintFilter *, GnomePrintFilter *p
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_filter_count_predecessors</NAME>
<RETURNS>guint  </RETURNS>
GnomePrintFilter *
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_filter_count_successors</NAME>
<RETURNS>guint  </RETURNS>
GnomePrintFilter *
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_filter_get_predecessor</NAME>
<RETURNS>GnomePrintFilter  *</RETURNS>
GnomePrintFilter *, guint i
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_filter_get_successor</NAME>
<RETURNS>GnomePrintFilter  *</RETURNS>
GnomePrintFilter *, guint i
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_filter_is_predecessor</NAME>
<RETURNS>gboolean  </RETURNS>
GnomePrintFilter *, GnomePrintFilter *p, gboolean indirect
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_filter_remove_predecessor</NAME>
<RETURNS>void  </RETURNS>
GnomePrintFilter *, GnomePrintFilter *p
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_filter_count_filters</NAME>
<RETURNS>guint  </RETURNS>
GnomePrintFilter *
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_filter_get_filter</NAME>
<RETURNS>GnomePrintFilter  *</RETURNS>
GnomePrintFilter *, guint
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_filter_add_filter</NAME>
<RETURNS>void  </RETURNS>
GnomePrintFilter *, GnomePrintFilter *
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_filter_remove_filter</NAME>
<RETURNS>void  </RETURNS>
GnomePrintFilter *, GnomePrintFilter *
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_filter_remove_filters</NAME>
<RETURNS>void  </RETURNS>
GnomePrintFilter *
</FUNCTION>
<MACRO>
<NAME>GNOME_PRINT_FILTER_ERROR</NAME>
#define GNOME_PRINT_FILTER_ERROR gnome_print_filter_error_quark ()
</MACRO>
<ENUM>
<NAME>GnomePrintFilterError</NAME>
typedef enum {
	GNOME_PRINT_FILTER_ERROR_SYNTAX
} GnomePrintFilterError;
</ENUM>
<FUNCTION>
<NAME>gnome_print_filter_error_quark</NAME>
<RETURNS>GQuark  </RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_filter_description</NAME>
<RETURNS>gchar             *</RETURNS>
GnomePrintFilter *
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_filter_new_from_description</NAME>
<RETURNS>GnomePrintFilter  *</RETURNS>
const gchar *, GError **
</FUNCTION>
<MACRO>
<NAME>GNOME_TYPE_FONT_FACE</NAME>
#define GNOME_TYPE_FONT_FACE  (gnome_font_face_get_type ())
</MACRO>
<MACRO>
<NAME>GNOME_FONT_FACE</NAME>
#define GNOME_FONT_FACE(o)    (G_TYPE_CHECK_INSTANCE_CAST ((o), GNOME_TYPE_FONT_FACE, GnomeFontFace))
</MACRO>
<MACRO>
<NAME>GNOME_IS_FONT_FACE</NAME>
#define GNOME_IS_FONT_FACE(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GNOME_TYPE_FONT_FACE))
</MACRO>
<MACRO>
<NAME>gnome_font_face_ref</NAME>
#define gnome_font_face_ref(f)   g_object_ref (G_OBJECT (f))
</MACRO>
<MACRO>
<NAME>gnome_font_face_unref</NAME>
#define gnome_font_face_unref(f) g_object_unref (G_OBJECT (f))
</MACRO>
<FUNCTION>
<NAME>gnome_font_face_get_type</NAME>
<RETURNS>GType  </RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_face_find</NAME>
<RETURNS>GnomeFontFace  *</RETURNS>
const guchar *name
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_face_find_closest</NAME>
<RETURNS>GnomeFontFace  *</RETURNS>
const guchar *name
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_face_find_closest_from_weight_slant</NAME>
<RETURNS>GnomeFontFace  *</RETURNS>
const guchar *family, GnomeFontWeight weight, gboolean italic
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_face_find_closest_from_pango_font</NAME>
<RETURNS>GnomeFontFace  *</RETURNS>
PangoFont *pfont
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_face_find_closest_from_pango_description</NAME>
<RETURNS>GnomeFontFace  *</RETURNS>
const PangoFontDescription *desc
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_face_find_from_family_and_style</NAME>
<RETURNS>GnomeFontFace  *</RETURNS>
const guchar *family, const guchar *style
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_face_find_from_filename</NAME>
<RETURNS>GnomeFontFace  *</RETURNS>
const guchar *filename, gint index_
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_face_get_font</NAME>
<RETURNS>GnomeFont  *</RETURNS>
GnomeFontFace *face, gdouble size, gdouble xres, gdouble yres
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_face_get_font_default</NAME>
<RETURNS>GnomeFont  *</RETURNS>
GnomeFontFace *face, gdouble size
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_face_get_name</NAME>
<RETURNS>const guchar  *</RETURNS>
const GnomeFontFace *face
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_face_get_ps_name</NAME>
<RETURNS>const guchar  *</RETURNS>
const GnomeFontFace *face
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_face_get_family_name</NAME>
<RETURNS>const guchar  *</RETURNS>
const GnomeFontFace *face
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_face_get_species_name</NAME>
<RETURNS>const guchar  *</RETURNS>
const GnomeFontFace *face
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_face_lookup_default</NAME>
<RETURNS>gint  </RETURNS>
GnomeFontFace *face, gint unicode
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_face_get_stdbbox</NAME>
<RETURNS>const ArtDRect  *</RETURNS>
GnomeFontFace *face
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_face_get_glyph_stdbbox</NAME>
<RETURNS>ArtDRect        *</RETURNS>
GnomeFontFace *face, gint glyph, ArtDRect * bbox
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_face_get_glyph_stdadvance</NAME>
<RETURNS>ArtPoint        *</RETURNS>
GnomeFontFace *face, gint glyph, ArtPoint * advance
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_face_get_glyph_stdoutline</NAME>
<RETURNS>const ArtBpath  *</RETURNS>
GnomeFontFace *face, gint glyph
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_face_get_glyph_stdkerning</NAME>
<RETURNS>ArtPoint        *</RETURNS>
GnomeFontFace *face, gint glyph0, gint glyph1, ArtPoint *kerning
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_face_get_sample</NAME>
<RETURNS>const guchar  *</RETURNS>
GnomeFontFace *face
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_face_get_weight_code</NAME>
<RETURNS>GnomeFontWeight  </RETURNS>
GnomeFontFace *face
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_face_is_italic</NAME>
<RETURNS>gboolean  </RETURNS>
GnomeFontFace *face
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_face_is_fixed_width</NAME>
<RETURNS>gboolean  </RETURNS>
GnomeFontFace *face
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_face_get_ascender</NAME>
<RETURNS>gdouble  </RETURNS>
GnomeFontFace *face
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_face_get_descender</NAME>
<RETURNS>gdouble  </RETURNS>
GnomeFontFace *face
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_face_get_underline_position</NAME>
<RETURNS>gdouble  </RETURNS>
GnomeFontFace *face
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_face_get_underline_thickness</NAME>
<RETURNS>gdouble  </RETURNS>
GnomeFontFace *face
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_face_get_num_glyphs</NAME>
<RETURNS>gint  </RETURNS>
GnomeFontFace *face
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_face_get_glyph_width</NAME>
<RETURNS>gdouble  </RETURNS>
GnomeFontFace *face, gint glyph
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_face_get_glyph_kerning</NAME>
<RETURNS>gdouble  </RETURNS>
GnomeFontFace *face, gint glyph1, gint glyph2
</FUNCTION>
<FUNCTION>
<NAME>gnome_font_face_get_glyph_ps_name</NAME>
<RETURNS>const guchar    *</RETURNS>
GnomeFontFace *face, gint glyph
</FUNCTION>
<MACRO>
<NAME>IDENTIFIER</NAME>
#define IDENTIFIER 258
</MACRO>
<MACRO>
<NAME>ASSIGNMENT</NAME>
#define ASSIGNMENT 259
</MACRO>
<MACRO>
<NAME>yystype</NAME>
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
</MACRO>
<MACRO>
<NAME>YYSTYPE_IS_DECLARED</NAME>
# define YYSTYPE_IS_DECLARED 1
</MACRO>
<MACRO>
<NAME>YYSTYPE_IS_TRIVIAL</NAME>
# define YYSTYPE_IS_TRIVIAL 1
</MACRO>
<STRUCT>
<NAME>GnomePrintModule</NAME>
</STRUCT>
<STRUCT>
<NAME>GnomePrintModule</NAME>
struct GnomePrintModule {
	   gint flags;
};
</STRUCT>
<ENUM>
<NAME>GnomePrintModuleFlags</NAME>
typedef enum {
	   GNOME_PRINT_MODULE_TRANSPORT      = 1 << 0,
	   GNOME_PRINT_MODULE_PRINTER_SOURCE = 1 << 1,
	   GNOME_PRINT_MODULE_QUEUE          = 1 << 2
} GnomePrintModuleFlags;
</ENUM>
<STRUCT>
<NAME>GpaModuleInfo</NAME>
</STRUCT>
<STRUCT>
<NAME>GpaModuleInfo</NAME>
struct GpaModuleInfo {
	void (*printer_list_append) (gpointer printers, const gchar *path);
	void (*polling_state) (gboolean poll);
};
</STRUCT>
<FUNCTION>
<NAME>gnome_print_module_init</NAME>
<RETURNS>void  </RETURNS>
void
</FUNCTION>
<STRUCT>
<NAME>GnomePrintConfig</NAME>
</STRUCT>
<MACRO>
<NAME>GNOME_TYPE_PRINT_CONFIG</NAME>
#define GNOME_TYPE_PRINT_CONFIG         (gnome_print_config_get_type ())
</MACRO>
<MACRO>
<NAME>GNOME_PRINT_CONFIG</NAME>
#define GNOME_PRINT_CONFIG(o)           (G_TYPE_CHECK_INSTANCE_CAST ((o), GNOME_TYPE_PRINT_CONFIG, GnomePrintConfig))
</MACRO>
<MACRO>
<NAME>GNOME_IS_PRINT_CONFIG</NAME>
#define GNOME_IS_PRINT_CONFIG(o)        (G_TYPE_CHECK_INSTANCE_TYPE ((o), GNOME_TYPE_PRINT_CONFIG))
</MACRO>
<FUNCTION>
<NAME>gnome_print_config_get_type</NAME>
<RETURNS>GType  </RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_config_default</NAME>
<RETURNS>GnomePrintConfig  *</RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_config_ref</NAME>
<RETURNS>GnomePrintConfig  *</RETURNS>
GnomePrintConfig *config
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_config_unref</NAME>
<RETURNS>GnomePrintConfig  *</RETURNS>
GnomePrintConfig *config
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_config_dup</NAME>
<RETURNS>GnomePrintConfig  *</RETURNS>
GnomePrintConfig *config
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_config_to_string</NAME>
<RETURNS>gchar  *</RETURNS>
GnomePrintConfig *gpc, guint flags
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_config_from_string</NAME>
<RETURNS>GnomePrintConfig  *</RETURNS>
const gchar *str, guint flags
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_config_get</NAME>
<RETURNS>guchar   *</RETURNS>
GnomePrintConfig *config, const guchar *key
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_config_set</NAME>
<RETURNS>gboolean  </RETURNS>
GnomePrintConfig *config, const guchar *key, const guchar *value
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_config_get_boolean</NAME>
<RETURNS>gboolean  </RETURNS>
GnomePrintConfig *config, const guchar *key, gboolean *val
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_config_get_int</NAME>
<RETURNS>gboolean  </RETURNS>
GnomePrintConfig *config, const guchar *key, gint *val
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_config_get_double</NAME>
<RETURNS>gboolean  </RETURNS>
GnomePrintConfig *config, const guchar *key, gdouble *val
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_config_get_length</NAME>
<RETURNS>gboolean  </RETURNS>
GnomePrintConfig *config, const guchar *key, gdouble *val, const GnomePrintUnit **unit
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_config_set_boolean</NAME>
<RETURNS>gboolean  </RETURNS>
GnomePrintConfig *config, const guchar *key, gboolean val
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_config_set_int</NAME>
<RETURNS>gboolean  </RETURNS>
GnomePrintConfig *config, const guchar *key, gint val
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_config_set_double</NAME>
<RETURNS>gboolean  </RETURNS>
GnomePrintConfig *config, const guchar *key, gdouble val
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_config_set_length</NAME>
<RETURNS>gboolean  </RETURNS>
GnomePrintConfig *config, const guchar *key, gdouble val, const GnomePrintUnit *unit
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_config_get_transform</NAME>
<RETURNS>gboolean  </RETURNS>
GnomePrintConfig *config, const guchar *key, gdouble *transform
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_config_get_page_size</NAME>
<RETURNS>gboolean  </RETURNS>
GnomePrintConfig *config, gdouble *width, gdouble *height
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_config_dump</NAME>
<RETURNS>void  </RETURNS>
GnomePrintConfig *gpc
</FUNCTION>
<STRUCT>
<NAME>GnomePrintConfigOption</NAME>
</STRUCT>
<STRUCT>
<NAME>GnomePrintConfigOption</NAME>
struct GnomePrintConfigOption {
	const gchar *id;
	const gchar *description;
	gint index;
};
</STRUCT>
<FUNCTION>
<NAME>gnome_print_config_insert_boolean</NAME>
<RETURNS>gboolean  </RETURNS>
GnomePrintConfig *config, const guchar *key,gboolean def
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_config_insert_options</NAME>
<RETURNS>gboolean  </RETURNS>
GnomePrintConfig *config, const guchar *key,GnomePrintConfigOption *options, const gchar *def
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_config_get_option</NAME>
<RETURNS>gboolean  </RETURNS>
GnomePrintConfig *config, const guchar *key,GnomePrintConfigOption *options, gint *
</FUNCTION>
<MACRO>
<NAME>GNOME_PRINT_KEY_PAPER_SIZE</NAME>
#define GNOME_PRINT_KEY_PAPER_SIZE               "Settings.Output.Media.PhysicalSize" /* Paper name, such as A4 or Letter */
</MACRO>
<MACRO>
<NAME>GNOME_PRINT_KEY_PAPER_WIDTH</NAME>
#define GNOME_PRINT_KEY_PAPER_WIDTH              "Settings.Output.Media.PhysicalSize.Width" /* Arbitrary units - use conversion */
</MACRO>
<MACRO>
<NAME>GNOME_PRINT_KEY_PAPER_HEIGHT</NAME>
#define GNOME_PRINT_KEY_PAPER_HEIGHT             "Settings.Output.Media.PhysicalSize.Height" /* Arbitrary units - use conversion */
</MACRO>
<MACRO>
<NAME>GNOME_PRINT_KEY_PAPER_ORIENTATION</NAME>
#define GNOME_PRINT_KEY_PAPER_ORIENTATION        "Settings.Output.Media.PhysicalOrientation" /* R0, R90, R180, R270 */
</MACRO>
<MACRO>
<NAME>GNOME_PRINT_KEY_PAPER_ORIENTATION_MATRIX</NAME>
#define GNOME_PRINT_KEY_PAPER_ORIENTATION_MATRIX "Settings.Output.Media.PhysicalOrientation.Paper2PrinterTransform" /* 3x2 abstract matrix */
</MACRO>
<MACRO>
<NAME>GNOME_PRINT_KEY_PAGE_ORIENTATION</NAME>
#define GNOME_PRINT_KEY_PAGE_ORIENTATION        "Settings.Document.Page.LogicalOrientation" /* R0, R90, R180, R270 */
</MACRO>
<MACRO>
<NAME>GNOME_PRINT_KEY_PAGE_ORIENTATION_MATRIX</NAME>
#define GNOME_PRINT_KEY_PAGE_ORIENTATION_MATRIX "Settings.Document.Page.LogicalOrientation.Page2LayoutTransform" /* 3x2 abstract matrix */
</MACRO>
<MACRO>
<NAME>GNOME_PRINT_KEY_ORIENTATION</NAME>
#define GNOME_PRINT_KEY_ORIENTATION GNOME_PRINT_KEY_PAGE_ORIENTATION
</MACRO>
<MACRO>
<NAME>GNOME_PRINT_KEY_LAYOUT</NAME>
#define GNOME_PRINT_KEY_LAYOUT        "Settings.Document.Page.Layout"        /* Id of layout ('Plain' is always no-special-layout) */
</MACRO>
<MACRO>
<NAME>GNOME_PRINT_KEY_LAYOUT_WIDTH</NAME>
#define GNOME_PRINT_KEY_LAYOUT_WIDTH  "Settings.Document.Page.Layout.Width"  /* Double value */
</MACRO>
<MACRO>
<NAME>GNOME_PRINT_KEY_LAYOUT_HEIGHT</NAME>
#define GNOME_PRINT_KEY_LAYOUT_HEIGHT "Settings.Document.Page.Layout.Height" /* Double value */
</MACRO>
<MACRO>
<NAME>GNOME_PRINT_KEY_PAPER_SOURCE</NAME>
#define GNOME_PRINT_KEY_PAPER_SOURCE  "Settings.Output.PaperSource"          /* String value, like "Tray 1" */
</MACRO>
<MACRO>
<NAME>GNOME_PRINT_KEY_RESOLUTION</NAME>
#define GNOME_PRINT_KEY_RESOLUTION       "Settings.Output.Resolution"       /* String value, like 300x300 or 300dpi */
</MACRO>
<MACRO>
<NAME>GNOME_PRINT_KEY_RESOLUTION_DPI</NAME>
#define GNOME_PRINT_KEY_RESOLUTION_DPI   "Settings.Output.Resolution.DPI"   /* Numeric value, like 300, if meaningful */
</MACRO>
<MACRO>
<NAME>GNOME_PRINT_KEY_RESOLUTION_DPI_X</NAME>
#define GNOME_PRINT_KEY_RESOLUTION_DPI_X "Settings.Output.Resolution.DPI.X" /* Numeric value */
</MACRO>
<MACRO>
<NAME>GNOME_PRINT_KEY_RESOLUTION_DPI_Y</NAME>
#define GNOME_PRINT_KEY_RESOLUTION_DPI_Y "Settings.Output.Resolution.DPI.Y" /* Numeric value */
</MACRO>
<MACRO>
<NAME>GNOME_PRINT_KEY_NUM_COPIES</NAME>
#define GNOME_PRINT_KEY_NUM_COPIES "Settings.Output.Job.NumCopies" /* Number of copies */
</MACRO>
<MACRO>
<NAME>GNOME_PRINT_KEY_NONCOLLATED_COPIES_IN_HW</NAME>
#define GNOME_PRINT_KEY_NONCOLLATED_COPIES_IN_HW "Settings.Output.Job.NonCollatedCopiesHW"
</MACRO>
<MACRO>
<NAME>GNOME_PRINT_KEY_COLLATED_COPIES_IN_HW</NAME>
#define GNOME_PRINT_KEY_COLLATED_COPIES_IN_HW "Settings.Output.Job.CollatedCopiesHW"
</MACRO>
<MACRO>
<NAME>GNOME_PRINT_KEY_COLLATE</NAME>
#define GNOME_PRINT_KEY_COLLATE    "Settings.Output.Job.Collate"   /* Boolean (true|yes|1 false|no|0) */
</MACRO>
<MACRO>
<NAME>GNOME_PRINT_KEY_DUPLEX</NAME>
#define GNOME_PRINT_KEY_DUPLEX    "Settings.Output.Job.Duplex"   /* Boolean (true|yes|1 false|no|0) */
</MACRO>
<MACRO>
<NAME>GNOME_PRINT_KEY_TUMBLE</NAME>
#define GNOME_PRINT_KEY_TUMBLE    "Settings.Output.Job.Tumble"   /* Boolean (true|yes|1 false|no|0) */
</MACRO>
<MACRO>
<NAME>GNOME_PRINT_KEY_HOLD</NAME>
#define GNOME_PRINT_KEY_HOLD    "Settings.Output.Job.Hold"   /* String value, like no-hold|indefinite|day-time|evening|night|weekend|second-shift|third-shift*/
</MACRO>
<MACRO>
<NAME>GNOME_PRINT_KEY_PAGE_MARGIN_LEFT</NAME>
#define GNOME_PRINT_KEY_PAGE_MARGIN_LEFT   "Settings.Document.Page.Margins.Left"   /* Length, i.e. use conversion */
</MACRO>
<MACRO>
<NAME>GNOME_PRINT_KEY_PAGE_MARGIN_RIGHT</NAME>
#define GNOME_PRINT_KEY_PAGE_MARGIN_RIGHT  "Settings.Document.Page.Margins.Right"  /* Length, i.e. use conversion */
</MACRO>
<MACRO>
<NAME>GNOME_PRINT_KEY_PAGE_MARGIN_TOP</NAME>
#define GNOME_PRINT_KEY_PAGE_MARGIN_TOP    "Settings.Document.Page.Margins.Top"    /* Length, i.e. use conversion */
</MACRO>
<MACRO>
<NAME>GNOME_PRINT_KEY_PAGE_MARGIN_BOTTOM</NAME>
#define GNOME_PRINT_KEY_PAGE_MARGIN_BOTTOM "Settings.Document.Page.Margins.Bottom" /* Length, i.e. use conversion */
</MACRO>
<MACRO>
<NAME>GNOME_PRINT_KEY_PAPER_MARGIN_LEFT</NAME>
#define GNOME_PRINT_KEY_PAPER_MARGIN_LEFT   "Settings.Output.Media.Margins.Left"   /* Length, i.e. use conversion */
</MACRO>
<MACRO>
<NAME>GNOME_PRINT_KEY_PAPER_MARGIN_RIGHT</NAME>
#define GNOME_PRINT_KEY_PAPER_MARGIN_RIGHT  "Settings.Output.Media.Margins.Right"  /* Length, i.e. use conversion */
</MACRO>
<MACRO>
<NAME>GNOME_PRINT_KEY_PAPER_MARGIN_TOP</NAME>
#define GNOME_PRINT_KEY_PAPER_MARGIN_TOP    "Settings.Output.Media.Margins.Top"    /* Length, i.e. use conversion */
</MACRO>
<MACRO>
<NAME>GNOME_PRINT_KEY_PAPER_MARGIN_BOTTOM</NAME>
#define GNOME_PRINT_KEY_PAPER_MARGIN_BOTTOM "Settings.Output.Media.Margins.Bottom" /* Length, i.e. use conversion */
</MACRO>
<MACRO>
<NAME>GNOME_PRINT_KEY_OUTPUT_FILENAME</NAME>
#define GNOME_PRINT_KEY_OUTPUT_FILENAME "Settings.Output.Job.FileName"          /* Filename used when printing to file. */
</MACRO>
<MACRO>
<NAME>GNOME_PRINT_KEY_DOCUMENT_NAME</NAME>
#define GNOME_PRINT_KEY_DOCUMENT_NAME   "Settings.Document.Name"                /* The name of the document 'Cash flow 2002', `Grandma cookie recipies' */
</MACRO>
<MACRO>
<NAME>GNOME_PRINT_KEY_PREFERED_UNIT</NAME>
#define GNOME_PRINT_KEY_PREFERED_UNIT   "Settings.Document.PreferedUnit"        /* Abbreviation for the preferred unit cm, in,... */
</MACRO>
<MACRO>
<NAME>my_xmlFreeDoc</NAME>
#define my_xmlFreeDoc(d) if(d) xmlFreeDoc(d)
</MACRO>
<MACRO>
<NAME>my_xmlFree</NAME>
#define my_xmlFree(x) if(x) xmlFree(x)
</MACRO>
<MACRO>
<NAME>my_g_free</NAME>
#define my_g_free(x)  if(x) g_free(x)
</MACRO>
<MACRO>
<NAME>my_gpa_node_unref</NAME>
#define my_gpa_node_unref(n) if(n)gpa_node_unref (GPA_NODE (n))
</MACRO>
<FUNCTION>
<NAME>gpa_xml_node_get_name</NAME>
<RETURNS>xmlChar  *</RETURNS>
xmlNodePtr node
</FUNCTION>
<FUNCTION>
<NAME>gpa_xml_node_get_child</NAME>
<RETURNS>xmlNodePtr  </RETURNS>
xmlNodePtr node, const guchar *name
</FUNCTION>
<FUNCTION>
<NAME>gpa_utils_dump_tree</NAME>
<RETURNS>void  </RETURNS>
GPANode *node, gint follow_references
</FUNCTION>
<MACRO>
<NAME>gpa_return_false_if_fail</NAME>
#define gpa_return_false_if_fail(expr)	G_STMT_START{			\
     if (expr) { } else							\
       {								\
	 g_log (G_LOG_DOMAIN,						\
		G_LOG_LEVEL_CRITICAL,					\
		"file %s: line %d (%s): assertion `%s' failed",		\
		__FILE__,						\
		__LINE__,						\
		__PRETTY_FUNCTION__,					\
		#expr);							\
	 return (FALSE);						\
       };				}G_STMT_END
</MACRO>
<MACRO>
<NAME>GPA_NODE_FLAGS</NAME>
#define GPA_NODE_FLAGS(n)         (GPA_NODE(n)->flags)
</MACRO>
<MACRO>
<NAME>GPA_NODE_SET_FLAGS</NAME>
#define GPA_NODE_SET_FLAGS(n,f)   (GPA_NODE(n)->flags |= f)
</MACRO>
<MACRO>
<NAME>GPA_NODE_UNSET_FLAGS</NAME>
#define GPA_NODE_UNSET_FLAGS(n,f) (GPA_NODE(n)->flags &= (~f))
</MACRO>
<MACRO>
<NAME>GPA_NODE_ID</NAME>
#define GPA_NODE_ID(n)           (n ? g_quark_to_string (GPA_NODE (n)->qid) : NULL)
</MACRO>
<MACRO>
<NAME>GPA_NODE_ID_COMPARE</NAME>
#define GPA_NODE_ID_COMPARE(n,s) ((s) && (g_quark_try_string (s) == GPA_NODE (n)->qid))
</MACRO>
<MACRO>
<NAME>GPA_NODE_PARENT</NAME>
#define GPA_NODE_PARENT(n)       (GPA_NODE (n)->parent)
</MACRO>
<ENUM>
<NAME>GPANodeFlags</NAME>
typedef enum {
	NODE_FLAG_LOCKED = 1 << 4 /* Used for options when an option can't change from the default */
} GPANodeFlags;
</ENUM>
<STRUCT>
<NAME>GPANode</NAME>
struct GPANode {
	GObject object;
	guint32 flags;  /* Future use */
	GQuark qid;     /* quark id of the node */

	/* Tree structure links*/
	GPANode *parent;
	GPANode *next;
	GPANode *children;
};
</STRUCT>
<STRUCT>
<NAME>GPANodeClass</NAME>
struct GPANodeClass {
	GObjectClass object_class;

	guchar * (* get_value)  (GPANode *node);
	gboolean (* set_value)  (GPANode *node, const guchar *value);

	GPANode * (* duplicate) (GPANode *node);
	gboolean  (* verify)    (GPANode *node);
	
	/* Signal that the node value has changed */
	void     (* modified)   (GPANode *node, gint flags);
	void     (* child_added)(GPANode *parent, GPANode *child);
	void     (* child_removed)(GPANode *parent, GPANode *child);
};
</STRUCT>
<FUNCTION>
<NAME>gpa_node_get_type</NAME>
<RETURNS>GType  </RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>gpa_node_new</NAME>
<RETURNS>GPANode  *</RETURNS>
GType type, const guchar *id
</FUNCTION>
<FUNCTION>
<NAME>gpa_node_verify</NAME>
<RETURNS>gboolean  </RETURNS>
GPANode *node
</FUNCTION>
<FUNCTION>
<NAME>gpa_node_duplicate</NAME>
<RETURNS>GPANode  *</RETURNS>
GPANode *node
</FUNCTION>
<FUNCTION>
<NAME>gpa_node_lookup</NAME>
<RETURNS>GPANode  *</RETURNS>
GPANode *node, const guchar *path
</FUNCTION>
<FUNCTION>
<NAME>gpa_node_emit_modified</NAME>
<RETURNS>void  </RETURNS>
GPANode *node
</FUNCTION>
<MACRO>
<NAME>GPA_TYPE_NODE</NAME>
#define GPA_TYPE_NODE         (gpa_node_get_type ())
</MACRO>
<MACRO>
<NAME>GPA_NODE</NAME>
#define GPA_NODE(o)           (G_TYPE_CHECK_INSTANCE_CAST ((o), GPA_TYPE_NODE, GPANode))
</MACRO>
<MACRO>
<NAME>GPA_NODE_CLASS</NAME>
#define GPA_NODE_CLASS(k)     (G_TYPE_CHECK_CLASS_CAST ((k),    GPA_TYPE_NODE, GPANodeClass))
</MACRO>
<MACRO>
<NAME>GPA_IS_NODE</NAME>
#define GPA_IS_NODE(o)        (G_TYPE_CHECK_INSTANCE_TYPE ((o), GPA_TYPE_NODE))
</MACRO>
<MACRO>
<NAME>GPA_IS_NODE_CLASS</NAME>
#define GPA_IS_NODE_CLASS(k)  (G_TYPE_CHECK_CLASS_TYPE ((k),    GPA_TYPE_NODE))
</MACRO>
<MACRO>
<NAME>GPA_NODE_GET_CLASS</NAME>
#define GPA_NODE_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o),  GPA_TYPE_NODE, GPANodeClass))
</MACRO>
<STRUCT>
<NAME>GPANode</NAME>
</STRUCT>
<STRUCT>
<NAME>GPANodeClass</NAME>
</STRUCT>
<FUNCTION>
<NAME>gpa_node_get_type</NAME>
<RETURNS>GType  </RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>gpa_node_ref</NAME>
<RETURNS>GPANode  *</RETURNS>
GPANode *node
</FUNCTION>
<FUNCTION>
<NAME>gpa_node_unref</NAME>
<RETURNS>GPANode  *</RETURNS>
GPANode *node
</FUNCTION>
<FUNCTION>
<NAME>gpa_node_id</NAME>
<RETURNS>const guchar  *</RETURNS>
GPANode *node
</FUNCTION>
<FUNCTION>
<NAME>gpa_node_get_parent</NAME>
<RETURNS>GPANode  *</RETURNS>
GPANode *node
</FUNCTION>
<FUNCTION>
<NAME>gpa_node_get_child</NAME>
<RETURNS>GPANode  *</RETURNS>
GPANode *node, GPANode *previous_child
</FUNCTION>
<FUNCTION>
<NAME>gpa_node_get_child_from_path</NAME>
<RETURNS>GPANode  *</RETURNS>
GPANode *node, const guchar *path
</FUNCTION>
<FUNCTION>
<NAME>gpa_node_get_value</NAME>
<RETURNS>guchar  *</RETURNS>
GPANode *node
</FUNCTION>
<FUNCTION>
<NAME>gpa_node_set_value</NAME>
<RETURNS>gboolean  </RETURNS>
GPANode *node, const guchar *value
</FUNCTION>
<FUNCTION>
<NAME>gpa_node_get_path_value</NAME>
<RETURNS>guchar  *</RETURNS>
GPANode *node, const guchar *path
</FUNCTION>
<FUNCTION>
<NAME>gpa_node_set_path_value</NAME>
<RETURNS>gboolean  </RETURNS>
GPANode *node, const guchar *path, const guchar *value
</FUNCTION>
<FUNCTION>
<NAME>gpa_node_attach</NAME>
<RETURNS>GPANode  *</RETURNS>
GPANode *parent, GPANode *child
</FUNCTION>
<FUNCTION>
<NAME>gpa_node_reverse_children</NAME>
<RETURNS>void  </RETURNS>
GPANode *node
</FUNCTION>
<FUNCTION>
<NAME>gpa_node_detach</NAME>
<RETURNS>void  </RETURNS>
GPANode *node
</FUNCTION>
<FUNCTION>
<NAME>gpa_node_detach_unref</NAME>
<RETURNS>GPANode  *</RETURNS>
GPANode *child
</FUNCTION>
<FUNCTION>
<NAME>gpa_node_detach_unref_children</NAME>
<RETURNS>void  </RETURNS>
GPANode *node
</FUNCTION>
<FUNCTION>
<NAME>gpa_node_get_int_path_value</NAME>
<RETURNS>gboolean  </RETURNS>
GPANode *node, const guchar *path, gint *value
</FUNCTION>
<FUNCTION>
<NAME>gpa_node_get_length_path_value</NAME>
<RETURNS>gboolean  </RETURNS>
GPANode *node, const guchar *path, gdouble *value
</FUNCTION>
<MACRO>
<NAME>GPA_TYPE_OPTION</NAME>
#define GPA_TYPE_OPTION         (gpa_option_get_type ())
</MACRO>
<MACRO>
<NAME>GPA_OPTION</NAME>
#define GPA_OPTION(o)           (G_TYPE_CHECK_INSTANCE_CAST ((o), GPA_TYPE_OPTION, GPAOption))
</MACRO>
<MACRO>
<NAME>GPA_IS_OPTION</NAME>
#define GPA_IS_OPTION(o)        (G_TYPE_CHECK_INSTANCE_TYPE ((o), GPA_TYPE_OPTION))
</MACRO>
<MACRO>
<NAME>GPA_OPTION_IS_NODE</NAME>
#define GPA_OPTION_IS_NODE(o)   (GPA_OPTION (o)->type == GPA_OPTION_TYPE_NODE)
</MACRO>
<MACRO>
<NAME>GPA_OPTION_IS_NONE</NAME>
#define GPA_OPTION_IS_NONE(o)   (GPA_OPTION (o)->type == GPA_OPTION_TYPE_NONE)
</MACRO>
<MACRO>
<NAME>GPA_OPTION_IS_LIST</NAME>
#define GPA_OPTION_IS_LIST(o)   (GPA_OPTION (o)->type == GPA_OPTION_TYPE_LIST)
</MACRO>
<MACRO>
<NAME>GPA_OPTION_IS_ITEM</NAME>
#define GPA_OPTION_IS_ITEM(o)   (GPA_OPTION (o)->type == GPA_OPTION_TYPE_ITEM)
</MACRO>
<MACRO>
<NAME>GPA_OPTION_IS_KEY</NAME>
#define GPA_OPTION_IS_KEY(o)    (GPA_OPTION (o)->type == GPA_OPTION_TYPE_KEY)
</MACRO>
<MACRO>
<NAME>GPA_OPTION_IS_STRING</NAME>
#define GPA_OPTION_IS_STRING(o) (GPA_OPTION (o)->type == GPA_OPTION_TYPE_STRING)
</MACRO>
<STRUCT>
<NAME>GPAOption</NAME>
</STRUCT>
<STRUCT>
<NAME>GPAOptionClass</NAME>
</STRUCT>
<ENUM>
<NAME>GPAOptionType</NAME>
typedef enum {
	GPA_OPTION_TYPE_NONE,
	GPA_OPTION_TYPE_NODE,
	GPA_OPTION_TYPE_KEY,
	GPA_OPTION_TYPE_LIST,
	GPA_OPTION_TYPE_ITEM,
	GPA_OPTION_TYPE_STRING,
	GPA_OPTION_TYPE_ROOT
} GPAOptionType;
</ENUM>
<STRUCT>
<NAME>GPAOption</NAME>
struct GPAOption {
	GPANode node;
	GPAOptionType type;
	guchar *value;
};
</STRUCT>
<FUNCTION>
<NAME>gpa_option_get_type</NAME>
<RETURNS>GType  </RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>gpa_option_new_from_tree</NAME>
<RETURNS>GPANode  *</RETURNS>
xmlNodePtr tree, GPANode *parent
</FUNCTION>
<FUNCTION>
<NAME>gpa_option_node_new_from_tree</NAME>
<RETURNS>GPANode  *</RETURNS>
xmlNodePtr tree, GPANode *parent, const guchar *id
</FUNCTION>
<FUNCTION>
<NAME>gpa_option_create_key</NAME>
<RETURNS>GPANode  *</RETURNS>
GPAOption *option, GPANode *parent
</FUNCTION>
<FUNCTION>
<NAME>gpa_option_get_child_by_id</NAME>
<RETURNS>GPANode  *</RETURNS>
GPAOption *option, const guchar *id
</FUNCTION>
<FUNCTION>
<NAME>gpa_option_node_new</NAME>
<RETURNS>GPANode  *</RETURNS>
GPANode *parent, const guchar *id
</FUNCTION>
<FUNCTION>
<NAME>gpa_option_list_new</NAME>
<RETURNS>GPANode  *</RETURNS>
GPANode *parent, const guchar *id, const guchar *value
</FUNCTION>
<FUNCTION>
<NAME>gpa_option_item_new</NAME>
<RETURNS>GPANode  *</RETURNS>
GPANode *parent, const guchar *id, const guchar *value
</FUNCTION>
<FUNCTION>
<NAME>gpa_option_key_new</NAME>
<RETURNS>GPANode  *</RETURNS>
GPANode *parent, const guchar *id, const guchar *value
</FUNCTION>
<FUNCTION>
<NAME>gpa_option_string_new</NAME>
<RETURNS>GPANode  *</RETURNS>
GPANode *parent, const guchar *id, const guchar *value
</FUNCTION>
<FUNCTION>
<NAME>gpa_option_append_child</NAME>
<RETURNS>gboolean  </RETURNS>
GPAOption *option, GPAOption *child
</FUNCTION>
<FUNCTION>
<NAME>gpa_option_get_name</NAME>
<RETURNS>gchar  *</RETURNS>
GPANode *node
</FUNCTION>
<MACRO>
<NAME>gpa_option_prepend_child</NAME>
#define gpa_option_prepend_child(o,c)  gpa_node_attach(o,c)
</MACRO>
<MACRO>
<NAME>gpa_option_reverse_children</NAME>
#define gpa_option_reverse_children(o) gpa_node_reverse_children(o)
</MACRO>
<MACRO>
<NAME>GPA_TYPE_REFERENCE</NAME>
#define GPA_TYPE_REFERENCE         (gpa_reference_get_type ())
</MACRO>
<MACRO>
<NAME>GPA_REFERENCE</NAME>
#define GPA_REFERENCE(o)           (G_TYPE_CHECK_INSTANCE_CAST ((o), GPA_TYPE_REFERENCE, GPAReference))
</MACRO>
<MACRO>
<NAME>GPA_IS_REFERENCE</NAME>
#define GPA_IS_REFERENCE(o)        (G_TYPE_CHECK_INSTANCE_TYPE ((o), GPA_TYPE_REFERENCE))
</MACRO>
<MACRO>
<NAME>GPA_REFERENCE_REFERENCE</NAME>
#define GPA_REFERENCE_REFERENCE(r) ((r) ? GPA_REFERENCE (r)->ref : NULL)
</MACRO>
<STRUCT>
<NAME>GPAReference</NAME>
</STRUCT>
<STRUCT>
<NAME>GPAReferenceClass</NAME>
</STRUCT>
<STRUCT>
<NAME>GPAReference</NAME>
struct GPAReference {
	GPANode node;
	GPANode *ref;
};
</STRUCT>
<STRUCT>
<NAME>GPAReferenceClass</NAME>
struct GPAReferenceClass {
	GPANodeClass node_class;
};
</STRUCT>
<FUNCTION>
<NAME>gpa_reference_get_type</NAME>
<RETURNS>GType  </RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>gpa_reference_new</NAME>
<RETURNS>GPAReference  *</RETURNS>
GPANode *node, const guchar *id
</FUNCTION>
<FUNCTION>
<NAME>gpa_reference_new_emtpy</NAME>
<RETURNS>GPAReference  *</RETURNS>
const guchar *id
</FUNCTION>
<FUNCTION>
<NAME>gpa_reference_set_reference</NAME>
<RETURNS>gboolean  </RETURNS>
GPAReference *reference, GPANode *node
</FUNCTION>
<MACRO>
<NAME>GPA_TYPE_ROOT</NAME>
#define GPA_TYPE_ROOT         (gpa_root_get_type ())
</MACRO>
<MACRO>
<NAME>GPA_ROOT</NAME>
#define GPA_ROOT(o)           (G_TYPE_CHECK_INSTANCE_CAST ((o), GPA_TYPE_ROOT, GPARoot))
</MACRO>
<MACRO>
<NAME>GPA_IS_ROOT</NAME>
#define GPA_IS_ROOT(o)        (G_TYPE_CHECK_INSTANCE_TYPE ((o), GPA_TYPE_ROOT))
</MACRO>
<STRUCT>
<NAME>GPARoot</NAME>
</STRUCT>
<STRUCT>
<NAME>GPARoot</NAME>
struct GPARoot {
	GPANode node;
	GPANode *globals;
	GPANode *printers;
};
</STRUCT>
<FUNCTION>
<NAME>gpa_root_get_type</NAME>
<RETURNS>GType  </RETURNS>
void
</FUNCTION>
<VARIABLE>
<NAME>gpa_root</NAME>
extern GPARoot *gpa_root;
</VARIABLE>
<FUNCTION>
<NAME>gpa_get_printers</NAME>
<RETURNS>GPAList  *</RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>gpa_init</NAME>
<RETURNS>gboolean  </RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>gpa_initialized</NAME>
<RETURNS>gboolean  </RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>gpa_shutdown</NAME>
<RETURNS>void  </RETURNS>
void
</FUNCTION>
<MACRO>
<NAME>GPA_TYPE_MODEL</NAME>
#define GPA_TYPE_MODEL         (gpa_model_get_type ())
</MACRO>
<MACRO>
<NAME>GPA_MODEL</NAME>
#define GPA_MODEL(o)           (G_TYPE_CHECK_INSTANCE_CAST ((o), GPA_TYPE_MODEL, GPAModel))
</MACRO>
<MACRO>
<NAME>GPA_IS_MODEL</NAME>
#define GPA_IS_MODEL(o)        (G_TYPE_CHECK_INSTANCE_TYPE ((o), GPA_TYPE_MODEL))
</MACRO>
<STRUCT>
<NAME>GPAModel</NAME>
</STRUCT>
<STRUCT>
<NAME>GPAModelClass</NAME>
</STRUCT>
<STRUCT>
<NAME>GPAModel</NAME>
struct GPAModel {
	GPANode node;
	
	gchar *name;
	GPANode *options;
};
</STRUCT>
<STRUCT>
<NAME>GPAModelClass</NAME>
struct GPAModelClass {
	GPANodeClass node_class;
};
</STRUCT>
<FUNCTION>
<NAME>gpa_model_get_type</NAME>
<RETURNS>GType  </RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>gpa_model_get_by_id</NAME>
<RETURNS>GPANode  *</RETURNS>
const guchar *id, gboolean quiet
</FUNCTION>
<FUNCTION>
<NAME>gpa_model_new_from_tree</NAME>
<RETURNS>GPANode  *</RETURNS>
xmlNodePtr tree
</FUNCTION>
<FUNCTION>
<NAME>gpa_model_new_from_xml_str</NAME>
<RETURNS>GPANode  *</RETURNS>
char const *string
</FUNCTION>
<FUNCTION>
<NAME>gpa_model_hash_insert</NAME>
<RETURNS>void  </RETURNS>
GPAModel *model
</FUNCTION>
<FUNCTION>
<NAME>gpa_model_hash_lookup</NAME>
<RETURNS>GPANode  *</RETURNS>
const gchar *id
</FUNCTION>
<MACRO>
<NAME>GPA_TYPE_CONFIG</NAME>
#define GPA_TYPE_CONFIG         (gpa_config_get_type ())
</MACRO>
<MACRO>
<NAME>GPA_CONFIG</NAME>
#define GPA_CONFIG(o)           (G_TYPE_CHECK_INSTANCE_CAST ((o), GPA_TYPE_CONFIG, GPAConfig))
</MACRO>
<MACRO>
<NAME>GPA_IS_CONFIG</NAME>
#define GPA_IS_CONFIG(o)        (G_TYPE_CHECK_INSTANCE_TYPE ((o), GPA_TYPE_CONFIG))
</MACRO>
<STRUCT>
<NAME>GPAConfig</NAME>
</STRUCT>
<STRUCT>
<NAME>GPAConfig</NAME>
struct GPAConfig {
	GPANode node;
	GPANode *printer;
	GPANode *settings;
};
</STRUCT>
<FUNCTION>
<NAME>gpa_config_get_type</NAME>
<RETURNS>GType  </RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>gpa_config_new</NAME>
<RETURNS>GPAConfig  *</RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>gpa_config_new_full</NAME>
<RETURNS>GPAConfig  *</RETURNS>
GPAPrinter *printer, GPASettings * settings
</FUNCTION>
<FUNCTION>
<NAME>gpa_config_to_string</NAME>
<RETURNS>gchar  *</RETURNS>
GPAConfig *config, guint flags
</FUNCTION>
<FUNCTION>
<NAME>gpa_config_from_string</NAME>
<RETURNS>GPAConfig *</RETURNS>
const gchar *string, guint flags
</FUNCTION>
<MACRO>
<NAME>GPA_TYPE_SETTINGS</NAME>
#define GPA_TYPE_SETTINGS         (gpa_settings_get_type ())
</MACRO>
<MACRO>
<NAME>GPA_SETTINGS</NAME>
#define GPA_SETTINGS(o)           (G_TYPE_CHECK_INSTANCE_CAST ((o), GPA_TYPE_SETTINGS, GPASettings))
</MACRO>
<MACRO>
<NAME>GPA_IS_SETTINGS</NAME>
#define GPA_IS_SETTINGS(o)        (G_TYPE_CHECK_INSTANCE_TYPE ((o), GPA_TYPE_SETTINGS))
</MACRO>
<STRUCT>
<NAME>GPASettings</NAME>
</STRUCT>
<STRUCT>
<NAME>GPASettings</NAME>
struct GPASettings {
	GPANode node;

	gchar *name;      /* User visible name, "Default", "Photographs", "Drafts", etc */

	GPAReference *model;   /* A GPAReference to the model of the printer (eqv to printer->settings) */
	GPAReference *printer; /* A GPAReference to the printer */
};
</STRUCT>
<FUNCTION>
<NAME>gpa_settings_get_type</NAME>
<RETURNS>GType  </RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>gpa_settings_new</NAME>
<RETURNS>GPANode  *</RETURNS>
GPAModel *model, const guchar *name, const guchar *id
</FUNCTION>
<FUNCTION>
<NAME>gpa_settings_new_empty</NAME>
<RETURNS>GPANode  *</RETURNS>
const guchar *name, const guchar *id
</FUNCTION>
<FUNCTION>
<NAME>gpa_settings_new_from_model_and_tree</NAME>
<RETURNS>GPANode  *</RETURNS>
GPANode *model, xmlNodePtr tree
</FUNCTION>
<FUNCTION>
<NAME>gpa_settings_copy</NAME>
<RETURNS>gboolean  </RETURNS>
GPASettings *dst, GPASettings *src
</FUNCTION>
<FUNCTION>
<NAME>gpa_settings_to_tree</NAME>
<RETURNS>xmlNodePtr  </RETURNS>
GPASettings *settings
</FUNCTION>
<MACRO>
<NAME>GPA_TYPE_STATE</NAME>
#define GPA_TYPE_STATE         (gpa_state_get_type ())
</MACRO>
<MACRO>
<NAME>GPA_STATE</NAME>
#define GPA_STATE(o)           (G_TYPE_CHECK_INSTANCE_CAST ((o), GPA_TYPE_STATE, GPAState))
</MACRO>
<MACRO>
<NAME>GPA_IS_STATE</NAME>
#define GPA_IS_STATE(o)        (G_TYPE_CHECK_INSTANCE_TYPE ((o), GPA_TYPE_STATE))
</MACRO>
<MACRO>
<NAME>GPA_STATE_ID</NAME>
#define GPA_STATE_ID(k)         (GPA_STATE (k)->id)
</MACRO>
<STRUCT>
<NAME>GPAState</NAME>
</STRUCT>
<STRUCT>
<NAME>GPAStateClass</NAME>
</STRUCT>
<STRUCT>
<NAME>GPAState</NAME>
struct GPAState {
	GPANode node;

	char *value;
};
</STRUCT>
<STRUCT>
<NAME>GPAStateClass</NAME>
struct GPAStateClass {
	GPANodeClass node_class;
};
</STRUCT>
<FUNCTION>
<NAME>gpa_state_get_type</NAME>
<RETURNS>GType  </RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>gpa_state_new</NAME>
<RETURNS>GPAState  *</RETURNS>
const char *id
</FUNCTION>
<MACRO>
<NAME>GPA_TYPE_LIST</NAME>
#define GPA_TYPE_LIST         (gpa_list_get_type ())
</MACRO>
<MACRO>
<NAME>GPA_LIST</NAME>
#define GPA_LIST(o)           (G_TYPE_CHECK_INSTANCE_CAST ((o), GPA_TYPE_LIST, GPAList))
</MACRO>
<MACRO>
<NAME>GPA_IS_LIST</NAME>
#define GPA_IS_LIST(o)        (G_TYPE_CHECK_INSTANCE_TYPE ((o), GPA_TYPE_LIST))
</MACRO>
<MACRO>
<NAME>gpa_list_ref</NAME>
#define gpa_list_ref(l)       ((GPAList *)gpa_node_ref   (GPA_NODE (l)))
</MACRO>
<MACRO>
<NAME>gpa_list_unref</NAME>
#define gpa_list_unref(l)     ((GPAList *)gpa_node_unref (GPA_NODE (l)))
</MACRO>
<MACRO>
<NAME>gpa_list_prepend</NAME>
#define gpa_list_prepend(l,c) ((GPAList *) gpa_node_attach (GPA_NODE (l), GPA_NODE (c)))
</MACRO>
<MACRO>
<NAME>gpa_list_reverse</NAME>
#define gpa_list_reverse(l)   (gpa_node_reverse_children (GPA_NODE (l)))
</MACRO>
<STRUCT>
<NAME>GPAList</NAME>
</STRUCT>
<STRUCT>
<NAME>GPAList</NAME>
struct GPAList {
	GPANode node;
	GType childtype;              /* The node type of the list children */
	guint can_have_default : 1;   /* TRUE if this list can have a deafult child */
	GPAReference *def;            /* A GPAReference to the default value */
};
</STRUCT>
<FUNCTION>
<NAME>gpa_list_get_type</NAME>
<RETURNS>GType  </RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>gpa_list_new</NAME>
<RETURNS>GPAList  *</RETURNS>
GType childtype, const gchar *list_name, gboolean can_have_default
</FUNCTION>
<FUNCTION>
<NAME>gpa_list_set_default</NAME>
<RETURNS>gboolean  </RETURNS>
GPAList *list, GPANode *def
</FUNCTION>
<FUNCTION>
<NAME>gpa_list_get_default</NAME>
<RETURNS>GPANode  *</RETURNS>
GPAList *list
</FUNCTION>
<MACRO>
<NAME>GPA_TYPE_PRINTER</NAME>
#define GPA_TYPE_PRINTER         (gpa_printer_get_type ())
</MACRO>
<MACRO>
<NAME>GPA_PRINTER</NAME>
#define GPA_PRINTER(o)           (G_TYPE_CHECK_INSTANCE_CAST ((o), GPA_TYPE_PRINTER, GPAPrinter))
</MACRO>
<MACRO>
<NAME>GPA_IS_PRINTER</NAME>
#define GPA_IS_PRINTER(o)        (G_TYPE_CHECK_INSTANCE_TYPE ((o), GPA_TYPE_PRINTER))
</MACRO>
<STRUCT>
<NAME>GPAPrinter</NAME>
</STRUCT>
<STRUCT>
<NAME>GPAPrinter</NAME>
struct GPAPrinter {
	GPANode node;

	gchar *name;

	/* is_complete indicates whether the model and settings are set.   */
	gboolean is_complete;
	GModule *module_handle;
	gchar *module_path;

	GPANode *model;    /* of type GPAReference which points to a GPAModel */
	GPANode *settings; /* of type GPAList, with childs of type GPASettings */
	GPANode *state; /* of type GPAList, with childs of type GPANode */

	gboolean polling;
};
</STRUCT>
<FUNCTION>
<NAME>gpa_printer_get_type</NAME>
<RETURNS>GType  </RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>gpa_printer_new</NAME>
<RETURNS>GPANode  *</RETURNS>
const gchar *id, const gchar *name,GPAModel *model, GPASettings *settings
</FUNCTION>
<FUNCTION>
<NAME>gpa_printer_new_stub</NAME>
<RETURNS>GPANode  *</RETURNS>
const gchar *id, const gchar *name,const gchar *
</FUNCTION>
<FUNCTION>
<NAME>gpa_printer_complete_stub</NAME>
<RETURNS>gboolean  </RETURNS>
GPAPrinter *printer,GPAModel *model, GPASettings *settings
</FUNCTION>
<FUNCTION>
<NAME>gpa_printer_list_load</NAME>
<RETURNS>GPAList  *</RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>gpa_printer_get_default</NAME>
<RETURNS>GPANode  *</RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>gpa_printer_get_by_id</NAME>
<RETURNS>GPANode  *</RETURNS>
const guchar *id
</FUNCTION>
<FUNCTION>
<NAME>gpa_printer_set_polling</NAME>
<RETURNS>void  </RETURNS>
GPAPrinter *printer, gboolean poll
</FUNCTION>
<FUNCTION>
<NAME>gpa_printer_get_default_settings</NAME>
<RETURNS>GPANode  *</RETURNS>
GPAPrinter *printer
</FUNCTION>
<FUNCTION>
<NAME>gpa_printer_get_settings_by_id</NAME>
<RETURNS>GPANode  *</RETURNS>
GPAPrinter *printer, const guchar *id
</FUNCTION>
<FUNCTION>
<NAME>gpa_printer_get_state</NAME>
<RETURNS>GPANode  *</RETURNS>
GPAPrinter *printer
</FUNCTION>
<FUNCTION>
<NAME>gpa_printer_get_state_by_id</NAME>
<RETURNS>GPANode  *</RETURNS>
GPAPrinter *printer, const guchar *id
</FUNCTION>
<MACRO>
<NAME>GPA_TYPE_KEY</NAME>
#define GPA_TYPE_KEY         (gpa_key_get_type ())
</MACRO>
<MACRO>
<NAME>GPA_KEY</NAME>
#define GPA_KEY(o)           (G_TYPE_CHECK_INSTANCE_CAST ((o), GPA_TYPE_KEY, GPAKey))
</MACRO>
<MACRO>
<NAME>GPA_IS_KEY</NAME>
#define GPA_IS_KEY(o)        (G_TYPE_CHECK_INSTANCE_TYPE ((o), GPA_TYPE_KEY))
</MACRO>
<MACRO>
<NAME>GPA_KEY_ID</NAME>
#define GPA_KEY_ID(k)         (GPA_KEY (k)->id)
</MACRO>
<MACRO>
<NAME>GPA_KEY_HAS_OPTION</NAME>
#define GPA_KEY_HAS_OPTION(k) ((k) && GPA_KEY (k)->option)
</MACRO>
<MACRO>
<NAME>GPA_KEY_OPTION</NAME>
#define GPA_KEY_OPTION(k)     ((k) && GPA_KEY (k)->option ? GPA_OPTION (GPA_KEY (k)->option) : NULL)
</MACRO>
<STRUCT>
<NAME>GPAKey</NAME>
</STRUCT>
<STRUCT>
<NAME>GPAKeyClass</NAME>
</STRUCT>
<STRUCT>
<NAME>GPAKey</NAME>
struct GPAKey {
	GPANode node;

	GPANode *option;
	guchar *value;
};
</STRUCT>
<STRUCT>
<NAME>GPAKeyClass</NAME>
struct GPAKeyClass {
	GPANodeClass node_class;
};
</STRUCT>
<FUNCTION>
<NAME>gpa_key_get_type</NAME>
<RETURNS>GType  </RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>gpa_key_merge_from_tree</NAME>
<RETURNS>gboolean  </RETURNS>
GPANode *key, xmlNodePtr tree
</FUNCTION>
<FUNCTION>
<NAME>gpa_key_merge_from_key</NAME>
<RETURNS>gboolean  </RETURNS>
GPAKey *dst, GPAKey *src
</FUNCTION>
<FUNCTION>
<NAME>gpa_key_to_tree</NAME>
<RETURNS>xmlNodePtr  </RETURNS>
GPAKey *key
</FUNCTION>
<FUNCTION>
<NAME>gpa_key_insert</NAME>
<RETURNS>gboolean  </RETURNS>
GPANode *parent, const guchar *path, const guchar *value
</FUNCTION>
<MACRO>
<NAME>GP_TYPE_TRANSPORT_FILE</NAME>
#define GP_TYPE_TRANSPORT_FILE (gp_transport_file_get_type ())
</MACRO>
<MACRO>
<NAME>GP_TRANSPORT_FILE</NAME>
#define GP_TRANSPORT_FILE(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GP_TYPE_TRANSPORT_FILE, GPTransportFile))
</MACRO>
<MACRO>
<NAME>GP_TRANSPORT_FILE_CLASS</NAME>
#define GP_TRANSPORT_FILE_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GP_TYPE_TRANSPORT_FILE, GPTransportFileClass))
</MACRO>
<MACRO>
<NAME>GP_IS_TRANSPORT_FILE</NAME>
#define GP_IS_TRANSPORT_FILE(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GP_TYPE_TRANSPORT_FILE))
</MACRO>
<MACRO>
<NAME>GP_IS_TRANSPORT_FILE_CLASS</NAME>
#define GP_IS_TRANSPORT_FILE_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GP_TYPE_TRANSPORT_FILE))
</MACRO>
<MACRO>
<NAME>GP_TRANSPORT_FILE_GET_CLASS</NAME>
#define GP_TRANSPORT_FILE_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GP_TYPE_TRANSPORT_FILE, GPTransportFileClass))
</MACRO>
<STRUCT>
<NAME>GPTransportFile</NAME>
</STRUCT>
<STRUCT>
<NAME>GPTransportFileClass</NAME>
</STRUCT>
<STRUCT>
<NAME>GPTransportFile</NAME>
struct GPTransportFile {
	GnomePrintTransport transport;
	guchar *name;
	gint fd;
};
</STRUCT>
<STRUCT>
<NAME>GPTransportFileClass</NAME>
struct GPTransportFileClass {
	GnomePrintTransportClass parent_class;
};
</STRUCT>
<FUNCTION>
<NAME>gp_transport_file_get_type</NAME>
<RETURNS>GType  </RETURNS>
void
</FUNCTION>
<MACRO>
<NAME>GP_TYPE_TRANSPORT_LPR</NAME>
#define GP_TYPE_TRANSPORT_LPR (gp_transport_lpr_get_type ())
</MACRO>
<MACRO>
<NAME>GP_TRANSPORT_LPR</NAME>
#define GP_TRANSPORT_LPR(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GP_TYPE_TRANSPORT_LPR, GPTransportLPR))
</MACRO>
<MACRO>
<NAME>GP_TRANSPORT_LPR_CLASS</NAME>
#define GP_TRANSPORT_LPR_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GP_TYPE_TRANSPORT_LPR, GPTransportLPRClass))
</MACRO>
<MACRO>
<NAME>GP_IS_TRANSPORT_LPR</NAME>
#define GP_IS_TRANSPORT_LPR(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GP_TYPE_TRANSPORT_LPR))
</MACRO>
<MACRO>
<NAME>GP_IS_TRANSPORT_LPR_CLASS</NAME>
#define GP_IS_TRANSPORT_LPR_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GP_TYPE_TRANSPORT_LPR))
</MACRO>
<MACRO>
<NAME>GP_TRANSPORT_LPR_GET_CLASS</NAME>
#define GP_TRANSPORT_LPR_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GP_TYPE_TRANSPORT_LPR, GPTransportLPRClass))
</MACRO>
<STRUCT>
<NAME>GPTransportLPR</NAME>
</STRUCT>
<STRUCT>
<NAME>GPTransportLPRClass</NAME>
</STRUCT>
<STRUCT>
<NAME>GPTransportLPR</NAME>
struct GPTransportLPR {
	GnomePrintTransport transport;
	guchar *printer;
	FILE *pipe;
};
</STRUCT>
<STRUCT>
<NAME>GPTransportLPRClass</NAME>
struct GPTransportLPRClass {
	GnomePrintTransportClass parent_class;
};
</STRUCT>
<FUNCTION>
<NAME>gp_transport_lpr_get_type</NAME>
<RETURNS>GType  </RETURNS>
void
</FUNCTION>
<MACRO>
<NAME>GP_TYPE_TRANSPORT_CUSTOM</NAME>
#define GP_TYPE_TRANSPORT_CUSTOM (gp_transport_custom_get_type ())
</MACRO>
<MACRO>
<NAME>GP_TRANSPORT_CUSTOM</NAME>
#define GP_TRANSPORT_CUSTOM(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GP_TYPE_TRANSPORT_CUSTOM, GPTransportCustom))
</MACRO>
<MACRO>
<NAME>GP_TRANSPORT_CUSTOM_CLASS</NAME>
#define GP_TRANSPORT_CUSTOM_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GP_TYPE_TRANSPORT_CUSTOM, GPTransportCustomClass))
</MACRO>
<MACRO>
<NAME>GP_IS_TRANSPORT_CUSTOM</NAME>
#define GP_IS_TRANSPORT_CUSTOM(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GP_TYPE_TRANSPORT_CUSTOM))
</MACRO>
<MACRO>
<NAME>GP_IS_TRANSPORT_CUSTOM_CLASS</NAME>
#define GP_IS_TRANSPORT_CUSTOM_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GP_TYPE_TRANSPORT_CUSTOM))
</MACRO>
<MACRO>
<NAME>GP_TRANSPORT_CUSTOM_GET_CLASS</NAME>
#define GP_TRANSPORT_CUSTOM_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GP_TYPE_TRANSPORT_CUSTOM, GPTransportCustomClass))
</MACRO>
<STRUCT>
<NAME>GPTransportCustom</NAME>
</STRUCT>
<STRUCT>
<NAME>GPTransportCustomClass</NAME>
</STRUCT>
<STRUCT>
<NAME>GPTransportCustom</NAME>
struct GPTransportCustom {
	GnomePrintTransport transport;
	guchar *command;
	FILE *pipe;
};
</STRUCT>
<STRUCT>
<NAME>GPTransportCustomClass</NAME>
struct GPTransportCustomClass {
	GnomePrintTransportClass parent_class;
};
</STRUCT>
<FUNCTION>
<NAME>gp_transport_custom_get_type</NAME>
<RETURNS>GType  </RETURNS>
void
</FUNCTION>
<STRUCT>
<NAME>TrueTypeCreator</NAME>
</STRUCT>
<STRUCT>
<NAME>longHorMetrics</NAME>
struct longHorMetrics
{
    guint16 aw;
    gint16  lsb;
};
</STRUCT>
<STRUCT>
<NAME>TrueTypeTable</NAME>
struct TrueTypeTable
{
    guint32 tag;                         /* table tag                                                */
    guint8   *rawdata;                    /* raw data allocated by GetRawData_*()                     */
    void   *data;                       /* table specific data                                      */
};
</STRUCT>
<FUNCTION>
<NAME>TrueTypeCreatorNewEmpty</NAME>
<RETURNS>void  </RETURNS>
guint32 tag, TrueTypeCreator **_this
</FUNCTION>
<FUNCTION>
<NAME>TrueTypeCreatorDispose</NAME>
<RETURNS>void  </RETURNS>
TrueTypeCreator *_this
</FUNCTION>
<FUNCTION>
<NAME>AddTable</NAME>
<RETURNS>int  </RETURNS>
TrueTypeCreator *_this, TrueTypeTable *table
</FUNCTION>
<FUNCTION>
<NAME>RemoveTable</NAME>
<RETURNS>void  </RETURNS>
TrueTypeCreator *_this, guint32 tag
</FUNCTION>
<FUNCTION>
<NAME>StreamToMemory</NAME>
<RETURNS>int  </RETURNS>
TrueTypeCreator *_this, guint8 **ptr, guint32 *length
</FUNCTION>
<FUNCTION>
<NAME>StreamToFile</NAME>
<RETURNS>int  </RETURNS>
TrueTypeCreator *_this, const char* fname
</FUNCTION>
<FUNCTION>
<NAME>TrueTypeTableDispose</NAME>
<RETURNS>void  </RETURNS>
TrueTypeTable *
</FUNCTION>
<FUNCTION>
<NAME>GetRawData</NAME>
<RETURNS>int  </RETURNS>
TrueTypeTable *, guint8 **ptr, guint32 *len, guint32 *tag
</FUNCTION>
<FUNCTION>
<NAME>TrueTypeTableNew</NAME>
<RETURNS>TrueTypeTable  *</RETURNS>
guint32 tag,guint32 nbytes,guint8 *ptr
</FUNCTION>
<FUNCTION>
<NAME>TrueTypeTableNew_head</NAME>
<RETURNS>TrueTypeTable  *</RETURNS>
guint32 fontRevision,guint16 flags,guint16 unitsPerEm,guint8  *created,guint16 macStyle,guint16 lowestRecPPEM,gint16  fontDirectionHint
</FUNCTION>
<FUNCTION>
<NAME>TrueTypeTableNew_hhea</NAME>
<RETURNS>TrueTypeTable  *</RETURNS>
gint16  ascender,gint16  descender,gint16  linegap,gint16  caretSlopeRise,gint16  caretSlopeRun
</FUNCTION>
<FUNCTION>
<NAME>TrueTypeTableNew_loca</NAME>
<RETURNS>TrueTypeTable  *</RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>TrueTypeTableNew_maxp</NAME>
<RETURNS>TrueTypeTable  *</RETURNS>
guint8 *maxp, int size
</FUNCTION>
<FUNCTION>
<NAME>TrueTypeTableNew_glyf</NAME>
<RETURNS>TrueTypeTable  *</RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>TrueTypeTableNew_cmap</NAME>
<RETURNS>TrueTypeTable  *</RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>TrueTypeTableNew_name</NAME>
<RETURNS>TrueTypeTable  *</RETURNS>
int n, NameRecord *nr
</FUNCTION>
<FUNCTION>
<NAME>TrueTypeTableNew_post</NAME>
<RETURNS>TrueTypeTable  *</RETURNS>
guint32 format,guint32 italicAngle,gint16 underlinePosition,gint16 underlineThickness,guint32 isFixedPitch
</FUNCTION>
<FUNCTION>
<NAME>cmapAdd</NAME>
<RETURNS>void  </RETURNS>
TrueTypeTable *, guint32 id, guint32 c, guint32 g
</FUNCTION>
<FUNCTION>
<NAME>glyfAdd</NAME>
<RETURNS>guint32  </RETURNS>
TrueTypeTable *, GlyphData *glyphdata, TrueTypeFont *fnt
</FUNCTION>
<FUNCTION>
<NAME>glyfCount</NAME>
<RETURNS>guint32  </RETURNS>
const TrueTypeTable *
</FUNCTION>
<FUNCTION>
<NAME>nameAdd</NAME>
<RETURNS>void  </RETURNS>
TrueTypeTable *, NameRecord *nr
</FUNCTION>
<STRUCT>
<NAME>TrueTypeCreator</NAME>
struct TrueTypeCreator {
    guint32 tag;                         /**< TrueType file tag */
    list   tables;                      /**< List of table tags and pointers */
};
</STRUCT>
<MACRO>
<NAME>crc32</NAME>
#define crc32 stsf_crc32
</MACRO>
<FUNCTION>
<NAME>stsf_crc32</NAME>
<RETURNS>guint32  </RETURNS>
const void *ptr, size_t len
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_pdf_tt_create_subfont</NAME>
<RETURNS>void  </RETURNS>
const unsigned char *file_name,unsigned char **subfont_file,unsigned short *glyphArray,unsigned char *encoding, unsigned short len
</FUNCTION>
<FUNCTION>
<NAME>gnome_print_ps_tt_create_subfont</NAME>
<RETURNS>void  </RETURNS>
const unsigned char *file_name,const unsigned char *encoded_font_name,unsigned char **subfont_file,unsigned short *glyphArray,unsigned char *encoding, unsigned short len
</FUNCTION>
<MACRO>
<NAME>G_BIG_ENDIAN</NAME>
#define G_BIG_ENDIAN
</MACRO>
<MACRO>
<NAME>G_BIG_ENDIAN</NAME>
#define G_BIG_ENDIAN
</MACRO>
<MACRO>
<NAME>G_LITTLE_ENDIAN</NAME>
#define G_LITTLE_ENDIAN
</MACRO>
<MACRO>
<NAME>G_BIG_ENDIAN</NAME>
#define G_BIG_ENDIAN
</MACRO>
<MACRO>
<NAME>G_BIG_ENDIAN</NAME>
#define G_BIG_ENDIAN
</MACRO>
<MACRO>
<NAME>G_LITTLE_ENDIAN</NAME>
#define G_LITTLE_ENDIAN
</MACRO>
<MACRO>
<NAME>DEBUG</NAME>
#define DEBUG      /* Generate debugging output */
</MACRO>
<MACRO>
<NAME>DEBUG2</NAME>
#define DEBUG2     /* More detailed debugging output */
</MACRO>
<MACRO>
<NAME>DEBUG3</NAME>
#define DEBUG3     /* Dump of TrueType outlines */
</MACRO>
<MACRO>
<NAME>false</NAME>
#define false 0               /**< standard false value */
</MACRO>
<MACRO>
<NAME>true</NAME>
#define true  1               /**< standard true value */
</MACRO>
<TYPEDEF>
<NAME>F2Dot14</NAME>
    typedef gint16       F2Dot14;            /**< fixed: 2.14 */
</TYPEDEF>
<TYPEDEF>
<NAME>F16Dot16</NAME>
    typedef gint32       F16Dot16;           /**< fixed: 16.16 */
</TYPEDEF>
<STRUCT>
<NAME>uint16pair</NAME>
struct uint16pair
{
        guint16 s;
        guint16 d;
    };
</STRUCT>
<STRUCT>
<NAME>TTGlyphMetrics</NAME>
struct TTGlyphMetrics
{
         gint16  xMin;
         gint16  yMin;
         gint16  xMax;
         gint16  yMax;
         guint16 aw;                /*- Advance Width (horisontal writing mode)    */
         gint16  lsb;               /*- Left sidebearing (horisontal writing mode) */
         guint16 ah;                /*- advance height (vertical writing mode)     */
         gint16  tsb;               /*- top sidebearing (vertical writing mode)    */
     };
</STRUCT>
<STRUCT>
<NAME>TTSimpleGlyphMetrics</NAME>
struct TTSimpleGlyphMetrics
{
        guint16 adv;                         /**< advance width or height            */
        gint16 sb;                           /**< left or top sidebearing            */
    };
</STRUCT>
<STRUCT>
<NAME>TTFullSimpleGlyphMetrics</NAME>
struct TTFullSimpleGlyphMetrics
{
        guint16 aw, ah;
        gint16 lsb, tsb;
    };
</STRUCT>
<STRUCT>
<NAME>GlyphData</NAME>
struct GlyphData
{
        guint32 glyphID;                     /**< glyph ID                           */
        guint16 nbytes;                      /**< number of bytes in glyph data      */
        guint8  *ptr;                         /**< pointer to glyph data              */
        guint16 aw;                          /**< advance width                      */
        gint16  lsb;                         /**< left sidebearing                   */
        guint16 compflag;                    /**< 0- if non-composite, 1- otherwise  */
        guint16 npoints;                     /**< number of points                   */
        guint16 ncontours;                   /**< number of contours                 */
        /* */
        guint32 newID;                       /**< used internally by the TTCR        */
    };
</STRUCT>
<STRUCT>
<NAME>FUnitBBox</NAME>
struct FUnitBBox
{
        gint16 xMin;
        gint16 yMin;
        gint16 xMax;
        gint16 yMax;
    };
</STRUCT>
<STRUCT>
<NAME>NameRecord</NAME>
struct NameRecord
{
        guint16 platformID;                  /**< Platform ID                                            */
        guint16 encodingID;                  /**< Platform-specific encoding ID                          */
        guint16 languageID;                  /**< Language ID                                            */
        guint16 nameID;                      /**< Name ID                                                */
        guint16 slen;                        /**< String length in bytes                                 */
        guint8  *sptr;                        /**< Pointer to string data (not zero-terminated!)          */
    };
</STRUCT>
<STRUCT>
<NAME>TTGlobalFontInfo</NAME>
struct TTGlobalFontInfo
{
        char *family;             /**< family name                                             */
        guint16 *ufamily;		  /**< family name UCS2                                         */
        char *subfamily;          /**< subfamily name                                          */
        char *psname;             /**< PostScript name                                         */
        int   weight;             /**< value of WeightClass or 0 if can't be determined        */
        int   width;              /**< value of WidthClass or 0 if can't be determined         */
        int   pitch;              /**< 0: proportianal font, otherwise: monospaced             */
        int   italicAngle;        /**< in counter-clockwise degrees * 65536                    */
        guint16 fsSelection;       /**< fsSelection field of OS/2 table                         */
        int   xMin;               /**< global bounding box: xMin                               */
        int   yMin;               /**< global bounding box: yMin                               */
        int   xMax;               /**< global bounding box: xMax                               */
        int   yMax;               /**< global bounding box: yMax                               */
        int   ascender;           /**< typographic ascent.                                     */
        int   descender;          /**< typographic descent.                                    */
        int   linegap;            /**< typographic line gap.\ Negative values are treated as
                                     zero in Win 3.1, System 6 and System 7.                 */
        int   vascent;            /**< typographic ascent for vertical writing mode            */
        int   vdescent;           /**< typographic descent for vertical writing mode           */
        int   typoAscender;       /**< OS/2 portable typographic ascender                      */
        int   typoDescender;      /**< OS/2 portable typographic descender                     */
        int   typoLineGap;        /**< OS/2 portable typographc line gap                       */
        int   winAscent;          /**< ascender metric for Windows                             */
        int   winDescent;         /**< descender metric for Windows                            */
        int   symbolEncoded;      /**< 1: MS symbol encoded 0: not symbol encoded              */
        int   rangeFlag;          /**< if set to 1 Unicode Range flags are applicable          */
        guint32 ur1;               /**< bits 0 - 31 of Unicode Range flags                      */
        guint32 ur2;               /**< bits 32 - 63 of Unicode Range flags                     */
        guint32 ur3;               /**< bits 64 - 95 of Unicode Range flags                     */
        guint32 ur4;               /**< bits 96 - 127 of Unicode Range flags                    */
        guint8   panose[10];        /**< PANOSE classification number                            */
        guint16 typeFlags;		  /**< type flags (copyright information)                      */
    };
</STRUCT>
<STRUCT>
<NAME>KernData</NAME>
struct KernData
{
        int x;                    /**< positive: right, negative: left                        */
        int y;                    /**< positive: up, negative: down                           */
    };
</STRUCT>
<STRUCT>
<NAME>ControlPoint</NAME>
struct ControlPoint
{
        guint32 flags;             /**< 00000000 00000000 e0000000 bbbbbbbb */
        /**< b - guint8 flags from the glyf array  */
        /**< e == 0 - regular point              */
        /**< e == 1 - end contour                */
        gint16 x;                  /**< X coordinate in EmSquare units      */
        gint16 y;                  /**< Y coordinate in EmSquare units      */
    };
</STRUCT>
<STRUCT>
<NAME>TrueTypeFont</NAME>
</STRUCT>
<FUNCTION>
<NAME>CountTTCFonts</NAME>
<RETURNS>int  </RETURNS>
const char* fname
</FUNCTION>
<FUNCTION>
<NAME>OpenTTFont</NAME>
<RETURNS>int  </RETURNS>
const char *fname, guint32 facenum, TrueTypeFont**
</FUNCTION>
<FUNCTION>
<NAME>CloseTTFont</NAME>
<RETURNS>void  </RETURNS>
TrueTypeFont *
</FUNCTION>
<FUNCTION>
<NAME>GetTTGlyphPoints</NAME>
<RETURNS>int  </RETURNS>
TrueTypeFont *ttf, guint32 glyphID, ControlPoint **pointArray
</FUNCTION>
<FUNCTION>
<NAME>GetTTGlyphBoundingBoxes</NAME>
<RETURNS>FUnitBBox  *</RETURNS>
TrueTypeFont *ttf
</FUNCTION>
<FUNCTION>
<NAME>GetTTRawGlyphData</NAME>
<RETURNS>GlyphData  *</RETURNS>
TrueTypeFont *ttf, guint32 glyphID
</FUNCTION>
<FUNCTION>
<NAME>GetTTGlyphComponents</NAME>
<RETURNS>int  </RETURNS>
TrueTypeFont *ttf, guint32 glyphID, list glyphlist
</FUNCTION>
<FUNCTION>
<NAME>GetTTNameRecords</NAME>
<RETURNS>int  </RETURNS>
TrueTypeFont *ttf, NameRecord **nr
</FUNCTION>
<FUNCTION>
<NAME>DisposeNameRecords</NAME>
<RETURNS>void  </RETURNS>
NameRecord* nr, int n
</FUNCTION>
<FUNCTION>
<NAME>CreateT3FromTTGlyphs</NAME>
<RETURNS>int  </RETURNS>
TrueTypeFont *ttf, FILE *outf, const char *fname, guint16 *glyphArray, guint8 *encoding, int nGlyphs, int wmode
</FUNCTION>
<FUNCTION>
<NAME>CreateTTFromTTGlyphs</NAME>
<RETURNS>int  </RETURNS>
TrueTypeFont  *ttf,const char    *fname,guint16        *glyphArray,guint8          *encoding,int            nGlyphs,int            nNameRecs,NameRecord    *nr,guint32        flags
</FUNCTION>
<FUNCTION>
<NAME>CreateT42FromTTGlyphs</NAME>
<RETURNS>int  </RETURNS>
TrueTypeFont  *ttf,FILE          *outf,const char    *psname,guint16        *glyphArray,guint8          *encoding,int            nGlyphs
</FUNCTION>
<FUNCTION>
<NAME>GetTTGlyphMetrics</NAME>
<RETURNS>void  </RETURNS>
TrueTypeFont *ttf, guint32 glyphID, TTGlyphMetrics *metrics
</FUNCTION>
<FUNCTION>
<NAME>GetTTSimpleGlyphMetrics</NAME>
<RETURNS>TTSimpleGlyphMetrics  *</RETURNS>
TrueTypeFont *ttf, guint16 *glyphArray, int nGlyphs, int mode
</FUNCTION>
<FUNCTION>
<NAME>GetTTSimpleCharMetrics</NAME>
<RETURNS>TTSimpleGlyphMetrics  *</RETURNS>
TrueTypeFont *ttf, guint16 firstChar, int nChars, int mode
</FUNCTION>
<FUNCTION>
<NAME>MapString</NAME>
<RETURNS>int  </RETURNS>
TrueTypeFont *ttf, guint16 *str, int nchars, guint16 *glyphArray, int bvertical
</FUNCTION>
<FUNCTION>
<NAME>MapString</NAME>
<RETURNS>int  </RETURNS>
TrueTypeFont *ttf, guint16 *str, int nchars, guint16 *glyphArray
</FUNCTION>
<FUNCTION>
<NAME>MapChar</NAME>
<RETURNS>guint16  </RETURNS>
TrueTypeFont *ttf, guint16 ch, int bvertical
</FUNCTION>
<FUNCTION>
<NAME>MapChar</NAME>
<RETURNS>guint16  </RETURNS>
TrueTypeFont *ttf, guint16 ch
</FUNCTION>
<FUNCTION>
<NAME>GetTTGlobalFontInfo</NAME>
<RETURNS>void  </RETURNS>
TrueTypeFont *ttf, TTGlobalFontInfo *info
</FUNCTION>
<FUNCTION>
<NAME>KernGlyphs</NAME>
<RETURNS>void  </RETURNS>
TrueTypeFont *ttf, guint16 *glyphs, int nglyphs, int wmode, KernData *kern
</FUNCTION>
<FUNCTION>
<NAME>CheckSymbolEncoding</NAME>
<RETURNS>int  </RETURNS>
TrueTypeFont* ttf
</FUNCTION>
<FUNCTION>
<NAME>ExtractCmap</NAME>
<RETURNS>guint8  *</RETURNS>
TrueTypeFont *ttf
</FUNCTION>
<FUNCTION>
<NAME>ExtractTable</NAME>
<RETURNS>guint8  *</RETURNS>
TrueTypeFont *ttf, guint32 tag
</FUNCTION>
<FUNCTION>
<NAME>GetTable</NAME>
<RETURNS>const guint8  *</RETURNS>
TrueTypeFont *ttf, guint32 tag
</FUNCTION>
<FUNCTION>
<NAME>ReadGlyphMetrics</NAME>
<RETURNS>TTFullSimpleGlyphMetrics  *</RETURNS>
guint8 *hmtx, guint8 *vmtx, int hcount, int vcount, int gcount, int UPEm, guint16 *glyphArray, int nGlyphs
</FUNCTION>
<FUNCTION>
<NAME>ReadSingleGlyphMetrics</NAME>
<RETURNS>void  </RETURNS>
guint8 *hmtx, guint8 *vmtx, int hcount, int vcount, int gcount, int UPEm, guint16 glyphID, TTFullSimpleGlyphMetrics *metrics
</FUNCTION>
<FUNCTION>
<NAME>GetKernSubtableLength</NAME>
<RETURNS>guint32  </RETURNS>
guint8 *kern
</FUNCTION>
<FUNCTION>
<NAME>KernGlyphPair</NAME>
<RETURNS>void  </RETURNS>
int kerntype, guint32 nkern, guint8 **kern, int unitsPerEm, int wmode, guint32 a, guint32 b, int *x, int *y
</FUNCTION>
<STRUCT>
<NAME>TrueTypeFont</NAME>
struct TrueTypeFont {
    guint32 tag;

    char   *fname;
    off_t  fsize;
    guint8   *ptr;

    char   *psname;
    char   *family;
    guint16  *ufamily;
    char   *subfamily;

    guint32 ntables;
    guint32 tdoffset;                              /* offset to the table directory (!= 0 for TrueType collections)      */
    guint32 *goffsets;
    int    nglyphs;
    int    unitsPerEm;
    int    numberOfHMetrics;
    int    numOfLongVerMetrics;                   /* if this number is not 0, font has vertical metrics information */
    guint8   *cmap;
    int    cmapType;
    guint16 (*mapper)(const guint8 *, guint16);       /* character to glyphID translation function                          */
    void   **tables;                              /* array of pointers to tables                                        */
    guint32 *tlens;                                /* array of table lengths                                             */
    int    kerntype;                              /* Defined in the KernType enum                                       */
    guint32 nkern;                                 /* number of kern subtables                                           */
    guint8   **kerntables;                          /* array of pointers to kern subtables                                */
#ifdef USE_GSUB
    void   *pGSubstitution;                       /* info provided by GSUB for UseGSUB()                                */
#endif
    GnomePrintBuffer gp_buf;
};
</STRUCT>
<FUNCTION>
<NAME>listNewEmpty</NAME>
<RETURNS>list  </RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>listNewCopy</NAME>
<RETURNS>list  </RETURNS>
list
</FUNCTION>
<FUNCTION>
<NAME>listNewConcat</NAME>
<RETURNS>list  </RETURNS>
list, list
</FUNCTION>
<FUNCTION>
<NAME>listDispose</NAME>
<RETURNS>void  </RETURNS>
list
</FUNCTION>
<FUNCTION>
<NAME>listSetElementDtor</NAME>
<RETURNS>void  </RETURNS>
list, GDestroyNotify f
</FUNCTION>
<FUNCTION>
<NAME>listCopy</NAME>
<RETURNS>list  </RETURNS>
list to, list from
</FUNCTION>
<FUNCTION>
<NAME>listCurrent</NAME>
<RETURNS>void  *</RETURNS>
list
</FUNCTION>
<FUNCTION>
<NAME>listCount</NAME>
<RETURNS>int  </RETURNS>
list
</FUNCTION>
<FUNCTION>
<NAME>listIsEmpty</NAME>
<RETURNS>int  </RETURNS>
list
</FUNCTION>
<FUNCTION>
<NAME>listAtFirst</NAME>
<RETURNS>int  </RETURNS>
list
</FUNCTION>
<FUNCTION>
<NAME>listAtLast</NAME>
<RETURNS>int  </RETURNS>
list
</FUNCTION>
<FUNCTION>
<NAME>listPosition</NAME>
<RETURNS>int  </RETURNS>
list
</FUNCTION>
<FUNCTION>
<NAME>listFind</NAME>
<RETURNS>int  </RETURNS>
list, void *
</FUNCTION>
<FUNCTION>
<NAME>listNext</NAME>
<RETURNS>int  </RETURNS>
list
</FUNCTION>
<FUNCTION>
<NAME>listPrev</NAME>
<RETURNS>int  </RETURNS>
list
</FUNCTION>
<FUNCTION>
<NAME>listSkipForward</NAME>
<RETURNS>int  </RETURNS>
list, int n
</FUNCTION>
<FUNCTION>
<NAME>listSkipBackward</NAME>
<RETURNS>int  </RETURNS>
list, int n
</FUNCTION>
<FUNCTION>
<NAME>listToFirst</NAME>
<RETURNS>int  </RETURNS>
list
</FUNCTION>
<FUNCTION>
<NAME>listToLast</NAME>
<RETURNS>int  </RETURNS>
list
</FUNCTION>
<FUNCTION>
<NAME>listPositionAt</NAME>
<RETURNS>int  </RETURNS>
list, int n
</FUNCTION>
<FUNCTION>
<NAME>listAppend</NAME>
<RETURNS>list  </RETURNS>
list, void *
</FUNCTION>
<FUNCTION>
<NAME>listPrepend</NAME>
<RETURNS>list  </RETURNS>
list, void *
</FUNCTION>
<FUNCTION>
<NAME>listInsertAfter</NAME>
<RETURNS>list  </RETURNS>
list, void *
</FUNCTION>
<FUNCTION>
<NAME>listInsertBefore</NAME>
<RETURNS>list  </RETURNS>
list, void *
</FUNCTION>
<FUNCTION>
<NAME>listConcat</NAME>
<RETURNS>list  </RETURNS>
list lhs, list rhs
</FUNCTION>
<FUNCTION>
<NAME>listRemove</NAME>
<RETURNS>list  </RETURNS>
list
</FUNCTION>
<FUNCTION>
<NAME>listClear</NAME>
<RETURNS>list  </RETURNS>
list
</FUNCTION>
<FUNCTION>
<NAME>listForAll</NAME>
<RETURNS>void  </RETURNS>
list, void (*f)(void *)
</FUNCTION>
<FUNCTION>
<NAME>listToArray</NAME>
<RETURNS>void  **</RETURNS>
list
</FUNCTION>
