~ubuntu-branches/debian/sid/xiphos/sid

« back to all changes in this revision

Viewing changes to src/gnome2/preferences_dialog.c

  • Committer: Package Import Robot
  • Author(s): Dimitri John Ledkov
  • Date: 2014-07-12 17:08:46 UTC
  • mfrom: (1.3.3)
  • Revision ID: package-import@ubuntu.com-20140712170846-ja9jzhgt51d3fkrd
Tags: 3.2.2+dfsg1-1
* New upstream release.
* Bump standards version.
* Switch uscan to sf.net redirector.
* Unpack waf in get-orig-source target.
* Bump to debhelper 9.
* Add uuid-dev build-dep.

Show diffs side-by-side

added added

removed removed

Lines of Context:
2
2
 * Xiphos Bible Study Tool
3
3
 * preferences_dialog.c - get user preferences
4
4
 *
5
 
 * Copyright (C) 2000-2011 Xiphos Developer Team
 
5
 * Copyright (C) 2000-2014 Xiphos Developer Team
6
6
 *
7
7
 * This program is free software; you can redistribute it and/or modify
8
8
 * it under the terms of the GNU General Public License as published by
60
60
#include "main/sidebar.h"
61
61
#include "main/xml.h"
62
62
#include "main/url.hh"
 
63
#include "main/biblesync_glue.h"
63
64
 
64
65
#include "gui/debug_glib_null.h"
65
66
 
94
95
struct _preferences_check_buttons {
95
96
        GtkWidget *use_defaults;        /* radio button */
96
97
 
97
 
        GtkWidget *enable_tabbed_browsing;
98
 
        GtkWidget *show_bible_tabs;
99
 
        GtkWidget *show_commentary_tabs;
100
 
        GtkWidget *show_dictionary_tabs;
101
 
        GtkWidget *show_book_tabs;
102
 
 
103
98
        GtkWidget *use_default_dictionary;
104
99
        GtkWidget *use_linked_tabs;
105
100
        GtkWidget *use_chapter_scroll;
115
110
        GtkWidget *show_splash_screen;
116
111
        GtkWidget *prayerlist;
117
112
 
118
 
        GtkWidget *show_bible_pane;
119
 
        GtkWidget *show_preview_pane;
120
 
        GtkWidget *show_commentary_pane;
121
 
        GtkWidget *show_dictionary_pane;
122
 
 
123
113
        GtkWidget *show_in_viewer;
124
114
        GtkWidget *show_in_dictionary;
125
115
        GtkWidget *show_devotion;
126
 
        GtkWidget *show_paratab;
127
 
};
 
116
 
 
117
        GtkWidget *bs_debug;
 
118
        GtkWidget *bs_presence;
 
119
        GtkWidget *bs_mismatch;
 
120
        GtkWidget *bs_group_tab;
 
121
        GtkWidget *bs_privacy;
 
122
};
 
123
 
 
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;
 
131
 
 
132
        /* BibleSync navigation choice */
 
133
        GtkWidget *bs_nav_direct;
 
134
        GtkWidget *bs_nav_verselist;
 
135
 
 
136
        /* BibleSync listener choice. */
 
137
        GtkWidget *bs_listen_some;
 
138
        GtkWidget *bs_listen_all;
 
139
        GtkWidget *bs_listen_none;
 
140
};
 
141
 
 
142
/* fixed callback values, for radio button assignment. */
 
143
static int rb_cb[] = { 0, 1, 2, 3 };    // userdata callback values.
128
144
 
129
145
typedef struct _preferences_buttons BUTTONS;
130
146
struct _preferences_buttons {
142
158
        GtkWidget *mod_sel_add;
143
159
        GtkWidget *mod_sel_treeview;
144
160
};
 
161
static GtkWidget *dialog_prefs = NULL;
145
162
 
 
163
GtkWidget *speaker_window = NULL;       // BibleSync
 
164
GtkWidget *speaker_list = NULL; // BibleSync
146
165
 
147
166
/*****************************************************************************
148
167
 * externs
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;
160
180
 
161
181
 
162
182
/******************************************************************************
163
183
 * Name
 
184
 *   on_prefs_configure_event
 
185
 *
 
186
 * Synopsis
 
187
 *   #include "gui/main_window.h"
 
188
 *   gboolean on_prefs_configure_event(GtkWidget * widget,
 
189
 *                                 GdkEventConfigure * event,
 
190
 *                                 gpointer user_data)
 
191
 *
 
192
 * Description
 
193
 *   remember placement+size of prefs window.
 
194
 *   cloned from on_parallel_configure_event
 
195
 *
 
196
 * Return value
 
197
 *   gboolean
 
198
 */
 
199
 
 
200
static gboolean on_prefs_configure_event(GtkWidget * widget,
 
201
                                         GdkEventConfigure * event,
 
202
                                         gpointer user_data)
 
203
{
 
204
        gchar layout[10];
 
205
        gint x;
 
206
        gint y;
 
207
 
 
208
        gdk_window_get_root_origin(
 
209
            GDK_WINDOW(gtk_widget_get_window (dialog_prefs)), &x, &y);
 
210
 
 
211
        settings.prefs_width  = event->width;
 
212
        settings.prefs_height = event->height;
 
213
        settings.prefs_x = x;
 
214
        settings.prefs_y = y;
 
215
 
 
216
        sprintf(layout, "%d", settings.prefs_width);
 
217
        xml_set_value("Xiphos", "layout", "prefs_width", layout);
 
218
 
 
219
        sprintf(layout, "%d", settings.prefs_height);
 
220
        xml_set_value("Xiphos", "layout", "prefs_height", layout);
 
221
 
 
222
        sprintf(layout, "%d", settings.prefs_x);
 
223
        xml_set_value("Xiphos", "layout", "prefs_x", layout);
 
224
 
 
225
        sprintf(layout, "%d", settings.prefs_y);
 
226
        xml_set_value("Xiphos", "layout", "prefs_y", layout);
 
227
        xml_save_settings_doc(settings.fnconfigure);
 
228
 
 
229
        return FALSE;
 
230
}
 
231
 
 
232
/******************************************************************************
 
233
 * Name
164
234
 *  string_is_color
165
235
 *
166
236
 * Synopsis
167
237
 *   #include "preferences_dialog.h"
168
 
 *
169
 
 *      gint string_is_color(gchar * color)
 
238
 *   gint string_is_color(gchar * color)
170
239
 *
171
240
 * Description
172
241
 *    this code is from bluefish-0.6
174
243
 * Return value
175
244
 *   gint
176
245
 */
177
 
 
 
