| 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 <set> | 10 #include <set> | 
| 11 #include <vector> | 11 #include <vector> | 
| 12 | 12 | 
| 13 #include "base/basictypes.h" | 13 #include "base/basictypes.h" | 
| 14 #include "base/compiler_specific.h" | 14 #include "base/compiler_specific.h" | 
| 15 #include "base/memory/scoped_ptr.h" | 15 #include "base/memory/scoped_ptr.h" | 
| 16 #include "base/memory/weak_ptr.h" | 16 #include "base/memory/weak_ptr.h" | 
| 17 #include "base/strings/string16.h" | 17 #include "base/strings/string16.h" | 
| 18 #include "base/win/scoped_gdi_object.h" | 18 #include "base/win/scoped_gdi_object.h" | 
| 19 #include "base/win/win_util.h" | 19 #include "base/win/win_util.h" | 
| 20 #include "ui/accessibility/ax_enums.h" | 20 #include "ui/accessibility/ax_enums.h" | 
| 21 #include "ui/base/ui_base_types.h" | 21 #include "ui/base/ui_base_types.h" | 
| 22 #include "ui/base/win/window_event_target.h" | 22 #include "ui/base/win/window_event_target.h" | 
| 23 #include "ui/events/event.h" | 23 #include "ui/events/event.h" | 
| 24 #include "ui/gfx/geometry/rect.h" | 24 #include "ui/gfx/geometry/rect.h" | 
| 25 #include "ui/gfx/sequential_id_generator.h" | 25 #include "ui/gfx/sequential_id_generator.h" | 
| 26 #include "ui/gfx/win/window_impl.h" | 26 #include "ui/gfx/win/window_impl.h" | 
| 27 #include "ui/views/ime/input_method_delegate.h" |  | 
| 28 #include "ui/views/views_export.h" | 27 #include "ui/views/views_export.h" | 
| 29 | 28 | 
| 30 namespace gfx { | 29 namespace gfx { | 
| 31 class Canvas; | 30 class Canvas; | 
| 32 class ImageSkia; | 31 class ImageSkia; | 
| 33 class Insets; | 32 class Insets; | 
| 34 } | 33 } | 
| 35 | 34 | 
| 36 namespace ui  { | 35 namespace ui  { | 
| 37 class ViewProp; | 36 class ViewProp; | 
| 38 } | 37 } | 
| 39 | 38 | 
| 40 namespace views { | 39 namespace views { | 
| 41 | 40 | 
| 42 class FullscreenHandler; | 41 class FullscreenHandler; | 
| 43 class HWNDMessageHandlerDelegate; | 42 class HWNDMessageHandlerDelegate; | 
| 44 class InputMethod; |  | 
| 45 class WindowsSessionChangeObserver; | 43 class WindowsSessionChangeObserver; | 
| 46 | 44 | 
| 47 // These two messages aren't defined in winuser.h, but they are sent to windows | 45 // These two messages aren't defined in winuser.h, but they are sent to windows | 
| 48 // with captions. They appear to paint the window caption and frame. | 46 // with captions. They appear to paint the window caption and frame. | 
| 49 // Unfortunately if you override the standard non-client rendering as we do | 47 // Unfortunately if you override the standard non-client rendering as we do | 
| 50 // with CustomFrameWindow, sometimes Windows (not deterministically | 48 // with CustomFrameWindow, sometimes Windows (not deterministically | 
| 51 // reproducibly but definitely frequently) will send these messages to the | 49 // reproducibly but definitely frequently) will send these messages to the | 
| 52 // window and paint the standard caption/title over the top of the custom one. | 50 // window and paint the standard caption/title over the top of the custom one. | 
| 53 // So we need to handle these messages in CustomFrameWindow to prevent this | 51 // So we need to handle these messages in CustomFrameWindow to prevent this | 
| 54 // from happening. | 52 // from happening. | 
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 104       case 0: | 102       case 0: | 
| 105 | 103 | 
| 106 // An object that handles messages for a HWND that implements the views | 104 // An object that handles messages for a HWND that implements the views | 
| 107 // "Custom Frame" look. The purpose of this class is to isolate the windows- | 105 // "Custom Frame" look. The purpose of this class is to isolate the windows- | 
| 108 // specific message handling from the code that wraps it. It is intended to be | 106 // specific message handling from the code that wraps it. It is intended to be | 
| 109 // used by both a views::NativeWidget and an aura::WindowTreeHost | 107 // used by both a views::NativeWidget and an aura::WindowTreeHost | 
| 110 // implementation. | 108 // implementation. | 
| 111 // TODO(beng): This object should eventually *become* the WindowImpl. | 109 // TODO(beng): This object should eventually *become* the WindowImpl. | 
| 112 class VIEWS_EXPORT HWNDMessageHandler : | 110 class VIEWS_EXPORT HWNDMessageHandler : | 
| 113     public gfx::WindowImpl, | 111     public gfx::WindowImpl, | 
| 114     public internal::InputMethodDelegate, |  | 
| 115     public ui::WindowEventTarget { | 112     public ui::WindowEventTarget { | 
| 116  public: | 113  public: | 
| 117   explicit HWNDMessageHandler(HWNDMessageHandlerDelegate* delegate); | 114   explicit HWNDMessageHandler(HWNDMessageHandlerDelegate* delegate); | 
| 118   ~HWNDMessageHandler() override; | 115   ~HWNDMessageHandler() override; | 
| 119 | 116 | 
| 120   void Init(HWND parent, const gfx::Rect& bounds); | 117   void Init(HWND parent, const gfx::Rect& bounds); | 
| 121   void InitModalType(ui::ModalType modal_type); | 118   void InitModalType(ui::ModalType modal_type); | 
| 122 | 119 | 
| 123   void Close(); | 120   void Close(); | 
| 124   void CloseNow(); | 121   void CloseNow(); | 
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 201   } | 198   } | 
| 202 | 199 | 
| 203   void SetFullscreen(bool fullscreen); | 200   void SetFullscreen(bool fullscreen); | 
| 204 | 201 | 
| 205   // Updates the window style to reflect whether it can be resized or maximized. | 202   // Updates the window style to reflect whether it can be resized or maximized. | 
| 206   void SizeConstraintsChanged(); | 203   void SizeConstraintsChanged(); | 
| 207 | 204 | 
| 208  private: | 205  private: | 
| 209   typedef std::set<DWORD> TouchIDs; | 206   typedef std::set<DWORD> TouchIDs; | 
| 210 | 207 | 
| 211   // Overridden from internal::InputMethodDelegate: |  | 
| 212   void DispatchKeyEventPostIME(const ui::KeyEvent& key) override; |  | 
| 213 |  | 
| 214   // Overridden from WindowImpl: | 208   // Overridden from WindowImpl: | 
| 215   HICON GetDefaultWindowIcon() const override; | 209   HICON GetDefaultWindowIcon() const override; | 
| 216   HICON GetSmallWindowIcon() const override; | 210   HICON GetSmallWindowIcon() const override; | 
| 217   LRESULT OnWndProc(UINT message, WPARAM w_param, LPARAM l_param) override; | 211   LRESULT OnWndProc(UINT message, WPARAM w_param, LPARAM l_param) override; | 
| 218 | 212 | 
| 219   // Overridden from WindowEventTarget | 213   // Overridden from WindowEventTarget | 
| 220   LRESULT HandleMouseMessage(unsigned int message, | 214   LRESULT HandleMouseMessage(unsigned int message, | 
| 221                              WPARAM w_param, | 215                              WPARAM w_param, | 
| 222                              LPARAM l_param, | 216                              LPARAM l_param, | 
| 223                              bool* handled) override; | 217                              bool* handled) override; | 
| (...skipping 374 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 598 | 592 | 
| 599   // The factory used with BEGIN_SAFE_MSG_MAP_EX. | 593   // The factory used with BEGIN_SAFE_MSG_MAP_EX. | 
| 600   base::WeakPtrFactory<HWNDMessageHandler> weak_factory_; | 594   base::WeakPtrFactory<HWNDMessageHandler> weak_factory_; | 
| 601 | 595 | 
| 602   DISALLOW_COPY_AND_ASSIGN(HWNDMessageHandler); | 596   DISALLOW_COPY_AND_ASSIGN(HWNDMessageHandler); | 
| 603 }; | 597 }; | 
| 604 | 598 | 
| 605 }  // namespace views | 599 }  // namespace views | 
| 606 | 600 | 
| 607 #endif  // UI_VIEWS_WIN_HWND_MESSAGE_HANDLER_H_ | 601 #endif  // UI_VIEWS_WIN_HWND_MESSAGE_HANDLER_H_ | 
| OLD | NEW | 
|---|