summaryrefslogtreecommitdiffstats
path: root/WebCore/platform/brew/PlatformMouseEventBrew.cpp
diff options
context:
space:
mode:
authorSteve Block <steveblock@google.com>2010-02-15 12:23:52 +0000
committerSteve Block <steveblock@google.com>2010-02-16 11:48:32 +0000
commit8a0914b749bbe7da7768e07a7db5c6d4bb09472b (patch)
tree73f9065f370435d6fde32ae129d458a8c77c8dff /WebCore/platform/brew/PlatformMouseEventBrew.cpp
parentbf14be70295513b8076f3fa47a268a7e42b2c478 (diff)
downloadexternal_webkit-8a0914b749bbe7da7768e07a7db5c6d4bb09472b.zip
external_webkit-8a0914b749bbe7da7768e07a7db5c6d4bb09472b.tar.gz
external_webkit-8a0914b749bbe7da7768e07a7db5c6d4bb09472b.tar.bz2
Merge webkit.org at r54731 : Initial merge by git
Change-Id: Ia79977b6cf3b0b00c06ef39419989b28e57e4f4a
Diffstat (limited to 'WebCore/platform/brew/PlatformMouseEventBrew.cpp')
-rw-r--r--WebCore/platform/brew/PlatformMouseEventBrew.cpp85
1 files changed, 85 insertions, 0 deletions
diff --git a/WebCore/platform/brew/PlatformMouseEventBrew.cpp b/WebCore/platform/brew/PlatformMouseEventBrew.cpp
new file mode 100644
index 0000000..32593e6
--- /dev/null
+++ b/WebCore/platform/brew/PlatformMouseEventBrew.cpp
@@ -0,0 +1,85 @@
+/*
+ * Copyright (C) 2009 Company 100, 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:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. 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.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``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 APPLE COMPUTER, INC. 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 "PlatformMouseEvent.h"
+
+#include <AEEEvent.h>
+#include <AEEPointerHelpers.h>
+#include <AEEStdDef.h>
+#include <AEEVCodes.h>
+
+namespace WebCore {
+
+PlatformMouseEvent::PlatformMouseEvent(AEEEvent event, uint16 wParam, uint32 dwParam)
+{
+ switch (event) {
+ case EVT_POINTER_DOWN:
+ m_eventType = MouseEventPressed;
+ break;
+ case EVT_POINTER_UP:
+ m_eventType = MouseEventReleased;
+ break;
+ case EVT_POINTER_MOVE:
+ case EVT_POINTER_STALE_MOVE:
+ m_eventType = MouseEventMoved;
+ break;
+ default:
+ m_eventType = MouseEventMoved;
+ break;
+ };
+
+ char* dwParamStr = reinterpret_cast<char*>(dwParam);
+
+ int x, y;
+ AEE_POINTER_GET_XY(dwParamStr, &x, &y);
+ m_position = IntPoint(x, y);
+ // Use IDisplay, so position and global position are the same.
+ m_globalPosition = m_position;
+
+ uint32 keyModifiers = AEE_POINTER_GET_KEY_MODIFIERS(dwParamStr);
+ m_shiftKey = keyModifiers & (KB_LSHIFT | KB_RSHIFT);
+ m_ctrlKey = keyModifiers & (KB_LCTRL | KB_RCTRL);
+ m_altKey = keyModifiers & (KB_LALT | KB_RALT);
+ m_metaKey = m_altKey;
+
+ uint16 mouseModifiers = AEE_POINTER_GET_MOUSE_MODIFIERS(dwParamStr);
+ if (mouseModifiers & AEE_POINTER_MOUSE_LBUTTON)
+ m_button = LeftButton;
+ else if (mouseModifiers & AEE_POINTER_MOUSE_RBUTTON)
+ m_button = RightButton;
+ else if (mouseModifiers & AEE_POINTER_MOUSE_MBUTTON)
+ m_button = MiddleButton;
+ else
+ m_button = NoButton;
+
+ // AEE_POINTER_GET_TIME returns milliseconds
+ m_timestamp = AEE_POINTER_GET_TIME(dwParamStr) * 0.001;
+
+ m_clickCount = AEE_POINTER_GET_CLICKCOUNT(dwParamStr);
+}
+
+} // namespace WebCore
+