summaryrefslogtreecommitdiffstats
path: root/webkit/glue/webinputevent.h
diff options
context:
space:
mode:
authorinitial.commit <initial.commit@0039d316-1c4b-4281-b951-d872f2087c98>2008-07-27 00:20:51 +0000
committerinitial.commit <initial.commit@0039d316-1c4b-4281-b951-d872f2087c98>2008-07-27 00:20:51 +0000
commitf5b16fed647e941aa66933178da85db2860d639b (patch)
treef00e9856c04aad3b558a140955e7674add33f051 /webkit/glue/webinputevent.h
parent920c091ac3ee15079194c82ae8a7a18215f3f23c (diff)
downloadchromium_src-f5b16fed647e941aa66933178da85db2860d639b.zip
chromium_src-f5b16fed647e941aa66933178da85db2860d639b.tar.gz
chromium_src-f5b16fed647e941aa66933178da85db2860d639b.tar.bz2
Add webkit to the repository.
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/glue/webinputevent.h')
-rw-r--r--webkit/glue/webinputevent.h135
1 files changed, 135 insertions, 0 deletions
diff --git a/webkit/glue/webinputevent.h b/webkit/glue/webinputevent.h
new file mode 100644
index 0000000..fad7165
--- /dev/null
+++ b/webkit/glue/webinputevent.h
@@ -0,0 +1,135 @@
+// Copyright 2008, 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 WEBKIT_GLUE_WEBINPUTEVENT_H__
+#define WEBKIT_GLUE_WEBINPUTEVENT_H__
+
+#include <windows.h>
+#include "base/basictypes.h"
+
+// The classes defined in this file are intended to be used with WebView's
+// HandleInputEvent method. These event types are cross-platform; however,
+// there are platform-specific constructors that accept native UI events.
+//
+// The fields of these event classes roughly correspond to the fields required
+// by WebCore's platform event classes.
+
+// WebInputEvent --------------------------------------------------------------
+
+class WebInputEvent {
+ public:
+ enum Type {
+ // WebMouseEvent
+ MOUSE_DOWN,
+ MOUSE_UP,
+ MOUSE_MOVE,
+ MOUSE_LEAVE,
+ MOUSE_DOUBLE_CLICK,
+
+ // WebMouseWheelEvent
+ MOUSE_WHEEL,
+
+ // WebKeyboardEvent
+ KEY_DOWN,
+ KEY_UP,
+ CHAR
+ };
+
+ enum Modifiers {
+ // modifiers for all events:
+ SHIFT_KEY = 1 << 0,
+ CTRL_KEY = 1 << 1,
+ ALT_KEY = 1 << 2,
+ META_KEY = 1 << 3,
+
+ // modifiers for keyboard events:
+ IS_KEYPAD = 1 << 4,
+ IS_AUTO_REPEAT = 1 << 5
+ };
+
+ Type type;
+ int modifiers;
+};
+
+// WebMouseEvent --------------------------------------------------------------
+
+class WebMouseEvent : public WebInputEvent {
+ public:
+ // These values defined for WebCore::MouseButton
+ enum Button {
+ BUTTON_NONE = -1,
+ BUTTON_LEFT,
+ BUTTON_MIDDLE,
+ BUTTON_RIGHT
+ };
+
+ Button button;
+ int x;
+ int y;
+ int global_x;
+ int global_y;
+ double timestamp_sec; // Seconds since epoch.
+ int layout_test_click_count; // Only used during layout tests.
+
+ WebMouseEvent() {}
+ WebMouseEvent(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam);
+};
+
+// WebMouseWheelEvent ---------------------------------------------------------
+
+class WebMouseWheelEvent : public WebMouseEvent {
+ public:
+ int delta_x;
+ int delta_y;
+
+ WebMouseWheelEvent() {}
+ WebMouseWheelEvent(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam);
+};
+
+// WebKeyboardEvent -----------------------------------------------------------
+
+class WebKeyboardEvent : public WebInputEvent {
+ public:
+ bool system_key; // Set if we receive a SYSKEYDOWN/WM_SYSKEYUP message.
+ MSG actual_message; // Set to the current keyboard message.
+ int key_code;
+ int key_data;
+
+ WebKeyboardEvent()
+ : system_key(false),
+ key_code(0),
+ key_data(0) {
+ memset(&actual_message, 0, sizeof(actual_message));
+ }
+
+ WebKeyboardEvent(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam);
+};
+
+
+#endif // WEBKIT_GLUE_WEBINPUTEVENT_H__