1 /*
2  * Xiphos Bible Study Tool
3  * navbar_versekey.h - glue between all navbar_versekey and sword
4  *
5  * Copyright (C) 2000-2020 Xiphos Developer Team
6  *
7  * This program is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation; either version 2 of the License, or
10  * (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU Library General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program; if not, write to the Free Software
19  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
20  */
21 
22 #ifndef _NAVBAR_VERSEKEY_H_
23 #define _NAVBAR_VERSEKEY_H_
24 
25 #ifdef __cplusplus
26 extern "C" {
27 #endif
28 
29 enum {
30 	BOOK_BUTTON,
31 	CHAPTER_BUTTON,
32 	VERSE_BUTTON
33 };
34 
35 enum {
36 	NB_MAIN,
37 	NB_PARALLEL,
38 	NB_DIALOG,
39 	NB_EDITOR
40 };
41 
42 typedef struct _navbar_versekey NAVBAR_VERSEKEY;
43 struct _navbar_versekey
44 {
45 	GtkWidget *navbar;
46 	GtkWidget *button_sync;
47 	GtkWidget *button_history_back;
48 	GtkWidget *button_history_next;
49 	GtkWidget *button_history_menu;
50 
51 	GtkWidget *button_book_up;
52 	GtkWidget *button_book_down;
53 	GtkWidget *button_chapter_up;
54 	GtkWidget *button_chapter_down;
55 	GtkWidget *button_verse_up;
56 	GtkWidget *button_verse_down;
57 
58 	GtkWidget *arrow_book_up_box;
59 	GtkWidget *arrow_book_up;
60 	GtkWidget *arrow_book_down_box;
61 	GtkWidget *arrow_book_down;
62 	GtkWidget *arrow_chapter_up_box;
63 	GtkWidget *arrow_chapter_up;
64 	GtkWidget *arrow_chapter_down_box;
65 	GtkWidget *arrow_chapter_down;
66 	GtkWidget *arrow_verse_up_box;
67 	GtkWidget *arrow_verse_up;
68 	GtkWidget *arrow_verse_down_box;
69 	GtkWidget *arrow_verse_down;
70 
71 	GtkWidget *button_book_menu;
72 	GtkWidget *button_chapter_menu;
73 	GtkWidget *button_verse_menu;
74 	GtkWidget *label_book_menu;
75 	GtkWidget *label_chapter_menu;
76 	GtkWidget *label_verse_menu;
77 	GtkWidget *book_menu;
78 	GtkWidget *chapter_menu;
79 	GtkWidget *verse_menu;
80 
81 	GtkWidget *lookup_entry;
82 	//GtkTooltips *tooltips;
83 	GString *key;
84 	gchar *book;
85 	GString *module_name;
86 	gboolean dialog;
87 	//gint testaments;
88 	gint type;
89 
90 	gboolean valid_key;
91 };
92 extern NAVBAR_VERSEKEY navbar_versekey;
93 extern NAVBAR_VERSEKEY navbar_parallel;
94 
95 const char *main_get_valid_key(const char *module_name,
96 			       const char *key);
97 GtkWidget *main_versekey_drop_down_book_menu(NAVBAR_VERSEKEY
98 						 navbar,
99 					     gint nb_type,
100 					     gpointer dialog,
101 					     gpointer editor);
102 GtkWidget *main_versekey_drop_down_verse_menu(NAVBAR_VERSEKEY
103 						  navbar,
104 					      gint nb_type,
105 					      gpointer dialog,
106 					      gpointer editor);
107 GtkWidget *main_versekey_drop_down_chapter_menu(NAVBAR_VERSEKEY
108 						    navbar,
109 						gint nb_type,
110 						gpointer dialog,
111 						gpointer editor);
112 void main_navbar_versekey_spin_book(NAVBAR_VERSEKEY navbar,
113 				    int direction);
114 void main_navbar_versekey_spin_chapter(NAVBAR_VERSEKEY navbar,
115 				       int direction);
116 void main_navbar_versekey_spin_verse(NAVBAR_VERSEKEY navbar,
117 				     int direction);
118 void main_navbar_versekey_book_prev(void);
119 void main_navbar_versekey_book_next(void);
120 void main_navbar_versekey_chapter_prev(void);
121 void main_navbar_versekey_chapter_next(void);
122 void main_navbar_versekey_verse_prev(void);
123 void main_navbar_versekey_verse_next(void);
124 void main_setup_navbar_versekey(char *module_name, char *key);
125 void main_navbar_versekey_set(NAVBAR_VERSEKEY navbar,
126 			      const char *key);
127 
128 gboolean access_on_up_eventbox_button_release_event(gint element);
129 gboolean access_on_down_eventbox_button_release_event(gint
130 							  element);
131 
132 #ifdef __cplusplus
133 }
134 #endif
135 #endif /* _NAVBAR_VERSEKEY_H_ */
136