]> git.sur5r.net Git - glabels/blob - docs/libglabels/xml/template.xml
Imported Upstream version 2.2.8
[glabels] / docs / libglabels / xml / template.xml
1 <?xml version="1.0"?>
2 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" 
3                "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
4
5 <refentry id="libglabels-template">
6 <refmeta>
7 <refentrytitle role="top_of_page" id="libglabels-template.top_of_page">The lglTemplate Structure</refentrytitle>
8 <manvolnum>3</manvolnum>
9 <refmiscinfo>LIBGLABELS Library</refmiscinfo>
10 </refmeta>
11
12 <refnamediv>
13 <refname>The lglTemplate Structure</refname>
14 <refpurpose>How templates are represented in memory</refpurpose>
15 </refnamediv>
16
17 <refsynopsisdiv id="libglabels-template.synopsis" role="synopsis">
18 <title role="synopsis.title">Synopsis</title>
19
20 <synopsis>
21
22 #include &lt;libglabels/template.h&gt;
23
24                     <link linkend="lglTemplate">lglTemplate</link>;
25
26                     <link linkend="lglTemplateAlias">lglTemplateAlias</link>;
27
28 enum                <link linkend="lglTemplateFrameShape">lglTemplateFrameShape</link>;
29 union               <link linkend="lglTemplateFrame">lglTemplateFrame</link>;
30                     <link linkend="lglTemplateFrameAll">lglTemplateFrameAll</link>;
31                     <link linkend="lglTemplateFrameRect">lglTemplateFrameRect</link>;
32                     <link linkend="lglTemplateFrameRound">lglTemplateFrameRound</link>;
33                     <link linkend="lglTemplateFrameCD">lglTemplateFrameCD</link>;
34
35                     <link linkend="lglTemplateLayout">lglTemplateLayout</link>;
36
37 enum                <link linkend="lglTemplateMarkupType">lglTemplateMarkupType</link>;
38 union               <link linkend="lglTemplateMarkup">lglTemplateMarkup</link>;
39                     <link linkend="lglTemplateMarkupMargin">lglTemplateMarkupMargin</link>;
40                     <link linkend="lglTemplateMarkupLine">lglTemplateMarkupLine</link>;
41                     <link linkend="lglTemplateMarkupCircle">lglTemplateMarkupCircle</link>;
42                     <link linkend="lglTemplateMarkupRect">lglTemplateMarkupRect</link>;
43
44                     <link linkend="lglTemplateOrigin">lglTemplateOrigin</link>;
45
46 <link linkend="lglTemplate">lglTemplate</link> *       <link linkend="lgl-template-new">lgl_template_new</link>                    (const <link linkend="gchar">gchar</link> *brand,
47                                                          const <link linkend="gchar">gchar</link> *part,
48                                                          const <link linkend="gchar">gchar</link> *description,
49                                                          const <link linkend="gchar">gchar</link> *paper_id,
50                                                          <link linkend="gdouble">gdouble</link> page_width,
51                                                          <link linkend="gdouble">gdouble</link> page_height);
52 <link linkend="lglTemplate">lglTemplate</link> *       <link linkend="lgl-template-dup">lgl_template_dup</link>                    (const <link linkend="lglTemplate">lglTemplate</link> *orig_template);
53 <link linkend="void">void</link>                <link linkend="lgl-template-free">lgl_template_free</link>                   (<link linkend="lglTemplate">lglTemplate</link> *template);
54 <link linkend="void">void</link>                <link linkend="lgl-template-add-category">lgl_template_add_category</link>           (<link linkend="lglTemplate">lglTemplate</link> *template,
55                                                          const <link linkend="gchar">gchar</link> *category_id);
56 <link linkend="void">void</link>                <link linkend="lgl-template-add-frame">lgl_template_add_frame</link>              (<link linkend="lglTemplate">lglTemplate</link> *template,
57                                                          <link linkend="lglTemplateFrame">lglTemplateFrame</link> *frame);
58 <link linkend="void">void</link>                <link linkend="lgl-template-add-alias">lgl_template_add_alias</link>              (<link linkend="lglTemplate">lglTemplate</link> *template,
59                                                          <link linkend="lglTemplateAlias">lglTemplateAlias</link> *alias);
60
61 <link linkend="gchar">gchar</link> *             <link linkend="lgl-template-get-name">lgl_template_get_name</link>               (const <link linkend="lglTemplate">lglTemplate</link> *template);
62 <link linkend="gboolean">gboolean</link>            <link linkend="lgl-template-do-templates-match">lgl_template_do_templates_match</link>     (const <link linkend="lglTemplate">lglTemplate</link> *template1,
63                                                          const <link linkend="lglTemplate">lglTemplate</link> *template2);
64 <link linkend="gboolean">gboolean</link>            <link linkend="lgl-template-does-brand-match">lgl_template_does_brand_match</link>       (const <link linkend="lglTemplate">lglTemplate</link> *template,
65                                                          const <link linkend="gchar">gchar</link> *brand);
66 <link linkend="gboolean">gboolean</link>            <link linkend="lgl-template-does-page-size-match">lgl_template_does_page_size_match</link>   (const <link linkend="lglTemplate">lglTemplate</link> *template,
67                                                          const <link linkend="gchar">gchar</link> *paper_id);
68 <link linkend="gboolean">gboolean</link>            <link linkend="lgl-template-does-category-match">lgl_template_does_category_match</link>    (const <link linkend="lglTemplate">lglTemplate</link> *template,
69                                                          const <link linkend="gchar">gchar</link> *category_id);
70
71 <link linkend="lglTemplateAlias">lglTemplateAlias</link> *  <link linkend="lgl-template-alias-new">lgl_template_alias_new</link>              (const <link linkend="gchar">gchar</link> *brand,
72                                                          const <link linkend="gchar">gchar</link> *part);
73 <link linkend="lglTemplateAlias">lglTemplateAlias</link> *  <link linkend="lgl-template-alias-dup">lgl_template_alias_dup</link>              (const <link linkend="lglTemplateAlias">lglTemplateAlias</link> *orig_alias);
74 <link linkend="void">void</link>                <link linkend="lgl-template-alias-free">lgl_template_alias_free</link>             (<link linkend="lglTemplateAlias">lglTemplateAlias</link> *alias);
75
76 <link linkend="lglTemplateFrame">lglTemplateFrame</link> *  <link linkend="lgl-template-frame-rect-new">lgl_template_frame_rect_new</link>         (const <link linkend="gchar">gchar</link> *id,
77                                                          <link linkend="gdouble">gdouble</link> w,
78                                                          <link linkend="gdouble">gdouble</link> h,
79                                                          <link linkend="gdouble">gdouble</link> r,
80                                                          <link linkend="gdouble">gdouble</link> x_waste,
81                                                          <link linkend="gdouble">gdouble</link> y_waste);
82 <link linkend="lglTemplateFrame">lglTemplateFrame</link> *  <link linkend="lgl-template-frame-round-new">lgl_template_frame_round_new</link>        (const <link linkend="gchar">gchar</link> *id,
83                                                          <link linkend="gdouble">gdouble</link> r,
84                                                          <link linkend="gdouble">gdouble</link> waste);
85 <link linkend="lglTemplateFrame">lglTemplateFrame</link> *  <link linkend="lgl-template-frame-cd-new">lgl_template_frame_cd_new</link>           (const <link linkend="gchar">gchar</link> *id,
86                                                          <link linkend="gdouble">gdouble</link> r1,
87                                                          <link linkend="gdouble">gdouble</link> r2,
88                                                          <link linkend="gdouble">gdouble</link> w,
89                                                          <link linkend="gdouble">gdouble</link> h,
90                                                          <link linkend="gdouble">gdouble</link> waste);
91 <link linkend="lglTemplateFrame">lglTemplateFrame</link> *  <link linkend="lgl-template-frame-dup">lgl_template_frame_dup</link>              (const <link linkend="lglTemplateFrame">lglTemplateFrame</link> *orig_frame);
92 <link linkend="void">void</link>                <link linkend="lgl-template-frame-free">lgl_template_frame_free</link>             (<link linkend="lglTemplateFrame">lglTemplateFrame</link> *frame);
93 <link linkend="void">void</link>                <link linkend="lgl-template-frame-add-layout">lgl_template_frame_add_layout</link>       (<link linkend="lglTemplateFrame">lglTemplateFrame</link> *frame,
94                                                          <link linkend="lglTemplateLayout">lglTemplateLayout</link> *layout);
95 <link linkend="void">void</link>                <link linkend="lgl-template-frame-add-markup">lgl_template_frame_add_markup</link>       (<link linkend="lglTemplateFrame">lglTemplateFrame</link> *frame,
96                                                          <link linkend="lglTemplateMarkup">lglTemplateMarkup</link> *markup);
97
98 <link linkend="void">void</link>                <link linkend="lgl-template-frame-get-size">lgl_template_frame_get_size</link>         (const <link linkend="lglTemplateFrame">lglTemplateFrame</link> *frame,
99                                                          <link linkend="gdouble">gdouble</link> *w,
100                                                          <link linkend="gdouble">gdouble</link> *h);
101 <link linkend="gint">gint</link>                <link linkend="lgl-template-frame-get-n-labels">lgl_template_frame_get_n_labels</link>     (const <link linkend="lglTemplateFrame">lglTemplateFrame</link> *frame);
102 <link linkend="lglTemplateOrigin">lglTemplateOrigin</link> * <link linkend="lgl-template-frame-get-origins">lgl_template_frame_get_origins</link>      (const <link linkend="lglTemplateFrame">lglTemplateFrame</link> *frame);
103
104 <link linkend="lglTemplateLayout">lglTemplateLayout</link> * <link linkend="lgl-template-layout-new">lgl_template_layout_new</link>             (<link linkend="gint">gint</link> nx,
105                                                          <link linkend="gint">gint</link> ny,
106                                                          <link linkend="gdouble">gdouble</link> x0,
107                                                          <link linkend="gdouble">gdouble</link> y0,
108                                                          <link linkend="gdouble">gdouble</link> dx,
109                                                          <link linkend="gdouble">gdouble</link> dy);
110 <link linkend="lglTemplateLayout">lglTemplateLayout</link> * <link linkend="lgl-template-layout-dup">lgl_template_layout_dup</link>             (const <link linkend="lglTemplateLayout">lglTemplateLayout</link> *orig_layout);
111 <link linkend="void">void</link>                <link linkend="lgl-template-layout-free">lgl_template_layout_free</link>            (<link linkend="lglTemplateLayout">lglTemplateLayout</link> *layout);
112
113 <link linkend="lglTemplateMarkup">lglTemplateMarkup</link> * <link linkend="lgl-template-markup-margin-new">lgl_template_markup_margin_new</link>      (<link linkend="gdouble">gdouble</link> size);
114 <link linkend="lglTemplateMarkup">lglTemplateMarkup</link> * <link linkend="lgl-template-markup-line-new">lgl_template_markup_line_new</link>        (<link linkend="gdouble">gdouble</link> x1,
115                                                          <link linkend="gdouble">gdouble</link> y1,
116                                                          <link linkend="gdouble">gdouble</link> x2,
117                                                          <link linkend="gdouble">gdouble</link> y2);
118 <link linkend="lglTemplateMarkup">lglTemplateMarkup</link> * <link linkend="lgl-template-markup-circle-new">lgl_template_markup_circle_new</link>      (<link linkend="gdouble">gdouble</link> x0,
119                                                          <link linkend="gdouble">gdouble</link> y0,
120                                                          <link linkend="gdouble">gdouble</link> r);
121 <link linkend="lglTemplateMarkup">lglTemplateMarkup</link> * <link linkend="lgl-template-markup-rect-new">lgl_template_markup_rect_new</link>        (<link linkend="gdouble">gdouble</link> x1,
122                                                          <link linkend="gdouble">gdouble</link> y1,
123                                                          <link linkend="gdouble">gdouble</link> w,
124                                                          <link linkend="gdouble">gdouble</link> h,
125                                                          <link linkend="gdouble">gdouble</link> r);
126 <link linkend="lglTemplateMarkup">lglTemplateMarkup</link> * <link linkend="lgl-template-markup-dup">lgl_template_markup_dup</link>             (const <link linkend="lglTemplateMarkup">lglTemplateMarkup</link> *orig_markup);
127 <link linkend="void">void</link>                <link linkend="lgl-template-markup-free">lgl_template_markup_free</link>            (<link linkend="lglTemplateMarkup">lglTemplateMarkup</link> *markup);
128 </synopsis>
129 </refsynopsisdiv>
130
131
132
133
134
135
136
137
138
139 <refsect1 id="libglabels-template.description" role="desc">
140 <title role="desc.title">Description</title>
141 <para>
142 This section describes a set of structures that represent a template in memory.  It also
143 describes functions to help create and interpret these structures.
144 </para>
145 </refsect1>
146
147 <refsect1 id="libglabels-template.details" role="details">
148 <title role="details.title">Details</title>
149 <refsect2 id="lglTemplate" role="struct">
150 <title>lglTemplate</title>
151 <indexterm zone="lglTemplate"><primary sortas="lglTemplate">lglTemplate</primary></indexterm><programlisting>typedef struct {
152         gchar               *brand;
153         gchar               *part;
154         gchar               *description;
155         gchar               *paper_id;
156         gdouble              page_width;
157         gdouble              page_height;
158
159         /* List of (lglTemplateAlias *) aliase structures. */
160         GList               *aliases;
161
162         /* List of (gchar *) category ids. */
163         GList               *category_ids;
164
165         /* List of (lglTemplateFrame *) label frame structures.
166          * Currently glabels only supports a single label frame per
167          * template. */
168         GList               *frames;
169 } lglTemplate;
170 </programlisting>
171 <para>
172 This is the main structure of a libglabels template.  A template represents a single sheet
173 of peel-off labels or cards.
174 </para><variablelist role="struct">
175 <varlistentry>
176 <term><link linkend="gchar">gchar</link>&#160;*<structfield>brand</structfield>;</term>
177 <listitem><simpara>Brand name of label or card.  E.g. "Avery."
178 </simpara></listitem>
179 </varlistentry>
180 <varlistentry>
181 <term><link linkend="gchar">gchar</link>&#160;*<structfield>part</structfield>;</term>
182 <listitem><simpara>Part name or number of label or card.  E.g. "8160."
183 </simpara></listitem>
184 </varlistentry>
185 <varlistentry>
186 <term><link linkend="gchar">gchar</link>&#160;*<structfield>description</structfield>;</term>
187 <listitem><simpara>A description of the template.  E.g. "Mailing labels."
188 </simpara></listitem>
189 </varlistentry>
190 <varlistentry>
191 <term><link linkend="gchar">gchar</link>&#160;*<structfield>paper_id</structfield>;</term>
192 <listitem><simpara>A paper ID.  E.g. "A4" or "US-Letter."
193 </simpara></listitem>
194 </varlistentry>
195 <varlistentry>
196 <term><link linkend="gdouble">gdouble</link>&#160;<structfield>page_width</structfield>;</term>
197 <listitem><simpara>Page width in points.  Used only if paper_id is "Other."
198 </simpara></listitem>
199 </varlistentry>
200 <varlistentry>
201 <term><link linkend="gdouble">gdouble</link>&#160;<structfield>page_height</structfield>;</term>
202 <listitem><simpara>Page height in points.  Used only if paper_id is "Other."
203 </simpara></listitem>
204 </varlistentry>
205 <varlistentry>
206 <term><link linkend="GList">GList</link>&#160;*<structfield>aliases</structfield>;</term>
207 <listitem><simpara>A list of alternate names for this template.  Often a single template can be used for
208 multiple products.
209 </simpara></listitem>
210 </varlistentry>
211 <varlistentry>
212 <term><link linkend="GList">GList</link>&#160;*<structfield>category_ids</structfield>;</term>
213 <listitem><simpara>A list of category IDs that this template belongs to.
214 </simpara></listitem>
215 </varlistentry>
216 <varlistentry>
217 <term><link linkend="GList">GList</link>&#160;*<structfield>frames</structfield>;</term>
218 <listitem><simpara>A list of (<link linkend="lglTemplateFrame"><type>lglTemplateFrame</type></link> *) structures.  GLabels currently only supports one frame
219 per template -- future versions may support multiple frames per template.
220 </simpara></listitem>
221 </varlistentry>
222 </variablelist></refsect2>
223 <refsect2 id="lglTemplateAlias" role="struct">
224 <title>lglTemplateAlias</title>
225 <indexterm zone="lglTemplateAlias"><primary sortas="lglTemplateAlias">lglTemplateAlias</primary></indexterm><programlisting>typedef struct {
226         gchar               *brand;
227         gchar               *part;
228 } lglTemplateAlias;
229 </programlisting>
230 <para>
231 This structure defines an alias for the parent template structure.  An alias is used for
232 different products that can use the same template.
233 </para><variablelist role="struct">
234 <varlistentry>
235 <term><link linkend="gchar">gchar</link>&#160;*<structfield>brand</structfield>;</term>
236 <listitem><simpara>Brand name of label or card.  E.g. "Avery."
237 </simpara></listitem>
238 </varlistentry>
239 <varlistentry>
240 <term><link linkend="gchar">gchar</link>&#160;*<structfield>part</structfield>;</term>
241 <listitem><simpara>Part name or number of label or card.  E.g. "8160."
242 </simpara></listitem>
243 </varlistentry>
244 </variablelist></refsect2>
245 <refsect2 id="lglTemplateFrameShape" role="enum">
246 <title>enum lglTemplateFrameShape</title>
247 <indexterm zone="lglTemplateFrameShape"><primary sortas="lglTemplateFrameShape">lglTemplateFrameShape</primary></indexterm><programlisting>typedef enum {
248         LGL_TEMPLATE_FRAME_SHAPE_RECT,
249         LGL_TEMPLATE_FRAME_SHAPE_ROUND,
250         LGL_TEMPLATE_FRAME_SHAPE_CD,
251 } lglTemplateFrameShape;
252 </programlisting>
253 <para>
254 This enumeration defines frame types that are supported by libglabels
255 </para><variablelist role="enum">
256 <varlistentry id="LGL-TEMPLATE-FRAME-SHAPE-RECT--CAPS" role="constant">
257 <term><literal>LGL_TEMPLATE_FRAME_SHAPE_RECT</literal></term>
258 <listitem><simpara>A rectangular frame.  (May have rounded corners.)
259 </simpara></listitem>
260 </varlistentry>
261 <varlistentry id="LGL-TEMPLATE-FRAME-SHAPE-ROUND--CAPS" role="constant">
262 <term><literal>LGL_TEMPLATE_FRAME_SHAPE_ROUND</literal></term>
263 <listitem><simpara>A round frame.
264 </simpara></listitem>
265 </varlistentry>
266 <varlistentry id="LGL-TEMPLATE-FRAME-SHAPE-CD--CAPS" role="constant">
267 <term><literal>LGL_TEMPLATE_FRAME_SHAPE_CD</literal></term>
268 <listitem><simpara>A CD or DVD frame.  (Includes credit-card style CDs.)
269 </simpara></listitem>
270 </varlistentry>
271 </variablelist></refsect2>
272 <refsect2 id="lglTemplateFrame" role="union">
273 <title>union lglTemplateFrame</title>
274 <indexterm zone="lglTemplateFrame"><primary sortas="lglTemplateFrame">lglTemplateFrame</primary></indexterm><programlisting>union lglTemplateFrame{
275
276         lglTemplateFrameShape shape;
277
278         lglTemplateFrameAll   all;
279         lglTemplateFrameRect  rect;
280         lglTemplateFrameRound round;
281         lglTemplateFrameCD    cd;
282 };
283 </programlisting>
284 <para>
285 A union of all possible frame structures.  The type of structure is indicated by the shape
286 member, which overlays the first field of all other member structures.
287 </para></refsect2>
288 <refsect2 id="lglTemplateFrameAll" role="struct">
289 <title>lglTemplateFrameAll</title>
290 <indexterm zone="lglTemplateFrameAll"><primary sortas="lglTemplateFrameAll">lglTemplateFrameAll</primary></indexterm><programlisting>typedef struct {
291         /* Begin Common Fields */
292         lglTemplateFrameShape shape;
293
294         gchar                *id;       /* Id, currently always "0" */
295         GList                *layouts;  /* List of lglTemplateLayouts */
296         GList                *markups;  /* List of lglTemplateMarkups */
297         /* End Common Fields */
298 } lglTemplateFrameAll;
299 </programlisting>
300 <para>
301 This structure is composed of a set of fields common to all frame structures.  All frame types
302 can be cast to this structure.
303 </para><variablelist role="struct">
304 <varlistentry>
305 <term><link linkend="lglTemplateFrameShape">lglTemplateFrameShape</link>&#160;<structfield>shape</structfield>;</term>
306 <listitem><simpara>The shape of the frame.
307 </simpara></listitem>
308 </varlistentry>
309 <varlistentry>
310 <term><link linkend="gchar">gchar</link>&#160;*<structfield>id</structfield>;</term>
311 <listitem><simpara>Reserved for future use.  Should always be zero.
312 </simpara></listitem>
313 </varlistentry>
314 <varlistentry>
315 <term><link linkend="GList">GList</link>&#160;*<structfield>layouts</structfield>;</term>
316 <listitem><simpara>A list of (<link linkend="lglTemplateLayout"><type>lglTemplateLayout</type></link> *) structures.  Typically a frame will have a single
317 layout, representing a simple grid of labels or cards.  If the layout of labels or cards is
318 more complex, multiple (<link linkend="lglTemplateLayout"><type>lglTemplateLayout</type></link> *) structures may be needed.
319 </simpara></listitem>
320 </varlistentry>
321 <varlistentry>
322 <term><link linkend="GList">GList</link>&#160;*<structfield>markups</structfield>;</term>
323 <listitem><simpara>A list of (<link linkend="lglTemplateMarkup"><type>lglTemplateMarkup</type></link> *) structures, which represent non-printing markup lines.
324 </simpara></listitem>
325 </varlistentry>
326 </variablelist></refsect2>
327 <refsect2 id="lglTemplateFrameRect" role="struct">
328 <title>lglTemplateFrameRect</title>
329 <indexterm zone="lglTemplateFrameRect"><primary sortas="lglTemplateFrameRect">lglTemplateFrameRect</primary></indexterm><programlisting>typedef struct {
330         /* Begin Common Fields */
331         lglTemplateFrameShape shape;    /* Always LGL_TEMPLATE_FRAME_SHAPE_RECT. */
332
333         gchar                *id;       /* Id, currently always "0" */
334         GList                *layouts;  /* List of lglTemplateLayouts */
335         GList                *markups;  /* List of lglTemplateMarkups */
336         /* End Common Fields */
337
338         gdouble               w;        /* Width */
339         gdouble               h;        /* Height */
340         gdouble               r;        /* Corner radius */
341         gdouble               x_waste;  /* Amount of horiz overprint allowed. */
342         gdouble               y_waste;  /* Amount of vert overprint allowed. */
343 } lglTemplateFrameRect;
344 </programlisting>
345 <para>
346 This structure defines the frame for a rectangular label or card.
347 </para><variablelist role="struct">
348 <varlistentry>
349 <term><link linkend="lglTemplateFrameShape">lglTemplateFrameShape</link>&#160;<structfield>shape</structfield>;</term>
350 <listitem><simpara>Common field.  Always <link linkend="LGL-TEMPLATE-FRAME-SHAPE-RECT--CAPS"><type>LGL_TEMPLATE_FRAME_SHAPE_RECT</type></link> for <link linkend="lglTemplateFrameRect"><type>lglTemplateFrameRect</type></link>.
351 </simpara></listitem>
352 </varlistentry>
353 <varlistentry>
354 <term><link linkend="gchar">gchar</link>&#160;*<structfield>id</structfield>;</term>
355 <listitem><simpara>Common field.  See <link linkend="lglTemplateFrameAll"><type>lglTemplateFrameAll</type></link>.
356 </simpara></listitem>
357 </varlistentry>
358 <varlistentry>
359 <term><link linkend="GList">GList</link>&#160;*<structfield>layouts</structfield>;</term>
360 <listitem><simpara> Common field.  See <link linkend="lglTemplateFrameAll"><type>lglTemplateFrameAll</type></link>.
361 </simpara></listitem>
362 </varlistentry>
363 <varlistentry>
364 <term><link linkend="GList">GList</link>&#160;*<structfield>markups</structfield>;</term>
365 <listitem><simpara> Common field.  See <link linkend="lglTemplateFrameAll"><type>lglTemplateFrameAll</type></link>.
366 </simpara></listitem>
367 </varlistentry>
368 <varlistentry>
369 <term><link linkend="gdouble">gdouble</link>&#160;<structfield>w</structfield>;</term>
370 <listitem><simpara>Width of label or card in points.
371 </simpara></listitem>
372 </varlistentry>
373 <varlistentry>
374 <term><link linkend="gdouble">gdouble</link>&#160;<structfield>h</structfield>;</term>
375 <listitem><simpara>Height of label or card in points.
376 </simpara></listitem>
377 </varlistentry>
378 <varlistentry>
379 <term><link linkend="gdouble">gdouble</link>&#160;<structfield>r</structfield>;</term>
380 <listitem><simpara>Radius of corners in points.
381 </simpara></listitem>
382 </varlistentry>
383 <varlistentry>
384 <term><link linkend="gdouble">gdouble</link>&#160;<structfield>x_waste</structfield>;</term>
385 <listitem><simpara>Amount of horizontal over-print to allow in points.
386 </simpara></listitem>
387 </varlistentry>
388 <varlistentry>
389 <term><link linkend="gdouble">gdouble</link>&#160;<structfield>y_waste</structfield>;</term>
390 <listitem><simpara>Amount of vertical over-print to allow in points.
391 </simpara></listitem>
392 </varlistentry>
393 </variablelist></refsect2>
394 <refsect2 id="lglTemplateFrameRound" role="struct">
395 <title>lglTemplateFrameRound</title>
396 <indexterm zone="lglTemplateFrameRound"><primary sortas="lglTemplateFrameRound">lglTemplateFrameRound</primary></indexterm><programlisting>typedef struct {
397         /* Begin Common Fields */
398         lglTemplateFrameShape shape;    /* Always LGL_TEMPLATE_FRAME_SHAPE_ROUND. */
399
400         gchar                *id;       /* Id, currently always "0" */
401         GList                *layouts;  /* List of lglTemplateLayouts */
402         GList                *markups;  /* List of lglTemplateMarkups */
403         /* End Common Fields */
404
405         gdouble               r;      /* Radius */
406         gdouble               waste;  /* Amount of overprint allowed. */
407 } lglTemplateFrameRound;
408 </programlisting>
409 <para>
410 This structure defines the frame for a round label or card.
411 </para><variablelist role="struct">
412 <varlistentry>
413 <term><link linkend="lglTemplateFrameShape">lglTemplateFrameShape</link>&#160;<structfield>shape</structfield>;</term>
414 <listitem><simpara>Common field.  Always <link linkend="LGL-TEMPLATE-FRAME-SHAPE-ROUND--CAPS"><type>LGL_TEMPLATE_FRAME_SHAPE_ROUND</type></link> for <link linkend="lglTemplateFrameRound"><type>lglTemplateFrameRound</type></link>.
415 </simpara></listitem>
416 </varlistentry>
417 <varlistentry>
418 <term><link linkend="gchar">gchar</link>&#160;*<structfield>id</structfield>;</term>
419 <listitem><simpara>Common field.  See <link linkend="lglTemplateFrameAll"><type>lglTemplateFrameAll</type></link>.
420 </simpara></listitem>
421 </varlistentry>
422 <varlistentry>
423 <term><link linkend="GList">GList</link>&#160;*<structfield>layouts</structfield>;</term>
424 <listitem><simpara>Common field.  See <link linkend="lglTemplateFrameAll"><type>lglTemplateFrameAll</type></link>.
425 </simpara></listitem>
426 </varlistentry>
427 <varlistentry>
428 <term><link linkend="GList">GList</link>&#160;*<structfield>markups</structfield>;</term>
429 <listitem><simpara>Common field.  See <link linkend="lglTemplateFrameAll"><type>lglTemplateFrameAll</type></link>.
430 </simpara></listitem>
431 </varlistentry>
432 <varlistentry>
433 <term><link linkend="gdouble">gdouble</link>&#160;<structfield>r</structfield>;</term>
434 <listitem><simpara>Radius of label or card in points.
435 </simpara></listitem>
436 </varlistentry>
437 <varlistentry>
438 <term><link linkend="gdouble">gdouble</link>&#160;<structfield>waste</structfield>;</term>
439 <listitem><simpara>Amount of over-print to allow in points.
440 </simpara></listitem>
441 </varlistentry>
442 </variablelist></refsect2>
443 <refsect2 id="lglTemplateFrameCD" role="struct">
444 <title>lglTemplateFrameCD</title>
445 <indexterm zone="lglTemplateFrameCD"><primary sortas="lglTemplateFrameCD">lglTemplateFrameCD</primary></indexterm><programlisting>typedef struct {
446         /* Begin Common Fields */
447         lglTemplateFrameShape shape;    /* Always LGL_TEMPLATE_FRAME_SHAPE_CD. */
448
449         gchar                *id;       /* Id, currently always "0" */
450         GList                *layouts;  /* List of lglTemplateLayouts */
451         GList                *markups;  /* List of lglTemplateMarkups */
452         /* End Common Fields */
453
454         gdouble               r1;     /* Outer radius */
455         gdouble               r2;     /* Inner radius (hole) */
456         gdouble               w;      /* Clip width, business card CDs */
457         gdouble               h;      /* Clip height, business card CDs */
458         gdouble               waste;  /* Amount of overprint allowed. */
459 } lglTemplateFrameCD;
460 </programlisting>
461 <para>
462 This structure defines the frame for a CD or DVD label.  This structure also supports
463 credit-card CD labels.
464 </para><variablelist role="struct">
465 <varlistentry>
466 <term><link linkend="lglTemplateFrameShape">lglTemplateFrameShape</link>&#160;<structfield>shape</structfield>;</term>
467 <listitem><simpara>Common field.  Always <link linkend="LGL-TEMPLATE-FRAME-SHAPE-CD--CAPS"><type>LGL_TEMPLATE_FRAME_SHAPE_CD</type></link> for <link linkend="lglTemplateFrameCD"><type>lglTemplateFrameCD</type></link>.
468 </simpara></listitem>
469 </varlistentry>
470 <varlistentry>
471 <term><link linkend="gchar">gchar</link>&#160;*<structfield>id</structfield>;</term>
472 <listitem><simpara>Common field.  See <link linkend="lglTemplateFrameAll"><type>lglTemplateFrameAll</type></link>.
473 </simpara></listitem>
474 </varlistentry>
475 <varlistentry>
476 <term><link linkend="GList">GList</link>&#160;*<structfield>layouts</structfield>;</term>
477 <listitem><simpara>Common field.  See <link linkend="lglTemplateFrameAll"><type>lglTemplateFrameAll</type></link>.
478 </simpara></listitem>
479 </varlistentry>
480 <varlistentry>
481 <term><link linkend="GList">GList</link>&#160;*<structfield>markups</structfield>;</term>
482 <listitem><simpara>Common field.  See <link linkend="lglTemplateFrameAll"><type>lglTemplateFrameAll</type></link>.
483 </simpara></listitem>
484 </varlistentry>
485 <varlistentry>
486 <term><link linkend="gdouble">gdouble</link>&#160;<structfield>r1</structfield>;</term>
487 <listitem><simpara>Outer radius of label in points.
488 </simpara></listitem>
489 </varlistentry>
490 <varlistentry>
491 <term><link linkend="gdouble">gdouble</link>&#160;<structfield>r2</structfield>;</term>
492 <listitem><simpara>Radius of center hole in points.
493 </simpara></listitem>
494 </varlistentry>
495 <varlistentry>
496 <term><link linkend="gdouble">gdouble</link>&#160;<structfield>w</structfield>;</term>
497 <listitem><simpara>Clip width in points.  Used for credit-card CD labels.  This field is ignored if zero.
498 </simpara></listitem>
499 </varlistentry>
500 <varlistentry>
501 <term><link linkend="gdouble">gdouble</link>&#160;<structfield>h</structfield>;</term>
502 <listitem><simpara>Clip height in points.  Used for credit-card CD labels.  This field is ignored if zero.
503 </simpara></listitem>
504 </varlistentry>
505 <varlistentry>
506 <term><link linkend="gdouble">gdouble</link>&#160;<structfield>waste</structfield>;</term>
507 <listitem><simpara>Amount of over-print to allow in points.
508 </simpara></listitem>
509 </varlistentry>
510 </variablelist></refsect2>
511 <refsect2 id="lglTemplateLayout" role="struct">
512 <title>lglTemplateLayout</title>
513 <indexterm zone="lglTemplateLayout"><primary sortas="lglTemplateLayout">lglTemplateLayout</primary></indexterm><programlisting>typedef struct {
514         gint                  nx;  /* Number of labels across */
515         gint                  ny;  /* Number of labels up and down */
516
517         gdouble               x0;  /* Left of grid from left edge of paper */
518         gdouble               y0;  /* Top of grid from top edge of paper */
519
520         gdouble               dx;  /* Horizontal pitch of grid */
521         gdouble               dy;  /* Vertical pitch of grid */
522 } lglTemplateLayout;
523 </programlisting>
524 <para>
525 This structure defines a simple grid layout of labels or cards.
526 </para><variablelist role="struct">
527 <varlistentry>
528 <term><link linkend="gint">gint</link>&#160;<structfield>nx</structfield>;</term>
529 <listitem><simpara>Number of labels or cards across in the grid (horizontal).
530 </simpara></listitem>
531 </varlistentry>
532 <varlistentry>
533 <term><link linkend="gint">gint</link>&#160;<structfield>ny</structfield>;</term>
534 <listitem><simpara>Number of labels or cards down in the grid (vertical).
535 </simpara></listitem>
536 </varlistentry>
537 <varlistentry>
538 <term><link linkend="gdouble">gdouble</link>&#160;<structfield>x0</structfield>;</term>
539 <listitem><simpara>Distance (in points) from the left edge of page to the left edge of the left column of
540 cards or labels in the layout.
541 </simpara></listitem>
542 </varlistentry>
543 <varlistentry>
544 <term><link linkend="gdouble">gdouble</link>&#160;<structfield>y0</structfield>;</term>
545 <listitem><simpara>Distance (in points) from the top edge of page to the top edge of the top row of
546 cards or labels in the layout.
547 </simpara></listitem>
548 </varlistentry>
549 <varlistentry>
550 <term><link linkend="gdouble">gdouble</link>&#160;<structfield>dx</structfield>;</term>
551 <listitem><simpara>Horizontal pitch of grid in points.  This is the distance from left edge to left edge
552 (not the gap between labels or cards).
553 </simpara></listitem>
554 </varlistentry>
555 <varlistentry>
556 <term><link linkend="gdouble">gdouble</link>&#160;<structfield>dy</structfield>;</term>
557 <listitem><simpara>Vertical pitch of grid in points.  This is the distance from top edge to top edge
558 (not the gap between labels or cards).
559 </simpara></listitem>
560 </varlistentry>
561 </variablelist></refsect2>
562 <refsect2 id="lglTemplateMarkupType" role="enum">
563 <title>enum lglTemplateMarkupType</title>
564 <indexterm zone="lglTemplateMarkupType"><primary sortas="lglTemplateMarkupType">lglTemplateMarkupType</primary></indexterm><programlisting>typedef enum {
565         LGL_TEMPLATE_MARKUP_MARGIN,
566         LGL_TEMPLATE_MARKUP_LINE,
567         LGL_TEMPLATE_MARKUP_CIRCLE,
568         LGL_TEMPLATE_MARKUP_RECT,
569 } lglTemplateMarkupType;
570 </programlisting>
571 <para>
572 This enumeration defines markup types that are supported by libglabels
573 </para><variablelist role="enum">
574 <varlistentry id="LGL-TEMPLATE-MARKUP-MARGIN--CAPS" role="constant">
575 <term><literal>LGL_TEMPLATE_MARKUP_MARGIN</literal></term>
576 <listitem><simpara>A margin line around perimeter of label or card.
577 </simpara></listitem>
578 </varlistentry>
579 <varlistentry id="LGL-TEMPLATE-MARKUP-LINE--CAPS" role="constant">
580 <term><literal>LGL_TEMPLATE_MARKUP_LINE</literal></term>
581 <listitem><simpara>A simple line segment.
582 </simpara></listitem>
583 </varlistentry>
584 <varlistentry id="LGL-TEMPLATE-MARKUP-CIRCLE--CAPS" role="constant">
585 <term><literal>LGL_TEMPLATE_MARKUP_CIRCLE</literal></term>
586 <listitem><simpara>A circle.
587 </simpara></listitem>
588 </varlistentry>
589 <varlistentry id="LGL-TEMPLATE-MARKUP-RECT--CAPS" role="constant">
590 <term><literal>LGL_TEMPLATE_MARKUP_RECT</literal></term>
591 <listitem><simpara>A rectangle.  Possibly with rounded corners.
592 </simpara></listitem>
593 </varlistentry>
594 </variablelist></refsect2>
595 <refsect2 id="lglTemplateMarkup" role="union">
596 <title>union lglTemplateMarkup</title>
597 <indexterm zone="lglTemplateMarkup"><primary sortas="lglTemplateMarkup">lglTemplateMarkup</primary></indexterm><programlisting>union lglTemplateMarkup {
598
599         lglTemplateMarkupType   type;
600
601         lglTemplateMarkupMargin margin;
602         lglTemplateMarkupLine   line;
603         lglTemplateMarkupCircle circle;
604         lglTemplateMarkupRect   rect;
605 };
606 </programlisting>
607 <para>
608 A union of all possible markup structures.  The type of structure is indicated by the type
609 member, which overlays the first field of all other member structures.
610 </para></refsect2>
611 <refsect2 id="lglTemplateMarkupMargin" role="struct">
612 <title>lglTemplateMarkupMargin</title>
613 <indexterm zone="lglTemplateMarkupMargin"><primary sortas="lglTemplateMarkupMargin">lglTemplateMarkupMargin</primary></indexterm><programlisting>typedef struct {
614         lglTemplateMarkupType  type;  /* Always LGL_TEMPLATE_MARKUP_MARGIN */
615
616         gdouble                size;  /* Margin size */
617 } lglTemplateMarkupMargin;
618 </programlisting>
619 <para>
620 This structure defines a simple margin markup around the perimeter of a label or card.
621 </para><variablelist role="struct">
622 <varlistentry>
623 <term><link linkend="lglTemplateMarkupType">lglTemplateMarkupType</link>&#160;<structfield>type</structfield>;</term>
624 <listitem><simpara>Common field.  Always <link linkend="LGL-TEMPLATE-MARKUP-MARGIN--CAPS"><type>LGL_TEMPLATE_MARKUP_MARGIN</type></link> for <link linkend="lglTemplateMarkupMargin"><type>lglTemplateMarkupMargin</type></link>.
625 </simpara></listitem>
626 </varlistentry>
627 <varlistentry>
628 <term><link linkend="gdouble">gdouble</link>&#160;<structfield>size</structfield>;</term>
629 <listitem><simpara>Distance of margin from edge of label or card.
630 </simpara></listitem>
631 </varlistentry>
632 </variablelist></refsect2>
633 <refsect2 id="lglTemplateMarkupLine" role="struct">
634 <title>lglTemplateMarkupLine</title>
635 <indexterm zone="lglTemplateMarkupLine"><primary sortas="lglTemplateMarkupLine">lglTemplateMarkupLine</primary></indexterm><programlisting>typedef struct {
636         lglTemplateMarkupType  type;   /* Always LGL_TEMPLATE_MARKUP_LINE */
637
638         gdouble                x1, y1; /* 1st endpoint */
639         gdouble                x2, y2; /* 2nd endpoint */
640 } lglTemplateMarkupLine;
641 </programlisting>
642 <para>
643 This structure defines a simple line segment markup.
644 </para><variablelist role="struct">
645 <varlistentry>
646 <term><link linkend="lglTemplateMarkupType">lglTemplateMarkupType</link>&#160;<structfield>type</structfield>;</term>
647 <listitem><simpara>Common field.  Always <link linkend="LGL-TEMPLATE-MARKUP-LINE--CAPS"><type>LGL_TEMPLATE_MARKUP_LINE</type></link> for <link linkend="lglTemplateMarkupLine"><type>lglTemplateMarkupLine</type></link>.
648 </simpara></listitem>
649 </varlistentry>
650 <varlistentry>
651 <term><link linkend="gdouble">gdouble</link>&#160;<structfield>x1</structfield>;</term>
652 <listitem><simpara>Distance (in points) of first endpoint from left edge of label or card.
653 </simpara></listitem>
654 </varlistentry>
655 <varlistentry>
656 <term><link linkend="gdouble">gdouble</link>&#160;<structfield>y1</structfield>;</term>
657 <listitem><simpara>Distance (in points) of first endpoint from top edge of label or card.
658 </simpara></listitem>
659 </varlistentry>
660 <varlistentry>
661 <term><link linkend="gdouble">gdouble</link>&#160;<structfield>x2</structfield>;</term>
662 <listitem><simpara>Distance (in points) of second endpoint from left edge of label or card.
663 </simpara></listitem>
664 </varlistentry>
665 <varlistentry>
666 <term><link linkend="gdouble">gdouble</link>&#160;<structfield>y2</structfield>;</term>
667 <listitem><simpara>Distance (in points) of second endpoint from top edge of label or card.
668 </simpara></listitem>
669 </varlistentry>
670 </variablelist></refsect2>
671 <refsect2 id="lglTemplateMarkupCircle" role="struct">
672 <title>lglTemplateMarkupCircle</title>
673 <indexterm zone="lglTemplateMarkupCircle"><primary sortas="lglTemplateMarkupCircle">lglTemplateMarkupCircle</primary></indexterm><programlisting>typedef struct {
674         lglTemplateMarkupType  type;   /* Always LGL_TEMPLATE_MARKUP_CIRCLE */
675
676         gdouble                x0, y0; /* Center of circle */
677         gdouble                r;      /* Radius of circle */
678 } lglTemplateMarkupCircle;
679 </programlisting>
680 <para>
681 This structure defines a simple circle markup.
682 </para><variablelist role="struct">
683 <varlistentry>
684 <term><link linkend="lglTemplateMarkupType">lglTemplateMarkupType</link>&#160;<structfield>type</structfield>;</term>
685 <listitem><simpara>Common field.  Always <link linkend="LGL-TEMPLATE-MARKUP-CIRCLE--CAPS"><type>LGL_TEMPLATE_MARKUP_CIRCLE</type></link> for <link linkend="lglTemplateMarkupCircle"><type>lglTemplateMarkupCircle</type></link>.
686 </simpara></listitem>
687 </varlistentry>
688 <varlistentry>
689 <term><link linkend="gdouble">gdouble</link>&#160;<structfield>x0</structfield>;</term>
690 <listitem><simpara>Distance (in points) of vertex from left edge of label or card.
691 </simpara></listitem>
692 </varlistentry>
693 <varlistentry>
694 <term><link linkend="gdouble">gdouble</link>&#160;<structfield>y0</structfield>;</term>
695 <listitem><simpara>Distance (in points) of vertex from top edge of label or card.
696 </simpara></listitem>
697 </varlistentry>
698 <varlistentry>
699 <term><link linkend="gdouble">gdouble</link>&#160;<structfield>r</structfield>;</term>
700 <listitem><simpara>Radius of circle in points.
701 </simpara></listitem>
702 </varlistentry>
703 </variablelist></refsect2>
704 <refsect2 id="lglTemplateMarkupRect" role="struct">
705 <title>lglTemplateMarkupRect</title>
706 <indexterm zone="lglTemplateMarkupRect"><primary sortas="lglTemplateMarkupRect">lglTemplateMarkupRect</primary></indexterm><programlisting>typedef struct {
707         lglTemplateMarkupType  type;   /* Always LGL_TEMPLATE_MARKUP_RECT */
708
709         gdouble                x1, y1; /* Upper left corner */
710         gdouble                w, h;   /* Width and height. */
711         gdouble                r;      /* Radius of corners. */
712 } lglTemplateMarkupRect;
713 </programlisting>
714 <para>
715 This structure defines a simple rectangle markup.  The rectangle can have rounded corners.
716 </para><variablelist role="struct">
717 <varlistentry>
718 <term><link linkend="lglTemplateMarkupType">lglTemplateMarkupType</link>&#160;<structfield>type</structfield>;</term>
719 <listitem><simpara>Common field.  Always <link linkend="LGL-TEMPLATE-MARKUP-RECT--CAPS"><type>LGL_TEMPLATE_MARKUP_RECT</type></link> for <link linkend="lglTemplateMarkupRect"><type>lglTemplateMarkupRect</type></link>.
720 </simpara></listitem>
721 </varlistentry>
722 <varlistentry>
723 <term><link linkend="gdouble">gdouble</link>&#160;<structfield>x1</structfield>;</term>
724 <listitem><simpara>Distance (in points) of left edge of markup from left edge of label or card.
725 </simpara></listitem>
726 </varlistentry>
727 <varlistentry>
728 <term><link linkend="gdouble">gdouble</link>&#160;<structfield>y1</structfield>;</term>
729 <listitem><simpara>Distance (in points) of top edge of markup from top edge of label or card.
730 </simpara></listitem>
731 </varlistentry>
732 <varlistentry>
733 <term><link linkend="gdouble">gdouble</link>&#160;<structfield>w</structfield>;</term>
734 <listitem><simpara>Width of rectangle in points.
735 </simpara></listitem>
736 </varlistentry>
737 <varlistentry>
738 <term><link linkend="gdouble">gdouble</link>&#160;<structfield>h</structfield>;</term>
739 <listitem><simpara>Height of rectangle in points.
740 </simpara></listitem>
741 </varlistentry>
742 <varlistentry>
743 <term><link linkend="gdouble">gdouble</link>&#160;<structfield>r</structfield>;</term>
744 <listitem><simpara>Radius of corners in points.  Should be zero for sharp corners.
745 </simpara></listitem>
746 </varlistentry>
747 </variablelist></refsect2>
748 <refsect2 id="lglTemplateOrigin" role="struct">
749 <title>lglTemplateOrigin</title>
750 <indexterm zone="lglTemplateOrigin"><primary sortas="lglTemplateOrigin">lglTemplateOrigin</primary></indexterm><programlisting>typedef struct {
751         gdouble               x, y; /* Label origin relative to upper 
752                                      * upper left hand corner of paper */
753 } lglTemplateOrigin;
754 </programlisting>
755 <para>
756 This structure represents the cartesian coordinates of the origin of a label or card on the page.
757 The orign is the upper left corner of the extent of the label or card.  These coordinates are
758 relative to the upper left corner of the page.
759 </para><variablelist role="struct">
760 <varlistentry>
761 <term><link linkend="gdouble">gdouble</link>&#160;<structfield>x</structfield>;</term>
762 <listitem><simpara>Distance in points from top edge of page.
763 </simpara></listitem>
764 </varlistentry>
765 <varlistentry>
766 <term><link linkend="gdouble">gdouble</link>&#160;<structfield>y</structfield>;</term>
767 <listitem><simpara>Distance in points from left edge of page.
768 </simpara></listitem>
769 </varlistentry>
770 </variablelist></refsect2>
771 <refsect2 id="lgl-template-new" role="function">
772 <title>lgl_template_new ()</title>
773 <indexterm zone="lgl-template-new"><primary sortas="lgl_template_new">lgl_template_new</primary></indexterm><programlisting><link linkend="lglTemplate">lglTemplate</link> *       lgl_template_new                    (const <link linkend="gchar">gchar</link> *brand,
774                                                          const <link linkend="gchar">gchar</link> *part,
775                                                          const <link linkend="gchar">gchar</link> *description,
776                                                          const <link linkend="gchar">gchar</link> *paper_id,
777                                                          <link linkend="gdouble">gdouble</link> page_width,
778                                                          <link linkend="gdouble">gdouble</link> page_height);</programlisting>
779 <para>
780 Create a new template structure, with the given top-level attributes.  The
781 created template will have no initial aliases, categories, or frames
782 associated with it.  See <link linkend="lgl-template-add-alias"><function>lgl_template_add_alias()</function></link>, <link linkend="lgl-template-add-category"><function>lgl_template_add_category()</function></link>,
783 and <link linkend="lgl-template-add-frame"><function>lgl_template_add_frame()</function></link> to add these.</para>
784 <para>
785 </para><variablelist role="params">
786 <varlistentry><term><parameter>brand</parameter>&#160;:</term>
787 <listitem><simpara>        Template brand
788 </simpara></listitem></varlistentry>
789 <varlistentry><term><parameter>part</parameter>&#160;:</term>
790 <listitem><simpara>         Template part name/number
791 </simpara></listitem></varlistentry>
792 <varlistentry><term><parameter>description</parameter>&#160;:</term>
793 <listitem><simpara>  Template descriptions
794 </simpara></listitem></varlistentry>
795 <varlistentry><term><parameter>paper_id</parameter>&#160;:</term>
796 <listitem><simpara>     Page size id
797 </simpara></listitem></varlistentry>
798 <varlistentry><term><parameter>page_width</parameter>&#160;:</term>
799 <listitem><simpara>   Page width in points, set to zero unless paper_id="Other"
800 </simpara></listitem></varlistentry>
801 <varlistentry><term><parameter>page_height</parameter>&#160;:</term>
802 <listitem><simpara>  Page height in points, set to zero unless paper_id="Other"
803 </simpara></listitem></varlistentry>
804 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> pointer to a newly allocated <link linkend="lglTemplate"><type>lglTemplate</type></link> structure.
805
806 </simpara></listitem></varlistentry>
807 </variablelist></refsect2>
808 <refsect2 id="lgl-template-dup" role="function">
809 <title>lgl_template_dup ()</title>
810 <indexterm zone="lgl-template-dup"><primary sortas="lgl_template_dup">lgl_template_dup</primary></indexterm><programlisting><link linkend="lglTemplate">lglTemplate</link> *       lgl_template_dup                    (const <link linkend="lglTemplate">lglTemplate</link> *orig_template);</programlisting>
811 <para>
812 This function duplicates a template structure.</para>
813 <para>
814 </para><variablelist role="params">
815 <varlistentry><term><parameter>orig_template</parameter>&#160;:</term>
816 <listitem><simpara> Template to duplicate.
817 </simpara></listitem></varlistentry>
818 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>  a newly allocated <link linkend="lglTemplate"><type>lglTemplate</type></link> structure.
819
820 </simpara></listitem></varlistentry>
821 </variablelist></refsect2>
822 <refsect2 id="lgl-template-free" role="function">
823 <title>lgl_template_free ()</title>
824 <indexterm zone="lgl-template-free"><primary sortas="lgl_template_free">lgl_template_free</primary></indexterm><programlisting><link linkend="void">void</link>                lgl_template_free                   (<link linkend="lglTemplate">lglTemplate</link> *template);</programlisting>
825 <para>
826 This function frees all memory associated with given template structure.</para>
827 <para>
828 </para><variablelist role="params">
829 <varlistentry><term><parameter>template</parameter>&#160;:</term>
830 <listitem><simpara> Template to free.
831 </simpara></listitem></varlistentry>
832 </variablelist></refsect2>
833 <refsect2 id="lgl-template-add-category" role="function">
834 <title>lgl_template_add_category ()</title>
835 <indexterm zone="lgl-template-add-category"><primary sortas="lgl_template_add_category">lgl_template_add_category</primary></indexterm><programlisting><link linkend="void">void</link>                lgl_template_add_category           (<link linkend="lglTemplate">lglTemplate</link> *template,
836                                                          const <link linkend="gchar">gchar</link> *category_id);</programlisting>
837 <para>
838 This function adds the given category ID to a templates category list.</para>
839 <para>
840 </para><variablelist role="params">
841 <varlistentry><term><parameter>template</parameter>&#160;:</term>
842 <listitem><simpara>     Pointer to template structure
843 </simpara></listitem></varlistentry>
844 <varlistentry><term><parameter>category_id</parameter>&#160;:</term>
845 <listitem><simpara>  Category ID string
846 </simpara></listitem></varlistentry>
847 </variablelist></refsect2>
848 <refsect2 id="lgl-template-add-frame" role="function">
849 <title>lgl_template_add_frame ()</title>
850 <indexterm zone="lgl-template-add-frame"><primary sortas="lgl_template_add_frame">lgl_template_add_frame</primary></indexterm><programlisting><link linkend="void">void</link>                lgl_template_add_frame              (<link linkend="lglTemplate">lglTemplate</link> *template,
851                                                          <link linkend="lglTemplateFrame">lglTemplateFrame</link> *frame);</programlisting>
852 <para>
853 This function adds the given frame structure to the template.  Once added,
854 the frame structure belongs to the given template; do not attempt to free
855 it.
856 </para>
857 <para>
858 Note: Currently glabels only supports a single frame per template.</para>
859 <para>
860 </para><variablelist role="params">
861 <varlistentry><term><parameter>template</parameter>&#160;:</term>
862 <listitem><simpara>  Pointer to template structure
863 </simpara></listitem></varlistentry>
864 <varlistentry><term><parameter>frame</parameter>&#160;:</term>
865 <listitem><simpara>     Pointer to frame structure
866 </simpara></listitem></varlistentry>
867 </variablelist></refsect2>
868 <refsect2 id="lgl-template-add-alias" role="function">
869 <title>lgl_template_add_alias ()</title>
870 <indexterm zone="lgl-template-add-alias"><primary sortas="lgl_template_add_alias">lgl_template_add_alias</primary></indexterm><programlisting><link linkend="void">void</link>                lgl_template_add_alias              (<link linkend="lglTemplate">lglTemplate</link> *template,
871                                                          <link linkend="lglTemplateAlias">lglTemplateAlias</link> *alias);</programlisting>
872 <para>
873 This function adds the given alias to a templates list of aliases.</para>
874 <para>
875 </para><variablelist role="params">
876 <varlistentry><term><parameter>template</parameter>&#160;:</term>
877 <listitem><simpara>  Pointer to template structure
878 </simpara></listitem></varlistentry>
879 <varlistentry><term><parameter>alias</parameter>&#160;:</term>
880 <listitem><simpara>     Alias string
881 </simpara></listitem></varlistentry>
882 </variablelist></refsect2>
883 <refsect2 id="lgl-template-get-name" role="function">
884 <title>lgl_template_get_name ()</title>
885 <indexterm zone="lgl-template-get-name"><primary sortas="lgl_template_get_name">lgl_template_get_name</primary></indexterm><programlisting><link linkend="gchar">gchar</link> *             lgl_template_get_name               (const <link linkend="lglTemplate">lglTemplate</link> *template);</programlisting>
886 <para>
887 This function returns the name of the given template.  The name is the concetenation
888 of the brand and part name/number.</para>
889 <para>
890 </para><variablelist role="params">
891 <varlistentry><term><parameter>template</parameter>&#160;:</term>
892 <listitem><simpara>  Pointer to template structure to test
893 </simpara></listitem></varlistentry>
894 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>  A pointer to a newly allocated name string.  Should be freed with <link linkend="g-free"><function>g_free()</function></link>.
895
896 </simpara></listitem></varlistentry>
897 </variablelist></refsect2>
898 <refsect2 id="lgl-template-do-templates-match" role="function">
899 <title>lgl_template_do_templates_match ()</title>
900 <indexterm zone="lgl-template-do-templates-match"><primary sortas="lgl_template_do_templates_match">lgl_template_do_templates_match</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>            lgl_template_do_templates_match     (const <link linkend="lglTemplate">lglTemplate</link> *template1,
901                                                          const <link linkend="lglTemplate">lglTemplate</link> *template2);</programlisting>
902 <para>
903 This function tests if the given templates match.  This is a simple test that only tests
904 the brand and part name/number. It does not test if they are actually identical.</para>
905 <para>
906 </para><variablelist role="params">
907 <varlistentry><term><parameter>template1</parameter>&#160;:</term>
908 <listitem><simpara>  Pointer to 1st template structure to test
909 </simpara></listitem></varlistentry>
910 <varlistentry><term><parameter>template2</parameter>&#160;:</term>
911 <listitem><simpara>  Pointer to 2nd template structure to test
912 </simpara></listitem></varlistentry>
913 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>  TRUE if the two template matche.
914
915 </simpara></listitem></varlistentry>
916 </variablelist></refsect2>
917 <refsect2 id="lgl-template-does-brand-match" role="function">
918 <title>lgl_template_does_brand_match ()</title>
919 <indexterm zone="lgl-template-does-brand-match"><primary sortas="lgl_template_does_brand_match">lgl_template_does_brand_match</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>            lgl_template_does_brand_match       (const <link linkend="lglTemplate">lglTemplate</link> *template,
920                                                          const <link linkend="gchar">gchar</link> *brand);</programlisting>
921 <para>
922 This function tests if the brand of the template matches the given brand.</para>
923 <para>
924 </para><variablelist role="params">
925 <varlistentry><term><parameter>template</parameter>&#160;:</term>
926 <listitem><simpara>  Pointer to template structure to test
927 </simpara></listitem></varlistentry>
928 <varlistentry><term><parameter>brand</parameter>&#160;:</term>
929 <listitem><simpara>     Brand string
930 </simpara></listitem></varlistentry>
931 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>  TRUE if the template matches the given brand.
932
933 </simpara></listitem></varlistentry>
934 </variablelist></refsect2>
935 <refsect2 id="lgl-template-does-page-size-match" role="function">
936 <title>lgl_template_does_page_size_match ()</title>
937 <indexterm zone="lgl-template-does-page-size-match"><primary sortas="lgl_template_does_page_size_match">lgl_template_does_page_size_match</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>            lgl_template_does_page_size_match   (const <link linkend="lglTemplate">lglTemplate</link> *template,
938                                                          const <link linkend="gchar">gchar</link> *paper_id);</programlisting>
939 <para>
940 This function tests if the page size of the template matches the given ID.</para>
941 <para>
942 </para><variablelist role="params">
943 <varlistentry><term><parameter>template</parameter>&#160;:</term>
944 <listitem><simpara>  Pointer to template structure to test
945 </simpara></listitem></varlistentry>
946 <varlistentry><term><parameter>paper_id</parameter>&#160;:</term>
947 <listitem><simpara>  Page size ID string
948 </simpara></listitem></varlistentry>
949 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>  TRUE if the template matches the given page size ID.
950
951 </simpara></listitem></varlistentry>
952 </variablelist></refsect2>
953 <refsect2 id="lgl-template-does-category-match" role="function">
954 <title>lgl_template_does_category_match ()</title>
955 <indexterm zone="lgl-template-does-category-match"><primary sortas="lgl_template_does_category_match">lgl_template_does_category_match</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>            lgl_template_does_category_match    (const <link linkend="lglTemplate">lglTemplate</link> *template,
956                                                          const <link linkend="gchar">gchar</link> *category_id);</programlisting>
957 <para>
958 This function tests if the given template belongs to the given category ID.</para>
959 <para>
960 </para><variablelist role="params">
961 <varlistentry><term><parameter>template</parameter>&#160;:</term>
962 <listitem><simpara>     Pointer to template structure to test
963 </simpara></listitem></varlistentry>
964 <varlistentry><term><parameter>category_id</parameter>&#160;:</term>
965 <listitem><simpara>  Category ID string
966 </simpara></listitem></varlistentry>
967 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>  TRUE if the template matches the given category ID.
968
969 </simpara></listitem></varlistentry>
970 </variablelist></refsect2>
971 <refsect2 id="lgl-template-alias-new" role="function">
972 <title>lgl_template_alias_new ()</title>
973 <indexterm zone="lgl-template-alias-new"><primary sortas="lgl_template_alias_new">lgl_template_alias_new</primary></indexterm><programlisting><link linkend="lglTemplateAlias">lglTemplateAlias</link> *  lgl_template_alias_new              (const <link linkend="gchar">gchar</link> *brand,
974                                                          const <link linkend="gchar">gchar</link> *part);</programlisting>
975 <para>
976 Create a new template alias structure, with the given brand and part number.</para>
977 <para>
978 </para><variablelist role="params">
979 <varlistentry><term><parameter>brand</parameter>&#160;:</term>
980 <listitem><simpara>        Alias brand
981 </simpara></listitem></varlistentry>
982 <varlistentry><term><parameter>part</parameter>&#160;:</term>
983 <listitem><simpara>         Alias part name/number
984 </simpara></listitem></varlistentry>
985 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> pointer to a newly allocated <link linkend="lglTemplateAlias"><type>lglTemplateAlias</type></link> structure.
986
987 </simpara></listitem></varlistentry>
988 </variablelist></refsect2>
989 <refsect2 id="lgl-template-alias-dup" role="function">
990 <title>lgl_template_alias_dup ()</title>
991 <indexterm zone="lgl-template-alias-dup"><primary sortas="lgl_template_alias_dup">lgl_template_alias_dup</primary></indexterm><programlisting><link linkend="lglTemplateAlias">lglTemplateAlias</link> *  lgl_template_alias_dup              (const <link linkend="lglTemplateAlias">lglTemplateAlias</link> *orig_alias);</programlisting>
992 <para>
993 This function duplicates a template alias structure.</para>
994 <para>
995 </para><variablelist role="params">
996 <varlistentry><term><parameter>orig_alias</parameter>&#160;:</term>
997 <listitem><simpara> Alias to duplicate.
998 </simpara></listitem></varlistentry>
999 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>  a newly allocated <link linkend="lglTemplateAlias"><type>lglTemplateAlias</type></link> structure.
1000
1001 </simpara></listitem></varlistentry>
1002 </variablelist></refsect2>
1003 <refsect2 id="lgl-template-alias-free" role="function">
1004 <title>lgl_template_alias_free ()</title>
1005 <indexterm zone="lgl-template-alias-free"><primary sortas="lgl_template_alias_free">lgl_template_alias_free</primary></indexterm><programlisting><link linkend="void">void</link>                lgl_template_alias_free             (<link linkend="lglTemplateAlias">lglTemplateAlias</link> *alias);</programlisting>
1006 <para>
1007 This function frees all memory associated with given template alias structure.</para>
1008 <para>
1009 </para><variablelist role="params">
1010 <varlistentry><term><parameter>alias</parameter>&#160;:</term>
1011 <listitem><simpara> Alias to free.
1012 </simpara></listitem></varlistentry>
1013 </variablelist></refsect2>
1014 <refsect2 id="lgl-template-frame-rect-new" role="function">
1015 <title>lgl_template_frame_rect_new ()</title>
1016 <indexterm zone="lgl-template-frame-rect-new"><primary sortas="lgl_template_frame_rect_new">lgl_template_frame_rect_new</primary></indexterm><programlisting><link linkend="lglTemplateFrame">lglTemplateFrame</link> *  lgl_template_frame_rect_new         (const <link linkend="gchar">gchar</link> *id,
1017                                                          <link linkend="gdouble">gdouble</link> w,
1018                                                          <link linkend="gdouble">gdouble</link> h,
1019                                                          <link linkend="gdouble">gdouble</link> r,
1020                                                          <link linkend="gdouble">gdouble</link> x_waste,
1021                                                          <link linkend="gdouble">gdouble</link> y_waste);</programlisting>
1022 <para>
1023 This function creates a new template frame for a rectangular label or card.</para>
1024 <para>
1025 </para><variablelist role="params">
1026 <varlistentry><term><parameter>id</parameter>&#160;:</term>
1027 <listitem><simpara>      ID of frame.  (This should currently always be "0").
1028 </simpara></listitem></varlistentry>
1029 <varlistentry><term><parameter>w</parameter>&#160;:</term>
1030 <listitem><simpara>       width of frame in points.
1031 </simpara></listitem></varlistentry>
1032 <varlistentry><term><parameter>h</parameter>&#160;:</term>
1033 <listitem><simpara>       height of frame in points.
1034 </simpara></listitem></varlistentry>
1035 <varlistentry><term><parameter>r</parameter>&#160;:</term>
1036 <listitem><simpara>       radius of rounded corners in points.  (Should be 0 for square corners.)
1037 </simpara></listitem></varlistentry>
1038 <varlistentry><term><parameter>x_waste</parameter>&#160;:</term>
1039 <listitem><simpara> Amount of overprint to allow in the horizontal direction.
1040 </simpara></listitem></varlistentry>
1041 <varlistentry><term><parameter>y_waste</parameter>&#160;:</term>
1042 <listitem><simpara> Amount of overprint to allow in the vertical direction.
1043 </simpara></listitem></varlistentry>
1044 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> Pointer to newly allocated <link linkend="lglTemplateFrame"><type>lglTemplateFrame</type></link> structure.
1045
1046 </simpara></listitem></varlistentry>
1047 </variablelist></refsect2>
1048 <refsect2 id="lgl-template-frame-round-new" role="function">
1049 <title>lgl_template_frame_round_new ()</title>
1050 <indexterm zone="lgl-template-frame-round-new"><primary sortas="lgl_template_frame_round_new">lgl_template_frame_round_new</primary></indexterm><programlisting><link linkend="lglTemplateFrame">lglTemplateFrame</link> *  lgl_template_frame_round_new        (const <link linkend="gchar">gchar</link> *id,
1051                                                          <link linkend="gdouble">gdouble</link> r,
1052                                                          <link linkend="gdouble">gdouble</link> waste);</programlisting>
1053 <para>
1054 This function creates a new template frame for a round label.</para>
1055 <para>
1056 </para><variablelist role="params">
1057 <varlistentry><term><parameter>id</parameter>&#160;:</term>
1058 <listitem><simpara>      ID of frame.  (This should currently always be "0").
1059 </simpara></listitem></varlistentry>
1060 <varlistentry><term><parameter>r</parameter>&#160;:</term>
1061 <listitem><simpara>       radius of label in points.
1062 </simpara></listitem></varlistentry>
1063 <varlistentry><term><parameter>waste</parameter>&#160;:</term>
1064 <listitem><simpara>   Amount of overprint to allow.
1065 </simpara></listitem></varlistentry>
1066 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> Pointer to newly allocated <link linkend="lglTemplateFrame"><type>lglTemplateFrame</type></link> structure.
1067
1068 </simpara></listitem></varlistentry>
1069 </variablelist></refsect2>
1070 <refsect2 id="lgl-template-frame-cd-new" role="function">
1071 <title>lgl_template_frame_cd_new ()</title>
1072 <indexterm zone="lgl-template-frame-cd-new"><primary sortas="lgl_template_frame_cd_new">lgl_template_frame_cd_new</primary></indexterm><programlisting><link linkend="lglTemplateFrame">lglTemplateFrame</link> *  lgl_template_frame_cd_new           (const <link linkend="gchar">gchar</link> *id,
1073                                                          <link linkend="gdouble">gdouble</link> r1,
1074                                                          <link linkend="gdouble">gdouble</link> r2,
1075                                                          <link linkend="gdouble">gdouble</link> w,
1076                                                          <link linkend="gdouble">gdouble</link> h,
1077                                                          <link linkend="gdouble">gdouble</link> waste);</programlisting>
1078 <para>
1079 This function creates a new template frame for a CD/DVD label.</para>
1080 <para>
1081 </para><variablelist role="params">
1082 <varlistentry><term><parameter>id</parameter>&#160;:</term>
1083 <listitem><simpara>      ID of frame.  (This should currently always be "0").
1084 </simpara></listitem></varlistentry>
1085 <varlistentry><term><parameter>r1</parameter>&#160;:</term>
1086 <listitem><simpara>      outer radius of label in points.
1087 </simpara></listitem></varlistentry>
1088 <varlistentry><term><parameter>r2</parameter>&#160;:</term>
1089 <listitem><simpara>      radius of center hole in points.
1090 </simpara></listitem></varlistentry>
1091 <varlistentry><term><parameter>w</parameter>&#160;:</term>
1092 <listitem><simpara>       clip width of frame in points for business card CDs.  Should be 0 for no clipping.
1093 </simpara></listitem></varlistentry>
1094 <varlistentry><term><parameter>h</parameter>&#160;:</term>
1095 <listitem><simpara>       clip height of frame in points for business card CDs.  Should be 0 for no clipping.
1096 </simpara></listitem></varlistentry>
1097 <varlistentry><term><parameter>waste</parameter>&#160;:</term>
1098 <listitem><simpara>   Amount of overprint to allow.
1099 </simpara></listitem></varlistentry>
1100 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> Pointer to newly allocated <link linkend="lglTemplateFrame"><type>lglTemplateFrame</type></link> structure.
1101
1102 </simpara></listitem></varlistentry>
1103 </variablelist></refsect2>
1104 <refsect2 id="lgl-template-frame-dup" role="function">
1105 <title>lgl_template_frame_dup ()</title>
1106 <indexterm zone="lgl-template-frame-dup"><primary sortas="lgl_template_frame_dup">lgl_template_frame_dup</primary></indexterm><programlisting><link linkend="lglTemplateFrame">lglTemplateFrame</link> *  lgl_template_frame_dup              (const <link linkend="lglTemplateFrame">lglTemplateFrame</link> *orig_frame);</programlisting>
1107 <para>
1108 This function duplicates a template frame structure.</para>
1109 <para>
1110 </para><variablelist role="params">
1111 <varlistentry><term><parameter>orig_frame</parameter>&#160;:</term>
1112 <listitem><simpara> Frame to duplicate.
1113 </simpara></listitem></varlistentry>
1114 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>  a newly allocated <link linkend="lglTemplateFrame"><type>lglTemplateFrame</type></link> structure.
1115
1116 </simpara></listitem></varlistentry>
1117 </variablelist></refsect2>
1118 <refsect2 id="lgl-template-frame-free" role="function">
1119 <title>lgl_template_frame_free ()</title>
1120 <indexterm zone="lgl-template-frame-free"><primary sortas="lgl_template_frame_free">lgl_template_frame_free</primary></indexterm><programlisting><link linkend="void">void</link>                lgl_template_frame_free             (<link linkend="lglTemplateFrame">lglTemplateFrame</link> *frame);</programlisting>
1121 <para>
1122 This function frees all memory associated with given template frame structure.</para>
1123 <para>
1124 </para><variablelist role="params">
1125 <varlistentry><term><parameter>frame</parameter>&#160;:</term>
1126 <listitem><simpara> Frame to free.
1127 </simpara></listitem></varlistentry>
1128 </variablelist></refsect2>
1129 <refsect2 id="lgl-template-frame-add-layout" role="function">
1130 <title>lgl_template_frame_add_layout ()</title>
1131 <indexterm zone="lgl-template-frame-add-layout"><primary sortas="lgl_template_frame_add_layout">lgl_template_frame_add_layout</primary></indexterm><programlisting><link linkend="void">void</link>                lgl_template_frame_add_layout       (<link linkend="lglTemplateFrame">lglTemplateFrame</link> *frame,
1132                                                          <link linkend="lglTemplateLayout">lglTemplateLayout</link> *layout);</programlisting>
1133 <para>
1134 This function adds a layout structure to the given template frame.</para>
1135 <para>
1136 </para><variablelist role="params">
1137 <varlistentry><term><parameter>frame</parameter>&#160;:</term>
1138 <listitem><simpara>  Pointer to template frame to add layout to.
1139 </simpara></listitem></varlistentry>
1140 <varlistentry><term><parameter>layout</parameter>&#160;:</term>
1141 <listitem><simpara> Pointer to layout structure to add to frame.
1142 </simpara></listitem></varlistentry>
1143 </variablelist></refsect2>
1144 <refsect2 id="lgl-template-frame-add-markup" role="function">
1145 <title>lgl_template_frame_add_markup ()</title>
1146 <indexterm zone="lgl-template-frame-add-markup"><primary sortas="lgl_template_frame_add_markup">lgl_template_frame_add_markup</primary></indexterm><programlisting><link linkend="void">void</link>                lgl_template_frame_add_markup       (<link linkend="lglTemplateFrame">lglTemplateFrame</link> *frame,
1147                                                          <link linkend="lglTemplateMarkup">lglTemplateMarkup</link> *markup);</programlisting>
1148 <para>
1149 This function adds a markup structure to the given template frame.</para>
1150 <para>
1151 </para><variablelist role="params">
1152 <varlistentry><term><parameter>frame</parameter>&#160;:</term>
1153 <listitem><simpara>  Pointer to template frame to add markup to.
1154 </simpara></listitem></varlistentry>
1155 <varlistentry><term><parameter>markup</parameter>&#160;:</term>
1156 <listitem><simpara> Pointer to markup structure to add to frame.
1157 </simpara></listitem></varlistentry>
1158 </variablelist></refsect2>
1159 <refsect2 id="lgl-template-frame-get-size" role="function">
1160 <title>lgl_template_frame_get_size ()</title>
1161 <indexterm zone="lgl-template-frame-get-size"><primary sortas="lgl_template_frame_get_size">lgl_template_frame_get_size</primary></indexterm><programlisting><link linkend="void">void</link>                lgl_template_frame_get_size         (const <link linkend="lglTemplateFrame">lglTemplateFrame</link> *frame,
1162                                                          <link linkend="gdouble">gdouble</link> *w,
1163                                                          <link linkend="gdouble">gdouble</link> *h);</programlisting>
1164 <para>
1165 Get size (width and height) of given <link linkend="lglTemplateFrame"><type>lglTemplateFrame</type></link> in points.</para>
1166 <para>
1167 </para><variablelist role="params">
1168 <varlistentry><term><parameter>frame</parameter>&#160;:</term>
1169 <listitem><simpara> <link linkend="lglTemplateFrame"><type>lglTemplateFrame</type></link> structure to query
1170 </simpara></listitem></varlistentry>
1171 <varlistentry><term><parameter>w</parameter>&#160;:</term>
1172 <listitem><simpara> pointer to location to receive width of frame
1173 </simpara></listitem></varlistentry>
1174 <varlistentry><term><parameter>h</parameter>&#160;:</term>
1175 <listitem><simpara> pointer to location to receive height of frame
1176 </simpara></listitem></varlistentry>
1177 </variablelist></refsect2>
1178 <refsect2 id="lgl-template-frame-get-n-labels" role="function">
1179 <title>lgl_template_frame_get_n_labels ()</title>
1180 <indexterm zone="lgl-template-frame-get-n-labels"><primary sortas="lgl_template_frame_get_n_labels">lgl_template_frame_get_n_labels</primary></indexterm><programlisting><link linkend="gint">gint</link>                lgl_template_frame_get_n_labels     (const <link linkend="lglTemplateFrame">lglTemplateFrame</link> *frame);</programlisting>
1181 <para>
1182 Get total number of labels per sheet corresponding to the given frame.</para>
1183 <para>
1184 </para><variablelist role="params">
1185 <varlistentry><term><parameter>frame</parameter>&#160;:</term>
1186 <listitem><simpara> <link linkend="lglTemplateFrame"><type>lglTemplateFrame</type></link> structure to query
1187 </simpara></listitem></varlistentry>
1188 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> number of labels per sheet.
1189
1190 </simpara></listitem></varlistentry>
1191 </variablelist></refsect2>
1192 <refsect2 id="lgl-template-frame-get-origins" role="function">
1193 <title>lgl_template_frame_get_origins ()</title>
1194 <indexterm zone="lgl-template-frame-get-origins"><primary sortas="lgl_template_frame_get_origins">lgl_template_frame_get_origins</primary></indexterm><programlisting><link linkend="lglTemplateOrigin">lglTemplateOrigin</link> * lgl_template_frame_get_origins      (const <link linkend="lglTemplateFrame">lglTemplateFrame</link> *frame);</programlisting>
1195 <para>
1196 Get an array of label origins for the given frame.  These origins represent the
1197 upper left hand corner of each label on a page corresponding to the given frame.
1198 The origins will be ordered geometrically left to right and then top to bottom.
1199 The array should be freed using <link linkend="g-free"><function>g_free()</function></link>.</para>
1200 <para>
1201 </para><variablelist role="params">
1202 <varlistentry><term><parameter>frame</parameter>&#160;:</term>
1203 <listitem><simpara> <link linkend="lglTemplateFrame"><type>lglTemplateFrame</type></link> structure to query
1204 </simpara></listitem></varlistentry>
1205 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> A newly allocated array of <link linkend="lglTemplateOrigin"><type>lglTemplateOrigin</type></link> structures.
1206
1207 </simpara></listitem></varlistentry>
1208 </variablelist></refsect2>
1209 <refsect2 id="lgl-template-layout-new" role="function">
1210 <title>lgl_template_layout_new ()</title>
1211 <indexterm zone="lgl-template-layout-new"><primary sortas="lgl_template_layout_new">lgl_template_layout_new</primary></indexterm><programlisting><link linkend="lglTemplateLayout">lglTemplateLayout</link> * lgl_template_layout_new             (<link linkend="gint">gint</link> nx,
1212                                                          <link linkend="gint">gint</link> ny,
1213                                                          <link linkend="gdouble">gdouble</link> x0,
1214                                                          <link linkend="gdouble">gdouble</link> y0,
1215                                                          <link linkend="gdouble">gdouble</link> dx,
1216                                                          <link linkend="gdouble">gdouble</link> dy);</programlisting>
1217 <para>
1218 This function creates a new layout structure with the given parameters.</para>
1219 <para>
1220 </para><variablelist role="params">
1221 <varlistentry><term><parameter>nx</parameter>&#160;:</term>
1222 <listitem><simpara>  Number of labels across.
1223 </simpara></listitem></varlistentry>
1224 <varlistentry><term><parameter>ny</parameter>&#160;:</term>
1225 <listitem><simpara>  Number of labels down.
1226 </simpara></listitem></varlistentry>
1227 <varlistentry><term><parameter>x0</parameter>&#160;:</term>
1228 <listitem><simpara>  X coordinate of the top-left corner of the top-left label in the layout in points.
1229 </simpara></listitem></varlistentry>
1230 <varlistentry><term><parameter>y0</parameter>&#160;:</term>
1231 <listitem><simpara>  Y coordinate of the top-left corner of the top-left label in the layout in points.
1232 </simpara></listitem></varlistentry>
1233 <varlistentry><term><parameter>dx</parameter>&#160;:</term>
1234 <listitem><simpara>  Horizontal pitch in points.  This is the distance from left-edge to left-edge.
1235 </simpara></listitem></varlistentry>
1236 <varlistentry><term><parameter>dy</parameter>&#160;:</term>
1237 <listitem><simpara>  Vertical pitch in points.  This is the distance from top-edge to top-edge.
1238 </simpara></listitem></varlistentry>
1239 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> a newly allocated <link linkend="lglTemplateLayout"><type>lglTemplateLayout</type></link> structure.
1240
1241 </simpara></listitem></varlistentry>
1242 </variablelist></refsect2>
1243 <refsect2 id="lgl-template-layout-dup" role="function">
1244 <title>lgl_template_layout_dup ()</title>
1245 <indexterm zone="lgl-template-layout-dup"><primary sortas="lgl_template_layout_dup">lgl_template_layout_dup</primary></indexterm><programlisting><link linkend="lglTemplateLayout">lglTemplateLayout</link> * lgl_template_layout_dup             (const <link linkend="lglTemplateLayout">lglTemplateLayout</link> *orig_layout);</programlisting>
1246 <para>
1247 This function duplicates a template layout structure.</para>
1248 <para>
1249 </para><variablelist role="params">
1250 <varlistentry><term><parameter>orig_layout</parameter>&#160;:</term>
1251 <listitem><simpara> Layout to duplicate.
1252 </simpara></listitem></varlistentry>
1253 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>  a newly allocated <link linkend="lglTemplateLayout"><type>lglTemplateLayout</type></link> structure.
1254
1255 </simpara></listitem></varlistentry>
1256 </variablelist></refsect2>
1257 <refsect2 id="lgl-template-layout-free" role="function">
1258 <title>lgl_template_layout_free ()</title>
1259 <indexterm zone="lgl-template-layout-free"><primary sortas="lgl_template_layout_free">lgl_template_layout_free</primary></indexterm><programlisting><link linkend="void">void</link>                lgl_template_layout_free            (<link linkend="lglTemplateLayout">lglTemplateLayout</link> *layout);</programlisting>
1260 <para>
1261 This function frees all memory associated with given template layout structure.</para>
1262 <para>
1263 </para><variablelist role="params">
1264 <varlistentry><term><parameter>layout</parameter>&#160;:</term>
1265 <listitem><simpara> Layout to free.
1266 </simpara></listitem></varlistentry>
1267 </variablelist></refsect2>
1268 <refsect2 id="lgl-template-markup-margin-new" role="function">
1269 <title>lgl_template_markup_margin_new ()</title>
1270 <indexterm zone="lgl-template-markup-margin-new"><primary sortas="lgl_template_markup_margin_new">lgl_template_markup_margin_new</primary></indexterm><programlisting><link linkend="lglTemplateMarkup">lglTemplateMarkup</link> * lgl_template_markup_margin_new      (<link linkend="gdouble">gdouble</link> size);</programlisting>
1271 <para>
1272 This function creates a new margin markup structure.</para>
1273 <para>
1274 </para><variablelist role="params">
1275 <varlistentry><term><parameter>size</parameter>&#160;:</term>
1276 <listitem><simpara> margin size in points.
1277 </simpara></listitem></varlistentry>
1278 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> a newly allocated <link linkend="lglTemplateMarkup"><type>lglTemplateMarkup</type></link> structure.
1279
1280 </simpara></listitem></varlistentry>
1281 </variablelist></refsect2>
1282 <refsect2 id="lgl-template-markup-line-new" role="function">
1283 <title>lgl_template_markup_line_new ()</title>
1284 <indexterm zone="lgl-template-markup-line-new"><primary sortas="lgl_template_markup_line_new">lgl_template_markup_line_new</primary></indexterm><programlisting><link linkend="lglTemplateMarkup">lglTemplateMarkup</link> * lgl_template_markup_line_new        (<link linkend="gdouble">gdouble</link> x1,
1285                                                          <link linkend="gdouble">gdouble</link> y1,
1286                                                          <link linkend="gdouble">gdouble</link> x2,
1287                                                          <link linkend="gdouble">gdouble</link> y2);</programlisting>
1288 <para>
1289 This function creates a new line markup structure.</para>
1290 <para>
1291 </para><variablelist role="params">
1292 <varlistentry><term><parameter>x1</parameter>&#160;:</term>
1293 <listitem><simpara> x coordinate of first endpoint.
1294 </simpara></listitem></varlistentry>
1295 <varlistentry><term><parameter>y1</parameter>&#160;:</term>
1296 <listitem><simpara> y coordinate of first endpoint.
1297 </simpara></listitem></varlistentry>
1298 <varlistentry><term><parameter>x2</parameter>&#160;:</term>
1299 <listitem><simpara> x coordinate of second endpoint.
1300 </simpara></listitem></varlistentry>
1301 <varlistentry><term><parameter>y2</parameter>&#160;:</term>
1302 <listitem><simpara> y coordinate of second endpoint.
1303 </simpara></listitem></varlistentry>
1304 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> a newly allocated <link linkend="lglTemplateMarkup"><type>lglTemplateMarkup</type></link> structure.
1305
1306 </simpara></listitem></varlistentry>
1307 </variablelist></refsect2>
1308 <refsect2 id="lgl-template-markup-circle-new" role="function">
1309 <title>lgl_template_markup_circle_new ()</title>
1310 <indexterm zone="lgl-template-markup-circle-new"><primary sortas="lgl_template_markup_circle_new">lgl_template_markup_circle_new</primary></indexterm><programlisting><link linkend="lglTemplateMarkup">lglTemplateMarkup</link> * lgl_template_markup_circle_new      (<link linkend="gdouble">gdouble</link> x0,
1311                                                          <link linkend="gdouble">gdouble</link> y0,
1312                                                          <link linkend="gdouble">gdouble</link> r);</programlisting>
1313 <para>
1314 This function creates a new circle markup structure.</para>
1315 <para>
1316 </para><variablelist role="params">
1317 <varlistentry><term><parameter>x0</parameter>&#160;:</term>
1318 <listitem><simpara> x coordinate of center of circle.
1319 </simpara></listitem></varlistentry>
1320 <varlistentry><term><parameter>y0</parameter>&#160;:</term>
1321 <listitem><simpara> y coordinate of center of circle.
1322 </simpara></listitem></varlistentry>
1323 <varlistentry><term><parameter>r</parameter>&#160;:</term>
1324 <listitem><simpara>  radius of circle.
1325 </simpara></listitem></varlistentry>
1326 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> a newly allocated <link linkend="lglTemplateMarkup"><type>lglTemplateMarkup</type></link> structure.
1327
1328 </simpara></listitem></varlistentry>
1329 </variablelist></refsect2>
1330 <refsect2 id="lgl-template-markup-rect-new" role="function">
1331 <title>lgl_template_markup_rect_new ()</title>
1332 <indexterm zone="lgl-template-markup-rect-new"><primary sortas="lgl_template_markup_rect_new">lgl_template_markup_rect_new</primary></indexterm><programlisting><link linkend="lglTemplateMarkup">lglTemplateMarkup</link> * lgl_template_markup_rect_new        (<link linkend="gdouble">gdouble</link> x1,
1333                                                          <link linkend="gdouble">gdouble</link> y1,
1334                                                          <link linkend="gdouble">gdouble</link> w,
1335                                                          <link linkend="gdouble">gdouble</link> h,
1336                                                          <link linkend="gdouble">gdouble</link> r);</programlisting>
1337 <para>
1338 This function creates a new rectangle markup structure.</para>
1339 <para>
1340 </para><variablelist role="params">
1341 <varlistentry><term><parameter>x1</parameter>&#160;:</term>
1342 <listitem><simpara> x coordinate of top-left corner of rectangle.
1343 </simpara></listitem></varlistentry>
1344 <varlistentry><term><parameter>y1</parameter>&#160;:</term>
1345 <listitem><simpara> y coordinate of top-left corner of rectangle.
1346 </simpara></listitem></varlistentry>
1347 <varlistentry><term><parameter>w</parameter>&#160;:</term>
1348 <listitem><simpara>  width of rectangle.
1349 </simpara></listitem></varlistentry>
1350 <varlistentry><term><parameter>h</parameter>&#160;:</term>
1351 <listitem><simpara>  height of rectangle.
1352 </simpara></listitem></varlistentry>
1353 <varlistentry><term><parameter>r</parameter>&#160;:</term>
1354 <listitem><simpara>  radius of rounded corner.
1355 </simpara></listitem></varlistentry>
1356 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> a newly allocated <link linkend="lglTemplateMarkup"><type>lglTemplateMarkup</type></link> structure.
1357
1358 </simpara></listitem></varlistentry>
1359 </variablelist></refsect2>
1360 <refsect2 id="lgl-template-markup-dup" role="function">
1361 <title>lgl_template_markup_dup ()</title>
1362 <indexterm zone="lgl-template-markup-dup"><primary sortas="lgl_template_markup_dup">lgl_template_markup_dup</primary></indexterm><programlisting><link linkend="lglTemplateMarkup">lglTemplateMarkup</link> * lgl_template_markup_dup             (const <link linkend="lglTemplateMarkup">lglTemplateMarkup</link> *orig_markup);</programlisting>
1363 <para>
1364 This function duplicates a template markup structure.</para>
1365 <para>
1366 </para><variablelist role="params">
1367 <varlistentry><term><parameter>orig_markup</parameter>&#160;:</term>
1368 <listitem><simpara> Markup to duplicate.
1369 </simpara></listitem></varlistentry>
1370 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>  a newly allocated <link linkend="lglTemplateMarkup"><type>lglTemplateMarkup</type></link> structure.
1371
1372 </simpara></listitem></varlistentry>
1373 </variablelist></refsect2>
1374 <refsect2 id="lgl-template-markup-free" role="function">
1375 <title>lgl_template_markup_free ()</title>
1376 <indexterm zone="lgl-template-markup-free"><primary sortas="lgl_template_markup_free">lgl_template_markup_free</primary></indexterm><programlisting><link linkend="void">void</link>                lgl_template_markup_free            (<link linkend="lglTemplateMarkup">lglTemplateMarkup</link> *markup);</programlisting>
1377 <para>
1378 This function frees all memory associated with given template markup structure.</para>
1379 <para>
1380 </para><variablelist role="params">
1381 <varlistentry><term><parameter>markup</parameter>&#160;:</term>
1382 <listitem><simpara> Markup to free.
1383 </simpara></listitem></varlistentry>
1384 </variablelist></refsect2>
1385
1386 </refsect1>
1387
1388
1389
1390
1391 </refentry>