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 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(m_frame); } +FrameGdkSignals* FrameLoaderClientGdk::framesignals() +{ + return static_cast(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;