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

Side by Side Diff: ui/views/win/hwnd_message_handler.h

Issue 1177503003: Remove the 2-level input method system & InputMethodBridge. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: nits. Created 5 years, 5 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 unified diff | Download patch
« no previous file with comments | « ui/views/widget/widget_unittest.cc ('k') | ui/views/win/hwnd_message_handler.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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_
OLDNEW
« no previous file with comments | « ui/views/widget/widget_unittest.cc ('k') | ui/views/win/hwnd_message_handler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698