| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 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 | 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 #include "chrome/browser/ui/views/tabs/native_view_photobooth_win.h" | 5 #include "chrome/browser/ui/views/tabs/native_view_photobooth_win.h" |
| 6 | 6 |
| 7 #include "content/browser/tab_contents/tab_contents.h" | 7 #include "content/browser/tab_contents/tab_contents.h" |
| 8 #include "third_party/skia/include/core/SkBitmap.h" | 8 #include "third_party/skia/include/core/SkBitmap.h" |
| 9 #include "ui/gfx/canvas_skia.h" | 9 #include "ui/gfx/canvas_skia.h" |
| 10 #include "ui/gfx/point.h" | 10 #include "ui/gfx/point.h" |
| (...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 144 // This function sets up the off-screen capture window, and attaches the | 144 // This function sets up the off-screen capture window, and attaches the |
| 145 // associated HWND to it. Note that the details are important here, see below | 145 // associated HWND to it. Note that the details are important here, see below |
| 146 // for further comments. | 146 // for further comments. |
| 147 // | 147 // |
| 148 RECT contents_rect; | 148 RECT contents_rect; |
| 149 GetClientRect(initial_hwnd, &contents_rect); | 149 GetClientRect(initial_hwnd, &contents_rect); |
| 150 gfx::Point window_position = GetCaptureWindowPosition(); | 150 gfx::Point window_position = GetCaptureWindowPosition(); |
| 151 gfx::Rect capture_bounds(window_position.x(), window_position.y(), | 151 gfx::Rect capture_bounds(window_position.x(), window_position.y(), |
| 152 contents_rect.right - contents_rect.left, | 152 contents_rect.right - contents_rect.left, |
| 153 contents_rect.bottom - contents_rect.top); | 153 contents_rect.bottom - contents_rect.top); |
| 154 capture_window_ = views::Widget::CreateWidget(); |
| 154 views::Widget::CreateParams params(views::Widget::CreateParams::TYPE_POPUP); | 155 views::Widget::CreateParams params(views::Widget::CreateParams::TYPE_POPUP); |
| 155 params.transparent = true; | 156 params.transparent = true; |
| 156 capture_window_ = views::Widget::CreateWidget(params); | 157 params.bounds = capture_bounds; |
| 158 capture_window_->Init(params); |
| 157 // If the capture window isn't visible, blitting from the TabContents' | 159 // If the capture window isn't visible, blitting from the TabContents' |
| 158 // HWND's DC to the capture bitmap produces blankness. | 160 // HWND's DC to the capture bitmap produces blankness. |
| 159 capture_window_->Init(NULL, capture_bounds); | |
| 160 capture_window_->Show(); | 161 capture_window_->Show(); |
| 161 SetLayeredWindowAttributes( | 162 SetLayeredWindowAttributes( |
| 162 capture_window_->GetNativeView(), RGB(0xFF, 0xFF, 0xFF), 0xFF, LWA_ALPHA); | 163 capture_window_->GetNativeView(), RGB(0xFF, 0xFF, 0xFF), 0xFF, LWA_ALPHA); |
| 163 | 164 |
| 164 Replace(initial_hwnd); | 165 Replace(initial_hwnd); |
| 165 } | 166 } |
| OLD | NEW |