Reviewed by Maciej.
Update Gdk\Linux build for recent changes, based on Qt code
* platform/gdk/FrameGdk.cpp:
(WebCore::FrameGdkClientDefault::FrameGdkClientDefault):
(WebCore::FrameGdkClientDefault::~FrameGdkClientDefault):
(WebCore::FrameGdkClientDefault::setFrame):
(WebCore::FrameGdkClientDefault::openURL):
(WebCore::FrameGdkClientDefault::submitForm):
(WebCore::FrameGdkClientDefault::receivedResponse):
(WebCore::FrameGdkClientDefault::receivedData):
(WebCore::FrameGdkClientDefault::receivedAllData):
(WebCore::FrameGdk::FrameGdk):
(WebCore::FrameGdk::openURL):
(WebCore::FrameGdk::submitForm):
(WebCore::FrameGdk::urlSelected):
* platform/gdk/FrameGdk.h:
* platform/gdk/TemporaryLinkStubs.cpp:
(FrameGdk::createJavaAppletWidget):
(FileChooser::create):
2006-10-12 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
Reviewed by Maciej.
Also regenerate GdkLauncher makefiles, since not doing that might
lead to mismatch between WebCore and GdkLauncher compiler settings.
* Scripts/regenerate-makefiles:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@17003
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
+2006-10-12 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
+
+ Reviewed by Maciej.
+
+ Update Gdk\Linux build for recent changes, based on Qt code
+
+ * platform/gdk/FrameGdk.cpp:
+ (WebCore::FrameGdkClientDefault::FrameGdkClientDefault):
+ (WebCore::FrameGdkClientDefault::~FrameGdkClientDefault):
+ (WebCore::FrameGdkClientDefault::setFrame):
+ (WebCore::FrameGdkClientDefault::openURL):
+ (WebCore::FrameGdkClientDefault::submitForm):
+ (WebCore::FrameGdkClientDefault::receivedResponse):
+ (WebCore::FrameGdkClientDefault::receivedData):
+ (WebCore::FrameGdkClientDefault::receivedAllData):
+ (WebCore::FrameGdk::FrameGdk):
+ (WebCore::FrameGdk::openURL):
+ (WebCore::FrameGdk::submitForm):
+ (WebCore::FrameGdk::urlSelected):
+ * platform/gdk/FrameGdk.h:
+ * platform/gdk/TemporaryLinkStubs.cpp:
+ (FrameGdk::createJavaAppletWidget):
+ (FileChooser::create):
+
2006-10-12 Dave Hyatt <hyatt@apple.com>
Patch to add more clipping retrieval functionality for widgets.
#include "GraphicsContext.h"
#include "HTMLDocument.h"
#include "ResourceLoader.h"
+#include "ResourceLoaderInternal.h"
#include "PlatformMouseEvent.h"
#include "PlatformKeyboardEvent.h"
#include "PlatformWheelEvent.h"
namespace WebCore {
+FrameGdkClientDefault::FrameGdkClientDefault()
+ : ResourceLoaderClient()
+ , m_frame(0)
+ , m_beginCalled(false)
+{
+}
+
+FrameGdkClientDefault::~FrameGdkClientDefault()
+{
+}
+
+void FrameGdkClientDefault::setFrame(const FrameGdk* frame)
+{
+ m_frame = const_cast<FrameGdk*>(frame);
+}
+
+void FrameGdkClientDefault::openURL(const KURL& url)
+{
+ m_frame->didOpenURL(url);
+ m_beginCalled = false;
+
+ RefPtr<ResourceLoader> loader = ResourceLoader::create(this, "GET", url);
+ loader->start(0);
+}
+
+void FrameGdkClientDefault::submitForm(const String& method, const KURL& url, const FormData* postData)
+{
+ m_beginCalled = false;
+
+ RefPtr<ResourceLoader> loader = ResourceLoader::create(this, method, url, *postData);
+ loader->start(0);
+}
+
+void FrameGdkClientDefault::receivedResponse(ResourceLoader*, PlatformResponse)
+{
+ // no-op
+}
+
+void FrameGdkClientDefault::receivedData(ResourceLoader* job, const char* data, int length)
+{
+ if (!m_beginCalled) {
+ m_beginCalled = true;
+
+#if 0 // FIXME: This is from Qt version, need to be removed or Gdk equivalent written
+ // Assign correct mimetype _before_ calling begin()!
+ ResourceLoaderInternal* d = job->getInternal();
+ if (d) {
+ ResourceRequest request(m_frame->resourceRequest());
+ request.m_responseMIMEType = d->m_mimetype;
+ m_frame->setResourceRequest(request);
+ }
+#endif
+ m_frame->begin(job->url());
+ }
+
+ m_frame->write(data, length);
+}
+
+void FrameGdkClientDefault::receivedAllData(ResourceLoader* job, PlatformData data)
+{
+ m_frame->end();
+ m_beginCalled = false;
+}
+
static void doScroll(const RenderObject* r, float deltaX, float deltaY)
{
// FIXME: The scrolling done here should be done in the default handlers
IntRect geom = frameGeometry();
view->resize(geom.width(), geom.height());
view->ScrollView::setDrawable(gdkdrawable);
+
+ m_client = new FrameGdkClientDefault();
+ m_client->setFrame(this);
}
FrameGdk::FrameGdk(Page* page, Element* element)
Settings* settings = new Settings;
settings->setAutoLoadImages(true);
setSettings(settings);
+ m_client = new FrameGdkClientDefault();
+ m_client->setFrame(this);
}
FrameGdk::~FrameGdk()
bool FrameGdk::openURL(const KURL& url)
{
- didOpenURL(url);
- begin(url);
- RefPtr<ResourceLoader> loader = ResourceLoader::create(this, "GET", url);
- loader->start(document()->docLoader());
+ if (!m_client)
+ return false;
+
+ m_client->openURL(url);
return true;
}
-void FrameGdk::submitForm(const ResourceRequest&)
+void FrameGdk::submitForm(const ResourceRequest& request)
{
+ // FIXME: this is a hack inherited from FrameMac, and should be pushed into Frame
+ if (d->m_submittedFormURL == request.url())
+ return;
+
+ d->m_submittedFormURL = request.url();
+
+ if (m_client)
+ m_client->submitForm(request.doPost() ? "POST" : "GET", request.url(), &request.postData);
+ clearRecordedFormValues();
}
void FrameGdk::urlSelected(const ResourceRequest& request)
{
- //need to potentially updateLocationBar(str.ascii()); or notify sys of new url mybe event or callback
- const KURL url = request.url();
- printf("------------------> LOADING NEW URL %s \n", url.url().ascii());
- didOpenURL(url);
- begin(url);
- RefPtr<ResourceLoader> loader = ResourceLoader::create(this, "GET", url);
- loader->start(document()->docLoader());
+ if (!m_client)
+ return;
+
+ m_client->openURL(request.url());
}
String FrameGdk::userAgent() const
}
}
-void FrameGdk::receivedData(ResourceLoader* job, const char* data, int length)
-{
- write(data, length);
-}
-
-void FrameGdk::receivedAllData(ResourceLoader* job, PlatformData data)
-{
- end();
-}
-
void FrameGdk::setFrameGeometry(const IntRect &r)
{
if (!m_drawable || !GDK_IS_WINDOW(m_drawable))
namespace WebCore {
class Element;
+class FrameGdk;
class FrameGdkClient {
public:
- virtual void openURL(const DeprecatedString&) = 0;
+ virtual ~FrameGdkClient() = 0;
+
+ virtual void setFrame(const FrameGdk*) = 0;
+
+ virtual void openURL(const KURL&) = 0;
+ virtual void submitForm(const String& method, const KURL&, const FormData*) = 0;
+};
+
+class FrameGdkClientDefault : public FrameGdkClient,
+ public ResourceLoaderClient
+{
+public:
+
+ FrameGdkClientDefault();
+ virtual ~FrameGdkClientDefault();
+
+ // FrameGdkClient
+ virtual void setFrame(const FrameGdk*);
+ virtual void openURL(const KURL&);
+ virtual void submitForm(const String& method, const KURL&, const FormData*);
+
+ // ResourceLoaderClient
+ virtual void receivedResponse(ResourceLoader*, PlatformResponse);
+ virtual void receivedData(ResourceLoader*, const char*, int);
+ virtual void receivedAllData(ResourceLoader*, PlatformData);
+
+private:
+ FrameGdk* m_frame;
+ bool m_beginCalled : 1;
+
};
-class FrameGdk : public Frame, ResourceLoaderClient {
+class FrameGdk : public Frame {
public:
FrameGdk(Page*, Element*);
FrameGdk(GdkDrawable*);
bool keyPress(const PlatformKeyboardEvent&);
virtual KURL originalRequestURL() const;
- virtual void receivedData(ResourceLoader*, const char*, int);
- virtual void receivedAllData(ResourceLoader*,PlatformData);
-
IntRect frameGeometry() const;
void setFrameGeometry(const IntRect&);
virtual Frame* createFrame(const KURL&, const String& name, Element* ownerElement, const String& referrer);
+ Widget* createJavaAppletWidget(const IntSize&, Element*, const HashMap<String, String>&);
private:
virtual bool isLoadTypeReload();
#include "KURL.h"
#include "PlatformScrollBar.h"
#include "ScrollBar.h"
-#include "JavaAppletWidget.h"
#include "Path.h"
#include "PlatformMouseEvent.h"
#include "CookieJar.h"
void Widget::unlockDrawingFocus(GraphicsContext*) { notImplemented(); }
void Widget::removeFromParent() { }
-JavaAppletWidget::JavaAppletWidget(IntSize const&, Element*, WTF::HashMap<String, String> const&) { notImplemented(); }
-
void TextField::selectAll() { notImplemented(); }
void TextField::addSearchResult() { notImplemented(); }
int TextField::selectionStart() const { notImplemented(); return 0; }
KJS::Bindings::Instance* FrameGdk::getObjectInstanceForWidget(Widget *) { notImplemented(); return 0; }
KJS::Bindings::Instance* FrameGdk::getEmbedInstanceForWidget(Widget *) { notImplemented(); return 0; }
KJS::Bindings::RootObject* FrameGdk::bindingRootObject() { notImplemented(); return 0; }
+Widget* FrameGdk::createJavaAppletWidget(const IntSize&, Element*, const HashMap<String, String>&) { notImplemented(); return 0; }
bool FrameGdk::canRedo() const { notImplemented(); return 0; }
bool FrameGdk::canUndo() const { notImplemented(); return 0; }
void FrameGdk::registerCommandForRedo(PassRefPtr<WebCore::EditCommand>) { notImplemented(); }
FileChooser::FileChooser(Document*, RenderFileUploadControl*) { notImplemented(); }
FileChooser::~FileChooser() { notImplemented(); }
+PassRefPtr<FileChooser> FileChooser::create(Document*, RenderFileUploadControl*) { notImplemented(); return 0; }
void FileChooser::openFileChooser() { notImplemented(); }
String FileChooser::basenameForWidth(int width) const { notImplemented(); return String(); }
void FileChooser::uploadControlDetaching() { notImplemented(); }
+2006-10-12 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
+
+ Reviewed by Maciej.
+
+ Also regenerate GdkLauncher makefiles, since not doing that might
+ lead to mismatch between WebCore and GdkLauncher compiler settings.
+
+ * Scripts/regenerate-makefiles:
+
2006-10-10 David Smith <catfish.man@gmail.com>
Reviewed by Tim H.
cd ../../Bakefiles
bakefile_gen
+cd ../WebKitTools/GdkLauncher
+bakefile_gen