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/>.
27 #include <libglabels/libglabels.h>
30 #include "pixbuf-cache.h"
31 #include "svg-cache.h"
42 #define GL_TYPE_LABEL (gl_label_get_type ())
43 #define GL_LABEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GL_TYPE_LABEL, glLabel))
44 #define GL_LABEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GL_TYPE_LABEL, glLabelClass))
45 #define GL_IS_LABEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GL_TYPE_LABEL))
46 #define GL_IS_LABEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GL_TYPE_LABEL))
48 typedef struct _glLabel glLabel;
49 typedef struct _glLabelClass glLabelClass;
51 typedef struct _glLabelPrivate glLabelPrivate;
53 #include "label-object.h"
60 struct _glLabelClass {
61 GObjectClass parent_class;
63 void (*selection_changed) (glLabel *view,
66 void (*changed) (glLabel *label,
69 void (*name_changed) (glLabel *label,
72 void (*modified_changed) (glLabel *label,
75 void (*merge_changed) (glLabel *label,
78 void (*size_changed) (glLabel *label,
83 GType gl_label_get_type (void) G_GNUC_CONST;
85 GObject *gl_label_new (void);
88 void gl_label_set_filename (glLabel *label,
89 const gchar *filename);
91 gchar *gl_label_get_filename (glLabel *label);
93 gchar *gl_label_get_short_name (glLabel *label);
95 gboolean gl_label_is_untitled (glLabel *label);
98 void gl_label_set_compression (glLabel *label,
101 gint gl_label_get_compression (glLabel *label);
104 void gl_label_set_modified (glLabel *label);
106 void gl_label_clear_modified (glLabel *label);
108 gboolean gl_label_is_modified (glLabel *label);
111 void gl_label_set_template (glLabel *label,
112 const lglTemplate *template,
113 gboolean checkpoint);
115 const lglTemplate *gl_label_get_template (glLabel *label);
117 void gl_label_set_rotate_flag (glLabel *label,
118 gboolean rotate_flag,
119 gboolean checkpoint);
121 gboolean gl_label_get_rotate_flag (glLabel *label);
123 void gl_label_get_size (glLabel *label,
127 gchar *gl_label_get_dimensions_string (glLabel *label);
129 void gl_label_set_merge (glLabel *label,
131 gboolean checkpoint);
133 glMerge *gl_label_get_merge (glLabel *label);
135 GHashTable *gl_label_get_pixbuf_cache (glLabel *label);
138 GHashTable *gl_label_get_svg_cache (glLabel *label);
141 void gl_label_add_object (glLabel *label,
142 glLabelObject *object);
145 void gl_label_delete_object (glLabel *label,
146 glLabelObject *object);
148 const GList *gl_label_get_object_list (glLabel *label);
153 * Modify selection methods
155 void gl_label_select_object (glLabel *label,
156 glLabelObject *object);
158 void gl_label_unselect_object (glLabel *label,
159 glLabelObject *object);
161 void gl_label_select_all (glLabel *label);
163 void gl_label_unselect_all (glLabel *label);
165 void gl_label_select_region (glLabel *label,
166 glLabelRegion *region);
170 * Selection query methods
172 gboolean gl_label_is_selection_empty (glLabel *label);
174 gboolean gl_label_is_selection_atomic (glLabel *label);
176 glLabelObject *gl_label_get_1st_selected_object (glLabel *label);
178 GList *gl_label_get_selection_list (glLabel *label);
180 gboolean gl_label_can_selection_text (glLabel *label);
182 gboolean gl_label_can_selection_fill (glLabel *label);
184 gboolean gl_label_can_selection_line_color(glLabel *label);
186 gboolean gl_label_can_selection_line_width(glLabel *label);
190 * Perform operations on selections
192 void gl_label_delete_selection (glLabel *label);
194 void gl_label_raise_selection_to_top (glLabel *label);
196 void gl_label_lower_selection_to_bottom (glLabel *label);
198 void gl_label_rotate_selection (glLabel *label,
201 void gl_label_rotate_selection_left (glLabel *label);
203 void gl_label_rotate_selection_right (glLabel *label);
205 void gl_label_flip_selection_horiz (glLabel *label);
207 void gl_label_flip_selection_vert (glLabel *label);
209 void gl_label_align_selection_left (glLabel *label);
211 void gl_label_align_selection_right (glLabel *label);
213 void gl_label_align_selection_hcenter (glLabel *label);
215 void gl_label_align_selection_top (glLabel *label);
217 void gl_label_align_selection_bottom (glLabel *label);
219 void gl_label_align_selection_vcenter (glLabel *label);
221 void gl_label_center_selection_horiz (glLabel *label);
223 void gl_label_center_selection_vert (glLabel *label);
225 void gl_label_move_selection (glLabel *label,
229 void gl_label_set_selection_font_family(glLabel *label,
230 const gchar *font_family);
232 void gl_label_set_selection_font_size (glLabel *label,
235 void gl_label_set_selection_font_weight(glLabel *label,
236 PangoWeight font_weight);
238 void gl_label_set_selection_font_italic_flag (glLabel *label,
239 gboolean font_italic_flag);
241 void gl_label_set_selection_text_alignment (glLabel *label,
242 PangoAlignment text_alignment);
244 void gl_label_set_selection_text_valignment (glLabel *label,
245 glValignment text_valignment);
247 void gl_label_set_selection_text_line_spacing (glLabel *label,
248 gdouble text_line_spacing);
250 void gl_label_set_selection_text_color (glLabel *label,
251 glColorNode *text_color_node);
253 void gl_label_set_selection_fill_color (glLabel *label,
254 glColorNode *fill_color_node);
256 void gl_label_set_selection_line_color (glLabel *label,
257 glColorNode *line_color_node);
259 void gl_label_set_selection_line_width (glLabel *label,
264 * Clipboard operations
266 void gl_label_cut_selection (glLabel *label);
268 void gl_label_copy_selection (glLabel *label);
270 void gl_label_paste (glLabel *label);
272 gboolean gl_label_can_paste (glLabel *label);
276 * Set/get current default values.
278 void gl_label_set_default_font_family (glLabel *label,
279 const gchar *font_family);
281 void gl_label_set_default_font_size (glLabel *label,
284 void gl_label_set_default_font_weight (glLabel *label,
285 PangoWeight font_weight);
287 void gl_label_set_default_font_italic_flag (glLabel *label,
288 gboolean font_italic_flag);
290 void gl_label_set_default_text_color (glLabel *label,
293 void gl_label_set_default_text_alignment (glLabel *label,
294 PangoAlignment text_alignment);
296 void gl_label_set_default_text_valignment (glLabel *label,
297 glValignment text_valignment);
299 void gl_label_set_default_line_width (glLabel *label,
302 void gl_label_set_default_line_color (glLabel *label,
305 void gl_label_set_default_fill_color (glLabel *label,
308 void gl_label_set_default_text_line_spacing(glLabel *label,
309 gdouble text_line_spacing);
311 gchar *gl_label_get_default_font_family (glLabel *label);
313 gdouble gl_label_get_default_font_size (glLabel *label);
315 PangoWeight gl_label_get_default_font_weight (glLabel *label);
317 gboolean gl_label_get_default_font_italic_flag (glLabel *label);
319 guint gl_label_get_default_text_color (glLabel *label);
321 PangoAlignment gl_label_get_default_text_alignment (glLabel *label);
323 glValignment gl_label_get_default_text_valignment (glLabel *label);
325 gdouble gl_label_get_default_text_line_spacing(glLabel *label);
327 gdouble gl_label_get_default_line_width (glLabel *label);
329 guint gl_label_get_default_line_color (glLabel *label);
331 guint gl_label_get_default_fill_color (glLabel *view);
337 void gl_label_draw (glLabel *label,
339 gboolean screen_flag,
340 glMergeRecord *record);
342 glLabelObject *gl_label_object_at (glLabel *label,
347 glLabelObject *gl_label_get_handle_at (glLabel *label,
351 glLabelObjectHandle *handle);
357 void gl_label_checkpoint (glLabel *label,
358 const gchar *description);
360 gboolean gl_label_can_undo (glLabel *label);
361 gboolean gl_label_can_redo (glLabel *label);
363 gchar *gl_label_get_undo_description (glLabel *label);
364 gchar *gl_label_get_redo_description (glLabel *label);
366 void gl_label_undo (glLabel *label);
367 void gl_label_redo (glLabel *label);
373 #endif /* __LABEL_H__ */
379 * Local Variables: -- emacs
381 * c-basic-offset: 8 -- emacs
382 * tab-width: 8 -- emacs
383 * indent-tabs-mode: nil -- emacs