OLD | NEW |
| (Empty) |
1 // Copyright (c) 2011 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. | |
4 | |
5 #include "chrome/browser/ui/views/bubble/border_widget_win.h" | |
6 | |
7 #include <windows.h> | |
8 | |
9 #include "chrome/browser/ui/views/bubble/border_contents.h" | |
10 #include "ui/views/widget/widget.h" | |
11 | |
12 BorderWidgetWin::BorderWidgetWin() | |
13 : views::NativeWidgetWin(new views::Widget), | |
14 border_contents_(NULL) { | |
15 } | |
16 | |
17 void BorderWidgetWin::InitBorderWidgetWin(BorderContents* border_contents, | |
18 HWND owner) { | |
19 DCHECK(!border_contents_); | |
20 border_contents_ = border_contents; | |
21 border_contents_->Init(); | |
22 | |
23 views::Widget::InitParams params(views::Widget::InitParams::TYPE_POPUP); | |
24 params.transparent = true; | |
25 params.parent = owner; | |
26 params.native_widget = this; | |
27 GetWidget()->Init(params); | |
28 GetWidget()->SetContentsView(border_contents_); | |
29 SetWindowPos(owner, 0, 0, 0, 0, | |
30 SWP_NOSIZE | SWP_NOMOVE | SWP_NOACTIVATE | SWP_NOREDRAW); | |
31 } | |
32 | |
33 gfx::Rect BorderWidgetWin::SizeAndGetBounds( | |
34 const gfx::Rect& position_relative_to, | |
35 views::BubbleBorder::ArrowLocation arrow_location, | |
36 const gfx::Size& contents_size) { | |
37 // Ask the border view to calculate our bounds (and our contents'). | |
38 gfx::Rect contents_bounds; | |
39 gfx::Rect window_bounds; | |
40 border_contents_->SizeAndGetBounds(position_relative_to, arrow_location, | |
41 false, contents_size, &contents_bounds, | |
42 &window_bounds); | |
43 GetWidget()->SetBounds(window_bounds); | |
44 | |
45 // Return |contents_bounds| in screen coordinates. | |
46 contents_bounds.Offset(window_bounds.origin()); | |
47 return contents_bounds; | |
48 } | |
49 | |
50 LRESULT BorderWidgetWin::OnMouseActivate(UINT message, | |
51 WPARAM w_param, | |
52 LPARAM l_param) { | |
53 // Never activate. | |
54 return MA_NOACTIVATE; | |
55 } | |
OLD | NEW |