All pastes #465654 Raw Edit

FrameGdkSignals-0.1.patch

public text v1 · immutable
#465654 ·published 2007-04-30 14:05 UTC
rendered paste body
Index: WebCore/Projects/gdk/webcore-gdk.bkl
===================================================================
--- WebCore/Projects/gdk/webcore-gdk.bkl	(revision 21182)
+++ WebCore/Projects/gdk/webcore-gdk.bkl	(working copy)
@@ -60,6 +60,7 @@
             platform/gdk/FontGdk.cpp
             platform/gdk/FontPlatformDataGdk.cpp
             platform/gdk/FrameGdk.cpp
+            platform/gdk/FrameGdkSignals.cpp
             platform/gdk/GlyphPageTreeNodeGdk.cpp
             platform/gdk/KeyEventGdk.cpp
             platform/gdk/MimeTypeRegistryGdk.cpp
Index: WebCore/loader/gdk/FrameLoaderClientGdk.cpp
===================================================================
--- WebCore/loader/gdk/FrameLoaderClientGdk.cpp	(revision 21182)
+++ WebCore/loader/gdk/FrameLoaderClientGdk.cpp	(working copy)
@@ -36,6 +36,7 @@
 #include "NotImplementedGdk.h"
 #include "PlatformString.h"
 #include "ResourceRequest.h"
+#include "FrameGdkSignals.h"
 #include <stdio.h>
 
 namespace WebCore {
@@ -44,6 +45,7 @@ FrameLoaderClientGdk::FrameLoaderClientG
     : m_frame(0)
     , m_firstData(false)
 {
+    m_framesignals = FrameGdkSignals_new();
 }
 
 Frame* FrameLoaderClientGdk::frame()
@@ -51,6 +53,11 @@ Frame* FrameLoaderClientGdk::frame()
     return static_cast<Frame*>(m_frame);
 }
 
+FrameGdkSignals* FrameLoaderClientGdk::framesignals()
+{ 
+    return static_cast<FrameGdkSignals*>(m_framesignals);
+}
+
 String FrameLoaderClientGdk::userAgent(const KURL&)
 {
     return "Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/420+ (KHTML, like Gecko)";
@@ -103,17 +110,26 @@ void FrameLoaderClientGdk::assignIdentif
 
 void FrameLoaderClientGdk::postProgressStartedNotification()
 {
-    // no progress notification for now
+    if(!m_frame || !m_frame->page() || !m_framesignals)
+        return;
+
+    g_signal_emit_by_name (framesignals(), "load-started");
 }
 
 void FrameLoaderClientGdk::postProgressEstimateChangedNotification()
 {
-    // no progress notification for now    
+    if(!m_frame || !m_frame->page())
+        return;
+
+    g_signal_emit_by_name (framesignals(), "load-changed"); 
 }
 
 void FrameLoaderClientGdk::postProgressFinishedNotification()
 {
-    // no progress notification for now
+    if(!m_frame || !m_frame->page())
+        return;
+
+    g_signal_emit_by_name (framesignals(), "load-finished");
 }
 
 void FrameLoaderClientGdk::frameLoaderDestroyed()
Index: WebCore/loader/gdk/FrameLoaderClientGdk.h
===================================================================
--- WebCore/loader/gdk/FrameLoaderClientGdk.h	(revision 21182)
+++ WebCore/loader/gdk/FrameLoaderClientGdk.h	(working copy)
@@ -32,6 +32,7 @@
 #include "FrameLoaderClient.h"
 
 #include "ResourceResponse.h"
+#include "FrameGdkSignals.h"
 
 namespace WebCore {
 
@@ -40,11 +41,13 @@ namespace WebCore {
     class FrameLoaderClientGdk : public FrameLoaderClient {
     public:
         FrameLoaderClientGdk();
-        virtual ~FrameLoaderClientGdk() { }
+        virtual ~FrameLoaderClientGdk() { g_object_unref(m_framesignals);}
         virtual void frameLoaderDestroyed();
 
         void setFrame(FrameGdk *frame) { m_frame = frame; }
         Frame* frame();
+        FrameGdkSignals* framesignals();
+        
 
         virtual bool hasWebView() const;
         virtual bool hasFrameView() const;
@@ -179,6 +182,7 @@ namespace WebCore {
     private:
         FrameGdk *m_frame;
         ResourceResponse m_response;
+        FrameGdkSignals *m_framesignals;
         bool m_firstData;
     };
 
Index: WebKitTools/GdkLauncher/main.cpp
===================================================================
--- WebKitTools/GdkLauncher/main.cpp	(revision 21182)
+++ WebKitTools/GdkLauncher/main.cpp	(working copy)
@@ -12,6 +12,8 @@
 #include "Page.h"
 #include "PlatformString.h"
 #include "ResourceHandleManager.h"
+#include "CString.h"
+#include "FrameGdkSignals.h"
 
 #if SVG_SUPPORT
 #include "SVGNames.h"
@@ -115,6 +117,21 @@ static void menuMainQuitCallback(gpointe
     gtk_main_quit();
 }
 
+static void loadFinishedCallback(gpointer data)
+{
+    printf("****************** DONE !!!! ************\n");
+}
+
+static void loadStartedCallback(gpointer data)
+{
+    printf("****************** START !!!! ************\n");
+}
+
+static void loadChangedCallback(gpointer data)
+{
+    gtk_entry_set_text(GTK_ENTRY(gURLBarEntry), gFrame->loader()->url().url().latin1());
+}
+
 int main(int argc, char* argv[]) 
 {
     gtk_init(&argc, &argv);
@@ -207,7 +224,12 @@ int main(int argc, char* argv[]) 
     gFrame->setView(frameView);
     frameView->ScrollView::setDrawable(frameWindow->window);
 
+    g_signal_connect(G_OBJECT(frameLoaderClient->framesignals()), "load-started", G_CALLBACK(loadStartedCallback), NULL);
+    g_signal_connect(G_OBJECT(frameLoaderClient->framesignals()), "load-finished", G_CALLBACK(loadFinishedCallback), NULL);
+    g_signal_connect(G_OBJECT(frameLoaderClient->framesignals()), "load-changed", G_CALLBACK(loadChangedCallback), NULL);
+
     gFrame->loader()->load(ResourceRequest(url));
+    
     gtk_main();
 #if 0 // FIXME: this crashes at the moment. needs to provide DragClient
     delete page;