]> git.sur5r.net Git - glabels/blob - src/object-editor.h
Imported Upstream version 2.2.8
[glabels] / 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)            (GTK_CHECK_CAST ((obj), GL_TYPE_OBJECT_EDITOR, glObjectEditor))
56 #define GL_OBJECT_EDITOR_CLASS(klass)    (GTK_CHECK_CLASS_CAST ((klass), GL_TYPE_OBJECT_EDITOR, glObjectEditorClass))
57 #define GL_IS_OBJECT_EDITOR(obj)         (GTK_CHECK_TYPE ((obj), GL_TYPE_OBJECT_EDITOR))
58 #define GL_IS_OBJECT_EDITOR_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GL_TYPE_OBJECT_EDITOR))
59 #define GL_OBJECT_EDITOR_GET_CLASS(obj)  (GTK_CHECK_GET_CLASS ((obj), GL_TYPE_OBJECT_EDITOR, glObjectEditorClass))
60
61
62 typedef struct _glObjectEditor         glObjectEditor;
63 typedef struct _glObjectEditorClass    glObjectEditorClass;
64
65 typedef struct _glObjectEditorPrivate  glObjectEditorPrivate;
66
67 struct _glObjectEditor
68 {
69         GtkVBox                parent_instance;
70
71         glObjectEditorPrivate *priv;
72
73 };
74
75 struct  _glObjectEditorClass
76 {
77         GtkVBoxClass             parent_class;
78
79         void (*changed)      (glObjectEditor *editor, gpointer user_data);
80         void (*size_changed) (glObjectEditor *editor, gpointer user_data);
81 };
82
83
84
85
86 GtkType     gl_object_editor_get_type             (void) G_GNUC_CONST;
87
88 GtkWidget  *gl_object_editor_new                  (gchar               *image,
89                                                    gchar               *title,
90                                                    glLabel             *label,
91                                                    glObjectEditorOption first_option, ...);
92
93 void        gl_object_editor_set_key_names        (glObjectEditor      *editor,
94                                                    glMerge             *merge);
95
96
97 /*
98  * Position Page
99  */
100 void        gl_object_editor_set_position         (glObjectEditor      *editor,
101                                                    gdouble              x,
102                                                    gdouble              y);
103
104 void        gl_object_editor_set_max_position     (glObjectEditor      *editor,
105                                                    gdouble              x_max,
106                                                    gdouble              y_max);
107
108 void        gl_object_editor_get_position         (glObjectEditor      *editor,
109                                                    gdouble             *x,
110                                                    gdouble             *y);
111
112 /*
113  * Size Page
114  */
115 void        gl_object_editor_set_size             (glObjectEditor      *editor,
116                                                    gdouble              w,
117                                                    gdouble              h);
118
119 void        gl_object_editor_set_max_size         (glObjectEditor      *editor,
120                                                    gdouble              w_max,
121                                                    gdouble              h_max);
122
123 void        gl_object_editor_set_base_size        (glObjectEditor      *editor,
124                                                    gdouble              w_max,
125                                                    gdouble              h_max);
126
127 void        gl_object_editor_get_size             (glObjectEditor      *editor,
128                                                    gdouble             *w,
129                                                    gdouble             *h);
130
131
132 /*
133  * Line Size Page
134  */
135 void        gl_object_editor_set_lsize            (glObjectEditor      *editor,
136                                                    gdouble              dx,
137                                                    gdouble              dy);
138
139 void        gl_object_editor_set_max_lsize        (glObjectEditor      *editor,
140                                                    gdouble              dx_max,
141                                                    gdouble              dy_max);
142
143 void        gl_object_editor_get_lsize            (glObjectEditor      *editor,
144                                                    gdouble             *dx,
145                                                    gdouble             *dy);
146
147
148 /*
149  * Fill Page
150  */
151 void        gl_object_editor_set_fill_color       (glObjectEditor      *editor,
152                                                    gboolean             merge_flag,
153                                                    glColorNode         *color_node);
154
155 glColorNode* gl_object_editor_get_fill_color      (glObjectEditor      *editor);
156
157
158 /*
159  * Line/Outline Page
160  */
161 void        gl_object_editor_set_line_color       (glObjectEditor      *editor,
162                                                    gboolean             merge_flag,
163                                                    glColorNode         *color_node);
164
165 glColorNode* gl_object_editor_get_line_color      (glObjectEditor      *editor);
166
167 void        gl_object_editor_set_line_width       (glObjectEditor      *editor,
168                                                    gdouble              width);
169
170 gdouble     gl_object_editor_get_line_width       (glObjectEditor      *editor);
171
172
173 /*
174  * Image Page
175  */
176 void        gl_object_editor_set_image            (glObjectEditor      *editor,
177                                                    gboolean             merge_flag,
178                                                    glTextNode          *text_node);
179
180 glTextNode *gl_object_editor_get_image            (glObjectEditor      *editor);
181
182
183 /*
184  * Text Page
185  */
186 void        gl_object_editor_set_font_family      (glObjectEditor      *editor,
187                                                    const gchar         *font_family);
188
189 gchar      *gl_object_editor_get_font_family      (glObjectEditor      *editor);
190
191 void        gl_object_editor_set_font_size        (glObjectEditor      *editor,
192                                                    gdouble              font_size);
193
194 gdouble     gl_object_editor_get_font_size        (glObjectEditor      *editor);
195
196 void        gl_object_editor_set_font_weight      (glObjectEditor      *editor,
197                                                    PangoWeight          font_weight);
198
199 PangoWeight gl_object_editor_get_font_weight      (glObjectEditor      *editor);
200
201 void        gl_object_editor_set_font_italic_flag (glObjectEditor      *editor,
202                                                    gboolean             font_italic_flag);
203
204 gboolean    gl_object_editor_get_font_italic_flag (glObjectEditor      *editor);
205
206 void        gl_object_editor_set_text_alignment   (glObjectEditor      *editor,
207                                                    PangoAlignment       text_alignment);
208
209 PangoAlignment gl_object_editor_get_text_alignment (glObjectEditor      *editor);
210
211 void        gl_object_editor_set_text_line_spacing (glObjectEditor      *editor,
212                                                    gdouble               text_line_spacing);
213
214 gdouble     gl_object_editor_get_text_line_spacing (glObjectEditor      *editor);
215
216 void        gl_object_editor_set_text_color       (glObjectEditor       *editor,
217                                                    gboolean              merge_flag,
218                                                    glColorNode          *text_color_node);
219
220 glColorNode* gl_object_editor_get_text_color      (glObjectEditor      *editor);
221
222 void        gl_object_editor_set_text_auto_shrink (glObjectEditor      *editor,
223                                                    gboolean             auto_shrink);
224
225 gboolean    gl_object_editor_get_text_auto_shrink (glObjectEditor      *editor);
226
227
228 /*
229  * Edit Text Page
230  */
231 void        gl_object_editor_set_text_buffer      (glObjectEditor      *editor,
232                                                    GtkTextBuffer       *buffer);
233
234 /*
235  * Barcode Page
236  */
237 void        gl_object_editor_set_bc_style         (glObjectEditor      *editor,
238                                                    gchar               *id,
239                                                    gboolean             text_flag,
240                                                    gboolean             checksum_flag,
241                                                    guint                format_digits);
242
243 void        gl_object_editor_get_bc_style         (glObjectEditor      *editor,
244                                                    gchar              **id,
245                                                    gboolean            *text_flag,
246                                                    gboolean            *checksum_flag,
247                                                    guint               *format_digits);
248
249 void        gl_object_editor_set_bc_color         (glObjectEditor      *editor,
250                                                    gboolean             merge_flag,
251                                                    glColorNode         *color_node);
252
253 glColorNode* gl_object_editor_get_bc_color        (glObjectEditor      *editor);
254
255
256 /*
257  * Barcode Data Page
258  */
259 void        gl_object_editor_set_data             (glObjectEditor      *editor,
260                                                    gboolean             merge_flag,
261                                                    glTextNode          *text_node);
262
263 glTextNode *gl_object_editor_get_data             (glObjectEditor      *editor);
264
265
266 /*
267  * Shadow Page
268  */
269 void        gl_object_editor_set_shadow_state     (glObjectEditor      *editor,
270                                                    gboolean             state);
271
272 void        gl_object_editor_set_shadow_offset    (glObjectEditor      *editor,
273                                                    gdouble              x,
274                                                    gdouble              y);
275
276 void        gl_object_editor_set_shadow_color     (glObjectEditor      *editor,
277                                                    gboolean             merge_flag,
278                                                    glColorNode         *color_node);
279
280 void        gl_object_editor_set_shadow_opacity   (glObjectEditor      *editor,
281                                                    gdouble              alpha);
282
283 void        gl_object_editor_set_max_shadow_offset(glObjectEditor      *editor,
284                                                    gdouble              x_max,
285                                                    gdouble              y_max);
286
287
288 gboolean    gl_object_editor_get_shadow_state     (glObjectEditor      *editor);
289
290 void        gl_object_editor_get_shadow_offset    (glObjectEditor      *editor,
291                                                    gdouble             *x,
292                                                    gdouble             *y);
293
294 glColorNode* gl_object_editor_get_shadow_color    (glObjectEditor      *editor);
295
296 gdouble     gl_object_editor_get_shadow_opacity   (glObjectEditor      *editor);
297
298
299
300 G_END_DECLS
301
302 #endif