use status bar widget
[prss.git] / src / webbrowser.c
index 9204f57..4f77fed 100644 (file)
@@ -22,6 +22,7 @@
 #include "webbrowser.h"
 
 static WebKitWebView *view;
+static GtkStatusbar *w_status;
 
 static gboolean new_window_requested_cbk(WebKitWebView *view,
                                         WebKitWebFrame *frame,
@@ -36,6 +37,21 @@ static gboolean new_window_requested_cbk(WebKitWebView *view,
        return TRUE;
 }
 
+static void hovering_over_link_cbk(WebKitWebView *web_view,
+                                  gchar *title,
+                                  gchar *uri,
+                                  gpointer user_data)
+{
+       guint id;
+
+       id = gtk_statusbar_get_context_id(w_status, "info");
+
+       if (uri)
+               gtk_statusbar_push(w_status, id, uri);
+       else
+               gtk_statusbar_pop(w_status, id);
+}
+
 GtkWidget *web_get_widget()
 {
        if (!view) {
@@ -44,7 +60,10 @@ GtkWidget *web_get_widget()
                                 "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);
@@ -54,3 +73,8 @@ void web_load(const char *str)
 {
        webkit_web_view_load_string(view, str, NULL, "UTF-8", "file://");
 }
+
+void webbrowser_init(GtkStatusbar *status)
+{
+       w_status = status;
+}