3 * Copyright (C) 2001-2009 Jim Evins <evins@snaught.com>.
5 * This file is part of gLabels.
7 * gLabels is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
12 * gLabels is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with gLabels. If not, see <http://www.gnu.org/licenses/>.
24 #include <glib-object.h>
27 #include <libglabels/libglabels.h>
29 #include "pixbuf-cache.h"
40 #define GL_TYPE_LABEL (gl_label_get_type ())
41 #define GL_LABEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GL_TYPE_LABEL, glLabel))
42 #define GL_LABEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GL_TYPE_LABEL, glLabelClass))
43 #define GL_IS_LABEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GL_TYPE_LABEL))
44 #define GL_IS_LABEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GL_TYPE_LABEL))
46 typedef struct _glLabel glLabel;
47 typedef struct _glLabelClass glLabelClass;
49 typedef struct _glLabelPrivate glLabelPrivate;
51 #include "label-object.h"
55 lglTemplate *template;
63 struct _glLabelClass {
64 GObjectClass parent_class;
66 void (*changed) (glLabel *label, gpointer user_data);
68 void (*name_changed) (glLabel *label, gpointer user_data);
70 void (*modified_changed) (glLabel *label, gpointer user_data);
72 void (*merge_changed) (glLabel *label, gpointer user_data);
74 void (*size_changed) (glLabel *label, gpointer user_data);
76 void (*object_added) (glLabel *label,
77 glLabelObject *object,
83 GType gl_label_get_type (void) G_GNUC_CONST;
85 GObject *gl_label_new (void);
88 void gl_label_add_object (glLabel *label,
89 glLabelObject *object);
91 void gl_label_remove_object (glLabel *label,
92 glLabelObject *object);
94 void gl_label_raise_object_to_top (glLabel *label,
95 glLabelObject *object);
97 void gl_label_lower_object_to_bottom (glLabel *label,
98 glLabelObject *object);
101 void gl_label_set_template (glLabel *label,
102 lglTemplate *template);
104 void gl_label_set_rotate_flag (glLabel *label,
105 gboolean rotate_flag);
107 void gl_label_get_size (glLabel *label,
112 void gl_label_set_merge (glLabel *label,
115 glMerge *gl_label_get_merge (glLabel *label);
118 gchar *gl_label_get_filename (glLabel *label);
120 gchar *gl_label_get_short_name (glLabel *label);
122 GHashTable *gl_label_get_pixbuf_cache (glLabel *label);
124 gboolean gl_label_is_modified (glLabel *label);
126 gboolean gl_label_is_untitled (glLabel *label);
128 gboolean gl_label_can_undo (glLabel *label);
130 gboolean gl_label_can_redo (glLabel *label);
133 void gl_label_set_filename (glLabel *label,
134 const gchar *filename);
136 void gl_label_clear_modified (glLabel *label);
138 void gl_label_set_compression (glLabel *label,
141 gint gl_label_get_compression (glLabel *label);
143 void gl_label_draw (glLabel *label,
145 gboolean screen_flag,
146 glMergeRecord *record);
151 #endif /* __LABEL_H__ */
157 * Local Variables: -- emacs
159 * c-basic-offset: 8 -- emacs
160 * tab-width: 8 -- emacs
161 * indent-tabs-mode: nil -- emacs