2007-10-07 Holger Hans Peter Freyther <zecke@selfish.org>
authorzecke <zecke@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 7 Oct 2007 08:07:23 +0000 (08:07 +0000)
committerzecke <zecke@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 7 Oct 2007 08:07:23 +0000 (08:07 +0000)
        Rubber stamped by Eric.

        Connect to the "hovering-over-link" signal emitted by WebKitPage and
        show the current link inside the statusbar.
        This shows how to make use of this signal and allows to easily test
        http://bugs.webkit.org/show_bug.cgi?id=15299.

        * GtkLauncher/main.cpp:
        (hoveringOverLink):
        (main):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@26095 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebKitTools/ChangeLog
WebKitTools/GtkLauncher/main.cpp

index d68231d86a141596504fefc2e89439c9fcebfd29..1d8b07bf3a35236d0844738772ae2b9d24c46616 100644 (file)
@@ -1,3 +1,16 @@
+2007-10-07  Holger Hans Peter Freyther  <zecke@selfish.org>
+
+        Rubber stamped by Eric.
+
+        Connect to the "hovering-over-link" signal emitted by WebKitPage and
+        show the current link inside the statusbar.
+        This shows how to make use of this signal and allows to easily test
+        http://bugs.webkit.org/show_bug.cgi?id=15299.
+
+        * GtkLauncher/main.cpp:
+        (hoveringOverLink):
+        (main):
+
 2007-10-05  Lars Knoll  <lars@trolltech.com>
 
         add proper error messages to the FrameLoaderClient.
index a4e9ca813ea8c0fa0b211a694335b4ea48bc73ab..e7b8f42431b1d0e38b1b24a6de69741460827238 100644 (file)
@@ -7,9 +7,11 @@
 
 static GtkWidget* gURLBarEntry;
 static GtkWidget* gTopLevelWindow;
+static GtkStatusbar* gStatusbar;
 static WebKitPage* gPage;
 static gchar* gTitle;
 static gint gProgress;
+static guint gStatusbarContextId;
 
 static bool stringIsEqual(const char* str1, const char* str2)
 {
@@ -57,6 +59,14 @@ static void updateWindowTitle()
     g_free(title);
 }
 
+static void hoveringOverLink(WebKitPage*, const gchar*, const gchar* link, void*)
+{
+    // underflow is allowed
+    gtk_statusbar_pop(gStatusbar, gStatusbarContextId);
+    if (link)
+        gtk_statusbar_push(gStatusbar, gStatusbarContextId, link);
+}
+
 static void titleChanged(WebKitPage*, const gchar* title, const gchar* url, WebKitPage*)
 {
     gtk_entry_set_text(GTK_ENTRY(gURLBarEntry), url);
@@ -172,9 +182,14 @@ int main(int argc, char* argv[])
     gPage = WEBKIT_PAGE(webkit_page_new());
     gtk_container_add(GTK_CONTAINER(scrolledWindow), GTK_WIDGET(gPage));
     gtk_box_pack_start(GTK_BOX(vbox), scrolledWindow, TRUE, TRUE, 0);
+
+    gStatusbar = GTK_STATUSBAR(gtk_statusbar_new());
+    gStatusbarContextId = gtk_statusbar_get_context_id(gStatusbar, "Link Hover");
+    gtk_box_pack_start(GTK_BOX(vbox), GTK_WIDGET(gStatusbar), FALSE, FALSE, 0); 
     
     g_signal_connect(gPage, "title-changed", G_CALLBACK(titleChanged), gPage);
     g_signal_connect(gPage, "load-progress-changed", G_CALLBACK(progressChanged), gPage);
+    g_signal_connect(gPage, "hovering-over-link", G_CALLBACK(hoveringOverLink), gPage);
     webkit_page_open(gPage, url);
 
     gtk_widget_show_all(gTopLevelWindow);