]> git.sur5r.net Git - glabels/blob - glabels2/src/label.h
Initial revision
[glabels] / glabels2 / src / label.h
1 /*
2  *  (GLABELS) Label and Business Card Creation program for GNOME
3  *
4  *  label.h:  GLabels label module header file
5  *
6  *  Copyright (C) 2001-2002  Jim Evins <evins@snaught.com>.
7  *
8  *  This program is free software; you can redistribute it and/or modify
9  *  it under the terms of the GNU General Public License as published by
10  *  the Free Software Foundation; either version 2 of the License, or
11  *  (at your option) any later version.
12  *
13  *  This program is distributed in the hope that it will be useful,
14  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
15  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  *  GNU General Public License for more details.
17  *
18  *  You should have received a copy of the GNU General Public License
19  *  along with this program; if not, write to the Free Software
20  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
21  */
22 #ifndef __LABEL_H__
23 #define __LABEL_H__
24
25 #include <glib-object.h>
26
27 #include "merge.h"
28 #include "template.h"
29
30 G_BEGIN_DECLS
31
32 #define GL_TYPE_LABEL            (gl_label_get_type ())
33 #define GL_LABEL(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GL_TYPE_LABEL, glLabel))
34 #define GL_LABEL_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GL_TYPE_LABEL, glLabelClass))
35 #define GL_IS_LABEL(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GL_TYPE_LABEL))
36 #define GL_IS_LABEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GL_TYPE_LABEL))
37
38 typedef struct _glLabel          glLabel;
39 typedef struct _glLabelClass     glLabelClass;
40
41 typedef struct _glLabelPrivate   glLabelPrivate;
42
43 #include "label-object.h"
44 struct _glLabel {
45         GObject         object;
46
47         GList          *objects;
48
49         glLabelPrivate *private;
50 };
51
52 struct _glLabelClass {
53         GObjectClass         parent_class;
54
55         void (*changed) (glLabel *label, gpointer user_data);
56
57         void (*name_changed) (glLabel *label, gpointer user_data);
58
59         void (*modified_changed) (glLabel *label, gpointer user_data);
60
61 };
62
63
64 extern GType         gl_label_get_type          (void);
65
66 extern GObject      *gl_label_new               (void);
67
68 extern void          gl_label_add_object      (glLabel *label,
69                                                glLabelObject *object);
70 extern void          gl_label_remove_object   (glLabel *label,
71                                                glLabelObject *object);
72 extern void          gl_label_raise_object_to_top (glLabel *label,
73                                                      glLabelObject * object);
74 extern void          gl_label_lower_object_to_bottom  (glLabel *label,
75                                                        glLabelObject * object);
76
77 extern void          gl_label_set_template      (glLabel * label,
78                                                  glTemplate *template);
79
80 extern void          gl_label_set_rotate_flag   (glLabel * label,
81                                                  gboolean rotate_flag);
82
83 extern glTemplate   *gl_label_get_template      (glLabel * label);
84 extern gboolean      gl_label_get_rotate_flag   (glLabel * label);
85 extern void          gl_label_get_size          (glLabel * label,
86                                                  gdouble *w,
87                                                  gdouble *h);
88
89 extern void          gl_label_set_merge         (glLabel * label,
90                                                  glMerge * merge);
91 extern glMerge      *gl_label_get_merge         (glLabel * label);
92
93 extern gchar        *gl_label_get_filename      (glLabel * label);
94 extern gchar        *gl_label_get_short_name    (glLabel * label);
95 extern gboolean      gl_label_is_modified       (glLabel * label);
96 extern gboolean      gl_label_is_untitled       (glLabel * label);
97 extern gboolean      gl_label_can_undo          (glLabel * label);
98 extern gboolean      gl_label_can_redo          (glLabel * label);
99
100 extern void          gl_label_set_filename      (glLabel *label,
101                                                  const gchar *filename);
102 extern void          gl_label_clear_modified    (glLabel *label);
103
104 G_END_DECLS
105
106
107 #endif /* __LABEL_H__ */