246
#ifndef HAVE_GTK_34
178
247
static gint
179
248
string_is_color(gchar * color)
180
249
{
207
276
        return 1;
208
277
 
209
278
}
210
 
 
211
 
 
 
279
#endif
 
280
 
 
281
 
 
282
#ifdef HAVE_GTK_34
 
283
static gchar *
 
284
gdkrgba_to_hex(GdkRGBA * color)
 
285
{
 
286
        gchar *tmpstr;
 
287
 
 
288
        tmpstr = g_malloc(8*sizeof(char));
 
289
        g_snprintf (tmpstr, 8,"#%.2X%.2X%.2X",
 
290
                                        (unsigned int)(color->red*255),
 
291
                                        (unsigned int)(color->green*255),
 
292
                                        (unsigned int)(color->blue*255));
 
293
        return tmpstr;
 
294
}
 
295
 
 
296
#else
212
297
/******************************************************************************
213
298
 * Name
214
299
 *  gdkcolor_to_hex
215
300
 *
216
301
 * Synopsis
217
302
 *   #include "preferences_dialog.h"
218
 
 *
219
303
 *   gchar *gdkcolor_to_hex(gdouble * color, gint websafe)
220
304
 *
221
305
 * Description
246
330
        return tmpstr;
247
331
}
248
332
 
 
333
#endif
249
334
 
250
335
void
251
336
apply_color_settings(void)
270
355
 *
271
356
 * Synopsis
272
357
 *   #include "preferences_dialog.h"
273
 
 *
274
358
 *   void invert_colors(char **color1, char *label1,
275
359
                        char **color2, char *label2)
276
360
 *
301
385
 *
302
386
 * Synopsis
303
387
 *   #include "preferences_dialog.h"
304
 
 *
305
388
 *   void on_invert(GtkWidget *button, gchar *user_data)
306
389
 *
307
390
 * Description
313
396
 
314
397
void on_invert(GtkWidget * button, gchar * user_data)
315
398
{
316
 
    if (user_data)
317
 
        invert_colors(&settings.bible_bg_color, "background",
318
 
                      &settings.bible_text_color, "text_fg");
319
 
    else
320
 
        invert_colors(&settings.highlight_fg, "highlight_fg",
321
 
                      &settings.highlight_bg, "highlight_bg");
 
399
        if (user_data)
 
400
                invert_colors(&settings.bible_bg_color, "background",
 
401
                              &settings.bible_text_color, "text_fg");
 
402
        else
 
403
                invert_colors(&settings.highlight_fg, "highlight_fg",
 
404
                              &settings.highlight_bg, "highlight_bg");
322
405
}
323
406
 
324
407
/******************************************************************************
327
410
 *
328
411
 * Synopsis
329
412
 *   #include "preferences_dialog.h"
330
 
 *
331
413
 *   void on_colorbutton1_color_set(GtkColorButton  * colorbutton,
332
414
 *                                                      gpointer user_data)
333
415
 *
334
416
 * Description
335
417
 *
336
 
 *
337
 
 *
338
418
 * Return value
339
419
 *   void
340
420
 */
344
424
                          gpointer user_data)
345
425
{
346
426
        gchar *buf = NULL;
 
427
#ifdef HAVE_GTK_34      
 
428
        GdkRGBA color;
 
429
        gtk_color_chooser_get_rgba ((GtkColorChooser *) colorbutton, &color);
 
430
        buf = gdkrgba_to_hex (&color);//gdk_rgba_to_string (&color);
 
431
#else
347
432
        GdkColor color;
348
 
 
349
433
        gtk_color_button_get_color(colorbutton, &color);
350
434
        buf = gdkcolor_to_hex(color,1);
 
435
#endif
351
436
        xml_set_value("Xiphos", "HTMLcolors", "background", buf);
352
437
        settings.bible_bg_color = xml_get_value("HTMLcolors", "background");
353
438
        if (buf)
361
446
 *
362
447
 * Synopsis
363
448
 *   #include "preferences_dialog.h"
364
 
 *
365
449
 *   void on_colorbutton2_color_set(GtkColorButton  * colorbutton,
366
450
 *                                                      gpointer user_data)
367
451
 *
368
452
 * Description
369
453
 *
370
 
 *
371
 
 *
372
454
 * Return value
373
455
 *   void
374
456
 */
378
460
                          gpointer user_data)
379
461
{
380
462
        gchar *buf2 = NULL;
 
463
#ifdef HAVE_GTK_34      
 
464
        GdkRGBA color;
 
465
        
 
466
        gtk_color_chooser_get_rgba ((GtkColorChooser *) colorbutton, &color);
 
467
        buf2 = gdkrgba_to_hex (&color);
 
468
#else
381
469
        GdkColor color;
382
470
 
383
471
        gtk_color_button_get_color(colorbutton, &color);
384
472
        buf2 = gdkcolor_to_hex(color,1);
 
473
#endif
385
474
        xml_set_value("Xiphos", "HTMLcolors", "text_fg", buf2);
386
475
        settings.bible_text_color = xml_get_value("HTMLcolors", "text_fg");
387
476
        if (buf2)
395
484
 *
396
485
 * Synopsis
397
486
 *   #include "preferences_dialog.h"
398
 
 *
399
487
 *   void on_colorbutton3_color_set(GtkColorButton  * colorbutton,
400
488
 *                                                      gpointer user_data)
401
489
 *
402
490
 * Description
403
491
 *
404
 
 *
405
 
 *
406
492
 * Return value
407
493
 *   void
408
494
 */
412
498
                          gpointer user_data)
413
499
{
414
500
        gchar *buf2 = NULL;
 
501
#ifdef HAVE_GTK_34      
 
502
        GdkRGBA color;
 
503
        
 
504
        gtk_color_chooser_get_rgba ((GtkColorChooser *) colorbutton, &color);
 
505
        buf2 = gdkrgba_to_hex (&color);
 
506
#else
415
507
        GdkColor color;
416
508
 
417
509
        gtk_color_button_get_color(colorbutton, &color);
418
510
        buf2 = gdkcolor_to_hex(color,1);
 
511
#endif
419
512
        xml_set_value("Xiphos", "HTMLcolors", "currentverse", buf2);
420
513
        settings.currentverse_color =
421
514
                xml_get_value("HTMLcolors", "currentverse");
430
523
 *
431
524
 * Synopsis
432
525
 *   #include "preferences_dialog.h"
433
 
 *
434
526
 *   void on_colorbutton4_color_set(GtkColorButton  * colorbutton,
435
527
 *                                                      gpointer user_data)
436
528
 *
437
529
 * Description
438
530
 *
439
 
 *
440
 
 *
441
531
 * Return value
442
532
 *   void
443
533
 */
447
537
                          gpointer user_data)
