diff options
author | msw@chromium.org <msw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-08 01:20:41 +0000 |
---|---|---|
committer | msw@chromium.org <msw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-08 01:20:41 +0000 |
commit | bb021bad4ee651f51b2b84cd2d35490206b0996d (patch) | |
tree | a2aacafd16a7bdf90d54387c7ff5831c61e0eecb /ui/views | |
parent | 7f23bac00f99429e34198b12322c11de3097e0ae (diff) | |
download | chromium_src-bb021bad4ee651f51b2b84cd2d35490206b0996d.zip chromium_src-bb021bad4ee651f51b2b84cd2d35490206b0996d.tar.gz chromium_src-bb021bad4ee651f51b2b84cd2d35490206b0996d.tar.bz2 |
Add new MouseEvent ctors; update WidgetWin & WindowWin usage.
BUG=72040
TEST=Manual mouse event testing.
Review URL: http://codereview.chromium.org/6591120
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@77221 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui/views')
-rw-r--r-- | ui/views/events/event_win.cc | 42 |
1 files changed, 17 insertions, 25 deletions
diff --git a/ui/views/events/event_win.cc b/ui/views/events/event_win.cc index b0eb456..9259a54c 100644 --- a/ui/views/events/event_win.cc +++ b/ui/views/events/event_win.cc @@ -18,12 +18,9 @@ namespace { // as with mouse messages, so we need to explicitly ask for these states. int GetKeyStateFlags() { int flags = 0; - if (GetKeyState(VK_MENU) & 0x80) - flags |= ui::Event::EF_ALT_DOWN; - if (GetKeyState(VK_SHIFT) & 0x80) - flags |= ui::Event::EF_SHIFT_DOWN; - if (GetKeyState(VK_CONTROL) & 0x80) - flags |= ui::Event::EF_CONTROL_DOWN; + flags |= (GetKeyState(VK_MENU) & 0x80)? ui::EF_ALT_DOWN : 0; + flags |= (GetKeyState(VK_SHIFT) & 0x80)? ui::EF_SHIFT_DOWN : 0; + flags |= (GetKeyState(VK_CONTROL) & 0x80)? ui::EF_CONTROL_DOWN : 0; return flags; } @@ -32,6 +29,7 @@ ui::Event::EventType EventTypeFromNative(NativeEvent native_event) { switch (native_event.message) { case WM_KEYDOWN: case WM_SYSKEYDOWN: + case WM_CHAR: return ui::Event::ET_KEY_PRESSED; case WM_KEYUP: case WM_SYSKEYUP: @@ -72,22 +70,22 @@ ui::Event::EventType EventTypeFromNative(NativeEvent native_event) { bool IsClientMouseEvent(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(NativeEvent native_event) { return native_event.message == WM_NCMOUSELEAVE || + native_event.message == WM_NCMOUSEHOVER || (native_event.message >= WM_NCMOUSEMOVE && - native_event.message <= WM_NCMBUTTONDBLCLK); + native_event.message <= WM_NCXBUTTONDBLCLK); } gfx::Point MousePositionFromNative(NativeEvent native_event) { - if (IsClientMouseEvent(native_event)) { - // Client message. The position is contained in the LPARAM. - return gfx::Point(GET_X_LPARAM(native_event.lParam), - GET_Y_LPARAM(native_event.lParam)); - } + // Client message. The position is contained in the LPARAM. + if (IsClientMouseEvent(native_event)) + return gfx::Point(native_event.lParam); DCHECK(IsNonClientMouseEvent(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. @@ -143,20 +141,14 @@ int MouseEventFlagsFromNative(NativeEvent native_event) { } int MouseWheelEventFlagsFromNative(NativeEvent native_event) { - int native_flags = GET_KEYSTATE_WPARAM(native_event.wParam); + int win_flags = GET_KEYSTATE_WPARAM(native_event.wParam); int flags = 0; - if (native_flags & MK_CONTROL) - flags |= ui::Event::EF_CONTROL_DOWN; - if (native_flags & MK_SHIFT) - flags |= ui::Event::EF_SHIFT_DOWN; - if (GetKeyState(VK_MENU) < 0) - flags |= ui::Event::EF_ALT_DOWN; - if (native_flags & MK_LBUTTON) - flags |= ui::Event::EF_LEFT_BUTTON_DOWN; - if (native_flags & MK_MBUTTON) - flags |= ui::Event::EF_MIDDLE_BUTTON_DOWN; - if (native_flags & MK_RBUTTON) - flags |= ui::Event::EF_RIGHT_BUTTON_DOWN; + flags |= (win_flags & MK_CONTROL) ? ui::MouseEvent::EF_CONTROL_DOWN : 0; + flags |= (win_flags & MK_SHIFT) ? ui::MouseEvent::EF_SHIFT_DOWN : 0; + flags |= (GetKeyState(VK_MENU) < 0) ? ui::MouseEvent::EF_ALT_DOWN : 0; + flags |= (win_flags & MK_LBUTTON) ? ui::MouseEvent::EF_LEFT_BUTTON_DOWN : 0; + flags |= (win_flags & MK_MBUTTON) ? ui::MouseEvent::EF_MIDDLE_BUTTON_DOWN : 0; + flags |= (win_flags & MK_RBUTTON) ? ui::MouseEvent::EF_RIGHT_BUTTON_DOWN : 0; return flags; } |