Index: ui/base/win/events_win.cc |
diff --git a/ui/base/win/events_win.cc b/ui/base/win/events_win.cc |
deleted file mode 100644 |
index 04b9cd058aae000a680fb28ed1d728ebf91a1a37..0000000000000000000000000000000000000000 |
--- a/ui/base/win/events_win.cc |
+++ /dev/null |
@@ -1,372 +0,0 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include <windowsx.h> |
- |
-#include "ui/events/event_constants.h" |
- |
-#include "base/logging.h" |
-#include "base/time/time.h" |
-#include "base/win/win_util.h" |
-#include "ui/events/event_utils.h" |
-#include "ui/events/keycodes/keyboard_code_conversion_win.h" |
-#include "ui/gfx/point.h" |
-#include "ui/gfx/win/dpi.h" |
- |
-namespace ui { |
- |
-namespace { |
- |
-// From MSDN: "Mouse" events are flagged with 0xFF515700 if they come |
-// from a touch or stylus device. In Vista or later, they are also flagged |
-// with 0x80 if they come from touch. |
-#define MOUSEEVENTF_FROMTOUCH (0xFF515700 | 0x80) |
- |
-// Get the native mouse key state from the native event message type. |
-int GetNativeMouseKey(const base::NativeEvent& native_event) { |
- switch (native_event.message) { |
- case WM_LBUTTONDBLCLK: |
- case WM_LBUTTONDOWN: |
- case WM_LBUTTONUP: |
- case WM_NCLBUTTONDBLCLK: |
- case WM_NCLBUTTONDOWN: |
- case WM_NCLBUTTONUP: |
- return MK_LBUTTON; |
- case WM_MBUTTONDBLCLK: |
- case WM_MBUTTONDOWN: |
- case WM_MBUTTONUP: |
- case WM_NCMBUTTONDBLCLK: |
- case WM_NCMBUTTONDOWN: |
- case WM_NCMBUTTONUP: |
- return MK_MBUTTON; |
- case WM_RBUTTONDBLCLK: |
- case WM_RBUTTONDOWN: |
- case WM_RBUTTONUP: |
- case WM_NCRBUTTONDBLCLK: |
- case WM_NCRBUTTONDOWN: |
- case WM_NCRBUTTONUP: |
- return MK_RBUTTON; |
- case WM_NCXBUTTONDBLCLK: |
- case WM_NCXBUTTONDOWN: |
- case WM_NCXBUTTONUP: |
- case WM_XBUTTONDBLCLK: |
- case WM_XBUTTONDOWN: |
- case WM_XBUTTONUP: |
- return MK_XBUTTON1; |
- } |
- return 0; |
-} |
- |
-bool IsButtonDown(const base::NativeEvent& native_event) { |
- return ((MK_LBUTTON | MK_MBUTTON | MK_RBUTTON | MK_XBUTTON1 | MK_XBUTTON2) & |
- native_event.wParam) != 0; |
-} |
- |
-bool IsClientMouseEvent(const base::NativeEvent& native_event) { |
- return native_event.message == WM_MOUSELEAVE || |
- native_event.message == WM_MOUSEHOVER || |
- (native_event.message >= WM_MOUSEFIRST && |
- native_event.message <= WM_MOUSELAST); |
-} |
- |
-bool IsNonClientMouseEvent(const base::NativeEvent& native_event) { |
- return native_event.message == WM_NCMOUSELEAVE || |
- native_event.message == WM_NCMOUSEHOVER || |
- (native_event.message >= WM_NCMOUSEMOVE && |
- native_event.message <= WM_NCXBUTTONDBLCLK); |
-} |
- |
-bool IsMouseWheelEvent(const base::NativeEvent& native_event) { |
- return native_event.message == WM_MOUSEWHEEL || |
- native_event.message == WM_MOUSEHWHEEL; |
-} |
- |
-bool IsKeyEvent(const base::NativeEvent& native_event) { |
- return native_event.message == WM_KEYDOWN || |
- native_event.message == WM_SYSKEYDOWN || |
- native_event.message == WM_CHAR || |
- native_event.message == WM_KEYUP || |
- native_event.message == WM_SYSKEYUP; |
-} |
- |
-// Returns a mask corresponding to the set of pressed modifier keys. |
-// Checks the current global state and the state sent by client mouse messages. |
-int KeyStateFlagsFromNative(const base::NativeEvent& native_event) { |
- int flags = 0; |
- flags |= base::win::IsAltPressed() ? EF_ALT_DOWN : EF_NONE; |
- flags |= base::win::IsShiftPressed() ? EF_SHIFT_DOWN : EF_NONE; |
- flags |= base::win::IsCtrlPressed() ? EF_CONTROL_DOWN : EF_NONE; |
- |
- // Check key messages for the extended key flag. |
- if (IsKeyEvent(native_event)) |
- flags |= (HIWORD(native_event.lParam) & KF_EXTENDED) ? EF_EXTENDED : 0; |
- |
- // Most client mouse messages include key state information. |
- if (IsClientMouseEvent(native_event)) { |
- int win_flags = GET_KEYSTATE_WPARAM(native_event.wParam); |
- flags |= (win_flags & MK_SHIFT) ? EF_SHIFT_DOWN : 0; |
- flags |= (win_flags & MK_CONTROL) ? EF_CONTROL_DOWN : 0; |
- } |
- |
- return flags; |
-} |
- |
-// Returns a mask corresponding to the set of pressed mouse buttons. |
-// This includes the button of the given message, even if it is being released. |
-int MouseStateFlagsFromNative(const base::NativeEvent& native_event) { |
- int win_flags = GetNativeMouseKey(native_event); |
- |
- // Client mouse messages provide key states in their WPARAMs. |
- if (IsClientMouseEvent(native_event)) |
- win_flags |= GET_KEYSTATE_WPARAM(native_event.wParam); |
- |
- int flags = 0; |
- flags |= (win_flags & MK_LBUTTON) ? EF_LEFT_MOUSE_BUTTON : 0; |
- flags |= (win_flags & MK_MBUTTON) ? EF_MIDDLE_MOUSE_BUTTON : 0; |
- flags |= (win_flags & MK_RBUTTON) ? EF_RIGHT_MOUSE_BUTTON : 0; |
- flags |= IsNonClientMouseEvent(native_event) ? EF_IS_NON_CLIENT : 0; |
- return flags; |
-} |
- |
-} // namespace |
- |
-void UpdateDeviceList() { |
- NOTIMPLEMENTED(); |
-} |
- |
-EventType EventTypeFromNative(const base::NativeEvent& native_event) { |
- switch (native_event.message) { |
- case WM_KEYDOWN: |
- case WM_SYSKEYDOWN: |
- case WM_CHAR: |
- return ET_KEY_PRESSED; |
- case WM_KEYUP: |
- case WM_SYSKEYUP: |
- return ET_KEY_RELEASED; |
- case WM_LBUTTONDBLCLK: |
- case WM_LBUTTONDOWN: |
- case WM_MBUTTONDBLCLK: |
- case WM_MBUTTONDOWN: |
- case WM_NCLBUTTONDBLCLK: |
- case WM_NCLBUTTONDOWN: |
- case WM_NCMBUTTONDBLCLK: |
- case WM_NCMBUTTONDOWN: |
- case WM_NCRBUTTONDBLCLK: |
- case WM_NCRBUTTONDOWN: |
- case WM_NCXBUTTONDBLCLK: |
- case WM_NCXBUTTONDOWN: |
- case WM_RBUTTONDBLCLK: |
- case WM_RBUTTONDOWN: |
- case WM_XBUTTONDBLCLK: |
- case WM_XBUTTONDOWN: |
- return ET_MOUSE_PRESSED; |
- case WM_LBUTTONUP: |
- case WM_MBUTTONUP: |
- case WM_NCLBUTTONUP: |
- case WM_NCMBUTTONUP: |
- case WM_NCRBUTTONUP: |
- case WM_NCXBUTTONUP: |
- case WM_RBUTTONUP: |
- case WM_XBUTTONUP: |
- return ET_MOUSE_RELEASED; |
- case WM_MOUSEMOVE: |
- return IsButtonDown(native_event) ? ET_MOUSE_DRAGGED : ET_MOUSE_MOVED; |
- case WM_NCMOUSEMOVE: |
- return ET_MOUSE_MOVED; |
- case WM_MOUSEWHEEL: |
- return ET_MOUSEWHEEL; |
- case WM_MOUSELEAVE: |
- case WM_NCMOUSELEAVE: |
- return ET_MOUSE_EXITED; |
- default: |
- // We can't NOTREACHED() here, since this function can be called for any |
- // message. |
- break; |
- } |
- return ET_UNKNOWN; |
-} |
- |
-int EventFlagsFromNative(const base::NativeEvent& native_event) { |
- int flags = KeyStateFlagsFromNative(native_event); |
- if (IsMouseEvent(native_event)) |
- flags |= MouseStateFlagsFromNative(native_event); |
- |
- return flags; |
-} |
- |
-base::TimeDelta EventTimeFromNative(const base::NativeEvent& native_event) { |
- return base::TimeDelta::FromMilliseconds(native_event.time); |
-} |
- |
-gfx::Point EventLocationFromNative(const base::NativeEvent& native_event) { |
- // Note: Wheel events are considered client, but their position is in screen |
- // coordinates. |
- // Client message. The position is contained in the LPARAM. |
- if (IsClientMouseEvent(native_event) && !IsMouseWheelEvent(native_event)) |
- return gfx::Point(native_event.lParam); |
- DCHECK(IsNonClientMouseEvent(native_event) || |
- IsMouseWheelEvent(native_event)); |
- // Non-client message. The position is contained in a POINTS structure in |
- // LPARAM, and is in screen coordinates so we have to convert to client. |
- POINT native_point = { GET_X_LPARAM(native_event.lParam), |
- GET_Y_LPARAM(native_event.lParam) }; |
- ScreenToClient(native_event.hwnd, &native_point); |
- gfx::Point location(native_point); |
- location = gfx::win::ScreenToDIPPoint(location); |
- return location; |
-} |
- |
-gfx::Point EventSystemLocationFromNative( |
- const base::NativeEvent& native_event) { |
- // TODO(ben): Needs to always return screen position here. Returning normal |
- // origin for now since that's obviously wrong. |
- return gfx::Point(0, 0); |
-} |
- |
-KeyboardCode KeyboardCodeFromNative(const base::NativeEvent& native_event) { |
- return KeyboardCodeForWindowsKeyCode(native_event.wParam); |
-} |
- |
-bool IsMouseEvent(const base::NativeEvent& native_event) { |
- return IsClientMouseEvent(native_event) || |
- IsNonClientMouseEvent(native_event); |
-} |
- |
-int GetChangedMouseButtonFlagsFromNative( |
- const base::NativeEvent& native_event) { |
- switch (GetNativeMouseKey(native_event)) { |
- case MK_LBUTTON: |
- return EF_LEFT_MOUSE_BUTTON; |
- case MK_MBUTTON: |
- return EF_MIDDLE_MOUSE_BUTTON; |
- case MK_RBUTTON: |
- return EF_RIGHT_MOUSE_BUTTON; |
- // TODO: add support for MK_XBUTTON1. |
- default: |
- break; |
- } |
- return 0; |
-} |
- |
-gfx::Vector2d GetMouseWheelOffset(const base::NativeEvent& native_event) { |
- DCHECK(native_event.message == WM_MOUSEWHEEL); |
- return gfx::Vector2d(0, GET_WHEEL_DELTA_WPARAM(native_event.wParam)); |
-} |
- |
-void ClearTouchIdIfReleased(const base::NativeEvent& xev) { |
- NOTIMPLEMENTED(); |
-} |
- |
-int GetTouchId(const base::NativeEvent& xev) { |
- NOTIMPLEMENTED(); |
- return 0; |
-} |
- |
-float GetTouchRadiusX(const base::NativeEvent& native_event) { |
- NOTIMPLEMENTED(); |
- return 1.0; |
-} |
- |
-float GetTouchRadiusY(const base::NativeEvent& native_event) { |
- NOTIMPLEMENTED(); |
- return 1.0; |
-} |
- |
-float GetTouchAngle(const base::NativeEvent& native_event) { |
- NOTIMPLEMENTED(); |
- return 0.0; |
-} |
- |
-float GetTouchForce(const base::NativeEvent& native_event) { |
- NOTIMPLEMENTED(); |
- return 0.0; |
-} |
- |
-bool GetScrollOffsets(const base::NativeEvent& native_event, |
- float* x_offset, |
- float* y_offset, |
- float* x_offset_ordinal, |
- float* y_offset_ordinal, |
- int* finger_count) { |
- // Not supported in Windows. |
- NOTIMPLEMENTED(); |
- return false; |
-} |
- |
-bool GetFlingData(const base::NativeEvent& native_event, |
- float* vx, |
- float* vy, |
- float* vx_ordinal, |
- float* vy_ordinal, |
- bool* is_cancel) { |
- // Not supported in Windows. |
- NOTIMPLEMENTED(); |
- return false; |
-} |
- |
-bool GetGestureTimes(const base::NativeEvent& native_event, |
- double* start_time, |
- double* end_time) { |
- // Not supported in Windows. |
- *start_time = 0; |
- *end_time = 0; |
- return false; |
-} |
- |
-void SetNaturalScroll(bool enabled) { |
- NOTIMPLEMENTED(); |
-} |
- |
-bool IsNaturalScrollEnabled() { |
- NOTIMPLEMENTED(); |
- return false; |
-} |
- |
-bool IsTouchpadEvent(const base::NativeEvent& event) { |
- NOTIMPLEMENTED(); |
- return false; |
-} |
- |
-bool IsNoopEvent(const base::NativeEvent& event) { |
- return event.message == WM_USER + 310; |
-} |
- |
-base::NativeEvent CreateNoopEvent() { |
- MSG event = { NULL }; |
- event.message = WM_USER + 310; |
- return event; |
-} |
- |
-int GetModifiersFromACCEL(const ACCEL& accel) { |
- int modifiers = EF_NONE; |
- if (accel.fVirt & FSHIFT) |
- modifiers |= EF_SHIFT_DOWN; |
- if (accel.fVirt & FCONTROL) |
- modifiers |= EF_CONTROL_DOWN; |
- if (accel.fVirt & FALT) |
- modifiers |= EF_ALT_DOWN; |
- return modifiers; |
-} |
- |
-int GetModifiersFromKeyState() { |
- int modifiers = EF_NONE; |
- if (base::win::IsShiftPressed()) |
- modifiers |= EF_SHIFT_DOWN; |
- if (base::win::IsCtrlPressed()) |
- modifiers |= EF_CONTROL_DOWN; |
- if (base::win::IsAltPressed()) |
- modifiers |= EF_ALT_DOWN; |
- if (base::win::IsAltGrPressed()) |
- modifiers |= EF_ALTGR_DOWN; |
- return modifiers; |
-} |
- |
-// Windows emulates mouse messages for touch events. |
-bool IsMouseEventFromTouch(UINT message) { |
- return (message >= WM_MOUSEFIRST) && (message <= WM_MOUSELAST) && |
- (GetMessageExtraInfo() & MOUSEEVENTF_FROMTOUCH) == |
- MOUSEEVENTF_FROMTOUCH; |
-} |
- |
-} // namespace ui |