]> git.sur5r.net Git - glabels/blob - glabels2/src/object-editor.h
2005-01-22 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/gtk.h>
26 #include "text-node.h"
27 #include "merge.h"
28 #include "bc.h"
29 #include "color.h"
30 #include <gtk/gtkenums.h>
31 #include <libgnomeprint/gnome-font.h>
32
33 G_BEGIN_DECLS
34
35 typedef enum {
36         GL_OBJECT_EDITOR_EMPTY = 1,
37         GL_OBJECT_EDITOR_POSITION_PAGE,
38         GL_OBJECT_EDITOR_SIZE_PAGE,
39         GL_OBJECT_EDITOR_SIZE_IMAGE_PAGE,
40         GL_OBJECT_EDITOR_SIZE_LINE_PAGE,
41         GL_OBJECT_EDITOR_FILL_PAGE,
42         GL_OBJECT_EDITOR_LINE_PAGE,
43         GL_OBJECT_EDITOR_IMAGE_PAGE,
44         GL_OBJECT_EDITOR_TEXT_PAGE,
45         GL_OBJECT_EDITOR_EDIT_PAGE,
46         GL_OBJECT_EDITOR_BC_PAGE,
47         GL_OBJECT_EDITOR_DATA_PAGE,
48 } glObjectEditorOption;
49
50 #define GL_TYPE_OBJECT_EDITOR            (gl_object_editor_get_type ())
51 #define GL_OBJECT_EDITOR(obj)            (GTK_CHECK_CAST ((obj), GL_TYPE_OBJECT_EDITOR, glObjectEditor))
52 #define GL_OBJECT_EDITOR_CLASS(klass)    (GTK_CHECK_CLASS_CAST ((klass), GL_TYPE_OBJECT_EDITOR, glObjectEditorClass))
53 #define GL_IS_OBJECT_EDITOR(obj)         (GTK_CHECK_TYPE ((obj), GL_TYPE_OBJECT_EDITOR))
54 #define GL_IS_OBJECT_EDITOR_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GL_TYPE_OBJECT_EDITOR))
55 #define GL_OBJECT_EDITOR_GET_CLASS(obj)  (GTK_CHECK_GET_CLASS ((obj), GL_TYPE_OBJECT_EDITOR, glObjectEditorClass))
56
57
58 typedef struct _glObjectEditor         glObjectEditor;
59 typedef struct _glObjectEditorClass    glObjectEditorClass;
60
61 typedef struct _glObjectEditorPrivate  glObjectEditorPrivate;
62
63 struct _glObjectEditor
64 {
65         GtkVBox                parent_instance;
66
67         glObjectEditorPrivate *priv;
68
69 };
70
71 struct  _glObjectEditorClass
72 {
73         GtkVBoxClass             parent_class;
74
75         void (*changed)      (glObjectEditor *editor, gpointer user_data);
76         void (*size_changed) (glObjectEditor *editor, gpointer user_data);
77 };
78
79
80
81
82 GtkType     gl_object_editor_get_type             (void) G_GNUC_CONST;
83
84 GtkWidget  *gl_object_editor_new                  (gchar               *image,
85                                                    gchar               *label,
86                                                    glObjectEditorOption first_option, ...);
87
88 void        gl_object_editor_set_key_names        (glObjectEditor      *editor,
89                                                    glMerge             *merge);
90
91
92 /*
93  * Position Page
94  */
95 void        gl_object_editor_set_position         (glObjectEditor      *editor,
96                                                    gdouble              x,
97                                                    gdouble              y);
98
99 void        gl_object_editor_set_max_position     (glObjectEditor      *editor,
100                                                    gdouble              x_max,
101                                                    gdouble              y_max);
102
103 void        gl_object_editor_get_position         (glObjectEditor      *editor,
104                                                    gdouble             *x,
105                                                    gdouble             *y);
106
107 /*
108  * Size Page
109  */
110 void        gl_object_editor_set_size             (glObjectEditor      *editor,
111                                                    gdouble              w,
112                                                    gdouble              h);
113
114 void        gl_object_editor_set_max_size         (glObjectEditor      *editor,
115                                                    gdouble              w_max,
116                                                    gdouble              h_max);
117
118 void        gl_object_editor_set_base_size        (glObjectEditor      *editor,
119                                                    gdouble              w_max,
120                                                    gdouble              h_max);
121
122 void        gl_object_editor_get_size             (glObjectEditor      *editor,
123                                                    gdouble             *w,
124                                                    gdouble             *h);
125
126
127 /*
128  * Line Size Page
129  */
130 void        gl_object_editor_set_lsize            (glObjectEditor      *editor,
131                                                    gdouble              dx,
132                                                    gdouble              dy);
133
134 void        gl_object_editor_set_max_lsize        (glObjectEditor      *editor,
135                                                    gdouble              dx_max,
136                                                    gdouble              dy_max);
137
138 void        gl_object_editor_get_lsize            (glObjectEditor      *editor,
139                                                    gdouble             *dx,
140                                                    gdouble             *dy);
141
142
143 /*
144  * Fill Page
145  */
146 void        gl_object_editor_set_fill_color       (glObjectEditor      *editor,
147                                                    gboolean             merge_flag,
148                                                    glColorNode         *color_node);
149
150 glColorNode* gl_object_editor_get_fill_color      (glObjectEditor      *editor);
151
152
153 /*
154  * Line/Outline Page
155  */
156 void        gl_object_editor_set_line_color       (glObjectEditor      *editor,
157                                                    gboolean             merge_flag,
158                                                    glColorNode         *color_node);
159
160 glColorNode* gl_object_editor_get_line_color      (glObjectEditor      *editor);
161
162 void        gl_object_editor_set_line_width       (glObjectEditor      *editor,
163                                                    gdouble              width);
164
165 gdouble     gl_object_editor_get_line_width       (glObjectEditor      *editor);
166
167
168 /*
169  * Image Page
170  */
171 void        gl_object_editor_set_image            (glObjectEditor      *editor,
172                                                    gboolean             merge_flag,
173                                                    glTextNode          *text_node);
174
175 glTextNode *gl_object_editor_get_image            (glObjectEditor      *editor);
176
177
178 /*
179  * Text Page
180  */
181 void        gl_object_editor_set_font_family      (glObjectEditor      *editor,
182                                                    const gchar         *font_family);
183
184 gchar      *gl_object_editor_get_font_family      (glObjectEditor      *editor);
185
186 void        gl_object_editor_set_font_size        (glObjectEditor      *editor,
187                                                    gdouble              font_size);
188
189 gdouble     gl_object_editor_get_font_size        (glObjectEditor      *editor);
190
191 void        gl_object_editor_set_font_weight      (glObjectEditor      *editor,
192                                                    GnomeFontWeight      font_weight);
193
194 GnomeFontWeight gl_object_editor_get_font_weight  (glObjectEditor      *editor);
195
196 void        gl_object_editor_set_font_italic_flag (glObjectEditor      *editor,
197                                                    gboolean             font_italic_flag);
198
199 gboolean    gl_object_editor_get_font_italic_flag (glObjectEditor      *editor);
200
201 void        gl_object_editor_set_text_alignment   (glObjectEditor      *editor,
202                                                    GtkJustification     text_alignment);
203
204 GtkJustification gl_object_editor_get_text_alignment (glObjectEditor      *editor);
205
206 void        gl_object_editor_set_text_line_spacing (glObjectEditor      *editor,
207                                                    gdouble               text_line_spacing);
208
209 gdouble     gl_object_editor_get_text_line_spacing (glObjectEditor      *editor);
210
211 void        gl_object_editor_set_text_color       (glObjectEditor       *editor,
212                                                    gboolean              merge_flag,
213                                                    glColorNode          *text_color_node);
214
215 glColorNode* gl_object_editor_get_text_color      (glObjectEditor      *editor);
216
217 void        gl_object_editor_set_text_auto_shrink (glObjectEditor      *editor,
218                                                    gboolean             auto_shrink);
219
220 gboolean    gl_object_editor_get_text_auto_shrink (glObjectEditor      *editor);
221
222
223 /*
224  * Edit Text Page
225  */
226 void        gl_object_editor_set_text_buffer      (glObjectEditor      *editor,
227                                                    GtkTextBuffer       *buffer);
228
229 /*
230  * Barcode Page
231  */
232 void        gl_object_editor_set_bc_style         (glObjectEditor      *editor,
233                                                    gchar               *id,
234                                                    gboolean             text_flag,
235                                                    gboolean             checksum_flag,
236                                                    guint                format_digits);
237
238 void        gl_object_editor_get_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_set_bc_color         (glObjectEditor      *editor,
245                                                    gboolean             merge_flag,
246                                                    glColorNode         *color_node);
247
248 glColorNode* gl_object_editor_get_bc_color        (glObjectEditor      *editor);
249
250
251 /*
252  * Barcode Data Page
253  */
254 void        gl_object_editor_set_data             (glObjectEditor      *editor,
255                                                    gboolean             merge_flag,
256                                                    glTextNode          *text_node);
257
258 glTextNode *gl_object_editor_get_data             (glObjectEditor      *editor);
259
260
261
262 G_END_DECLS
263
264 #endif