| // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "webkit/tools/test_shell/drop_delegate.h" |
| |
| #include "webkit/api/public/WebDragData.h" |
| #include "webkit/api/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, |
| DWORD effect) { |
| WebDropData drop_data; |
| WebDropData::PopulateWebDropData(data_object, &drop_data); |
| |
| POINT client_pt = cursor_position; |
| ScreenToClient(GetHWND(), &client_pt); |
| 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; |
| } |
| |
| DWORD TestDropDelegate::OnDragOver(IDataObject* data_object, |
| DWORD key_state, |
| POINT cursor_position, |
| DWORD effect) { |
| POINT client_pt = cursor_position; |
| ScreenToClient(GetHWND(), &client_pt); |
| bool valid = webview_->DragTargetDragOver( |
| WebPoint(client_pt.x, client_pt.y), |
| WebPoint(cursor_position.x, cursor_position.y)); |
| return valid ? DROPEFFECT_COPY : DROPEFFECT_NONE; |
| } |
| |
| void TestDropDelegate::OnDragLeave(IDataObject* data_object) { |
| webview_->DragTargetDragLeave(); |
| } |
| |
| DWORD TestDropDelegate::OnDrop(IDataObject* data_object, |
| DWORD key_state, |
| POINT cursor_position, |
| DWORD effect) { |
| POINT client_pt = cursor_position; |
| ScreenToClient(GetHWND(), &client_pt); |
| 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; |
| } |