1 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
4 * (GLABELS) Label and Business Card Creation program for GNOME
6 * label.h: GLabels label module header file
8 * Copyright (C) 2001-2007 Jim Evins <evins@snaught.com>.
10 * This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License as published by
12 * the Free Software Foundation; either version 2 of the License, or
13 * (at your option) any later version.
15 * This program 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
18 * GNU General Public License for more details.
20 * You should have received a copy of the GNU General Public License
21 * along with this program; if not, write to the Free Software
22 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
27 #include <glib-object.h>
29 #include <libglabels/template.h>
31 #include "pixbuf-cache.h"
43 #define GL_TYPE_LABEL (gl_label_get_type ())
44 #define GL_LABEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GL_TYPE_LABEL, glLabel))
45 #define GL_LABEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GL_TYPE_LABEL, glLabelClass))
46 #define GL_IS_LABEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GL_TYPE_LABEL))
47 #define GL_IS_LABEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GL_TYPE_LABEL))
49 typedef struct _glLabel glLabel;
50 typedef struct _glLabelClass glLabelClass;
52 typedef struct _glLabelPrivate glLabelPrivate;
54 #include "label-object.h"
66 struct _glLabelClass {
67 GObjectClass parent_class;
69 void (*changed) (glLabel *label, gpointer user_data);
71 void (*name_changed) (glLabel *label, gpointer user_data);
73 void (*modified_changed) (glLabel *label, gpointer user_data);
75 void (*merge_changed) (glLabel *label, gpointer user_data);
77 void (*size_changed) (glLabel *label, gpointer user_data);
79 void (*object_added) (glLabel *label,
80 glLabelObject *object,
86 GType gl_label_get_type (void) G_GNUC_CONST;
88 GObject *gl_label_new (void);
91 void gl_label_add_object (glLabel *label,
92 glLabelObject *object);
94 void gl_label_remove_object (glLabel *label,
95 glLabelObject *object);
97 void gl_label_raise_object_to_top (glLabel *label,
98 glLabelObject *object);
100 void gl_label_lower_object_to_bottom (glLabel *label,
101 glLabelObject *object);
104 void gl_label_set_template (glLabel *label,
105 glTemplate *template);
107 void gl_label_set_rotate_flag (glLabel *label,
108 gboolean rotate_flag);
110 void gl_label_get_size (glLabel *label,
115 void gl_label_set_merge (glLabel *label,
118 glMerge *gl_label_get_merge (glLabel *label);
121 gchar *gl_label_get_filename (glLabel *label);
123 gchar *gl_label_get_short_name (glLabel *label);
125 GHashTable *gl_label_get_pixbuf_cache (glLabel *label);
127 gboolean gl_label_is_modified (glLabel *label);
129 gboolean gl_label_is_untitled (glLabel *label);
131 gboolean gl_label_can_undo (glLabel *label);
133 gboolean gl_label_can_redo (glLabel *label);
136 void gl_label_set_filename (glLabel *label,
137 const gchar *filename);
139 void gl_label_clear_modified (glLabel *label);
141 void gl_label_set_compression (glLabel *label,
144 gint gl_label_get_compression (glLabel *label);
146 void gl_label_draw (glLabel *label,
148 gboolean screen_flag,
149 glMergeRecord *record);
154 #endif /* __LABEL_H__ */