Index: webkit/api/src/WebInputEventConversion.cpp |
diff --git a/webkit/api/src/WebInputEventConversion.cpp b/webkit/api/src/WebInputEventConversion.cpp |
deleted file mode 100644 |
index 15001297f29a85dbbf8949ea248e1d7f4cda78c3..0000000000000000000000000000000000000000 |
--- a/webkit/api/src/WebInputEventConversion.cpp |
+++ /dev/null |
@@ -1,256 +0,0 @@ |
-/* |
- * Copyright (C) 2009 Google Inc. All rights reserved. |
- * |
- * Redistribution and use in source and binary forms, with or without |
- * modification, are permitted provided that the following conditions are |
- * met: |
- * |
- * * Redistributions of source code must retain the above copyright |
- * notice, this list of conditions and the following disclaimer. |
- * * Redistributions in binary form must reproduce the above |
- * copyright notice, this list of conditions and the following disclaimer |
- * in the documentation and/or other materials provided with the |
- * distribution. |
- * * Neither the name of Google Inc. nor the names of its |
- * contributors may be used to endorse or promote products derived from |
- * this software without specific prior written permission. |
- * |
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
- */ |
- |
-#include "config.h" |
-#include "WebInputEventConversion.h" |
- |
-#include "EventNames.h" |
-#include "KeyboardCodes.h" |
-#include "KeyboardEvent.h" |
-#include "MouseEvent.h" |
-#include "PlatformKeyboardEvent.h" |
-#include "PlatformMouseEvent.h" |
-#include "PlatformWheelEvent.h" |
-#include "ScrollView.h" |
-#include "WebInputEvent.h" |
-#include "Widget.h" |
- |
-using namespace WebCore; |
- |
-namespace WebKit { |
- |
-// MakePlatformMouseEvent ----------------------------------------------------- |
- |
-PlatformMouseEventBuilder::PlatformMouseEventBuilder(Widget* widget, const WebMouseEvent& e) |
-{ |
- // FIXME: widget is always toplevel, unless it's a popup. We may be able |
- // to get rid of this once we abstract popups into a WebKit API. |
- m_position = widget->convertFromContainingWindow(IntPoint(e.x, e.y)); |
- m_globalPosition = IntPoint(e.globalX, e.globalY); |
- m_button = static_cast<MouseButton>(e.button); |
- m_shiftKey = (e.modifiers & WebInputEvent::ShiftKey); |
- m_ctrlKey = (e.modifiers & WebInputEvent::ControlKey); |
- m_altKey = (e.modifiers & WebInputEvent::AltKey); |
- m_metaKey = (e.modifiers & WebInputEvent::MetaKey); |
- m_modifierFlags = e.modifiers; |
- m_timestamp = e.timeStampSeconds; |
- m_clickCount = e.clickCount; |
- |
- switch (e.type) { |
- case WebInputEvent::MouseMove: |
- case WebInputEvent::MouseLeave: // synthesize a move event |
- m_eventType = MouseEventMoved; |
- break; |
- |
- case WebInputEvent::MouseDown: |
- m_eventType = MouseEventPressed; |
- break; |
- |
- case WebInputEvent::MouseUp: |
- m_eventType = MouseEventReleased; |
- break; |
- |
- default: |
- ASSERT_NOT_REACHED(); |
- } |
-} |
- |
-// PlatformWheelEventBuilder -------------------------------------------------- |
- |
-PlatformWheelEventBuilder::PlatformWheelEventBuilder(Widget* widget, const WebMouseWheelEvent& e) |
-{ |
- m_position = widget->convertFromContainingWindow(IntPoint(e.x, e.y)); |
- m_globalPosition = IntPoint(e.globalX, e.globalY); |
- m_deltaX = e.deltaX; |
- m_deltaY = e.deltaY; |
- m_wheelTicksX = e.wheelTicksX; |
- m_wheelTicksY = e.wheelTicksY; |
- m_isAccepted = false; |
- m_granularity = e.scrollByPage ? |
- ScrollByPageWheelEvent : ScrollByPixelWheelEvent; |
- m_shiftKey = (e.modifiers & WebInputEvent::ShiftKey); |
- m_ctrlKey = (e.modifiers & WebInputEvent::ControlKey); |
- m_altKey = (e.modifiers & WebInputEvent::AltKey); |
- m_metaKey = (e.modifiers & WebInputEvent::MetaKey); |
-} |
- |
-// MakePlatformKeyboardEvent -------------------------------------------------- |
- |
-static inline const PlatformKeyboardEvent::Type toPlatformKeyboardEventType(WebInputEvent::Type type) |
-{ |
- switch (type) { |
- case WebInputEvent::KeyUp: |
- return PlatformKeyboardEvent::KeyUp; |
- case WebInputEvent::KeyDown: |
- return PlatformKeyboardEvent::KeyDown; |
- case WebInputEvent::RawKeyDown: |
- return PlatformKeyboardEvent::RawKeyDown; |
- case WebInputEvent::Char: |
- return PlatformKeyboardEvent::Char; |
- default: |
- ASSERT_NOT_REACHED(); |
- } |
- return PlatformKeyboardEvent::KeyDown; |
-} |
- |
-PlatformKeyboardEventBuilder::PlatformKeyboardEventBuilder(const WebKeyboardEvent& e) |
-{ |
- m_type = toPlatformKeyboardEventType(e.type); |
- m_text = String(e.text); |
- m_unmodifiedText = String(e.unmodifiedText); |
- m_keyIdentifier = String(e.keyIdentifier); |
- m_autoRepeat = (e.modifiers & WebInputEvent::IsAutoRepeat); |
- m_windowsVirtualKeyCode = e.windowsKeyCode; |
- m_nativeVirtualKeyCode = e.nativeKeyCode; |
- m_isKeypad = (e.modifiers & WebInputEvent::IsKeyPad); |
- m_shiftKey = (e.modifiers & WebInputEvent::ShiftKey); |
- m_ctrlKey = (e.modifiers & WebInputEvent::ControlKey); |
- m_altKey = (e.modifiers & WebInputEvent::AltKey); |
- m_metaKey = (e.modifiers & WebInputEvent::MetaKey); |
- m_isSystemKey = e.isSystemKey; |
-} |
- |
-void PlatformKeyboardEventBuilder::setKeyType(Type type) |
-{ |
- // According to the behavior of Webkit in Windows platform, |
- // we need to convert KeyDown to RawKeydown and Char events |
- // See WebKit/WebKit/Win/WebView.cpp |
- ASSERT(m_type == KeyDown); |
- ASSERT(type == RawKeyDown || type == Char); |
- m_type = type; |
- |
- if (type == RawKeyDown) { |
- m_text = String(); |
- m_unmodifiedText = String(); |
- } else { |
- m_keyIdentifier = String(); |
- m_windowsVirtualKeyCode = 0; |
- } |
-} |
- |
-// Please refer to bug http://b/issue?id=961192, which talks about Webkit |
-// keyboard event handling changes. It also mentions the list of keys |
-// which don't have associated character events. |
-bool PlatformKeyboardEventBuilder::isCharacterKey() const |
-{ |
- switch (windowsVirtualKeyCode()) { |
- case VKEY_BACK: |
- case VKEY_ESCAPE: |
- return false; |
- } |
- return true; |
-} |
- |
-static int getWebInputModifiers(const UIEventWithKeyState& event) |
-{ |
- int modifiers = 0; |
- if (event.ctrlKey()) |
- modifiers |= WebInputEvent::ControlKey; |
- if (event.shiftKey()) |
- modifiers |= WebInputEvent::ShiftKey; |
- if (event.altKey()) |
- modifiers |= WebInputEvent::AltKey; |
- if (event.metaKey()) |
- modifiers |= WebInputEvent::MetaKey; |
- return modifiers; |
-} |
- |
-WebMouseEventBuilder::WebMouseEventBuilder(const ScrollView* view, const MouseEvent& event) |
-{ |
- if (event.type() == eventNames().mousemoveEvent) |
- type = WebInputEvent::MouseMove; |
- else if (event.type() == eventNames().mouseoutEvent) |
- type = WebInputEvent::MouseLeave; |
- else if (event.type() == eventNames().mouseoverEvent) |
- type = WebInputEvent::MouseEnter; |
- else if (event.type() == eventNames().mousedownEvent) |
- type = WebInputEvent::MouseDown; |
- else if (event.type() == eventNames().mouseupEvent) |
- type = WebInputEvent::MouseUp; |
- else |
- return; // Skip all other mouse events. |
- timeStampSeconds = event.timeStamp() * 1.0e-3; |
- switch (event.button()) { |
- case LeftButton: |
- button = WebMouseEvent::ButtonLeft; |
- break; |
- case MiddleButton: |
- button = WebMouseEvent::ButtonMiddle; |
- break; |
- case RightButton: |
- button = WebMouseEvent::ButtonRight; |
- break; |
- } |
- modifiers = getWebInputModifiers(event); |
- if (event.buttonDown()) { |
- switch (event.button()) { |
- case LeftButton: |
- modifiers |= WebInputEvent::LeftButtonDown; |
- break; |
- case MiddleButton: |
- modifiers |= WebInputEvent::MiddleButtonDown; |
- break; |
- case RightButton: |
- modifiers |= WebInputEvent::RightButtonDown; |
- break; |
- } |
- } |
- IntPoint p = view->contentsToWindow(IntPoint(event.pageX(), event.pageY())); |
- globalX = event.screenX(); |
- globalY = event.screenY(); |
- windowX = p.x(); |
- windowY = p.y(); |
- x = event.offsetX(); |
- y = event.offsetY(); |
-} |
- |
-WebKeyboardEventBuilder::WebKeyboardEventBuilder(const KeyboardEvent& event) |
-{ |
- if (event.type() == eventNames().keydownEvent) |
- type = KeyDown; |
- else if (event.type() == eventNames().keyupEvent) |
- type = WebInputEvent::KeyUp; |
- else if (event.type() == eventNames().keypressEvent) |
- type = WebInputEvent::Char; |
- else |
- return; // Skip all other keyboard events. |
- modifiers = getWebInputModifiers(event); |
- timeStampSeconds = event.timeStamp() * 1.0e-3; |
- windowsKeyCode = event.keyCode(); |
- nativeKeyCode = event.keyEvent()->nativeVirtualKeyCode(); |
- unsigned int numChars = std::min(event.keyEvent()->text().length(), |
- static_cast<unsigned int>(WebKeyboardEvent::textLengthCap)); |
- for (unsigned int i = 0; i < numChars; i++) { |
- text[i] = event.keyEvent()->text()[i]; |
- unmodifiedText[i] = event.keyEvent()->unmodifiedText()[i]; |
- } |
-} |
- |
-} // namespace WebKit |