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_object.h: GLabels label object base class
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
25 #ifndef __LABEL_OBJECT_H__
26 #define __LABEL_OBJECT_H__
28 #include <glib-object.h>
29 #include <pango/pango.h>
38 GL_LABEL_OBJECT_ELLIPSE,
39 GL_LABEL_OBJECT_IMAGE,
40 GL_LABEL_OBJECT_BARCODE,
41 GL_LABEL_OBJECT_N_TYPES
45 #define GL_TYPE_LABEL_OBJECT (gl_label_object_get_type ())
46 #define GL_LABEL_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GL_TYPE_LABEL_OBJECT, glLabelObject))
47 #define GL_LABEL_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GL_TYPE_LABEL_OBJECT, glLabelObjectClass))
48 #define GL_IS_LABEL_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GL_TYPE_LABEL_OBJECT))
49 #define GL_IS_LABEL_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GL_TYPE_LABEL_OBJECT))
50 #define GL_LABEL_OBJECT_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), GL_TYPE_LABEL_OBJECT, glLabelObjectClass))
53 typedef struct _glLabelObject glLabelObject;
54 typedef struct _glLabelObjectClass glLabelObjectClass;
56 typedef struct _glLabelObjectPrivate glLabelObjectPrivate;
61 struct _glLabelObject {
66 glLabelObjectPrivate *priv;
69 struct _glLabelObjectClass {
70 GObjectClass parent_class;
76 void (*set_size) (glLabelObject *object,
80 void (*get_size) (glLabelObject *object,
84 void (*set_font_family) (glLabelObject *object,
85 const gchar *font_family);
87 void (*set_font_size) (glLabelObject *object,
90 void (*set_font_weight) (glLabelObject *object,
91 PangoWeight font_weight);
93 void (*set_font_italic_flag) (glLabelObject *object,
94 gboolean font_italic_flag);
96 void (*set_text_alignment) (glLabelObject *object,
97 PangoAlignment text_alignment);
99 void (*set_text_line_spacing) (glLabelObject *object,
100 gdouble text_line_spacing);
102 void (*set_text_color) (glLabelObject *object,
103 glColorNode *text_color_node);
105 void (*set_fill_color) (glLabelObject *object,
106 glColorNode *fill_color_node);
108 void (*set_line_color) (glLabelObject *object,
109 glColorNode *line_color_node);
111 void (*set_line_width) (glLabelObject *object,
114 gchar *(*get_font_family) (glLabelObject *object);
116 gdouble (*get_font_size) (glLabelObject *object);
118 PangoWeight (*get_font_weight) (glLabelObject *object);
120 gboolean (*get_font_italic_flag) (glLabelObject *object);
122 PangoAlignment (*get_text_alignment) (glLabelObject *object);
124 gdouble (*get_text_line_spacing) (glLabelObject *object);
126 glColorNode* (*get_text_color) (glLabelObject *object);
128 glColorNode* (*get_fill_color) (glLabelObject *object);
130 glColorNode* (*get_line_color) (glLabelObject *object);
132 gdouble (*get_line_width) (glLabelObject *object);
134 void (*copy) (glLabelObject *dst_object,
135 glLabelObject *src_object);
140 void (*draw_shadow) (glLabelObject *object,
142 gboolean screen_flag,
143 glMergeRecord *record);
145 void (*draw_object) (glLabelObject *object,
147 gboolean screen_flag,
148 glMergeRecord *record);
154 void (*changed) (glLabelObject *object,
157 void (*moved) (glLabelObject *object,
162 void (*flip_rotate) (glLabelObject *object,
165 void (*top) (glLabelObject *object,
168 void (*bottom) (glLabelObject *object,
171 void (*removed) (glLabelObject *object,
176 GType gl_label_object_get_type (void) G_GNUC_CONST;
178 GObject *gl_label_object_new (glLabel *label);
181 glLabelObject *gl_label_object_dup (glLabelObject *src_object,
184 void gl_label_object_emit_changed (glLabelObject *object);
187 void gl_label_object_set_parent (glLabelObject *object,
190 glLabel *gl_label_object_get_parent (glLabelObject *object);
193 void gl_label_object_remove (glLabelObject *object);
195 void gl_label_object_set_name (glLabelObject *object,
198 gchar *gl_label_object_get_name (glLabelObject *object);
201 void gl_label_object_set_position (glLabelObject *object,
205 void gl_label_object_set_position_relative (glLabelObject *object,
209 void gl_label_object_get_position (glLabelObject *object,
213 void gl_label_object_set_size (glLabelObject *object,
217 void gl_label_object_set_size_honor_aspect (glLabelObject *object,
221 void gl_label_object_get_size (glLabelObject *object,
225 void gl_label_object_get_raw_size (glLabelObject *object,
229 void gl_label_object_get_extent (glLabelObject *object,
230 glLabelRegion *region);
232 gboolean gl_label_object_can_text (glLabelObject *object);
234 void gl_label_object_set_font_family (glLabelObject *object,
235 const gchar *font_family);
237 void gl_label_object_set_font_size (glLabelObject *object,
240 void gl_label_object_set_font_weight (glLabelObject *object,
241 PangoWeight font_weight);
243 void gl_label_object_set_font_italic_flag (glLabelObject *object,
244 gboolean font_italic_flag);
246 void gl_label_object_set_text_alignment (glLabelObject *object,
247 PangoAlignment text_alignment);
249 void gl_label_object_set_text_color (glLabelObject *object,
250 glColorNode *text_color_node);
252 void gl_label_object_set_text_line_spacing (glLabelObject *object,
253 gdouble text_line_spacing);
256 gchar *gl_label_object_get_font_family (glLabelObject *object);
258 gdouble gl_label_object_get_font_size (glLabelObject *object);
260 PangoWeight gl_label_object_get_font_weight (glLabelObject *object);
262 gboolean gl_label_object_get_font_italic_flag (glLabelObject *object);
264 PangoAlignment gl_label_object_get_text_alignment (glLabelObject *object);
266 gdouble gl_label_object_get_text_line_spacing (glLabelObject *object);
268 glColorNode *gl_label_object_get_text_color (glLabelObject *object);
271 gboolean gl_label_object_can_fill (glLabelObject *object);
273 void gl_label_object_set_fill_color (glLabelObject *object,
274 glColorNode *fill_color_node);
276 glColorNode* gl_label_object_get_fill_color (glLabelObject *object);
279 gboolean gl_label_object_can_line_color (glLabelObject *object);
281 void gl_label_object_set_line_color (glLabelObject *object,
282 glColorNode *line_color_node);
284 glColorNode *gl_label_object_get_line_color (glLabelObject *object);
286 gboolean gl_label_object_can_line_width (glLabelObject *object);
288 void gl_label_object_set_line_width (glLabelObject *object,
291 gdouble gl_label_object_get_line_width (glLabelObject *object);
294 void gl_label_object_raise_to_top (glLabelObject *object);
296 void gl_label_object_lower_to_bottom (glLabelObject *object);
299 void gl_label_object_flip_horiz (glLabelObject *object);
301 void gl_label_object_flip_vert (glLabelObject *object);
303 void gl_label_object_rotate (glLabelObject *object,
306 void gl_label_object_set_matrix (glLabelObject *object,
307 cairo_matrix_t *matrix);
309 void gl_label_object_get_matrix (glLabelObject *object,
310 cairo_matrix_t *matrix);
312 void gl_label_object_set_shadow_state (glLabelObject *object,
315 void gl_label_object_set_shadow_offset (glLabelObject *object,
319 void gl_label_object_set_shadow_color (glLabelObject *object,
320 glColorNode *color_node);
322 void gl_label_object_set_shadow_opacity (glLabelObject *object,
325 gboolean gl_label_object_get_shadow_state (glLabelObject *object);
327 void gl_label_object_get_shadow_offset (glLabelObject *object,
331 glColorNode* gl_label_object_get_shadow_color (glLabelObject *object);
333 gdouble gl_label_object_get_shadow_opacity (glLabelObject *object);
335 void gl_label_object_draw (glLabelObject *object,
337 gboolean screen_flag,
338 glMergeRecord *record);
345 #endif /* __LABEL_OBJECT_H__ */