#include "webbrowser.h"
static WebKitWebView *view;
+static GtkLabel *w_status;
+
+static gboolean new_window_requested_cbk(WebKitWebView *view,
+ WebKitWebFrame *frame,
+ WebKitNetworkRequest *rq,
+ WebKitWebNavigationAction *action,
+ WebKitWebPolicyDecision *decision)
+{
+ webkit_web_view_load_uri(view, webkit_network_request_get_uri(rq));
+
+ webkit_web_policy_decision_ignore(decision);
+
+ return TRUE;
+}
+
+static void hovering_over_link_cbk(WebKitWebView *web_view,
+ gchar *title,
+ gchar *uri,
+ gpointer user_data)
+{
+ if (uri)
+ gtk_label_set_label(w_status, uri);
+ else
+ gtk_label_set_label(w_status, "");
+}
GtkWidget *web_get_widget()
{
- if (!view)
+ if (!view) {
view = WEBKIT_WEB_VIEW(webkit_web_view_new());
+ g_signal_connect(view,
+ "new-window-policy-decision-requested",
+ G_CALLBACK(new_window_requested_cbk),
+ view);
+ g_signal_connect(view,
+ "hovering-over-link",
+ G_CALLBACK(hovering_over_link_cbk),
+ NULL);
+ }
return GTK_WIDGET(view);
}
{
webkit_web_view_load_string(view, str, NULL, "UTF-8", "file://");
}
+
+void webbrowser_init(GtkLabel *status)
+{
+ w_status = status;
+}