151
146
* #include "tabbed_browser.h"
153
* void gui_recompute_view_menu_choices(void)
148
* void gui_recompute_view_menu_choices(void)
156
151
* formerly part of gui_recompute_shows, but moved here to keep from
157
* triggering toggled signals on these items before new content is
152
* triggering toggled signals on these items before new content is
158
153
* ready to be displayed
197
192
* #include "tabbed_browser.h"
199
* void set_current_tab (PASSAGE_TAB_INFO *pt)
194
* void set_current_tab (PASSAGE_TAB_INFO *pt)
202
* point cur_passage_tab to the current tab and turns the close button on
197
* point cur_passage_tab to the current tab and turns the close button on
209
204
void set_current_tab (PASSAGE_TAB_INFO *pt)
211
206
PASSAGE_TAB_INFO *ot = cur_passage_tab;
213
208
if (stop_refresh)
253
248
* ** caller must free it **
257
252
pick_tab_label(PASSAGE_TAB_INFO *pt)
259
254
GString *str = g_string_new(NULL);
261
if (pt->showparallel) {
256
if (pt->showparallel) {
262
257
g_string_printf(str, "%s", _("Parallel View"));
266
261
if (pt->showtexts || (pt->showcomms && pt->comm_showing)) {
267
262
g_string_printf(str, "%s: %s",
309
304
str = pick_tab_label(tbinf);
310
305
tbinf->page_widget = gtk_vbox_new (FALSE, 0);
311
if(tbinf->showparallel)
306
if (tbinf->showparallel)
312
307
widgets.parallel_tab = tbinf->page_widget;
313
308
gtk_widget_show(tbinf->page_widget);
315
310
tab_widget = tab_widget_new(tbinf, str->str);
316
311
/*gtk_notebook_insert_page(GTK_NOTEBOOK(widgets.notebook_main),
319
314
tbinf->showparallel ? 1 : -1);*/
320
315
gtk_notebook_append_page(GTK_NOTEBOOK(widgets.notebook_main),
383
378
root_node = xmlNewNode(NULL, (const xmlChar *) "Xiphos_Tabs");
384
379
xml_attr = xmlNewProp(root_node, (const xmlChar *)"Version", (const xmlChar *) VERSION);
385
380
xmlDocSetRootElement(xml_doc, root_node);
387
382
section_node = xmlNewChild(root_node, NULL,
388
383
(const xmlChar *) "tabs", NULL);
390
385
for (tmp = g_list_first(passage_list); tmp != NULL; tmp = g_list_next(tmp)) {
392
387
pt = (PASSAGE_TAB_INFO*) tmp->data;
394
389
cur_node = xmlNewChild(section_node,
395
390
NULL, (const xmlChar *) "tab", NULL);
396
391
xmlNewProp(cur_node,(const xmlChar *)"text_mod",
477
472
root_node = xmlNewNode(NULL, (const xmlChar *) "Xiphos_Tabs");
478
473
xml_attr = xmlNewProp(root_node, (const xmlChar *)"Version", (const xmlChar *) VERSION);
479
474
xmlDocSetRootElement(xml_doc, root_node);
481
476
section_node = xmlNewChild(root_node, NULL,
482
477
(const xmlChar *) "tabs", NULL);
484
479
cur_node = xmlNewChild(section_node,
485
480
NULL, (const xmlChar *) "tab", NULL);
486
481
xmlNewProp(cur_node,(const xmlChar *)"text_mod",
554
549
GS_message(("Creating new tabs directory\n"));
555
550
gui_save_tabs (filename);
558
553
file = g_strdup_printf("%s%s",tabs_dir,filename);
559
554
g_free(tabs_dir);
561
556
/* we need this for first time non tabbed browsing */
562
557
if (!settings.browsing && g_access(file, F_OK) == -1) {
563
558
_save_off_tab (filename);
621
616
val = (gchar*)xmlGetProp(tmp_node, (const xmlChar *)"book_offset");
622
617
pt->book_offset = g_strdup(val);
624
619
val = (gchar*)xmlGetProp(tmp_node, (const xmlChar *)"comm_showing");
625
620
pt->comm_showing = yes_no2true_false(val);
627
622
val = (gchar*)xmlGetProp(tmp_node, (const xmlChar *)"showparallel");
628
623
pt->showparallel = yes_no2true_false(val);
630
if(pt->showparallel) {
625
if (pt->showparallel) {
631
626
settings.showparatab = TRUE;
632
627
pt->paratab = gui_create_parallel_tab();
633
628
gtk_box_pack_start(GTK_BOX(widgets.page), pt->paratab, TRUE, TRUE,
696
691
pt->text_commentary_key = g_strdup(settings.currentverse);
697
692
pt->dictlex_key = g_strdup(settings.dictkey);
698
693
pt->book_offset = NULL; //settings.book_offset = atol(xml_get_value( "keys", "offset"));
700
695
pt->paratab = NULL;
702
697
pt->showtexts = settings.showtexts;
703
698
pt->showpreview = settings.showpreview;
704
699
pt->showcomms = settings.showcomms;
705
700
pt->showdicts = settings.showdicts;
707
pt->history_items = 0;
702
pt->history_items = 0;
708
703
pt->current_history_item = 0;
709
704
pt->first_back_click = TRUE;
710
705
// main_add_tab_history_item((PASSAGE_TAB_INFO*)pt);
743
738
* #include "tabbed_browser.h"
745
* void on_notebook_main_close_page(GtkButton * button, gpointer user_data)
740
* void on_notebook_main_close_page(GtkButton * button, gpointer user_data)
754
749
static void on_notebook_main_close_page(GtkButton * button, gpointer user_data)
756
751
PASSAGE_TAB_INFO *pt = (PASSAGE_TAB_INFO*)user_data;
791
786
tbinf->button_close = gtk_button_new();
792
787
gtk_container_add(GTK_CONTAINER(tbinf->button_close), tmp_toolbar_icon);
793
788
gtk_button_set_relief(GTK_BUTTON(tbinf->button_close), GTK_RELIEF_NONE);
794
gtk_widget_set_usize (tbinf->button_close, 18, 16);
789
gtk_widget_set_size_request(tbinf->button_close, 18, 16);
796
791
tbinf->close_pixmap = pixmap_finder("window-close.png");
797
gtk_widget_size_request (tbinf->button_close, &r);
798
gtk_widget_set_usize (tbinf->close_pixmap, r.width, r.height);
792
gtk_widget_size_request(tbinf->button_close, &r);
793
gtk_widget_set_size_request(tbinf->close_pixmap, r.width, r.height);
799
794
gtk_widget_set_sensitive(tbinf->close_pixmap, FALSE);
800
795
gtk_widget_show(tbinf->close_pixmap);
862
857
* this is needed to stop seg fault if the left tab is closed when
863
858
* there are only two tabs - because number_of_pages equals 2 even
864
* thought there is only 1.
859
* thought there is only 1.
866
if(number_of_pages == 2 && removed_page == 0)
861
if (number_of_pages == 2 && removed_page == 0)
867
862
pt = (PASSAGE_TAB_INFO*)g_list_nth_data(*tl, 0);
869
864
pt = (PASSAGE_TAB_INFO*)g_list_nth_data(*tl, page_num);
870
865
removed_page = 1;
871
866
//cur_passage_tab = pt;
873
#ifdef USE_TREEVIEW_PATH
874
if(cur_passage_tab && cur_passage_tab->book_mod)
875
gui_collapse_treeview_to_book (GTK_TREE_VIEW (sidebar.module_list),
868
#ifdef USE_TREEVIEW_PATH
869
if (cur_passage_tab && cur_passage_tab->book_mod)
870
gui_collapse_treeview_to_book (GTK_TREE_VIEW (sidebar.module_list),
876
871
cur_passage_tab->book_mod);
877
872
#endif /* USE_TREEVIEW_PATH */
879
if(!pt->showparallel) {
880
if(cur_passage_tab && cur_passage_tab->paratab)
874
if (!pt->showparallel) {
875
if (cur_passage_tab && cur_passage_tab->paratab)
881
876
gtk_widget_hide(cur_passage_tab->paratab);
882
877
gtk_widget_show(widgets.hpaned);
885
880
set_current_tab (pt);
887
882
companion_activity = TRUE;
888
if(pt->showparallel) {
883
if (pt->showparallel) {
889
884
gtk_widget_hide(widgets.hpaned);
891
gtk_widget_show(pt->paratab);
886
gtk_widget_show(pt->paratab);
892
887
companion_activity = FALSE;
893
888
page_change = FALSE;
894
889
settings.paratab_showing = TRUE;
897
892
settings.paratab_showing = FALSE;
900
895
//sets the book mod and key
901
896
main_display_book(pt->book_mod, pt->book_offset);
903
898
#ifdef USE_TREEVIEW_PATH
904
899
if (pt->showcomms && pt->book_mod)
905
gui_expand_treeview_to_path (GTK_TREE_VIEW (sidebar.module_list),
900
gui_expand_treeview_to_path (GTK_TREE_VIEW (sidebar.module_list),
907
902
#endif /* USE_TREEVIEW_PATH */
909
904
comm_showing = settings.comm_showing;
910
905
settings.comm_showing = 1;
911
906
//sets the commentary mod and key
912
907
main_display_commentary(pt->commentary_mod, pt->text_commentary_key);
913
settings.comm_showing = comm_showing;
908
settings.comm_showing = comm_showing;
914
909
//sets the text mod and key
915
910
main_display_bible(pt->text_mod, pt->text_commentary_key);
917
912
navbar_versekey.module_name = g_string_assign(navbar_versekey.module_name,pt->text_mod);
918
913
navbar_versekey.key = g_string_assign(navbar_versekey.key,pt->text_commentary_key);
919
914
main_update_nav_controls(pt->text_commentary_key);
921
916
//sets the dictionary mod and key
922
917
main_display_dictionary(pt->dictlex_mod, pt->dictlex_key);
988
983
void gui_set_named_tab_label(const gchar * key, PASSAGE_TAB_INFO *pt, gboolean update)
992
987
if (stop_refresh)
995
990
gui_reassign_strdup(&pt->text_commentary_key, (char *)key);
996
991
str = pick_tab_label(pt);
998
993
gtk_label_set_text(pt->tab_label, str->str);
999
994
GS_message(("label = %s", str->str));
1000
995
gtk_notebook_set_menu_label_text(
1008
1003
/******************************************************************************
1013
1008
* #include "tabbed_browser.h"
1024
void gui_update_tab_struct(const gchar * text_mod,
1025
const gchar * commentary_mod,
1026
const gchar * dictlex_mod,
1027
const gchar * book_mod,
1019
void gui_update_tab_struct(const gchar * text_mod,
1020
const gchar * commentary_mod,
1021
const gchar * dictlex_mod,
1022
const gchar * book_mod,
1028
1023
const gchar * dictlex_key,
1029
1024
const gchar * book_offset,
1030
1025
gboolean comm_showing,
1049
1044
cur_passage_tab->showcomms = showcomms;
1050
1045
cur_passage_tab->showdicts = showdicts;
1053
1048
gui_reassign_strdup(&cur_passage_tab->text_mod, (char *)text_mod);
1055
if(commentary_mod) {
1050
if (commentary_mod) {
1056
1051
cur_passage_tab->comm_showing = comm_showing;
1057
1052
gui_reassign_strdup(&cur_passage_tab->commentary_mod, (char *)commentary_mod);
1060
1055
gui_reassign_strdup(&cur_passage_tab->dictlex_mod, (char *)dictlex_mod);
1063
1058
cur_passage_tab->comm_showing = comm_showing;
1064
1059
gui_reassign_strdup(&cur_passage_tab->book_mod, (char *)book_mod);
1067
1062
gui_reassign_strdup(&cur_passage_tab->book_offset, (char *)book_offset);
1070
1065
gui_reassign_strdup(&cur_passage_tab->dictlex_key, (char *)dictlex_key);
1120
1115
pt->showcomms = settings.showcomms;
1121
1116
pt->showdicts = settings.showdicts;
1124
1119
pt->showpreview = settings.showpreview;
1125
1120
pt->showparallel = FALSE;
1127
pt->history_items = 0;
1122
pt->history_items = 0;
1128
1123
pt->current_history_item = 0;
1129
1124
pt->first_back_click = TRUE;
1130
1125
main_add_tab_history_item((PASSAGE_TAB_INFO*)pt);
1132
passage_list = g_list_append(passage_list, (PASSAGE_TAB_INFO*)pt);
1127
passage_list = g_list_append(passage_list, (PASSAGE_TAB_INFO*)pt);
1133
1128
//set_current_tab(pt);
1134
1129
notebook_main_add_page(pt);
1136
1131
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets.notebook_main),
1137
1132
gtk_notebook_page_num
1138
1133
(GTK_NOTEBOOK(widgets.notebook_main),
1184
1179
pt->comm_showing = FALSE;
1186
1181
pt->text_commentary_key = g_strdup(settings.currentverse);
1187
pt->dictlex_key = g_strdup(settings.dictkey);
1182
pt->dictlex_key = g_strdup(settings.dictkey);
1188
1183
pt->book_offset = g_strdup_printf("%ld",settings.book_offset);
1190
1185
passage_list = g_list_append(passage_list, (PASSAGE_TAB_INFO*)pt);
1191
1186
set_current_tab(pt);
1192
1187
gui_recompute_view_menu_choices();
1290
1285
pt->text_commentary_key = g_strdup(settings.currentverse);
1291
pt->dictlex_key = g_strdup(settings.dictkey);
1286
pt->dictlex_key = g_strdup(settings.dictkey);
1292
1287
pt->book_offset = g_strdup_printf("%ld",settings.book_offset);
1294
1289
passage_list = g_list_append(passage_list, (PASSAGE_TAB_INFO*)pt);
1295
1290
//set_current_tab(pt);
1296
1291
notebook_main_add_page(pt);
1298
1293
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets.notebook_main),
1299
1294
gtk_notebook_page_num
1300
1295
(GTK_NOTEBOOK(widgets.notebook_main),
1410
1405
if (pagenum > 0){
1411
1406
gtk_notebook_set_current_page(
1412
1407
GTK_NOTEBOOK(widgets.notebook_main), 0);
1413
cur_passage_tab = (PASSAGE_TAB_INFO*)
1408
cur_passage_tab = (PASSAGE_TAB_INFO*)
1414
1409
g_list_nth_data(passage_list, (guint)0);
1418
1413
stop_refresh = TRUE;
1419
while (gtk_events_pending())
1420
gtk_main_iteration();
1421
1415
stop_refresh = FALSE;
1423
1417
passage_list = g_list_remove(passage_list, pt);
1424
if(pt->text_mod) g_free(pt->text_mod);
1425
if(pt->commentary_mod) g_free(pt->commentary_mod);
1426
if(pt->dictlex_mod) g_free(pt->dictlex_mod);
1427
if(pt->book_mod) g_free(pt->book_mod);
1428
if(pt->text_commentary_key) g_free(pt->text_commentary_key);
1429
if(pt->dictlex_key) g_free(pt->dictlex_key);
1430
if(pt->book_offset) g_free(pt->book_offset);
1431
if(pt->showparallel) {
1418
if (pt->text_mod) g_free(pt->text_mod);
1419
if (pt->commentary_mod) g_free(pt->commentary_mod);
1420
if (pt->dictlex_mod) g_free(pt->dictlex_mod);
1421
if (pt->book_mod) g_free(pt->book_mod);
1422
if (pt->text_commentary_key) g_free(pt->text_commentary_key);
1423
if (pt->dictlex_key) g_free(pt->dictlex_key);
1424
if (pt->book_offset) g_free(pt->book_offset);
1425
if (pt->showparallel) {
1432
1426
gtk_widget_hide(pt->paratab);
1433
1427
gui_destroy_parallel_tab();
1434
1428
settings.showparatab = FALSE;
1479
1473
(gui_notebook_main_switch_page), &passage_list);
1480
1474
g_signal_connect(GTK_OBJECT(widgets.button_new_tab), "clicked",
1481
1475
G_CALLBACK(on_notebook_main_new_tab_clicked), NULL);
1483
1477
//show the new tab button here instead of in main_window.c so it
1484
1478
//doesn't get shown if !settings.browsing
1485
1479
gtk_widget_show(widgets.button_new_tab);
1486
1480
gui_notebook_main_switch_page(GTK_NOTEBOOK(widgets.notebook_main),
1489
1483
&passage_list);