448
538
{
449
539
        gchar *buf2 = NULL;
 
540
#ifdef HAVE_GTK_34      
 
541
        GdkRGBA color;
 
542
        
 
543
        gtk_color_chooser_get_rgba ((GtkColorChooser *) colorbutton, &color);
 
544
        buf2 = gdkrgba_to_hex (&color);
 
545
#else
450
546
        GdkColor color;
451
547
 
452
548
        gtk_color_button_get_color(colorbutton, &color);
453
549
        buf2 = gdkcolor_to_hex(color,1);
 
550
#endif
454
551
        xml_set_value("Xiphos", "HTMLcolors", "versenum", buf2);
455
552
        settings.bible_verse_num_color =
456
553
                xml_get_value("HTMLcolors", "versenum");
465
562
 *
466
563
 * Synopsis
467
564
 *   #include "preferences_dialog.h"
468
 
 *
469
565
 *   void on_colorbutton5_color_set(GtkColorButton  * colorbutton,
470
566
 *                                                      gpointer user_data)
471
567
 *
472
568
 * Description
473
569
 *
474
 
 *
475
 
 *
476
570
 * Return value
477
571
 *   void
478
572
 */
482
576
                          gpointer user_data)
483
577
{
484
578
        gchar *buf2 = NULL;
 
579
#ifdef HAVE_GTK_34      
 
580
        GdkRGBA color;
 
581
        
 
582
        gtk_color_chooser_get_rgba ((GtkColorChooser *) colorbutton, &color);
 
583
        buf2 = gdkrgba_to_hex (&color);
 
584
#else
485
585
        GdkColor color;
486
586
 
487
587
        gtk_color_button_get_color(colorbutton, &color);
488
588
        buf2 = gdkcolor_to_hex(color,1);
 
589
#endif
489
590
        xml_set_value("Xiphos", "HTMLcolors", "link", buf2);
490
591
        settings.link_color = xml_get_value("HTMLcolors", "link");
491
592
        if (buf2)
499
600
 *
500
601
 * Synopsis
501
602
 *   #include "preferences_dialog.h"
502
 
 *
503
603
 *   void on_colorbutton6_color_set(GtkColorButton  * colorbutton,
504
604
 *                                                      gpointer user_data)
505
605
 *
506
606
 * Description
507
607
 *
508
 
 *
509
 
 *
510
608
 * Return value
511
609
 *   void
512
610
 */
516
614
                          gpointer user_data)
517
615
{
518
616
        gchar *buf2 = NULL;
 
617
#ifdef HAVE_GTK_34      
 
618
        GdkRGBA color;
 
619
        
 
620
        gtk_color_chooser_get_rgba ((GtkColorChooser *) colorbutton, &color);
 
621
        buf2 = gdkrgba_to_hex (&color);
 
622
#else
519
623
        GdkColor color;
520
624
 
521
625
        gtk_color_button_get_color(colorbutton, &color);
522
626
        buf2 = gdkcolor_to_hex(color,1);
 
627
#endif
523
628
        xml_set_value("Xiphos", "HTMLcolors", "highlight_fg", buf2);
524
629
        settings.highlight_fg = xml_get_value("HTMLcolors", "highlight_fg");
525
630
        if (buf2)
533
638
 *
534
639
 * Synopsis
535
640
 *   #include "preferences_dialog.h"
536
 
 *
537
641
 *   void on_colorbutton7_color_set(GtkColorButton  * colorbutton,
538
642
 *                                                      gpointer user_data)
539
643
 *
540
644
 * Description
541
645
 *
542
 
 *
543
 
 *
544
646
 * Return value
545
647
 *   void
546
648
 */
550
652
                          gpointer user_data)
