]> git.sur5r.net Git - glabels/blob - glabels2/src/label-object.h
Initial revision
[glabels] / glabels2 / src / label-object.h
1 /*
2  *  (GLABELS) Label and Business Card Creation program for GNOME
3  *
4  *  label_object.h:  GLabels label object base class
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
23 #ifndef __LABEL_OBJECT_H__
24 #define __LABEL_OBJECT_H__
25
26 #include <glib-object.h>
27
28
29 G_BEGIN_DECLS
30
31 typedef enum {
32         GL_LABEL_OBJECT_TEXT,
33         GL_LABEL_OBJECT_BOX,
34         GL_LABEL_OBJECT_LINE,
35         GL_LABEL_OBJECT_ELLIPSE,
36         GL_LABEL_OBJECT_IMAGE,
37         GL_LABEL_OBJECT_BARCODE,
38         GL_LABEL_OBJECT_N_TYPES
39 } glLabelObjectType;
40
41
42 #define GL_TYPE_LABEL_OBJECT            (gl_label_object_get_type ())
43 #define GL_LABEL_OBJECT(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GL_TYPE_LABEL_OBJECT, glLabelObject))
44 #define GL_LABEL_OBJECT_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GL_TYPE_LABEL_OBJECT, glLabelObjectClass))
45 #define GL_IS_LABEL_OBJECT(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GL_TYPE_LABEL_OBJECT))
46 #define GL_IS_LABEL_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GL_TYPE_LABEL_OBJECT))
47
48 typedef struct _glLabelObject          glLabelObject;
49 typedef struct _glLabelObjectClass     glLabelObjectClass;
50
51 typedef struct _glLabelObjectPrivate   glLabelObjectPrivate;
52
53 #include "label.h"
54
55 struct _glLabelObject {
56         GObject              object;
57
58         glLabel              *parent;
59
60         glLabelObjectPrivate *private;
61 };
62
63 struct _glLabelObjectClass {
64         GObjectClass         parent_class;
65
66         void (*changed) (glLabelObject *object, gpointer user_data);
67
68         void (*moved) (glLabelObject *object,
69                        gdouble dx, gdouble dy, gpointer user_data);
70
71         void (*top) (glLabelObject *object, gpointer user_data);
72         void (*bottom) (glLabelObject *object, gpointer user_data);
73 };
74
75 extern GType     gl_label_object_get_type     (void);
76
77 extern GObject  *gl_label_object_new          (glLabel *label);
78
79 extern void      gl_label_object_emit_changed (glLabelObject *object);
80
81 extern void      gl_label_object_set_parent   (glLabelObject *object,
82                                                glLabel *label);
83 extern glLabel  *gl_label_object_get_parent   (glLabelObject *object);
84
85 extern void      gl_label_object_set_name     (glLabelObject *object,
86                                                gchar *name);
87 extern gchar    *gl_label_object_get_name     (glLabelObject *object);
88
89 extern void      gl_label_object_set_position (glLabelObject *object,
90                                                gdouble x, gdouble y);
91 extern void      gl_label_object_set_position_relative (glLabelObject *object,
92                                                         gdouble dx,
93                                                         gdouble dy);
94 extern void      gl_label_object_get_position (glLabelObject *object,
95                                                gdouble *x, gdouble *y);
96 extern void      gl_label_object_set_size (glLabelObject *object,
97                                            gdouble w, gdouble h);
98 extern void      gl_label_object_get_size (glLabelObject *object,
99                                            gdouble *w, gdouble *h);
100
101 extern void          gl_label_object_raise_to_top    (glLabelObject * object);
102 extern void          gl_label_object_lower_to_bottom (glLabelObject * object);
103
104 G_END_DECLS
105
106 #endif /* __LABEL_OBJECT_H__ */