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
+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.
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()
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)";
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);
virtual String generateFrameName();
private:
virtual bool passMouseDownEventToWidget(Widget*);
+ FrameWinClient* m_client;
};
inline FrameWin* Win(Frame* frame) { return static_cast<FrameWin*>(frame); }
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&) { }
+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.
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;
#pragma once
#include "resource.h"
+
+void updateLocationBar(const char* URL);
#include "WebFrame.h"
#include "WebView.h"
+#include "Spinneret.h"
#include "FrameView.h"
#include "FrameWin.h"
{
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());
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);
* 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;
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);