551
653
{
552
654
        gchar *buf2 = NULL;
 
655
#ifdef HAVE_GTK_34      
 
656
        GdkRGBA color;
 
657
        
 
658
        gtk_color_chooser_get_rgba ((GtkColorChooser *) colorbutton, &color);
 
659
        buf2 = gdkrgba_to_hex (&color);
 
660
#else
553
661
        GdkColor color;
554
662
 
555
663
        gtk_color_button_get_color(colorbutton, &color);
556
664
        buf2 = gdkcolor_to_hex(color,1);
 
665
#endif
557
666
        xml_set_value("Xiphos", "HTMLcolors", "highlight_bg", buf2);
558
667
        settings.highlight_bg = xml_get_value("HTMLcolors", "highlight_bg");
559
668
        if (buf2)
567
676
 *
568
677
 * Synopsis
569
678
 *   #include "preferences_dialog.h"
570
 
 *
571
679
 *   void on_checkbutton1_toggled(GtkToggleButton * togglebutton, gpointer user_data)
572
680
 *
573
681
 * Description
574
682
 *
575
 
 *
576
 
 *
577
683
 * Return value
578
684
 *   void
579
685
 */
604
710
 *
605
711
 * Synopsis
606
712
 *   #include "preferences_dialog.h"
607
 
 *
608
713
 *   void on_checkbutton2_toggled(GtkToggleButton * togglebutton, gpointer user_data)
609
714
 *
610
715
 * Description
611
716
 *
612
 
 *
613
 
 *
614
717
 * Return value
615
718
 *   void
616
719
 */
635
738
 *
636
739
 * Synopsis
637
740
 *   #include "preferences_dialog.h"
638
 
 *
639
741
 *   void on_checkbutton3_toggled(GtkToggleButton * togglebutton, gpointer user_data)
640
742
 *
641
743
 * Description
642
744
 *
643
 
 *
644
 
 *
645
745
 * Return value
646
746
 *   void
647
747
 */
666
766
 *
667
767
 * Synopsis
668
768
 *   #include "preferences_dialog.h"
669
 
 *
670
769
 *   void on_checkbutton9_toggled(GtkToggleButton * togglebutton, gpointer user_data)
671
770
 *
672
771
 * Description
673
772
 *
674
 
 *
675
 
 *
676
773
 * Return value
677
774
 *   void
678
775
 */
697
794
 *
698
795
 * Synopsis
699
796
 *   #include "preferences_dialog.h"
700
 
 *
701
797
 *   void on_checkbutton4_toggled(GtkToggleButton * togglebutton, gpointer user_data)
702
798
 *
703
799
 * Description
704
800
 *
705
 
 *
706
 
 *
707
801
 * Return value
708
802
 *   void
709
803
 */
728
822
 *
729
823
 * Synopsis
730
824
 *   #include "preferences_dialog.h"
731
 
 *
732
825
 *   void on_checkbutton10_toggled(GtkToggleButton * togglebutton, gpointer user_data)
733
826
 *
734
827
 * Description
735
828
 *
736
 
 *
737
 
 *
738
829
 * Return value
739
830
 *   void
740
831
 */
754
845
 
755
846
/******************************************************************************
756
847
 * Name
757
 
 *   on_checkbutton_showparatab_toggled
758
 
 *
759
 
 * Synopsis
760
 
 *   #include "preferences_dialog.h"
761
 
 *
762
 
 *   void on_checkbutton_showparatab_toggled(GtkToggleButton * togglebutton, gpointer user_data)
763
 
 *
764
 
 * Description
765
 
 *
766
 
 *
767
 
 *
768
 
 * Return value
769
 
 *   void
770
 
 */
771
 
 
772
 
static void
773
 
on_checkbutton_showparatab_toggled(GtkToggleButton * togglebutton,
774
 
                         gpointer user_data)
775
 
{
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
 
849
 *
 
850
 * Synopsis
 
851
 *   #include "unlock_key_dialog.h"
 
852
 *   gchar *on_biblesync_obtain_passphrase()
 
853
 *
 
854
 * Description
 
855
 *   create dialog to get session passphrase
 
856
 *
 
857
 * Return value
 
858
 *   void
 
859
 */
 
860
 
 
861
gchar *on_biblesync_obtain_passphrase()
 
862
{
 
863
        gchar *retval;
 
864
        GS_DIALOG *info = gui_new_dialog();
 
865
#ifdef HAVE_GTK_310
 
866
        info->stock_icon = g_strdup("dialog-warning");
 
867
#else
 
868
        info->stock_icon = g_strdup(GTK_STOCK_DIALOG_WARNING);
 
869
#endif
 
870
        info->label_top = g_strdup(_("BibleSync session passphrase"));
 
871
        info->text1 = g_strdup(biblesync_get_passphrase());
 
872
        info->label1 = _("Phrase:");
 
873
        info->ok = TRUE;
 
874
 
 
875
        (void)gui_gs_dialog(info);
 
876
 
 
877
        retval = g_strdup(info->text1);
 
878
        g_free(info->label_top);
 
879
        g_free(info->text1);
 
880
        g_free(info);
 
881
        return retval;
 
882
}
 
883
 
 
884
 
 
885
/******************************************************************************
 
886
 * Name
 
887
 *   on_checkbutton_biblesync_toggled
 
888
 *
 
889
 * Synopsis
 
890
 *   #include "preferences_dialog.h"
 
891
 *   void on_checkbutton_biblesync_toggled(GtkToggleButton * togglebutton, gpointer user_data)
 
892
 *   *((int*)user_data) is settings' bs_* bitflag.
 
893
 *
 
894
 * Description
 
895
 *   debug (packet dump), presence, mismatch, privacy, and group/tab.
 
896
 *
 
897
 * Return value
 
898
 *   void
 
899
 */
 
900
 
 
901
static void
 
902
on_checkbutton_biblesync_toggled(GtkToggleButton * togglebutton,
 
903
                                 gpointer user_data)
 
904
{
 
905
        *((int *)user_data) = gtk_toggle_button_get_active(togglebutton);
 
906
        if (user_data == &settings.bs_privacy)
 
907
                biblesync_privacy(settings.bs_privacy);
 
908
}
 
909
 
 
910
 
 
911
/******************************************************************************
 
912
 * Name
 
913
 *   on_radiobutton_biblesync_mode
 
914
 *
 
915
 * Synopsis
 
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.
 
919
 *
 
920
 * Description
 
921
 *   BibleSync mode selection, 0-3.
 
922
 *
 
923
 * Return value
 
924
 *   void
 
925
 */
 
926
 
 
927
static void
 
928
on_radiobutton_biblesync_mode(GtkToggleButton * togglebutton,
 
929
                              gpointer user_data)
 
930
{
 
931
        int new_mode;
 
932
 
 
933
        if (gtk_toggle_button_get_active(togglebutton))
 
934
        {
 
935
                settings.bs_mode = *((int*)user_data);
 
936
 
 
937
                if (settings.bs_mode != 0)
 
938
                {
 
939
                        g_free(settings.bs_passphrase);
 
940
                        settings.bs_passphrase =
 
941
                            on_biblesync_obtain_passphrase();
 
942
                }
 
943
                new_mode = biblesync_mode_select(settings.bs_mode,
 
944
                                                 settings.bs_passphrase);
 
945
                /* selecting active mode enables polled receiver. */
 
946
 
 
947
                if (new_mode != settings.bs_mode)
 
948
                {
 
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));
 
966
 
 
967
                }
 
968
 
 
969
                if (biblesync_personal())
 
970
                {
 
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);
 
975
                }
 
976
                else
 
977
                {
 
978
                        gtk_widget_set_sensitive(check_button.bs_privacy, FALSE);
 
979
                }
 
980
        }
 
981
}
 
982
 
 
983
 
 
984
/******************************************************************************
 
985
 * Name
 
986
 *   on_biblesync_kbd
 
987
 *
 
988
 * Synopsis
 
989
 *   #include "preferences_dialog.h"
 
990
 *   void on_biblesync_kbd(int mode)
 
991
 *
 
992
 * Description
 
993
 *   kbd-selected biblesync mode.
 
994
 *   as elsewhere: 0 = off; 1 = personal; 2 = speaker; 3 = audience.
 
995
 *
 
996
 * Return value
 
997
 *   void
 
998
 */
 
999
 
 
1000
void
 
1001
on_biblesync_kbd(int mode)
 
1002
{
 
1003
        int new_mode;
 
1004
 
 
1005
        settings.bs_mode = mode;
 
1006
        new_mode = biblesync_mode_select(settings.bs_mode,
 
1007
                                         settings.bs_passphrase);
 
1008
 
 
1009
        if (new_mode != settings.bs_mode)
 
1010
        {
 
1011
                gui_generic_warning(_("Mode selection failed.\n"));
 
1012
                settings.bs_mode = new_mode;
 
1013
        }
780
1014
        else
781
 
                gui_close_passage_tab(1);
782
 
 
783
 
 
 
1015
        {
 
1016
            gchar *msg = g_strdup_printf
 
1017
                (_("BibleSync: %s (passphrase \"%s\")."),
 
1018
                 ((mode == 0)
 
1019
                  ? _("Disabled")
 
1020
                  : ((mode == 1)
 
1021
                     ? _("Personal")
 
1022
                     : ((mode == 2)
 
1023
                        ? _("Speaker")
 
1024
                        : _("Audience")))),
 
1025
                    settings.bs_passphrase);
 
1026
            gui_set_statusbar(msg);
 
1027
            g_free(msg);
 
1028
        }
 
1029
}
 
