18
18
* along with this program; if not, write to the Free Software
19
19
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21
#include "default_include.h"
23
24
#include <string.h> /* strlen() */
25
#include <stdlib.h> /* strtol() */
28
#include "bf_lib.h" /* string_is_color*/
25
29
#include "gtk_easy.h"
26
30
#include "bf_lib.h" /* strip_any_whitespace() */
28
31
#include "stringlist.h"
29
32
#include "document.h"
32
#include "pixmaps.h" /* new_pixmap */
33
#include "coloursel.h" /* color_but_new */
36
GList *garbage = NULL;
48
GtkWidget *cancelbutton;
53
void html2_dialog_cancel(GtkWidget * widget, Thtml2dialog * data);
54
void html2_dialog_ok(GtkWidget * widget, Thtml2dialog * data);
55
Thtml2dialog *startdialog(gchar * title, gint rows, gint cols);
56
void middle_dialog(Thtml2dialog * this_ds, gint leftbuts, gint middlebuts, gint rightbuts, gint topbuts, gint botbuts);
58
void html2_dialog_cancel(GtkWidget * widget, Thtml2dialog * data)
60
gtk_signal_handlers_destroy(GTK_OBJECT(data->dialog));
62
DEBUG_MSG("html2_dialog_cancel, gtk_main_quit() called\n");
65
void html2_dialog_ok(GtkWidget * widget, Thtml2dialog * data)
68
DEBUG_MSG("html2_dialog_ok, abort=%d, calling cancel to stop this gtk_main()\n", data->abort);
69
html2_dialog_cancel(widget, data);
72
Thtml2dialog *startdialog(gchar * title, gint rows, gint cols)
75
Thtml2dialog *return_ds;
76
return_ds = g_malloc(sizeof(Thtml2dialog));
79
return_ds->dialog = gtk_window_new(GTK_WINDOW_DIALOG);
80
gtk_container_border_width(GTK_CONTAINER(return_ds->dialog), 10);
81
/*gtk_signal_connect (GTK_OBJECT (return_ds->dialog), "delete_event", GTK_SIGNAL_FUNC
82
(html2_dialog_cancel), return_ds); */
83
gtk_signal_connect(GTK_OBJECT(return_ds->dialog), "destroy", GTK_SIGNAL_FUNC(html2_dialog_cancel), return_ds);
84
gtk_window_set_title(GTK_WINDOW(return_ds->dialog), title);
85
gtk_window_position(GTK_WINDOW(return_ds->dialog), GTK_WIN_POS_CENTER);
87
return_ds->table = gtk_table_new(rows, cols, 0);
88
gtk_container_add(GTK_CONTAINER(return_ds->dialog), return_ds->table);
92
void middle_dialog(Thtml2dialog * this_ds, gint leftbuts, gint middlebuts, gint rightbuts, gint topbuts, gint botbuts)
94
this_ds->okbutton = bf_stock_ok_button(GTK_SIGNAL_FUNC(html2_dialog_ok), this_ds);
95
this_ds->cancelbutton = bf_stock_cancel_button(GTK_SIGNAL_FUNC(html2_dialog_cancel), this_ds);
97
GTK_WIDGET_SET_FLAGS(this_ds->okbutton, GTK_CAN_DEFAULT);
98
GTK_WIDGET_SET_FLAGS(this_ds->cancelbutton, GTK_CAN_DEFAULT);
99
gtk_table_attach_defaults(GTK_TABLE(this_ds->table), this_ds->okbutton, leftbuts, middlebuts, topbuts, botbuts);
100
gtk_table_attach_defaults(GTK_TABLE(this_ds->table), this_ds->cancelbutton, middlebuts, rightbuts, topbuts, botbuts);
102
gtk_widget_show_all(this_ds->dialog);
103
gtk_widget_realize(this_ds->dialog);
104
gtk_window_set_default(GTK_WINDOW(this_ds->dialog), this_ds->okbutton);
105
gtk_grab_add(this_ds->dialog);
106
DEBUG_MSG("middle_dialog, about to call gtk_main()\n");
108
DEBUG_MSG("middle_dialog, this gtk_main() is finished\n");
112
gchar *insert_if_string(gchar * formatstring, GtkWidget * entry, gchar * return_if_empty)
114
gchar *string2return;
116
if (strlen(gtk_entry_get_text(GTK_ENTRY(entry))) > 1) {
117
string2return = g_strdup_printf(formatstring, gtk_entry_get_text(GTK_ENTRY(entry)));
118
garbage = g_list_append(garbage, string2return);
120
if (return_if_empty == NULL) {
121
string2return = g_strdup("");
122
garbage = g_list_append(garbage, string2return);
124
string2return = return_if_empty;
127
DEBUG_MSG("insert_if_string, garbage=%p, lenght=%d\n", garbage, g_list_length(garbage));
128
DEBUG_MSG("insert_if_string, finished, string2return=%p\n", string2return);
129
return string2return;
132
GList *make_length_list(gfloat from, gfloat to, gint allow_percentage, gint high_percentage)
137
list2return = g_list_append(NULL, "");
139
if ((from < 0.1) && (to > 0.3)) {
140
list2return = g_list_append(list2return, "0.1em");
141
list2return = g_list_append(list2return, "0.2em");
142
list2return = g_list_append(list2return, "0.3em");
143
list2return = g_list_append(list2return, "0.5em");
144
list2return = g_list_append(list2return, "0.1ex");
145
list2return = g_list_append(list2return, "0.2ex");
146
list2return = g_list_append(list2return, "0.3ex");
147
list2return = g_list_append(list2return, "0.5ex");
148
list2return = g_list_append(list2return, "1pt");
149
list2return = g_list_append(list2return, "2pt");
150
list2return = g_list_append(list2return, "4pt");
151
list2return = g_list_append(list2return, "6pt");
153
if ((from < 0.5) && (to > 3)) {
154
list2return = g_list_append(list2return, "0.7em");
155
list2return = g_list_append(list2return, "1em");
156
list2return = g_list_append(list2return, "2em");
157
list2return = g_list_append(list2return, "3em");
158
list2return = g_list_append(list2return, "0.7ex");
159
list2return = g_list_append(list2return, "1ex");
160
list2return = g_list_append(list2return, "2ex");
161
list2return = g_list_append(list2return, "3ex");
162
list2return = g_list_append(list2return, "7pt");
163
list2return = g_list_append(list2return, "10pt");
164
list2return = g_list_append(list2return, "12pt");
165
list2return = g_list_append(list2return, "15pt");
167
if ((from < 3) && (to > 15)) {
168
list2return = g_list_append(list2return, "6em");
169
list2return = g_list_append(list2return, "9em");
170
list2return = g_list_append(list2return, "12em");
171
list2return = g_list_append(list2return, "15em");
172
list2return = g_list_append(list2return, "6ex");
173
list2return = g_list_append(list2return, "9ex");
174
list2return = g_list_append(list2return, "12ex");
175
list2return = g_list_append(list2return, "15ex");
176
list2return = g_list_append(list2return, "20pt");
177
list2return = g_list_append(list2return, "25pt");
178
list2return = g_list_append(list2return, "30pt");
179
list2return = g_list_append(list2return, "50pt");
181
if (allow_percentage == 1) {
182
list2return = g_list_append(list2return, "10%");
183
list2return = g_list_append(list2return, "20%");
184
list2return = g_list_append(list2return, "30%");
185
list2return = g_list_append(list2return, "40%");
186
list2return = g_list_append(list2return, "50%");
187
list2return = g_list_append(list2return, "60%");
188
list2return = g_list_append(list2return, "70%");
189
list2return = g_list_append(list2return, "80%");
190
list2return = g_list_append(list2return, "90%");
191
list2return = g_list_append(list2return, "100%");
193
if (high_percentage == 1) {
194
list2return = g_list_append(list2return, "110%");
195
list2return = g_list_append(list2return, "120%");
196
list2return = g_list_append(list2return, "130%");
197
list2return = g_list_append(list2return, "140%");
198
list2return = g_list_append(list2return, "160%");
199
list2return = g_list_append(list2return, "180%");
200
list2return = g_list_append(list2return, "200%");
201
list2return = g_list_append(list2return, "250%");
202
list2return = g_list_append(list2return, "300%");
203
list2return = g_list_append(list2return, "500%");
209
/* the actual functions dialogs */
212
void insert_class(GtkWidget * widget, gpointer data)
217
ds = startdialog(_("Insert class"), 3, 4);
219
gtk_table_attach_defaults(GTK_TABLE(ds->table), gtk_label_new(_("Insert class")), 1, 3, 0, 1);
220
gtk_table_attach_defaults(GTK_TABLE(ds->table), gtk_label_new(_("CLASS=")), 0, 1, 1, 2);
222
ds->combo[1] = combo_with_popdown(NULL, main_v->current_project.classlist, 1);
223
gtk_table_attach_defaults(GTK_TABLE(ds->table), ds->combo[1], 1, 4, 1, 2);
225
middle_dialog(ds, 0, 2, 4, 2, 3);
227
if (ds->abort != 1) {
228
ds->tmpstring = g_strdup_printf(cap(" CLASS=\"%s\" "), gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(ds->combo[1])->entry)));
229
main_v->current_project.classlist =
230
add_to_stringlist(main_v->current_project.classlist, gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(ds->combo[1])->entry)));
231
insert_dbl_text(ds->tmpstring, "");
232
g_free(ds->tmpstring);
235
if (GTK_IS_WIDGET(ds->dialog))
236
gtk_widget_destroy(ds->dialog);
239
/* *************************
240
better ones in html.c
241
*************************
243
void insert_div(GtkWidget * widget, gpointer data)
248
ds = startdialog(_("DIV"), 3, 4);
249
gtk_table_attach_defaults(GTK_TABLE(ds->table), gtk_label_new(_("DIV")), 1, 3, 0, 1);
250
gtk_table_attach_defaults(GTK_TABLE(ds->table), gtk_label_new(_("class ")), 0, 1, 1, 2);
251
ds->combo[1] = gtk_combo_new();
252
if (main_v->current_project.classlist != NULL) {
253
gtk_combo_set_popdown_strings(GTK_COMBO(ds->combo[1]), main_v->current_project.classlist);
255
gtk_table_attach_defaults(GTK_TABLE(ds->table), ds->combo[1], 1, 4, 1, 2);
257
middle_dialog(ds, 0, 2, 4, 2, 3);
259
if (ds->abort != 1) {
260
ds->tmpstring = g_strdup_printf(cap("<DIV CLASS=\"%s\">"), gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(ds->combo[1])->entry)));
261
insert_dbl_text(ds->tmpstring, cap("</DIV>"));
262
main_v->current_project.classlist =
263
add_to_stringlist(main_v->current_project.classlist, gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(ds->combo[1])->entry)));
264
g_free(ds->tmpstring);
267
if (GTK_IS_WIDGET(ds->dialog))
268
gtk_widget_destroy(ds->dialog);
272
/* *************************
273
better ones in html.c
274
*************************
275
void insert_span(GtkWidget * widget, gpointer data)
280
ds = startdialog(_("SPAN"), 3, 4);
281
gtk_table_attach_defaults(GTK_TABLE(ds->table), gtk_label_new(_("SPAN")), 1, 3, 0, 1);
282
gtk_table_attach_defaults(GTK_TABLE(ds->table), gtk_label_new(_("class ")), 0, 1, 1, 2);
283
ds->combo[1] = gtk_combo_new();
284
if (main_v->current_project.classlist != NULL) {
285
gtk_combo_set_popdown_strings(GTK_COMBO(ds->combo[1]), main_v->current_project.classlist);
287
gtk_table_attach_defaults(GTK_TABLE(ds->table), ds->combo[1], 1, 4, 1, 2);
289
middle_dialog(ds, 0, 2, 4, 2, 3);
291
if (ds->abort != 1) {
292
ds->tmpstring = g_strdup_printf(cap("<SPAN CLASS=\"%s\">"), gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(ds->combo[1])->entry)));
293
insert_dbl_text(ds->tmpstring, cap("</SPAN>"));
294
main_v->current_project.classlist =
295
add_to_stringlist(main_v->current_project.classlist, gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(ds->combo[1])->entry)));
296
g_free(ds->tmpstring);
299
if (GTK_IS_WIDGET(ds->dialog))
300
gtk_widget_destroy(ds->dialog);
304
/* the complex CSS dialog */
305
void sizing_unit_font_cb(GtkWidget * widget, Thtml2dialog * data)
309
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->radio[1]))) {
310
tmplist = g_list_append(NULL, "");
311
tmplist = g_list_append(tmplist, "xx-small");
312
tmplist = g_list_append(tmplist, "x-small");
313
tmplist = g_list_append(tmplist, "small");
314
tmplist = g_list_append(tmplist, "medium");
315
tmplist = g_list_append(tmplist, "large");
316
tmplist = g_list_append(tmplist, "x-large");
317
tmplist = g_list_append(tmplist, "xx-large");
318
gtk_combo_set_popdown_strings(GTK_COMBO(data->combo[5]), tmplist);
319
gtk_combo_set_popdown_strings(GTK_COMBO(data->combo[6]), tmplist);
320
gtk_editable_set_editable(GTK_EDITABLE(GTK_ENTRY(GTK_COMBO(data->combo[5])->entry)), FALSE);
321
gtk_editable_set_editable(GTK_EDITABLE(GTK_ENTRY(GTK_COMBO(data->combo[6])->entry)), FALSE);
322
g_list_free(tmplist);
323
} else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->radio[2]))) {
324
tmplist = g_list_append(NULL, "");
325
tmplist = g_list_append(tmplist, "larger");
326
tmplist = g_list_append(tmplist, "smaller");
327
gtk_combo_set_popdown_strings(GTK_COMBO(data->combo[5]), tmplist);
328
gtk_combo_set_popdown_strings(GTK_COMBO(data->combo[6]), tmplist);
329
gtk_editable_set_editable(GTK_EDITABLE(GTK_ENTRY(GTK_COMBO(data->combo[5])->entry)), FALSE);
330
gtk_editable_set_editable(GTK_EDITABLE(GTK_ENTRY(GTK_COMBO(data->combo[6])->entry)), FALSE);
331
g_list_free(tmplist);
333
tmplist = make_length_list(2.9, 20, 1, 1);
334
gtk_combo_set_popdown_strings(GTK_COMBO(data->combo[5]), tmplist);
335
gtk_combo_set_popdown_strings(GTK_COMBO(data->combo[6]), tmplist);
336
gtk_editable_set_editable(GTK_EDITABLE(GTK_ENTRY(GTK_COMBO(data->combo[5])->entry)), TRUE);
337
gtk_editable_set_editable(GTK_EDITABLE(GTK_ENTRY(GTK_COMBO(data->combo[6])->entry)), TRUE);
338
g_list_free(tmplist);
342
void sizing_unit_bg_cb(GtkWidget * widget, Thtml2dialog * data)
346
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->radio[4]))) {
347
tmplist = make_length_list(0, 0, 1, 0);
348
gtk_combo_set_popdown_strings(GTK_COMBO(data->combo[16]), tmplist);
349
gtk_combo_set_popdown_strings(GTK_COMBO(data->combo[17]), tmplist);
350
gtk_editable_set_editable(GTK_EDITABLE(GTK_ENTRY(GTK_COMBO(data->combo[16])->entry)), TRUE);
351
gtk_editable_set_editable(GTK_EDITABLE(GTK_ENTRY(GTK_COMBO(data->combo[17])->entry)), TRUE);
352
g_list_free(tmplist);
353
} else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->radio[5]))) {
354
tmplist = g_list_append(NULL, "");
355
tmplist = g_list_append(tmplist, "1cm");
356
tmplist = g_list_append(tmplist, "2cm");
357
gtk_combo_set_popdown_strings(GTK_COMBO(data->combo[16]), tmplist);
358
gtk_combo_set_popdown_strings(GTK_COMBO(data->combo[17]), tmplist);
359
gtk_editable_set_editable(GTK_EDITABLE(GTK_ENTRY(GTK_COMBO(data->combo[16])->entry)), TRUE);
360
gtk_editable_set_editable(GTK_EDITABLE(GTK_ENTRY(GTK_COMBO(data->combo[17])->entry)), TRUE);
361
g_list_free(tmplist);
363
tmplist = g_list_append(NULL, "");
364
tmplist = g_list_append(tmplist, "top");
365
tmplist = g_list_append(tmplist, "center");
366
tmplist = g_list_append(tmplist, "bottom");
367
gtk_combo_set_popdown_strings(GTK_COMBO(data->combo[16]), tmplist);
368
g_list_free(tmplist);
369
tmplist = g_list_append(NULL, "");
370
tmplist = g_list_append(tmplist, "left");
371
tmplist = g_list_append(tmplist, "center");
372
tmplist = g_list_append(tmplist, "right");
373
gtk_combo_set_popdown_strings(GTK_COMBO(data->combo[17]), tmplist);
374
g_list_free(tmplist);
375
gtk_editable_set_editable(GTK_EDITABLE(GTK_ENTRY(GTK_COMBO(data->combo[16])->entry)), FALSE);
376
gtk_editable_set_editable(GTK_EDITABLE(GTK_ENTRY(GTK_COMBO(data->combo[17])->entry)), FALSE);
380
void insert_in_stylesheet(GtkWidget * widget, gpointer data)
384
GtkWidget *notebook, *table, *vbox, *frame, *file_but;
385
GList *tmplist = NULL;
387
gchar *fontstring, *bgncolorstring, *textstring, *margstring, *padstring, *sizeplacestring, *borderstring, *classistring;
389
ds = startdialog(_("New style"), 6, 4);
390
gtk_table_attach_defaults(GTK_TABLE(ds->table), gtk_label_new(_("Insert new style")), 1, 3, 0, 1);
391
gtk_table_attach_defaults(GTK_TABLE(ds->table), gtk_label_new(_("tag")), 0, 1, 1, 2);
392
gtk_table_attach_defaults(GTK_TABLE(ds->table), gtk_label_new(_("class")), 0, 1, 2, 3);
393
gtk_table_attach_defaults(GTK_TABLE(ds->table), gtk_label_new(_("pseudo class")), 0, 1, 3, 4);
395
tmplist = glist_with_html_tags(0);
396
ds->combo[8] = combo_with_popdown(NULL, tmplist, 1);
397
g_list_free(tmplist);
398
gtk_table_attach_defaults(GTK_TABLE(ds->table), ds->combo[8], 1, 3, 1, 2);
399
ds->combo[9] = combo_with_popdown(NULL, main_v->current_project.classlist, 1);
400
gtk_table_attach_defaults(GTK_TABLE(ds->table), ds->combo[9], 1, 3, 2, 3);
401
tmplist = g_list_append(NULL, "");
402
tmplist = g_list_append(tmplist, "link");
403
tmplist = g_list_append(tmplist, "visited");
404
tmplist = g_list_append(tmplist, "active");
405
tmplist = g_list_append(tmplist, "hover");
406
tmplist = g_list_append(tmplist, "focus");
407
tmplist = g_list_append(tmplist, "after");
408
tmplist = g_list_append(tmplist, "before");
409
tmplist = g_list_append(tmplist, "first-line");
410
tmplist = g_list_append(tmplist, "first-letter");
411
tmplist = g_list_append(tmplist, "first-child");
412
ds->combo[10] = combo_with_popdown(NULL, tmplist, 1);
413
g_list_free(tmplist);
414
gtk_table_attach_defaults(GTK_TABLE(ds->table), ds->combo[10], 1, 3, 3, 4);
416
notebook = gtk_notebook_new();
417
gtk_notebook_set_tab_border(GTK_NOTEBOOK(notebook), 0);
418
gtk_notebook_set_tab_pos(GTK_NOTEBOOK(notebook), GTK_POS_BOTTOM);
419
gtk_table_attach_defaults(GTK_TABLE(ds->table), notebook, 0, 4, 4, 5);
421
/* start on font tab */
422
table = gtk_table_new(4, 9, 0);
423
gtk_table_attach_defaults(GTK_TABLE(table), gtk_label_new(_("font-family")), 0, 1, 1, 2);
424
gtk_table_attach_defaults(GTK_TABLE(table), gtk_label_new(_("font-style")), 0, 1, 2, 3);
425
gtk_table_attach_defaults(GTK_TABLE(table), gtk_label_new(_("font-variant")), 0, 1, 3, 4);
426
gtk_table_attach_defaults(GTK_TABLE(table), gtk_label_new(_("font-weight")), 0, 1, 4, 5);
427
gtk_table_attach_defaults(GTK_TABLE(table), gtk_label_new(_("font-size")), 2, 3, 5, 6);
428
gtk_table_attach_defaults(GTK_TABLE(table), gtk_label_new(_("line-height")), 2, 3, 7, 8);
429
ds->check[1] = gtk_check_button_new_with_label(_("Insert as one line"));
430
gtk_table_attach_defaults(GTK_TABLE(table), ds->check[1], 0, 4, 0, 1);
432
ds->combo[1] = combo_with_popdown(NULL, main_v->current_project.fontlist, 1);
433
gtk_table_attach_defaults(GTK_TABLE(table), ds->combo[1], 1, 4, 1, 2);
435
tmplist = g_list_append(NULL, "");
436
tmplist = g_list_append(tmplist, "normal");
437
tmplist = g_list_append(tmplist, "italic");
438
tmplist = g_list_append(tmplist, "oblique");
439
ds->combo[2] = combo_with_popdown(NULL, tmplist, 0);
440
g_list_free(tmplist);
441
gtk_table_attach_defaults(GTK_TABLE(table), ds->combo[2], 1, 4, 2, 3);
443
tmplist = g_list_append(NULL, "");
444
tmplist = g_list_append(tmplist, "normal");
445
tmplist = g_list_append(tmplist, "small-caps");
446
ds->combo[3] = combo_with_popdown(NULL, tmplist, 0);
447
g_list_free(tmplist);
448
gtk_table_attach_defaults(GTK_TABLE(table), ds->combo[3], 1, 4, 3, 4);
450
tmplist = g_list_append(NULL, "");
451
tmplist = g_list_append(tmplist, "normal");
452
tmplist = g_list_append(tmplist, "bold");
453
tmplist = g_list_append(tmplist, "bolder");
454
tmplist = g_list_append(tmplist, "lighter");
455
tmplist = g_list_append(tmplist, "100");
456
tmplist = g_list_append(tmplist, "200");
457
tmplist = g_list_append(tmplist, "300");
458
tmplist = g_list_append(tmplist, "400");
459
tmplist = g_list_append(tmplist, "500");
460
tmplist = g_list_append(tmplist, "600");
461
tmplist = g_list_append(tmplist, "700");
462
tmplist = g_list_append(tmplist, "800");
463
tmplist = g_list_append(tmplist, "900");
464
ds->combo[4] = combo_with_popdown(NULL, tmplist, 0);
465
gtk_table_attach_defaults(GTK_TABLE(table), ds->combo[4], 1, 4, 4, 5);
466
g_list_free(tmplist);
468
tmplist = g_list_append(NULL, "");
469
ds->combo[5] = combo_with_popdown(NULL, tmplist, 1);
470
gtk_table_attach_defaults(GTK_TABLE(table), ds->combo[5], 2, 4, 6, 7);
472
tmplist = g_list_append(NULL, "");
473
ds->combo[6] = combo_with_popdown(NULL, tmplist, 1);
474
gtk_table_attach_defaults(GTK_TABLE(table), ds->combo[6], 2, 4, 8, 9);
476
frame = gtk_frame_new("size unit");
477
gtk_table_attach(GTK_TABLE(table), frame, 0, 2, 5, 9, GTK_FILL | GTK_EXPAND, GTK_FILL | GTK_EXPAND, 5, 5);
478
vbox = gtk_vbox_new(TRUE, 1);
479
gtk_container_add(GTK_CONTAINER(frame), vbox);
480
ds->radio[1] = gtk_radio_button_new_with_label(NULL, _("absolute size"));
481
gtk_box_pack_start(GTK_BOX(vbox), ds->radio[1], TRUE, TRUE, 0);
482
group = gtk_radio_button_group(GTK_RADIO_BUTTON(ds->radio[1]));
483
ds->radio[2] = gtk_radio_button_new_with_label(group, _("relative size"));
484
gtk_box_pack_start(GTK_BOX(vbox), ds->radio[2], TRUE, TRUE, 0);
485
group = gtk_radio_button_group(GTK_RADIO_BUTTON(ds->radio[2]));
486
ds->radio[3] = gtk_radio_button_new_with_label(group, _("length/percentage"));
487
gtk_box_pack_start(GTK_BOX(vbox), ds->radio[3], TRUE, TRUE, 0);
488
group = gtk_radio_button_group(GTK_RADIO_BUTTON(ds->radio[3]));
489
gtk_signal_connect(GTK_OBJECT(ds->radio[1]), "clicked", sizing_unit_font_cb, ds);
490
gtk_signal_connect(GTK_OBJECT(ds->radio[2]), "clicked", sizing_unit_font_cb, ds);
491
gtk_signal_connect(GTK_OBJECT(ds->radio[3]), "clicked", sizing_unit_font_cb, ds);
492
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ds->radio[3]), 1);
493
/* font tab completed */
494
gtk_notebook_append_page(GTK_NOTEBOOK(notebook), table, apply_font_style(gtk_label_new("Font"), main_v->props.cfg_tab_font));
496
/* margin&padding tab started */
497
/* check 3-4, combo 25-32 */
499
table = table = gtk_table_new(3, 7, 0);
500
gtk_table_attach_defaults(GTK_TABLE(table), gtk_label_new(_("margin")), 1, 2, 2, 3);
501
gtk_table_attach_defaults(GTK_TABLE(table), gtk_label_new(_("padding")), 2, 3, 2, 3);
502
gtk_table_attach_defaults(GTK_TABLE(table), gtk_label_new(_("top")), 0, 1, 3, 4);
503
gtk_table_attach_defaults(GTK_TABLE(table), gtk_label_new(_("right")), 0, 1, 4, 5);
504
gtk_table_attach_defaults(GTK_TABLE(table), gtk_label_new(_("bottom")), 0, 1, 5, 6);
505
gtk_table_attach_defaults(GTK_TABLE(table), gtk_label_new(_("left")), 0, 1, 6, 7);
506
ds->check[3] = gtk_check_button_new_with_label(_("Insert margin as one line"));
507
gtk_table_attach_defaults(GTK_TABLE(table), ds->check[3], 0, 3, 0, 1);
508
ds->check[4] = gtk_check_button_new_with_label(_("Insert padding as one line"));
509
gtk_table_attach_defaults(GTK_TABLE(table), ds->check[4], 0, 3, 1, 2);
510
tmplist = make_length_list(0.1, 10, 1, 0);
511
g_list_append(tmplist, "auto");
512
ds->combo[25] = combo_with_popdown(NULL, tmplist, 1);
513
gtk_table_attach_defaults(GTK_TABLE(table), ds->combo[25], 1, 2, 3, 4);
514
ds->combo[27] = combo_with_popdown(NULL, tmplist, 1);
515
gtk_table_attach_defaults(GTK_TABLE(table), ds->combo[27], 1, 2, 4, 5);
516
ds->combo[29] = combo_with_popdown(NULL, tmplist, 1);
517
gtk_table_attach_defaults(GTK_TABLE(table), ds->combo[29], 1, 2, 5, 6);
518
ds->combo[31] = combo_with_popdown(NULL, tmplist, 1);
519
gtk_table_attach_defaults(GTK_TABLE(table), ds->combo[31], 1, 2, 6, 7);
520
g_list_free(tmplist);
522
tmplist = make_length_list(0.1, 10, 1, 0);
523
ds->combo[26] = combo_with_popdown(NULL, tmplist, 1);
524
gtk_table_attach_defaults(GTK_TABLE(table), ds->combo[26], 2, 3, 3, 4);
525
ds->combo[28] = combo_with_popdown(NULL, tmplist, 1);
526
gtk_table_attach_defaults(GTK_TABLE(table), ds->combo[28], 2, 3, 4, 5);
527
ds->combo[30] = combo_with_popdown(NULL, tmplist, 1);
528
gtk_table_attach_defaults(GTK_TABLE(table), ds->combo[30], 2, 3, 5, 6);
529
ds->combo[32] = combo_with_popdown(NULL, tmplist, 1);
530
gtk_table_attach_defaults(GTK_TABLE(table), ds->combo[32], 2, 3, 6, 7);
531
g_list_free(tmplist);
533
/* margin&padding tab completed */
534
gtk_notebook_append_page(GTK_NOTEBOOK(notebook), table,
535
apply_font_style(gtk_label_new(_("Margin & padding")), main_v->props.cfg_tab_font));
537
/* border tab started */
538
table = table = gtk_table_new(4, 8, 0);
539
gtk_table_attach_defaults(GTK_TABLE(table), gtk_label_new(_("width")), 1, 2, 3, 4);
540
gtk_table_attach_defaults(GTK_TABLE(table), gtk_label_new(_("color")), 2, 3, 3, 4);
541
gtk_table_attach_defaults(GTK_TABLE(table), gtk_label_new(_("style")), 3, 4, 3, 4);
542
gtk_table_attach_defaults(GTK_TABLE(table), gtk_label_new(_("top")), 0, 1, 4, 5);
543
gtk_table_attach_defaults(GTK_TABLE(table), gtk_label_new(_("right")), 0, 1, 5, 6);
544
gtk_table_attach_defaults(GTK_TABLE(table), gtk_label_new(_("bottom")), 0, 1, 6, 7);
545
gtk_table_attach_defaults(GTK_TABLE(table), gtk_label_new(_("left")), 0, 1, 7, 8);
546
ds->radio[7] = gtk_radio_button_new_with_label(NULL, _("Insert values per property"));
547
gtk_table_attach_defaults(GTK_TABLE(table), ds->radio[7], 0, 4, 0, 1);
548
group = gtk_radio_button_group(GTK_RADIO_BUTTON(ds->radio[7]));
549
ds->radio[8] = gtk_radio_button_new_with_label(group, _("Insert values per border side"));
550
gtk_table_attach_defaults(GTK_TABLE(table), ds->radio[8], 0, 4, 1, 2);
551
group = gtk_radio_button_group(GTK_RADIO_BUTTON(ds->radio[8]));
552
ds->radio[9] = gtk_radio_button_new_with_label(group, _("Insert top-values as general value for all sides"));
553
gtk_table_attach_defaults(GTK_TABLE(table), ds->radio[9], 0, 4, 2, 3);
554
group = gtk_radio_button_group(GTK_RADIO_BUTTON(ds->radio[9]));
555
tmplist = make_length_list(0, 0.5, 0, 0);
556
tmplist = g_list_append(tmplist, "thin");
557
tmplist = g_list_append(tmplist, "medium");
558
tmplist = g_list_append(tmplist, "thick");
559
ds->combo[41] = combo_with_popdown(NULL, tmplist, 1);
560
gtk_table_attach_defaults(GTK_TABLE(table), ds->combo[41], 1, 2, 4, 5);
561
ds->combo[44] = combo_with_popdown(NULL, tmplist, 1);
562
gtk_table_attach_defaults(GTK_TABLE(table), ds->combo[44], 1, 2, 5, 6);
563
ds->combo[47] = combo_with_popdown(NULL, tmplist, 1);
564
gtk_table_attach_defaults(GTK_TABLE(table), ds->combo[47], 1, 2, 6, 7);
565
ds->combo[50] = combo_with_popdown(NULL, tmplist, 1);
566
gtk_table_attach_defaults(GTK_TABLE(table), ds->combo[50], 1, 2, 7, 8);
568
ds->combo[42] = combo_with_popdown(NULL, main_v->current_project.colorlist, 1);
569
gtk_table_attach_defaults(GTK_TABLE(table), ds->combo[42], 2, 3, 4, 5);
570
ds->combo[45] = combo_with_popdown(NULL, main_v->current_project.colorlist, 1);
571
gtk_table_attach_defaults(GTK_TABLE(table), ds->combo[45], 2, 3, 5, 6);
572
ds->combo[48] = combo_with_popdown(NULL, main_v->current_project.colorlist, 1);
573
gtk_table_attach_defaults(GTK_TABLE(table), ds->combo[48], 2, 3, 6, 7);
574
ds->combo[51] = combo_with_popdown(NULL, main_v->current_project.colorlist, 1);
575
gtk_table_attach_defaults(GTK_TABLE(table), ds->combo[51], 2, 3, 7, 8);
577
tmplist = g_list_append(NULL, "");
578
tmplist = g_list_append(tmplist, "none");
579
tmplist = g_list_append(tmplist, "dotted");
580
tmplist = g_list_append(tmplist, "dashed");
581
tmplist = g_list_append(tmplist, "solid");
582
tmplist = g_list_append(tmplist, "double");
583
tmplist = g_list_append(tmplist, "groove");
584
tmplist = g_list_append(tmplist, "ridge");
585
tmplist = g_list_append(tmplist, "inset");
586
tmplist = g_list_append(tmplist, "outset");
587
ds->combo[43] = combo_with_popdown(NULL, tmplist, 1);
588
gtk_table_attach_defaults(GTK_TABLE(table), ds->combo[43], 3, 4, 4, 5);
589
ds->combo[46] = combo_with_popdown(NULL, tmplist, 1);
590
gtk_table_attach_defaults(GTK_TABLE(table), ds->combo[46], 3, 4, 5, 6);
591
ds->combo[49] = combo_with_popdown(NULL, tmplist, 1);
592
gtk_table_attach_defaults(GTK_TABLE(table), ds->combo[49], 3, 4, 6, 7);
593
ds->combo[52] = combo_with_popdown(NULL, tmplist, 1);
594
gtk_table_attach_defaults(GTK_TABLE(table), ds->combo[52], 3, 4, 7, 8);
595
g_list_free(tmplist);
596
/* border tab completed */
597
gtk_notebook_append_page(GTK_NOTEBOOK(notebook), table, apply_font_style(gtk_label_new("Border"), main_v->props.cfg_tab_font));
599
/* size&placement tab started */
601
table = table = gtk_table_new(2, 4, 0);
602
gtk_table_attach_defaults(GTK_TABLE(table), gtk_label_new(_("width")), 0, 1, 0, 1);
603
gtk_table_attach_defaults(GTK_TABLE(table), gtk_label_new(_("height")), 0, 1, 1, 2);
604
gtk_table_attach_defaults(GTK_TABLE(table), gtk_label_new(_("float")), 0, 1, 2, 3);
605
gtk_table_attach_defaults(GTK_TABLE(table), gtk_label_new(_("clear")), 0, 1, 3, 4);
606
tmplist = make_length_list(2.9, 100, 1, 1);
607
ds->combo[33] = combo_with_popdown(NULL, tmplist, 1);
608
g_list_free(tmplist);
609
gtk_table_attach_defaults(GTK_TABLE(table), ds->combo[33], 1, 2, 0, 1);
610
tmplist = make_length_list(2.9, 100, 0, 0);
611
ds->combo[34] = combo_with_popdown(NULL, tmplist, 1);
612
g_list_free(tmplist);
613
gtk_table_attach_defaults(GTK_TABLE(table), ds->combo[34], 1, 2, 1, 2);
614
tmplist = g_list_append(NULL, "");
615
tmplist = g_list_append(tmplist, "left");
616
tmplist = g_list_append(tmplist, "right");
617
tmplist = g_list_append(tmplist, "none");
618
ds->combo[35] = combo_with_popdown(NULL, tmplist, 1);
619
g_list_free(tmplist);
620
gtk_table_attach_defaults(GTK_TABLE(table), ds->combo[35], 1, 2, 2, 3);
621
tmplist = g_list_append(NULL, "");
622
tmplist = g_list_append(tmplist, "left");
623
tmplist = g_list_append(tmplist, "right");
624
tmplist = g_list_append(tmplist, "none");
625
tmplist = g_list_append(tmplist, "both");
626
ds->combo[36] = combo_with_popdown(NULL, tmplist, 1);
627
g_list_free(tmplist);
628
gtk_table_attach_defaults(GTK_TABLE(table), ds->combo[36], 1, 2, 3, 4);
629
/* size&placement tab completed */
630
gtk_notebook_append_page(GTK_NOTEBOOK(notebook), table,
631
apply_font_style(gtk_label_new(_("Size & placement")), main_v->props.cfg_tab_font));
633
/* color&background tab started */
634
table = table = gtk_table_new(5, 9, 0);
635
gtk_table_attach_defaults(GTK_TABLE(table), gtk_label_new(_("color")), 0, 1, 0, 1);
636
gtk_table_attach_defaults(GTK_TABLE(table), gtk_label_new(_("background-color")), 0, 1, 2, 3);
637
gtk_table_attach_defaults(GTK_TABLE(table), gtk_label_new(_("background-image")), 0, 1, 3, 4);
638
gtk_table_attach_defaults(GTK_TABLE(table), gtk_label_new(_("background-repeat")), 0, 1, 4, 5);
639
gtk_table_attach_defaults(GTK_TABLE(table), gtk_label_new(_("background-attachment")), 0, 1, 5, 6);
640
gtk_table_attach_defaults(GTK_TABLE(table), gtk_label_new(_("background-position")), 2, 4, 6, 7);
641
gtk_table_attach_defaults(GTK_TABLE(table), gtk_label_new(_("accross")), 2, 3, 7, 8);
642
gtk_table_attach_defaults(GTK_TABLE(table), gtk_label_new(_("down")), 2, 3, 8, 9);
644
ds->combo[11] = combo_with_popdown(NULL, main_v->current_project.colorlist, 1);
645
gtk_table_attach_defaults(GTK_TABLE(table), ds->combo[11], 1, 4, 0, 1);
646
ds->check[2] = gtk_check_button_new_with_label(_("Insert background as one line"));
647
gtk_table_attach_defaults(GTK_TABLE(table), ds->check[2], 0, 4, 1, 2);
648
ds->combo[12] = combo_with_popdown(NULL, main_v->current_project.colorlist, 1);
649
gtk_table_attach_defaults(GTK_TABLE(table), ds->combo[12], 1, 4, 2, 3);
650
ds->combo[13] = combo_with_popdown(NULL, main_v->current_project.urllist, 1);
651
gtk_table_attach_defaults(GTK_TABLE(table), ds->combo[13], 1, 4, 3, 4);
653
tmplist = g_list_append(NULL, "");
654
tmplist = g_list_append(tmplist, "repeat");
655
tmplist = g_list_append(tmplist, "repeat-x");
656
tmplist = g_list_append(tmplist, "repeat-y");
657
tmplist = g_list_append(tmplist, "no-repeat");
658
ds->combo[14] = combo_with_popdown(NULL, tmplist, 0);
659
gtk_table_attach_defaults(GTK_TABLE(table), ds->combo[14], 1, 4, 4, 5);
660
g_list_free(tmplist);
662
tmplist = g_list_append(NULL, "");
663
tmplist = g_list_append(tmplist, "scroll");
664
tmplist = g_list_append(tmplist, "fixed");
665
ds->combo[15] = combo_with_popdown(NULL, tmplist, 0);
666
gtk_table_attach_defaults(GTK_TABLE(table), ds->combo[15], 1, 4, 5, 6);
667
g_list_free(tmplist);
669
tmplist = g_list_append(NULL, "");
670
ds->combo[16] = combo_with_popdown(NULL, tmplist, 1);
671
gtk_table_attach_defaults(GTK_TABLE(table), ds->combo[16], 3, 5, 7, 8);
673
tmplist = g_list_append(NULL, "");
674
ds->combo[17] = combo_with_popdown(NULL, tmplist, 1);
675
gtk_table_attach_defaults(GTK_TABLE(table), ds->combo[17], 3, 5, 8, 9);
677
frame = gtk_frame_new(_("size unit"));
678
gtk_table_attach(GTK_TABLE(table), frame, 0, 2, 6, 9, GTK_FILL | GTK_EXPAND, GTK_FILL | GTK_EXPAND, 5, 5);
679
vbox = gtk_vbox_new(TRUE, 1);
681
gtk_container_add(GTK_CONTAINER(frame), vbox);
682
ds->radio[4] = gtk_radio_button_new_with_label(NULL, _("percentage"));
683
gtk_box_pack_start(GTK_BOX(vbox), ds->radio[4], TRUE, TRUE, 0);
684
group = gtk_radio_button_group(GTK_RADIO_BUTTON(ds->radio[4]));
685
ds->radio[5] = gtk_radio_button_new_with_label(group, _("absolute size"));
686
gtk_box_pack_start(GTK_BOX(vbox), ds->radio[5], TRUE, TRUE, 0);
687
group = gtk_radio_button_group(GTK_RADIO_BUTTON(ds->radio[5]));
688
ds->radio[6] = gtk_radio_button_new_with_label(group, _("keyword"));
689
gtk_box_pack_start(GTK_BOX(vbox), ds->radio[6], TRUE, TRUE, 0);
690
group = gtk_radio_button_group(GTK_RADIO_BUTTON(ds->radio[6]));
691
gtk_signal_connect(GTK_OBJECT(ds->radio[4]), "clicked", sizing_unit_bg_cb, ds);
692
gtk_signal_connect(GTK_OBJECT(ds->radio[5]), "clicked", sizing_unit_bg_cb, ds);
693
gtk_signal_connect(GTK_OBJECT(ds->radio[6]), "clicked", sizing_unit_bg_cb, ds);
694
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ds->radio[4]), 1);
696
/* color&background tab completed */
697
gtk_notebook_append_page(GTK_NOTEBOOK(notebook), table,
698
apply_font_style(gtk_label_new(_("Color & background")), main_v->props.cfg_tab_font));
700
/* text tab started */
701
table = table = gtk_table_new(2, 7, 0);
702
gtk_table_attach_defaults(GTK_TABLE(table), gtk_label_new(_("word-spacing")), 0, 1, 0, 1);
703
gtk_table_attach_defaults(GTK_TABLE(table), gtk_label_new(_("letter-spacing")), 0, 1, 1, 2);
704
gtk_table_attach_defaults(GTK_TABLE(table), gtk_label_new(_("vertical-align")), 0, 1, 2, 3);
705
gtk_table_attach_defaults(GTK_TABLE(table), gtk_label_new(_("text-align")), 0, 1, 3, 4);
706
gtk_table_attach_defaults(GTK_TABLE(table), gtk_label_new(_("text-decoration")), 0, 1, 4, 5);
707
gtk_table_attach_defaults(GTK_TABLE(table), gtk_label_new(_("text-transform")), 0, 1, 5, 6);
708
gtk_table_attach_defaults(GTK_TABLE(table), gtk_label_new(_("text-indent")), 0, 1, 6, 7);
710
tmplist = make_length_list(0.4, 4, 0, 0);
711
ds->combo[18] = combo_with_popdown(NULL, tmplist, 1);
712
gtk_table_attach_defaults(GTK_TABLE(table), ds->combo[18], 1, 2, 0, 1);
713
g_list_free(tmplist);
714
tmplist = make_length_list(0, 0.6, 0, 0);
715
ds->combo[19] = combo_with_popdown(NULL, tmplist, 1);
716
gtk_table_attach_defaults(GTK_TABLE(table), ds->combo[19], 1, 2, 1, 2);
717
g_list_free(tmplist);
718
tmplist = g_list_append(NULL, "");
719
tmplist = g_list_append(tmplist, "baseline");
720
tmplist = g_list_append(tmplist, "sub");
721
tmplist = g_list_append(tmplist, "super");
722
tmplist = g_list_append(tmplist, "top");
723
tmplist = g_list_append(tmplist, "text-top");
724
tmplist = g_list_append(tmplist, "middle");
725
tmplist = g_list_append(tmplist, "bottom");
726
tmplist = g_list_append(tmplist, "text-bottom");
727
tmplist = g_list_append(tmplist, "-50%");
728
tmplist = g_list_append(tmplist, "-100%");
729
tmplist = g_list_append(tmplist, "50%");
730
tmplist = g_list_append(tmplist, "100%");
731
ds->combo[20] = combo_with_popdown(NULL, tmplist, 1);
732
gtk_table_attach_defaults(GTK_TABLE(table), ds->combo[20], 1, 2, 2, 3);
733
g_list_free(tmplist);
734
tmplist = g_list_append(NULL, "");
735
tmplist = g_list_append(tmplist, "left");
736
tmplist = g_list_append(tmplist, "right");
737
tmplist = g_list_append(tmplist, "center");
738
tmplist = g_list_append(tmplist, "justify");
739
ds->combo[21] = combo_with_popdown(NULL, tmplist, 0);
740
gtk_table_attach_defaults(GTK_TABLE(table), ds->combo[21], 1, 2, 3, 4);
741
g_list_free(tmplist);
742
tmplist = g_list_append(NULL, "");
743
tmplist = g_list_append(tmplist, "none");
744
tmplist = g_list_append(tmplist, "underline");
745
tmplist = g_list_append(tmplist, "overline");
746
tmplist = g_list_append(tmplist, "line-trough");
747
tmplist = g_list_append(tmplist, "blink");
748
ds->combo[22] = combo_with_popdown(NULL, tmplist, 0);
749
gtk_table_attach_defaults(GTK_TABLE(table), ds->combo[22], 1, 2, 4, 5);
750
g_list_free(tmplist);
751
tmplist = g_list_append(NULL, "");
752
tmplist = g_list_append(tmplist, "none");
753
tmplist = g_list_append(tmplist, "capitalize");
754
tmplist = g_list_append(tmplist, "uppercase");
755
tmplist = g_list_append(tmplist, "lowercase");
756
ds->combo[23] = combo_with_popdown(NULL, tmplist, 0);
757
gtk_table_attach_defaults(GTK_TABLE(table), ds->combo[23], 1, 2, 5, 6);
758
g_list_free(tmplist);
759
tmplist = make_length_list(0, 4, 1, 1);
760
ds->combo[24] = combo_with_popdown(NULL, tmplist, 1);
761
gtk_table_attach_defaults(GTK_TABLE(table), ds->combo[24], 1, 2, 6, 7);
762
g_list_free(tmplist);
763
/* text tab completed */
764
gtk_notebook_append_page(GTK_NOTEBOOK(notebook), table, apply_font_style(gtk_label_new("Text"), main_v->props.cfg_tab_font));
766
/* classification tab started */
767
/* combo 37-40, check 5, entry 3 */
768
table = table = gtk_table_new(3, 6, 0);
769
gtk_table_attach_defaults(GTK_TABLE(table), gtk_label_new(_("display")), 0, 1, 0, 1);
770
gtk_table_attach_defaults(GTK_TABLE(table), gtk_label_new(_("white-space")), 0, 1, 1, 2);
771
gtk_table_attach_defaults(GTK_TABLE(table), gtk_label_new(_("list-style-type")), 0, 1, 3, 4);
772
gtk_table_attach_defaults(GTK_TABLE(table), gtk_label_new(_("list-style-image")), 0, 1, 4, 5);
773
gtk_table_attach_defaults(GTK_TABLE(table), gtk_label_new(_("list-style-position")), 0, 1, 5, 6);
774
tmplist = g_list_append(NULL, "");
775
ds->combo[37] = combo_with_popdown(NULL, tmplist, 1);
776
g_list_free(tmplist);
777
gtk_table_attach_defaults(GTK_TABLE(table), ds->combo[37], 1, 2, 0, 1);
778
tmplist = g_list_append(NULL, "");
779
ds->combo[38] = combo_with_popdown(NULL, tmplist, 1);
780
g_list_free(tmplist);
781
gtk_table_attach_defaults(GTK_TABLE(table), ds->combo[38], 1, 2, 1, 2);
782
ds->check[5] = gtk_check_button_new_with_label(_("Insert list-item as one line"));
783
gtk_table_attach_defaults(GTK_TABLE(table), ds->check[5], 0, 2, 2, 3);
784
tmplist = g_list_append(NULL, "");
785
ds->combo[39] = combo_with_popdown(NULL, tmplist, 1);
786
g_list_free(tmplist);
787
gtk_table_attach_defaults(GTK_TABLE(table), ds->combo[39], 1, 2, 3, 4);
788
tmplist = g_list_append(NULL, "");
789
ds->combo[40] = combo_with_popdown(NULL, tmplist, 1);
790
g_list_free(tmplist);
791
gtk_table_attach_defaults(GTK_TABLE(table), ds->combo[40], 1, 2, 5, 6);
792
ds->entry[3] = gtk_entry_new();
793
gtk_table_attach_defaults(GTK_TABLE(table), ds->entry[3], 1, 2, 4, 5);
794
file_but = file_but_new(ds->entry[3], ds->dialog, 0);
795
gtk_table_attach(GTK_TABLE(table), file_but, 2, 3, 4, 5, 0, 0, 5, 5);
796
/* classification tab completed */
797
gtk_notebook_append_page(GTK_NOTEBOOK(notebook), table, apply_font_style(gtk_label_new("Classification"), main_v->props.cfg_tab_font));
799
middle_dialog(ds, 0, 2, 4, 5, 6);
800
if (ds->abort != 1) {
803
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ds->check[1]))) {
805
g_strdup_printf(" font: %s %s %s %s%s %s;\n", insert_if_string("%s", GTK_WIDGET(GTK_COMBO(ds->combo[2])->entry), "normal")
806
, insert_if_string("%s", GTK_WIDGET(GTK_COMBO(ds->combo[3])->entry), "normal")
807
, insert_if_string("%s", GTK_WIDGET(GTK_COMBO(ds->combo[4])->entry), "normal")
808
, gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(ds->combo[5])->entry))
809
, insert_if_string("/%s", GTK_WIDGET(GTK_COMBO(ds->combo[6])->entry), NULL)
810
, gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(ds->combo[1])->entry))
814
g_strdup_printf("%s%s%s%s%s%s", insert_if_string(" font-family: %s;\n", GTK_WIDGET(GTK_COMBO(ds->combo[1])->entry), NULL)
815
, insert_if_string(" font-style: %s;\n", GTK_WIDGET(GTK_COMBO(ds->combo[2])->entry), NULL)
816
, insert_if_string(" font-variant: %s;\n", GTK_WIDGET(GTK_COMBO(ds->combo[3])->entry), NULL)
817
, insert_if_string(" font-weight: %s;\n", GTK_WIDGET(GTK_COMBO(ds->combo[4])->entry), NULL)
818
, insert_if_string(" font-size: %s;\n", GTK_WIDGET(GTK_COMBO(ds->combo[5])->entry), NULL)
819
, insert_if_string(" line-height: %s;\n", GTK_WIDGET(GTK_COMBO(ds->combo[6])->entry), NULL)
822
garbage = g_list_append(garbage, fontstring);
823
DEBUG_MSG("style, fontstring=%s\n", fontstring);
825
/* margin & padding tab */
826
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ds->check[3]))) {
828
g_strdup_printf(" margin: %s %s %s %s;\n", insert_if_string("%s", GTK_WIDGET(GTK_COMBO(ds->combo[25])->entry), "0")
829
, insert_if_string("%s", GTK_WIDGET(GTK_COMBO(ds->combo[27])->entry), "0")
830
, insert_if_string("%s", GTK_WIDGET(GTK_COMBO(ds->combo[29])->entry), "0")
831
, insert_if_string("%s", GTK_WIDGET(GTK_COMBO(ds->combo[31])->entry), "0")
835
g_strdup_printf("%s%s%s%s", insert_if_string(" margin-top: %s;\n", GTK_WIDGET(GTK_COMBO(ds->combo[25])->entry), NULL),
836
insert_if_string(" margin-right: %s;\n", GTK_WIDGET(GTK_COMBO(ds->combo[27])->entry), NULL)
837
, insert_if_string(" margin-bottom: %s;\n", GTK_WIDGET(GTK_COMBO(ds->combo[29])->entry), NULL)
838
, insert_if_string(" margin-left: %s;\n", GTK_WIDGET(GTK_COMBO(ds->combo[31])->entry), NULL)
841
garbage = g_list_append(garbage, margstring);
842
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ds->check[4]))) {
844
g_strdup_printf(" padding: %s %s %s %s;\n", insert_if_string("%s", GTK_WIDGET(GTK_COMBO(ds->combo[26])->entry), "0")
845
, insert_if_string("%s", GTK_WIDGET(GTK_COMBO(ds->combo[28])->entry), "0")
846
, insert_if_string("%s", GTK_WIDGET(GTK_COMBO(ds->combo[30])->entry), "0")
847
, insert_if_string("%s", GTK_WIDGET(GTK_COMBO(ds->combo[32])->entry), "0")
851
g_strdup_printf("%s%s%s%s", insert_if_string(" padding-top: %s;\n", GTK_WIDGET(GTK_COMBO(ds->combo[26])->entry), NULL),
852
insert_if_string(" padding-right: %s;\n", GTK_WIDGET(GTK_COMBO(ds->combo[28])->entry), NULL)
853
, insert_if_string(" padding-bottom: %s;\n", GTK_WIDGET(GTK_COMBO(ds->combo[30])->entry), NULL)
854
, insert_if_string(" padding-left: %s;\n", GTK_WIDGET(GTK_COMBO(ds->combo[32])->entry), NULL)
857
garbage = g_list_append(garbage, padstring);
858
/* end of margin & padding */
860
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ds->radio[7]))) {
862
g_strdup_printf(" border-width: %s %s %s %s;\n border-color: %s %s %s %s;\n border-style: %s %s %s %s;\n",
863
insert_if_string("%s", GTK_WIDGET(GTK_COMBO(ds->combo[41])->entry), "medium")
864
, insert_if_string("%s", GTK_WIDGET(GTK_COMBO(ds->combo[44])->entry), "medium")
865
, insert_if_string("%s", GTK_WIDGET(GTK_COMBO(ds->combo[47])->entry), "medium")
866
, insert_if_string("%s", GTK_WIDGET(GTK_COMBO(ds->combo[50])->entry), "medium")
867
, gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(ds->combo[42])->entry))
868
, gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(ds->combo[45])->entry))
869
, gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(ds->combo[48])->entry))
870
, gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(ds->combo[51])->entry))
871
, insert_if_string("%s", GTK_WIDGET(GTK_COMBO(ds->combo[43])->entry), "none")
872
, insert_if_string("%s", GTK_WIDGET(GTK_COMBO(ds->combo[46])->entry), "none")
873
, insert_if_string("%s", GTK_WIDGET(GTK_COMBO(ds->combo[49])->entry), "none")
874
, insert_if_string("%s", GTK_WIDGET(GTK_COMBO(ds->combo[52])->entry), "none")
876
} else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ds->radio[8]))) {
879
(" border-top: %s %s %s;\n border-right: %s %s %s;\n border-bottom: %s %s %s;\n border-left: %s %s %s;\n",
880
gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(ds->combo[41])->entry))
881
, gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(ds->combo[42])->entry))
882
, gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(ds->combo[43])->entry))
883
, gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(ds->combo[44])->entry))
884
, gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(ds->combo[45])->entry))
885
, gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(ds->combo[46])->entry))
886
, gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(ds->combo[47])->entry))
887
, gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(ds->combo[48])->entry))
888
, gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(ds->combo[49])->entry))
889
, gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(ds->combo[50])->entry))
890
, gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(ds->combo[51])->entry))
891
, gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(ds->combo[52])->entry))
894
borderstring = g_strdup_printf(" border: %s %s %s;\n", gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(ds->combo[41])->entry))
895
, gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(ds->combo[42])->entry))
896
, gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(ds->combo[43])->entry))
899
garbage = g_list_append(garbage, borderstring);
900
DEBUG_MSG("insert_in_stylesheet, borderstring=%s\n", borderstring);
902
/* size and placement tab */
903
sizeplacestring = g_strdup_printf("%s%s%s%s", insert_if_string(" width: %s;\n", GTK_WIDGET(GTK_COMBO(ds->combo[33])->entry), NULL)
904
, insert_if_string(" height: %s;\n", GTK_WIDGET(GTK_COMBO(ds->combo[34])->entry), NULL)
905
, insert_if_string(" float: %s;\n", GTK_WIDGET(GTK_COMBO(ds->combo[35])->entry), NULL)
906
, insert_if_string(" clear: %s;\n", GTK_WIDGET(GTK_COMBO(ds->combo[36])->entry), NULL)
908
garbage = g_list_append(garbage, sizeplacestring);
909
/* end of size and placement */
910
/* color & background tab */
911
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ds->check[2]))) {
913
g_strdup_printf("%s background: %s %s %s %s %s %s;\n",
914
insert_if_string(" color: %s;\n", GTK_WIDGET(GTK_COMBO(ds->combo[11])->entry), NULL)
915
, insert_if_string("%s", GTK_WIDGET(GTK_COMBO(ds->combo[12])->entry), "transparent")
916
, insert_if_string("url(%s)", GTK_WIDGET(GTK_COMBO(ds->combo[13])->entry), NULL)
917
, insert_if_string("%s", GTK_WIDGET(GTK_COMBO(ds->combo[14])->entry), "repeat")
918
, insert_if_string("%s", GTK_WIDGET(GTK_COMBO(ds->combo[15])->entry), "scroll")
919
, insert_if_string("%s", GTK_WIDGET(GTK_COMBO(ds->combo[16])->entry), "0%")
920
, insert_if_string("%s", GTK_WIDGET(GTK_COMBO(ds->combo[17])->entry), "0%")
924
g_strdup_printf("%s%s%s%s%s%s%s", insert_if_string(" color: %s;\n", GTK_WIDGET(GTK_COMBO(ds->combo[11])->entry), NULL)
925
, insert_if_string(" background-color: %s;\n", GTK_WIDGET(GTK_COMBO(ds->combo[12])->entry), NULL)
926
, insert_if_string(" background-image: url(%s);\n", GTK_WIDGET(GTK_COMBO(ds->combo[13])->entry), NULL)
927
, insert_if_string(" background-repeat: %s;\n", GTK_WIDGET(GTK_COMBO(ds->combo[14])->entry), NULL)
928
, insert_if_string(" background-attachment: %s;\n", GTK_WIDGET(GTK_COMBO(ds->combo[15])->entry), NULL)
929
, insert_if_string(" background-position: %s", GTK_WIDGET(GTK_COMBO(ds->combo[16])->entry),
930
" background-position: top")
931
, insert_if_string(" %s;\n", GTK_WIDGET(GTK_COMBO(ds->combo[17])->entry), " left;\n")
934
DEBUG_MSG("insert_in_stylesheet, bgncolorstring=%s\n", bgncolorstring);
935
garbage = g_list_append(garbage, bgncolorstring);
936
/* end color & background tab */
937
DEBUG_MSG("insert_in_stylesheet, before text tab\n");
940
g_strdup_printf("%s%s%s%s%s%s%s", insert_if_string(" word-spacing: %s;\n", GTK_WIDGET(GTK_COMBO(ds->combo[18])->entry), NULL)
941
, insert_if_string(" letter-spacing: %s;\n", GTK_WIDGET(GTK_COMBO(ds->combo[19])->entry), NULL)
942
, insert_if_string(" vertical-align: %s;\n", GTK_WIDGET(GTK_COMBO(ds->combo[20])->entry), NULL)
943
, insert_if_string(" text-align: %s;\n", GTK_WIDGET(GTK_COMBO(ds->combo[21])->entry), NULL)
944
, insert_if_string(" text-decoration: %s;\n", GTK_WIDGET(GTK_COMBO(ds->combo[22])->entry), NULL)
945
, insert_if_string(" text-transform: %s;\n", GTK_WIDGET(GTK_COMBO(ds->combo[23])->entry), NULL)
946
, insert_if_string(" text-indent: %s;\n", GTK_WIDGET(GTK_COMBO(ds->combo[24])->entry), NULL)
948
garbage = g_list_append(garbage, textstring);
950
DEBUG_MSG("insert_in_stylesheet, before classification tab\n");
951
/* classification tab */
952
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ds->check[5]))) {
953
DEBUG_MSG("insert_in_stylesheet, check[5] = TRUE\n");
955
g_strdup_printf("%s%s list-style: %s %s %s;\n",
956
insert_if_string(" display: %s;\n", GTK_WIDGET(GTK_COMBO(ds->combo[37])->entry), NULL)
957
, insert_if_string(" white-space: %s;\n", GTK_WIDGET(GTK_COMBO(ds->combo[38])->entry), NULL)
958
, insert_if_string("%s", GTK_WIDGET(GTK_COMBO(ds->combo[39])->entry), "disc")
959
, insert_if_string("%s", GTK_WIDGET(ds->entry[3]), "none")
960
, insert_if_string("%s", GTK_WIDGET(GTK_COMBO(ds->combo[40])->entry), "outside")
963
DEBUG_MSG("insert_in_stylesheet, check[5] = FALSE\n");
965
g_strdup_printf("%s%s%s%s%s", insert_if_string(" display: %s;\n", GTK_WIDGET(GTK_COMBO(ds->combo[37])->entry), NULL),
966
insert_if_string(" white-space: %s;\n", GTK_WIDGET(GTK_COMBO(ds->combo[38])->entry), NULL)
967
, insert_if_string(" list-style-type: %s;\n", GTK_WIDGET(GTK_COMBO(ds->combo[39])->entry), NULL)
968
, insert_if_string(" list-style-image: %s;\n", GTK_WIDGET(ds->entry[3]), NULL)
969
, insert_if_string(" list-style-position: %s;\n", GTK_WIDGET(GTK_COMBO(ds->combo[40])->entry), NULL)
972
garbage = g_list_append(garbage, classistring);
973
/* end of classification */
974
DEBUG_MSG("insert_in_stylesheet, putting all the strings together\n");
975
ds->tmpstring = g_strdup_printf("%s%s%s {\n%s%s%s%s%s%s%s}\n", gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(ds->combo[8])->entry))
976
, insert_if_string(".%s", GTK_WIDGET(GTK_COMBO(ds->combo[9])->entry), NULL)
977
, insert_if_string(":%s", GTK_WIDGET(GTK_COMBO(ds->combo[10])->entry), NULL)
978
, fontstring, margstring, padstring, borderstring, bgncolorstring, textstring, classistring);
979
DEBUG_MSG("insert_new_style, ds->tmpstring=%s\n", ds->tmpstring);
980
insert_dbl_text(ds->tmpstring, "");
981
DEBUG_MSG("insert_new_style, text inserted\n");
982
main_v->current_project.fontlist =
983
add_to_stringlist(main_v->current_project.fontlist, gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(ds->combo[1])->entry)));
984
main_v->current_project.classlist =
985
add_to_stringlist(main_v->current_project.classlist, gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(ds->combo[9])->entry)));
986
g_free(ds->tmpstring);
988
DEBUG_MSG("insert_new_style, going to destroy dialog\n");
989
if (GTK_IS_WIDGET(ds->dialog))
990
gtk_widget_destroy(ds->dialog);
991
DEBUG_MSG("insert_new_style, free-ing garbage\n");
992
DEBUG_MSG("insert_new_style, garbage=%p, lenght=%d\n", garbage, g_list_length(garbage));
994
free_stringlist(garbage);
998
#endif /* OLD_CSS_DIALOG */
1000
/**********************************************************************/
1001
/**********************************************************************/
1002
/********************this is where the new css dialog is***************/
1003
/**********************************************************************/
1004
/**********************************************************************/
35
#include "pixmap.h" /* new_pixmap */
1006
37
static GList *glist_with_html_tags(gint with_pseudo_classes) {