]> git.sur5r.net Git - glabels/blob - glabels2/src/object-editor.h
54f86a4d2705eccd17790fbfed2c2adae239401e
[glabels] / glabels2 / src / object-editor.h
1 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
2
3 /*
4  *  (GLABELS) Label and Business Card Creation program for GNOME
5  *
6  *  object-editor.h:  object properties editor module header file
7  *
8  *  Copyright (C) 2003  Jim Evins <evins@snaught.com>.
9  *
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.
14  *
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.
19  *
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
23  */
24 #ifndef __OBJECT_EDITOR_H__
25 #define __OBJECT_EDITOR_H__
26
27 #include <gtk/gtkvbox.h>
28 #include <gtk/gtktextbuffer.h>
29
30 #include "text-node.h"
31 #include "label.h"
32 #include "merge.h"
33 #include "bc.h"
34 #include "color.h"
35
36 G_BEGIN_DECLS
37
38 typedef enum {
39         GL_OBJECT_EDITOR_EMPTY = 1,
40         GL_OBJECT_EDITOR_POSITION_PAGE,
41         GL_OBJECT_EDITOR_SIZE_PAGE,
42         GL_OBJECT_EDITOR_SIZE_IMAGE_PAGE,
43         GL_OBJECT_EDITOR_SIZE_LINE_PAGE,
44         GL_OBJECT_EDITOR_FILL_PAGE,
45         GL_OBJECT_EDITOR_LINE_PAGE,
46         GL_OBJECT_EDITOR_IMAGE_PAGE,
47         GL_OBJECT_EDITOR_TEXT_PAGE,
48         GL_OBJECT_EDITOR_EDIT_PAGE,
49         GL_OBJECT_EDITOR_BC_PAGE,
50         GL_OBJECT_EDITOR_DATA_PAGE,
51         GL_OBJECT_EDITOR_SHADOW_PAGE,
52 } glObjectEditorOption;
53
54 #define GL_TYPE_OBJECT_EDITOR            (gl_object_editor_get_type ())
55 #define GL_OBJECT_EDITOR(obj) \
56         (G_TYPE_CHECK_INSTANCE_CAST ((obj), GL_TYPE_OBJECT_EDITOR, glObjectEditor))
57 #define GL_OBJECT_EDITOR_CLASS(klass) \
58         (G_TYPE_CHECK_CLASS_CAST ((klass), GL_TYPE_OBJECT_EDITOR, glObjectEditorClass))
59 #define GL_IS_OBJECT_EDITOR(obj) \
60         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GL_TYPE_OBJECT_EDITOR))
61 #define GL_IS_OBJECT_EDITOR_CLASS(klass) \
62         (G_TYPE_CHECK_CLASS_TYPE ((klass), GL_TYPE_OBJECT_EDITOR))
63 #define GL_OBJECT_EDITOR_GET_CLASS(obj) \
64         (G_TYPE_CHECK_GET_CLASS ((obj), GL_TYPE_OBJECT_EDITOR, glObjectEditorClass))
65
66
67 typedef struct _glObjectEditor         glObjectEditor;
68 typedef struct _glObjectEditorClass    glObjectEditorClass;
69
70 typedef struct _glObjectEditorPrivate  glObjectEditorPrivate;
71
72 struct _glObjectEditor
73 {
74         GtkVBox                parent_instance;
75
76         glObjectEditorPrivate *priv;
77
78 };
79
80 struct  _glObjectEditorClass
81 {
82         GtkVBoxClass             parent_class;
83
84         void (*changed)      (glObjectEditor *editor, gpointer user_data);
85         void (*size_changed) (glObjectEditor *editor, gpointer user_data);
86 };
87
88
89
90
91 GType       gl_object_editor_get_type             (void) G_GNUC_CONST;
92
93 GtkWidget  *gl_object_editor_new                  (gchar               *image,
94                                                    gchar               *title,
95                                                    glLabel             *label,
96                                                    glObjectEditorOption first_option, ...);
97
98 void        gl_object_editor_set_key_names        (glObjectEditor      *editor,
99                                                    glMerge             *merge);
100
101
102 /*
103  * Position Page
104  */
105 void        gl_object_editor_set_position         (glObjectEditor      *editor,
106                                                    gdouble              x,
107                                                    gdouble              y);
108
109 void        gl_object_editor_set_max_position     (glObjectEditor      *editor,
110                                                    gdouble              x_max,
111                                                    gdouble              y_max);
112
113 void        gl_object_editor_get_position         (glObjectEditor      *editor,
114                                                    gdouble             *x,
115                                                    gdouble             *y);
116
117 /*
118  * Size Page
119  */
120 void        gl_object_editor_set_size             (glObjectEditor      *editor,
121                                                    gdouble              w,
122                                                    gdouble              h);
123
124 void        gl_object_editor_set_max_size         (glObjectEditor      *editor,
125                                                    gdouble              w_max,
126                                                    gdouble              h_max);
127
128 void        gl_object_editor_set_base_size        (glObjectEditor      *editor,
129                                                    gdouble              w_max,
130                                                    gdouble              h_max);
131
132 void        gl_object_editor_get_size             (glObjectEditor      *editor,
133                                                    gdouble             *w,
134                                                    gdouble             *h);
135
136
137 /*
138  * Line Size Page
139  */
140 void        gl_object_editor_set_lsize            (glObjectEditor      *editor,
141                                                    gdouble              dx,
142                                                    gdouble              dy);
143
144 void        gl_object_editor_set_max_lsize        (glObjectEditor      *editor,
145                                                    gdouble              dx_max,
146                                                    gdouble              dy_max);
147
148 void        gl_object_editor_get_lsize            (glObjectEditor      *editor,
149                                                    gdouble             *dx,
150                                                    gdouble             *dy);
151
152
153 /*
154  * Fill Page
155  */
156 void        gl_object_editor_set_fill_color       (glObjectEditor      *editor,
157                                                    gboolean             merge_flag,
158                                                    glColorNode         *color_node);
159
160 glColorNode* gl_object_editor_get_fill_color      (glObjectEditor      *editor);
161
162
163 /*
164  * Line/Outline Page
165  */
166 void        gl_object_editor_set_line_color       (glObjectEditor      *editor,
167                                                    gboolean             merge_flag,
168                                                    glColorNode         *color_node);
169
170 glColorNode* gl_object_editor_get_line_color      (glObjectEditor      *editor);
171
172 void        gl_object_editor_set_line_width       (glObjectEditor      *editor,
173                                                    gdouble              width);
174
175 gdouble     gl_object_editor_get_line_width       (glObjectEditor      *editor);
176
177
178 /*
179  * Image Page
180  */
181 void        gl_object_editor_set_image            (glObjectEditor      *editor,
182                                                    gboolean             merge_flag,
183                                                    glTextNode          *text_node);
184
185 glTextNode *gl_object_editor_get_image            (glObjectEditor      *editor);
186
187
188 /*
189  * Text Page
190  */
191 void        gl_object_editor_set_font_family      (glObjectEditor      *editor,
192                                                    const gchar         *font_family);
193
194 gchar      *gl_object_editor_get_font_family      (glObjectEditor      *editor);
195
196 void        gl_object_editor_set_font_size        (glObjectEditor      *editor,
197                                                    gdouble              font_size);
198
199 gdouble     gl_object_editor_get_font_size        (glObjectEditor      *editor);
200
201 void        gl_object_editor_set_font_weight      (glObjectEditor      *editor,
202                                                    PangoWeight          font_weight);
203
204 PangoWeight gl_object_editor_get_font_weight      (glObjectEditor      *editor);
205
206 void        gl_object_editor_set_font_italic_flag (glObjectEditor      *editor,
207                                                    gboolean             font_italic_flag);
208
209 gboolean    gl_object_editor_get_font_italic_flag (glObjectEditor      *editor);
210
211 void        gl_object_editor_set_text_alignment   (glObjectEditor      *editor,
212                                                    PangoAlignment       text_alignment);
213
214 PangoAlignment gl_object_editor_get_text_alignment (glObjectEditor      *editor);
215
216 void        gl_object_editor_set_text_line_spacing (glObjectEditor      *editor,
217                                                    gdouble               text_line_spacing);
218
219 gdouble     gl_object_editor_get_text_line_spacing (glObjectEditor      *editor);
220
221 void        gl_object_editor_set_text_color       (glObjectEditor       *editor,
222                                                    gboolean              merge_flag,
223                                                    glColorNode          *text_color_node);
224
225 glColorNode* gl_object_editor_get_text_color      (glObjectEditor      *editor);
226
227 void        gl_object_editor_set_text_auto_shrink (glObjectEditor      *editor,
228                                                    gboolean             auto_shrink);
229
230 gboolean    gl_object_editor_get_text_auto_shrink (glObjectEditor      *editor);
231
232
233 /*
234  * Edit Text Page
235  */
236 void        gl_object_editor_set_text_buffer      (glObjectEditor      *editor,
237                                                    GtkTextBuffer       *buffer);
238
239 /*
240  * Barcode Page
241  */
242 void        gl_object_editor_set_bc_style         (glObjectEditor      *editor,
243                                                    gchar               *id,
244                                                    gboolean             text_flag,
245                                                    gboolean             checksum_flag,
246                                                    guint                format_digits);
247
248 void        gl_object_editor_get_bc_style         (glObjectEditor      *editor,
249                                                    gchar              **id,
250                                                    gboolean            *text_flag,
251                                                    gboolean            *checksum_flag,
252                                                    guint               *format_digits);
253
254 void        gl_object_editor_set_bc_color         (glObjectEditor      *editor,
255                                                    gboolean             merge_flag,
256                                                    glColorNode         *color_node);
257
258 glColorNode* gl_object_editor_get_bc_color        (glObjectEditor      *editor);
259
260
261 /*
262  * Barcode Data Page
263  */
264 void        gl_object_editor_set_data             (glObjectEditor      *editor,
265                                                    gboolean             merge_flag,
266                                                    glTextNode          *text_node);
267
268 glTextNode *gl_object_editor_get_data             (glObjectEditor      *editor);
269
270
271 /*
272  * Shadow Page
273  */
274 void        gl_object_editor_set_shadow_state     (glObjectEditor      *editor,
275                                                    gboolean             state);
276
277 void        gl_object_editor_set_shadow_offset    (glObjectEditor      *editor,
278                                                    gdouble              x,
279                                                    gdouble              y);
280
281 void        gl_object_editor_set_shadow_color     (glObjectEditor      *editor,
282                                                    gboolean             merge_flag,
283                                                    glColorNode         *color_node);
284
285 void        gl_object_editor_set_shadow_opacity   (glObjectEditor      *editor,
286                                                    gdouble              alpha);
287
288 void        gl_object_editor_set_max_shadow_offset(glObjectEditor      *editor,
289                                                    gdouble              x_max,
290                                                    gdouble              y_max);
291
292
293 gboolean    gl_object_editor_get_shadow_state     (glObjectEditor      *editor);
294
295 void        gl_object_editor_get_shadow_offset    (glObjectEditor      *editor,
296                                                    gdouble             *x,
297                                                    gdouble             *y);
298
299 glColorNode* gl_object_editor_get_shadow_color    (glObjectEditor      *editor);
300
301 gdouble     gl_object_editor_get_shadow_opacity   (glObjectEditor      *editor);
302
303
304
305 G_END_DECLS
306
307 #endif