WebCore:
authormjs <mjs@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 9 Mar 2006 10:57:48 +0000 (10:57 +0000)
committermjs <mjs@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 9 Mar 2006 10:57:48 +0000 (10:57 +0000)
        Reviewed by Eric.

        - make link clicks work by propagating them up to a client

        * Viewer/ImageView.cpp:
        * bridge/win/FrameWin.cpp:
        * bridge/win/FrameWin.h:
        * platform/win/TemporaryLinkStubs.cpp:
        (FrameWin::incomingReferrer):

WebKitTools:

        Reviewed by Eric.

        - make link clicks work by handling link click requests
        from WebCore

        * Spinneret/Spinneret/Spinneret.cpp:
        (updateLocationBar):
        * Spinneret/Spinneret/Spinneret.h:
        * Spinneret/Spinneret/WebFrame.cpp:
        (WebKit::WebFrame::WebFrame):
        (WebKit::WebFrame::openURL):
        (WebKit::WebFrame::loadURL):
        * Spinneret/Spinneret/WebFrame.h:

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

WebCore/ChangeLog
WebCore/WebCore.vcproj/Image Viewer/ImageView.cpp
WebCore/bridge/win/FrameWin.cpp
WebCore/bridge/win/FrameWin.h
WebCore/platform/win/TemporaryLinkStubs.cpp
WebKitTools/ChangeLog
WebKitTools/Spinneret/Spinneret/Spinneret.cpp
WebKitTools/Spinneret/Spinneret/Spinneret.h
WebKitTools/Spinneret/Spinneret/WebFrame.cpp
WebKitTools/Spinneret/Spinneret/WebFrame.h

index 78d19b7554334f4b2b44e4ca811e3cd07017c27d..019406eebf532a71b40021258ec3275c399b2f99 100644 (file)
@@ -1,3 +1,15 @@
+2006-03-09  Maciej Stachowiak  <mjs@apple.com>
+
+        Reviewed by Eric.
+
+        - make link clicks work by propagating them up to a client
+
+        * Viewer/ImageView.cpp:
+        * bridge/win/FrameWin.cpp:
+        * bridge/win/FrameWin.h:
+        * platform/win/TemporaryLinkStubs.cpp:
+        (FrameWin::incomingReferrer):
+
 2006-03-09  Eric Seidel  <eseidel@apple.com>
 
         Reviewed by mjs.
index ebc54c804bc8456d525852d50507ecf173c89ae2..d3edcd9e55e4813a12916025a4962c14941d5c0f 100755 (executable)
@@ -36,7 +36,7 @@ END_MESSAGE_MAP()
 ImageView::ImageView()
 {
     // Needed to make sure everything is properly initialized;
-    static FrameWin *dummyFrame = new FrameWin(0,0);
+    static FrameWin *dummyFrame = new FrameWin(0, 0, 0);
 }
 
 ImageView::~ImageView()
