OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef UI_VIEWS_WIN_HWND_MESSAGE_HANDLER_H_ | 5 #ifndef UI_VIEWS_WIN_HWND_MESSAGE_HANDLER_H_ |
6 #define UI_VIEWS_WIN_HWND_MESSAGE_HANDLER_H_ | 6 #define UI_VIEWS_WIN_HWND_MESSAGE_HANDLER_H_ |
7 | 7 |
8 #include <windows.h> | 8 #include <windows.h> |
9 | 9 |
10 #include <stddef.h> | 10 #include <stddef.h> |
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
228 LPARAM l_param, | 228 LPARAM l_param, |
229 bool* handled) override; | 229 bool* handled) override; |
230 LRESULT HandleKeyboardMessage(unsigned int message, | 230 LRESULT HandleKeyboardMessage(unsigned int message, |
231 WPARAM w_param, | 231 WPARAM w_param, |
232 LPARAM l_param, | 232 LPARAM l_param, |
233 bool* handled) override; | 233 bool* handled) override; |
234 LRESULT HandleTouchMessage(unsigned int message, | 234 LRESULT HandleTouchMessage(unsigned int message, |
235 WPARAM w_param, | 235 WPARAM w_param, |
236 LPARAM l_param, | 236 LPARAM l_param, |
237 bool* handled) override; | 237 bool* handled) override; |
238 | 238 LRESULT HandlePointerMessage(unsigned int message, |
| 239 WPARAM w_param, |
| 240 LPARAM l_param, |
| 241 bool* handled) override; |
239 LRESULT HandleScrollMessage(unsigned int message, | 242 LRESULT HandleScrollMessage(unsigned int message, |
240 WPARAM w_param, | 243 WPARAM w_param, |
241 LPARAM l_param, | 244 LPARAM l_param, |
242 bool* handled) override; | 245 bool* handled) override; |
243 | 246 |
244 LRESULT HandleNcHitTestMessage(unsigned int message, | 247 LRESULT HandleNcHitTestMessage(unsigned int message, |
245 WPARAM w_param, | 248 WPARAM w_param, |
246 LPARAM l_param, | 249 LPARAM l_param, |
247 bool* handled) override; | 250 bool* handled) override; |
248 | 251 |
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
351 CR_MESSAGE_HANDLER_EX(WM_GETOBJECT, OnGetObject) | 354 CR_MESSAGE_HANDLER_EX(WM_GETOBJECT, OnGetObject) |
352 | 355 |
353 // Mouse events. | 356 // Mouse events. |
354 CR_MESSAGE_HANDLER_EX(WM_MOUSEACTIVATE, OnMouseActivate) | 357 CR_MESSAGE_HANDLER_EX(WM_MOUSEACTIVATE, OnMouseActivate) |
355 CR_MESSAGE_HANDLER_EX(WM_MOUSELEAVE, OnMouseRange) | 358 CR_MESSAGE_HANDLER_EX(WM_MOUSELEAVE, OnMouseRange) |
356 CR_MESSAGE_HANDLER_EX(WM_NCMOUSELEAVE, OnMouseRange) | 359 CR_MESSAGE_HANDLER_EX(WM_NCMOUSELEAVE, OnMouseRange) |
357 CR_MESSAGE_HANDLER_EX(WM_SETCURSOR, OnSetCursor); | 360 CR_MESSAGE_HANDLER_EX(WM_SETCURSOR, OnSetCursor); |
358 | 361 |
359 // Pointer events. | 362 // Pointer events. |
360 CR_MESSAGE_HANDLER_EX(WM_POINTERACTIVATE, OnPointerActivate) | 363 CR_MESSAGE_HANDLER_EX(WM_POINTERACTIVATE, OnPointerActivate) |
| 364 CR_MESSAGE_HANDLER_EX(WM_POINTERDOWN, OnPointerEvent) |
| 365 CR_MESSAGE_HANDLER_EX(WM_POINTERUP, OnPointerEvent) |
| 366 CR_MESSAGE_HANDLER_EX(WM_POINTERUPDATE, OnPointerEvent) |
| 367 CR_MESSAGE_HANDLER_EX(WM_POINTERENTER, OnPointerEvent) |
| 368 CR_MESSAGE_HANDLER_EX(WM_POINTERLEAVE, OnPointerEvent) |
361 | 369 |
362 // Key events. | 370 // Key events. |
363 CR_MESSAGE_HANDLER_EX(WM_KEYDOWN, OnKeyEvent) | 371 CR_MESSAGE_HANDLER_EX(WM_KEYDOWN, OnKeyEvent) |
364 CR_MESSAGE_HANDLER_EX(WM_KEYUP, OnKeyEvent) | 372 CR_MESSAGE_HANDLER_EX(WM_KEYUP, OnKeyEvent) |
365 CR_MESSAGE_HANDLER_EX(WM_SYSKEYDOWN, OnKeyEvent) | 373 CR_MESSAGE_HANDLER_EX(WM_SYSKEYDOWN, OnKeyEvent) |
366 CR_MESSAGE_HANDLER_EX(WM_SYSKEYUP, OnKeyEvent) | 374 CR_MESSAGE_HANDLER_EX(WM_SYSKEYUP, OnKeyEvent) |
367 | 375 |
368 // IME Events. | 376 // IME Events. |
369 CR_MESSAGE_HANDLER_EX(WM_IME_SETCONTEXT, OnImeMessages) | 377 CR_MESSAGE_HANDLER_EX(WM_IME_SETCONTEXT, OnImeMessages) |
370 CR_MESSAGE_HANDLER_EX(WM_IME_STARTCOMPOSITION, OnImeMessages) | 378 CR_MESSAGE_HANDLER_EX(WM_IME_STARTCOMPOSITION, OnImeMessages) |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
416 CR_MSG_WM_NCPAINT(OnNCPaint) | 424 CR_MSG_WM_NCPAINT(OnNCPaint) |
417 CR_MSG_WM_NOTIFY(OnNotify) | 425 CR_MSG_WM_NOTIFY(OnNotify) |
418 CR_MSG_WM_PAINT(OnPaint) | 426 CR_MSG_WM_PAINT(OnPaint) |
419 CR_MSG_WM_SETFOCUS(OnSetFocus) | 427 CR_MSG_WM_SETFOCUS(OnSetFocus) |
420 CR_MSG_WM_SETICON(OnSetIcon) | 428 CR_MSG_WM_SETICON(OnSetIcon) |
421 CR_MSG_WM_SETTEXT(OnSetText) | 429 CR_MSG_WM_SETTEXT(OnSetText) |
422 CR_MSG_WM_SETTINGCHANGE(OnSettingChange) | 430 CR_MSG_WM_SETTINGCHANGE(OnSettingChange) |
423 CR_MSG_WM_SIZE(OnSize) | 431 CR_MSG_WM_SIZE(OnSize) |
424 CR_MSG_WM_SYSCOMMAND(OnSysCommand) | 432 CR_MSG_WM_SYSCOMMAND(OnSysCommand) |
425 CR_MSG_WM_THEMECHANGED(OnThemeChanged) | 433 CR_MSG_WM_THEMECHANGED(OnThemeChanged) |
426 CR_MSG_WM_TIMECHANGE(OnTimeChange) | |
427 CR_MSG_WM_WINDOWPOSCHANGED(OnWindowPosChanged) | 434 CR_MSG_WM_WINDOWPOSCHANGED(OnWindowPosChanged) |
428 CR_MSG_WM_WINDOWPOSCHANGING(OnWindowPosChanging) | 435 CR_MSG_WM_WINDOWPOSCHANGING(OnWindowPosChanging) |
429 CR_END_MSG_MAP() | 436 CR_END_MSG_MAP() |
430 | 437 |
431 // Message Handlers. | 438 // Message Handlers. |
432 // This list is in _ALPHABETICAL_ order! | 439 // This list is in _ALPHABETICAL_ order! |
433 // TODO(beng): Once this object becomes the WindowImpl, these methods can | 440 // TODO(beng): Once this object becomes the WindowImpl, these methods can |
434 // be made private. | 441 // be made private. |
435 void OnActivateApp(BOOL active, DWORD thread_id); | 442 void OnActivateApp(BOOL active, DWORD thread_id); |
436 // TODO(beng): return BOOL is temporary until this object becomes a | 443 // TODO(beng): return BOOL is temporary until this object becomes a |
(...skipping 16 matching lines...) Expand all Loading... |
453 void OnGetMinMaxInfo(MINMAXINFO* minmax_info); | 460 void OnGetMinMaxInfo(MINMAXINFO* minmax_info); |
454 LRESULT OnGetObject(UINT message, WPARAM w_param, LPARAM l_param); | 461 LRESULT OnGetObject(UINT message, WPARAM w_param, LPARAM l_param); |
455 LRESULT OnImeMessages(UINT message, WPARAM w_param, LPARAM l_param); | 462 LRESULT OnImeMessages(UINT message, WPARAM w_param, LPARAM l_param); |
456 void OnInitMenu(HMENU menu); | 463 void OnInitMenu(HMENU menu); |
457 void OnInputLangChange(DWORD character_set, HKL input_language_id); | 464 void OnInputLangChange(DWORD character_set, HKL input_language_id); |
458 LRESULT OnKeyEvent(UINT message, WPARAM w_param, LPARAM l_param); | 465 LRESULT OnKeyEvent(UINT message, WPARAM w_param, LPARAM l_param); |
459 void OnKillFocus(HWND focused_window); | 466 void OnKillFocus(HWND focused_window); |
460 LRESULT OnMouseActivate(UINT message, WPARAM w_param, LPARAM l_param); | 467 LRESULT OnMouseActivate(UINT message, WPARAM w_param, LPARAM l_param); |
461 LRESULT OnMouseRange(UINT message, WPARAM w_param, LPARAM l_param); | 468 LRESULT OnMouseRange(UINT message, WPARAM w_param, LPARAM l_param); |
462 LRESULT OnPointerActivate(UINT message, WPARAM w_param, LPARAM l_param); | 469 LRESULT OnPointerActivate(UINT message, WPARAM w_param, LPARAM l_param); |
| 470 LRESULT OnPointerEvent(UINT message, WPARAM w_param, LPARAM l_param); |
463 void OnMove(const gfx::Point& point); | 471 void OnMove(const gfx::Point& point); |
464 void OnMoving(UINT param, const RECT* new_bounds); | 472 void OnMoving(UINT param, const RECT* new_bounds); |
465 LRESULT OnNCActivate(UINT message, WPARAM w_param, LPARAM l_param); | 473 LRESULT OnNCActivate(UINT message, WPARAM w_param, LPARAM l_param); |
466 LRESULT OnNCCalcSize(BOOL mode, LPARAM l_param); | 474 LRESULT OnNCCalcSize(BOOL mode, LPARAM l_param); |
467 LRESULT OnNCCreate(LPCREATESTRUCT lpCreateStruct); | 475 LRESULT OnNCCreate(LPCREATESTRUCT lpCreateStruct); |
468 LRESULT OnNCHitTest(const gfx::Point& point); | 476 LRESULT OnNCHitTest(const gfx::Point& point); |
469 void OnNCPaint(HRGN rgn); | 477 void OnNCPaint(HRGN rgn); |
470 LRESULT OnNCUAHDrawCaption(UINT message, WPARAM w_param, LPARAM l_param); | 478 LRESULT OnNCUAHDrawCaption(UINT message, WPARAM w_param, LPARAM l_param); |
471 LRESULT OnNCUAHDrawFrame(UINT message, WPARAM w_param, LPARAM l_param); | 479 LRESULT OnNCUAHDrawFrame(UINT message, WPARAM w_param, LPARAM l_param); |
472 LRESULT OnNotify(int w_param, NMHDR* l_param); | 480 LRESULT OnNotify(int w_param, NMHDR* l_param); |
473 void OnPaint(HDC dc); | 481 void OnPaint(HDC dc); |
474 LRESULT OnReflectedMessage(UINT message, WPARAM w_param, LPARAM l_param); | 482 LRESULT OnReflectedMessage(UINT message, WPARAM w_param, LPARAM l_param); |
475 LRESULT OnScrollMessage(UINT message, WPARAM w_param, LPARAM l_param); | 483 LRESULT OnScrollMessage(UINT message, WPARAM w_param, LPARAM l_param); |
476 LRESULT OnSetCursor(UINT message, WPARAM w_param, LPARAM l_param); | 484 LRESULT OnSetCursor(UINT message, WPARAM w_param, LPARAM l_param); |
477 void OnSetFocus(HWND last_focused_window); | 485 void OnSetFocus(HWND last_focused_window); |
478 LRESULT OnSetIcon(UINT size_type, HICON new_icon); | 486 LRESULT OnSetIcon(UINT size_type, HICON new_icon); |
479 LRESULT OnSetText(const wchar_t* text); | 487 LRESULT OnSetText(const wchar_t* text); |
480 void OnSettingChange(UINT flags, const wchar_t* section); | 488 void OnSettingChange(UINT flags, const wchar_t* section); |
481 void OnSize(UINT param, const gfx::Size& size); | 489 void OnSize(UINT param, const gfx::Size& size); |
482 void OnSysCommand(UINT notification_code, const gfx::Point& point); | 490 void OnSysCommand(UINT notification_code, const gfx::Point& point); |
483 void OnThemeChanged(); | 491 void OnThemeChanged(); |
484 void OnTimeChange(); | |
485 LRESULT OnTouchEvent(UINT message, WPARAM w_param, LPARAM l_param); | 492 LRESULT OnTouchEvent(UINT message, WPARAM w_param, LPARAM l_param); |
486 void OnWindowPosChanging(WINDOWPOS* window_pos); | 493 void OnWindowPosChanging(WINDOWPOS* window_pos); |
487 void OnWindowPosChanged(WINDOWPOS* window_pos); | 494 void OnWindowPosChanged(WINDOWPOS* window_pos); |
488 LRESULT OnWindowSizingFinished(UINT message, WPARAM w_param, LPARAM l_param); | 495 LRESULT OnWindowSizingFinished(UINT message, WPARAM w_param, LPARAM l_param); |
489 | 496 |
490 // Receives Windows Session Change notifications. | 497 // Receives Windows Session Change notifications. |
491 void OnSessionChange(WPARAM status_code); | 498 void OnSessionChange(WPARAM status_code); |
492 | 499 |
493 typedef std::vector<ui::TouchEvent> TouchEvents; | 500 typedef std::vector<ui::TouchEvent> TouchEvents; |
494 // Helper to handle the list of touch events passed in. We need this because | 501 // Helper to handle the list of touch events passed in. We need this because |
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
690 gfx::Point caption_left_button_click_pos_; | 697 gfx::Point caption_left_button_click_pos_; |
691 | 698 |
692 // Set to true if the left mouse button has been pressed on the caption. | 699 // Set to true if the left mouse button has been pressed on the caption. |
693 // Defaults to false. | 700 // Defaults to false. |
694 bool left_button_down_on_caption_; | 701 bool left_button_down_on_caption_; |
695 | 702 |
696 // Set to true if the window is a background fullscreen window, i.e a | 703 // Set to true if the window is a background fullscreen window, i.e a |
697 // fullscreen window which lost activation. Defaults to false. | 704 // fullscreen window which lost activation. Defaults to false. |
698 bool background_fullscreen_hack_; | 705 bool background_fullscreen_hack_; |
699 | 706 |
| 707 bool is_pointer_in_range_; |
| 708 |
700 // This is a map of the HMONITOR to full screeen window instance. It is safe | 709 // This is a map of the HMONITOR to full screeen window instance. It is safe |
701 // to keep a raw pointer to the HWNDMessageHandler instance as we track the | 710 // to keep a raw pointer to the HWNDMessageHandler instance as we track the |
702 // window destruction and ensure that the map is cleaned up. | 711 // window destruction and ensure that the map is cleaned up. |
703 using FullscreenWindowMonitorMap = std::map<HMONITOR, HWNDMessageHandler*>; | 712 using FullscreenWindowMonitorMap = std::map<HMONITOR, HWNDMessageHandler*>; |
704 static base::LazyInstance<FullscreenWindowMonitorMap>::DestructorAtExit | 713 static base::LazyInstance<FullscreenWindowMonitorMap>::DestructorAtExit |
705 fullscreen_monitor_map_; | 714 fullscreen_monitor_map_; |
706 | 715 |
707 // The WeakPtrFactories below must occur last in the class definition so they | 716 // The WeakPtrFactories below must occur last in the class definition so they |
708 // get destroyed last. | 717 // get destroyed last. |
709 | 718 |
710 // The factory used to lookup appbar autohide edges. | 719 // The factory used to lookup appbar autohide edges. |
711 base::WeakPtrFactory<HWNDMessageHandler> autohide_factory_; | 720 base::WeakPtrFactory<HWNDMessageHandler> autohide_factory_; |
712 | 721 |
713 // The factory used with BEGIN_SAFE_MSG_MAP_EX. | 722 // The factory used with BEGIN_SAFE_MSG_MAP_EX. |
714 base::WeakPtrFactory<HWNDMessageHandler> weak_factory_; | 723 base::WeakPtrFactory<HWNDMessageHandler> weak_factory_; |
715 | 724 |
716 DISALLOW_COPY_AND_ASSIGN(HWNDMessageHandler); | 725 DISALLOW_COPY_AND_ASSIGN(HWNDMessageHandler); |
717 }; | 726 }; |
718 | 727 |
719 } // namespace views | 728 } // namespace views |
720 | 729 |
721 #endif // UI_VIEWS_WIN_HWND_MESSAGE_HANDLER_H_ | 730 #endif // UI_VIEWS_WIN_HWND_MESSAGE_HANDLER_H_ |
OLD | NEW |