Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(330)

Unified Diff: aura/event_win.cc

Issue 7886042: Move Aura to UI subdir. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « aura/event.cc ('k') | aura/event_x.cc » ('j') | ui/aura/aura.gyp » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: aura/event_win.cc
===================================================================
--- aura/event_win.cc (revision 100961)
+++ aura/event_win.cc (working copy)
@@ -1,222 +0,0 @@
-// Copyright (c) 2011 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 "aura/event.h"
-
-#include "base/logging.h"
-#include "ui/base/keycodes/keyboard_code_conversion_win.h"
-
-namespace aura {
-
-namespace {
-
-bool IsClientMouseEvent(const 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 NativeEvent& native_event) {
- return native_event.message == WM_NCMOUSELEAVE ||
- native_event.message == WM_NCMOUSEHOVER ||
- (native_event.message >= WM_NCMOUSEMOVE &&
- native_event.message <= WM_NCXBUTTONDBLCLK);
-}
-
-// Returns a mask corresponding to the set of modifier keys that are currently
-// pressed. Windows key messages don't come with control key state as parameters
-// as with mouse messages, so we need to explicitly ask for these states.
-int GetKeyStateFlags() {
- int flags = 0;
- 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;
-}
-
-bool IsButtonDown(NativeEvent native_event) {
- return (native_event.wParam & (MK_LBUTTON | MK_MBUTTON | MK_RBUTTON |
- MK_XBUTTON1 | MK_XBUTTON2)) != 0;
-}
-
-// Convert windows message identifiers to Event types.
-ui::EventType EventTypeFromNative(NativeEvent native_event) {
- switch (native_event.message) {
- case WM_KEYDOWN:
- case WM_SYSKEYDOWN:
- case WM_CHAR:
- return ui::ET_KEY_PRESSED;
- case WM_KEYUP:
- case WM_SYSKEYUP:
- return ui::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 ui::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 ui::ET_MOUSE_RELEASED;
- case WM_MOUSEMOVE:
- return IsButtonDown(native_event) ? ui::ET_MOUSE_DRAGGED :
- ui::ET_MOUSE_MOVED;
- case WM_NCMOUSEMOVE:
- return ui::ET_MOUSE_MOVED;
- case WM_MOUSEWHEEL:
- return ui::ET_MOUSEWHEEL;
- case WM_MOUSELEAVE:
- case WM_NCMOUSELEAVE:
- return ui::ET_MOUSE_EXITED;
- default:
- NOTREACHED();
- }
- return ui::ET_UNKNOWN;
-}
-
-// Get views::Event flags from a native Windows message
-int EventFlagsFromNative(NativeEvent native_event) {
- int flags = 0;
-
- // TODO(msw): ORing the pressed/released button into the flags is _wrong_.
- // It makes it impossible to tell which button was modified when multiple
- // buttons are/were held down. We need to instead put the modified button into
- // a separate member on the MouseEvent, then audit all consumers of
- // MouseEvents to fix them to use the resulting values correctly.
- switch (native_event.message) {
- case WM_LBUTTONDBLCLK:
- case WM_LBUTTONDOWN:
- case WM_LBUTTONUP:
- case WM_NCLBUTTONDBLCLK:
- case WM_NCLBUTTONDOWN:
- case WM_NCLBUTTONUP:
- native_event.wParam |= MK_LBUTTON;
- break;
- case WM_MBUTTONDBLCLK:
- case WM_MBUTTONDOWN:
- case WM_MBUTTONUP:
- case WM_NCMBUTTONDBLCLK:
- case WM_NCMBUTTONDOWN:
- case WM_NCMBUTTONUP:
- native_event.wParam |= MK_MBUTTON;
- break;
- case WM_RBUTTONDBLCLK:
- case WM_RBUTTONDOWN:
- case WM_RBUTTONUP:
- case WM_NCRBUTTONDBLCLK:
- case WM_NCRBUTTONDOWN:
- case WM_NCRBUTTONUP:
- native_event.wParam |= MK_RBUTTON;
- break;
- case WM_NCXBUTTONDBLCLK:
- case WM_NCXBUTTONDOWN:
- case WM_NCXBUTTONUP:
- case WM_XBUTTONDBLCLK:
- case WM_XBUTTONDOWN:
- case WM_XBUTTONUP:
- native_event.wParam |= MK_XBUTTON1;
- break;
- }
-
- // Check if the event occurred in the non-client area.
- if (IsNonClientMouseEvent(native_event))
- flags |= ui::EF_IS_NON_CLIENT;
-
- // Check for double click events.
- switch (native_event.message) {
- case WM_NCLBUTTONDBLCLK:
- case WM_NCMBUTTONDBLCLK:
- case WM_NCRBUTTONDBLCLK:
- case WM_NCXBUTTONDBLCLK:
- case WM_LBUTTONDBLCLK:
- case WM_MBUTTONDBLCLK:
- case WM_RBUTTONDBLCLK:
- case WM_XBUTTONDBLCLK:
- flags |= ui::EF_IS_DOUBLE_CLICK;
- break;
- }
-
- // For non-client mouse message, the WPARAM value represents the hit test
- // result, instead of the key state.
- switch (native_event.message) {
- case WM_NCLBUTTONDOWN:
- case WM_NCLBUTTONUP:
- flags |= ui::EF_LEFT_BUTTON_DOWN;
- break;
- case WM_NCMBUTTONDOWN:
- case WM_NCMBUTTONUP:
- flags |= ui::EF_MIDDLE_BUTTON_DOWN;
- break;
- case WM_NCRBUTTONDOWN:
- case WM_NCRBUTTONUP:
- flags |= ui::EF_RIGHT_BUTTON_DOWN;
- break;
- default: {
- UINT win_flags = GET_KEYSTATE_WPARAM(native_event.wParam);
- flags |= (win_flags & MK_CONTROL) ? ui::EF_CONTROL_DOWN : 0;
- flags |= (win_flags & MK_SHIFT) ? ui::EF_SHIFT_DOWN : 0;
- flags |= (GetKeyState(VK_MENU) < 0) ? ui::EF_ALT_DOWN : 0;
- flags |= (win_flags & MK_LBUTTON) ? ui::EF_LEFT_BUTTON_DOWN : 0;
- flags |= (win_flags & MK_MBUTTON) ? ui::EF_MIDDLE_BUTTON_DOWN : 0;
- flags |= (win_flags & MK_RBUTTON) ? ui::EF_RIGHT_BUTTON_DOWN : 0;
- break;
- }
- }
-
- return flags;
-}
-
-} // namespace
-
-void Event::Init() {
- ZeroMemory(&native_event_, sizeof(native_event_));
-}
-
-void Event::InitWithNativeEvent(NativeEvent native_event) {
- native_event_ = native_event;
-}
-
-LocatedEvent::LocatedEvent(NativeEvent native_event)
- : Event(native_event, EventTypeFromNative(native_event),
- EventFlagsFromNative(native_event)),
- location_(native_event.pt.x, native_event.pt.y) {
-}
-
-MouseEvent::MouseEvent(NativeEvent native_event)
- : LocatedEvent(native_event) {
- if (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.
- POINT native_point = location_.ToPOINT();
- ScreenToClient(native_event.hwnd, &native_point);
- location_ = gfx::Point(native_point);
- }
-}
-
-KeyEvent::KeyEvent(NativeEvent native_event)
- : Event(native_event,
- EventTypeFromNative(native_event),
- GetKeyStateFlags()),
- key_code_(ui::KeyboardCodeForWindowsKeyCode(native_event.wParam)) {
-}
-
-} // namespace aura
« no previous file with comments | « aura/event.cc ('k') | aura/event_x.cc » ('j') | ui/aura/aura.gyp » ('J')

Powered by Google App Engine
This is Rietveld 408576698