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

Side by Side Diff: ui/views/widget/native_widget_win.h

Issue 10867096: Make HWNDMessageHandler subclass WindowImpl. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 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 unified diff | Download patch | Annotate | Revision Log
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_WIDGET_NATIVE_WIDGET_WIN_H_ 5 #ifndef UI_VIEWS_WIDGET_NATIVE_WIDGET_WIN_H_
6 #define UI_VIEWS_WIDGET_NATIVE_WIDGET_WIN_H_ 6 #define UI_VIEWS_WIDGET_NATIVE_WIDGET_WIN_H_
7 7
8 #include <atlbase.h>
9 #include <atlapp.h>
10 #include <atlcrack.h>
11 #include <atlmisc.h>
12
13 #include <set>
14 #include <string>
15 #include <vector> 8 #include <vector>
16 9
17 #include "base/memory/ref_counted.h"
18 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
19 #include "base/memory/scoped_vector.h" 11 #include "base/memory/scoped_vector.h"
20 #include "base/memory/weak_ptr.h"
21 #include "base/win/scoped_comptr.h" 12 #include "base/win/scoped_comptr.h"
22 #include "base/win/win_util.h" 13 #include "base/win/win_util.h"
23 #include "ui/base/win/window_impl.h" 14 #include "ui/base/win/window_impl.h"
24 #include "ui/views/focus/focus_manager.h"
25 #include "ui/views/layout/layout_manager.h"
26 #include "ui/views/widget/native_widget_private.h" 15 #include "ui/views/widget/native_widget_private.h"
27 #include "ui/views/win/hwnd_message_handler_delegate.h" 16 #include "ui/views/win/hwnd_message_handler_delegate.h"
28 17
29 namespace ui { 18 namespace ui {
30 class Compositor; 19 class Compositor;
31 class ViewProp; 20 class ViewProp;
32 } 21 }
33 22
34 namespace gfx { 23 namespace gfx {
35 class Canvas; 24 class Canvas;
36 class Font; 25 class Font;
37 class Rect; 26 class Rect;
38 } 27 }
39 28
40 namespace views { 29 namespace views {
41 30
42 class DropTargetWin; 31 class DropTargetWin;
43 class HWNDMessageHandler; 32 class HWNDMessageHandler;
44 class InputMethodDelegate; 33 class InputMethodDelegate;
45 class RootView; 34 class RootView;
46 class TooltipManagerWin; 35 class TooltipManagerWin;
47 36
48 // These two messages aren't defined in winuser.h, but they are sent to windows
49 // with captions. They appear to paint the window caption and frame.
50 // Unfortunately if you override the standard non-client rendering as we do
51 // with CustomFrameWindow, sometimes Windows (not deterministically
52 // reproducibly but definitely frequently) will send these messages to the
53 // window and paint the standard caption/title over the top of the custom one.
54 // So we need to handle these messages in CustomFrameWindow to prevent this
55 // from happening.
56 const int WM_NCUAHDRAWCAPTION = 0xAE;
57 const int WM_NCUAHDRAWFRAME = 0xAF;
58
59 /////////////////////////////////////////////////////////////////////////////// 37 ///////////////////////////////////////////////////////////////////////////////
60 // 38 //
61 // NativeWidgetWin 39 // NativeWidgetWin
62 // A Widget for a views hierarchy used to represent anything that can be 40 // A Widget for a views hierarchy used to represent anything that can be
63 // contained within an HWND, e.g. a control, a window, etc. Specializations 41 // contained within an HWND, e.g. a control, a window, etc. Specializations
64 // suitable for specific tasks, e.g. top level window, are derived from this. 42 // suitable for specific tasks, e.g. top level window, are derived from this.
65 // 43 //
66 // This Widget contains a RootView which owns the hierarchy of views within it. 44 // This Widget contains a RootView which owns the hierarchy of views within it.
67 // As long as views are part of this tree, they will be deleted automatically 45 // As long as views are part of this tree, they will be deleted automatically
68 // when the RootView is destroyed. If you remove a view from the tree, you are 46 // when the RootView is destroyed. If you remove a view from the tree, you are
69 // then responsible for cleaning up after it. 47 // then responsible for cleaning up after it.
70 // 48 //
71 /////////////////////////////////////////////////////////////////////////////// 49 ///////////////////////////////////////////////////////////////////////////////
72 class VIEWS_EXPORT NativeWidgetWin : public ui::WindowImpl, 50 class VIEWS_EXPORT NativeWidgetWin : public internal::NativeWidgetPrivate,
73 public internal::NativeWidgetPrivate,
74 public HWNDMessageHandlerDelegate { 51 public HWNDMessageHandlerDelegate {
75 public: 52 public:
76 explicit NativeWidgetWin(internal::NativeWidgetDelegate* delegate); 53 explicit NativeWidgetWin(internal::NativeWidgetDelegate* delegate);
77 virtual ~NativeWidgetWin(); 54 virtual ~NativeWidgetWin();
78 55
79 // Returns the system set window title font. 56 // Returns the system set window title font.
80 static gfx::Font GetWindowTitleFont(); 57 static gfx::Font GetWindowTitleFont();
81 58
82 // Show the window with the specified show command. 59 // Show the window with the specified show command.
83 void Show(int show_state); 60 void Show(int show_state);
(...skipping 11 matching lines...) Expand all
95 // associated hWnd's (e.g. NativeWidgetWin). 72 // associated hWnd's (e.g. NativeWidgetWin).
96 int AddAccessibilityViewEvent(View* view); 73 int AddAccessibilityViewEvent(View* view);
97 74
98 // Clear a view that has recently been removed on a hierarchy change. 75 // Clear a view that has recently been removed on a hierarchy change.
99 void ClearAccessibilityViewEvent(View* view); 76 void ClearAccessibilityViewEvent(View* view);
100 77
101 // Places the window in a pseudo-fullscreen mode where it looks and acts as 78 // Places the window in a pseudo-fullscreen mode where it looks and acts as
102 // like a fullscreen window except that it remains within the boundaries 79 // like a fullscreen window except that it remains within the boundaries
103 // of the metro snap divider. 80 // of the metro snap divider.
104 void SetMetroSnapFullscreen(bool metro_snap); 81 void SetMetroSnapFullscreen(bool metro_snap);
105
106 bool IsInMetroSnapMode() const; 82 bool IsInMetroSnapMode() const;
107 83
108 void SetCanUpdateLayeredWindow(bool can_update); 84 void SetCanUpdateLayeredWindow(bool can_update);
109 85
110 // Overridden from internal::NativeWidgetPrivate: 86 // Overridden from internal::NativeWidgetPrivate:
111 virtual void InitNativeWidget(const Widget::InitParams& params) OVERRIDE; 87 virtual void InitNativeWidget(const Widget::InitParams& params) OVERRIDE;
112 virtual NonClientFrameView* CreateNonClientFrameView() OVERRIDE; 88 virtual NonClientFrameView* CreateNonClientFrameView() OVERRIDE;
113 virtual void UpdateFrameAfterFrameChange() OVERRIDE; 89 virtual void UpdateFrameAfterFrameChange() OVERRIDE;
114 virtual bool ShouldUseNativeFrame() const OVERRIDE; 90 virtual bool ShouldUseNativeFrame() const OVERRIDE;
115 virtual void FrameTypeChanged() OVERRIDE; 91 virtual void FrameTypeChanged() OVERRIDE;
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
188 virtual void ClearNativeFocus() OVERRIDE; 164 virtual void ClearNativeFocus() OVERRIDE;
189 virtual void FocusNativeView(gfx::NativeView native_view) OVERRIDE; 165 virtual void FocusNativeView(gfx::NativeView native_view) OVERRIDE;
190 virtual gfx::Rect GetWorkAreaBoundsInScreen() const OVERRIDE; 166 virtual gfx::Rect GetWorkAreaBoundsInScreen() const OVERRIDE;
191 virtual void SetInactiveRenderingDisabled(bool value) OVERRIDE; 167 virtual void SetInactiveRenderingDisabled(bool value) OVERRIDE;
192 virtual Widget::MoveLoopResult RunMoveLoop( 168 virtual Widget::MoveLoopResult RunMoveLoop(
193 const gfx::Point& drag_offset) OVERRIDE; 169 const gfx::Point& drag_offset) OVERRIDE;
194 virtual void EndMoveLoop() OVERRIDE; 170 virtual void EndMoveLoop() OVERRIDE;
195 virtual void SetVisibilityChangedAnimationsEnabled(bool value) OVERRIDE; 171 virtual void SetVisibilityChangedAnimationsEnabled(bool value) OVERRIDE;
196 172
197 protected: 173 protected:
198 // Overridden from WindowImpl:
199 virtual HICON GetDefaultWindowIcon() const OVERRIDE;
200 virtual LRESULT OnWndProc(UINT message,
201 WPARAM w_param,
202 LPARAM l_param) OVERRIDE;
203
204 // Message Handlers ----------------------------------------------------------
205
206 BEGIN_MSG_MAP_EX(NativeWidgetWin)
207 // Range handlers must go first!
208 MESSAGE_RANGE_HANDLER_EX(WM_MOUSEFIRST, WM_MOUSELAST, OnMouseRange)
209 MESSAGE_RANGE_HANDLER_EX(WM_NCMOUSEMOVE, WM_NCXBUTTONDBLCLK, OnMouseRange)
210
211 // Reflected message handler
212 MESSAGE_HANDLER_EX(base::win::kReflectedMessage, OnReflectedMessage)
213
214 // CustomFrameWindow hacks
215 MESSAGE_HANDLER_EX(WM_NCUAHDRAWCAPTION, OnNCUAHDrawCaption)
216 MESSAGE_HANDLER_EX(WM_NCUAHDRAWFRAME, OnNCUAHDrawFrame)
217
218 // Vista and newer
219 MESSAGE_HANDLER_EX(WM_DWMCOMPOSITIONCHANGED, OnDwmCompositionChanged)
220
221 // Non-atlcrack.h handlers
222 MESSAGE_HANDLER_EX(WM_GETOBJECT, OnGetObject)
223
224 // Mouse events.
225 MESSAGE_HANDLER_EX(WM_MOUSEACTIVATE, OnMouseActivate)
226 MESSAGE_HANDLER_EX(WM_MOUSELEAVE, OnMouseRange)
227 MESSAGE_HANDLER_EX(WM_NCMOUSELEAVE, OnMouseRange)
228 MESSAGE_HANDLER_EX(WM_SETCURSOR, OnSetCursor);
229
230 // Key events.
231 MESSAGE_HANDLER_EX(WM_KEYDOWN, OnKeyEvent)
232 MESSAGE_HANDLER_EX(WM_KEYUP, OnKeyEvent)
233 MESSAGE_HANDLER_EX(WM_SYSKEYDOWN, OnKeyEvent)
234 MESSAGE_HANDLER_EX(WM_SYSKEYUP, OnKeyEvent)
235
236 // IME Events.
237 MESSAGE_HANDLER_EX(WM_IME_SETCONTEXT, OnImeMessages)
238 MESSAGE_HANDLER_EX(WM_IME_STARTCOMPOSITION, OnImeMessages)
239 MESSAGE_HANDLER_EX(WM_IME_COMPOSITION, OnImeMessages)
240 MESSAGE_HANDLER_EX(WM_IME_ENDCOMPOSITION, OnImeMessages)
241 MESSAGE_HANDLER_EX(WM_IME_REQUEST, OnImeMessages)
242 MESSAGE_HANDLER_EX(WM_CHAR, OnImeMessages)
243 MESSAGE_HANDLER_EX(WM_SYSCHAR, OnImeMessages)
244 MESSAGE_HANDLER_EX(WM_DEADCHAR, OnImeMessages)
245 MESSAGE_HANDLER_EX(WM_SYSDEADCHAR, OnImeMessages)
246
247 // Touch Events.
248 MESSAGE_HANDLER_EX(WM_TOUCH, OnTouchEvent)
249
250 // This list is in _ALPHABETICAL_ order! OR I WILL HURT YOU.
251 MSG_WM_ACTIVATE(OnActivate)
252 MSG_WM_ACTIVATEAPP(OnActivateApp)
253 MSG_WM_APPCOMMAND(OnAppCommand)
254 MSG_WM_CANCELMODE(OnCancelMode)
255 MSG_WM_CAPTURECHANGED(OnCaptureChanged)
256 MSG_WM_CLOSE(OnClose)
257 MSG_WM_COMMAND(OnCommand)
258 MSG_WM_CREATE(OnCreate)
259 MSG_WM_DESTROY(OnDestroy)
260 MSG_WM_DISPLAYCHANGE(OnDisplayChange)
261 MSG_WM_ERASEBKGND(OnEraseBkgnd)
262 MSG_WM_ENDSESSION(OnEndSession)
263 MSG_WM_ENTERSIZEMOVE(OnEnterSizeMove)
264 MSG_WM_EXITMENULOOP(OnExitMenuLoop)
265 MSG_WM_EXITSIZEMOVE(OnExitSizeMove)
266 MSG_WM_GETMINMAXINFO(OnGetMinMaxInfo)
267 MSG_WM_HSCROLL(OnHScroll)
268 MSG_WM_INITMENU(OnInitMenu)
269 MSG_WM_INITMENUPOPUP(OnInitMenuPopup)
270 MSG_WM_INPUTLANGCHANGE(OnInputLangChange)
271 MSG_WM_KILLFOCUS(OnKillFocus)
272 MSG_WM_MOVE(OnMove)
273 MSG_WM_MOVING(OnMoving)
274 MSG_WM_NCACTIVATE(OnNCActivate)
275 MSG_WM_NCCALCSIZE(OnNCCalcSize)
276 MSG_WM_NCHITTEST(OnNCHitTest)
277 MSG_WM_NCPAINT(OnNCPaint)
278 MSG_WM_NOTIFY(OnNotify)
279 MSG_WM_PAINT(OnPaint)
280 MSG_WM_POWERBROADCAST(OnPowerBroadcast)
281 MSG_WM_SETFOCUS(OnSetFocus)
282 MSG_WM_SETICON(OnSetIcon)
283 MSG_WM_SETTEXT(OnSetText)
284 MSG_WM_SETTINGCHANGE(OnSettingChange)
285 MSG_WM_SIZE(OnSize)
286 MSG_WM_SYSCOMMAND(OnSysCommand)
287 MSG_WM_THEMECHANGED(OnThemeChanged)
288 MSG_WM_VSCROLL(OnVScroll)
289 MSG_WM_WINDOWPOSCHANGING(OnWindowPosChanging)
290 MSG_WM_WINDOWPOSCHANGED(OnWindowPosChanged)
291 END_MSG_MAP()
292
293 // These are all virtual so that specialized Widgets can modify or augment
294 // processing.
295 // This list is in _ALPHABETICAL_ order!
296 // Note: in the base class these functions must do nothing but convert point
297 // coordinates to client coordinates (if necessary) and forward the
298 // handling to the appropriate Process* function. This is so that
299 // subclasses can easily override these methods to do different things
300 // and have a convenient function to call to get the default behavior.
301 virtual void OnActivate(UINT action, BOOL minimized, HWND window);
302 virtual void OnActivateApp(BOOL active, DWORD thread_id);
303 virtual LRESULT OnAppCommand(HWND window, short app_command, WORD device,
304 int keystate);
305 virtual void OnCancelMode();
306 virtual void OnCaptureChanged(HWND hwnd);
307 virtual void OnClose();
308 virtual void OnCommand(UINT notification_code, int command_id, HWND window);
309 virtual LRESULT OnCreate(CREATESTRUCT* create_struct);
310 // WARNING: If you override this be sure and invoke super, otherwise we'll
311 // leak a few things.
312 virtual void OnDestroy();
313 virtual void OnDisplayChange(UINT bits_per_pixel, CSize screen_size);
314 virtual LRESULT OnDwmCompositionChanged(UINT msg,
315 WPARAM w_param,
316 LPARAM l_param);
317 virtual void OnEndSession(BOOL ending, UINT logoff);
318 virtual void OnEnterSizeMove();
319 virtual LRESULT OnEraseBkgnd(HDC dc);
320 virtual void OnExitMenuLoop(BOOL is_track_popup_menu);
321 virtual void OnExitSizeMove();
322 virtual LRESULT OnGetObject(UINT uMsg, WPARAM w_param, LPARAM l_param);
323 virtual void OnGetMinMaxInfo(MINMAXINFO* minmax_info);
324 virtual void OnHScroll(int scroll_type, short position, HWND scrollbar);
325 virtual LRESULT OnImeMessages(UINT message, WPARAM w_param, LPARAM l_param);
326 virtual void OnInitMenu(HMENU menu);
327 virtual void OnInitMenuPopup(HMENU menu, UINT position, BOOL is_system_menu);
328 virtual void OnInputLangChange(DWORD character_set, HKL input_language_id);
329 virtual LRESULT OnKeyEvent(UINT message, WPARAM w_param, LPARAM l_param);
330 virtual void OnKillFocus(HWND focused_window);
331 virtual LRESULT OnMouseActivate(UINT message, WPARAM w_param, LPARAM l_param);
332 virtual LRESULT OnMouseRange(UINT message, WPARAM w_param, LPARAM l_param);
333 virtual void OnMove(const CPoint& point);
334 virtual void OnMoving(UINT param, LPRECT new_bounds);
335 virtual LRESULT OnNCActivate(BOOL active);
336 virtual LRESULT OnNCCalcSize(BOOL w_param, LPARAM l_param);
337 virtual LRESULT OnNCHitTest(const CPoint& pt);
338 virtual void OnNCPaint(HRGN rgn);
339 virtual LRESULT OnNCUAHDrawCaption(UINT msg,
340 WPARAM w_param,
341 LPARAM l_param);
342 virtual LRESULT OnNCUAHDrawFrame(UINT msg, WPARAM w_param, LPARAM l_param);
343 virtual LRESULT OnNotify(int w_param, NMHDR* l_param);
344 virtual void OnPaint(HDC dc);
345 virtual LRESULT OnPowerBroadcast(DWORD power_event, DWORD data);
346 virtual LRESULT OnReflectedMessage(UINT msg, WPARAM w_param, LPARAM l_param);
347 virtual LRESULT OnSetCursor(UINT message, WPARAM w_param, LPARAM l_param);
348 virtual void OnSetFocus(HWND old_focused_window);
349 virtual LRESULT OnSetIcon(UINT size_type, HICON new_icon);
350 virtual LRESULT OnSetText(const wchar_t* text);
351 virtual void OnSettingChange(UINT flags, const wchar_t* section);
352 virtual void OnSize(UINT param, const CSize& size);
353 virtual void OnSysCommand(UINT notification_code, CPoint click);
354 virtual void OnThemeChanged();
355 virtual LRESULT OnTouchEvent(UINT message, WPARAM w_param, LPARAM l_param);
356 virtual void OnVScroll(int scroll_type, short position, HWND scrollbar);
357 virtual void OnWindowPosChanging(WINDOWPOS* window_pos);
358 virtual void OnWindowPosChanged(WINDOWPOS* window_pos);
359
360 // Deletes this window as it is destroyed, override to provide different 174 // Deletes this window as it is destroyed, override to provide different
361 // behavior. 175 // behavior.
362 virtual void OnFinalMessage(HWND window); 176 virtual void OnFinalMessage(HWND window);
363 177
364 // Called when a MSAA screen reader client is detected. 178 // Called when a MSAA screen reader client is detected.
365 virtual void OnScreenReaderDetected(); 179 virtual void OnScreenReaderDetected();
366 180
367 // The TooltipManager. This is NULL if there is a problem creating the 181 HWNDMessageHandler* GetMessageHandler();
368 // underlying tooltip window.
369 // WARNING: RootView's destructor calls into the TooltipManager. As such, this
370 // must be destroyed AFTER root_view_.
371 scoped_ptr<TooltipManagerWin> tooltip_manager_;
372
373 scoped_refptr<DropTargetWin> drop_target_;
374 182
375 // Overridden from HWNDMessageHandlerDelegate: 183 // Overridden from HWNDMessageHandlerDelegate:
376 virtual bool IsWidgetWindow() const OVERRIDE; 184 virtual bool IsWidgetWindow() const OVERRIDE;
377 virtual bool IsUsingCustomFrame() const OVERRIDE; 185 virtual bool IsUsingCustomFrame() const OVERRIDE;
378 virtual void SchedulePaint() OVERRIDE; 186 virtual void SchedulePaint() OVERRIDE;
379 virtual void EnableInactiveRendering() OVERRIDE; 187 virtual void EnableInactiveRendering() OVERRIDE;
380 virtual bool IsInactiveRenderingDisabled() OVERRIDE; 188 virtual bool IsInactiveRenderingDisabled() OVERRIDE;
381 virtual bool CanResize() const OVERRIDE; 189 virtual bool CanResize() const OVERRIDE;
382 virtual bool CanMaximize() const OVERRIDE; 190 virtual bool CanMaximize() const OVERRIDE;
383 virtual bool CanActivate() const OVERRIDE; 191 virtual bool CanActivate() const OVERRIDE;
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
432 virtual void HandleTooltipMouseMove(UINT message, 240 virtual void HandleTooltipMouseMove(UINT message,
433 WPARAM w_param, 241 WPARAM w_param,
434 LPARAM l_param) OVERRIDE; 242 LPARAM l_param) OVERRIDE;
435 virtual bool PreHandleMSG(UINT message, 243 virtual bool PreHandleMSG(UINT message,
436 WPARAM w_param, 244 WPARAM w_param,
437 LPARAM l_param, 245 LPARAM l_param,
438 LRESULT* result) OVERRIDE; 246 LRESULT* result) OVERRIDE;
439 virtual void PostHandleMSG(UINT message, 247 virtual void PostHandleMSG(UINT message,
440 WPARAM w_param, 248 WPARAM w_param,
441 LPARAM l_param) OVERRIDE; 249 LPARAM l_param) OVERRIDE;
442 virtual NativeWidgetWin* AsNativeWidgetWin() OVERRIDE; 250
251 // The TooltipManager. This is NULL if there is a problem creating the
252 // underlying tooltip window.
253 // WARNING: RootView's destructor calls into the TooltipManager. As such, this
254 // must be destroyed AFTER root_view_.
255 scoped_ptr<TooltipManagerWin> tooltip_manager_;
256
257 scoped_refptr<DropTargetWin> drop_target_;
443 258
444 private: 259 private:
445 typedef ScopedVector<ui::ViewProp> ViewProps; 260 typedef ScopedVector<ui::ViewProp> ViewProps;
446 261
447 // TODO(beng): This friendship can be removed once all methods relating to
448 // this object being a WindowImpl are moved to HWNDMessageHandler.
449 friend HWNDMessageHandler;
450
451 void SetInitParams(const Widget::InitParams& params); 262 void SetInitParams(const Widget::InitParams& params);
452 263
453 // A delegate implementation that handles events received here. 264 // A delegate implementation that handles events received here.
454 // See class documentation for Widget in widget.h for a note about ownership. 265 // See class documentation for Widget in widget.h for a note about ownership.
455 internal::NativeWidgetDelegate* delegate_; 266 internal::NativeWidgetDelegate* delegate_;
456 267
457 // See class documentation for Widget in widget.h for a note about ownership. 268 // See class documentation for Widget in widget.h for a note about ownership.
458 Widget::InitParams::Ownership ownership_; 269 Widget::InitParams::Ownership ownership_;
459 270
460 // Instance of accessibility information and handling for MSAA root 271 // Instance of accessibility information and handling for MSAA root
(...skipping 25 matching lines...) Expand all
486 bool has_non_client_view_; 297 bool has_non_client_view_;
487 298
488 scoped_ptr<HWNDMessageHandler> message_handler_; 299 scoped_ptr<HWNDMessageHandler> message_handler_;
489 300
490 DISALLOW_COPY_AND_ASSIGN(NativeWidgetWin); 301 DISALLOW_COPY_AND_ASSIGN(NativeWidgetWin);
491 }; 302 };
492 303
493 } // namespace views 304 } // namespace views
494 305
495 #endif // UI_VIEWS_WIDGET_NATIVE_WIDGET_WIN_H_ 306 #endif // UI_VIEWS_WIDGET_NATIVE_WIDGET_WIN_H_
OLDNEW
« no previous file with comments | « chrome/browser/ui/views/frame/browser_frame_win.cc ('k') | ui/views/widget/native_widget_win.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698