36
35
static GtkWidget *spinbut_shadowfx, *spinbut_rssrefresh;
37
36
static GtkWidget *spinbut_wintransparency, *spinbut_nitemsperfeed;
38
37
static GtkWidget *checkbut_shadow, *checkbut_alwaysontop, *checkbut_windec;
39
static GtkWidget *checkbut_rsstitle, *checkbut_rssdes, *checkbut_striptags;
40
static GtkWidget *checkbut_uppercase, *checkbut_nopopups, *checkbut_mouseover;
41
38
static GtkWidget *checkbut_spchars;
39
static GtkWidget *checkbut_feedtitle, *checkbut_itemtitle, *checkbut_itemdes;
40
static GtkWidget *checkbut_striptags, *checkbut_uppercase, *checkbut_nopopups;
41
static GtkWidget *checkbut_mouseover, *checkbut_noleftclick, *checkbut_feedordering;
42
42
static GtkWidget *font_but, *clock_font_but;
43
43
static GtkWidget *fg_color_but, *bg_color_but, *clock_fg_color_but, *clock_bg_color_but;
44
44
static GtkWidget *rbut_box1, *radio_but1_1, *radio_but1_2, *radio_but1_3;
45
45
static GtkWidget *rbut_box2, *radio_but2_1, *radio_but2_2, *radio_but2_3;
46
static GtkWidget *entry_newpagech, *entry_tabch, *entry_rsstitledel;
47
static GtkWidget *entry_rssdesdel, *entry_linedel, *entry_cutlinedel;
46
static GtkWidget *entry_feedtitledel, *entry_itemtitledel, *entry_itemdesdel;
47
static GtkWidget *entry_linedel, *entry_cutlinedel, *entry_newpagech, *entry_tabch;
48
48
static GtkWidget *entry_openlinkcmd, *entry_openlinkargs;
49
49
static GtkObject *adj_delay, *adj_shiftsize, *adj_winx, *adj_winy;
50
50
static GtkObject *adj_winw, *adj_winh, *adj_shadowoffsetx, *adj_shadowfx;
51
51
static GtkObject *adj_shadowoffsety, *adj_rssrefresh;
52
52
static GtkObject *adj_wintransparency, *adj_nitemsperfeed;
54
static gint esc_key_pressed(GtkWidget *dialog2, GdkEventKey *event)
56
if (event->keyval == GDK_Escape) {
57
gtk_dialog_response(GTK_DIALOG(dialog2), GTK_RESPONSE_CANCEL);
63
static void force_quit_dialog(GtkWidget *dialog2)
65
gtk_dialog_response(GTK_DIALOG(dialog2), GTK_RESPONSE_CANCEL);
69
* ***to be fixed: we want widgets system colors, not these ones***
54
/* TODO: we want widgets system colors, not these ones */
71
55
static gint use_system_fg_color_ticker(GtkWidget *widget)
132
116
char font_n_s[FONT_MAXLEN + 1];
133
117
char fname[FONT_NAME_MAXLEN + 1], fsize[FONT_SIZE_MAXLEN + 1];
134
118
gint requested_font_size, requested_h, y_bottom;
119
/* We backup this param first because... */
120
char disable_popups_bak = get_params()->disable_popups;
122
/* ...we want this window to always popup */
123
get_params()->disable_popups = 'n';
137
/* we need to know requested ticker height */
126
/* We need to know requested ticker height */
138
127
requested_h = (gint)gtk_spin_button_get_value(GTK_SPIN_BUTTON(spinbut_winh));
139
128
if (requested_h > 0 && requested_h < DRWA_HEIGHT_MIN)
140
129
requested_h = DRWA_HEIGHT_MIN;
141
130
else if (requested_h == 0) {
142
/* compute ticker height from requested font size */
143
str_n_cpy(font_n_s, (char *)gtk_font_button_get_font_name(GTK_FONT_BUTTON(font_but)), 68);
131
/* Compute ticker height from requested font size */
132
str_n_cpy(font_n_s, (char *)gtk_font_button_get_font_name(GTK_FONT_BUTTON(font_but)), FONT_MAXLEN);
144
133
split_font(font_n_s, fname, fsize);
145
/* in all cases, font size can't be > FONT_MAXSIZE */
134
/* In all cases, font size can't be > FONT_MAXSIZE */
146
135
requested_font_size = MIN(atoi(fsize), FONT_MAXSIZE);
147
136
snprintf(fsize, FONT_SIZE_MAXLEN + 1, "%3d", requested_font_size);
148
137
compact_font(font_n_s, fname, fsize);
211
202
g_signal_connect(G_OBJECT(dialog), "key-press-event", G_CALLBACK(esc_key_pressed), NULL);
212
203
g_signal_connect(G_OBJECT(dialog), "delete_event", G_CALLBACK(force_quit_dialog), NULL);
214
/* we add a scrolling feature as more parameters are getting implemented */
205
/* We add a scrolling feature as more parameters are getting implemented */
215
206
sc_win = gtk_scrolled_window_new(NULL, NULL);
216
207
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sc_win), GTK_POLICY_AUTOMATIC,
217
208
GTK_POLICY_AUTOMATIC);
218
209
gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), sc_win);
220
cancel_but = gtk_dialog_add_button(GTK_DIALOG(dialog), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL);
221
reset_but = gtk_dialog_add_button(GTK_DIALOG(dialog), "Reset", GTK_RESPONSE_NO); /* strange... */
222
/* having both 'ok' and 'save' buttons is misleading so we only keep 'ok', which also save settings */
211
cancel_but = gtk_dialog_add_button(GTK_DIALOG(dialog), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL_CLOSE);
212
reset_but = gtk_dialog_add_button(GTK_DIALOG(dialog), "Reset", GTK_RESPONSE_NO); /* Strange... */
213
/* Having both 'OK' and 'Save' buttons is misleading so we only keep 'OK', which also save settings. */
223
214
ok_but = gtk_dialog_add_button(GTK_DIALOG(dialog), GTK_STOCK_OK, GTK_RESPONSE_OK);
224
215
apply_but = gtk_dialog_add_button(GTK_DIALOG(dialog), GTK_STOCK_APPLY, GTK_RESPONSE_APPLY);
226
217
table = gtk_table_new(17, 5, FALSE);
227
218
gtk_table_set_row_spacings(GTK_TABLE(table), 0);
228
219
gtk_table_set_col_spacings(GTK_TABLE(table), 5);
229
gtk_container_set_border_width(GTK_CONTAINER(table), 10);
220
gtk_container_set_border_width(GTK_CONTAINER(table), 5);
230
221
gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sc_win), table);
231
/* whole window must be visible on netbooks as well */
222
/* Whole window must be visible on netbooks as well */
232
223
gtk_widget_set_size_request(sc_win, 1000, 450);
496
487
gtk_entry_set_text(GTK_ENTRY(entry_cutlinedel), prm->cutline_delimiter);
497
488
gtk_table_attach_defaults(GTK_TABLE(table), entry_cutlinedel, COLUMN2, i, i + 1);
491
* Enable special chars
493
label[i] = gtk_label_new("Special characters enabled <small>(Text files only)</small>: ");
494
gtk_label_set_use_markup(GTK_LABEL(label[i]), TRUE);
495
gtk_misc_set_alignment(GTK_MISC(label[i]), 0, 0.5);
496
gtk_table_attach_defaults(GTK_TABLE(table), label[i], COLUMN1, i, i + 1);
497
checkbut_spchars = gtk_check_button_new();
498
if (prm->special_chars == 'y')
499
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbut_spchars), TRUE);
500
else if (prm->special_chars == 'n')
501
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbut_spchars), FALSE);
502
gtk_table_attach_defaults(GTK_TABLE(table), checkbut_spchars, COLUMN2, i, i + 1);
505
* 'new page' special char
507
label[i] = gtk_label_new("'New page' special character: ");
508
gtk_label_set_use_markup(GTK_LABEL(label[i]), TRUE);
509
gtk_misc_set_alignment(GTK_MISC(label[i]), 0, 0.5);
510
gtk_table_attach_defaults(GTK_TABLE(table), label[i], COLUMN1, i, i + 1);
511
entry_newpagech = gtk_entry_new();
512
gtk_entry_set_max_length(GTK_ENTRY(entry_newpagech), 1);
513
/* This does nothing - gtk_entry_set_width_chars(GTK_ENTRY(entry_newpagech), 1);*/
514
c[0] = prm->new_page_char;
515
gtk_entry_set_text(GTK_ENTRY(entry_newpagech), c);
516
gtk_table_attach_defaults(GTK_TABLE(table), entry_newpagech, COLUMN2, i, i + 1);
521
label[i] = gtk_label_new("'Tab' (8 spaces) special character: ");
522
gtk_label_set_use_markup(GTK_LABEL(label[i]), TRUE);
523
gtk_misc_set_alignment(GTK_MISC(label[i]), 0, 0.5);
524
gtk_table_attach_defaults(GTK_TABLE(table), label[i], COLUMN1, i, i + 1);
525
entry_tabch = gtk_entry_new();
526
gtk_entry_set_max_length(GTK_ENTRY(entry_tabch), 1);
527
/* This does nothing - gtk_entry_set_width_chars(GTK_ENTRY(entry_tabch), 1);*/
528
c[0] = prm->tab_char;
529
gtk_entry_set_text(GTK_ENTRY(entry_tabch), c);
530
gtk_table_attach_defaults(GTK_TABLE(table), entry_tabch, COLUMN2, i, i + 1);
500
/* commenting this block would change from 2 columns to 1 single column window */
533
/* Commenting this block would change from 2 columns to 1 single column window */
501
534
label[i] = gtk_label_new(" ");
502
535
gtk_table_attach_defaults(GTK_TABLE(table), label[i], COLUMN3, 0, 1);
519
552
gtk_table_attach_defaults(GTK_TABLE(table), spinbut_rssrefresh, COLUMN2, i, i + 1);
524
label[i] = gtk_label_new("RSS title: ");
525
gtk_label_set_use_markup(GTK_LABEL(label[i]), TRUE);
526
gtk_misc_set_alignment(GTK_MISC(label[i]), 0, 0.5);
527
gtk_table_attach_defaults(GTK_TABLE(table), label[i], COLUMN1, i, i + 1);;
528
checkbut_rsstitle = gtk_check_button_new();
529
if (prm->rss_title == 'y')
530
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbut_rsstitle), TRUE);
531
else if (prm->rss_title == 'n')
532
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbut_rsstitle), FALSE);
533
gtk_table_attach_defaults(GTK_TABLE(table), checkbut_rsstitle, COLUMN2, i, i + 1);
536
* rss title delimiter
538
label[i] = gtk_label_new("RSS title delimiter: ");
539
gtk_label_set_use_markup(GTK_LABEL(label[i]), TRUE);
540
gtk_misc_set_alignment(GTK_MISC(label[i]), 0, 0.5);
541
gtk_table_attach_defaults(GTK_TABLE(table), label[i], COLUMN1, i, i + 1);
542
entry_rsstitledel = gtk_entry_new();
543
gtk_entry_set_max_length(GTK_ENTRY(entry_rsstitledel), DELIMITER_MAXLEN);
544
gtk_entry_set_text(GTK_ENTRY(entry_rsstitledel), prm->rss_title_delimiter);
545
gtk_table_attach_defaults(GTK_TABLE(table), entry_rsstitledel, COLUMN2, i, i + 1);
550
label[i] = gtk_label_new("RSS description: ");
551
gtk_label_set_use_markup(GTK_LABEL(label[i]), TRUE);
552
gtk_misc_set_alignment(GTK_MISC(label[i]), 0, 0.5);
553
gtk_table_attach_defaults(GTK_TABLE(table), label[i], COLUMN1, i, i + 1);
554
checkbut_rssdes = gtk_check_button_new();
555
if (prm->rss_description == 'y')
556
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbut_rssdes), TRUE);
557
else if (prm->rss_description == 'n')
558
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbut_rssdes), FALSE);
559
gtk_table_attach_defaults(GTK_TABLE(table), checkbut_rssdes, COLUMN2, i, i + 1);
562
* rss description delimiter
564
label[i] = gtk_label_new("RSS description delimiter: ");
565
gtk_label_set_use_markup(GTK_LABEL(label[i]), TRUE);
566
gtk_misc_set_alignment(GTK_MISC(label[i]), 0, 0.5);
567
gtk_table_attach_defaults(GTK_TABLE(table), label[i], COLUMN1, i, i + 1);
568
entry_rssdesdel = gtk_entry_new();
569
gtk_entry_set_max_length(GTK_ENTRY(entry_rssdesdel), DELIMITER_MAXLEN);
570
gtk_entry_set_text(GTK_ENTRY(entry_rssdesdel), prm->rss_description_delimiter);
571
gtk_table_attach_defaults(GTK_TABLE(table), entry_rssdesdel, COLUMN2, i, i + 1);
574
* read n items max per feed
557
label[i] = gtk_label_new("Feed title: ");
558
gtk_label_set_use_markup(GTK_LABEL(label[i]), TRUE);
559
gtk_misc_set_alignment(GTK_MISC(label[i]), 0, 0.5);
560
gtk_table_attach_defaults(GTK_TABLE(table), label[i], COLUMN1, i, i + 1);;
561
checkbut_feedtitle = gtk_check_button_new();
562
if (prm->feed_title == 'y')
563
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbut_feedtitle), TRUE);
564
else if (prm->feed_title == 'n')
565
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbut_feedtitle), FALSE);
566
gtk_table_attach_defaults(GTK_TABLE(table), checkbut_feedtitle, COLUMN2, i, i + 1);
569
* Feed title delimiter
571
label[i] = gtk_label_new("Feed title delimiter: ");
572
gtk_label_set_use_markup(GTK_LABEL(label[i]), TRUE);
573
gtk_misc_set_alignment(GTK_MISC(label[i]), 0, 0.5);
574
gtk_table_attach_defaults(GTK_TABLE(table), label[i], COLUMN1, i, i + 1);
575
entry_feedtitledel = gtk_entry_new();
576
gtk_entry_set_max_length(GTK_ENTRY(entry_feedtitledel), DELIMITER_MAXLEN);
577
gtk_entry_set_text(GTK_ENTRY(entry_feedtitledel), prm->feed_title_delimiter);
578
gtk_table_attach_defaults(GTK_TABLE(table), entry_feedtitledel, COLUMN2, i, i + 1);
583
label[i] = gtk_label_new("Item title: ");
584
gtk_label_set_use_markup(GTK_LABEL(label[i]), TRUE);
585
gtk_misc_set_alignment(GTK_MISC(label[i]), 0, 0.5);
586
gtk_table_attach_defaults(GTK_TABLE(table), label[i], COLUMN1, i, i + 1);;
587
checkbut_itemtitle = gtk_check_button_new();
588
if (prm->item_title == 'y')
589
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbut_itemtitle), TRUE);
590
else if (prm->item_title == 'n')
591
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbut_itemtitle), FALSE);
592
gtk_table_attach_defaults(GTK_TABLE(table), checkbut_itemtitle, COLUMN2, i, i + 1);
595
* Item title delimiter
597
label[i] = gtk_label_new("Item title delimiter: ");
598
gtk_label_set_use_markup(GTK_LABEL(label[i]), TRUE);
599
gtk_misc_set_alignment(GTK_MISC(label[i]), 0, 0.5);
600
gtk_table_attach_defaults(GTK_TABLE(table), label[i], COLUMN1, i, i + 1);
601
entry_itemtitledel = gtk_entry_new();
602
gtk_entry_set_max_length(GTK_ENTRY(entry_itemtitledel), DELIMITER_MAXLEN);
603
gtk_entry_set_text(GTK_ENTRY(entry_itemtitledel), prm->item_title_delimiter);
604
gtk_table_attach_defaults(GTK_TABLE(table), entry_itemtitledel, COLUMN2, i, i + 1);
609
label[i] = gtk_label_new("Item description: ");
610
gtk_label_set_use_markup(GTK_LABEL(label[i]), TRUE);
611
gtk_misc_set_alignment(GTK_MISC(label[i]), 0, 0.5);
612
gtk_table_attach_defaults(GTK_TABLE(table), label[i], COLUMN1, i, i + 1);
613
checkbut_itemdes = gtk_check_button_new();
614
if (prm->item_description == 'y')
615
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbut_itemdes), TRUE);
616
else if (prm->item_description == 'n')
617
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbut_itemdes), FALSE);
618
gtk_table_attach_defaults(GTK_TABLE(table), checkbut_itemdes, COLUMN2, i, i + 1);
621
* Item description delimiter
623
label[i] = gtk_label_new("Item description delimiter: ");
624
gtk_label_set_use_markup(GTK_LABEL(label[i]), TRUE);
625
gtk_misc_set_alignment(GTK_MISC(label[i]), 0, 0.5);
626
gtk_table_attach_defaults(GTK_TABLE(table), label[i], COLUMN1, i, i + 1);
627
entry_itemdesdel = gtk_entry_new();
628
gtk_entry_set_max_length(GTK_ENTRY(entry_itemdesdel), DELIMITER_MAXLEN);
629
gtk_entry_set_text(GTK_ENTRY(entry_itemdesdel), prm->item_description_delimiter);
630
gtk_table_attach_defaults(GTK_TABLE(table), entry_itemdesdel, COLUMN2, i, i + 1);
633
* Read n items max per feed
576
635
label[i] = gtk_label_new("Read N items max per feed <small>(0 = no limit)</small>: ");
577
636
gtk_label_set_use_markup(GTK_LABEL(label[i]), TRUE);
745
804
gtk_table_attach_defaults(GTK_TABLE(table), checkbut_mouseover, COLUMN2, i, i + 1);
748
* mouse wheel scrolling behaviour
750
label[i] = gtk_label_new("Mouse wheel scrolling apply to: ");
809
label[i] = gtk_label_new("Disable left-click: ");
810
gtk_label_set_use_markup(GTK_LABEL(label[i]), TRUE);
811
gtk_misc_set_alignment(GTK_MISC(label[i]), 0, 0.5);
812
gtk_table_attach_defaults(GTK_TABLE(table), label[i], COLUMN1, i, i + 1);
813
checkbut_noleftclick = gtk_check_button_new();
814
if (prm->disable_leftclick == 'y')
815
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbut_noleftclick), TRUE);
816
else if (prm->disable_leftclick == 'n')
817
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbut_noleftclick), FALSE);
818
gtk_table_attach_defaults(GTK_TABLE(table), checkbut_noleftclick, COLUMN2, i, i + 1);
821
* Mouse wheel scrolling behaviour
823
label[i] = gtk_label_new("Mouse wheel scrolling applies to: \n"
824
"<small>(Ctrl + mouse wheel scrolling applies to other value)</small>");
751
825
gtk_label_set_use_markup(GTK_LABEL(label[i]), TRUE);
752
826
gtk_misc_set_alignment(GTK_MISC(label[i]), 0, 0.5);
753
827
gtk_table_attach_defaults(GTK_TABLE(table), label[i], COLUMN1, i, i + 1);
769
842
gtk_table_attach_defaults(GTK_TABLE(table), rbut_box2, COLUMN2, i, i + 1);
774
label[i] = gtk_label_new("Special characters enabled <small>(Text files only)</small>: ");
775
gtk_label_set_use_markup(GTK_LABEL(label[i]), TRUE);
776
gtk_misc_set_alignment(GTK_MISC(label[i]), 0, 0.5);
777
gtk_table_attach_defaults(GTK_TABLE(table), label[i], COLUMN1, i, i + 1);
778
checkbut_spchars = gtk_check_button_new();
779
if (prm->special_chars == 'y')
780
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbut_spchars), TRUE);
781
else if (prm->special_chars == 'n')
782
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbut_spchars), FALSE);
783
gtk_table_attach_defaults(GTK_TABLE(table), checkbut_spchars, COLUMN2, i, i + 1);
786
* 'new page' special char
788
label[i] = gtk_label_new("'New page' special character: ");
789
gtk_label_set_use_markup(GTK_LABEL(label[i]), TRUE);
790
gtk_misc_set_alignment(GTK_MISC(label[i]), 0, 0.5);
791
gtk_table_attach_defaults(GTK_TABLE(table), label[i], COLUMN1, i, i + 1);
792
entry_newpagech = gtk_entry_new();
793
gtk_entry_set_max_length(GTK_ENTRY(entry_newpagech), 1);
794
/* this does nothing - gtk_entry_set_width_chars(GTK_ENTRY(entry_newpagech), 1);*/
795
c[0] = prm->new_page_char;
796
gtk_entry_set_text(GTK_ENTRY(entry_newpagech), c);
797
gtk_table_attach_defaults(GTK_TABLE(table), entry_newpagech, COLUMN2, i, i + 1);
802
label[i] = gtk_label_new("Tab special character: ");
803
gtk_label_set_use_markup(GTK_LABEL(label[i]), TRUE);
804
gtk_misc_set_alignment(GTK_MISC(label[i]), 0, 0.5);
805
gtk_table_attach_defaults(GTK_TABLE(table), label[i], COLUMN1, i, i + 1);
806
entry_tabch = gtk_entry_new();
807
gtk_entry_set_max_length(GTK_ENTRY(entry_tabch), 1);
808
/* this does nothing - gtk_entry_set_width_chars(GTK_ENTRY(entry_tabch), 1);*/
809
c[0] = prm->tab_char;
810
gtk_entry_set_text(GTK_ENTRY(entry_tabch), c);
811
gtk_table_attach_defaults(GTK_TABLE(table), entry_tabch, COLUMN2, i, i + 1);
845
* Enable feed re-ordering (by user)
847
label[i] = gtk_label_new("Enable feed re-ordering (by user): ");
848
gtk_label_set_use_markup(GTK_LABEL(label[i]), TRUE);
849
gtk_misc_set_alignment(GTK_MISC(label[i]), 0, 0.5);
850
gtk_table_attach_defaults(GTK_TABLE(table), label[i], COLUMN1, i, i + 1);
851
checkbut_feedordering = gtk_check_button_new();
852
if (prm->enable_feed_ordering == 'y')
853
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbut_feedordering), TRUE);
854
else if (prm->enable_feed_ordering == 'n')
855
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbut_feedordering), FALSE);
856
gtk_table_attach_defaults(GTK_TABLE(table), checkbut_feedordering, COLUMN2, i, i + 1);
813
/* connect buttons / widgets to callbacks */
858
/* Connect buttons / widgets to callbacks */
814
859
g_signal_connect(G_OBJECT(sysfg_but), "clicked", G_CALLBACK(use_system_fg_color_ticker), NULL);
815
860
g_signal_connect(G_OBJECT(sysbg_but), "clicked", G_CALLBACK(use_system_bg_color_ticker), NULL);
816
861
g_signal_connect(G_OBJECT(top_but), "clicked", G_CALLBACK(move_to_top), NULL);
844
889
} else if (response == GTK_RESPONSE_APPLY || response == GTK_RESPONSE_OK) {
846
891
prm->delay = (int)gtk_spin_button_get_value(GTK_SPIN_BUTTON(spinbut_delay));
849
894
prm->shift_size = (int)gtk_spin_button_get_value(GTK_SPIN_BUTTON(spinbut_shiftsize));
851
/* colors - fg and bg */
896
/* Colors - fg and bg */
852
897
gtk_color_button_get_color(GTK_COLOR_BUTTON(fg_color_but), &prm->fg_color);
853
898
prm->fg_color_alpha = gtk_color_button_get_alpha(GTK_COLOR_BUTTON(fg_color_but));
854
899
gtk_color_button_get_color(GTK_COLOR_BUTTON(bg_color_but), &prm->bg_color);
855
900
prm->bg_color_alpha = gtk_color_button_get_alpha(GTK_COLOR_BUTTON(bg_color_but));
858
903
str_n_cpy(prm->font_n_s, (char *)gtk_font_button_get_font_name(
859
GTK_FONT_BUTTON(font_but)), 68);
904
GTK_FONT_BUTTON(font_but)), FONT_MAXLEN);
861
/* window x, y, w, h */
906
/* Window x, y, w, h */
862
907
prm->win_x = (gint)gtk_spin_button_get_value(GTK_SPIN_BUTTON(spinbut_winx));
863
908
prm->win_y = (gint)gtk_spin_button_get_value(GTK_SPIN_BUTTON(spinbut_winy));
864
909
prm->win_w = (gint)gtk_spin_button_get_value(GTK_SPIN_BUTTON(spinbut_winw));
866
/* if win_h is != 0, it will override requested font size with computed one */
911
/* If win_h is != 0, it will override requested font size with computed one. */
867
912
prm->win_h = (gint)gtk_spin_button_get_value(GTK_SPIN_BUTTON(spinbut_winh));
868
913
if (prm->win_h > 0 && prm->win_h < DRWA_HEIGHT_MIN)
869
914
prm->win_h = DRWA_HEIGHT_MIN;
871
/* window decoration */
916
/* Window decoration */
872
917
if ((gboolean)gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(checkbut_windec)))
873
918
prm->windec = 'y';
875
920
prm->windec = 'n';
922
/* Window always-on-top */
878
923
if ((gboolean)gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(checkbut_alwaysontop)))
879
924
prm->always_on_top = 'y';
881
926
prm->always_on_top = 'n';
883
/* window transparency */
928
/* Window transparency */
884
929
prm->win_transparency = gtk_spin_button_get_value(GTK_SPIN_BUTTON(spinbut_wintransparency)) / 10;
886
/* icon in taskbar */
931
/* Icon in taskbar */
887
932
if ((gboolean)gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(checkbut_iconintaskbar)))
888
933
prm->icon_in_taskbar = 'y';
890
935
prm->icon_in_taskbar = 'n';
893
938
if ((gboolean)gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(checkbut_winsticky)))
894
939
prm->win_sticky = 'y';
896
941
prm->win_sticky = 'n';
899
944
if ((gboolean)gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(checkbut_shadow)))
900
945
prm->shadow = 'y';
904
949
prm->shadow_offset_y = (int)gtk_spin_button_get_value(GTK_SPIN_BUTTON(spinbut_shadowoffsety));
905
950
prm->shadow_fx = (int)gtk_spin_button_get_value(GTK_SPIN_BUTTON(spinbut_shadowfx));
907
/* line and cut line delimiters */
952
/* Line and cut line delimiters */
908
953
str_n_cpy(prm->line_delimiter,
909
954
(char *)gtk_entry_get_text(GTK_ENTRY(entry_linedel)), DELIMITER_MAXLEN);
910
955
str_n_cpy(prm->cutline_delimiter,
911
956
(char *)gtk_entry_get_text(GTK_ENTRY(entry_cutlinedel)), DELIMITER_MAXLEN);
958
/* Enable special chars */
959
if ((gboolean)gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(checkbut_spchars)))
960
prm->special_chars = 'y';
962
prm->special_chars = 'n';
963
prm->new_page_char = gtk_entry_get_text(GTK_ENTRY(entry_newpagech))[0];
964
prm->tab_char = gtk_entry_get_text(GTK_ENTRY(entry_tabch))[0];
913
966
/* rss refresh */
914
967
prm->rss_refresh = (int)gtk_spin_button_get_value(GTK_SPIN_BUTTON(spinbut_rssrefresh));
917
if ((gboolean)gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(checkbut_rsstitle)))
918
prm->rss_title = 'y';
920
prm->rss_title = 'n';
921
str_n_cpy(prm->rss_title_delimiter,
922
(char *)gtk_entry_get_text(GTK_ENTRY(entry_rsstitledel)), DELIMITER_MAXLEN);
925
if ((gboolean)gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(checkbut_rssdes)))
926
prm->rss_description = 'y';
928
prm->rss_description = 'n';
929
str_n_cpy(prm->rss_description_delimiter,
930
(char *)gtk_entry_get_text(GTK_ENTRY(entry_rssdesdel)), DELIMITER_MAXLEN);
932
/* read n items max per feed */
970
if ((gboolean)gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(checkbut_feedtitle)))
971
prm->feed_title = 'y';
973
prm->feed_title = 'n';
974
str_n_cpy(prm->feed_title_delimiter,
975
(char *)gtk_entry_get_text(GTK_ENTRY(entry_feedtitledel)), DELIMITER_MAXLEN);
978
if ((gboolean)gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(checkbut_itemtitle)))
979
prm->item_title = 'y';
981
prm->item_title = 'n';
982
str_n_cpy(prm->item_title_delimiter,
983
(char *)gtk_entry_get_text(GTK_ENTRY(entry_itemtitledel)), DELIMITER_MAXLEN);
985
/* Item decription */
986
if ((gboolean)gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(checkbut_itemdes)))
987
prm->item_description = 'y';
989
prm->item_description = 'n';
990
str_n_cpy(prm->item_description_delimiter,
991
(char *)gtk_entry_get_text(GTK_ENTRY(entry_itemdesdel)), DELIMITER_MAXLEN);
993
/* Read n items max per feed */
933
994
prm->n_items_per_feed = (int)gtk_spin_button_get_value(GTK_SPIN_BUTTON(spinbut_nitemsperfeed));
935
/* strip html tags */
996
/* Strip html tags */
936
997
if ((gboolean)gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(checkbut_striptags)))
937
998
prm->strip_html_tags = 'y';
939
1000
prm->strip_html_tags = 'n';
941
/* upper case text */
1002
/* Upper case text */
942
1003
if ((gboolean)gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(checkbut_uppercase)))
943
1004
prm->upper_case_text = 'y';
945
1006
prm->upper_case_text = 'n';
948
1009
str_n_cpy(prm->homefeed,
949
1010
(char *)gtk_entry_get_text(GTK_ENTRY(entry_homefeed)), FILE_NAME_MAXLEN);
952
1013
str_n_cpy(prm->open_link_cmd,
953
1014
(char *)gtk_entry_get_text(GTK_ENTRY(entry_openlinkcmd)), FILE_NAME_MAXLEN);
1016
/* Open link args */
956
1017
str_n_cpy(prm->open_link_args,
957
1018
(char *)gtk_entry_get_text(GTK_ENTRY(entry_openlinkargs)), FILE_NAME_MAXLEN);
960
1021
if ((gboolean)gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(radio_but1_1)))
961
1022
prm->clock = 'l';
962
1023
else if ((gboolean)gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(radio_but1_2)))
997
1064
prm->mouse_wheel_scroll = 'n';
1000
if ((gboolean)gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(checkbut_spchars)))
1001
prm->special_chars = 'y';
1066
/* Enable feed re-ordering (by user) */
1067
if ((gboolean)gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(checkbut_feedordering)))
1068
prm->enable_feed_ordering = 'y';
1003
prm->special_chars = 'n';
1004
prm->new_page_char = gtk_entry_get_text(GTK_ENTRY(entry_newpagech))[0];
1005
prm->tab_char = gtk_entry_get_text(GTK_ENTRY(entry_tabch))[0];
1070
prm->enable_feed_ordering = 'n';
1007
/* we want a new pixmap so that changes will be effective... now! */
1008
if (response == GTK_RESPONSE_APPLY) { /* force apply */
1072
/* We want a new pixmap so that changes will be effective... now! */
1073
if (response == GTK_RESPONSE_APPLY) { /* Force apply */
1009
1074
current_feed();
1010
env->reload_rq = TRUE; /* compute_rq would skip to next pixmap if any */
1075
env->reload_rq = TRUE; /* 'compute_rq' would skip to next pixmap if any */
1011
1076
g_timeout_add_full(G_PRIORITY_DEFAULT, 100, update_everything, NULL, NULL);
1012
changes_has_been_applied = TRUE;
1077
changes_have_been_applied = TRUE;
1013
1078
env->suspend_rq = FALSE;
1014
1079
} else if (response == GTK_RESPONSE_OK) {
1015
/* apply and save when necessary -> ok like that? */
1080
if (prm->item_title == 'n' && prm->item_description == 'n')
1081
if (question_win("You have unchecked both 'Item title' and 'Item description'.\n"
1082
"No much useful information will be displayed. Continue ?") == NO)
1084
/* Apply and save when necessary -> OK like that ? */
1016
1085
if (memcmp((const void *)prm, (const void *)prm_bak, sizeof(Params)) != 0 || \
1017
changes_has_been_applied) {
1086
changes_have_been_applied) {
1018
1087
current_feed();
1019
1088
env->reload_rq = TRUE;
1020
1089
g_timeout_add_full(G_PRIORITY_DEFAULT, 100, update_everything, NULL, NULL);