1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "ui/views/win/hwnd_util.h"
7 #include "ui/aura/window.h"
8 #include "ui/aura/window_tree_host.h"
9 #include "ui/views/widget/widget.h"
13 HWND
HWNDForView(const View
* view
) {
14 return view
->GetWidget() ? HWNDForWidget(view
->GetWidget()) : NULL
;
17 HWND
HWNDForWidget(const Widget
* widget
) {
18 return HWNDForNativeWindow(widget
->GetNativeWindow());
21 HWND
HWNDForNativeView(const gfx::NativeView view
) {
22 return view
&& view
->GetRootWindow() ?
23 view
->GetHost()->GetAcceleratedWidget() : NULL
;
26 HWND
HWNDForNativeWindow(const gfx::NativeWindow window
) {
27 return window
&& window
->GetRootWindow() ?
28 window
->GetHost()->GetAcceleratedWidget() : NULL
;
31 gfx::Rect
GetWindowBoundsForClientBounds(View
* view
,
32 const gfx::Rect
& client_bounds
) {
34 aura::WindowTreeHost
* host
= view
->GetWidget()->GetNativeWindow()->GetHost();
36 HWND hwnd
= host
->GetAcceleratedWidget();
37 RECT rect
= client_bounds
.ToRECT();
38 DWORD style
= ::GetWindowLong(hwnd
, GWL_STYLE
);
39 DWORD ex_style
= ::GetWindowLong(hwnd
, GWL_EXSTYLE
);
40 AdjustWindowRectEx(&rect
, style
, FALSE
, ex_style
);
41 return gfx::Rect(rect
);