2 * (GLABELS) Label and Business Card Creation program for GNOME
4 * template.h: template module header file
6 * Copyright (C) 2001-2002 Jim Evins <evins@snaught.com>.
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, write to the Free Software
20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
23 #ifndef __TEMPLATE_H__
24 #define __TEMPLATE_H__
26 #include <libgnome/libgnome.h>
27 #include <libxml/tree.h>
28 #include <libxml/parser.h>
32 * Template Label Structure
35 GL_TEMPLATE_STYLE_RECT,
36 GL_TEMPLATE_STYLE_ROUND,
38 } glTemplateLabelStyle;
41 glTemplateLabelStyle style;
42 GList *layouts; /* List of glTemplateLayouts */
43 GList *markups; /* List of glTemplateMarkups */
44 } glTemplateLabelParent;
47 glTemplateLabelParent parent;
49 gdouble w, h, r; /* Dimensions */
50 } glTemplateLabelRect;
53 glTemplateLabelParent parent;
55 gdouble r; /* Dimensions */
56 } glTemplateLabelRound;
59 glTemplateLabelParent parent;
61 gdouble r1, r2; /* Dimensions */
65 glTemplateLabelStyle style;
66 glTemplateLabelParent any;
67 glTemplateLabelRect rect;
68 glTemplateLabelRound round;
77 GL_TEMPLATE_MARKUP_MARGIN,
78 } glTemplateMarkupType;
81 /* NOTE: These fields are common to all union members. */
82 glTemplateMarkupType type;
83 } glTemplateMarkupParent;
86 glTemplateMarkupParent parent;
89 } glTemplateMarkupMargin;
92 glTemplateMarkupType type;
93 glTemplateMarkupParent any;
94 glTemplateMarkupMargin margin;
103 gdouble x0, y0, dx, dy;
115 glTemplateLabel label;
128 extern void gl_template_init (void);
130 extern GList *gl_template_get_page_size_list (void);
131 extern void gl_template_free_page_size_list (GList **sizes);
133 extern GList *gl_template_get_name_list (const gchar *page_size);
134 extern void gl_template_free_name_list (GList **names);
136 extern glTemplate *gl_template_from_name (const gchar *name);
138 extern glTemplate *gl_template_dup (const glTemplate *orig);
139 extern void gl_template_free (glTemplate **template);
141 extern glTemplate *gl_template_xml_parse_sheet (xmlNodePtr sheet_node);
143 extern void gl_template_xml_add_sheet (const glTemplate *template,
147 extern gchar *gl_template_get_label_size_desc (const glTemplate *template);
148 extern void gl_template_get_label_size (const glTemplate *template,
152 extern gint gl_template_get_n_labels (const glTemplate *template);
153 extern glTemplateOrigin *gl_template_get_origins (const glTemplate *template);
154 extern gchar *gl_template_get_layout_desc (const glTemplate *template);