1 /* cssed (c) Iago Rubio 2003, 2005 - A tiny CSS editor.
2 *
3 * This program is free software; you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation; either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU Library General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program; if not, write to the Free Software
15 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
16 */
17
18 #ifdef HAVE_CONFIG_H
19 # include <config.h>
20 #endif
21
22 #include <sys/types.h>
23 #include <sys/stat.h>
24 #include <string.h>
25 #include <stdio.h>
26
27 #include <gdk/gdkkeysyms.h>
28 #include <gtk/gtk.h>
29
30
31 #include "cssedwindow.h"
32 #include "document.h"
33 #include "utils.h"
34 #include "support.h"
35
36 #define GLADE_HOOKUP_OBJECT(component,widget,name) \
37 g_object_set_data_full (G_OBJECT (component), name, \
38 gtk_widget_ref (widget), (GDestroyNotify) gtk_widget_unref)
39
40 #define GLADE_HOOKUP_OBJECT_NO_REF(component,widget,name) \
41 g_object_set_data (G_OBJECT (component), name, widget)
42
43 void on_color_wizard_dialog_close(GtkDialog *dialog, gpointer user_data);
44 void on_button_fore_clicked(GtkButton *button, gpointer user_data);
45 void on_button_back_clicked (GtkButton *button, gpointer user_data);
46 void on_button_attach_clicked(GtkButton *button, gpointer user_data);
47 void on_button_border_top_clicked(GtkButton *button, gpointer user_data);
48 void on_button_border_right_clicked(GtkButton *button, gpointer user_data);
49 void on_button_border_bottom_clicked(GtkButton *button, gpointer user_data);
50 void on_button_border_left_clicked(GtkButton *button, gpointer user_data);
51 void on_cancelbutton_clicked (GtkButton *button, gpointer user_data);
52 void on_button_outline_clicked (GtkButton *button, gpointer user_data);
53 void on_applybutton_clicked (GtkButton *button, gpointer user_data);
54 void on_okbutton_clicked (GtkButton *button, gpointer user_data);
55 void set_color_and_label(GtkWidget* entry, GtkWidget* label);
56 void write_results_to_document(GtkWidget* parent, CssedWindow* window);
57
58 GtkWidget*
create_color_wizard_dialog(CssedWindow * window)59 create_color_wizard_dialog (CssedWindow* window)
60 {
61 GtkWidget *color_wizard_dialog;
62 GtkWidget *dialog_vbox;
63 GtkWidget *table;
64 GtkWidget *combo_fore;
65 GList *combo_items = NULL;
66 GtkWidget *combo_entry_fore;
67 GtkWidget *combo_back;
68 GtkWidget *combo_entry_back;
69 GtkWidget *combo_attach;
70 GtkWidget *combo_entry_attach;
71 GtkWidget *combo_border_top;
72 GtkWidget *combo_entry_border_top;
73 GtkWidget *combo_border_right;
74 GtkWidget *combo_entry_border_right;
75 GtkWidget *combo_border_bottom;
76 GtkWidget *combo_entry_border_bottom;
77 GtkWidget *combo_border_left;
78 GtkWidget *combo_entry_border_left;
79 GtkWidget *combo_outline;
80 GtkWidget *combo_entry_outline;
81 GtkWidget *checkbutton_fore;
82 GtkWidget *checkbutton_back;
83 GtkWidget *checkbutton_attach;
84 GtkWidget *checkbutton_border_top;
85 GtkWidget *checkbutton_border_right;
86 GtkWidget *checkbutton_border_bottom;
87 GtkWidget *checkbutton_border_left;
88 GtkWidget *checkbutton_outline;
89 GtkWidget *button_fore;
90 GtkWidget *alignment_fore;
91 GtkWidget *hbox_fore;
92 GtkWidget *image_fore;
93 GtkWidget *label_fore;
94 GtkWidget *button_back;
95 GtkWidget *alignment_back;
96 GtkWidget *hbox_back;
97 GtkWidget *image_back;
98 GtkWidget *label_back;
99 GtkWidget *button_attach;
100 GtkWidget *alignment_attach;
101 GtkWidget *hbox_attach;
102 GtkWidget *image_attach;
103 GtkWidget *label_attach;
104 GtkWidget *button_border_top;
105 GtkWidget *alignment_border_top;
106 GtkWidget *hbox_border_top;
107 GtkWidget *image_border_top;
108 GtkWidget *label_border_top;
109 GtkWidget *button_border_right;
110 GtkWidget *alignment_border_right;
111 GtkWidget *hbox_border_right;
112 GtkWidget *image_border_right;
113 GtkWidget *label_border_right;
114 GtkWidget *button_border_bottom;
115 GtkWidget *alignment_border_bottom;
116 GtkWidget *hbox_border_botom;
117 GtkWidget *image_border_bottom;
118 GtkWidget *label_border_bottom;
119 GtkWidget *button_border_left;
120 GtkWidget *alignment_border_left;
121 GtkWidget *hbox_border_left;
122 GtkWidget *image_border_left;
123 GtkWidget *label_border_left;
124 GtkWidget *button_outline;
125 GtkWidget *alignment_outline;
126 GtkWidget *hbox_outline;
127 GtkWidget *image_outline;
128 GtkWidget *label_outline;
129 GtkWidget *dialog_action_area;
130 GtkWidget *cancelbutton;
131 GtkWidget *applybutton;
132 GtkWidget *okbutton;
133
134
135
136 color_wizard_dialog = gtk_dialog_new ();
137 gtk_window_set_title (GTK_WINDOW (color_wizard_dialog), _("Color wizard"));
138 gtk_window_set_default_size (GTK_WINDOW (color_wizard_dialog), 340, 250);
139 gtk_window_set_destroy_with_parent (GTK_WINDOW (color_wizard_dialog), TRUE);
140 gtk_window_set_transient_for ( GTK_WINDOW(color_wizard_dialog),
141 GTK_WINDOW ( cssed_window_get_window_widget(window) ));
142
143 dialog_vbox = GTK_DIALOG (color_wizard_dialog)->vbox;
144 gtk_widget_show (dialog_vbox);
145
146 table = gtk_table_new (8, 3, FALSE);
147 gtk_widget_show (table);
148 gtk_box_pack_start (GTK_BOX (dialog_vbox), table, TRUE, TRUE, 0);
149
150 combo_fore = gtk_combo_new ();
151 g_object_set_data (G_OBJECT (GTK_COMBO (combo_fore)->popwin),
152 "GladeParentKey", combo_fore);
153 gtk_widget_show (combo_fore);
154 gtk_table_attach (GTK_TABLE (table), combo_fore, 1, 2, 0, 1,
155 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
156 (GtkAttachOptions) (0), 0, 0);
157 combo_items = g_list_append (combo_items, (gpointer) "aqua");
158 combo_items = g_list_append (combo_items, (gpointer) "black");
159 combo_items = g_list_append (combo_items, (gpointer) "blue");
160 combo_items = g_list_append (combo_items, (gpointer) "fuchsia");
161 combo_items = g_list_append (combo_items, (gpointer) "gray");
162 combo_items = g_list_append (combo_items, (gpointer) "green");
163 combo_items = g_list_append (combo_items, (gpointer) "lime");
164 combo_items = g_list_append (combo_items, (gpointer) "maroon");
165 combo_items = g_list_append (combo_items, (gpointer) "navy");
166 combo_items = g_list_append (combo_items, (gpointer) "olive");
167 combo_items = g_list_append (combo_items, (gpointer) "purple");
168 combo_items = g_list_append (combo_items, (gpointer) "red");
169 combo_items = g_list_append (combo_items, (gpointer) "silver");
170 combo_items = g_list_append (combo_items, (gpointer) "teal");
171 combo_items = g_list_append (combo_items, (gpointer) "white");
172 combo_items = g_list_append (combo_items, (gpointer) "yellow");
173 combo_items = g_list_append (combo_items, (gpointer) "activeborder ");
174 combo_items = g_list_append (combo_items, (gpointer) "activecaption");
175 combo_items = g_list_append (combo_items, (gpointer) "appworkspace");
176 combo_items = g_list_append (combo_items, (gpointer) "background");
177 combo_items = g_list_append (combo_items, (gpointer) "buttonface");
178 combo_items = g_list_append (combo_items, (gpointer) "buttonhighlight");
179 combo_items = g_list_append (combo_items, (gpointer) "buttonshadow");
180 combo_items = g_list_append (combo_items, (gpointer) "buttontext");
181 combo_items = g_list_append (combo_items, (gpointer) "captiontext");
182 combo_items = g_list_append (combo_items, (gpointer) "graytext");
183 combo_items = g_list_append (combo_items, (gpointer) "highlight");
184 combo_items = g_list_append (combo_items, (gpointer) "highlighttext");
185 combo_items = g_list_append (combo_items, (gpointer) "inactiveborder");
186 combo_items = g_list_append (combo_items, (gpointer) "inactivecaption");
187 combo_items = g_list_append (combo_items, (gpointer) "inactivecaptiontext");
188 combo_items = g_list_append (combo_items, (gpointer) "infobackground");
189 combo_items = g_list_append (combo_items, (gpointer) "infotext");
190 combo_items = g_list_append (combo_items, (gpointer) "menu");
191 combo_items = g_list_append (combo_items, (gpointer) "menutext");
192 combo_items = g_list_append (combo_items, (gpointer) "scrollbar");
193 combo_items = g_list_append (combo_items, (gpointer) "threeddarkshadow");
194 combo_items = g_list_append (combo_items, (gpointer) "threedface");
195 combo_items = g_list_append (combo_items, (gpointer) "threedhighlight");
196 combo_items = g_list_append (combo_items, (gpointer) "threedlightshadow");
197 combo_items = g_list_append (combo_items, (gpointer) "threedshadow");
198 combo_items = g_list_append (combo_items, (gpointer) "window");
199 combo_items = g_list_append (combo_items, (gpointer) "windowframe");
200 combo_items = g_list_append (combo_items, (gpointer) "windowtext");
201 gtk_combo_set_popdown_strings (GTK_COMBO (combo_fore), combo_items);
202
203
204 combo_entry_fore = GTK_COMBO (combo_fore)->entry;
205 gtk_widget_show (combo_entry_fore);
206 gtk_entry_set_text (GTK_ENTRY (combo_entry_fore), "");
207
208 combo_back = gtk_combo_new ();
209 g_object_set_data (G_OBJECT (GTK_COMBO (combo_back)->popwin),
210 "GladeParentKey", combo_back);
211 gtk_widget_show (combo_back);
212 gtk_table_attach (GTK_TABLE (table), combo_back, 1, 2, 1, 2,
213 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
214 (GtkAttachOptions) (0), 0, 0);
215 gtk_combo_set_popdown_strings (GTK_COMBO (combo_back), combo_items);
216
217 combo_entry_back = GTK_COMBO (combo_back)->entry;
218 gtk_widget_show (combo_entry_back);
219 gtk_entry_set_text (GTK_ENTRY (combo_entry_back), "");
220
221 combo_attach = gtk_combo_new ();
222 g_object_set_data (G_OBJECT (GTK_COMBO (combo_attach)->popwin),
223 "GladeParentKey", combo_attach);
224 gtk_widget_show (combo_attach);
225 gtk_table_attach (GTK_TABLE (table), combo_attach, 1, 2, 2, 3,
226 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
227 (GtkAttachOptions) (0), 0, 0);
228 gtk_combo_set_popdown_strings (GTK_COMBO (combo_attach), combo_items);
229
230 combo_entry_attach = GTK_COMBO (combo_attach)->entry;
231 gtk_widget_show (combo_entry_attach);
232 gtk_entry_set_text (GTK_ENTRY (combo_entry_attach), "");
233
234 combo_border_top = gtk_combo_new ();
235 g_object_set_data (G_OBJECT (GTK_COMBO (combo_border_top)->popwin),
236 "GladeParentKey", combo_border_top);
237 gtk_widget_show (combo_border_top);
238 gtk_table_attach (GTK_TABLE (table), combo_border_top, 1, 2, 3, 4,
239 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
240 (GtkAttachOptions) (0), 0, 0);
241 gtk_combo_set_popdown_strings (GTK_COMBO (combo_border_top), combo_items);
242
243 combo_entry_border_top = GTK_COMBO (combo_border_top)->entry;
244 gtk_widget_show (combo_entry_border_top);
245 gtk_entry_set_text (GTK_ENTRY (combo_entry_border_top), "");
246
247 combo_border_right = gtk_combo_new ();
248 g_object_set_data (G_OBJECT (GTK_COMBO (combo_border_right)->popwin),
249 "GladeParentKey", combo_border_right);
250 gtk_widget_show (combo_border_right);
251 gtk_table_attach (GTK_TABLE (table), combo_border_right, 1, 2, 4, 5,
252 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
253 (GtkAttachOptions) (0), 0, 0);
254 gtk_combo_set_popdown_strings (GTK_COMBO (combo_border_right), combo_items);
255
256 combo_entry_border_right = GTK_COMBO (combo_border_right)->entry;
257 gtk_widget_show (combo_entry_border_right);
258 gtk_entry_set_text (GTK_ENTRY (combo_entry_border_right), "");
259
260 combo_border_bottom = gtk_combo_new ();
261 g_object_set_data (G_OBJECT (GTK_COMBO (combo_border_bottom)->popwin),
262 "GladeParentKey", combo_border_bottom);
263 gtk_widget_show (combo_border_bottom);
264 gtk_table_attach (GTK_TABLE (table), combo_border_bottom, 1, 2, 5, 6,
265 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
266 (GtkAttachOptions) (0), 0, 0);
267 gtk_combo_set_popdown_strings (GTK_COMBO (combo_border_bottom), combo_items);
268
269 combo_entry_border_bottom = GTK_COMBO (combo_border_bottom)->entry;
270 gtk_widget_show (combo_entry_border_bottom);
271 gtk_entry_set_text (GTK_ENTRY (combo_entry_border_bottom), "");
272
273 combo_border_left = gtk_combo_new ();
274 g_object_set_data (G_OBJECT (GTK_COMBO (combo_border_left)->popwin),
275 "GladeParentKey", combo_border_left);
276 gtk_widget_show (combo_border_left);
277 gtk_table_attach (GTK_TABLE (table), combo_border_left, 1, 2, 6, 7,
278 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
279 (GtkAttachOptions) (0), 0, 0);
280 gtk_combo_set_popdown_strings (GTK_COMBO (combo_border_left), combo_items);
281
282 combo_entry_border_left = GTK_COMBO (combo_border_left)->entry;
283 gtk_widget_show (combo_entry_border_left);
284 gtk_entry_set_text (GTK_ENTRY (combo_entry_border_left), "");
285
286 combo_outline = gtk_combo_new ();
287 g_object_set_data (G_OBJECT (GTK_COMBO (combo_outline)->popwin),
288 "GladeParentKey", combo_border_left);
289 gtk_widget_show (combo_outline);
290 gtk_table_attach (GTK_TABLE (table), combo_outline, 1, 2, 7, 8,
291 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
292 (GtkAttachOptions) (0), 0, 0);
293 gtk_combo_set_popdown_strings (GTK_COMBO (combo_outline), combo_items);
294
295 // free combo_items as it's not needed anymore
296 g_list_free (combo_items);
297
298 combo_entry_outline = GTK_COMBO (combo_outline)->entry;
299 gtk_widget_show (combo_entry_outline);
300 gtk_entry_set_text (GTK_ENTRY (combo_entry_outline), "");
301
302 checkbutton_fore = gtk_check_button_new_with_mnemonic (_("foreground"));
303 gtk_widget_show (checkbutton_fore);
304 gtk_table_attach (GTK_TABLE (table), checkbutton_fore, 0, 1, 0, 1,
305 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
306 (GtkAttachOptions) (GTK_EXPAND), 5, 0);
307
308 checkbutton_back = gtk_check_button_new_with_mnemonic (_("background"));
309 gtk_widget_show (checkbutton_back);
310 gtk_table_attach (GTK_TABLE (table), checkbutton_back, 0, 1, 1, 2,
311 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
312 (GtkAttachOptions) (GTK_EXPAND), 5, 0);
313
314 checkbutton_attach = gtk_check_button_new_with_mnemonic (_("background attachment"));
315 gtk_widget_show (checkbutton_attach);
316 gtk_table_attach (GTK_TABLE (table), checkbutton_attach, 0, 1, 2, 3,
317 (GtkAttachOptions) (GTK_FILL),
318 (GtkAttachOptions) (GTK_EXPAND), 5, 0);
319
320 checkbutton_border_top = gtk_check_button_new_with_mnemonic (_("border top"));
321 gtk_widget_show (checkbutton_border_top);
322 gtk_table_attach (GTK_TABLE (table), checkbutton_border_top, 0, 1, 3, 4,
323 (GtkAttachOptions) (GTK_FILL),
324 (GtkAttachOptions) (GTK_EXPAND), 5, 0);
325
326 checkbutton_border_right = gtk_check_button_new_with_mnemonic (_("border right"));
327 gtk_widget_show (checkbutton_border_right);
328 gtk_table_attach (GTK_TABLE (table), checkbutton_border_right, 0, 1, 4, 5,
329 (GtkAttachOptions) (GTK_FILL),
330 (GtkAttachOptions) (GTK_EXPAND), 5, 0);
331
332 checkbutton_border_bottom = gtk_check_button_new_with_mnemonic (_("border bottom"));
333 gtk_widget_show (checkbutton_border_bottom);
334 gtk_table_attach (GTK_TABLE (table), checkbutton_border_bottom, 0, 1, 5, 6,
335 (GtkAttachOptions) (GTK_FILL),
336 (GtkAttachOptions) (GTK_EXPAND), 5, 0);
337
338 checkbutton_border_left = gtk_check_button_new_with_mnemonic (_("border left"));
339 gtk_widget_show (checkbutton_border_left);
340 gtk_table_attach (GTK_TABLE (table), checkbutton_border_left, 0, 1, 6, 7,
341 (GtkAttachOptions) (GTK_FILL),
342 (GtkAttachOptions) (GTK_EXPAND), 5, 0);
343
344 checkbutton_outline = gtk_check_button_new_with_mnemonic (_("outline"));
345 gtk_widget_show (checkbutton_outline);
346 gtk_table_attach (GTK_TABLE (table), checkbutton_outline, 0, 1, 7, 8,
347 (GtkAttachOptions) (GTK_FILL),
348 (GtkAttachOptions) (GTK_EXPAND), 5, 0);
349
350 button_fore = gtk_button_new ();
351 gtk_widget_show (button_fore);
352 gtk_table_attach (GTK_TABLE (table), button_fore, 2, 3, 0, 1,
353 (GtkAttachOptions) (GTK_FILL),
354 (GtkAttachOptions) (0), 5, 0);
355
356 alignment_fore = gtk_alignment_new (0.5, 0.5, 0, 0);
357 gtk_widget_show (alignment_fore);
358 gtk_container_add (GTK_CONTAINER (button_fore), alignment_fore);
359
360 hbox_fore = gtk_hbox_new (FALSE, 2);
361 gtk_widget_show (hbox_fore);
362 gtk_container_add (GTK_CONTAINER (alignment_fore), hbox_fore);
363
364 image_fore = gtk_image_new_from_stock ("gtk-select-color", GTK_ICON_SIZE_BUTTON);
365 gtk_widget_show (image_fore);
366 gtk_box_pack_start (GTK_BOX (hbox_fore), image_fore, FALSE, FALSE, 0);
367
368 label_fore = gtk_label_new_with_mnemonic (_(" "));
369 gtk_widget_show (label_fore);
370 gtk_box_pack_start (GTK_BOX (hbox_fore), label_fore, FALSE, FALSE, 0);
371 gtk_label_set_justify (GTK_LABEL (label_fore), GTK_JUSTIFY_LEFT);
372
373 button_back = gtk_button_new ();
374 gtk_widget_show (button_back);
375 gtk_table_attach (GTK_TABLE (table), button_back, 2, 3, 1, 2,
376 (GtkAttachOptions) (GTK_FILL),
377 (GtkAttachOptions) (0), 5, 0);
378
379 alignment_back = gtk_alignment_new (0.5, 0.5, 0, 0);
380 gtk_widget_show (alignment_back);
381 gtk_container_add (GTK_CONTAINER (button_back), alignment_back);
382
383 hbox_back = gtk_hbox_new (FALSE, 2);
384 gtk_widget_show (hbox_back);
385 gtk_container_add (GTK_CONTAINER (alignment_back), hbox_back);
386
387 image_back = gtk_image_new_from_stock ("gtk-select-color", GTK_ICON_SIZE_BUTTON);
388 gtk_widget_show (image_back);
389 gtk_box_pack_start (GTK_BOX (hbox_back), image_back, FALSE, FALSE, 0);
390
391 label_back = gtk_label_new_with_mnemonic (_(" "));
392 gtk_widget_show (label_back);
393 gtk_box_pack_start (GTK_BOX (hbox_back), label_back, FALSE, FALSE, 0);
394 gtk_label_set_justify (GTK_LABEL (label_back), GTK_JUSTIFY_LEFT);
395
396 button_attach = gtk_button_new ();
397 gtk_widget_show (button_attach);
398 gtk_table_attach (GTK_TABLE (table), button_attach, 2, 3, 2, 3,
399 (GtkAttachOptions) (GTK_FILL),
400 (GtkAttachOptions) (0), 5, 0);
401
402 alignment_attach = gtk_alignment_new (0.5, 0.5, 0, 0);
403 gtk_widget_show (alignment_attach);
404 gtk_container_add (GTK_CONTAINER (button_attach), alignment_attach);
405
406 hbox_attach = gtk_hbox_new (FALSE, 2);
407 gtk_widget_show (hbox_attach);
408 gtk_container_add (GTK_CONTAINER (alignment_attach), hbox_attach);
409
410 image_attach = gtk_image_new_from_stock ("gtk-select-color", GTK_ICON_SIZE_BUTTON);
411 gtk_widget_show (image_attach);
412 gtk_box_pack_start (GTK_BOX (hbox_attach), image_attach, FALSE, FALSE, 0);
413
414 label_attach = gtk_label_new_with_mnemonic (_(" "));
415 gtk_widget_show (label_attach);
416 gtk_box_pack_start (GTK_BOX (hbox_attach), label_attach, FALSE, FALSE, 0);
417 gtk_label_set_justify (GTK_LABEL (label_attach), GTK_JUSTIFY_LEFT);
418 /**/
419 button_border_top = gtk_button_new ();
420 gtk_widget_show (button_border_top);
421 gtk_table_attach (GTK_TABLE (table), button_border_top, 2, 3, 3, 4,
422 (GtkAttachOptions) (GTK_FILL),
423 (GtkAttachOptions) (0), 5, 0);
424
425 alignment_border_top = gtk_alignment_new (0.5, 0.5, 0, 0);
426 gtk_widget_show (alignment_border_top);
427 gtk_container_add (GTK_CONTAINER (button_border_top), alignment_border_top);
428
429 hbox_border_top = gtk_hbox_new (FALSE, 2);
430 gtk_widget_show (hbox_border_top);
431 gtk_container_add (GTK_CONTAINER (alignment_border_top), hbox_border_top);
432
433 image_border_top = gtk_image_new_from_stock ("gtk-select-color", GTK_ICON_SIZE_BUTTON);
434 gtk_widget_show (image_border_top);
435 gtk_box_pack_start (GTK_BOX (hbox_border_top), image_border_top, FALSE, FALSE, 0);
436
437 label_border_top = gtk_label_new_with_mnemonic (_(" "));
438 gtk_widget_show (label_border_top);
439 gtk_box_pack_start (GTK_BOX (hbox_border_top), label_border_top, FALSE, FALSE, 0);
440 gtk_label_set_justify (GTK_LABEL (label_border_top), GTK_JUSTIFY_LEFT);
441
442 button_border_right = gtk_button_new ();
443 gtk_widget_show (button_border_right);
444 gtk_table_attach (GTK_TABLE (table), button_border_right, 2, 3, 4, 5,
445 (GtkAttachOptions) (GTK_FILL),
446 (GtkAttachOptions) (0), 5, 0);
447
448 alignment_border_right = gtk_alignment_new (0.5, 0.5, 0, 0);
449 gtk_widget_show (alignment_border_right);
450 gtk_container_add (GTK_CONTAINER (button_border_right), alignment_border_right);
451
452 hbox_border_right = gtk_hbox_new (FALSE, 2);
453 gtk_widget_show (hbox_border_right);
454 gtk_container_add (GTK_CONTAINER (alignment_border_right), hbox_border_right);
455
456 image_border_right = gtk_image_new_from_stock ("gtk-select-color", GTK_ICON_SIZE_BUTTON);
457 gtk_widget_show (image_border_right);
458 gtk_box_pack_start (GTK_BOX (hbox_border_right), image_border_right, FALSE, FALSE, 0);
459
460 label_border_right = gtk_label_new_with_mnemonic (_(" "));
461 gtk_widget_show (label_border_right);
462 gtk_box_pack_start (GTK_BOX (hbox_border_right), label_border_right, FALSE, FALSE, 0);
463 gtk_label_set_justify (GTK_LABEL (label_border_right), GTK_JUSTIFY_LEFT);
464
465 button_border_bottom = gtk_button_new ();
466 gtk_widget_show (button_border_bottom);
467 gtk_table_attach (GTK_TABLE (table), button_border_bottom, 2, 3, 5, 6,
468 (GtkAttachOptions) (GTK_FILL),
469 (GtkAttachOptions) (0), 5, 0);
470
471 alignment_border_bottom = gtk_alignment_new (0.5, 0.5, 0, 0);
472 gtk_widget_show (alignment_border_bottom);
473 gtk_container_add (GTK_CONTAINER (button_border_bottom), alignment_border_bottom);
474
475 hbox_border_botom = gtk_hbox_new (FALSE, 2);
476 gtk_widget_show (hbox_border_botom);
477 gtk_container_add (GTK_CONTAINER (alignment_border_bottom), hbox_border_botom);
478
479 image_border_bottom = gtk_image_new_from_stock ("gtk-select-color", GTK_ICON_SIZE_BUTTON);
480 gtk_widget_show (image_border_bottom);
481 gtk_box_pack_start (GTK_BOX (hbox_border_botom), image_border_bottom, FALSE, FALSE, 0);
482
483 label_border_bottom = gtk_label_new_with_mnemonic (_(" "));
484 gtk_widget_show (label_border_bottom);
485 gtk_box_pack_start (GTK_BOX (hbox_border_botom), label_border_bottom, FALSE, FALSE, 0);
486 gtk_label_set_justify (GTK_LABEL (label_border_bottom), GTK_JUSTIFY_LEFT);
487
488 button_border_left = gtk_button_new ();
489 gtk_widget_show (button_border_left);
490 gtk_table_attach (GTK_TABLE (table), button_border_left, 2, 3, 6, 7,
491 (GtkAttachOptions) (GTK_FILL),
492 (GtkAttachOptions) (0), 5, 0);
493
494 alignment_border_left = gtk_alignment_new (0.5, 0.5, 0, 0);
495 gtk_widget_show (alignment_border_left);
496 gtk_container_add (GTK_CONTAINER (button_border_left), alignment_border_left);
497
498 hbox_border_left = gtk_hbox_new (FALSE, 2);
499 gtk_widget_show (hbox_border_left);
500 gtk_container_add (GTK_CONTAINER (alignment_border_left), hbox_border_left);
501
502 image_border_left = gtk_image_new_from_stock ("gtk-select-color", GTK_ICON_SIZE_BUTTON);
503 gtk_widget_show (image_border_left);
504 gtk_box_pack_start (GTK_BOX (hbox_border_left), image_border_left, FALSE, FALSE, 0);
505
506 label_border_left = gtk_label_new_with_mnemonic (_(" "));
507 gtk_widget_show (label_border_left);
508 gtk_box_pack_start (GTK_BOX (hbox_border_left), label_border_left, FALSE, FALSE, 0);
509 gtk_label_set_justify (GTK_LABEL (label_border_left), GTK_JUSTIFY_LEFT);
510
511 button_outline = gtk_button_new ();
512 gtk_widget_show (button_outline);
513 gtk_table_attach (GTK_TABLE (table), button_outline, 2, 3, 7, 8,
514 (GtkAttachOptions) (GTK_FILL),
515 (GtkAttachOptions) (0), 5, 0);
516
517 alignment_outline = gtk_alignment_new (0.5, 0.5, 0, 0);
518 gtk_widget_show (alignment_outline);
519 gtk_container_add (GTK_CONTAINER (button_outline), alignment_outline);
520
521 hbox_outline = gtk_hbox_new (FALSE, 2);
522 gtk_widget_show (hbox_outline);
523 gtk_container_add (GTK_CONTAINER (alignment_outline), hbox_outline);
524
525 image_outline = gtk_image_new_from_stock ("gtk-select-color", GTK_ICON_SIZE_BUTTON);
526 gtk_widget_show (image_outline);
527 gtk_box_pack_start (GTK_BOX (hbox_outline), image_outline, FALSE, FALSE, 0);
528
529 label_outline = gtk_label_new_with_mnemonic (_(" "));
530 gtk_widget_show (label_outline);
531 gtk_box_pack_start (GTK_BOX (hbox_outline), label_outline, FALSE, FALSE, 0);
532 gtk_label_set_justify (GTK_LABEL (label_outline), GTK_JUSTIFY_LEFT);
533
534 dialog_action_area = GTK_DIALOG (color_wizard_dialog)->action_area;
535 gtk_widget_show (dialog_action_area);
536 gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area), GTK_BUTTONBOX_END);
537
538 cancelbutton = gtk_button_new_from_stock ("gtk-cancel");
539 gtk_widget_show (cancelbutton);
540 gtk_dialog_add_action_widget (GTK_DIALOG (color_wizard_dialog), cancelbutton, GTK_RESPONSE_CANCEL);
541 GTK_WIDGET_SET_FLAGS (cancelbutton, GTK_CAN_DEFAULT);
542
543 applybutton = gtk_button_new_from_stock ("gtk-apply");
544 gtk_widget_show (applybutton);
545 gtk_dialog_add_action_widget (GTK_DIALOG (color_wizard_dialog), applybutton, GTK_RESPONSE_APPLY);
546 GTK_WIDGET_SET_FLAGS (applybutton, GTK_CAN_DEFAULT);
547
548 okbutton = gtk_button_new_from_stock ("gtk-ok");
549 gtk_widget_show (okbutton);
550 gtk_dialog_add_action_widget (GTK_DIALOG (color_wizard_dialog), okbutton, GTK_RESPONSE_OK);
551 GTK_WIDGET_SET_FLAGS (okbutton, GTK_CAN_DEFAULT);
552
553 /*
554 g_signal_connect ((gpointer) color_wizard_dialog, "close",
555 G_CALLBACK (on_color_wizard_dialog_close),
556 NULL);
557 */
558 g_signal_connect ((gpointer) button_fore, "clicked",
559 G_CALLBACK (on_button_fore_clicked),
560 NULL);
561 g_signal_connect ((gpointer) button_back, "clicked",
562 G_CALLBACK (on_button_back_clicked),
563 NULL);
564 g_signal_connect ((gpointer) button_attach, "clicked",
565 G_CALLBACK (on_button_attach_clicked),
566 NULL);
567 g_signal_connect ((gpointer) button_border_top, "clicked",
568 G_CALLBACK (on_button_border_top_clicked),
569 NULL);
570 g_signal_connect ((gpointer) button_border_right, "clicked",
571 G_CALLBACK (on_button_border_right_clicked),
572 NULL);
573 g_signal_connect ((gpointer) button_border_bottom, "clicked",
574 G_CALLBACK (on_button_border_bottom_clicked),
575 NULL);
576 g_signal_connect ((gpointer) button_border_left, "clicked",
577 G_CALLBACK (on_button_border_left_clicked),
578 NULL);
579 g_signal_connect ((gpointer) button_outline, "clicked",
580 G_CALLBACK (on_button_outline_clicked),
581 NULL);
582 g_signal_connect ((gpointer) cancelbutton, "clicked",
583 G_CALLBACK (on_cancelbutton_clicked),
584 color_wizard_dialog);
585 g_signal_connect ((gpointer) applybutton, "clicked",
586 G_CALLBACK (on_applybutton_clicked),
587 window);
588 g_signal_connect ((gpointer) okbutton, "clicked",
589 G_CALLBACK (on_okbutton_clicked),
590 window);
591
592
593 GLADE_HOOKUP_OBJECT_NO_REF (color_wizard_dialog, color_wizard_dialog, "color_wizard_dialog");
594 GLADE_HOOKUP_OBJECT (color_wizard_dialog, combo_entry_fore, "combo_entry_fore");
595 GLADE_HOOKUP_OBJECT (color_wizard_dialog, combo_entry_back, "combo_entry_back");
596 GLADE_HOOKUP_OBJECT (color_wizard_dialog, combo_entry_attach, "combo_entry_attach");
597 GLADE_HOOKUP_OBJECT (color_wizard_dialog, combo_entry_border_top, "combo_entry_border_top");
598 GLADE_HOOKUP_OBJECT (color_wizard_dialog, combo_entry_border_right, "combo_entry_border_right");
599 GLADE_HOOKUP_OBJECT (color_wizard_dialog, combo_entry_border_bottom, "combo_entry_border_bottom");
600 GLADE_HOOKUP_OBJECT (color_wizard_dialog, combo_entry_border_left, "combo_entry_border_left");
601 GLADE_HOOKUP_OBJECT (color_wizard_dialog, combo_entry_border_left, "combo_entry_border_left");
602 GLADE_HOOKUP_OBJECT (color_wizard_dialog, checkbutton_fore, "checkbutton_fore");
603 GLADE_HOOKUP_OBJECT (color_wizard_dialog, checkbutton_back, "checkbutton_back");
604 GLADE_HOOKUP_OBJECT (color_wizard_dialog, checkbutton_attach, "checkbutton_attach");
605 GLADE_HOOKUP_OBJECT (color_wizard_dialog, checkbutton_border_top, "checkbutton_border_top");
606 GLADE_HOOKUP_OBJECT (color_wizard_dialog, checkbutton_border_right, "checkbutton_border_right");
607 GLADE_HOOKUP_OBJECT (color_wizard_dialog, checkbutton_border_bottom, "checkbutton_border_bottom");
608 GLADE_HOOKUP_OBJECT (color_wizard_dialog, checkbutton_border_left, "checkbutton_border_left");
609 GLADE_HOOKUP_OBJECT (color_wizard_dialog, checkbutton_border_left, "checkbutton_border_left");
610 GLADE_HOOKUP_OBJECT (color_wizard_dialog, checkbutton_outline,"checkbutton_outline");
611 GLADE_HOOKUP_OBJECT (color_wizard_dialog, combo_entry_outline,"combo_entry_outline");
612 GLADE_HOOKUP_OBJECT (color_wizard_dialog, button_fore, "button_fore");
613 GLADE_HOOKUP_OBJECT (color_wizard_dialog, label_fore, "label_fore");
614 GLADE_HOOKUP_OBJECT (color_wizard_dialog, button_back, "button_back");
615 GLADE_HOOKUP_OBJECT (color_wizard_dialog, label_back, "label_back");
616 GLADE_HOOKUP_OBJECT (color_wizard_dialog, button_attach, "button_attach");
617 GLADE_HOOKUP_OBJECT (color_wizard_dialog, label_attach, "label_attach");
618 GLADE_HOOKUP_OBJECT (color_wizard_dialog, button_border_top, "button_border_top");
619 GLADE_HOOKUP_OBJECT (color_wizard_dialog, label_border_top, "label_border_top");
620 GLADE_HOOKUP_OBJECT (color_wizard_dialog, button_border_right, "button_border_right");
621 GLADE_HOOKUP_OBJECT (color_wizard_dialog, label_border_right, "label_border_right");
622 GLADE_HOOKUP_OBJECT (color_wizard_dialog, button_border_bottom, "button_border_bottom");
623 GLADE_HOOKUP_OBJECT (color_wizard_dialog, label_border_bottom, "label_border_bottom");
624 GLADE_HOOKUP_OBJECT (color_wizard_dialog, button_border_left, "button_border_left");
625 GLADE_HOOKUP_OBJECT (color_wizard_dialog, label_border_left, "label_border_left");
626 GLADE_HOOKUP_OBJECT (color_wizard_dialog, button_outline, "button_outline");
627 GLADE_HOOKUP_OBJECT (color_wizard_dialog, label_outline, "label_outline");
628 GLADE_HOOKUP_OBJECT (color_wizard_dialog, cancelbutton, "cancelbutton");
629 GLADE_HOOKUP_OBJECT (color_wizard_dialog, applybutton, "applybutton");
630 GLADE_HOOKUP_OBJECT (color_wizard_dialog, okbutton, "okbutton");
631
632 return color_wizard_dialog;
633 }
634
635 /* callbacks */
636 void
on_color_wizard_dialog_close(GtkDialog * dialog,gpointer user_data)637 on_color_wizard_dialog_close (GtkDialog *dialog,
638 gpointer user_data)
639 {
640 gtk_widget_destroy(GTK_WIDGET(dialog));
641 }
642
643
644 void
on_button_fore_clicked(GtkButton * button,gpointer user_data)645 on_button_fore_clicked (GtkButton *button,
646 gpointer user_data)
647 {
648 GtkWidget* entry;
649 GtkWidget* label;
650 GtkWidget* toggle;
651
652 entry = lookup_widget(GTK_WIDGET(button),"combo_entry_fore");
653 label = lookup_widget(GTK_WIDGET(button),"label_fore");
654 toggle = lookup_widget(GTK_WIDGET(button),"checkbutton_fore");
655
656 set_color_and_label( entry, label);
657 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toggle),TRUE);
658 }
659
660
661 void
on_button_back_clicked(GtkButton * button,gpointer user_data)662 on_button_back_clicked (GtkButton *button,
663 gpointer user_data)
664 {
665 GtkWidget* entry;
666 GtkWidget* label;
667 GtkWidget* toggle;
668
669 entry = lookup_widget(GTK_WIDGET(button),"combo_entry_back");
670 label = lookup_widget(GTK_WIDGET(button),"label_back");
671 toggle = lookup_widget(GTK_WIDGET(button),"checkbutton_back");
672
673 set_color_and_label( entry, label);
674 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toggle),TRUE);
675 }
676
677 void
on_button_attach_clicked(GtkButton * button,gpointer user_data)678 on_button_attach_clicked(GtkButton *button, gpointer user_data)
679 {
680 GtkWidget* entry;
681 GtkWidget* label;
682 GtkWidget* toggle;
683
684 entry = lookup_widget(GTK_WIDGET(button),"combo_entry_attach");
685 label = lookup_widget(GTK_WIDGET(button),"label_attach");
686 toggle = lookup_widget(GTK_WIDGET(button),"checkbutton_attach");
687
688 set_color_and_label( entry, label);
689 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toggle),TRUE);
690 }
691
692 void
on_button_border_top_clicked(GtkButton * button,gpointer user_data)693 on_button_border_top_clicked(GtkButton *button, gpointer user_data)
694 {
695 GtkWidget* entry;
696 GtkWidget* label;
697 GtkWidget* toggle;
698
699 entry = lookup_widget(GTK_WIDGET(button),"combo_entry_border_top");
700 label = lookup_widget(GTK_WIDGET(button),"label_border_top");
701 toggle = lookup_widget(GTK_WIDGET(button),"checkbutton_border_top");
702
703 set_color_and_label( entry, label);
704 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toggle),TRUE);
705 }
706
707 void
on_button_border_right_clicked(GtkButton * button,gpointer user_data)708 on_button_border_right_clicked(GtkButton *button, gpointer user_data)
709 {
710 GtkWidget* entry;
711 GtkWidget* label;
712 GtkWidget* toggle;
713
714 entry = lookup_widget(GTK_WIDGET(button),"combo_entry_border_right");
715 label = lookup_widget(GTK_WIDGET(button),"label_border_right");
716 toggle = lookup_widget(GTK_WIDGET(button),"checkbutton_border_right");
717
718 set_color_and_label( entry, label);
719 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toggle),TRUE);
720 }
721
722 void
on_button_border_bottom_clicked(GtkButton * button,gpointer user_data)723 on_button_border_bottom_clicked(GtkButton *button, gpointer user_data)
724 {
725 GtkWidget* entry;
726 GtkWidget* label;
727 GtkWidget* toggle;
728
729 entry = lookup_widget(GTK_WIDGET(button),"combo_entry_border_bottom");
730 label = lookup_widget(GTK_WIDGET(button),"label_border_bottom");
731 toggle = lookup_widget(GTK_WIDGET(button),"checkbutton_border_bottom");
732
733 set_color_and_label( entry, label);
734 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toggle),TRUE);
735 }
736
737 void
on_button_border_left_clicked(GtkButton * button,gpointer user_data)738 on_button_border_left_clicked(GtkButton *button, gpointer user_data)
739 {
740 GtkWidget* entry;
741 GtkWidget* label;
742 GtkWidget* toggle;
743
744 entry = lookup_widget(GTK_WIDGET(button),"combo_entry_border_left");
745 label = lookup_widget(GTK_WIDGET(button),"label_border_left");
746 toggle = lookup_widget(GTK_WIDGET(button),"checkbutton_border_left");
747
748 set_color_and_label( entry, label);
749 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toggle),TRUE);
750 }
751
752 void
on_button_outline_clicked(GtkButton * button,gpointer user_data)753 on_button_outline_clicked (GtkButton *button, gpointer user_data)
754 {
755 GtkWidget* entry;
756 GtkWidget* label;
757 GtkWidget* toggle;
758
759 entry = lookup_widget(GTK_WIDGET(button),"combo_entry_outline");
760 label = lookup_widget(GTK_WIDGET(button),"label_outline");
761 toggle = lookup_widget(GTK_WIDGET(button),"checkbutton_outline");
762
763 set_color_and_label( entry, label);
764 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toggle),TRUE);
765 }
766
767 void
on_cancelbutton_clicked(GtkButton * button,gpointer user_data)768 on_cancelbutton_clicked (GtkButton *button,
769 gpointer user_data)
770 {
771 gtk_widget_destroy(GTK_WIDGET(user_data));
772 }
773
774
775 void
on_applybutton_clicked(GtkButton * button,gpointer user_data)776 on_applybutton_clicked (GtkButton *button,
777 gpointer user_data)
778 {
779 write_results_to_document(GTK_WIDGET(button), CSSED_WINDOW(user_data));
780 }
781
782
783 void
on_okbutton_clicked(GtkButton * button,gpointer user_data)784 on_okbutton_clicked (GtkButton *button,
785 gpointer user_data)
786 {
787 GtkWidget* dialog;
788
789 dialog = lookup_widget(GTK_WIDGET(button),"color_wizard_dialog");
790 write_results_to_document(GTK_WIDGET(button), CSSED_WINDOW(user_data));
791 gtk_widget_destroy(dialog);
792 }
793
794 void
set_color_and_label(GtkWidget * entry,GtkWidget * label)795 set_color_and_label( GtkWidget* entry, GtkWidget* label)
796 {
797 GtkWidget* colorselection;
798 GtkWidget *colorsel;
799 GdkColor color;
800 gint resp;
801 gchar* markup;
802 gchar* colorstr;
803
804 colorselection = gtk_color_selection_dialog_new (_("Select a color") );
805 colorsel = GTK_COLOR_SELECTION_DIALOG(colorselection)->colorsel;
806 gtk_color_selection_set_has_palette( GTK_COLOR_SELECTION(colorsel), TRUE );
807
808 resp = gtk_dialog_run( GTK_DIALOG(colorselection) );
809
810 if( resp == GTK_RESPONSE_OK ){
811 gtk_color_selection_get_current_color(
812 GTK_COLOR_SELECTION(colorsel),
813 &color);
814 colorstr = gdk_color_to_rgb_triplet_string( &color );
815 gtk_entry_set_text(GTK_ENTRY(entry),colorstr);
816 markup = g_strdup_printf("<span background='%s'> </span>",colorstr);
817 gtk_label_set_text(GTK_LABEL(label),markup);
818 gtk_label_set_use_markup(GTK_LABEL(label), TRUE);
819 g_free( colorstr );
820 g_free( markup );
821 }
822 gtk_widget_destroy( colorselection );
823 }
824
825 void
write_results_to_document(GtkWidget * parent,CssedWindow * window)826 write_results_to_document(GtkWidget* parent, CssedWindow* window)
827 {
828 GtkWidget* checkbutton_fore;
829 GtkWidget* checkbutton_back;
830 GtkWidget* checkbutton_attach;
831 GtkWidget* checkbutton_border_top;
832 GtkWidget* checkbutton_border_right;
833 GtkWidget* checkbutton_border_bottom;
834 GtkWidget* checkbutton_border_left;
835 GtkWidget* checkbutton_outline;
836 GtkWidget* combo_entry_fore;
837 GtkWidget* combo_entry_back;
838 GtkWidget* combo_entry_attach;
839 GtkWidget* combo_entry_border_top;
840 GtkWidget* combo_entry_border_right;
841 GtkWidget* combo_entry_border_bottom;
842 GtkWidget* combo_entry_border_left;
843 GtkWidget* combo_entry_outline;
844 gboolean bfore;
845 gboolean bback;
846 gboolean battach;
847 gboolean bborder_top;
848 gboolean bborder_right;
849 gboolean bborder_bottom;
850 gboolean bborder_left;
851 gboolean boutline;
852 gchar* color;
853 CssedDoc* doc;
854
855 doc = document_get_current(window);
856
857 checkbutton_fore = lookup_widget(parent, "checkbutton_fore");
858 checkbutton_back = lookup_widget(parent, "checkbutton_back");
859 checkbutton_attach = lookup_widget(parent, "checkbutton_attach");
860 checkbutton_border_top = lookup_widget(parent, "checkbutton_border_top");
861 checkbutton_border_right = lookup_widget(parent, "checkbutton_border_right");
862 checkbutton_border_bottom = lookup_widget(parent, "checkbutton_border_bottom");
863 checkbutton_border_left = lookup_widget(parent, "checkbutton_border_left");
864 checkbutton_outline = lookup_widget(parent, "checkbutton_outline");
865
866 bfore = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(checkbutton_fore));
867 bback = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(checkbutton_back));
868 battach = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(checkbutton_attach));
869 bborder_top = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(checkbutton_border_top));
870 bborder_right = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(checkbutton_border_right));
871 bborder_bottom = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(checkbutton_border_bottom));
872 bborder_left = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(checkbutton_border_left));
873 boutline = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(checkbutton_outline));
874
875 if(!bfore && !bback && !battach && !bborder_top &&
876 !bborder_right && !bborder_bottom && !bborder_left && !boutline )
877 {
878 cssed_error_message("No value to add", "Nothing was selected.");
879 return;
880 }
881
882 if(bfore){
883 combo_entry_fore = lookup_widget(parent, "combo_entry_fore");
884 color = gtk_editable_get_chars(GTK_EDITABLE(combo_entry_fore), 0, -1);
885 document_add_text(doc, "\tcolor: ");
886 document_add_text(doc, color);
887 document_add_text_line(doc, ";");
888 g_free(color);
889 color = NULL;
890 }
891
892 if(bback){
893 combo_entry_back = lookup_widget(parent, "combo_entry_back");
894 color = gtk_editable_get_chars(GTK_EDITABLE(combo_entry_back), 0, -1);
895 document_add_text(doc,"\tbackground-color: ");
896 document_add_text(doc,color);
897 document_add_text_line(doc,";");
898 g_free(color);
899 color = NULL;
900 }
901
902 if(battach){
903 combo_entry_attach = lookup_widget(parent, "combo_entry_attach");
904 color = gtk_editable_get_chars(GTK_EDITABLE(combo_entry_attach), 0, -1);
905 document_add_text(doc,"\tbackground-attachment: ");
906 document_add_text(doc,color);
907 document_add_text_line(doc,";");
908 g_free(color);
909 color = NULL;
910 }
911
912 if(bborder_top){
913 combo_entry_border_top = lookup_widget(parent, "combo_entry_border_top");
914 color = gtk_editable_get_chars(GTK_EDITABLE(combo_entry_border_top), 0, -1);
915 document_add_text(doc,"\tborder-top-color: ");
916 document_add_text(doc,color);
917 document_add_text_line(doc,";");
918 g_free(color);
919 color = NULL;
920 }
921
922 if(bborder_right){
923 combo_entry_border_right = lookup_widget(parent, "combo_entry_border_right");
924 color = gtk_editable_get_chars(GTK_EDITABLE(combo_entry_border_right), 0, -1);
925 document_add_text(doc,"\tborder-right-color: ");
926 document_add_text(doc,color);
927 document_add_text_line(doc,";");
928 g_free(color);
929 color = NULL;
930 }
931
932 if(bborder_bottom){
933 combo_entry_border_bottom = lookup_widget(parent, "combo_entry_border_bottom");
934 color = gtk_editable_get_chars(GTK_EDITABLE(combo_entry_border_bottom), 0, -1);
935 document_add_text(doc,"\tborder-bottom-color: ");
936 document_add_text(doc,color);
937 document_add_text_line(doc,";");
938 g_free(color);
939 color = NULL;
940 }
941
942 if(bborder_left){
943 combo_entry_border_left = lookup_widget(parent, "combo_entry_border_left");
944 color = gtk_editable_get_chars(GTK_EDITABLE(combo_entry_border_left), 0, -1);
945 document_add_text(doc,"\tborder-left-color: ");
946 document_add_text(doc,color);
947 document_add_text_line(doc,";");
948 g_free(color);
949 color = NULL;
950 }
951
952 if(boutline){
953 combo_entry_outline = lookup_widget(parent, "combo_entry_outline");
954 color = gtk_editable_get_chars(GTK_EDITABLE(combo_entry_outline), 0, -1);
955 document_add_text(doc,"\toutline-color: ");
956 document_add_text(doc,color);
957 document_add_text_line(doc,";");
958 g_free(color);
959 color = NULL;
960 }
961 }
962