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/>.
21 #ifndef __LABEL_OBJECT_H__
22 #define __LABEL_OBJECT_H__
24 #include <glib-object.h>
25 #include <pango/pango.h>
34 GL_LABEL_OBJECT_ELLIPSE,
35 GL_LABEL_OBJECT_IMAGE,
36 GL_LABEL_OBJECT_BARCODE,
37 GL_LABEL_OBJECT_N_TYPES
41 #define GL_TYPE_LABEL_OBJECT (gl_label_object_get_type ())
42 #define GL_LABEL_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GL_TYPE_LABEL_OBJECT, glLabelObject))
43 #define GL_LABEL_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GL_TYPE_LABEL_OBJECT, glLabelObjectClass))
44 #define GL_IS_LABEL_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GL_TYPE_LABEL_OBJECT))
45 #define GL_IS_LABEL_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GL_TYPE_LABEL_OBJECT))
46 #define GL_LABEL_OBJECT_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), GL_TYPE_LABEL_OBJECT, glLabelObjectClass))
49 typedef struct _glLabelObject glLabelObject;
50 typedef struct _glLabelObjectClass glLabelObjectClass;
52 typedef struct _glLabelObjectPrivate glLabelObjectPrivate;
57 struct _glLabelObject {
62 glLabelObjectPrivate *priv;
65 struct _glLabelObjectClass {
66 GObjectClass parent_class;
72 void (*set_size) (glLabelObject *object,
76 void (*get_size) (glLabelObject *object,
80 void (*set_font_family) (glLabelObject *object,
81 const gchar *font_family);
83 void (*set_font_size) (glLabelObject *object,
86 void (*set_font_weight) (glLabelObject *object,
87 PangoWeight font_weight);
89 void (*set_font_italic_flag) (glLabelObject *object,
90 gboolean font_italic_flag);
92 void (*set_text_alignment) (glLabelObject *object,
93 PangoAlignment text_alignment);
95 void (*set_text_line_spacing) (glLabelObject *object,
96 gdouble text_line_spacing);
98 void (*set_text_color) (glLabelObject *object,
99 glColorNode *text_color_node);
101 void (*set_fill_color) (glLabelObject *object,
102 glColorNode *fill_color_node);
104 void (*set_line_color) (glLabelObject *object,
105 glColorNode *line_color_node);
107 void (*set_line_width) (glLabelObject *object,
110 gchar *(*get_font_family) (glLabelObject *object);
112 gdouble (*get_font_size) (glLabelObject *object);
114 PangoWeight (*get_font_weight) (glLabelObject *object);
116 gboolean (*get_font_italic_flag) (glLabelObject *object);
118 PangoAlignment (*get_text_alignment) (glLabelObject *object);
120 gdouble (*get_text_line_spacing) (glLabelObject *object);
122 glColorNode* (*get_text_color) (glLabelObject *object);
124 glColorNode* (*get_fill_color) (glLabelObject *object);
126 glColorNode* (*get_line_color) (glLabelObject *object);
128 gdouble (*get_line_width) (glLabelObject *object);
130 void (*copy) (glLabelObject *dst_object,
131 glLabelObject *src_object);
136 void (*draw_shadow) (glLabelObject *object,
138 gboolean screen_flag,
139 glMergeRecord *record);
141 void (*draw_object) (glLabelObject *object,
143 gboolean screen_flag,
144 glMergeRecord *record);
150 void (*changed) (glLabelObject *object,
153 void (*moved) (glLabelObject *object,
158 void (*flip_rotate) (glLabelObject *object,
161 void (*top) (glLabelObject *object,
164 void (*bottom) (glLabelObject *object,
167 void (*removed) (glLabelObject *object,
172 GType gl_label_object_get_type (void) G_GNUC_CONST;
174 GObject *gl_label_object_new (glLabel *label);
177 glLabelObject *gl_label_object_dup (glLabelObject *src_object,
180 void gl_label_object_emit_changed (glLabelObject *object);
183 void gl_label_object_set_parent (glLabelObject *object,
186 glLabel *gl_label_object_get_parent (glLabelObject *object);
189 void gl_label_object_remove (glLabelObject *object);
191 void gl_label_object_set_name (glLabelObject *object,
194 gchar *gl_label_object_get_name (glLabelObject *object);
197 void gl_label_object_set_position (glLabelObject *object,
201 void gl_label_object_set_position_relative (glLabelObject *object,
205 void gl_label_object_get_position (glLabelObject *object,
209 void gl_label_object_set_size (glLabelObject *object,
213 void gl_label_object_set_size_honor_aspect (glLabelObject *object,
217 void gl_label_object_get_size (glLabelObject *object,
221 void gl_label_object_get_raw_size (glLabelObject *object,
225 void gl_label_object_get_extent (glLabelObject *object,
226 glLabelRegion *region);
228 gboolean gl_label_object_can_text (glLabelObject *object);
230 void gl_label_object_set_font_family (glLabelObject *object,
231 const gchar *font_family);
233 void gl_label_object_set_font_size (glLabelObject *object,
236 void gl_label_object_set_font_weight (glLabelObject *object,
237 PangoWeight font_weight);
239 void gl_label_object_set_font_italic_flag (glLabelObject *object,
240 gboolean font_italic_flag);
242 void gl_label_object_set_text_alignment (glLabelObject *object,
243 PangoAlignment text_alignment);
245 void gl_label_object_set_text_color (glLabelObject *object,
246 glColorNode *text_color_node);
248 void gl_label_object_set_text_line_spacing (glLabelObject *object,
249 gdouble text_line_spacing);
252 gchar *gl_label_object_get_font_family (glLabelObject *object);
254 gdouble gl_label_object_get_font_size (glLabelObject *object);
256 PangoWeight gl_label_object_get_font_weight (glLabelObject *object);
258 gboolean gl_label_object_get_font_italic_flag (glLabelObject *object);
260 PangoAlignment gl_label_object_get_text_alignment (glLabelObject *object);
262 gdouble gl_label_object_get_text_line_spacing (glLabelObject *object);
264 glColorNode *gl_label_object_get_text_color (glLabelObject *object);
267 gboolean gl_label_object_can_fill (glLabelObject *object);
269 void gl_label_object_set_fill_color (glLabelObject *object,
270 glColorNode *fill_color_node);
272 glColorNode* gl_label_object_get_fill_color (glLabelObject *object);
275 gboolean gl_label_object_can_line_color (glLabelObject *object);
277 void gl_label_object_set_line_color (glLabelObject *object,
278 glColorNode *line_color_node);
280 glColorNode *gl_label_object_get_line_color (glLabelObject *object);
282 gboolean gl_label_object_can_line_width (glLabelObject *object);
284 void gl_label_object_set_line_width (glLabelObject *object,
287 gdouble gl_label_object_get_line_width (glLabelObject *object);
290 void gl_label_object_raise_to_top (glLabelObject *object);
292 void gl_label_object_lower_to_bottom (glLabelObject *object);
295 void gl_label_object_flip_horiz (glLabelObject *object);
297 void gl_label_object_flip_vert (glLabelObject *object);
299 void gl_label_object_rotate (glLabelObject *object,
302 void gl_label_object_set_matrix (glLabelObject *object,
303 cairo_matrix_t *matrix);
305 void gl_label_object_get_matrix (glLabelObject *object,
306 cairo_matrix_t *matrix);
308 void gl_label_object_set_shadow_state (glLabelObject *object,
311 void gl_label_object_set_shadow_offset (glLabelObject *object,
315 void gl_label_object_set_shadow_color (glLabelObject *object,
316 glColorNode *color_node);
318 void gl_label_object_set_shadow_opacity (glLabelObject *object,
321 gboolean gl_label_object_get_shadow_state (glLabelObject *object);
323 void gl_label_object_get_shadow_offset (glLabelObject *object,
327 glColorNode* gl_label_object_get_shadow_color (glLabelObject *object);
329 gdouble gl_label_object_get_shadow_opacity (glLabelObject *object);
331 void gl_label_object_draw (glLabelObject *object,
333 gboolean screen_flag,
334 glMergeRecord *record);
341 #endif /* __LABEL_OBJECT_H__ */
347 * Local Variables: -- emacs
349 * c-basic-offset: 8 -- emacs
350 * tab-width: 8 -- emacs
351 * indent-tabs-mode: nil -- emacs