summaryrefslogtreecommitdiffstats
path: root/webkit/tools/test_shell/drop_delegate.cc
diff options
context:
space:
mode:
authordarin@chromium.org <darin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-04-07 23:24:58 +0000
committerdarin@chromium.org <darin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-04-07 23:24:58 +0000
commite80c73be12cc2211d5a72a5ff85eb97366b2458f (patch)
tree5c395779776b368ed6cafdbc5c6bc929776c18a4 /webkit/tools/test_shell/drop_delegate.cc
parent25a3f6b52228bc68ce63c4032ed6b17cecd7b3c5 (diff)
downloadchromium_src-e80c73be12cc2211d5a72a5ff85eb97366b2458f.zip
chromium_src-e80c73be12cc2211d5a72a5ff85eb97366b2458f.tar.gz
chromium_src-e80c73be12cc2211d5a72a5ff85eb97366b2458f.tar.bz2
Switch to using WebDragData in WebView and WebViewDelegate.
I also cleaned up some of the WebView and WebViewDelegate methods to pass WebPoint instead of pairs of ints or gfx::Point. With this change, I am keeping webkit/glue/webdropdata.{h,cc}, which is what Chrome uses to pass around the equivalent data. Now, it is possible to construct a WebDropData from a WebKit::WebDragData and to also get a WebKit::WebDragData from a WebDropData. Hence, the conversion between WebDropData and ChromiumDataObject (see clipboard_conversion.{h,cc}) is now removed in favor of conversion between WebDropData and WebKit::WebDragData. Conversion between WebKit::WebDragData and WebCore::ChromiumDataObject is very cheap (just reference counting). Finally, this change also brings in WebData, which is now used by the return value of WebKitClient::loadResource. As a companion to that change, I also changed webkit_glue::GetDataResource to return StringPiece instead of std::string. That also saves on an unnecessary buffer copy. R=dglazkov Review URL: http://codereview.chromium.org/63084 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13305 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/tools/test_shell/drop_delegate.cc')
-rw-r--r--webkit/tools/test_shell/drop_delegate.cc21
1 files changed, 15 insertions, 6 deletions
diff --git a/webkit/tools/test_shell/drop_delegate.cc b/webkit/tools/test_shell/drop_delegate.cc
index 77d6679..fed2514 100644
--- a/webkit/tools/test_shell/drop_delegate.cc
+++ b/webkit/tools/test_shell/drop_delegate.cc
@@ -4,10 +4,15 @@
#include "webkit/tools/test_shell/drop_delegate.h"
+#include "third_party/WebKit/WebKit/chromium/public/WebDragData.h"
+#include "third_party/WebKit/WebKit/chromium/public/WebPoint.h"
#include "webkit/glue/webdropdata.h"
#include "webkit/glue/webview.h"
+using WebKit::WebPoint;
+
// BaseDropTarget methods ----------------------------------------------------
+
DWORD TestDropDelegate::OnDragEnter(IDataObject* data_object,
DWORD key_state,
POINT cursor_position,
@@ -17,8 +22,10 @@ DWORD TestDropDelegate::OnDragEnter(IDataObject* data_object,
POINT client_pt = cursor_position;
ScreenToClient(GetHWND(), &client_pt);
- bool valid = webview_->DragTargetDragEnter(drop_data, client_pt.x,
- client_pt.y, cursor_position.x, cursor_position.y);
+ bool valid = webview_->DragTargetDragEnter(
+ drop_data.ToDragData(), drop_data.identity,
+ WebPoint(client_pt.x, client_pt.y),
+ WebPoint(cursor_position.x, cursor_position.y));
return valid ? DROPEFFECT_COPY : DROPEFFECT_NONE;
}
@@ -28,8 +35,9 @@ DWORD TestDropDelegate::OnDragOver(IDataObject* data_object,
DWORD effect) {
POINT client_pt = cursor_position;
ScreenToClient(GetHWND(), &client_pt);
- bool valid = webview_->DragTargetDragOver(client_pt.x,
- client_pt.y, cursor_position.x, cursor_position.y);
+ bool valid = webview_->DragTargetDragOver(
+ WebPoint(client_pt.x, client_pt.y),
+ WebPoint(cursor_position.x, cursor_position.y));
return valid ? DROPEFFECT_COPY : DROPEFFECT_NONE;
}
@@ -43,8 +51,9 @@ DWORD TestDropDelegate::OnDrop(IDataObject* data_object,
DWORD effect) {
POINT client_pt = cursor_position;
ScreenToClient(GetHWND(), &client_pt);
- webview_->DragTargetDrop(client_pt.x, client_pt.y,
- cursor_position.x, cursor_position.y);
+ webview_->DragTargetDrop(
+ WebPoint(client_pt.x, client_pt.y),
+ WebPoint(cursor_position.x, cursor_position.y));
// webkit win port always returns DROPEFFECT_NONE
return DROPEFFECT_NONE;