]> git.sur5r.net Git - glabels/blob - glabels2/src/object-editor-private.h
66bffe9ad60b889d1dcde35fc3ab83767be21a30
[glabels] / glabels2 / src / object-editor-private.h
1 /*
2  *  object-editor-private.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_PRIVATE_H__
22 #define __OBJECT_EDITOR_PRIVATE_H__
23
24 #include <gtk/gtkwidget.h>
25 #include <gtk/gtkbuilder.h>
26
27 G_BEGIN_DECLS
28
29 struct _glObjectEditorPrivate {
30
31         GtkBuilder *builder;
32         GtkWidget  *editor_vbox;
33
34         glLabel    *label;
35
36         gdouble     units_per_point;
37
38         GtkWidget  *title_image;
39         GtkWidget  *title_label;
40         GtkWidget  *notebook;
41
42         GtkWidget  *pos_page_vbox;
43         GtkWidget  *pos_x_spin;
44         GtkWidget  *pos_y_spin;
45         GtkWidget  *pos_x_units_label;
46         GtkWidget  *pos_y_units_label;
47         gdouble     x;
48         gdouble     y;
49         gdouble     x_max;
50         gdouble     y_max;
51
52         GtkWidget  *size_page_vbox;
53         GtkWidget  *size_w_spin;
54         GtkWidget  *size_h_spin;
55         GtkWidget  *size_w_units_label;
56         GtkWidget  *size_h_units_label;
57         GtkWidget  *size_aspect_vbox;
58         GtkWidget  *size_aspect_checkbutton;
59         GtkWidget  *size_reset_image_button;
60         gdouble     size_aspect_ratio;
61         gdouble     w;
62         gdouble     h;
63         gdouble     w_max;
64         gdouble     h_max;
65         gdouble     w_base;
66         gdouble     h_base;
67
68         GtkWidget  *lsize_page_vbox;
69         GtkWidget  *lsize_r_spin;
70         GtkWidget  *lsize_theta_spin;
71         GtkWidget  *lsize_r_units_label;
72         gdouble     dx;
73         gdouble     dy;
74         gdouble     dx_max;
75         gdouble     dy_max;
76
77         GtkWidget  *fill_page_vbox;
78         GtkWidget  *fill_color_hbox;
79         GtkWidget  *fill_color_combo;
80         GtkWidget  *fill_key_combo;
81         GtkWidget  *fill_key_radio;
82         GtkWidget  *fill_color_radio;
83
84         GtkWidget  *line_page_vbox;
85         GtkWidget  *line_width_spin;
86         GtkWidget  *line_color_radio;
87         GtkWidget  *line_color_hbox;
88         GtkWidget  *line_color_combo;
89         GtkWidget  *line_key_radio;
90         GtkWidget  *line_key_combo;
91
92         GtkWidget  *img_page_vbox;
93         GtkWidget  *img_file_radio;
94         GtkWidget  *img_key_radio;
95         GtkWidget  *img_file_button;
96         GtkWidget  *img_key_combo;
97
98         GtkWidget  *text_page_vbox;
99         GtkWidget  *text_family_combo;
100         GtkWidget  *text_size_spin;
101         GtkWidget  *text_bold_toggle;
102         GtkWidget  *text_italic_toggle;
103         GtkWidget  *text_color_radio;
104         GtkWidget  *text_color_hbox;
105         GtkWidget  *text_color_combo;
106         GtkWidget  *text_color_key_radio;
107         GtkWidget  *text_color_key_combo;
108         GtkWidget  *text_left_toggle;
109         GtkWidget  *text_center_toggle;
110         GtkWidget  *text_right_toggle;
111         GtkWidget  *text_line_spacing_spin;
112         GtkWidget  *text_auto_shrink_check;
113
114         GtkWidget  *edit_page_vbox;
115         GtkWidget  *edit_text_view;
116         GtkWidget  *edit_insert_field_button;
117         GtkWidget  *edit_insert_field_menu;
118
119         GtkWidget  *bc_page_vbox;
120         GtkWidget  *bc_style_combo;
121         GtkWidget  *bc_text_check;
122         GtkWidget  *bc_cs_check;
123         GtkWidget  *bc_color_radio;
124         GtkWidget  *bc_color_hbox;
125         GtkWidget  *bc_color_combo;
126         GtkWidget  *bc_key_radio;
127         GtkWidget  *bc_key_combo;
128
129         GtkWidget  *data_page_vbox;
130         GtkWidget  *data_literal_radio;
131         GtkWidget  *data_key_radio;
132         GtkWidget  *data_text_entry;
133         GtkWidget  *data_key_combo;
134         GtkWidget  *data_format_label;
135         GtkWidget  *data_ex_label;
136         GtkWidget  *data_digits_label;
137         GtkWidget  *data_digits_spin;
138         gboolean    data_format_fixed_flag;
139
140         GtkWidget  *shadow_page_vbox;
141         GtkWidget  *shadow_enable_check;
142         GtkWidget  *shadow_controls_table;
143         GtkWidget  *shadow_x_spin;
144         GtkWidget  *shadow_y_spin;
145         GtkWidget  *shadow_x_units_label;
146         GtkWidget  *shadow_y_units_label;
147         GtkWidget  *shadow_color_radio;
148         GtkWidget  *shadow_key_radio;
149         GtkWidget  *shadow_color_hbox;
150         GtkWidget  *shadow_color_combo;
151         GtkWidget  *shadow_key_combo;
152         GtkWidget  *shadow_opacity_spin;
153         gdouble     shadow_x;
154         gdouble     shadow_y;
155         gdouble     shadow_x_max;
156         gdouble     shadow_y_max;
157
158         /* Prevent recursion */
159         gboolean    stop_signals;
160 };
161
162 enum {
163         CHANGED,
164         SIZE_CHANGED,
165         LAST_SIGNAL
166 };
167
168 extern gint gl_object_editor_signals[LAST_SIGNAL];
169
170
171
172 void gl_object_editor_prepare_position_page     (glObjectEditor        *editor);
173
174 void gl_object_editor_prepare_size_page         (glObjectEditor        *editor,
175                                                  glObjectEditorOption   option);
176
177 void gl_object_editor_prepare_lsize_page        (glObjectEditor        *editor);
178
179 void gl_object_editor_prepare_fill_page         (glObjectEditor        *editor);
180
181 void gl_object_editor_prepare_line_page         (glObjectEditor        *editor);
182
183 void gl_object_editor_prepare_image_page        (glObjectEditor        *editor);
184
185 void gl_object_editor_prepare_text_page         (glObjectEditor        *editor);
186
187 void gl_object_editor_prepare_edit_page         (glObjectEditor        *editor);
188
189 void gl_object_editor_prepare_bc_page           (glObjectEditor        *editor);
190
191 void gl_object_editor_prepare_data_page         (glObjectEditor        *editor);
192
193 void gl_object_editor_prepare_shadow_page       (glObjectEditor        *editor);
194
195
196 void gl_object_editor_changed_cb                (glObjectEditor        *editor);
197 void gl_object_editor_size_changed_cb           (glObjectEditor        *editor);
198
199 void lsize_prefs_changed_cb                     (glObjectEditor        *editor);
200 void size_prefs_changed_cb                      (glObjectEditor        *editor);
201 void position_prefs_changed_cb                  (glObjectEditor        *editor);
202 void shadow_prefs_changed_cb                    (glObjectEditor        *editor);
203
204 G_END_DECLS
205
206 #endif
207
208
209
210 /*
211  * Local Variables:       -- emacs
212  * mode: C                -- emacs
213  * c-basic-offset: 8      -- emacs
214  * tab-width: 8           -- emacs
215  * indent-tabs-mode: nil  -- emacs
216  * End:                   -- emacs
217  */