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

« back to all changes in this revision

Viewing changes to src/gnome2/gbs.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
 * gbs.c - generic book support - the gui
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
26
26
#include <gtk/gtk.h>
27
27
 
28
28
#include <gtk/gtk.h>
29
 
#ifdef GTKHTML
30
 
#include <gtkhtml/gtkhtml.h>
31
 
#include "gui/html.h"
32
 
#endif
33
29
 
34
 
#include "../xiphos_html/xiphos_html.h"
 
30
#include "xiphos_html/xiphos_html.h"
35
31
 
36
32
#include "editor/slib-editor.h"
37
33
 
50
46
#include "gui/navbar_book.h"
51
47
#include "gui/tabbed_browser.h"
52
48
#include "gui/menu_popup.h"
 
49
#include "gui/utilities.h"
53
50
 
54
51
#include "main/settings.h"
55
52
#include "main/lists.h"
66
63
 
67
64
/******************************************************************************
68
65
 * Name
69
 
 *  on_comm_button_press_event
70
 
 *
71
 
 * Synopsis
72
 
 *   #include ".h"
73
 
 *
74
 
 *  gboolean on_comm_button_press_event(GtkWidget * widget,
75
 
                            GdkEventButton * event, DIALOG_DATA * t)
76
 
 *
77
 
 * Description
78
 
 *   called when mouse button is clicked in html widget
79
 
 *
80
 
 * Return value
81
 
 *   gboolean
82
 
 */
83
 
#ifndef USE_XIPHOS_HTML
84
 
static gboolean on_book_button_press_event(GtkWidget * widget,
85
 
                                        GdkEventButton * event,
86
 
                                        gpointer data)
87
 
{
88
 
        if (!settings.havebook)
89
 
                return FALSE;
90
 
        switch (event->button) {
91
 
        case 1:
92
 
                break;
93
 
        case 2:
94
 
                break;
95
 
        case 3:
96
 
                gui_menu_popup (NULL, settings.book_mod, NULL);
97
 
                break;
98
 
        }
99
 
        return FALSE;
100
 
}
101
 
 
102
 
 
103
 
/******************************************************************************
104
 
 * Name
105
 
 *  on_button_release_event
106
 
 *
107
 
 * Synopsis
108
 
 *   #include "_bibletext.h"
109
 
 *
110
 
 *  gboolean on_button_release_event(GtkWidget * widget,
111
 
                            GdkEventButton * event, DIALOG_DATA * t)
112
 
 *
113
 
 * Description
114
 
 *   called when mouse button is clicked in html widget
115
 
 *
116
 
 * Return value
117
 
 *   gboolean
118
 
 */
119
 
 
120
 
extern gboolean in_url;
121
 
 
122
 
static gboolean on_book_button_release_event(GtkWidget * widget,
123
 
                                        GdkEventButton * event,
124
 
                                        gpointer data)
125
 
{
126
 
#ifdef GTKHTML
127
 
        gchar *key;
128
 
        const gchar *url;
129
 
#endif /*GTKHTML */
130
 
 
131
 
        if (!settings.havebook)
132
 
                return FALSE;
133
 
        settings.whichwindow = BOOK_WINDOW;
134
 
 
135
 
#ifdef GTKHTML
136
 
        switch (event->button) {
137
 
        case 1:
138
 
                if (in_url)
139
 
                        break;
140
 
                key = gui_button_press_lookup(widgets.html_book);
141
 
                if (key) {
142
 
                        if (g_strstr_len(key,strlen(key),"*")) {
143
 
                                key = g_strdelimit(key, "*", ' ');
144
 
                                key = g_strstrip(key);
145
 
                                url = g_strdup_printf(
146
 
                                        "passagestudy.jsp?action=showModInfo&value=1&module=%s",
147
 
                                        key);
148
 
                                main_url_handler(url,TRUE);
149
 
                                g_free((gchar*)url);
150
 
                                g_free(key);
151
 
                                break;
152
 
                        }
153
 
                        gchar *dict = NULL;
154
 
                        if (settings.useDefaultDict)
155
 
                                dict =
156
 
                                    g_strdup(settings.
157
 
                                             DefaultDict);
158
 
                        else
159
 
                                dict = g_strdup(settings.DictWindowModule);
160
 
 
161
 
                        main_display_dictionary(dict, key);
162
 
                        g_free(key);
163
 
                        if (dict)
164
 
                                g_free(dict);
165
 
                }
166
 
                break;
167
 
        case 2:
168
 
                if (!in_url)
169
 
                        break;
170
 
                url = gtk_html_get_url_at (GTK_HTML(widgets.html_text),
171
 
                                                                event->x,
172
 
                                                                event->y);
173
 
                if (url && (strstr(url,"sword://"))) {
174
 
                        gchar **work_buf = g_strsplit (url,"/",4);
175
 
                        gui_open_passage_in_new_tab(work_buf[3]);
176
 
                        g_strfreev(work_buf);
177
 
                }
178
 
                break;
179
 
        case 3:
180
 
                break;
181
 
        }
182
 
#endif
183
 
        return FALSE;
184
 
}
185
 