1030
 
 
1031
 
 
1032
/******************************************************************************
 
1033
 * Name
 
1034
 *   on_radiobutton_biblesync_nav
 
1035
 *
 
1036
 * Synopsis
 
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.
 
1041
 *
 
1042
 * Description
 
1043
 *   BibleSync nav selection, direct (1) or verse list (0).
 
1044
 *
 
1045
 * Return value
 
1046
 *   void
 
1047
 */
 
1048
 
 
1049
static void
 
1050
on_radiobutton_biblesync_nav(GtkToggleButton * togglebutton,
 
1051
                             gpointer user_data)
 
1052
{
 
1053
        if (gtk_toggle_button_get_active(togglebutton))
 
1054
                settings.bs_navdirect = *((int*)user_data);
 
1055
}
 
1056
 
 
1057
 
 
1058
/******************************************************************************
 
1059
 * Name
 
1060
 *   on_radiobutton_biblesync_listen
 
1061
 *
 
1062
 * Synopsis
 
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.
 
1067
 *
 
1068
 * Description
 
1069
 *   BibleSync listen set choice.  calls biblesync glue if necessary,
 
1070
 *   to set or clear all listen bits.
 
1071
 *
 
1072
 * Return value
 
1073
 *   void
 
1074
 */
 
1075
 
 
1076
static void
 
1077
on_radiobutton_biblesync_listen(GtkToggleButton * togglebutton,
 
1078
                                gpointer user_data)
 
1079
{
 
1080
        if (gtk_toggle_button_get_active(togglebutton))
 
1081
        {
 
1082
                settings.bs_listen_set = *((int*)user_data);
 
1083
 
 
1084
                if (settings.bs_listen_set != 0)        // not selective
 
1085
                {
 
1086
                        biblesync_set_clear_all_listen
 
1087
                            ((settings.bs_listen_set == 1)
 
1088
                             ? TRUE
 
1089
                             : FALSE);
 
1090
                }
 
1091
        }
784
1092
}
785
1093
 
786
1094
 
790
1098
 *
791
1099
 * Synopsis
792
1100
 *   #include "preferences_dialog.h"
793
 
 *
794
1101
 *   void on_checkbutton11_toggled(GtkToggleButton * togglebutton, gpointer user_data)
795
1102
 *
796
1103
 * Description
797
1104
 *
798
 
 *
799
 
 *
800
1105
 * Return value
801
1106
 *   void
802
1107
 */
820
1125
 *
821
1126
 * Synopsis
822
1127
 *   #include "preferences_dialog.h"
823
 
 *
824
1128
 *   void on_checkbutton12_toggled(GtkToggleButton * togglebutton, gpointer user_data)
825
1129
 *
826
1130
 * Description
827
1131
 *
828
 
 *
829
 
 *
830
1132
 * Return value
831
1133
 *   void
832
1134
 */
851
1153
 *
852
1154
 * Synopsis
853
1155
 *   #include "preferences_dialog.h"
854
 
 *
855
1156
 *   void on_checkbutton6_toggled(GtkToggleButton * togglebutton, gpointer user_data)
856
1157
 *
857
1158
 * Description
858
1159
 *
859
 
 *
860
 
 *
861
1160
 * Return value
862
1161
 *   void
863
1162
 */
878
1177
 *
879
1178
 * Synopsis
880
1179
 *   #include "preferences_dialog.h"
881
 
 *
882
1180
 *   void on_checkbutton7_toggled(GtkToggleButton * togglebutton, gpointer user_data)
883
1181
 *
884
1182
 * Description
885
1183
 *
886
 
 *
887
 
 *
888
1184
 * Return value
889
1185
 *   void
890
1186
 */
905
1201
 *
906
1202
 * Synopsis
907
1203
 *   #include "preferences_dialog.h"
908
 
 *
909
1204
 *   void on_checkbutton8_toggled(GtkToggleButton * togglebutton, gpointer user_data)
910
1205
 *
911
1206
 * Description
912
1207
 *
913
 
 *
914
 
 *
915
1208
 * Return value
916
1209
 *   void
917
1210
 */
932
1225
 *
933
1226
 * Synopsis
934
1227
 *   #include "preferences_dialog.h"
935
 
 *
936
1228
 *   void on_checkbutton_scroll_toggled(GtkToggleButton * togglebutton, gpointer user_data)
937
1229
 *
938
1230
 * Description
939
1231
 *
940
 
 *
941
 
 *
942
1232
 * Return value
943
1233
 *   void
944
1234
 */
958
1248
 *
959
1249
 * Synopsis
960
1250
 *   #include "preferences_dialog.h"
961
 
 *
962
1251
 *   void on_checkbutton_imageresize_toggled(GtkToggleButton * togglebutton, gpointer user_data)
963
1252
 *
964
1253
 * Description
965
1254
 *
966
 
 *
967
 
 *
968
1255
 * Return value
969
1256
 *   void
970
1257
 */
984
1271
 *
985
1272
 * Synopsis
986
1273
 *   #include "preferences_dialog.h"
987
 
 *
988
1274
 *   void on_checkbutton_verse_num_bold_toggled(GtkToggleButton * togglebutton, gpointer user_data)
989
1275
 *
990
1276
 * Description
991
1277
 *
992
 
 *
993
 
 *
994
1278
 * Return value
995
1279
 *   void
996
1280
 */
1014
1298
 *
1015
1299
 * Synopsis
1016
1300
 *   #include "preferences_dialog.h"
1017
 
 *
1018
1301
 *   void on_checkbutton_verse_num_bracket_toggled(GtkToggleButton * togglebutton, gpointer user_data)
1019
1302
 *
1020
1303
 * Description
1021
1304
 *
1022
 
 *
1023
 
 *
1024
1305
 * Return value
1025
1306
 *   void
1026
1307
 */
1044
1325
 *
1045
1326
 * Synopsis
1046
1327
 *   #include "preferences_dialog.h"
1047
 
 *
1048
1328
 *   void on_checkbutton_verse_num_superscript_toggled(GtkToggleButton * togglebutton, gpointer user_data)
1049
1329
 *
1050
1330
 * Description
1051
1331
 *
1052
 
 *
1053
 
 *
1054
1332
 * Return value
1055
1333
 *   void
1056
1334
 */
1074
1352
 *
1075
1353
 * Synopsis
1076
1354
 *   #include "preferences_dialog.h"
1077
 
 *
1078
1355
 *   void on_checkbutton_versehighlight_toggled(GtkToggleButton * togglebutton, gpointer user_data)
