]> git.sur5r.net Git - glabels/blob - glabels2/libglabels/paper.h
2007-09-27 Jim Evins <evins@snaught.com>
[glabels] / glabels2 / libglabels / paper.h
1 /*
2  *  (LIBGLABELS) Template library for GLABELS
3  *
4  *  paper.h:  paper module header file
5  *
6  *  Copyright (C) 2003, 2004  Jim Evins <evins@snaught.com>.
7  *
8  *  This file is part of the LIBGLABELS library.
9  *
10  *  This library is free software; you can redistribute it and/or
11  *  modify it under the terms of the GNU Library General Public
12  *  License as published by the Free Software Foundation; either
13  *  version 2 of the License, or (at your option) any later version.
14  *
15  *  This library is distributed in the hope that it will be useful,
16  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
17  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
18  *  Library General Public License for more details.
19  *
20  *  You should have received a copy of the GNU Library General Public
21  *  License along with this library; if not, write to the Free
22  *  Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
23  *  MA 02111-1307, USA
24  */
25
26 #ifndef __PAPER_H__
27 #define __PAPER_H__
28
29 #include <glib/gtypes.h>
30 #include <glib/glist.h>
31
32 G_BEGIN_DECLS
33
34
35 /*
36  *   lglPaper structure
37  */
38 typedef struct _lglPaper lglPaper;
39
40 struct _lglPaper {
41         gchar               *id;     /* Unique ID of paper definition */
42         gchar               *name;   /* Localized name of paper */
43         gdouble              width;  /* Width (in points) */
44         gdouble              height; /* Height (in points) */
45 };
46
47
48 /*
49  * Module initialization
50  */
51 void                 lgl_paper_init                (void);
52
53
54 /*
55  * Paper construction
56  */
57 lglPaper            *lgl_paper_new                 (gchar           *id,
58                                                     gchar           *name,
59                                                     gdouble          width,
60                                                     gdouble          height);
61
62 lglPaper             *lgl_paper_dup                (const lglPaper   *orig);
63
64 void                 lgl_paper_free                (lglPaper         *paper);
65
66
67 /*
68  * ID lists
69  */
70 GList               *lgl_paper_get_id_list         (void);
71 void                 lgl_paper_free_id_list        (GList           *ids);
72
73
74 /*
75  * Name lists
76  */
77 GList               *lgl_paper_get_name_list       (void);
78 void                 lgl_paper_free_name_list      (GList           *names);
79
80
81 /*
82  * Query functions
83  */
84 gboolean             lgl_paper_is_id_known         (const gchar     *id);
85 gboolean             lgl_paper_is_id_other         (const gchar     *id);
86
87 lglPaper            *lgl_paper_from_id             (const gchar     *id);
88 lglPaper            *lgl_paper_from_name           (const gchar     *name);
89
90 gchar               *lgl_paper_lookup_id_from_name (const gchar     *name);
91 gchar               *lgl_paper_lookup_name_from_id (const gchar     *id);
92
93
94 /*
95  * Debugging
96  */
97 void                 lgl_paper_print_known_papers  (void);
98
99
100 G_END_DECLS
101
102 #endif