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 <gtk/gtk.h>
23 #include <string.h>
24
25 #include "cssdialogs-strings.h"
26 #include "cssedwindow.h"
27 #include "document.h"
28 #include "support.h"
29 #include "utils.h"
30 #include "cssdialogs-functions.h"
31
32 void
on_angle_property_dialog_ok_button_clicked(GtkButton * button,gpointer user_data)33 on_angle_property_dialog_ok_button_clicked (GtkButton * button, gpointer user_data)
34 {
35 CssedCssDialogsData *data;
36 CssedWindow *window;
37 CssedDoc* tmpdoc;
38 GtkWidget *angle_property_dialog;
39 gboolean add_previous;
40 //gchar *previous_string;
41 gchar *output_string;
42
43 data = (CssedCssDialogsData *) user_data;
44 window = CSSED_WINDOW (data->main_window);
45 tmpdoc = document_get_current( window );
46 add_previous = data->add_property_string;
47
48 angle_property_dialog =
49 lookup_widget (GTK_WIDGET (button), "angle_property_dialog");
50 output_string = cssdialog_angle_property_get_string ( window, (gpointer) button );
51 if (output_string != NULL)
52 {
53 //document_new_undo_action(tmpdoc);
54 if (add_previous)
55 {
56 document_add_text (tmpdoc,
57 (gchar *) data->previous_string);
58 document_add_text (tmpdoc, ": ");
59 }
60 document_add_text (tmpdoc, output_string);
61 if (add_previous)
62 {
63 document_add_text (tmpdoc, ";\n");
64 if( document_last_line_is_indented(tmpdoc) )
65 document_indent_as_last_line(tmpdoc);
66 else
67 document_add_text (tmpdoc, "\t");
68 }
69 //document_new_undo_action(tmpdoc);
70 g_free (output_string);
71 }
72
73 g_free (data->previous_string);
74 g_free (user_data);
75 gtk_widget_destroy (angle_property_dialog);
76 }
77
on_background_property_dialog_okbutton_clicked(GtkButton * button,gpointer user_data)78 void on_background_property_dialog_okbutton_clicked
79 (GtkButton * button, gpointer user_data)
80 {
81 CssedCssDialogsData *data;
82 CssedWindow *window;
83 CssedDoc* tmpdoc;
84 gboolean add_previous;
85 GtkWidget *background_property_dialog;
86 gchar *output_string;
87
88 data = (CssedCssDialogsData *) user_data;
89 window = CSSED_WINDOW (data->main_window);
90 tmpdoc = document_get_current( window );
91 add_previous = data->add_property_string;
92
93 background_property_dialog =
94 lookup_widget (GTK_WIDGET (button), "background_property_dialog");
95
96 output_string =
97 cssdialog_background_property_get_string ( window, (gpointer) button );
98 if (output_string != NULL)
99 {
100 //document_new_undo_action(tmpdoc);
101 if (add_previous)
102 {
103 document_add_text (tmpdoc, (gchar *) data->previous_string);
104 document_add_text (tmpdoc, ": ");
105 }
106 document_add_text (tmpdoc, output_string);
107 if (add_previous)
108 {
109 document_add_text (tmpdoc, ";\n");
110 if( document_last_line_is_indented(tmpdoc) )
111 document_indent_as_last_line(tmpdoc);
112 else
113 document_add_text (tmpdoc, "\t");
114 }
115 //document_new_undo_action(tmpdoc);
116 g_free (output_string);
117 }
118
119 g_free (data->previous_string);
120 g_free (user_data);
121 gtk_widget_destroy (background_property_dialog);
122 }
123
124 void
on_border_properties_okbutton_clicked(GtkButton * button,gpointer user_data)125 on_border_properties_okbutton_clicked (GtkButton * button, gpointer user_data)
126 {
127 CssedCssDialogsData *data;
128 CssedWindow *window;
129 CssedDoc* tmpdoc;
130 gboolean add_previous;
131 GtkWidget *border_properties_dialog;
132 gchar *output_string;
133
134 data = (CssedCssDialogsData *) user_data;
135 window = CSSED_WINDOW (data->main_window);
136 tmpdoc = document_get_current( window );
137 add_previous = data->add_property_string;
138
139 border_properties_dialog =
140 lookup_widget (GTK_WIDGET (button),
141 "border_properties_dialog");
142
143
144 output_string =
145 cssdialog_border_properties_get_string ( window, (gpointer) button );
146 if (output_string != NULL)
147 {
148 //document_new_undo_action(tmpdoc);
149 if (add_previous)
150 {
151 document_add_text (tmpdoc,
152 (gchar *) data->previous_string);
153 document_add_text (tmpdoc, ": ");
154 }
155
156 document_add_text (tmpdoc, output_string);
157
158 if (add_previous)
159 {
160 document_add_text (tmpdoc, ";\n");
161 if( document_last_line_is_indented(tmpdoc) )
162 document_indent_as_last_line(tmpdoc);
163 else
164 document_add_text (tmpdoc, "\t");
165 }
166 //document_new_undo_action(tmpdoc);
167 g_free (output_string);
168 }
169
170 g_free (data->previous_string);
171 g_free (user_data);
172 gtk_widget_destroy (border_properties_dialog);
173 }
174
on_border_width_properties_dialog_okbutton_clicked(GtkButton * button,gpointer user_data)175 void on_border_width_properties_dialog_okbutton_clicked
176 (GtkButton * button, gpointer user_data)
177 {
178 CssedCssDialogsData *data;
179 CssedWindow *window;
180 CssedDoc* tmpdoc;
181 gboolean add_previous;
182 GtkWidget *border_width_properties_dialog;
183 gchar *output_string;
184
185 data = (CssedCssDialogsData *) user_data;
186 window = CSSED_WINDOW (data->main_window);
187 tmpdoc = document_get_current( window );
188 add_previous = data->add_property_string;
189
190 border_width_properties_dialog =
191 lookup_widget (GTK_WIDGET (button),
192 "border_width_properties_dialog");
193
194 output_string =
195 cssdialog_border_width_properties_get_string ( window, (gpointer) button );
196 if (output_string != NULL)
197 {
198 //document_new_undo_action(tmpdoc);
199 if (add_previous)
200 {
201 document_add_text (tmpdoc,
202 (gchar *) data->previous_string);
203 document_add_text (tmpdoc, ": ");
204 }
205
206 document_add_text (tmpdoc, output_string);
207
208 if (add_previous)
209 {
210 document_add_text (tmpdoc, ";\n");
211 if( document_last_line_is_indented(tmpdoc) )
212 document_indent_as_last_line(tmpdoc);
213 else
214 document_add_text (tmpdoc, "\t");
215 }
216 //document_new_undo_action(tmpdoc);
217 g_free (output_string);
218 }
219 g_free (data->previous_string);
220 g_free (user_data);
221 gtk_widget_destroy (border_width_properties_dialog);
222 }
223
on_border_width_single_okbutton_clicked(GtkButton * button,gpointer user_data)224 void on_border_width_single_okbutton_clicked
225 (GtkButton * button, gpointer user_data)
226 {
227 CssedCssDialogsData *data;
228 CssedWindow *window;
229 CssedDoc* tmpdoc;
230 gboolean add_previous;
231 GtkWidget *border_width_single_properties_dialog;
232 gchar *output_string;
233
234 data = (CssedCssDialogsData *) user_data;
235 window = CSSED_WINDOW (data->main_window);
236 tmpdoc = document_get_current( window );
237 add_previous = data->add_property_string;
238
239 border_width_single_properties_dialog =
240 lookup_widget (GTK_WIDGET (button),
241 "border_width_single_properties_dialog");
242
243 output_string =
244 cssdialog_border_width_properties_get_string ( window, (gpointer) button );
245 if (output_string != NULL)
246 {
247 //document_new_undo_action(tmpdoc);
248 if (add_previous)
249 {
250 document_add_text (tmpdoc,
251 (gchar *) data->previous_string);
252 document_add_text (tmpdoc, ": ");
253 }
254
255 document_add_text (tmpdoc, output_string);
256
257 if (add_previous)
258 {
259 document_add_text (tmpdoc, ";\n");
260 if( document_last_line_is_indented(tmpdoc) )
261 document_indent_as_last_line(tmpdoc);
262 else
263 document_add_text (tmpdoc, "\t");
264 }
265 //document_new_undo_action(tmpdoc);
266 g_free (output_string);
267 }
268
269 g_free (data->previous_string);
270 g_free (user_data);
271 gtk_widget_destroy (border_width_single_properties_dialog);
272 }
273
274 /* This add counters, and needs three callbacks
275 as various counters can be added to the list.
276 * ************************************************************************** */
on_button_counter_increment_reset_add_clicked(GtkButton * button,gpointer user_data)277 void on_button_counter_increment_reset_add_clicked
278 (GtkButton * button, gpointer user_data)
279 {
280 GtkListStore *store;
281 GtkWidget *spinbutton;
282 GtkWidget *entry;
283 GtkTreeIter iter;
284 gchar *strident;
285 gint increment;
286
287 spinbutton =
288 lookup_widget (GTK_WIDGET (button),
289 "spinbutton_counter_increment_reset_step");
290 entry = lookup_widget (GTK_WIDGET (button),
291 "entry_counter_increment_reset_identifyer");
292
293 strident = gtk_editable_get_chars (GTK_EDITABLE (entry), 0, -1);
294 increment =
295 gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON
296 (spinbutton));
297
298 store = (GtkListStore *) user_data;
299 gtk_list_store_append (store, &iter);
300 gtk_list_store_set (store, &iter, 0, strident, 1, increment, -1);
301
302 g_free (strident);
303 }
304
305
on_button_counter_increment_reset_del_clicked(GtkButton * button,gpointer user_data)306 void on_button_counter_increment_reset_del_clicked
307 (GtkButton * button, gpointer user_data)
308 {
309 GtkListStore *store;
310 GtkWidget *treeview;
311 GtkTreeSelection *selection;
312 gboolean isselected;
313 GtkTreeIter iter;
314
315 store = (GtkListStore *) user_data;
316 treeview = lookup_widget (GTK_WIDGET (button), "treeview");
317 selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview));
318 isselected = gtk_tree_selection_get_selected (selection, NULL, &iter);
319
320 if (isselected)
321 {
322 gtk_list_store_remove (store, &iter);
323 }
324 }
325
on_dialog_counter_increment_reset_okbutton_clicked(GtkButton * button,gpointer user_data)326 void on_dialog_counter_increment_reset_okbutton_clicked
327 (GtkButton * button, gpointer user_data)
328 {
329 CssedCssDialogsData *data;
330 CssedWindow *window;
331 CssedDoc* tmpdoc;
332 gboolean add_previous;
333 GtkWidget *counter_increment_reset_dialog;
334 gchar *output_string;
335
336 data = (CssedCssDialogsData *) user_data;
337 window = CSSED_WINDOW (data->main_window);
338 tmpdoc = document_get_current( window );
339 add_previous = data->add_property_string;
340
341
342 counter_increment_reset_dialog =
343 lookup_widget (GTK_WIDGET (button),
344 "counter_increment_reset_dialog");
345 output_string =
346 cssdialog_counter_increment_reset_get_string ( window, (gpointer) button );
347 if (output_string != NULL)
348 {
349 //document_new_undo_action(tmpdoc);
350 if (add_previous)
351 {
352 document_add_text (tmpdoc,
353 (gchar *) data->previous_string);
354 document_add_text (tmpdoc, ": ");
355 }
356
357 document_add_text (tmpdoc, output_string);
358
359 if (add_previous)
360 {
361 document_add_text (tmpdoc, ";\n");
362 if( document_last_line_is_indented(tmpdoc) )
363 document_indent_as_last_line(tmpdoc);
364 else
365 document_add_text (tmpdoc, "\t");
366 }
367 //document_new_undo_action(tmpdoc);
368 g_free (output_string);
369 }
370 g_free (data->previous_string);
371 g_free (user_data);
372 gtk_widget_destroy (counter_increment_reset_dialog);
373 }
374
on_string_properties_dialog_okbutton_clicked(GtkButton * button,gpointer user_data)375 void on_string_properties_dialog_okbutton_clicked
376 (GtkButton * button, gpointer user_data)
377 {
378 CssedCssDialogsData *data;
379 CssedWindow *window;
380 CssedDoc* tmpdoc;
381 gboolean add_previous;
382 GtkWidget *string_properties_dialog;
383 gchar *output_string;
384
385
386 data = (CssedCssDialogsData *) user_data;
387 window = CSSED_WINDOW (data->main_window);
388 tmpdoc = document_get_current( window );
389 add_previous = data->add_property_string;
390
391 string_properties_dialog =
392 lookup_widget (GTK_WIDGET (button),
393 "string_properties_dialog");
394
395 output_string =
396 cssdialog_string_properties_get_string ( window, (gpointer) button );
397 if (output_string != NULL)
398 {
399 //document_new_undo_action(tmpdoc);
400 if (add_previous)
401 {
402 document_add_text (tmpdoc,
403 (gchar *) data->previous_string);
404 document_add_text (tmpdoc, ": ");
405 }
406 document_add_text (tmpdoc, output_string);
407 if (add_previous)
408 {
409 document_add_text (tmpdoc, ";\n");
410 if( document_last_line_is_indented(tmpdoc) )
411 document_indent_as_last_line(tmpdoc);
412 else
413 document_add_text (tmpdoc, "\t");
414 }
415 //document_new_undo_action(tmpdoc);
416 g_free (output_string);
417 g_free (data->previous_string);
418 g_free (user_data);
419 gtk_widget_destroy (string_properties_dialog);
420 }
421 else
422 {
423 document_write_error_to_program_output (tmpdoc,
424 _
425 ("string dialog: refusing to add empty values."),
426 ERROR_COLOR_STRING);
427 }
428 }
429
430 void
on_uri_value_dialog_okbutton_clicked(GtkButton * button,gpointer user_data)431 on_uri_value_dialog_okbutton_clicked (GtkButton * button, gpointer user_data)
432 {
433 CssedCssDialogsData *data;
434 CssedWindow *window;
435 CssedDoc* tmpdoc;
436 gboolean add_previous;
437 GtkWidget *uri_value_dialog;
438 gchar *output_string;
439
440 data = (CssedCssDialogsData *) user_data;
441 window = CSSED_WINDOW (data->main_window);
442 tmpdoc = document_get_current( window );
443 add_previous = data->add_property_string;
444
445 uri_value_dialog =
446 lookup_widget (GTK_WIDGET (button), "uri_value_dialog");
447
448 output_string = cssdialog_uri_value_get_string ( window, (gpointer) button );
449 if (output_string != NULL)
450 {
451 //document_new_undo_action(tmpdoc);
452 if (add_previous)
453 {
454 document_add_text (tmpdoc,
455 (gchar *) data->previous_string);
456 document_add_text (tmpdoc, ": ");
457 }
458
459 document_add_text (tmpdoc, output_string);
460
461 if (add_previous)
462 {
463 document_add_text (tmpdoc, ";\n");
464 if( document_last_line_is_indented(tmpdoc) )
465 document_indent_as_last_line(tmpdoc);
466 else
467 document_add_text (tmpdoc, "\t");
468 }
469 //document_new_undo_action(tmpdoc);
470 g_free (output_string);
471 g_free (data->previous_string);
472 g_free (user_data);
473 gtk_widget_destroy (uri_value_dialog);
474 }
475 else
476 {
477 document_write_error_to_program_output (tmpdoc,
478 _("uri dialog: rejecting to add empty values"),
479 ERROR_COLOR_STRING);
480 }
481 }
482
483 void
on_attr_value_dialog_okbutton_clicked(GtkButton * button,gpointer user_data)484 on_attr_value_dialog_okbutton_clicked (GtkButton * button, gpointer user_data)
485 {
486 CssedCssDialogsData *data;
487 CssedWindow *window;
488 CssedDoc *tmpdoc;
489 gboolean add_previous;
490 gchar *output_string;
491 GtkWidget *attr_value_dialog;
492
493
494 data = (CssedCssDialogsData *) user_data;
495 window = CSSED_WINDOW (data->main_window);
496 tmpdoc = document_get_current (window);
497 add_previous = data->add_property_string;
498
499 attr_value_dialog =
500 lookup_widget (GTK_WIDGET (button), "attr_value_dialog");
501
502 output_string = cssdialog_attr_value_get_string ( window, (gpointer) button );
503 if (output_string != NULL)
504 {
505 //document_new_undo_action(tmpdoc);
506 if (add_previous)
507 {
508 document_add_text (tmpdoc,
509 (gchar *) data->previous_string);
510 document_add_text (tmpdoc, ": ");
511 }
512 document_add_text (tmpdoc, output_string);
513 if (add_previous)
514 {
515 document_add_text (tmpdoc, ";\n");
516 if( document_last_line_is_indented(tmpdoc) )
517 document_indent_as_last_line(tmpdoc);
518 else
519 document_add_text (tmpdoc, "\t");
520 }
521 //document_new_undo_action(tmpdoc);
522 g_free (output_string);
523 g_free (data->previous_string);
524 g_free (user_data);
525 gtk_widget_destroy (attr_value_dialog);
526 }
527 else
528 {
529 document_write_error_to_program_output (tmpdoc,
530 _
531 ("attribute dialog: rejecting to add empty values"),
532 ERROR_COLOR_STRING);
533 }
534 }
535
on_counter_property_dialog_okbutton_clicked(GtkButton * button,gpointer user_data)536 void on_counter_property_dialog_okbutton_clicked
537 (GtkButton * button, gpointer user_data)
538 {
539 CssedCssDialogsData *data;
540 CssedWindow *window;
541 CssedDoc *tmpdoc;
542 gboolean add_previous;
543 GtkWidget *counter_property_dialog;
544 gchar *output_string;
545
546 data = (CssedCssDialogsData *) user_data;
547 window = CSSED_WINDOW (data->main_window);
548 tmpdoc = document_get_current (window);
549 add_previous = data->add_property_string;
550
551 counter_property_dialog =
552 lookup_widget (GTK_WIDGET (button),
553 "counter_property_dialog");
554
555 output_string =
556 cssdialog_counter_property_get_string ( window, (gpointer) button );
557
558 if (output_string != NULL)
559 {
560 //document_new_undo_action(tmpdoc);
561 if (add_previous)
562 {
563 document_add_text (tmpdoc,
564 (gchar *) data->previous_string);
565 document_add_text (tmpdoc, ": ");
566 }
567 document_add_text (tmpdoc, output_string);
568 if (add_previous)
569 {
570 document_add_text (tmpdoc, ";\n");
571 if( document_last_line_is_indented(tmpdoc) )
572 document_indent_as_last_line(tmpdoc);
573 else
574 document_add_text (tmpdoc, "\t");
575 }
576 //document_new_undo_action(tmpdoc);
577 g_free (data->previous_string);
578 g_free (user_data);
579 gtk_widget_destroy (counter_property_dialog);
580 }
581 else
582 {
583 document_write_error_to_program_output (tmpdoc,
584 _
585 ("counter dialog: rejecting to add empty identifier. Value required."),
586 ERROR_COLOR_STRING);
587 }
588 }
589
590 /* This needs three callbacks
591 * ************************************************************************* */
on_font_property_dialog_okbutton_clicked(GtkButton * button,gpointer user_data)592 void on_font_property_dialog_okbutton_clicked
593 (GtkButton * button, gpointer user_data)
594 {
595 CssedCssDialogsData *data;
596 CssedWindow *window;
597 CssedDoc *tmpdoc;
598 gboolean add_previous;
599 GtkWidget *font_property_dialog;
600 gchar *output_string;
601
602
603 data = (CssedCssDialogsData *) user_data;
604 window = CSSED_WINDOW (data->main_window);
605 tmpdoc = document_get_current (window);
606 add_previous = data->add_property_string;
607
608 font_property_dialog =
609 lookup_widget (GTK_WIDGET (button), "font_property_dialog");
610
611 output_string =
612 cssdialog_font_property_get_string ( window, (gpointer) button );
613 if (output_string != NULL)
614 {
615 if (add_previous)
616 {
617 document_add_text (tmpdoc,
618 (gchar *) data->previous_string);
619 document_add_text (tmpdoc, ": ");
620 }
621 document_add_text (tmpdoc, output_string);
622 if (add_previous)
623 {
624 document_add_text (tmpdoc, ";\n");
625 if( document_last_line_is_indented(tmpdoc) )
626 document_indent_as_last_line(tmpdoc);
627 else
628 document_add_text (tmpdoc, "\t");
629 }
630 g_free (output_string);
631 }
632 else
633 {
634 document_write_error_to_program_output (tmpdoc,
635 _
636 ("font dialog: rejecting to add empty values."),
637 ERROR_COLOR_STRING);
638 }
639
640 g_free (data->previous_string);
641 g_free (user_data);
642 gtk_widget_destroy (font_property_dialog);
643 }
644
645 void
on_button_font_set_add_clicked(GtkButton * button,gpointer user_data)646 on_button_font_set_add_clicked (GtkButton * button, gpointer user_data)
647 {
648 GtkWidget *combo_entry_font_family;
649 GtkWidget *combo_entry_generic_family;
650 GtkListStore *store;
651 GtkTreeIter iter;
652 gchar *strgf;
653 gchar *strff;
654
655 combo_entry_font_family =
656 lookup_widget (GTK_WIDGET (button),
657 "combo_entry_font_family");
658 combo_entry_generic_family = lookup_widget (GTK_WIDGET (button),
659 "combo_entry_generic_family");
660
661 strgf = gtk_editable_get_chars (GTK_EDITABLE
662 (combo_entry_font_family), 0, -1);
663 strff = gtk_editable_get_chars (GTK_EDITABLE
664 (combo_entry_generic_family), 0, -1);
665
666 store = (GtkListStore *) user_data;
667 gtk_list_store_append (store, &iter);
668 gtk_list_store_set (store, &iter, 0, strgf, 1, strff, -1);
669
670 g_free (strgf);
671 g_free (strff);
672 }
673
674
675 void
on_button_font_set_del_clicked(GtkButton * button,gpointer user_data)676 on_button_font_set_del_clicked (GtkButton * button, gpointer user_data)
677 {
678 GtkListStore *store;
679 GtkWidget *treeview;
680 GtkTreeSelection *selection;
681 gboolean isselected;
682 GtkTreeIter iter;
683
684 store = (GtkListStore *) user_data;
685 treeview = lookup_widget (GTK_WIDGET (button), "treeview");
686 selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview));
687 isselected = gtk_tree_selection_get_selected (selection, NULL, &iter);
688
689 if (isselected)
690 {
691 gtk_list_store_remove (store, &iter);
692 }
693 }
694
695 /* This needs three callbacks
696 * ************************************************************************* */
on_font_family_dialog_okbutton_clicked(GtkButton * button,gpointer user_data)697 void on_font_family_dialog_okbutton_clicked
698 (GtkButton * button, gpointer user_data)
699 {
700 CssedCssDialogsData *data;
701 CssedWindow *window;
702 CssedDoc *tmpdoc;
703 gboolean add_previous;
704 GtkWidget *font_family_dialog;
705 gchar *output_string;
706
707 data = (CssedCssDialogsData *) user_data;
708 window = CSSED_WINDOW (data->main_window);
709 tmpdoc = document_get_current (window);
710 add_previous = data->add_property_string;
711
712 font_family_dialog =
713 lookup_widget (GTK_WIDGET (button), "font_family_dialog");
714 output_string =
715 cssdialog_font_family_get_string ( window, (gpointer) button );
716
717 if (output_string != NULL)
718 {
719 //document_new_undo_action(tmpdoc);
720 if (add_previous)
721 {
722 document_add_text (tmpdoc,
723 (gchar *) data->previous_string);
724 document_add_text (tmpdoc, ": ");
725 }
726 document_add_text (tmpdoc, output_string);
727 if (add_previous)
728 {
729 document_add_text (tmpdoc, ";\n");
730 if( document_last_line_is_indented(tmpdoc) )
731 document_indent_as_last_line(tmpdoc);
732 else
733 document_add_text (tmpdoc, "\t");
734 }
735 //document_new_undo_action(tmpdoc);
736 g_free (output_string);
737 g_free (data->previous_string);
738 g_free (user_data);
739 gtk_widget_destroy (font_family_dialog);
740 }
741 else
742 {
743 document_write_error_to_program_output (tmpdoc,
744 _
745 ("font family dialog: rejecting to add empty values."),
746 ERROR_COLOR_STRING);
747 }
748 }
749
on_button_font_family_dialog_add_clicked(GtkButton * button,gpointer user_data)750 void on_button_font_family_dialog_add_clicked
751 (GtkButton * button, gpointer user_data)
752 {
753 GtkWidget *combo_entry_font_family;
754 GtkWidget *combo_entry_generic_family;
755 GtkListStore *store;
756 GtkTreeIter iter;
757 gchar *strgf;
758 gchar *strff;
759
760 combo_entry_font_family =
761 lookup_widget (GTK_WIDGET (button),
762 "combo_entry_font_family");
763 combo_entry_generic_family = lookup_widget (GTK_WIDGET (button),
764 "combo_entry_generic_family");
765
766 strgf = gtk_editable_get_chars (GTK_EDITABLE
767 (combo_entry_font_family), 0, -1);
768 strff = gtk_editable_get_chars (GTK_EDITABLE
769 (combo_entry_generic_family), 0, -1);
770
771 store = (GtkListStore *) user_data;
772 gtk_list_store_append (store, &iter);
773 gtk_list_store_set (store, &iter, 0, strgf, 1, strff, -1);
774
775 g_free (strgf);
776 g_free (strff);
777 }
778
779
on_button_font_family_dialog_del_clicked(GtkButton * button,gpointer user_data)780 void on_button_font_family_dialog_del_clicked
781 (GtkButton * button, gpointer user_data)
782 {
783 GtkListStore *store;
784 GtkWidget *treeview;
785 GtkTreeSelection *selection;
786 gboolean isselected;
787 GtkTreeIter iter;
788
789 store = (GtkListStore *) user_data;
790 treeview = lookup_widget (GTK_WIDGET (button), "treeview");
791 selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview));
792 isselected = gtk_tree_selection_get_selected (selection, NULL, &iter);
793
794 if (isselected)
795 {
796 gtk_list_store_remove (store, &iter);
797 }
798 }
on_button_font_fam_dialog_set_toggled(GtkToggleButton * togglebutton,gpointer user_data)799 void on_button_font_fam_dialog_set_toggled
800 (GtkToggleButton * togglebutton, gpointer user_data)
801 {
802 GtkWidget *radiobutton;
803 gboolean isactive;
804
805 radiobutton = GTK_WIDGET (user_data);
806 isactive = gtk_toggle_button_get_active (togglebutton);
807 if (isactive)
808 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radiobutton),
809 TRUE);
810 }
811
on_font_size_dialog_okbutton_clicked(GtkButton * button,gpointer user_data)812 void on_font_size_dialog_okbutton_clicked
813 (GtkButton * button, gpointer user_data)
814 {
815 CssedCssDialogsData *data;
816 CssedWindow *window;
817 CssedDoc *tmpdoc;
818 gboolean add_previous;
819 GtkWidget *font_size_dialog;
820 gchar *output_string;
821
822 data = (CssedCssDialogsData *) user_data;
823 window = CSSED_WINDOW (data->main_window);
824 tmpdoc = document_get_current (window);
825 add_previous = data->add_property_string;
826
827 font_size_dialog =
828 lookup_widget (GTK_WIDGET (button), "font_size_dialog");
829
830 output_string = cssdialog_font_size_get_string ( window, (gpointer) button );
831 //document_new_undo_action(tmpdoc);
832 if (add_previous)
833 {
834 document_add_text (tmpdoc, (gchar *) data->previous_string);
835 document_add_text (tmpdoc, ": ");
836 }
837
838 document_add_text (tmpdoc, output_string);
839
840 if (add_previous)
841 {
842 document_add_text (tmpdoc, " ;\n\t");
843 }
844 //document_new_undo_action(tmpdoc);
845 g_free (output_string);
846 g_free (data->previous_string);
847 g_free (user_data);
848 gtk_widget_destroy (font_size_dialog);
849 }
850
on_frecuency_property_dialog_okbutton_clicked(GtkButton * button,gpointer user_data)851 void on_frecuency_property_dialog_okbutton_clicked
852 (GtkButton * button, gpointer user_data)
853 {
854 CssedCssDialogsData *data;
855 CssedWindow *window;
856 CssedDoc *tmpdoc;
857 gboolean add_previous;
858 GtkWidget *frecuency_property_dialog;
859 gchar *output_string;
860
861 data = (CssedCssDialogsData *) user_data;
862 window = CSSED_WINDOW (data->main_window);
863 tmpdoc = document_get_current (window);
864 add_previous = data->add_property_string;
865
866 frecuency_property_dialog =
867 lookup_widget (GTK_WIDGET (button),
868 "frecuency_property_dialog");
869
870 output_string =
871 cssdialog_frecuenzy_property_get_string ( window, (gpointer) button );
872
873 //document_new_undo_action(tmpdoc);
874 if (add_previous)
875 {
876 document_add_text (tmpdoc, (gchar *) data->previous_string);
877 document_add_text (tmpdoc, ": ");
878 }
879
880 document_add_text (tmpdoc, output_string);
881
882 if (add_previous)
883 {
884 document_add_text (tmpdoc, ";\n\t");
885 }
886
887 //document_new_undo_action(tmpdoc);
888 g_free (output_string);
889 g_free (data->previous_string);
890 g_free (user_data);
891 gtk_widget_destroy (frecuency_property_dialog);
892 }
893
on_identifier_value_dialog_okbutton_clicked(GtkButton * button,gpointer user_data)894 void on_identifier_value_dialog_okbutton_clicked
895 (GtkButton * button, gpointer user_data)
896 {
897 CssedCssDialogsData *data;
898 CssedWindow *window;
899 CssedDoc *tmpdoc;
900 gboolean add_previous;
901 GtkWidget *identifier_value_dialog;
902 gchar *output_string;
903
904 data = (CssedCssDialogsData *) user_data;
905 window = CSSED_WINDOW (data->main_window);
906 tmpdoc = document_get_current (window);
907 add_previous = data->add_property_string;
908
909 identifier_value_dialog =
910 lookup_widget (GTK_WIDGET (button),
911 "identifier_value_dialog");
912
913 output_string =
914 cssdialog_identifier_value_get_string ( window, (gpointer) button );
915 if (output_string != NULL)
916 {
917 //document_new_undo_action(tmpdoc);
918 if (add_previous)
919 {
920 document_add_text (tmpdoc,
921 (gchar *) data->previous_string);
922 document_add_text (tmpdoc, ": ");
923 }
924 document_add_text (tmpdoc, output_string);
925 if (add_previous)
926 {
927 document_add_text (tmpdoc, ";\n");
928 if( document_last_line_is_indented(tmpdoc) )
929 document_indent_as_last_line(tmpdoc);
930 else
931 document_add_text (tmpdoc, "\t");
932 }
933 //document_new_undo_action(tmpdoc);
934 g_free (output_string);
935 g_free (data->previous_string);
936 g_free (user_data);
937 gtk_widget_destroy (identifier_value_dialog);
938 }
939 else
940 {
941 document_write_error_to_program_output (tmpdoc,
942 _
943 ("identifier dialog: rejecting to add empty values. Identifier required."),
944 ERROR_COLOR_STRING);
945 }
946 }
947
948 /* AQUI AHORA */
on_integer_value_dialog_okbutton_clicked(GtkButton * button,gpointer user_data)949 void on_integer_value_dialog_okbutton_clicked
950 (GtkButton * button, gpointer user_data)
951 {
952 CssedCssDialogsData *data;
953 CssedWindow *window;
954 CssedDoc *tmpdoc;
955 gboolean add_previous;
956 GtkWidget *integer_value_dialog;
957 gchar *output_string;
958 gchar *integer;
959
960 data = (CssedCssDialogsData *) user_data;
961 window = CSSED_WINDOW (data->main_window);
962 tmpdoc = document_get_current (window);
963 add_previous = data->add_property_string;
964
965 integer_value_dialog =
966 lookup_widget (GTK_WIDGET (button), "integer_value_dialog");
967
968 output_string =
969 cssdialog_integer_value_get_string ( window, (gpointer) button );
970 if (output_string != NULL)
971 {
972 //document_new_undo_action(tmpdoc);
973 if (add_previous)
974 {
975 integer = g_strdup_printf ("%s: %s;\n\t",
976 (gchar *) data->
977 previous_string,
978 output_string);
979 document_add_text (tmpdoc, integer);
980 g_free (integer);
981 }
982 else
983 {
984 document_add_text (tmpdoc, output_string);
985 }
986 //document_new_undo_action(tmpdoc);
987 g_free (output_string);
988 }
989
990 g_free (data->previous_string);
991 g_free (user_data);
992 gtk_widget_destroy (integer_value_dialog);
993 }
994
on_length_value_dialog_okbutton_clicked(GtkButton * button,gpointer user_data)995 void on_length_value_dialog_okbutton_clicked
996 (GtkButton * button, gpointer user_data)
997 {
998 CssedCssDialogsData *data;
999 CssedWindow *window;
1000 CssedDoc *tmpdoc;
1001 gboolean add_previous;
1002 GtkWidget *length_value_dialog;
1003 gchar *output_string;
1004 gchar *strlength;
1005
1006 data = (CssedCssDialogsData *) user_data;
1007 window = CSSED_WINDOW (data->main_window);
1008 tmpdoc = document_get_current (window);
1009 add_previous = data->add_property_string;
1010
1011 length_value_dialog =
1012 lookup_widget (GTK_WIDGET (button), "length_value_dialog");
1013
1014 output_string =
1015 cssdialog_length_value_get_string ( window, (gpointer) button );
1016
1017 if (output_string != NULL)
1018 {
1019 //document_new_undo_action(tmpdoc);
1020 if (add_previous)
1021 {
1022 strlength =
1023 g_strdup_printf ("%s: %s;\n\t",
1024 (gchar *) data->
1025 previous_string,
1026 output_string);
1027
1028 document_add_text (tmpdoc, strlength);
1029 g_free (output_string);
1030 g_free (strlength);
1031 }
1032 else
1033 {
1034 document_add_text (tmpdoc, output_string);
1035 g_free (output_string);
1036 }
1037 //document_new_undo_action(tmpdoc);
1038 }
1039
1040 g_free (data->previous_string);
1041 g_free (user_data);
1042 gtk_widget_destroy (length_value_dialog);
1043 }
1044
on_list_style_dialog_okbutton_clicked(GtkButton * button,gpointer user_data)1045 void on_list_style_dialog_okbutton_clicked
1046 (GtkButton * button, gpointer user_data)
1047 {
1048 CssedCssDialogsData *data;
1049 CssedWindow *window;
1050 CssedDoc *tmpdoc;
1051 gboolean add_previous;
1052 GtkWidget *list_style_dialog;
1053 gchar *output_string;
1054
1055 data = (CssedCssDialogsData *) user_data;
1056 window = CSSED_WINDOW (data->main_window);
1057 tmpdoc = document_get_current (window);
1058 add_previous = data->add_property_string;
1059
1060 list_style_dialog =
1061 lookup_widget (GTK_WIDGET (button), "list_style_dialog");
1062
1063 output_string = cssdialog_list_style_get_string ( window, (gpointer) button );
1064 if (output_string != NULL)
1065 {
1066 //document_new_undo_action(tmpdoc);
1067 if (add_previous)
1068 {
1069 document_add_text (tmpdoc,
1070 (gchar *) data->previous_string);
1071 document_add_text (tmpdoc, ": ");
1072 }
1073
1074 document_add_text (tmpdoc, output_string);
1075
1076 if (add_previous)
1077 {
1078 document_add_text (tmpdoc, ";\n");
1079 if( document_last_line_is_indented(tmpdoc) )
1080 document_indent_as_last_line(tmpdoc);
1081 else
1082 document_add_text (tmpdoc, "\t");
1083 }
1084 //document_new_undo_action(tmpdoc);
1085
1086 g_free (output_string);
1087 g_free (data->previous_string);
1088 g_free (user_data);
1089 gtk_widget_destroy (list_style_dialog);
1090 }
1091 else
1092 {
1093 document_write_error_to_program_output (tmpdoc,
1094 _
1095 ("list style dialog: rejecting to add empty values"),
1096 ERROR_COLOR_STRING);
1097 }
1098 }
1099
on_margin_property_dialog_okbutton_clicked(GtkButton * button,gpointer user_data)1100 void on_margin_property_dialog_okbutton_clicked
1101 (GtkButton * button, gpointer user_data)
1102 {
1103 CssedCssDialogsData *data;
1104 CssedWindow *window;
1105 CssedDoc *tmpdoc;
1106 gboolean add_previous;
1107 GtkWidget *margin_property_dialog;
1108 gchar *output_string;
1109
1110 data = (CssedCssDialogsData *) user_data;
1111 window = CSSED_WINDOW (data->main_window);
1112 tmpdoc = document_get_current (window);
1113 add_previous = data->add_property_string;
1114
1115 margin_property_dialog =
1116 lookup_widget (GTK_WIDGET (button), "margin_property_dialog");
1117
1118 output_string =
1119 cssdialog_margin_property_get_string ( window, (gpointer) button );
1120
1121 if (output_string == NULL)
1122 {
1123 document_write_error_to_program_output (tmpdoc,
1124 _
1125 ("margin property dialog: rejecting to add empty values."),
1126 ERROR_COLOR_STRING);
1127 }
1128 else
1129 {
1130
1131 //document_new_undo_action(tmpdoc);
1132 if (add_previous)
1133 {
1134 document_add_text (tmpdoc,
1135 (gchar *) data->previous_string);
1136 document_add_text (tmpdoc, ": ");
1137 }
1138
1139 document_add_text (tmpdoc, output_string);
1140
1141 if (add_previous)
1142 {
1143 document_add_text (tmpdoc, ";\n");
1144 if( document_last_line_is_indented(tmpdoc) )
1145 document_indent_as_last_line(tmpdoc);
1146 else
1147 document_add_text (tmpdoc, "\t");
1148 }
1149 //document_new_undo_action(tmpdoc);
1150
1151 g_free (output_string);
1152 g_free (data->previous_string);
1153 g_free (user_data);
1154 gtk_widget_destroy (margin_property_dialog);
1155 }
1156 }
1157
on_margin_width_dialog_okbutton_clicked(GtkButton * button,gpointer user_data)1158 void on_margin_width_dialog_okbutton_clicked
1159 (GtkButton * button, gpointer user_data)
1160 {
1161 CssedCssDialogsData *data;
1162 CssedWindow *window;
1163 CssedDoc *tmpdoc;
1164 gboolean add_previous;
1165 GtkWidget *margin_width_value_dialog;
1166 gchar *output_string;
1167
1168 data = (CssedCssDialogsData *) user_data;
1169 window = CSSED_WINDOW (data->main_window);
1170 tmpdoc = document_get_current (window);
1171 add_previous = data->add_property_string;
1172
1173 margin_width_value_dialog =
1174 lookup_widget (GTK_WIDGET (button),
1175 "margin_width_value_dialog");
1176
1177 output_string =
1178 cssdialog_margin_width_get_string ( window, (gpointer) button );
1179 //document_new_undo_action(tmpdoc);
1180 if (add_previous)
1181 {
1182 document_add_text (tmpdoc, (gchar *) data->previous_string);
1183 document_add_text (tmpdoc, ": ");
1184 }
1185
1186 document_add_text (tmpdoc, output_string);
1187
1188 if (add_previous)
1189 {
1190 document_add_text (tmpdoc, ";\n\t");
1191 }
1192 //document_new_undo_action(tmpdoc);
1193
1194 g_free (output_string);
1195 g_free (data->previous_string);
1196 g_free (user_data);
1197 gtk_widget_destroy (margin_width_value_dialog);
1198 }
1199
on_number_value_dialog_okbutton_clicked(GtkButton * button,gpointer user_data)1200 void on_number_value_dialog_okbutton_clicked
1201 (GtkButton * button, gpointer user_data)
1202 {
1203 CssedCssDialogsData *data;
1204 CssedWindow *window;
1205 CssedDoc *tmpdoc;
1206 gboolean add_previous;
1207 gchar *output_string;
1208 GtkWidget *number_value_dialog;
1209
1210 data = (CssedCssDialogsData *) user_data;
1211 window = CSSED_WINDOW (data->main_window);
1212 tmpdoc = document_get_current (window);
1213 add_previous = data->add_property_string;
1214
1215 number_value_dialog =
1216 lookup_widget (GTK_WIDGET (button), "number_value_dialog");
1217
1218 output_string =
1219 cssdialog_number_value_get_string ( window, (gpointer) button );
1220
1221 //document_new_undo_action(tmpdoc);
1222 if (add_previous)
1223 {
1224 document_add_text (tmpdoc, (gchar *) data->previous_string);
1225 document_add_text (tmpdoc, ": ");
1226 }
1227
1228 document_add_text (tmpdoc, output_string);
1229
1230 if (add_previous)
1231 {
1232 document_add_text (tmpdoc, ";\n\t");
1233 }
1234 //document_new_undo_action(tmpdoc);
1235
1236 g_free (output_string);
1237 g_free (data->previous_string);
1238 g_free (user_data);
1239 gtk_widget_destroy (number_value_dialog);
1240 }
1241
on_padding_property_dialog_okbutton_clicked(GtkButton * button,gpointer user_data)1242 void on_padding_property_dialog_okbutton_clicked
1243 (GtkButton * button, gpointer user_data)
1244 {
1245 CssedCssDialogsData *data;
1246 CssedWindow *window;
1247 CssedDoc *tmpdoc;
1248 gboolean add_previous;
1249 GtkWidget *padding_property_dialog;
1250 gchar *output_string;
1251
1252 data = (CssedCssDialogsData *) user_data;
1253 window = CSSED_WINDOW (data->main_window);
1254 tmpdoc = document_get_current (window);
1255 add_previous = data->add_property_string;
1256
1257 padding_property_dialog =
1258 lookup_widget (GTK_WIDGET (button),
1259 "padding_property_dialog");
1260
1261 output_string =
1262 cssdialog_padding_property_get_string ( window, (gpointer) button );
1263 if (output_string == NULL)
1264 {
1265 document_write_error_to_program_output (tmpdoc,
1266 _
1267 ("padding property dialog: no value in dialog, defaulting to zero."),
1268 WARNING_COLOR_STRING);
1269 //document_new_undo_action(tmpdoc);
1270 if (add_previous)
1271 {
1272 document_add_text (tmpdoc,
1273 (gchar *) data->previous_string);
1274 document_add_text (tmpdoc, ": ");
1275 }
1276 document_add_text (tmpdoc, "0");
1277 if (add_previous)
1278 {
1279 document_add_text (tmpdoc, ";\n");
1280 if( document_last_line_is_indented(tmpdoc) )
1281 document_indent_as_last_line(tmpdoc);
1282 else
1283 document_add_text (tmpdoc, "\t");
1284 }
1285 //document_new_undo_action(tmpdoc);
1286 }
1287 else
1288 {
1289 //document_new_undo_action(tmpdoc);
1290 if (add_previous)
1291 {
1292 document_add_text (tmpdoc,
1293 (gchar *) data->previous_string);
1294 document_add_text (tmpdoc, ": ");
1295 }
1296 document_add_text (tmpdoc, output_string);
1297 if (add_previous)
1298 {
1299 document_add_text (tmpdoc, ";\n");
1300 if( document_last_line_is_indented(tmpdoc) )
1301 document_indent_as_last_line(tmpdoc);
1302 else
1303 document_add_text (tmpdoc, "\t");
1304 }
1305 //document_new_undo_action(tmpdoc);
1306 g_free (output_string);
1307 }
1308
1309 g_free (data->previous_string);
1310 g_free (user_data);
1311 gtk_widget_destroy (padding_property_dialog);
1312 }
1313
on_outline_property_dialog_okbutton_clicked(GtkButton * button,gpointer user_data)1314 void on_outline_property_dialog_okbutton_clicked
1315 (GtkButton * button, gpointer user_data)
1316 {
1317 CssedCssDialogsData *data;
1318 CssedWindow *window;
1319 CssedDoc *tmpdoc;
1320 gboolean add_previous;
1321 GtkWidget *outline_property_dialog;
1322 gchar *output_string;
1323
1324 data = (CssedCssDialogsData *) user_data;
1325 window = CSSED_WINDOW (data->main_window);
1326 tmpdoc = document_get_current (window);
1327 add_previous = data->add_property_string;
1328
1329 outline_property_dialog =
1330 lookup_widget (GTK_WIDGET (button),
1331 "outline_property_dialog");
1332
1333 output_string =
1334 cssdialog_outline_property_get_string( window, (gpointer) button );
1335
1336 if (output_string == NULL)
1337 {
1338 document_write_error_to_program_output (tmpdoc,
1339 _
1340 ("outline dialog: rejecting to add empty values."),
1341 ERROR_COLOR_STRING);
1342 }
1343 else
1344 {
1345 //document_new_undo_action(tmpdoc);
1346 if (add_previous)
1347 {
1348 document_add_text (tmpdoc,
1349 (gchar *) data->previous_string);
1350 document_add_text (tmpdoc, ": ");
1351 }
1352 document_add_text (tmpdoc, output_string);
1353 if (add_previous)
1354 {
1355 document_add_text (tmpdoc, ";\n");
1356 if( document_last_line_is_indented(tmpdoc) )
1357 document_indent_as_last_line(tmpdoc);
1358 else
1359 document_add_text (tmpdoc, "\t");
1360 }
1361 //document_new_undo_action(tmpdoc);
1362
1363 g_free (output_string);
1364 g_free (data->previous_string);
1365 g_free (user_data);
1366 gtk_widget_destroy (outline_property_dialog);
1367 }
1368 }
1369
on_pause_property_dialog_okbutton_clicked(GtkButton * button,gpointer user_data)1370 void on_pause_property_dialog_okbutton_clicked
1371 (GtkButton * button, gpointer user_data)
1372 {
1373 CssedCssDialogsData *data;
1374 CssedWindow *window;
1375 CssedDoc *tmpdoc;
1376 gboolean add_previous;
1377 GtkWidget *pause_property_dialog;
1378 gchar *output_string;
1379
1380 data = (CssedCssDialogsData *) user_data;
1381 window = CSSED_WINDOW (data->main_window);
1382 tmpdoc = document_get_current (window);
1383 add_previous = data->add_property_string;
1384
1385 pause_property_dialog =
1386 lookup_widget (GTK_WIDGET (button), "pause_property_dialog");
1387
1388 output_string =
1389 cssdialog_pause_property_get_string ( window, (gpointer) button );
1390
1391 if (output_string == NULL)
1392 {
1393 document_write_error_to_program_output (tmpdoc,
1394 _
1395 ("pause dialog: rejecting to add empty values"),
1396 ERROR_COLOR_STRING);
1397 }
1398 else
1399 {
1400 //document_new_undo_action(tmpdoc);
1401 if (add_previous)
1402 {
1403 document_add_text (tmpdoc,
1404 (gchar *) data->previous_string);
1405 document_add_text (tmpdoc, ": ");
1406 }
1407 document_add_text (tmpdoc, output_string);
1408 if (add_previous)
1409 {
1410 document_add_text (tmpdoc, ";\n");
1411 if( document_last_line_is_indented(tmpdoc) )
1412 document_indent_as_last_line(tmpdoc);
1413 else
1414 document_add_text (tmpdoc, "\t");
1415 }
1416 //document_new_undo_action(tmpdoc);
1417
1418 g_free (output_string);
1419 g_free (data->previous_string);
1420 g_free (user_data);
1421 gtk_widget_destroy (pause_property_dialog);
1422 }
1423 }
1424
on_percentage_value_dialog_okbutton_clicked(GtkButton * button,gpointer user_data)1425 void on_percentage_value_dialog_okbutton_clicked
1426 (GtkButton * button, gpointer user_data)
1427 {
1428 CssedCssDialogsData *data;
1429 CssedWindow *window;
1430 CssedDoc *tmpdoc;
1431 gboolean add_previous;
1432 GtkWidget *percentage_value_dialog;
1433 gchar *output_string;
1434
1435 data = (CssedCssDialogsData *) user_data;
1436 window = CSSED_WINDOW (data->main_window);
1437 tmpdoc = document_get_current (window);
1438 add_previous = data->add_property_string;
1439
1440 percentage_value_dialog =
1441 lookup_widget (GTK_WIDGET (button),
1442 "percentage_value_dialog");
1443
1444 output_string =
1445 cssdialog_percentage_value_get_string ( window, (gpointer) button );
1446
1447 //document_new_undo_action(tmpdoc);
1448 if (add_previous)
1449 {
1450 document_add_text (tmpdoc, (gchar *) data->previous_string);
1451 document_add_text (tmpdoc, ": ");
1452 }
1453
1454 document_add_text (tmpdoc, output_string);
1455
1456 document_add_text (tmpdoc, "%");
1457 if (add_previous)
1458 {
1459 document_add_text (tmpdoc, ";\n\t");
1460 }
1461 //document_new_undo_action(tmpdoc);
1462 g_free (output_string);
1463 g_free (data->previous_string);
1464 g_free (user_data);
1465 gtk_widget_destroy (percentage_value_dialog);
1466 }
1467
on_percentage_length_value_dialog_okbutton_clicked(GtkButton * button,gpointer user_data)1468 void on_percentage_length_value_dialog_okbutton_clicked
1469 (GtkButton * button, gpointer user_data)
1470 {
1471 CssedCssDialogsData *data;
1472 CssedWindow *window;
1473 CssedDoc *tmpdoc;
1474 gboolean add_previous;
1475 GtkWidget *percentage_length_value_dialog;
1476 gchar *output_string;
1477
1478 data = (CssedCssDialogsData *) user_data;
1479 window = CSSED_WINDOW (data->main_window);
1480 tmpdoc = document_get_current (window);
1481 add_previous = data->add_property_string;
1482
1483 percentage_length_value_dialog =
1484 lookup_widget (GTK_WIDGET (button),
1485 "percentage_length_value_dialog");
1486 output_string =
1487 cssdialog_percentage_length_value_get_string ( window, (gpointer) button );
1488
1489 //document_new_undo_action(tmpdoc);
1490 if (add_previous)
1491 {
1492 document_add_text (tmpdoc, (gchar *) data->previous_string);
1493 document_add_text (tmpdoc, ": ");
1494 }
1495
1496 document_add_text (tmpdoc, output_string);
1497
1498 if (add_previous)
1499 {
1500 document_add_text (tmpdoc, ";\n\t");
1501 }
1502 //document_new_undo_action(tmpdoc);
1503 g_free (output_string);
1504 g_free (data->previous_string);
1505 g_free (user_data);
1506 gtk_widget_destroy (percentage_length_value_dialog);
1507 }
1508
on_play_during_property_dialog_okbutton_clicked(GtkButton * button,gpointer user_data)1509 void on_play_during_property_dialog_okbutton_clicked
1510 (GtkButton * button, gpointer user_data)
1511 {
1512 CssedCssDialogsData *data;
1513 CssedWindow *window;
1514 CssedDoc *tmpdoc;
1515 gboolean add_previous;
1516 GtkWidget *play_during_property_dialog;
1517 gchar *output_string;
1518
1519 data = (CssedCssDialogsData *) user_data;
1520 window = CSSED_WINDOW (data->main_window);
1521 tmpdoc = document_get_current (window);
1522 add_previous = data->add_property_string;
1523
1524 play_during_property_dialog =
1525 lookup_widget (GTK_WIDGET (button),
1526 "play_during_property_dialog");
1527 output_string =
1528 cssdialog_play_during_property_get_string ( window, (gpointer) button );
1529 if (output_string != NULL)
1530 {
1531
1532 //document_new_undo_action(tmpdoc);
1533 if (add_previous)
1534 {
1535 document_add_text (tmpdoc,
1536 (gchar *) data->previous_string);
1537 document_add_text (tmpdoc, ":");
1538 }
1539
1540 document_add_text (tmpdoc, output_string);
1541
1542 if (add_previous)
1543 {
1544 document_add_text (tmpdoc, ";\n");
1545 if( document_last_line_is_indented(tmpdoc) )
1546 document_indent_as_last_line(tmpdoc);
1547 else
1548 document_add_text (tmpdoc, "\t");
1549 }
1550 //document_new_undo_action(tmpdoc);
1551
1552 g_free (output_string);
1553 g_free (data->previous_string);
1554 g_free (user_data);
1555 gtk_widget_destroy (play_during_property_dialog);
1556 }
1557 else
1558 {
1559 document_write_error_to_program_output (tmpdoc,
1560 _
1561 ("play during dialog: value \"uri\" required, rejecting to add invalid values"),
1562 ERROR_COLOR_STRING);
1563 }
1564 }
1565
1566 /* this needs three callbacks */
on_button_quotes_property_dialog_add_clicked(GtkButton * button,gpointer user_data)1567 void on_button_quotes_property_dialog_add_clicked
1568 (GtkButton * button, gpointer user_data)
1569 {
1570 GtkWidget *entry_open;
1571 GtkWidget *entry_close;
1572
1573 GtkListStore *store;
1574 GtkTreeIter iter;
1575 gchar *stroq;
1576 gchar *strcq;
1577
1578 store = (GtkListStore *) user_data;
1579
1580 entry_open = lookup_widget (GTK_WIDGET (button), "entry_open");
1581 entry_close = lookup_widget (GTK_WIDGET (button), "entry_close");
1582
1583 stroq = gtk_editable_get_chars (GTK_EDITABLE (entry_open), 0, -1);
1584 strcq = gtk_editable_get_chars (GTK_EDITABLE (entry_close), 0, -1);
1585
1586 if ((strlen (stroq) > 0) && (strlen (strcq) > 0))
1587 {
1588 gtk_list_store_append (store, &iter);
1589 gtk_list_store_set (store, &iter, 0, stroq, 1, strcq, -1);
1590 }
1591 else
1592 { // this will default to the same open and close quotes if only
1593 // one value is added. nothing will be added to the store if both
1594 // values are empty.
1595 if (strlen (stroq) > 0)
1596 {
1597 gtk_list_store_append (store, &iter);
1598 gtk_list_store_set (store, &iter, 0, stroq, 1, stroq,
1599 -1);
1600 }
1601 if (strlen (strcq) > 0)
1602 {
1603 gtk_list_store_append (store, &iter);
1604 gtk_list_store_set (store, &iter, 0, strcq, 1, strcq,
1605 -1);
1606 }
1607 }
1608
1609 g_free (stroq);
1610 g_free (strcq);
1611 }
1612
1613
on_button_quotes_property_dialog_del_clicked(GtkButton * button,gpointer user_data)1614 void on_button_quotes_property_dialog_del_clicked
1615 (GtkButton * button, gpointer user_data)
1616 {
1617 GtkListStore *store;
1618 GtkWidget *treeview;
1619 GtkTreeSelection *selection;
1620 gboolean isselected;
1621 GtkTreeIter iter;
1622
1623 store = (GtkListStore *) user_data;
1624 treeview = lookup_widget (GTK_WIDGET (button), "treeview");
1625 selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview));
1626 isselected = gtk_tree_selection_get_selected (selection, NULL, &iter);
1627
1628 if (isselected)
1629 {
1630 gtk_list_store_remove (store, &iter);
1631 }
1632 }
1633
on_quotes_property_dialog_okbutton_clicked(GtkButton * button,gpointer user_data)1634 void on_quotes_property_dialog_okbutton_clicked
1635 (GtkButton * button, gpointer user_data)
1636 {
1637 CssedCssDialogsData *data;
1638 CssedWindow *window;
1639 CssedDoc *tmpdoc;
1640 GtkWidget *quotes_property_dialog;
1641 gboolean add_previous;
1642 gchar *output_string;
1643
1644 data = (CssedCssDialogsData *) user_data;
1645 window = CSSED_WINDOW (data->main_window);
1646 tmpdoc = document_get_current (window);
1647 add_previous = data->add_property_string;
1648
1649 quotes_property_dialog =
1650 lookup_widget (GTK_WIDGET (button), "quotes_property_dialog");
1651
1652 output_string =
1653 cssdialog_quotes_property_get_string ( window, (gpointer) button );
1654 if (output_string != NULL)
1655 {
1656 //document_new_undo_action(tmpdoc);
1657 if (add_previous)
1658 {
1659 document_add_text (tmpdoc,
1660 (gchar *) data->previous_string);
1661 document_add_text (tmpdoc, ": ");
1662 }
1663 document_add_text (tmpdoc, output_string);
1664 if (add_previous)
1665 {
1666 document_add_text (tmpdoc, ";\n");
1667 if( document_last_line_is_indented(tmpdoc) )
1668 document_indent_as_last_line(tmpdoc);
1669 else
1670 document_add_text (tmpdoc, "\t");
1671 }
1672 //document_new_undo_action(tmpdoc);
1673 g_free (output_string);
1674 g_free (data->previous_string);
1675 g_free (user_data);
1676 gtk_widget_destroy (quotes_property_dialog);
1677 }
1678 else
1679 { // not valid nothing in the list
1680 document_write_error_to_program_output (tmpdoc,
1681 _
1682 ("quotes dialog: nothing in the list, rejecting to add empty values."),
1683 WARNING_COLOR_STRING);
1684 }
1685 }
1686
1687 /* end quotes */
1688
1689 void
on_shape_value_dialog_okbutton_clicked(GtkButton * button,gpointer user_data)1690 on_shape_value_dialog_okbutton_clicked (GtkButton * button,
1691 gpointer user_data)
1692 {
1693 CssedCssDialogsData *data;
1694 CssedWindow *window;
1695 CssedDoc *tmpdoc;
1696 gboolean add_previous;
1697 GtkWidget *shape_value_dialog;
1698 gchar *output_string;
1699
1700 data = (CssedCssDialogsData *) user_data;
1701 window = CSSED_WINDOW (data->main_window);
1702 tmpdoc = document_get_current (window);
1703 add_previous = data->add_property_string;
1704
1705 shape_value_dialog =
1706 lookup_widget (GTK_WIDGET (button), "shape_value_dialog");
1707 output_string =
1708 cssdialog_shape_value_get_string ( window, (gpointer) button );
1709 //document_new_undo_action(tmpdoc);
1710 if (add_previous)
1711 {
1712 document_add_text (tmpdoc, (gchar *) data->previous_string);
1713 document_add_text (tmpdoc, ": ");
1714 }
1715
1716 document_add_text (tmpdoc, output_string);
1717
1718 if (add_previous)
1719 {
1720 document_add_text (tmpdoc, ";\n\t");
1721 }
1722 //document_new_undo_action(tmpdoc);
1723
1724 g_free (output_string);
1725 g_free (data->previous_string);
1726 g_free (user_data);
1727 gtk_widget_destroy (shape_value_dialog);
1728 }
1729
1730
on_size_length_value_dialog_okbutton_clicked(GtkButton * button,gpointer user_data)1731 void on_size_length_value_dialog_okbutton_clicked
1732 (GtkButton * button, gpointer user_data)
1733 {
1734 CssedCssDialogsData *data;
1735 CssedWindow *window;
1736 CssedDoc *tmpdoc;
1737 gboolean add_previous;
1738 GtkWidget *size_length_value_dialog;
1739 gchar *output_string;
1740
1741 data = (CssedCssDialogsData *) user_data;
1742 window = CSSED_WINDOW (data->main_window);
1743 tmpdoc = document_get_current (window);
1744 add_previous = data->add_property_string;
1745
1746 size_length_value_dialog =
1747 lookup_widget (GTK_WIDGET (button),
1748 "size_length_value_dialog");
1749 output_string =
1750 cssdialog_size_length_value_get_string ( window, (gpointer) button );
1751 //document_new_undo_action(tmpdoc);
1752 if (add_previous)
1753 {
1754 document_add_text (tmpdoc, (gchar *) data->previous_string);
1755 document_add_text (tmpdoc, ": ");
1756 }
1757
1758 document_add_text (tmpdoc, output_string);
1759
1760 if (add_previous)
1761 {
1762 document_add_text (tmpdoc, ";\n\t");
1763 }
1764 //document_new_undo_action(tmpdoc);
1765
1766 g_free (output_string);
1767 g_free (data->previous_string);
1768 g_free (user_data);
1769 gtk_widget_destroy (size_length_value_dialog);
1770 }
1771
1772
1773 /* needs three callbacks */
1774 /* ************** I'm working here right now ****************************** */
on_button_text_shadow_value_dialog_add_clicked(GtkButton * button,gpointer user_data)1775 void on_button_text_shadow_value_dialog_add_clicked
1776 (GtkButton * button, gpointer user_data)
1777 {
1778 GtkListStore *store;
1779 GtkTreeIter iter;
1780 GtkWidget *spinbutton_right;
1781 GtkWidget *combo_entry_right;
1782 GtkWidget *spinbutton_below;
1783 GtkWidget *combo_entry_below;
1784 GtkWidget *checkbutton_use_color;
1785 GtkWidget *checkbutton_blur;
1786 GtkWidget *spinbutton_blur;
1787 GtkWidget *combo_entry_blur;
1788 GtkWidget *combo_entry_use_color;
1789 GtkWidget *colorselection;
1790 GtkWidget *checkbutton_use_shadow_list;
1791 gchar *str_right_units;
1792 gchar *str_right;
1793 gdouble nright;
1794 gchar *str_below_units;
1795 gchar *str_below;
1796 gdouble nbelow;
1797 gchar *str_blur_units = NULL;
1798 gchar *str_blur;
1799 gdouble nblur;
1800 gboolean b_blur;
1801 gchar *strcolor = NULL;
1802 gchar *strrgbcolor = NULL;
1803 GdkColor gdkcolor;
1804 gboolean b_color;
1805
1806 enum
1807 {
1808 COL_RIGHT,
1809 COL_BELOW,
1810 COL_BLUR,
1811 COL_COLOR,
1812 N_COLS
1813 };
1814 // if the're adding valus to the list is for using it so check the
1815 // use shadow list on bahalve of the user.
1816 checkbutton_use_shadow_list =
1817 lookup_widget (GTK_WIDGET (button),
1818 "checkbutton_use_shadow_list");
1819 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
1820 (checkbutton_use_shadow_list), TRUE);
1821
1822 store = (GtkListStore *) user_data;
1823
1824 spinbutton_right =
1825 lookup_widget (GTK_WIDGET (button), "spinbutton_right");
1826 combo_entry_right =
1827 lookup_widget (GTK_WIDGET (button), "combo_entry_right");
1828 spinbutton_below =
1829 lookup_widget (GTK_WIDGET (button), "spinbutton_below");
1830 combo_entry_below =
1831 lookup_widget (GTK_WIDGET (button), "combo_entry_below");
1832 checkbutton_blur =
1833 lookup_widget (GTK_WIDGET (button), "checkbutton_blur");
1834 checkbutton_use_color =
1835 lookup_widget (GTK_WIDGET (button), "checkbutton_use_color");
1836
1837 b_blur = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON
1838 (checkbutton_blur));
1839 b_color =
1840 gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON
1841 (checkbutton_use_color));
1842
1843 nright = gtk_spin_button_get_value (GTK_SPIN_BUTTON
1844 (spinbutton_right));
1845 str_right_units =
1846 gtk_editable_get_chars (GTK_EDITABLE (combo_entry_right), 0,
1847 -1);
1848 str_right = g_strdup_printf ("%0.2f%s", nright, str_right_units);
1849
1850 nbelow = gtk_spin_button_get_value (GTK_SPIN_BUTTON
1851 (spinbutton_below));
1852 str_below_units =
1853 gtk_editable_get_chars (GTK_EDITABLE (combo_entry_below), 0,
1854 -1);
1855 str_below = g_strdup_printf ("%0.2f%s", nbelow, str_below_units);
1856
1857 if (b_blur)
1858 {
1859 spinbutton_blur =
1860 lookup_widget (GTK_WIDGET (button),
1861 "spinbutton_blur");
1862 combo_entry_blur =
1863 lookup_widget (GTK_WIDGET (button),
1864 "combo_entry_blur");
1865 nblur = gtk_spin_button_get_value (GTK_SPIN_BUTTON
1866 (spinbutton_blur));
1867 str_blur_units =
1868 gtk_editable_get_chars (GTK_EDITABLE
1869 (combo_entry_blur), 0, -1);
1870 str_blur = g_strdup_printf ("%0.2f%s", nblur, str_blur_units);
1871 }
1872 else
1873 {
1874 str_blur = g_strdup ("");
1875 }
1876 if (b_color)
1877 {
1878 combo_entry_use_color =
1879 lookup_widget (GTK_WIDGET (button),
1880 "combo_entry_use_color");
1881 colorselection =
1882 lookup_widget (GTK_WIDGET (button), "colorselection");
1883 strcolor =
1884 gtk_editable_get_chars (GTK_EDITABLE
1885 (combo_entry_use_color), 0,
1886 -1);
1887 if (strcmp (strcolor, CSS_STR_USE_COLORSEL) == 0)
1888 {
1889 gtk_color_selection_get_current_color
1890 (GTK_COLOR_SELECTION (colorselection),
1891 &gdkcolor);
1892 strrgbcolor =
1893 gdk_color_to_rgb_triplet_string (&gdkcolor);
1894 }
1895 else
1896 {
1897 strrgbcolor = g_strdup (strcolor);
1898 }
1899 }
1900
1901 gtk_list_store_append (store, &iter);
1902 gtk_list_store_set (store, &iter, COL_RIGHT, str_right, COL_BELOW,
1903 str_below, COL_BLUR, str_blur, COL_COLOR,
1904 strrgbcolor, -1);
1905
1906 g_free (strcolor);
1907 g_free (strrgbcolor);
1908 g_free (str_blur_units);
1909 g_free (str_blur);
1910 g_free (str_right_units);
1911 g_free (str_below_units);
1912 g_free (str_below);
1913 g_free (str_right);
1914 }
1915
1916
on_button_text_shadow_value_dialog_del_clicked(GtkButton * button,gpointer user_data)1917 void on_button_text_shadow_value_dialog_del_clicked
1918 (GtkButton * button, gpointer user_data)
1919 {
1920 GtkListStore *store;
1921 GtkWidget *treeview;
1922 GtkTreeSelection *selection;
1923 gboolean isselected;
1924 GtkTreeIter iter;
1925
1926 store = (GtkListStore *) user_data;
1927 treeview = lookup_widget (GTK_WIDGET (button), "treeview");
1928 selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview));
1929 isselected = gtk_tree_selection_get_selected (selection, NULL, &iter);
1930
1931 if (isselected)
1932 {
1933 gtk_list_store_remove (store, &iter);
1934 }
1935 }
1936
1937
on_text_shadow_value_dialog_okbutton_clicked(GtkButton * button,gpointer user_data)1938 void on_text_shadow_value_dialog_okbutton_clicked
1939 (GtkButton * button, gpointer user_data)
1940 {
1941 CssedCssDialogsData *data;
1942 CssedWindow *window;
1943 CssedDoc *tmpdoc;
1944 gboolean add_previous;
1945 GtkWidget *text_shadow_value_dialog;
1946 gchar *output_string;
1947
1948 data = (CssedCssDialogsData *) user_data;
1949 window = CSSED_WINDOW (data->main_window);
1950 tmpdoc = document_get_current (window);
1951 add_previous = data->add_property_string;
1952
1953 text_shadow_value_dialog =
1954 lookup_widget (GTK_WIDGET (button),
1955 "text_shadow_value_dialog");
1956
1957 output_string =
1958 cssdialog_text_shadow_value_get_string ( window, (gpointer) button );
1959 if (output_string != NULL)
1960 {
1961 //document_new_undo_action(tmpdoc);
1962 if (add_previous)
1963 {
1964 document_add_text (tmpdoc,
1965 (gchar *) data->previous_string);
1966 document_add_text (tmpdoc, ": ");
1967 }
1968 document_add_text (tmpdoc, output_string);
1969 if (add_previous)
1970 {
1971 document_add_text (tmpdoc, ";\n");
1972 if( document_last_line_is_indented(tmpdoc) )
1973 document_indent_as_last_line(tmpdoc);
1974 else
1975 document_add_text (tmpdoc, "\t");
1976 }
1977 //document_new_undo_action(tmpdoc);
1978 g_free (output_string);
1979 g_free (data->previous_string);
1980 g_free (user_data);
1981 gtk_widget_destroy (text_shadow_value_dialog);
1982 }
1983 else
1984 { // nothing in the list
1985 document_write_error_to_program_output (tmpdoc,
1986 _
1987 ("text shadow dialog: shadow list selected but nothing in the list. Rejecting to add empty values."),
1988 WARNING_COLOR_STRING);
1989 }
1990 }
1991
1992 // end text shadow
1993 /* needs three callbacks */
on_button_voice_family_value_dialog_add_clicked(GtkButton * button,gpointer user_data)1994 void on_button_voice_family_value_dialog_add_clicked
1995 (GtkButton * button, gpointer user_data)
1996 {
1997 GtkWidget *entry_specific_voice;
1998 GtkWidget *combo_entry_generic;
1999 GtkWidget *checkbutton_voice_set;
2000 GtkListStore *store;
2001 GtkTreeIter iter;
2002 gchar *str_gen;
2003 gchar *str_spec;
2004
2005 enum
2006 {
2007 COL_GENERIC,
2008 COL_SPECIFIC,
2009 N_COLS
2010 };
2011
2012 store = (GtkListStore *) user_data;
2013
2014 entry_specific_voice =
2015 lookup_widget (GTK_WIDGET (button), "entry_specific_voice");
2016 combo_entry_generic = lookup_widget (GTK_WIDGET (button),
2017 "combo_entry_generic");
2018
2019 checkbutton_voice_set = lookup_widget (GTK_WIDGET (button),
2020 "checkbutton_voice_set");
2021
2022 str_spec = gtk_editable_get_chars (GTK_EDITABLE
2023 (entry_specific_voice), 0, -1);
2024 str_gen = gtk_editable_get_chars (GTK_EDITABLE
2025 (combo_entry_generic), 0, -1);
2026 // add only if there is at least one valid value
2027 if ((strlen (str_spec) > 0) || (strlen (str_gen) > 0))
2028 {
2029 gtk_list_store_append (store, &iter);
2030 gtk_list_store_set (store, &iter, COL_GENERIC, str_gen,
2031 COL_SPECIFIC, str_spec, -1);
2032 // set the "use list" toggle active as they are adding values to the list
2033 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
2034 (checkbutton_voice_set), TRUE);
2035 }
2036 g_free (str_spec);
2037 g_free (str_gen);
2038 }
2039
on_button_voice_family_value_dialog_del_clicked(GtkButton * button,gpointer user_data)2040 void on_button_voice_family_value_dialog_del_clicked
2041 (GtkButton * button, gpointer user_data)
2042 {
2043 GtkListStore *store;
2044 GtkWidget *treeview;
2045 GtkTreeSelection *selection;
2046 gboolean isselected;
2047 GtkTreeIter iter;
2048
2049 store = (GtkListStore *) user_data;
2050 treeview = lookup_widget (GTK_WIDGET (button), "treeview");
2051 selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview));
2052 isselected = gtk_tree_selection_get_selected (selection, NULL, &iter);
2053
2054 if (isselected)
2055 {
2056 gtk_list_store_remove (store, &iter);
2057 }
2058 }
2059
on_voice_family_value_dialog_okbutton_clicked(GtkButton * button,gpointer user_data)2060 void on_voice_family_value_dialog_okbutton_clicked
2061 (GtkButton * button, gpointer user_data)
2062 {
2063 CssedCssDialogsData *data;
2064 CssedWindow *window;
2065 CssedDoc *tmpdoc;
2066 gboolean add_previous;
2067 GtkWidget *voice_family_value_dialog;
2068 gchar *output_string;
2069
2070 data = (CssedCssDialogsData *) user_data;
2071 window = CSSED_WINDOW (data->main_window);
2072 tmpdoc = document_get_current (window);
2073 add_previous = data->add_property_string;
2074
2075 voice_family_value_dialog =
2076 lookup_widget (GTK_WIDGET (button),
2077 "voice_family_value_dialog");
2078 output_string =
2079 cssdialog_voice_family_value_get_string ( window, (gpointer) button );
2080 if (output_string != NULL)
2081 {
2082 //document_new_undo_action(tmpdoc);
2083 if (add_previous)
2084 {
2085 document_add_text (tmpdoc,
2086 (gchar *) data->previous_string);
2087 document_add_text (tmpdoc, ": ");
2088 }
2089 document_add_text (tmpdoc, output_string);
2090 if (add_previous)
2091 {
2092 document_add_text (tmpdoc, ";\n");
2093 if( document_last_line_is_indented(tmpdoc) )
2094 document_indent_as_last_line(tmpdoc);
2095 else
2096 document_add_text (tmpdoc, "\t");
2097 }
2098 g_free (output_string);
2099 g_free (data->previous_string);
2100 g_free (user_data);
2101 gtk_widget_destroy (voice_family_value_dialog);
2102 }
2103 else
2104 { // nothing in the list
2105 document_write_error_to_program_output (tmpdoc,
2106 _
2107 ("voice family dialog: rejecting to add empty values"),
2108 ERROR_COLOR_STRING);
2109 }
2110 }
2111
2112 // end voice family
on_border_width_style_color_value_dialog_okbutton_clicked(GtkButton * button,gpointer user_data)2113 void on_border_width_style_color_value_dialog_okbutton_clicked
2114 (GtkButton * button, gpointer user_data)
2115 {
2116 CssedCssDialogsData *data;
2117 CssedWindow *window;
2118 CssedDoc *tmpdoc;
2119 gboolean add_previous;
2120 GtkWidget *border_width_style_color_value_dialog;
2121 gchar *output_string;
2122
2123 data = (CssedCssDialogsData *) user_data;
2124 window = CSSED_WINDOW (data->main_window);
2125 tmpdoc = document_get_current (window);
2126 add_previous = data->add_property_string;
2127
2128 border_width_style_color_value_dialog =
2129 lookup_widget (GTK_WIDGET (button),
2130 "border_width_style_color_value_dialog");
2131
2132 output_string =
2133 cssdialog_border_width_style_color_value_get_string( window, (gpointer) button );
2134 if (output_string == NULL)
2135 {
2136 document_write_error_to_program_output (tmpdoc,
2137 _
2138 ("width style and color dialog: nothing selected. rejecting to add empty values."),
2139 ERROR_COLOR_STRING);
2140 }
2141 else
2142 {
2143 //document_new_undo_action(tmpdoc);
2144 if (add_previous)
2145 {
2146 document_add_text (tmpdoc,
2147 (gchar *) data->previous_string);
2148 document_add_text (tmpdoc, ": ");
2149 }
2150 document_add_text (tmpdoc, output_string);
2151
2152 if (add_previous)
2153 {
2154 document_add_text (tmpdoc, ";\n");
2155 if( document_last_line_is_indented(tmpdoc) )
2156 document_indent_as_last_line(tmpdoc);
2157 else
2158 document_add_text (tmpdoc, "\t");
2159 }
2160 //document_new_undo_action(tmpdoc);
2161
2162 g_free (output_string);
2163 g_free (data->previous_string);
2164 g_free (user_data);
2165 gtk_widget_destroy (border_width_style_color_value_dialog);
2166 }
2167 }
2168
on_color_selector_dialog_okbutton_clicked(GtkButton * button,gpointer user_data)2169 void on_color_selector_dialog_okbutton_clicked
2170 (GtkButton * button, gpointer user_data)
2171 {
2172 CssedCssDialogsData *data;
2173 CssedWindow *window;
2174 CssedDoc *tmpdoc;
2175 gboolean add_previous;
2176 GtkWidget *color_selector_dialog;
2177 gchar *output_string;
2178
2179 data = (CssedCssDialogsData *) user_data;
2180 window = CSSED_WINDOW (data->main_window);
2181 tmpdoc = document_get_current (window);
2182 add_previous = data->add_property_string;
2183
2184 color_selector_dialog =
2185 lookup_widget (GTK_WIDGET (button), "color_selector_dialog");
2186
2187 output_string =
2188 cssdialog_color_selector_get_string ( window, (gpointer) button );
2189 //document_new_undo_action(tmpdoc);
2190 if (add_previous)
2191 {
2192 document_add_text (tmpdoc, (gchar *) data->previous_string);
2193 document_add_text (tmpdoc, ": ");
2194 }
2195
2196 document_add_text (tmpdoc, output_string);
2197
2198 if (add_previous)
2199 {
2200 document_add_text (tmpdoc, ";\n\t");
2201 }
2202 //document_new_undo_action(tmpdoc);
2203
2204 g_free (output_string);
2205 g_free (data->previous_string);
2206 g_free (user_data);
2207 gtk_widget_destroy (color_selector_dialog);
2208 }
2209
on_border_style_dialog_okbutton_clicked(GtkButton * button,gpointer user_data)2210 void on_border_style_dialog_okbutton_clicked
2211 (GtkButton * button, gpointer user_data)
2212 {
2213 CssedCssDialogsData *data;
2214 CssedWindow *window;
2215 CssedDoc *tmpdoc;
2216 gboolean add_previous;
2217 GtkWidget *border_style_dialog;
2218 gchar *output_string;
2219
2220 data = (CssedCssDialogsData *) user_data;
2221 window = CSSED_WINDOW (data->main_window);
2222 tmpdoc = document_get_current (window);
2223 add_previous = data->add_property_string;
2224
2225 border_style_dialog =
2226 lookup_widget (GTK_WIDGET (button), "border_style_dialog");
2227 output_string =
2228 cssdialog_border_style_get_string ( window, (gpointer) button );
2229
2230 if (add_previous)
2231 {
2232 document_add_text (tmpdoc, (gchar *) data->previous_string);
2233 document_add_text (tmpdoc, ": ");
2234 }
2235 document_add_text (tmpdoc, output_string);
2236 if (add_previous)
2237 {
2238 document_add_text (tmpdoc, ";\n\t");
2239 }
2240
2241 g_free (output_string);
2242 g_free (data->previous_string);
2243 g_free (user_data);
2244 gtk_widget_destroy (border_style_dialog);
2245 }
2246
2247 /* ---------------- CALLED BY ALL DIALOGS ---------------------------------- */
2248 /* this will be called on all cancel button click events */
2249 void
on_css_dialog_cancel_button_clicked(GtkButton * button,gpointer user_data)2250 on_css_dialog_cancel_button_clicked (GtkButton * button, gpointer user_data)
2251 {
2252 GtkWidget *dialog;
2253 CssedCssDialogsData *data;
2254
2255 data = (CssedCssDialogsData *) user_data;
2256
2257 dialog = gtk_widget_get_toplevel (GTK_WIDGET (button));
2258 gtk_widget_destroy (dialog);
2259 g_free (data->previous_string);
2260 g_free (user_data);
2261 }
2262 void
on_css_dialog_unit_changed(GtkEditable * editable,gpointer user_data)2263 on_css_dialog_unit_changed (GtkEditable *editable,
2264 gpointer user_data)
2265 {
2266 gchar* unit;
2267
2268 unit = gtk_editable_get_chars(editable,0,-1);
2269 if( strlen(unit) != 0 ){
2270 if( strcmp(unit,"em") == 0 ||
2271 strcmp(unit,"in")==0 ){
2272 gtk_spin_button_set_digits (GTK_SPIN_BUTTON(user_data), 2);
2273 gtk_spin_button_set_increments (GTK_SPIN_BUTTON(user_data), 0.1, 1);
2274 }else{
2275 gtk_spin_button_set_digits (GTK_SPIN_BUTTON(user_data), 0);
2276 gtk_spin_button_set_increments (GTK_SPIN_BUTTON(user_data), 1, 1);
2277 }
2278
2279 }
2280 g_free(unit);
2281 }
2282 /* this is called when any dialog is closed */
2283 void
on_css_dialog_close(GtkDialog * dialog,gpointer user_data)2284 on_css_dialog_close (GtkDialog * dialog, gpointer user_data)
2285 {
2286 CssedCssDialogsData *data;
2287
2288 data = (CssedCssDialogsData *) user_data;
2289
2290 g_free (data->previous_string);
2291 g_free (user_data);
2292 }
2293
2294 /* *************************** HELP BUTTONS ********************************* */
on_angle_property_dialog_helpbutton_clicked(GtkButton * button,gpointer user_data)2295 void on_angle_property_dialog_helpbutton_clicked
2296 (GtkButton * button, gpointer user_data)
2297 {
2298
2299
2300 }
on_background_property_dialog_helpbutton_clicked(GtkButton * button,gpointer user_data)2301 void on_background_property_dialog_helpbutton_clicked
2302 (GtkButton * button, gpointer user_data)
2303 {
2304
2305 }
on_border_properties_helpbutton_clicked(GtkButton * button,gpointer user_data)2306 void on_border_properties_helpbutton_clicked
2307 (GtkButton * button, gpointer user_data)
2308 {
2309
2310 }
on_border_with_properties_helpbutton_clicked(GtkButton * button,gpointer user_data)2311 void on_border_with_properties_helpbutton_clicked
2312 (GtkButton * button, gpointer user_data)
2313 {
2314
2315 }
on_border_width_single_helpbutton_clicked(GtkButton * button,gpointer user_data)2316 void on_border_width_single_helpbutton_clicked
2317 (GtkButton * button, gpointer user_data)
2318 {
2319
2320 }
on_dialog_counter_increment_reset_helpbutton_clicked(GtkButton * button,gpointer user_data)2321 void on_dialog_counter_increment_reset_helpbutton_clicked
2322 (GtkButton * button, gpointer user_data)
2323 {
2324
2325 }
on_string_properties_dialog_helpbutton_clicked(GtkButton * button,gpointer user_data)2326 void on_string_properties_dialog_helpbutton_clicked
2327 (GtkButton * button, gpointer user_data)
2328 {
2329
2330 }
2331 void
on_uri_value_dialog_helpbutton_clicked(GtkButton * button,gpointer user_data)2332 on_uri_value_dialog_helpbutton_clicked (GtkButton * button,
2333 gpointer user_data)
2334 {
2335
2336 }
on_attr_value_dialog_helpbutton_clicked(GtkButton * button,gpointer user_data)2337 void on_attr_value_dialog_helpbutton_clicked
2338 (GtkButton * button, gpointer user_data)
2339 {
2340
2341 }
on_counter_property_dialog_helpbutton_clicked(GtkButton * button,gpointer user_data)2342 void on_counter_property_dialog_helpbutton_clicked
2343 (GtkButton * button, gpointer user_data)
2344 {
2345
2346 }
on_font_property_dialog_helpbutton_clicked(GtkButton * button,gpointer user_data)2347 void on_font_property_dialog_helpbutton_clicked
2348 (GtkButton * button, gpointer user_data)
2349 {
2350
2351 }
on_font_family_dialog_helpbutton_clicked(GtkButton * button,gpointer user_data)2352 void on_font_family_dialog_helpbutton_clicked
2353 (GtkButton * button, gpointer user_data)
2354 {
2355
2356 }
2357 void
on_font_size_dialog_helpbutton_clicked(GtkButton * button,gpointer user_data)2358 on_font_size_dialog_helpbutton_clicked (GtkButton * button,
2359 gpointer user_data)
2360 {
2361
2362 }
2363 void
on_dialog_frecuency_helpbutton_clicked(GtkButton * button,gpointer user_data)2364 on_dialog_frecuency_helpbutton_clicked (GtkButton * button,
2365 gpointer user_data)
2366 {
2367
2368 }
2369 void
on_dialog_integer_helpbutton_clicked(GtkButton * button,gpointer user_data)2370 on_dialog_integer_helpbutton_clicked (GtkButton * button, gpointer user_data)
2371 {
2372
2373 }
on_length_value_dialog_helpbutton_clicked(GtkButton * button,gpointer user_data)2374 void on_length_value_dialog_helpbutton_clicked
2375 (GtkButton * button, gpointer user_data)
2376 {
2377
2378 }
on_list_style_dialog_helpbutton_clicked(GtkButton * button,gpointer user_data)2379 void on_list_style_dialog_helpbutton_clicked
2380 (GtkButton * button, gpointer user_data)
2381 {
2382
2383 }
on_margin_property_dialog_helpbutton_clicked(GtkButton * button,gpointer user_data)2384 void on_margin_property_dialog_helpbutton_clicked
2385 (GtkButton * button, gpointer user_data)
2386 {
2387
2388 }
on_margin_width_value_dialog_helpbutton_clicked(GtkButton * button,gpointer user_data)2389 void on_margin_width_value_dialog_helpbutton_clicked
2390 (GtkButton * button, gpointer user_data)
2391 {
2392
2393 }
on_number_value_dialog_helpbutton_clicked(GtkButton * button,gpointer user_data)2394 void on_number_value_dialog_helpbutton_clicked
2395 (GtkButton * button, gpointer user_data)
2396 {
2397
2398 }
on_padding_property_dialog_helpbutton_clicked(GtkButton * button,gpointer user_data)2399 void on_padding_property_dialog_helpbutton_clicked
2400 (GtkButton * button, gpointer user_data)
2401 {
2402
2403 }
on_outline_property_dialog_helpbutton_clicked(GtkButton * button,gpointer user_data)2404 void on_outline_property_dialog_helpbutton_clicked
2405 (GtkButton * button, gpointer user_data)
2406 {
2407
2408 }
on_pause_property_dialog_helpbutton_clicked(GtkButton * button,gpointer user_data)2409 void on_pause_property_dialog_helpbutton_clicked
2410 (GtkButton * button, gpointer user_data)
2411 {
2412
2413 }
on_percentage_value_dialog_helpbutton_clicked(GtkButton * button,gpointer user_data)2414 void on_percentage_value_dialog_helpbutton_clicked
2415 (GtkButton * button, gpointer user_data)
2416 {
2417
2418 }
on_percentage_length_value_dialog_helpbutton_clicked(GtkButton * button,gpointer user_data)2419 void on_percentage_length_value_dialog_helpbutton_clicked
2420 (GtkButton * button, gpointer user_data)
2421 {
2422
2423 }
on_play_during_property_dialog_helpbutton_clicked(GtkButton * button,gpointer user_data)2424 void on_play_during_property_dialog_helpbutton_clicked
2425 (GtkButton * button, gpointer user_data)
2426 {
2427
2428 }
on_quotes_property_dialog_helpbutton_clicked(GtkButton * button,gpointer user_data)2429 void on_quotes_property_dialog_helpbutton_clicked
2430 (GtkButton * button, gpointer user_data)
2431 {
2432
2433 }
on_shape_value_dialog_helpbutton_clicked(GtkButton * button,gpointer user_data)2434 void on_shape_value_dialog_helpbutton_clicked
2435 (GtkButton * button, gpointer user_data)
2436 {
2437
2438 }
on_size_lenght_value_dialog_helpbutton_clicked(GtkButton * button,gpointer user_data)2439 void on_size_lenght_value_dialog_helpbutton_clicked
2440 (GtkButton * button, gpointer user_data)
2441 {
2442
2443 }
on_border_width_style_color_value_dialog_helpbutton_clicked(GtkButton * button,gpointer user_data)2444 void on_border_width_style_color_value_dialog_helpbutton_clicked
2445 (GtkButton * button, gpointer user_data)
2446 {
2447
2448 }
on_color_selector_dialog_helpbutton_clicked(GtkButton * button,gpointer user_data)2449 void on_color_selector_dialog_helpbutton_clicked
2450 (GtkButton * button, gpointer user_data)
2451 {
2452
2453 }
on_identifier_value_helpbutton_clicked(GtkButton * button,gpointer user_data)2454 void on_identifier_value_helpbutton_clicked
2455 (GtkButton * button, gpointer user_data)
2456 {
2457
2458 }
2459
on_border_style_dialog_helpbutton_clicked(GtkButton * button,gpointer user_data)2460 void on_border_style_dialog_helpbutton_clicked
2461 (GtkButton * button, gpointer user_data)
2462 {
2463
2464 }
2465
2466