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