index 9dee0e9bc047152f3ac8686c43f182cdad308ea2..1799a614468968ff49b4690ecd3aa79300f93a1c 100644 (file)
 
 namespace WebCore {
 
-FrameWin::FrameWin(Page* page, RenderPart* renderPart)
+FrameWin::FrameWin(Page* page, RenderPart* renderPart, FrameWinClient* client)
     : Frame(page, renderPart)
 {
     d->m_extension = new BrowserExtensionWin(this);
     KHTMLSettings* settings = new KHTMLSettings();
     settings->setAutoLoadImages(true);
     setSettings(settings);
+    m_client = client;
 }
 
 FrameWin::~FrameWin()
 {
 }
 
+void FrameWin::urlSelected(const KURL& url, const URLArgs&)
+{
+    if (m_client)
+        m_client->openURL(url.url());
+}
+
 QString FrameWin::userAgent() const
 {
     return "Mozilla/5.0 (PC; U; Intel; Windows; en) AppleWebKit/420+ (KHTML, like Gecko)";
index 824b178868e76bb4463dcf2fc5e678b550ed4d18..d1fbdca7ac754c15c22f6417de51da8abedf4f49 100644 (file)
 
 namespace WebCore {
 
+class FrameWinClient
+{
+public:
+    virtual void openURL(const QString&) = 0;
+};
+
 class FrameWin : public Frame
 {
 public:
-    FrameWin(Page*, RenderPart*);
+    FrameWin(Page*, RenderPart*, FrameWinClient*);
     ~FrameWin();
 
     virtual bool openURL(const KURL&);
     virtual void openURLRequest(const KURL&, const URLArgs&);
     virtual void submitForm(const KURL&, const URLArgs&);
+    virtual void urlSelected(const KURL&, const URLArgs&);
 
     virtual void setTitle(const String&);
 
-    virtual void urlSelected(const KURL& url, const URLArgs& args);
-
     virtual ObjectContentType objectContentType(const KURL& url, const QString& mimeType);
     virtual Plugin* createPlugin(const KURL&, const QStringList& paramNames, const QStringList& paramValues, const QString& mimeType);
     virtual Frame* createFrame(const KURL&, const QString& name, RenderPart* renderer, const String& referrer);
@@ -118,6 +123,7 @@ protected:
     virtual String generateFrameName();
 private:
     virtual bool passMouseDownEventToWidget(Widget*);
+    FrameWinClient* m_client;
 };
 
 inline FrameWin* Win(Frame* frame) { return static_cast<FrameWin*>(frame); }
index 4f49087cc7eb1ff9ee2e279fe3dd8ff80be8edd5..65babf679103c19dc25ed51350e0844d38db2c14 100644 (file)
@@ -258,7 +258,6 @@ Frame* FrameWin::createFrame(KURL const&,QString const&,RenderPart*,String const
 void FrameWin::saveDocumentState(void) { }
 void FrameWin::clearUndoRedoOperations(void) { }
 QString FrameWin::incomingReferrer() const { return QString(); }
-void FrameWin::urlSelected(KURL const&,struct WebCore::URLArgs const&) { }
 
 BrowserExtensionWin::BrowserExtensionWin(WebCore::Frame*) { }
 void BrowserExtensionWin::setTypedIconURL(KURL const&,QString const&) { }
index 890fe418e43f6f7dabac1d513383754d2a69244d..31159bd1da3de29c931c5036d39813e64abae4b1 100644 (file)
@@ -1,3 +1,19 @@
+2006-03-09  Maciej Stachowiak  <mjs@apple.com>
+
+        Reviewed by Eric.
+
+        - make link clicks work by handling link click requests
+        from WebCore
+
+        * Spinneret/Spinneret/Spinneret.cpp:
+        (updateLocationBar):
+        * Spinneret/Spinneret/Spinneret.h:
+        * Spinneret/Spinneret/WebFrame.cpp:
+        (WebKit::WebFrame::WebFrame):
+        (WebKit::WebFrame::openURL):
+        (WebKit::WebFrame::loadURL):
+        * Spinneret/Spinneret/WebFrame.h:
+
 2006-03-08  Eric Seidel  <eseidel@apple.com>
 
         Reviewed by mjs.
index 0d622d0b56467bae49abd5508b8c571a9d15bd96..590952504d44325abb4820d4426076bdaa638417 100755 (executable)
@@ -51,6 +51,11 @@ LRESULT CALLBACK    WndProc(HWND, UINT, WPARAM, LPARAM);
 INT_PTR CALLBACK    About(HWND, UINT, WPARAM, LPARAM);
 LRESULT CALLBACK    MyEditProc(HWND, UINT, WPARAM, LPARAM);
 
+void updateLocationBar(const char* URL)
+{
+    SendMessageA(hURLBarWnd, (UINT)WM_SETTEXT, 0, (LPARAM)URL);
+}
+
 static void resizeSubViews()
 {
     RECT rcClient;
index 8a494d9a63460eaa30366bdd12e2681613286930..090ad4a06a7f3d8428b4806af988a2af2cfa2e62 100755 (executable)
@@ -26,3 +26,5 @@
 #pragma once
 
 #include "resource.h"
+
+void updateLocationBar(const char* URL);
index fe9a3aa3c7117354c2275ea241ccb6e5eeaaff94..635a8857be35f5c22fe03f4752443151c4ace722 100755 (executable)
@@ -28,6 +28,7 @@
 
 #include "WebFrame.h"
 #include "WebView.h"
+#include "Spinneret.h"
 
 #include "FrameView.h"
 #include "FrameWin.h"
@@ -61,7 +62,7 @@ WebFrame::WebFrame(char* name, WebView* view)
 {
     d->webView = view;
     Page *page = new Page();
-    d->frame = new FrameWin(page, 0);
+    d->frame = new FrameWin(page, 0, this);
     d->frameView = new FrameView(d->frame);
     d->frame->setView(d->frameView);
     d->frameView->setWindowHandle(view->windowHandle());
@@ -101,7 +102,13 @@ void WebFrame::loadHTMLString(char *html, char *baseURL)
     d->frame->end();
 }
 
-void WebFrame::loadURL(char* URL)
+void WebFrame::openURL(const QString& str)
+{
+   updateLocationBar(str.ascii());
+   loadURL(str.ascii());
+}
+
+void WebFrame::loadURL(const char* URL)
 {
     d->frame->didOpenURL(URL);
     d->frame->begin(URL);
index 4d0e7edb51fb66e6fe864e6ad3f6abbef9348e2e..161128b88168edc58e122077c9e6d7f0d1243d5a 100755 (executable)
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
  */
 
+#include "config.h"
+#include "QString.h"
 #include "TransferJobClient.h"
+#include "FrameWin.h"
 
 namespace WebCore {
     class Frame;
@@ -35,14 +38,16 @@ namespace WebKit {
 
     class WebView;
 
-    class WebFrame : public WebCore::TransferJobClient {
+    class WebFrame : public WebCore::TransferJobClient, public WebCore::FrameWinClient {
     public:
     WebFrame(char* name, WebView*);
 
     void loadFilePath(char*);
     void loadHTMLString(char* html, char* baseURL = 0);
 
-    void loadURL(char*);
+    virtual void openURL(const QString&);
+
+    void loadURL(const char*);
     
     virtual void receivedData(WebCore::TransferJob*, const char*, int);
     virtual void receivedAllData(WebCore::TransferJob*, WebCore::PlatformData);