#endif /* !USE_XIPHOS_HTML */
186
 
 
187
 
/******************************************************************************
188
 
 * Name
189
66
 *  gui_set_gbs_frame_label
190
67
 *
191
68
 * Synopsis
255
132
}
256
133
 
257
134
 
258
 
#ifdef USE_XIPHOS_HTML
259
135
static void
260
136
_popupmenu_requested_cb (XiphosHtml *html,
261
137
                             gchar *uri,
263
139
{
264
140
        gui_menu_popup (html, settings.book_mod, NULL);
265
141
}
266
 
#endif
267
142
 
268
143
/******************************************************************************
269
144
 * Name
284
159
GtkWidget *gui_create_book_pane(void)
285
160
{
286
161
        GtkWidget *box;
287
 
/* #ifdef USE_XIPHOS_HTML
288
 
        GtkWidget *eventbox;
289
 
#endif */ /* USE_XIPHOS_HTML */
290
 
#ifndef USE_GTKMOZEMBED
291
162
        GtkWidget *scrolledwindow;
292
 
#endif /* !USE_GTKMOZEMBED */
293
163
        GtkWidget *navbar;
294
164
 
295
 
        box = gtk_vbox_new(FALSE, 0);
 
165
        UI_VBOX(box, FALSE, 0);
296
166
        gtk_widget_show(box);
297
167
 
298
168
        navbar = gui_navbar_book_new();
299
169
        gtk_box_pack_start(GTK_BOX(box), navbar, FALSE, FALSE, 0);
300
 
#ifndef  USE_GTKMOZEMBED
301
170
        scrolledwindow = gtk_scrolled_window_new(NULL, NULL);
302
171
        gtk_widget_show(scrolledwindow);
303
172
        gtk_box_pack_start(GTK_BOX(box), scrolledwindow, TRUE, TRUE, 0);
305
174
                                       (scrolledwindow),
306
175
                                       GTK_POLICY_AUTOMATIC,
307
176
                                       GTK_POLICY_AUTOMATIC);
308
 
/*      gtk_scrolled_window_set_shadow_type((GtkScrolledWindow *)scrolledwindow,
309
 
                                             settings.shadow_type);*/
310
 
#endif /* !USE_GTKMOZEMBED */
311
 
#ifdef USE_XIPHOS_HTML
312
 
/*      eventbox = gtk_event_box_new ();
313
 
        gtk_widget_show (eventbox);
314
 
        gtk_box_pack_start(GTK_BOX(box), eventbox, TRUE, TRUE, 0);*/
315
 
        widgets.html_book = GTK_WIDGET(XIPHOS_HTML_NEW(NULL, FALSE, BOOK_TYPE)); //embed_new(BOOK_TYPE);
 
177
 
 
178
        widgets.html_book = GTK_WIDGET(XIPHOS_HTML_NEW(NULL, FALSE, BOOK_TYPE));
316
179
        gtk_widget_show(widgets.html_book);
317
 
 #ifdef USE_WEBKIT  
318
180
        gtk_container_add(GTK_CONTAINER(scrolledwindow),
319
181
                         widgets.html_book);
320
 
 #else   
321
 
        gtk_box_pack_start(GTK_BOX(box),
322
 
                         widgets.html_book, TRUE, TRUE, 0);
323
 
 #endif /* USE_WEBKIT */
324
182
 
325
183
        g_signal_connect((gpointer)widgets.html_book,
326
184
                      "popupmenu_requested",
327
185
                      G_CALLBACK (_popupmenu_requested_cb),
328
186
                      NULL);
329
 
#else
330
 
        widgets.html_book = gtk_html_new();
331
 
        gtk_widget_show(widgets.html_book);
332
 
        gtk_container_add(GTK_CONTAINER(scrolledwindow),
333
 
                          widgets.html_book);
334
 
 
335
 
        g_signal_connect(G_OBJECT(widgets.html_book), "link_clicked",
336
 
                                   G_CALLBACK(gui_link_clicked),
337
 
                                   NULL);
338
 
        g_signal_connect(G_OBJECT(widgets.html_book), "on_url",
339
 
                                   G_CALLBACK(gui_url),
340
 
                                   GINT_TO_POINTER(BOOK_TYPE));
341
 
        g_signal_connect(G_OBJECT(widgets.html_book),
342
 
                                   "button_press_event",
343
 
                                   G_CALLBACK
344
 
                                   (on_book_button_press_event),
345
 
                                   NULL);
346
 
        g_signal_connect(G_OBJECT(widgets.html_book),
347
 
                                   "button_release_event",
348
 
                                   G_CALLBACK
349
 
                                   (on_book_button_release_event),
350
 
                                   NULL);
351
 
        g_signal_connect(G_OBJECT(widgets.html_book),
352
 
                           "url_requested",
353
 
                           G_CALLBACK(url_requested), NULL);
354
 
#endif
355
187
        return box;
356
188
}
357
189
 
358
 
 
359
 
 
360
190
//******  end of file  ******/