1079
1356
 *
1080
1357
 * Description
1081
1358
 *
1082
 
 *
1083
 
 *
1084
1359
 * Return value
1085
1360
 *   void
1086
1361
 */
1104
1379
 *
1105
1380
 * Synopsis
1106
1381
 *   #include "preferences_dialog.h"
1107
 
 *
1108
1382
 *   void on_checkbutton_annotate_highlight_toggled(GtkToggleButton * togglebutton, gpointer user_data)
1109
1383
 *
1110
1384
 * Description
1130
1404
 *
1131
1405
 * Synopsis
1132
1406
 *   #include "preferences_dialog.h"
1133
 
 *
1134
1407
 *   void on_checkbutton_xrefs_in_verse_list_toggled(GtkToggleButton * togglebutton, gpointer user_data)
1135
1408
 *
1136
1409
 * Description
1155
1428
 *
1156
1429
 * Synopsis
1157
1430
 *   #include "preferences_dialog.h"
1158
 
 *
1159
1431
 *   void on_checkbutton_prayerlist_toggled(GtkToggleButton * togglebutton, gpointer user_data)
1160
1432
 *
1161
1433
 * Description
1162
1434
 *
1163
 
 *
1164
 
 *
1165
1435
 * Return value
1166
1436
 *   void
1167
1437
 */
1190
1460
 *
1191
1461
 * Synopsis
1192
1462
 *   #include "preferences_dialog.h"
1193
 
 *
1194
1463
 *   void on_folder_changed(GtkFileChooser * filechooser, gpointer user_data)
1195
1464
 *
1196
1465
 * Description
1197
1466
 *
1198
 
 *
1199
 
 *
1200
1467
 * Return value
1201
1468
 *   void
1202
1469
 */
1218
1485
 *
1219
1486
 * Synopsis
1220
1487
 *   #include "preferences_dialog.h"
1221
 
 *
1222
1488
 *   void on_combobox1_changed(GtkEditable * editable, gpointer user_data)
1223
1489
 *
1224
1490
 * Description
1259
1525
 *
1260
1526
 * Synopsis
1261
1527
 *   #include "preferences_dialog.h"
1262
 
 *
1263
1528
 *   void on_basecombobox1_changed(GtkEditable * editable, gpointer user_data)
1264
1529
 *
1265
1530
 * Description
1306
1571
 *
1307
1572
 * Synopsis
1308
1573
 *   #include "preferences_dialog.h"
1309
 
 *
1310
1574
 *   void on_combobox2_changed(GtkEditable * editable, gpointer user_data)
1311
1575
 *
1312
1576
 * Description
1344
1608
 *
1345
1609
 * Synopsis
1346
1610
 *   #include "preferences_dialog.h"
1347
 
 *
1348
1611
 *   void on_combobox4_changed(GtkEditable * editable, gpointer user_data)
1349
1612
 *
1350
1613
 * Description
1382
1645
 *
1383
1646
 * Synopsis
1384
1647
 *   #include "preferences_dialog.h"
1385
 
 *
1386
1648
 *   void on_combobox5_changed(GtkEditable * editable, gpointer user_data)
1387
1649
 *
1388
1650
 * Description
1417
1679
 *
1418
1680
 * Synopsis
1419
1681
 *   #include "preferences_dialog.h"
1420
 
 *
1421
1682
 *   void on_combobox6_changed(GtkEditable * editable, gpointer user_data)
1422
1683
 *
1423
1684
 * Description
1452
1713
 *
1453
1714
 * Synopsis
1454
1715
 *   #include "preferences_dialog.h"
1455
 
 *
1456
1716
 *   void on_combobox12_changed(GtkEditable * editable, gpointer user_data)
1457
1717
 *
1458
1718
 * Description
1487
1747
 *
1488
1748
 * Synopsis
1489
1749
 *   #include "preferences_dialog.h"
1490
 
 *
1491
1750
 *   void on_combobox13_changed(GtkEditable * editable, gpointer user_data)
1492
1751
 *
1493
1752
 * Description
1522
1781
 *
1523
1782
 * Synopsis
1524
1783
 *   #include "preferences_dialog.h"
1525
 
 *
1526
1784
 *   void on_combobox14_changed(GtkEditable * editable, gpointer user_data)
1527
1785
 *
1528
1786
 * Description
1557
1815
 *
1558
1816
 * Synopsis
1559
1817
 *   #include "preferences_dialog.h"
1560
 
 *
1561
1818
 *   void on_combobox15_changed(GtkEditable * editable, gpointer user_data)
1562
1819
 *
1563
1820
 * Description
1594
1851
 *
1595
1852
 * Synopsis
1596
1853
 *   #include "preferences_dialog.h"
1597
 
 *
1598
1854
 *   void on_combobox16_changed(GtkEditable * editable, gpointer user_data)
1599
1855
 *
1600
1856
 * Description
1647
1903
 *
1648
1904
 * Synopsis
1649
1905
 *   #include "preferences_dialog.h"
1650
 
 *
1651
1906
 *   void on_combobox17_changed(GtkEditable * editable, gpointer user_data)
1652
1907
 *
1653
1908
 * Description
1687
1942
 *
1688
1943
 * Synopsis
1689
1944
 *   #include "preferences_dialog.h"
1690
 
 *
1691
1945
 *   void add_columns(GtkWidget * listview)
1692
1946
 *
1693
1947
 * Description
1694
1948
 *
1695
 
 *
1696
1949
 * Return value
1697
1950
 *   void
1698
1951
 */
1719
1972
 *
1720
1973
 * Synopsis
1721
1974
 *   #include "gui/.h"
1722
 
 *
1723
1975
 *   void tree_selection_changed(GtkTreeSelection * selection,
1724
1976
 *                    GtkWidget * tree_widget)
1725
1977
 *
1726
1978
 * Description
1727
1979
 *
1728
 
 *
1729
1980
 * Return value
1730
1981
 *   void
1731
1982
 */
1753
2004
 *
1754
2005
 * Synopsis
1755
2006
 *   #include "gui/.h"
1756
 
 *
1757
2007
 *   void on_dialog_prefs_response(GtkDialog * dialog, gint response_id,
1758
 
                                        gpointer user_data)
 
2008
 *                                      gpointer user_data)
1759
2009
 *
1760
2010
 * Description
1761
2011
 *
1762
 
 *
1763
2012
 * Return value
1764
2013
 *   void
1765
2014
 */
1770
2019
                         gpointer user_data)
