diff options
author | Steve Block <steveblock@google.com> | 2010-02-15 12:23:52 +0000 |
---|---|---|
committer | Steve Block <steveblock@google.com> | 2010-02-16 11:48:32 +0000 |
commit | 8a0914b749bbe7da7768e07a7db5c6d4bb09472b (patch) | |
tree | 73f9065f370435d6fde32ae129d458a8c77c8dff /WebCore/platform/brew/PlatformMouseEventBrew.cpp | |
parent | bf14be70295513b8076f3fa47a268a7e42b2c478 (diff) | |
download | external_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.cpp | 85 |
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 + |