rendered paste bodyIndex: 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: WebCore/platform/gdk/FrameGdkSignals.cpp
===================================================================
--- WebCore/platform/gdk/FrameGdkSignals.cpp (revision 0)
+++ WebCore/platform/gdk/FrameGdkSignals.cpp (revision 0)
@@ -0,0 +1,113 @@
+/*
+ * Copyright (C) 2006 Apple Computer, Inc. All rights reserved.
+ * Copyright (C) 2007 Nazar Kulyk schamane@myeburg.net
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "FrameGdkSignals.h"
+
+namespace WebCore {
+
+void FrameGdkSignalsClassInit(FrameGdkSignalsClass *klass)
+{
+ GObjectClass *object_class;
+
+ object_class = G_OBJECT_CLASS(klass);
+ /* creates signals */
+ frameGdkSignals[FRAMEGDK_SIGNAL_START] =
+ g_signal_new(
+ "load-started",
+ G_TYPE_FROM_CLASS(klass),
+ G_SIGNAL_RUN_FIRST,
+ 0,
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE,
+ 0);
+ frameGdkSignals[FRAMEGDK_SIGNAL_PROGRESS] =
+ g_signal_new(
+ "load-changed",
+ G_TYPE_FROM_CLASS(klass),
+ G_SIGNAL_RUN_FIRST,
+ 0,
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE,
+ 0);
+ frameGdkSignals[FRAMEGDK_SIGNAL_FINISH] =
+ g_signal_new(
+ "load-finished",
+ G_TYPE_FROM_CLASS(klass),
+ G_SIGNAL_RUN_FIRST,
+ 0,
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE,
+ 0);
+}
+
+GType FrameGdkSignalsGetType()
+{
+static GType frameGdkSignalsType=0;
+
+ if (!frameGdkSignalsType) {
+ static const GTypeInfo frameGdkSignalsInfo =
+ {
+ sizeof(FrameGdkSignalsClass),
+ NULL,
+ NULL,
+ (GClassInitFunc)FrameGdkSignalsClassInit,
+ NULL,
+ NULL,
+ sizeof(FrameGdkSignals),
+ 0,
+ NULL,
+ };
+
+ frameGdkSignalsType = g_type_register_static(
+ G_TYPE_OBJECT,
+ "FrameGdkSignals",
+ &frameGdkSignalsInfo,
+ //FIXME: should probably be G_TYPE_FLAG_ABSTRACT
+ (GTypeFlags)0
+ );
+ }
+
+ return frameGdkSignalsType;
+}
+
+FrameGdkSignals *FrameGdkSignals_new()
+{
+ FrameGdkSignals *frameGdkSignals;
+
+ frameGdkSignals = G_FRAMEGDK_SIGNALS(g_object_new(G_TYPE_FRAMEGDK_SIGNALS, NULL));
+
+ return frameGdkSignals;
+}
+
+}
+
Index: WebCore/platform/gdk/FrameGdkSignals.h
===================================================================
--- WebCore/platform/gdk/FrameGdkSignals.h (revision 0)
+++ WebCore/platform/gdk/FrameGdkSignals.h (revision 0)
@@ -0,0 +1,64 @@
+/*
+ * Copyright (C) 2006 Apple Computer, Inc. All rights reserved.
+ * Copyright (C) 2007 Nazar Kulyk schamane@myeburg.net
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef FramegdkSignals_h
+#define FramegdkSignals_h
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+#define G_TYPE_FRAMEGDK_SIGNALS FrameGdkSignalsGetType()
+#define G_FRAMEGDK_SIGNALS(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), G_TYPE_FRAMEGDK_SIGNALS, FrameGdkSignals)
+
+
+typedef struct _FrameGdkSignals
+{
+ GObject parent_instance;
+} FrameGdkSignals;
+
+typedef struct _FrameGdkSignalsClass
+{
+ GObjectClass parent_class;
+ //void (* gtk_sig_object_clicked) (FrameGdkSignals * frameGdkSignals);
+} FrameGdkSignalsClass;
+
+namespace WebCore {
+
+ enum {
+ FRAMEGDK_SIGNAL_START,
+ FRAMEGDK_SIGNAL_PROGRESS,
+ FRAMEGDK_SIGNAL_FINISH,
+ FRAMEGDK_LAST_SIGNAL
+ };
+
+ static gint frameGdkSignals[FRAMEGDK_LAST_SIGNAL] = { 0 };
+
+ FrameGdkSignals *FrameGdkSignals_new();
+}
+
+#endif // FramegdkSignals_h
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;