Index: webkit/api/public/WebInputEvent.h |
diff --git a/webkit/api/public/WebInputEvent.h b/webkit/api/public/WebInputEvent.h |
deleted file mode 100644 |
index 983aa2ab9b064b8fe1ca858faed1a79cf39593f1..0000000000000000000000000000000000000000 |
--- a/webkit/api/public/WebInputEvent.h |
+++ /dev/null |
@@ -1,260 +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. |
- */ |
- |
-#ifndef WebInputEvent_h |
-#define WebInputEvent_h |
- |
-#include "WebCommon.h" |
- |
-#include <string.h> |
- |
-namespace WebKit { |
- |
-// The classes defined in this file are intended to be used with |
-// WebWidget's handleInputEvent method. These event types are cross- |
-// platform and correspond closely to WebCore's Platform*Event classes. |
-// |
-// WARNING! These classes must remain PODs (plain old data). They are |
-// intended to be "serializable" by copying their raw bytes, so they must |
-// not contain any non-bit-copyable member variables! |
- |
-// WebInputEvent -------------------------------------------------------------- |
- |
-class WebInputEvent { |
-public: |
- WebInputEvent(unsigned sizeParam = sizeof(WebInputEvent)) |
- : size(sizeParam) |
- , type(Undefined) |
- , modifiers(0) |
- , timeStampSeconds(0.0) { } |
- |
- // When we use an input method (or an input method editor), we receive |
- // two events for a keypress. The former event is a keydown, which |
- // provides a keycode, and the latter is a textinput, which provides |
- // a character processed by an input method. (The mapping from a |
- // keycode to a character code is not trivial for non-English |
- // keyboards.) |
- // To support input methods, Safari sends keydown events to WebKit for |
- // filtering. WebKit sends filtered keydown events back to Safari, |
- // which sends them to input methods. |
- // Unfortunately, it is hard to apply this design to Chrome because of |
- // our multiprocess architecture. An input method is running in a |
- // browser process. On the other hand, WebKit is running in a renderer |
- // process. So, this design results in increasing IPC messages. |
- // To support input methods without increasing IPC messages, Chrome |
- // handles keyboard events in a browser process and send asynchronous |
- // input events (to be translated to DOM events) to a renderer |
- // process. |
- // This design is mostly the same as the one of Windows and Mac Carbon. |
- // So, for what it's worth, our Linux and Mac front-ends emulate our |
- // Windows front-end. To emulate our Windows front-end, we can share |
- // our back-end code among Windows, Linux, and Mac. |
- // TODO(hbono): Issue 18064: remove the KeyDown type since it isn't |
- // used in Chrome any longer. |
- |
- enum Type { |
- Undefined = -1, |
- |
- // WebMouseEvent |
- MouseDown, |
- MouseUp, |
- MouseMove, |
- MouseEnter, |
- MouseLeave, |
- |
- // WebMouseWheelEvent |
- MouseWheel, |
- |
- // WebKeyboardEvent |
- RawKeyDown, |
- KeyDown, |
- KeyUp, |
- Char |
- }; |
- |
- enum Modifiers { |
- // modifiers for all events: |
- ShiftKey = 1 << 0, |
- ControlKey = 1 << 1, |
- AltKey = 1 << 2, |
- MetaKey = 1 << 3, |
- |
- // modifiers for keyboard events: |
- IsKeyPad = 1 << 4, |
- IsAutoRepeat = 1 << 5, |
- |
- // modifiers for mouse events: |
- LeftButtonDown = 1 << 6, |
- MiddleButtonDown = 1 << 7, |
- RightButtonDown = 1 << 8, |
- }; |
- |
- unsigned size; // The size of this structure, for serialization. |
- Type type; |
- int modifiers; |
- double timeStampSeconds; // Seconds since epoch. |
- |
- // Returns true if the WebInputEvent |type| is a keyboard event. |
- static bool isKeyboardEventType(int type) |
- { |
- return type == RawKeyDown |
- || type == KeyDown |
- || type == KeyUp |
- || type == Char; |
- } |
-}; |
- |
-// WebKeyboardEvent ----------------------------------------------------------- |
- |
-class WebKeyboardEvent : public WebInputEvent { |
-public: |
- // Caps on string lengths so we can make them static arrays and keep |
- // them PODs. |
- static const size_t textLengthCap = 4; |
- |
- // http://www.w3.org/TR/DOM-Level-3-Events/keyset.html lists the |
- // identifiers. The longest is 18 characters, so we round up to the |
- // next multiple of 4. |
- static const size_t keyIdentifierLengthCap = 20; |
- |
- // |windowsKeyCode| is the Windows key code associated with this key |
- // event. Sometimes it's direct from the event (i.e. on Windows), |
- // sometimes it's via a mapping function. If you want a list, see |
- // WebCore/platform/chromium/KeyboardCodes* . |
- int windowsKeyCode; |
- |
- // The actual key code genenerated by the platform. The DOM spec runs |
- // on Windows-equivalent codes (thus |windowsKeyCode| above) but it |
- // doesn't hurt to have this one around. |
- int nativeKeyCode; |
- |
- // |text| is the text generated by this keystroke. |unmodifiedText| is |
- // |text|, but unmodified by an concurrently-held modifiers (except |
- // shift). This is useful for working out shortcut keys. Linux and |
- // Windows guarantee one character per event. The Mac does not, but in |
- // reality that's all it ever gives. We're generous, and cap it a bit |
- // longer. |
- WebUChar text[textLengthCap]; |
- WebUChar unmodifiedText[textLengthCap]; |
- |
- // This is a string identifying the key pressed. |
- char keyIdentifier[keyIdentifierLengthCap]; |
- |
- // This identifies whether this event was tagged by the system as being |
- // a "system key" event (see |
- // http://msdn.microsoft.com/en-us/library/ms646286(VS.85).aspx for |
- // details). Other platforms don't have this concept, but it's just |
- // easier to leave it always false than ifdef. |
- // int is used instead of bool to ensure the size of this structure is |
- // strictly aligned to a factor of 4 bytes, otherwise memory check tools |
- // like valgrind may complain about uninitialized memory usage when |
- // transfering it over the wire. |
- int isSystemKey; |
- |
- WebKeyboardEvent(unsigned sizeParam = sizeof(WebKeyboardEvent)) |
- : WebInputEvent(sizeParam) |
- , windowsKeyCode(0) |
- , nativeKeyCode(0) |
- , isSystemKey(false) |
- { |
- memset(&text, 0, sizeof(text)); |
- memset(&unmodifiedText, 0, sizeof(unmodifiedText)); |
- memset(&keyIdentifier, 0, sizeof(keyIdentifier)); |
- } |
- |
- // Sets keyIdentifier based on the value of windowsKeyCode. This is |
- // handy for generating synthetic keyboard events. |
- WEBKIT_API void setKeyIdentifierFromWindowsKeyCode(); |
-}; |
- |
-// WebMouseEvent -------------------------------------------------------------- |
- |
-class WebMouseEvent : public WebInputEvent { |
-public: |
- // These values defined for WebCore::MouseButton |
- enum Button { |
- ButtonNone = -1, |
- ButtonLeft, |
- ButtonMiddle, |
- ButtonRight |
- }; |
- |
- Button button; |
- int x; |
- int y; |
- int windowX; |
- int windowY; |
- int globalX; |
- int globalY; |
- int clickCount; |
- |
- WebMouseEvent(unsigned sizeParam = sizeof(WebMouseEvent)) |
- : WebInputEvent(sizeParam) |
- , button(ButtonNone) |
- , x(0) |
- , y(0) |
- , windowX(0) |
- , windowY(0) |
- , globalX(0) |
- , globalY(0) |
- , clickCount(0) |
- { |
- } |
-}; |
- |
-// WebMouseWheelEvent --------------------------------------------------------- |
- |
-class WebMouseWheelEvent : public WebMouseEvent { |
-public: |
- float deltaX; |
- float deltaY; |
- float wheelTicksX; |
- float wheelTicksY; |
- |
- // int is used instead of bool to ensure the size of this structure is |
- // strictly aligned to a factor of 4 bytes, otherwise memory check tools |
- // like valgrind may complain about uninitialized memory usage when |
- // transfering it over the wire. |
- int scrollByPage; |
- |
- WebMouseWheelEvent(unsigned sizeParam = sizeof(WebMouseWheelEvent)) |
- : WebMouseEvent(sizeParam) |
- , deltaX(0.0f) |
- , deltaY(0.0f) |
- , wheelTicksX(0.0f) |
- , wheelTicksY(0.0f) |
- , scrollByPage(false) |
- { |
- } |
-}; |
- |
-} // namespace WebKit |
- |
-#endif |