added status bar containing the target url
authorJean-Philippe Orsini <jeanfi@gmail.com>
Wed, 23 Apr 2014 08:46:01 +0000 (10:46 +0200)
committerJean-Philippe Orsini <jeanfi@gmail.com>
Wed, 23 Apr 2014 08:46:01 +0000 (10:46 +0200)
src/glade/prss.glade
src/main.c
src/webbrowser.c
src/webbrowser.h

index a4d03a5..692364e 100644 (file)
                       </packing>
                     </child>
                     <child>
-                      <object class="GtkScrolledWindow" id="webkit_window">
+                      <object class="GtkBox" id="box4">
                         <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <property name="shadow_type">in</property>
+                        <property name="can_focus">False</property>
+                        <property name="orientation">vertical</property>
                         <child>
-                          <placeholder/>
+                          <object class="GtkScrolledWindow" id="webkit_window">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="shadow_type">in</property>
+                            <child>
+                              <placeholder/>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="expand">True</property>
+                            <property name="fill">True</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="browser_status">
+                            <property name="visible">True</property>
+                            <property name="sensitive">False</property>
+                            <property name="can_focus">False</property>
+                            <property name="halign">start</property>
+                            <property name="valign">end</property>
+                            <property name="margin_left">4</property>
+                            <property name="margin_top">4</property>
+                            <property name="single_line_mode">True</property>
+                            <property name="angle">0.040000000000000001</property>
+                            <property name="lines">1</property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">True</property>
+                            <property name="pack_type">end</property>
+                            <property name="position">1</property>
+                          </packing>
                         </child>
                       </object>
                       <packing>
                         <property name="expand">True</property>
                         <property name="fill">True</property>
-                        <property name="position">1</property>
+                        <property name="position">3</property>
                       </packing>
                     </child>
                   </object>
index e7d17d0..d9182d3 100644 (file)
@@ -604,6 +604,9 @@ int main(int argc, char **argv)
 
        panh = GTK_WIDGET(gtk_builder_get_object(builder, "webkit_window"));
 
+       webbrowser_init(GTK_LABEL(gtk_builder_get_object(builder,
+                                                        "browser_status")));
+
        gtk_container_add(GTK_CONTAINER(panh), web_get_widget());
 
        g_object_unref(G_OBJECT(builder));
index 9204f57..ebbfce1 100644 (file)
@@ -22,6 +22,7 @@
 #include "webbrowser.h"
 
 static WebKitWebView *view;
+static GtkLabel *w_status;
 
 static gboolean new_window_requested_cbk(WebKitWebView *view,
                                         WebKitWebFrame *frame,
@@ -36,6 +37,17 @@ 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)
+{
+       if (uri)
+               gtk_label_set_label(w_status, uri);
+       else
+               gtk_label_set_label(w_status, "");
+}
+
 GtkWidget *web_get_widget()
 {
        if (!view) {
@@ -44,7 +56,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 +69,8 @@ void web_load(const char *str)
 {
        webkit_web_view_load_string(view, str, NULL, "UTF-8", "file://");
 }
+
+void webbrowser_init(GtkLabel *status)
+{
+       w_status = status;
+}
index 5bf0b83..ae3e21d 100644 (file)
  * 02110-1301 USA
  */
 #ifndef _PRSS_WEBBROWSER_H_
-#define _PHTTP_H_
+#define _PRSS_WEBBROWSER_H_
+
+#include <gtk/gtk.h>
 
 GtkWidget *web_get_widget();
 void web_load(const char *);
-
+void webbrowser_init(GtkLabel *);
 #endif