diff options
author | darin@chromium.org <darin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-03-27 23:30:22 +0000 |
---|---|---|
committer | darin@chromium.org <darin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-03-27 23:30:22 +0000 |
commit | 62cb33cae4bad68a085b50832c8a7f1e1c2e917c (patch) | |
tree | 4eddbf29c7ae1c41fd1300ae4ce95b817404bbaf /webkit/tools/test_shell/event_sending_controller.cc | |
parent | 57346c5659ada3c2a06095afac6e53bedf41ab94 (diff) | |
download | chromium_src-62cb33cae4bad68a085b50832c8a7f1e1c2e917c.zip chromium_src-62cb33cae4bad68a085b50832c8a7f1e1c2e917c.tar.gz chromium_src-62cb33cae4bad68a085b50832c8a7f1e1c2e917c.tar.bz2 |
Use Webkit::WebInputEvent and remove webkit/glue/webinputevent.
This change adds a temporary dependency on src/KeyIdentifier.{h,cpp} which I am going to remove after this CL. I didn't want to grow this CL any larger.
R=dglazkov
Review URL: http://codereview.chromium.org/53099
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@12728 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/tools/test_shell/event_sending_controller.cc')
-rw-r--r-- | webkit/tools/test_shell/event_sending_controller.cc | 110 |
1 files changed, 62 insertions, 48 deletions
diff --git a/webkit/tools/test_shell/event_sending_controller.cc b/webkit/tools/test_shell/event_sending_controller.cc index 6fadaa3..cded2e6 100644 --- a/webkit/tools/test_shell/event_sending_controller.cc +++ b/webkit/tools/test_shell/event_sending_controller.cc @@ -28,20 +28,34 @@ #include "base/message_loop.h" #include "base/string_util.h" #include "base/time.h" -#include "webkit/glue/webinputevent_util.h" +#include "webkit/glue/webdropdata.h" #include "webkit/glue/webview.h" #include "webkit/tools/test_shell/test_shell.h" +// TODO(darin): This is a temporary hack. The better solution is to defer +// generation of the keyIdentifier to the point where a PlatformKeyboardEvent +// is created from our WebKeyboardEvent. +#include "third_party/WebKit/WebKit/chromium/src/KeyIdentifier.h" + +#if defined(OS_WIN) +#include "third_party/WebKit/WebKit/chromium/public/win/WebInputEventFactory.h" +using WebKit::WebInputEventFactory; +#endif + // TODO(mpcomplete): layout before each event? // TODO(mpcomplete): do we need modifiers for mouse events? using base::Time; using base::TimeTicks; +using WebKit::WebInputEvent; +using WebKit::WebKeyboardEvent; +using WebKit::WebMouseEvent; + TestShell* EventSendingController::shell_ = NULL; gfx::Point EventSendingController::last_mouse_pos_; WebMouseEvent::Button EventSendingController::pressed_button_ = - WebMouseEvent::BUTTON_NONE; + WebMouseEvent::ButtonNone; int EventSendingController::last_button_number_ = -1; @@ -88,25 +102,25 @@ void InitMouseEvent(WebInputEvent::Type t, WebMouseEvent::Button b, e->modifiers = 0; e->x = pos.x(); e->y = pos.y(); - e->global_x = pos.x(); - e->global_y = pos.y(); - e->timestamp_sec = GetCurrentEventTimeSec(); - e->layout_test_click_count = click_count; + e->globalX = pos.x(); + e->globalY = pos.y(); + e->timeStampSeconds = GetCurrentEventTimeSec(); + e->layoutTestClickCount = click_count; } void ApplyKeyModifier(const std::wstring& arg, WebKeyboardEvent* event) { const wchar_t* arg_string = arg.c_str(); if (!wcscmp(arg_string, L"ctrlKey")) { - event->modifiers |= WebInputEvent::CTRL_KEY; + event->modifiers |= WebInputEvent::ControlKey; } else if (!wcscmp(arg_string, L"shiftKey")) { - event->modifiers |= WebInputEvent::SHIFT_KEY; + event->modifiers |= WebInputEvent::ShiftKey; } else if (!wcscmp(arg_string, L"altKey")) { - event->modifiers |= WebInputEvent::ALT_KEY; + event->modifiers |= WebInputEvent::AltKey; #if defined(OS_WIN) - event->system_key = true; + event->isSystemKey = true; #endif } else if (!wcscmp(arg_string, L"metaKey")) { - event->modifiers |= WebInputEvent::META_KEY; + event->modifiers |= WebInputEvent::MetaKey; } } @@ -172,7 +186,7 @@ void EventSendingController::Reset() { // The test should have finished a drag and the mouse button state. DCHECK(!drag_data_object.get()); drag_data_object.reset(); - pressed_button_ = WebMouseEvent::BUTTON_NONE; + pressed_button_ = WebMouseEvent::ButtonNone; dragMode.Set(true); #if defined(OS_WIN) wmKeyDown.Set(WM_KEYDOWN); @@ -207,11 +221,11 @@ void EventSendingController::Reset() { WebMouseEvent::Button EventSendingController::GetButtonTypeFromButtonNumber( int button_code) { if (button_code == 0) - return WebMouseEvent::BUTTON_LEFT; + return WebMouseEvent::ButtonLeft; else if (button_code == 2) - return WebMouseEvent::BUTTON_RIGHT; + return WebMouseEvent::ButtonRight; - return WebMouseEvent::BUTTON_MIDDLE; + return WebMouseEvent::ButtonMiddle; } // static @@ -254,7 +268,7 @@ void EventSendingController::mouseDown( WebMouseEvent event; pressed_button_ = button_type; - InitMouseEvent(WebInputEvent::MOUSE_DOWN, button_type, + InitMouseEvent(WebInputEvent::MouseDown, button_type, last_mouse_pos_, &event); webview()->HandleInputEvent(&event); } @@ -275,7 +289,7 @@ void EventSendingController::mouseUp( last_button_number_ = button_number; WebMouseEvent event; - InitMouseEvent(WebInputEvent::MOUSE_UP, button_type, + InitMouseEvent(WebInputEvent::MouseUp, button_type, last_mouse_pos_, &event); if (drag_mode() && !replaying_saved_events) { mouse_event_queue.push(event); @@ -284,23 +298,23 @@ void EventSendingController::mouseUp( DoMouseUp(event); } - last_click_time_sec = event.timestamp_sec; + last_click_time_sec = event.timeStampSeconds; last_click_pos = gfx::Point(event.x, event.y); } /* static */ void EventSendingController::DoMouseUp(const WebMouseEvent& e) { webview()->HandleInputEvent(&e); - pressed_button_ = WebMouseEvent::BUTTON_NONE; + pressed_button_ = WebMouseEvent::ButtonNone; // If we're in a drag operation, complete it. if (drag_data_object.get()) { - bool valid = webview()->DragTargetDragOver(e.x, e.y, e.global_x, - e.global_y); + bool valid = webview()->DragTargetDragOver(e.x, e.y, e.globalX, + e.globalY); if (valid) { - webview()->DragSourceEndedAt(e.x, e.y, e.global_x, e.global_y); - webview()->DragTargetDrop(e.x, e.y, e.global_x, e.global_y); + webview()->DragSourceEndedAt(e.x, e.y, e.globalX, e.globalY); + webview()->DragTargetDrop(e.x, e.y, e.globalX, e.globalY); } else { - webview()->DragSourceEndedAt(e.x, e.y, e.global_x, e.global_y); + webview()->DragSourceEndedAt(e.x, e.y, e.globalX, e.globalY); webview()->DragTargetDragLeave(); } drag_data_object.reset(); @@ -316,10 +330,10 @@ void EventSendingController::mouseMoveTo( WebMouseEvent event; last_mouse_pos_.SetPoint(args[0].ToInt32(), args[1].ToInt32()); - InitMouseEvent(WebInputEvent::MOUSE_MOVE, pressed_button_, + InitMouseEvent(WebInputEvent::MouseMove, pressed_button_, last_mouse_pos_, &event); - if (drag_mode() && pressed_button_ != WebMouseEvent::BUTTON_NONE && + if (drag_mode() && pressed_button_ != WebMouseEvent::ButtonNone && !replaying_saved_events) { mouse_event_queue.push(event); } else { @@ -331,9 +345,9 @@ void EventSendingController::mouseMoveTo( /* static */ void EventSendingController::DoMouseMove(const WebMouseEvent& e) { webview()->HandleInputEvent(&e); - if (pressed_button_ != WebMouseEvent::BUTTON_NONE && drag_data_object.get()) { - webview()->DragSourceMovedTo(e.x, e.y, e.global_x, e.global_y); - webview()->DragTargetDragOver(e.x, e.y, e.global_x, e.global_y); + if (pressed_button_ != WebMouseEvent::ButtonNone && drag_data_object.get()) { + webview()->DragSourceMovedTo(e.x, e.y, e.globalX, e.globalY); + webview()->DragTargetDragOver(e.x, e.y, e.globalX, e.globalY); } } @@ -384,30 +398,29 @@ void EventSendingController::keyDown( // the event flow that that platform provides. WebKeyboardEvent event_down, event_up; #if defined(OS_WIN) - event_down.type = WebInputEvent::RAW_KEY_DOWN; + event_down.type = WebInputEvent::RawKeyDown; #else - event_down.type = WebInputEvent::KEY_DOWN; + event_down.type = WebInputEvent::KeyDown; #endif event_down.modifiers = 0; - event_down.windows_key_code = code; + event_down.windowsKeyCode = code; if (generate_char) { event_down.text[0] = code; - event_down.unmodified_text[0] = code; + event_down.unmodifiedText[0] = code; } - std::string key_identifier_str = - webkit_glue::GetKeyIdentifierForWindowsKeyCode(code); - base::strlcpy(event_down.key_identifier, key_identifier_str.c_str(), - kIdentifierLengthCap); + // TODO(darin): remove this temporary hack. + WebKit::keyIdentifierForWindowsKeyCode( + code, event_down.keyIdentifier, sizeof(event_down.keyIdentifier)); if (args.size() >= 2 && (args[1].isObject() || args[1].isString())) ApplyKeyModifiers(&(args[1]), &event_down); if (needs_shift_key_modifier) - event_down.modifiers |= WebInputEvent::SHIFT_KEY; + event_down.modifiers |= WebInputEvent::ShiftKey; event_up = event_down; - event_up.type = WebInputEvent::KEY_UP; + event_up.type = WebInputEvent::KeyUp; // EventSendingController.m forces a layout here, with at least one // test (fast\forms\focus-control-to-page.html) relying on this. webview()->Layout(); @@ -417,8 +430,8 @@ void EventSendingController::keyDown( #if defined(OS_WIN) if (generate_char) { WebKeyboardEvent event_char = event_down; - event_char.type = WebInputEvent::CHAR; - event_char.key_identifier[0] = '\0'; + event_char.type = WebInputEvent::Char; + event_char.keyIdentifier[0] = '\0'; webview()->HandleInputEvent(&event_char); } #endif @@ -445,7 +458,8 @@ void EventSendingController::dispatchMessage( webview()->Layout(); unsigned long lparam = static_cast<unsigned long>(args[2].ToDouble()); - WebKeyboardEvent key_event(0, msg, args[1].ToInt32(), lparam); + const WebKeyboardEvent& key_event = WebInputEventFactory::keyboardEvent( + NULL, msg, args[1].ToInt32(), lparam); webview()->HandleInputEvent(&key_event); } else { NOTREACHED() << L"Wrong number of arguments"; @@ -494,10 +508,10 @@ void EventSendingController::ReplaySavedEvents() { mouse_event_queue.pop(); switch (event.type) { - case WebInputEvent::MOUSE_UP: + case WebInputEvent::MouseUp: DoMouseUp(event); break; - case WebInputEvent::MOUSE_MOVE: + case WebInputEvent::MouseMove: DoMouseMove(event); break; default: @@ -523,16 +537,16 @@ void EventSendingController::contextClick( // Generate right mouse down and up. WebMouseEvent event; - pressed_button_ = WebMouseEvent::BUTTON_RIGHT; - InitMouseEvent(WebInputEvent::MOUSE_DOWN, WebMouseEvent::BUTTON_RIGHT, + pressed_button_ = WebMouseEvent::ButtonRight; + InitMouseEvent(WebInputEvent::MouseDown, WebMouseEvent::ButtonRight, last_mouse_pos_, &event); webview()->HandleInputEvent(&event); - InitMouseEvent(WebInputEvent::MOUSE_UP, WebMouseEvent::BUTTON_RIGHT, + InitMouseEvent(WebInputEvent::MouseUp, WebMouseEvent::ButtonRight, last_mouse_pos_, &event); webview()->HandleInputEvent(&event); - pressed_button_ = WebMouseEvent::BUTTON_NONE; + pressed_button_ = WebMouseEvent::ButtonNone; } void EventSendingController::scheduleAsynchronousClick( |