]> git.sur5r.net Git - glabels/blob - glabels2/src/object-editor.h
2006-01-19 Jim Evins <evins@snaught.com>
[glabels] / glabels2 / src / object-editor.h
1 /*
2  *  (GLABELS) Label and Business Card Creation program for GNOME
3  *
4  *  object-editor.h:  object properties editor module header file
5  *
6  *  Copyright (C) 2003  Jim Evins <evins@snaught.com>.
7  *
8  *  This program is free software; you can redistribute it and/or modify
9  *  it under the terms of the GNU General Public License as published by
10  *  the Free Software Foundation; either version 2 of the License, or
11  *  (at your option) any later version.
12  *
13  *  This program is distributed in the hope that it will be useful,
14  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
15  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  *  GNU General Public License for more details.
17  *
18  *  You should have received a copy of the GNU General Public License
19  *  along with this program; if not, write to the Free Software
20  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
21  */
22 #ifndef __OBJECT_EDITOR_H__
23 #define __OBJECT_EDITOR_H__
24
25 #include <gtk/gtkvbox.h>
26 #include <gtk/gtkenums.h>
27 #include <libgnomeprint/gnome-font.h>
28 #include <gtk/gtktextbuffer.h>
29
30 #include "text-node.h"
31 #include "merge.h"
32 #include "bc.h"
33 #include "color.h"
34
35 G_BEGIN_DECLS
36
37 typedef enum {
38         GL_OBJECT_EDITOR_EMPTY = 1,
39         GL_OBJECT_EDITOR_POSITION_PAGE,
40         GL_OBJECT_EDITOR_SIZE_PAGE,
41         GL_OBJECT_EDITOR_SIZE_IMAGE_PAGE,
42         GL_OBJECT_EDITOR_SIZE_LINE_PAGE,
43         GL_OBJECT_EDITOR_FILL_PAGE,
44         GL_OBJECT_EDITOR_LINE_PAGE,
45         GL_OBJECT_EDITOR_IMAGE_PAGE,
46         GL_OBJECT_EDITOR_TEXT_PAGE,
47         GL_OBJECT_EDITOR_EDIT_PAGE,
48         GL_OBJECT_EDITOR_BC_PAGE,
49         GL_OBJECT_EDITOR_DATA_PAGE,
50         GL_OBJECT_EDITOR_SHADOW_PAGE,
51 } glObjectEditorOption;
52
53 #define GL_TYPE_OBJECT_EDITOR            (gl_object_editor_get_type ())
54 #define GL_OBJECT_EDITOR(obj)            (GTK_CHECK_CAST ((obj), GL_TYPE_OBJECT_EDITOR, glObjectEditor))
55 #define GL_OBJECT_EDITOR_CLASS(klass)    (GTK_CHECK_CLASS_CAST ((klass), GL_TYPE_OBJECT_EDITOR, glObjectEditorClass))
56 #define GL_IS_OBJECT_EDITOR(obj)         (GTK_CHECK_TYPE ((obj), GL_TYPE_OBJECT_EDITOR))
57 #define GL_IS_OBJECT_EDITOR_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GL_TYPE_OBJECT_EDITOR))
58 #define GL_OBJECT_EDITOR_GET_CLASS(obj)  (GTK_CHECK_GET_CLASS ((obj), GL_TYPE_OBJECT_EDITOR, glObjectEditorClass))
59
60
61 typedef struct _glObjectEditor         glObjectEditor;
62 typedef struct _glObjectEditorClass    glObjectEditorClass;
63
64 typedef struct _glObjectEditorPrivate  glObjectEditorPrivate;
65
66 struct _glObjectEditor
67 {
68         GtkVBox                parent_instance;
69
70         glObjectEditorPrivate *priv;
71
72 };
73
74 struct  _glObjectEditorClass
75 {
76         GtkVBoxClass             parent_class;
77
78         void (*changed)      (glObjectEditor *editor, gpointer user_data);
79         void (*size_changed) (glObjectEditor *editor, gpointer user_data);
80 };
81
82
83
84
85 GtkType     gl_object_editor_get_type             (void) G_GNUC_CONST;
86
87 GtkWidget  *gl_object_editor_new                  (gchar               *image,
88                                                    gchar               *label,
89                                                    glObjectEditorOption first_option, ...);
90
91 void        gl_object_editor_set_key_names        (glObjectEditor      *editor,
92                                                    glMerge             *merge);
93
94
95 /*
96  * Position Page
97  */
98 void        gl_object_editor_set_position         (glObjectEditor      *editor,
99                                                    gdouble              x,
100                                                    gdouble              y);
101
102 void        gl_object_editor_set_max_position     (glObjectEditor      *editor,
103                                                    gdouble              x_max,
104                                                    gdouble              y_max);
105
106 void        gl_object_editor_get_position         (glObjectEditor      *editor,
107                                                    gdouble             *x,
108                                                    gdouble             *y);
109
110 /*
111  * Size Page
112  */
113 void        gl_object_editor_set_size             (glObjectEditor      *editor,
114                                                    gdouble              w,
115                                                    gdouble              h);
116
117 void        gl_object_editor_set_max_size         (glObjectEditor      *editor,
118                                                    gdouble              w_max,
119                                                    gdouble              h_max);
120
121 void        gl_object_editor_set_base_size        (glObjectEditor      *editor,
122                                                    gdouble              w_max,
123                                                    gdouble              h_max);
124
125 void        gl_object_editor_get_size             (glObjectEditor      *editor,
126                                                    gdouble             *w,
127                                                    gdouble             *h);
128
129
130 /*
131  * Line Size Page
132  */
133 void        gl_object_editor_set_lsize            (glObjectEditor      *editor,
134                                                    gdouble              dx,
135                                                    gdouble              dy);
136
137 void        gl_object_editor_set_max_lsize        (glObjectEditor      *editor,
138                                                    gdouble              dx_max,
139                                                    gdouble              dy_max);
140
141 void        gl_object_editor_get_lsize            (glObjectEditor      *editor,
142                                                    gdouble             *dx,
143                                                    gdouble             *dy);
144
145
146 /*
147  * Fill Page
148  */
149 void        gl_object_editor_set_fill_color       (glObjectEditor      *editor,
150                                                    gboolean             merge_flag,
151                                                    glColorNode         *color_node);
152
153 glColorNode* gl_object_editor_get_fill_color      (glObjectEditor      *editor);
154
155
156 /*
157  * Line/Outline Page
158  */
159 void        gl_object_editor_set_line_color       (glObjectEditor      *editor,
160                                                    gboolean             merge_flag,
161                                                    glColorNode         *color_node);
162
163 glColorNode* gl_object_editor_get_line_color      (glObjectEditor      *editor);
164
165 void        gl_object_editor_set_line_width       (glObjectEditor      *editor,
166                                                    gdouble              width);
167
168 gdouble     gl_object_editor_get_line_width       (glObjectEditor      *editor);
169
170
171 /*
172  * Image Page
173  */
174 void        gl_object_editor_set_image            (glObjectEditor      *editor,
175                                                    gboolean             merge_flag,
176                                                    glTextNode          *text_node);
177
178 glTextNode *gl_object_editor_get_image            (glObjectEditor      *editor);
179
180
181 /*
182  * Text Page
183  */
184 void        gl_object_editor_set_font_family      (glObjectEditor      *editor,
185                                                    const gchar         *font_family);
186
187 gchar      *gl_object_editor_get_font_family      (glObjectEditor      *editor);
188
189 void        gl_object_editor_set_font_size        (glObjectEditor      *editor,
190                                                    gdouble              font_size);
191
192 gdouble     gl_object_editor_get_font_size        (glObjectEditor      *editor);
193
194 void        gl_object_editor_set_font_weight      (glObjectEditor      *editor,
195                                                    GnomeFontWeight      font_weight);
196
197 GnomeFontWeight gl_object_editor_get_font_weight  (glObjectEditor      *editor);
198
199 void        gl_object_editor_set_font_italic_flag (glObjectEditor      *editor,
200                                                    gboolean             font_italic_flag);
201
202 gboolean    gl_object_editor_get_font_italic_flag (glObjectEditor      *editor);
203
204 void        gl_object_editor_set_text_alignment   (glObjectEditor      *editor,
205                                                    GtkJustification     text_alignment);
206
207 GtkJustification gl_object_editor_get_text_alignment (glObjectEditor      *editor);
208
209 void        gl_object_editor_set_text_line_spacing (glObjectEditor      *editor,
210                                                    gdouble               text_line_spacing);
211
212 gdouble     gl_object_editor_get_text_line_spacing (glObjectEditor      *editor);
213
214 void        gl_object_editor_set_text_color       (glObjectEditor       *editor,
215                                                    gboolean              merge_flag,
216                                                    glColorNode          *text_color_node);
217
218 glColorNode* gl_object_editor_get_text_color      (glObjectEditor      *editor);
219
220 void        gl_object_editor_set_text_auto_shrink (glObjectEditor      *editor,
221                                                    gboolean             auto_shrink);
222
223 gboolean    gl_object_editor_get_text_auto_shrink (glObjectEditor      *editor);
224
225
226 /*
227  * Edit Text Page
228  */
229 void        gl_object_editor_set_text_buffer      (glObjectEditor      *editor,
230                                                    GtkTextBuffer       *buffer);
231
232 /*
233  * Barcode Page
234  */
235 void        gl_object_editor_set_bc_style         (glObjectEditor      *editor,
236                                                    gchar               *id,
237                                                    gboolean             text_flag,
238                                                    gboolean             checksum_flag,
239                                                    guint                format_digits);
240
241 void        gl_object_editor_get_bc_style         (glObjectEditor      *editor,
242                                                    gchar              **id,
243                                                    gboolean            *text_flag,
244                                                    gboolean            *checksum_flag,
245                                                    guint               *format_digits);
246
247 void        gl_object_editor_set_bc_color         (glObjectEditor      *editor,
248                                                    gboolean             merge_flag,
249                                                    glColorNode         *color_node);
250
251 glColorNode* gl_object_editor_get_bc_color        (glObjectEditor      *editor);
252
253
254 /*
255  * Barcode Data Page
256  */
257 void        gl_object_editor_set_data             (glObjectEditor      *editor,
258                                                    gboolean             merge_flag,
259                                                    glTextNode          *text_node);
260
261 glTextNode *gl_object_editor_get_data             (glObjectEditor      *editor);
262
263
264 /*
265  * Shadow Page
266  */
267 void        gl_object_editor_set_shadow_state     (glObjectEditor      *editor,
268                                                    gboolean             state);
269
270 void        gl_object_editor_set_shadow_offset    (glObjectEditor      *editor,
271                                                    gdouble              x,
272                                                    gdouble              y);
273
274 void        gl_object_editor_set_shadow_color     (glObjectEditor      *editor,
275                                                    gboolean             merge_flag,
276                                                    glColorNode         *color_node);
277
278 void        gl_object_editor_set_shadow_opacity   (glObjectEditor      *editor,
279                                                    gdouble              alpha);
280
281 void        gl_object_editor_set_max_shadow_offset(glObjectEditor      *editor,
282                                                    gdouble              x_max,
283                                                    gdouble              y_max);
284
285
286 gboolean    gl_object_editor_get_shadow_state     (glObjectEditor      *editor);
287
288 void        gl_object_editor_get_shadow_offset    (glObjectEditor      *editor,
289                                                    gdouble             *x,
290                                                    gdouble             *y);
291
292 glColorNode* gl_object_editor_get_shadow_color    (glObjectEditor      *editor);
293
294 gdouble     gl_object_editor_get_shadow_opacity   (glObjectEditor      *editor);
295
296
297
298 G_END_DECLS
299
300 #endif