1771
2020
{
1772
2021
        if (response_id == GTK_RESPONSE_CLOSE) {
 
2022
                settings.display_prefs = 0;
 
2023
                xml_set_value("Xiphos", "layout", "prefsopen", "0");
 
2024
 
1773
2025
                xml_save_settings_doc(settings.fnconfigure);
1774
2026
                gtk_widget_destroy(GTK_WIDGET(dialog));
 
2027
 
 
2028
                dialog_prefs = NULL;
 
2029
                speaker_window = NULL;
 
2030
                speaker_list = NULL;
1775
2031
        }
1776
2032
        main_update_parallel_page();
1777
2033
}
1789
2045
        gtk_tree_store_append(model, &iter, NULL);
1790
2046
        gtk_tree_store_set(model, &iter, 0, _("General"), -1);
1791
2047
 
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. */
1795
 
 
1796
2048
        gtk_tree_store_append(model, &child_iter, &iter);
1797
2049
        gtk_tree_store_set(model, &child_iter, 0, _("Options"), 1, 4, -1);
1798
2050
 
 
2051
        gtk_tree_store_append(model, &child_iter, &iter);
 
2052
        gtk_tree_store_set(model, &child_iter, 0, _("BibleSync"), 1, 3, -1);
 
2053
 
1799
2054
 
1800
2055
        gtk_tree_store_append(model, &iter, NULL);
1801
2056
        gtk_tree_store_set(model, &iter, 0, _("Fonts"), -1);
1831
2086
 *
1832
2087
 * Synopsis
1833
2088
 *   #include "preferences_dialog.h"
1834
 
 *
1835
2089
 *   void setup_color_pickers(void)
1836
2090
 *
1837
2091
 * Description
1838
2092
 *
1839
 
 *
1840
2093
 * Return value
1841
2094
 *   void
1842
2095
 */
1844
2097
void
1845
2098
setup_color_pickers(void)
1846
2099
{
 
2100
#ifdef HAVE_GTK_34
 
2101
        GdkRGBA rgba;
 
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);
 
2116
#else
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),
1852
2122
                                &color);
1853
2123
        } else {
1856
2126
                                GTK_COLOR_BUTTON(color_picker.text_background),
1857
2127
                                &color);
1858
2128
        }
1859
 
 
1860
2129
        if (string_is_color(settings.bible_text_color)) {
1861
2130
                gdk_color_parse(settings.bible_text_color, &color);
1862
2131
                gtk_color_button_set_color(GTK_COLOR_BUTTON(color_picker.text),
1920
2189
        gtk_color_button_set_color(
1921
2190
                GTK_COLOR_BUTTON(color_picker.highlight_bg),
1922
2191
                                &color);
 
2192
#endif
1923
2193
}
1924
2194
 
1925
2195
 
1927
2197
setup_check_buttons(void)
1928
2198
{
1929
2199
        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON
1930
 
                                     (check_button.enable_tabbed_browsing),
1931
 
                                     settings.browsing);
1932
 
        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON
1933
 
                                     (check_button.show_bible_pane),
1934
 
                                     settings.showtexts);
1935
 
        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON
1936
 
                                     (check_button.show_preview_pane),
1937
 
                                     settings.showpreview);
1938
 
        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON
1939
 
                                     (check_button.show_commentary_pane),
1940
 
                                     settings.showcomms);
1941
 
        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON
1942
 
                                     (check_button.show_dictionary_pane),
1943
 
                                     settings.showdicts);
1944
 
        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON
1945
2200
                                     (check_button.use_default_dictionary),
1946
2201
                                     settings.useDefaultDict);
1947
2202
        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON
1978
2233
                                     (check_button.prayerlist),
1979
2234
                                     settings.prayerlist);
1980
2235
 
1981
 
        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON
1982
 
                                     (check_button.show_paratab),
1983
 
                                     settings.showparatab);
1984
 
 
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 */
 
2237
        /* toggles */
 
2238
        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON
 
2239
                                     (check_button.bs_debug),
 
2240
                                     settings.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());
 
2255
 
 
2256
        /* mode */
 
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));
 
2269
 
 
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));
 
2277
 
 
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 --^ */
 
2289
 
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);
 
2314
 
 
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);
 
2326
 
 
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]);
 
2335
 
 
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]);
 
2340
 
 
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 --^ */
2021
2348
}
2022
2349
 
2023
2350
/*
2218
2545
 *
2219
2546
 * Synopsis
2220
2547
 *   #include "gui/search_dialog.h"
2221
 
 *
2222
2548
 *   static gboolean button_release_event(GtkWidget * widget,
2223
2549
 *                                        GdkEventButton * event,
2224
2550
 *                                        gpointer data)
2259
2585
 *
2260
2586
 * Synopsis
2261
2587
 *   #include "gui/search_dialog.h"
2262
 
 *
2263
2588
 *   static void _setup_listview
2264
2589
 *
2265
2590
 * Description
2315
2640
 *
2316
2641
 * Synopsis
2317
2642
 *   #include "gui/search_dialog.h"
2318
 
 *
2319
2643
 *   void modules_lists_changed(GtkTreeSelection * selection,
2320
2644
 *                                                       gpointer data)
2321
2645
 *
2322
2646
 * Description
2323
2647
 *
2324
 
 *
2325
2648
 * Return value
2326
2649
 *   void
2327
2650
 */
2356
2679
 *
2357
2680
 * Synopsis
2358
2681
 *   #include "gui/search_dialog.h"
2359
 
 *
2360
 
 *
 
2682
 *   void ps_setup_treeview(GtkWidget * treeview)
2361
2683
 *
2362
2684
 * Description
2363
2685
 *
2444
2766
 *   ps_button_clear
2445
2767
 *
2446
2768
 * Synopsis
2447
 
 *      ps_button_clear(GtkButton * button, gpointer user_data)
 
2769
 *   void ps_button_clear(GtkButton * button, gpointer user_data)
2448
2770
 *
2449
2771
 * Description
2450
2772
 *   clear all modules from the list. (parallel select)
2463
2785
                              _("Clear List?"),
2464
2786
                              _("Are you sure you want to clear the module list?"));
2465
2787
 
 
2788
 
 
2789
#ifdef HAVE_GTK_310
 
