115
110
GtkWidget *show_splash_screen;
116
111
GtkWidget *prayerlist;
118
GtkWidget *show_bible_pane;
119
GtkWidget *show_preview_pane;
120
GtkWidget *show_commentary_pane;
121
GtkWidget *show_dictionary_pane;
123
113
GtkWidget *show_in_viewer;
124
114
GtkWidget *show_in_dictionary;
125
115
GtkWidget *show_devotion;
126
GtkWidget *show_paratab;
118
GtkWidget *bs_presence;
119
GtkWidget *bs_mismatch;
120
GtkWidget *bs_group_tab;
121
GtkWidget *bs_privacy;
124
typedef struct _preferences_radio_buttons RADIO_BUTTONS;
125
struct _preferences_radio_buttons {
126
/* BibleSync mode selection */
127
GtkWidget *bs_mode_off;
128
GtkWidget *bs_mode_personal;
129
GtkWidget *bs_mode_speaker;
130
GtkWidget *bs_mode_audience;
132
/* BibleSync navigation choice */
133
GtkWidget *bs_nav_direct;
134
GtkWidget *bs_nav_verselist;
136
/* BibleSync listener choice. */
137
GtkWidget *bs_listen_some;
138
GtkWidget *bs_listen_all;
139
GtkWidget *bs_listen_none;
142
/* fixed callback values, for radio button assignment. */
143
static int rb_cb[] = { 0, 1, 2, 3 }; // userdata callback values.
129
145
typedef struct _preferences_buttons BUTTONS;
130
146
struct _preferences_buttons {
156
175
static COMBOBOXS combo;
157
176
static COLOR_PICKERS color_picker;
158
177
static CHECK_BUTTONS check_button;
178
static RADIO_BUTTONS radio_button;
159
179
static PARALLEL_SELECT parallel_select;
162
182
/******************************************************************************
184
* on_prefs_configure_event
187
* #include "gui/main_window.h"
188
* gboolean on_prefs_configure_event(GtkWidget * widget,
189
* GdkEventConfigure * event,
190
* gpointer user_data)
193
* remember placement+size of prefs window.
194
* cloned from on_parallel_configure_event
200
static gboolean on_prefs_configure_event(GtkWidget * widget,
201
GdkEventConfigure * event,
208
gdk_window_get_root_origin(
209
GDK_WINDOW(gtk_widget_get_window (dialog_prefs)), &x, &y);
211
settings.prefs_width = event->width;
212
settings.prefs_height = event->height;
213
settings.prefs_x = x;
214
settings.prefs_y = y;
216
sprintf(layout, "%d", settings.prefs_width);
217
xml_set_value("Xiphos", "layout", "prefs_width", layout);
219
sprintf(layout, "%d", settings.prefs_height);
220
xml_set_value("Xiphos", "layout", "prefs_height", layout);
222
sprintf(layout, "%d", settings.prefs_x);
223
xml_set_value("Xiphos", "layout", "prefs_x", layout);
225
sprintf(layout, "%d", settings.prefs_y);
226
xml_set_value("Xiphos", "layout", "prefs_y", layout);
227
xml_save_settings_doc(settings.fnconfigure);
232
/******************************************************************************
164
234
* string_is_color
167
237
* #include "preferences_dialog.h"
169
* gint string_is_color(gchar * color)
238
* gint string_is_color(gchar * color)
172
241
* this code is from bluefish-0.6
755
846
/******************************************************************************
757
* on_checkbutton_showparatab_toggled
760
* #include "preferences_dialog.h"
762
* void on_checkbutton_showparatab_toggled(GtkToggleButton * togglebutton, gpointer user_data)
773
on_checkbutton_showparatab_toggled(GtkToggleButton * togglebutton,
776
xml_set_value("Xiphos", "misc", "showparatab",
777
(gtk_toggle_button_get_active (togglebutton) ? "1" : "0"));
778
if (gtk_toggle_button_get_active (togglebutton))
779
gui_open_parallel_view_in_new_tab();
848
* on_biblesync_obtain_passphrase
851
* #include "unlock_key_dialog.h"
852
* gchar *on_biblesync_obtain_passphrase()
855
* create dialog to get session passphrase
861
gchar *on_biblesync_obtain_passphrase()
864
GS_DIALOG *info = gui_new_dialog();
866
info->stock_icon = g_strdup("dialog-warning");
868
info->stock_icon = g_strdup(GTK_STOCK_DIALOG_WARNING);
870
info->label_top = g_strdup(_("BibleSync session passphrase"));
871
info->text1 = g_strdup(biblesync_get_passphrase());
872
info->label1 = _("Phrase:");
875
(void)gui_gs_dialog(info);
877
retval = g_strdup(info->text1);
878
g_free(info->label_top);
885
/******************************************************************************
887
* on_checkbutton_biblesync_toggled
890
* #include "preferences_dialog.h"
891
* void on_checkbutton_biblesync_toggled(GtkToggleButton * togglebutton, gpointer user_data)
892
* *((int*)user_data) is settings' bs_* bitflag.
895
* debug (packet dump), presence, mismatch, privacy, and group/tab.
902
on_checkbutton_biblesync_toggled(GtkToggleButton * togglebutton,
905
*((int *)user_data) = gtk_toggle_button_get_active(togglebutton);
906
if (user_data == &settings.bs_privacy)
907
biblesync_privacy(settings.bs_privacy);
911
/******************************************************************************
913
* on_radiobutton_biblesync_mode
916
* #include "preferences_dialog.h"
917
* void on_radiobutton_biblesync_mode(GtkToggleButton * togglebutton, gpointer user_data)
918
* *((int*)user_data) is settings.bs_mode's selection.
921
* BibleSync mode selection, 0-3.
928
on_radiobutton_biblesync_mode(GtkToggleButton * togglebutton,
933
if (gtk_toggle_button_get_active(togglebutton))
935
settings.bs_mode = *((int*)user_data);
937
if (settings.bs_mode != 0)
939
g_free(settings.bs_passphrase);
940
settings.bs_passphrase =
941
on_biblesync_obtain_passphrase();
943
new_mode = biblesync_mode_select(settings.bs_mode,
944
settings.bs_passphrase);
945
/* selecting active mode enables polled receiver. */
947
if (new_mode != settings.bs_mode)
949
/* mode selection failed? probably dead interface */
950
gui_generic_warning(_("Mode selection failed.\n"
951
"Set \"Debug\" and try "
952
"again to see why."));
953
settings.bs_mode = new_mode;
954
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON
955
(radio_button.bs_mode_off),
956
(settings.bs_mode == 0));
957
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON
958
(radio_button.bs_mode_personal),
959
(settings.bs_mode == 1));
960
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON
961
(radio_button.bs_mode_speaker),
962
(settings.bs_mode == 2));
963
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON
964
(radio_button.bs_mode_audience),
965
(settings.bs_mode == 3));
969
if (biblesync_personal())
971
gtk_widget_set_sensitive(check_button.bs_privacy, TRUE);
972
on_checkbutton_biblesync_toggled(
973
GTK_TOGGLE_BUTTON(check_button.bs_privacy),
974
&settings.bs_privacy);
978
gtk_widget_set_sensitive(check_button.bs_privacy, FALSE);
984
/******************************************************************************
989
* #include "preferences_dialog.h"
990
* void on_biblesync_kbd(int mode)
993
* kbd-selected biblesync mode.
994
* as elsewhere: 0 = off; 1 = personal; 2 = speaker; 3 = audience.
1001
on_biblesync_kbd(int mode)
1005
settings.bs_mode = mode;
1006
new_mode = biblesync_mode_select(settings.bs_mode,
1007
settings.bs_passphrase);
1009
if (new_mode != settings.bs_mode)
1011
gui_generic_warning(_("Mode selection failed.\n"));
1012
settings.bs_mode = new_mode;
781
gui_close_passage_tab(1);
1016
gchar *msg = g_strdup_printf
1017
(_("BibleSync: %s (passphrase \"%s\")."),
1025
settings.bs_passphrase);
1026
gui_set_statusbar(msg);
1032
/******************************************************************************
1034
* on_radiobutton_biblesync_nav
1037
* #include "preferences_dialog.h"
1038
* void on_radiobutton_biblesync_nav(GtkToggleButton * togglebutton,
1039
* gpointer user_data)
1040
* *((int*)user_data) is settings.bs_navdirect's T|F selection.
1043
* BibleSync nav selection, direct (1) or verse list (0).
1050
on_radiobutton_biblesync_nav(GtkToggleButton * togglebutton,
1053
if (gtk_toggle_button_get_active(togglebutton))
1054
settings.bs_navdirect = *((int*)user_data);
1058
/******************************************************************************
1060
* on_radiobutton_biblesync_listen
1063
* #include "preferences_dialog.h"
1064
* void on_radiobutton_biblesync_listen(GtkToggleButton * togglebutton,
1065
* gpointer user_data)
1066
* *((int*)user_data) is settings.bs_listen_set's 0|1|2 selection.
1069
* BibleSync listen set choice. calls biblesync glue if necessary,
1070
* to set or clear all listen bits.
1077
on_radiobutton_biblesync_listen(GtkToggleButton * togglebutton,
1080
if (gtk_toggle_button_get_active(togglebutton))
1082
settings.bs_listen_set = *((int*)user_data);
1084
if (settings.bs_listen_set != 0) // not selective
1086
biblesync_set_clear_all_listen
1087
((settings.bs_listen_set == 1)
1789
2045
gtk_tree_store_append(model, &iter, NULL);
1790
2046
gtk_tree_store_set(model, &iter, 0, _("General"), -1);
1792
/* the former element "3" was previously here,
1793
which was for the "tabs and panes," now defunct.
1794
we maintain the numbering because 4 is a fixed ref. */
1796
2048
gtk_tree_store_append(model, &child_iter, &iter);
1797
2049
gtk_tree_store_set(model, &child_iter, 0, _("Options"), 1, 4, -1);
2051
gtk_tree_store_append(model, &child_iter, &iter);
2052
gtk_tree_store_set(model, &child_iter, 0, _("BibleSync"), 1, 3, -1);
1800
2055
gtk_tree_store_append(model, &iter, NULL);
1801
2056
gtk_tree_store_set(model, &iter, 0, _("Fonts"), -1);
1845
2098
setup_color_pickers(void)
2102
if(gdk_rgba_parse (&rgba, settings.bible_bg_color))
2103
gtk_color_chooser_set_rgba ((GtkColorChooser*) color_picker.text_background, &rgba);
2104
if(gdk_rgba_parse (&rgba, settings.bible_text_color))
2105
gtk_color_chooser_set_rgba ((GtkColorChooser*) color_picker.text, &rgba);
2106
if(gdk_rgba_parse (&rgba, settings.currentverse_color))
2107
gtk_color_chooser_set_rgba ((GtkColorChooser*) color_picker.text_current_verse, &rgba);
2108
if(gdk_rgba_parse (&rgba, settings.bible_verse_num_color))
2109
gtk_color_chooser_set_rgba ((GtkColorChooser*) color_picker.verse_numbers, &rgba);
2110
if(gdk_rgba_parse (&rgba, settings.link_color))
2111
gtk_color_chooser_set_rgba ((GtkColorChooser*) color_picker.href_links, &rgba);
2112
if(gdk_rgba_parse (&rgba, settings.highlight_fg))
2113
gtk_color_chooser_set_rgba ((GtkColorChooser*) color_picker.highlight_fg, &rgba);
2114
if(gdk_rgba_parse (&rgba, settings.highlight_bg))
2115
gtk_color_chooser_set_rgba ((GtkColorChooser*) color_picker.highlight_bg, &rgba);
1847
2117
GdkColor color;
1848
2118
if (string_is_color(settings.bible_bg_color)) {
1849
2119
gdk_color_parse(settings.bible_bg_color, &color);
1850
gtk_color_button_set_color(
2120
gtk_color_button_set_color(
1851
2121
GTK_COLOR_BUTTON(color_picker.text_background),
1978
2233
(check_button.prayerlist),
1979
2234
settings.prayerlist);
1981
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON
1982
(check_button.show_paratab),
1983
settings.showparatab);
1985
g_signal_connect(check_button.enable_tabbed_browsing, "toggled",
1986
G_CALLBACK(on_checkbutton1_toggled), NULL);
1987
g_signal_connect(check_button.show_bible_pane, "toggled",
1988
G_CALLBACK(on_checkbutton2_toggled), NULL);
1989
g_signal_connect(check_button.show_preview_pane, "toggled",
1990
G_CALLBACK(on_checkbutton9_toggled), NULL);
1991
g_signal_connect(check_button.show_commentary_pane, "toggled",
1992
G_CALLBACK(on_checkbutton3_toggled), NULL);
1993
g_signal_connect(check_button.show_dictionary_pane, "toggled",
1994
G_CALLBACK(on_checkbutton4_toggled), NULL);
2236
/* v-- BibleSync --v */
2238
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON
2239
(check_button.bs_debug),
2241
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON
2242
(check_button.bs_presence),
2243
settings.bs_presence);
2244
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON
2245
(check_button.bs_mismatch),
2246
settings.bs_mismatch);
2247
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON
2248
(check_button.bs_group_tab),
2249
settings.bs_group_tab);
2250
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON
2251
(check_button.bs_privacy),
2252
settings.bs_privacy);
2253
gtk_widget_set_sensitive(check_button.bs_privacy,
2254
biblesync_personal());
2257
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON
2258
(radio_button.bs_mode_off),
2259
(settings.bs_mode == 0));
2260
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON
2261
(radio_button.bs_mode_personal),
2262
(settings.bs_mode == 1));
2263
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON
2264
(radio_button.bs_mode_speaker),
2265
(settings.bs_mode == 2));
2266
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON
2267
(radio_button.bs_mode_audience),
2268
(settings.bs_mode == 3));
2270
/* navigation method */
2271
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON
2272
(radio_button.bs_nav_direct),
2273
(settings.bs_navdirect == 1));
2274
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON
2275
(radio_button.bs_nav_verselist),
2276
(settings.bs_navdirect == 0));
2278
/* listening choice */
2279
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON
2280
(radio_button.bs_listen_some),
2281
(settings.bs_listen_set == 0));
2282
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON
2283
(radio_button.bs_listen_all),
2284
(settings.bs_listen_set == 1));
2285
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON
2286
(radio_button.bs_listen_none),
2287
(settings.bs_listen_set == 2));
2288
/* ^-- BibleSync --^ */
1995
2290
g_signal_connect(check_button.use_default_dictionary, "toggled",
1996
2291
G_CALLBACK(on_checkbutton6_toggled), NULL);
1997
2292
g_signal_connect(check_button.show_devotion, "toggled",
2016
2311
G_CALLBACK(on_checkbutton_xrefs_in_verse_list_toggled), NULL);
2017
2312
g_signal_connect(check_button.prayerlist, "toggled",
2018
2313
G_CALLBACK(on_checkbutton_prayerlist_toggled), NULL);
2019
g_signal_connect(check_button.show_paratab, "toggled",
2020
G_CALLBACK(on_checkbutton_showparatab_toggled), NULL);
2315
/* v-- BibleSync --v */
2316
g_signal_connect(check_button.bs_debug, "toggled",
2317
G_CALLBACK(on_checkbutton_biblesync_toggled), &settings.bs_debug);
2318
g_signal_connect(check_button.bs_presence, "toggled",
2319
G_CALLBACK(on_checkbutton_biblesync_toggled), &settings.bs_presence);
2320
g_signal_connect(check_button.bs_mismatch, "toggled",
2321
G_CALLBACK(on_checkbutton_biblesync_toggled), &settings.bs_mismatch);
2322
g_signal_connect(check_button.bs_group_tab, "toggled",
2323
G_CALLBACK(on_checkbutton_biblesync_toggled), &settings.bs_group_tab);
2324
g_signal_connect(check_button.bs_privacy, "toggled",
2325
G_CALLBACK(on_checkbutton_biblesync_toggled), &settings.bs_privacy);
2327
g_signal_connect(radio_button.bs_mode_off, "toggled",
2328
G_CALLBACK(on_radiobutton_biblesync_mode), &rb_cb[0]);
2329
g_signal_connect(radio_button.bs_mode_personal, "toggled",
2330
G_CALLBACK(on_radiobutton_biblesync_mode), &rb_cb[1]);
2331
g_signal_connect(radio_button.bs_mode_speaker, "toggled",
2332
G_CALLBACK(on_radiobutton_biblesync_mode), &rb_cb[2]);
2333
g_signal_connect(radio_button.bs_mode_audience, "toggled",
2334
G_CALLBACK(on_radiobutton_biblesync_mode), &rb_cb[3]);
2336
g_signal_connect(radio_button.bs_nav_direct, "toggled",
2337
G_CALLBACK(on_radiobutton_biblesync_nav), &rb_cb[1]);
2338
g_signal_connect(radio_button.bs_nav_verselist, "toggled",
2339
G_CALLBACK(on_radiobutton_biblesync_nav), &rb_cb[0]);
2341
g_signal_connect(radio_button.bs_listen_some, "toggled",
2342
G_CALLBACK(on_radiobutton_biblesync_listen), &rb_cb[0]);
2343
g_signal_connect(radio_button.bs_listen_all, "toggled",
2344
G_CALLBACK(on_radiobutton_biblesync_listen), &rb_cb[1]);
2345
g_signal_connect(radio_button.bs_listen_none, "toggled",
2346
G_CALLBACK(on_radiobutton_biblesync_listen), &rb_cb[2]);
2347
/* ^-- BibleSync --^ */
2659
2987
check_button.xrefs_in_verse_list = UI_GET_ITEM(gxml, "checkbutton_xrefs_in_verse_list");
2660
2988
check_button.prayerlist = UI_GET_ITEM(gxml, "checkbutton_prayerlist");
2662
check_button.show_paratab = UI_GET_ITEM(gxml, "checkbutton_paratab");
2990
/* v-- BibleSync --v */
2991
check_button.bs_debug = UI_GET_ITEM(gxml, "checkbutton_BSP_nav_debug");
2992
check_button.bs_presence = UI_GET_ITEM(gxml, "checkbutton_BSP_presence");
2993
check_button.bs_mismatch = UI_GET_ITEM(gxml, "checkbutton_BSP_mismatch");
2994
check_button.bs_group_tab = UI_GET_ITEM(gxml, "checkbutton_BSP_group_tab");
2995
check_button.bs_privacy = UI_GET_ITEM(gxml, "checkbutton_BSP_privacy");
2997
radio_button.bs_mode_off = UI_GET_ITEM(gxml, "radiobutton_BSP_off");
2998
radio_button.bs_mode_personal = UI_GET_ITEM(gxml, "radiobutton_BSP_personal");
2999
radio_button.bs_mode_speaker = UI_GET_ITEM(gxml, "radiobutton_BSP_speaker");
3000
radio_button.bs_mode_audience = UI_GET_ITEM(gxml, "radiobutton_BSP_audience");
3002
radio_button.bs_nav_direct = UI_GET_ITEM(gxml, "radiobutton_BSP_nav_direct");
3003
radio_button.bs_nav_verselist = UI_GET_ITEM(gxml, "radiobutton_BSP_nav_verselist");
3005
radio_button.bs_listen_some = UI_GET_ITEM(gxml, "radiobutton_BSP_listen_some");
3006
radio_button.bs_listen_all = UI_GET_ITEM(gxml, "radiobutton_BSP_listen_all");
3007
radio_button.bs_listen_none = UI_GET_ITEM(gxml, "radiobutton_BSP_listen_none");
3009
speaker_window = UI_GET_ITEM(gxml, "speakerwindow");
3010
biblesync_update_speaker();
3011
/* ^-- BibleSync --^ */
2664
3013
g_signal_connect(color_picker.text_background, "color_set",
2665
3014
G_CALLBACK(on_colorbutton1_color_set), NULL);