2790
        if (gui_yes_no_dialog(str, "dialog-warning")) {
 
2791
#else
2466
2792
        if (gui_yes_no_dialog(str, GTK_STOCK_DIALOG_WARNING)) {
 
2793
#endif
 
2794
 
2467
2795
                model = gtk_tree_view_get_model(GTK_TREE_VIEW(parallel_select.listview));
2468
2796
                list_store = GTK_LIST_STORE(model);
2469
2797
                gtk_list_store_clear(list_store);
2480
2808
 *   ps_button_cut
2481
2809
 *
2482
2810
 * Synopsis
2483
 
 *      ps_button_cut(GtkButton * button, gpointer user_data)
 
2811
 *   void ps_button_cut(GtkButton * button, gpointer user_data)
2484
2812
 *
2485
2813
 * Description
2486
2814
 *   cut one module from the list. (parallel select)
2509
2837
                              _("Remove Module?"),
2510
2838
                              _("Are you sure you want to remove the selected module?"));
2511
2839
 
2512
 
        if (gui_yes_no_dialog(str, (char *)GTK_STOCK_DIALOG_WARNING)) {
 
2840
#ifdef HAVE_GTK_310
 
2841
        if (gui_yes_no_dialog(str, "dialog-warning")) {
 
2842
#else
 
2843
        if (gui_yes_no_dialog(str, GTK_STOCK_DIALOG_WARNING)) {
 
2844
#endif
2513
2845
                gtk_list_store_remove(list_store, &selected);
2514
2846
                mods = get_current_list(GTK_TREE_VIEW(parallel_select.listview));
2515
2847
                mod_list = get_modlist_string(mods);
2527
2859
 *   ps_button_add
2528
2860
 *
2529
2861
 * Synopsis
2530
 
 *      ps_button_add(GtkButton * button, gpointer user_data)
 
2862
 *   void ps_button_add(GtkButton * button, gpointer user_data)
2531
2863
 *
2532
2864
 * Description
2533
2865
 *   add one module from the list. (parallel select)
2574
2906
 *
2575
2907
 * Synopsis
2576
2908
 *   #include "preferences_dialog.h"
2577
 
 *
2578
 
 *      GtkWidget *gui_create_preferences_dialog(GList * biblelist,
 
2909
 *   GtkWidget *gui_create_preferences_dialog(GList * biblelist,
2579
2910
 *                                       GList * commlist,
2580
2911
 *                                       GList * dictlist,
2581
2912
 *                                       GList * percomlist,
2596
2927
#else
2597
2928
        GladeXML *gxml;
2598
2929
#endif
2599
 
        GtkWidget *dialog_prefs;
2600
2930
        GtkWidget *treeview;
2601
2931
        GtkTreeModel *model;
2602
2932
        GObject *selection;
2618
2948
 
2619
2949
        /* lookup the root widget */
2620
2950
        dialog_prefs = UI_GET_ITEM(gxml, "dialog_prefs");
 
2951
        gtk_window_resize(GTK_WINDOW(dialog_prefs),
 
2952
                          settings.prefs_width,
 
2953
                          settings.prefs_height);
2621
2954
        g_signal_connect(dialog_prefs, "response",
2622
2955
                         G_CALLBACK(on_dialog_prefs_response), NULL);
2623
2956
 
2633
2966
        color_picker.invert_normal = UI_GET_ITEM(gxml, "invert_normal");
2634
2967
        color_picker.invert_highlight = UI_GET_ITEM(gxml, "invert_highlight");
2635
2968
 
2636
 
        check_button.enable_tabbed_browsing = UI_GET_ITEM(gxml, "checkbutton1");
2637
 
        check_button.show_bible_pane = UI_GET_ITEM(gxml,"checkbutton2");
2638
 
        check_button.show_preview_pane = UI_GET_ITEM(gxml, "checkbutton9");
2639
 
        check_button.show_commentary_pane = UI_GET_ITEM(gxml, "checkbutton3");
2640
 
        check_button.show_dictionary_pane = UI_GET_ITEM(gxml, "checkbutton4");
2641
2969
        check_button.use_linked_tabs = UI_GET_ITEM(gxml, "checkbutton10");
2642
2970
        check_button.readaloud = UI_GET_ITEM(gxml, "checkbutton11");
2643
2971
        check_button.show_verse_num = UI_GET_ITEM(gxml, "checkbutton12");
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");
2661
2989
 
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");
 
2996
 
 
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");
 
3001
 
 
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");
 
3004
 
 
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");
 
3008
 
 
3009
        speaker_window = UI_GET_ITEM(gxml, "speakerwindow");
 
3010
        biblesync_update_speaker();
 
3011
        /* ^-- BibleSync --^ */
2663
3012
 
2664
3013
        g_signal_connect(color_picker.text_background, "color_set",
2665
3014
                         G_CALLBACK(on_colorbutton1_color_set), NULL);
2684
3033
                         G_CALLBACK(on_invert), (void*)0);
2685
3034
 
2686
3035
        /* check buttons */
2687
 
#ifdef USE_WEBKIT
 
3036
 
 
3037
        /* chapter scroll doesn't work in anything but gtkhtml3. */
2688
3038
        gtk_widget_hide(check_button.use_chapter_scroll);
2689
 
#endif
2690
 
 
2691
 
        gtk_widget_hide(check_button.show_paratab);
2692
3039
 
2693
3040
        setup_check_buttons();
2694
3041
 
2767
3114
                         G_CALLBACK(ps_button_add), NULL);
2768
3115
 
2769
3116
        ps_setup_listview();
 
3117
 
 
3118
        /* geometry notifications */
 
3119
        g_signal_connect((gpointer) dialog_prefs, 
 
3120
                         "configure_event",
 
3121
                         G_CALLBACK(on_prefs_configure_event), NULL);
 
3122
 
 
3123
        settings.display_prefs = 1;
 
3124
        xml_set_value("Xiphos", "layout", "prefsopen", "1");
 
3125
 
 
3126
        /*
 
3127
         * (from xiphos.c)
 
3128
         * a little paranoia:
 
3129
         * clamp geometry values to a reasonable bound.
 
3130
         * sometimes xiphos gets insane reconfig events as it dies,
 
3131
         * especially if it's due to just shutting linux down.
 
3132
         */
 
3133
        if ((settings.prefs_x < 0) || (settings.prefs_x > 2000))
 
3134
                settings.prefs_x = 40;
 
3135
        if ((settings.prefs_y < 0) || (settings.prefs_y > 2000))
 
3136
                settings.prefs_y = 40;
 
3137
 
 
3138
        gtk_window_move(GTK_WINDOW(dialog_prefs),settings.prefs_x,settings.prefs_y);
2770
3139
}
2771
3140
 
2772
3141
 
2790
3159
void
2791
3160
gui_setup_preferences_dialog(void)
2792
3161
{
2793
 
        /* create preferences dialog */
2794
 
        create_preferences_dialog();
 
3162
        if (dialog_prefs == NULL) {
 
3163
                create_preferences_dialog();
 
3164
        } else
 
3165
                gdk_window_raise(gtk_widget_get_window(GTK_WIDGET(dialog_prefs)));
2795
3166
}