| OLD | NEW |
| 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 #include "chrome/browser/ui/views/frame/browser_frame_win.h" | 5 #include "chrome/browser/ui/views/frame/browser_frame_win.h" |
| 6 | 6 |
| 7 #include <dwmapi.h> | 7 #include <dwmapi.h> |
| 8 #include <shellapi.h> | 8 #include <shellapi.h> |
| 9 | 9 |
| 10 #include <set> | 10 #include <set> |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 89 /////////////////////////////////////////////////////////////////////////////// | 89 /////////////////////////////////////////////////////////////////////////////// |
| 90 // BrowserFrameWin, public: | 90 // BrowserFrameWin, public: |
| 91 | 91 |
| 92 BrowserFrameWin::BrowserFrameWin(BrowserFrame* browser_frame, | 92 BrowserFrameWin::BrowserFrameWin(BrowserFrame* browser_frame, |
| 93 BrowserView* browser_view) | 93 BrowserView* browser_view) |
| 94 : views::NativeWidgetWin(browser_frame), | 94 : views::NativeWidgetWin(browser_frame), |
| 95 browser_view_(browser_view), | 95 browser_view_(browser_view), |
| 96 browser_frame_(browser_frame), | 96 browser_frame_(browser_frame), |
| 97 system_menu_delegate_(new SystemMenuModelDelegate(browser_view, | 97 system_menu_delegate_(new SystemMenuModelDelegate(browser_view, |
| 98 browser_view->browser())) { | 98 browser_view->browser())) { |
| 99 if (base::win::GetMetroModule()) { | 99 if (base::win::IsMetroProcess()) { |
| 100 browser_view->SetWindowSwitcherButton( | 100 browser_view->SetWindowSwitcherButton( |
| 101 MakeWindowSwitcherButton(this, browser_view->IsOffTheRecord())); | 101 MakeWindowSwitcherButton(this, browser_view->IsOffTheRecord())); |
| 102 } | 102 } |
| 103 } | 103 } |
| 104 | 104 |
| 105 BrowserFrameWin::~BrowserFrameWin() { | 105 BrowserFrameWin::~BrowserFrameWin() { |
| 106 } | 106 } |
| 107 | 107 |
| 108 // static | 108 // static |
| 109 void BrowserFrameWin::SetShowState(int state) { | 109 void BrowserFrameWin::SetShowState(int state) { |
| (...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 309 static const UINT metro_navigation_search_message = | 309 static const UINT metro_navigation_search_message = |
| 310 RegisterWindowMessage(chrome::kMetroNavigationAndSearchMessage); | 310 RegisterWindowMessage(chrome::kMetroNavigationAndSearchMessage); |
| 311 | 311 |
| 312 static const UINT metro_get_current_tab_info_message = | 312 static const UINT metro_get_current_tab_info_message = |
| 313 RegisterWindowMessage(chrome::kMetroGetCurrentTabInfoMessage); | 313 RegisterWindowMessage(chrome::kMetroGetCurrentTabInfoMessage); |
| 314 | 314 |
| 315 if (message == metro_navigation_search_message) { | 315 if (message == metro_navigation_search_message) { |
| 316 HandleMetroNavSearchRequest(w_param, l_param); | 316 HandleMetroNavSearchRequest(w_param, l_param); |
| 317 } else if (message == metro_get_current_tab_info_message) { | 317 } else if (message == metro_get_current_tab_info_message) { |
| 318 GetMetroCurrentTabInfo(w_param); | 318 GetMetroCurrentTabInfo(w_param); |
| 319 } else if (message == WM_PRINT && base::win::GetMetroModule()) { | 319 } else if (message == WM_PRINT && base::win::IsMetroProcess()) { |
| 320 // This message is sent by the AnimateWindow API which is used in metro | 320 // This message is sent by the AnimateWindow API which is used in metro |
| 321 // mode to flip between active chrome windows. | 321 // mode to flip between active chrome windows. |
| 322 RECT client_rect = {0}; | 322 RECT client_rect = {0}; |
| 323 ::GetClientRect(GetNativeView(), &client_rect); | 323 ::GetClientRect(GetNativeView(), &client_rect); |
| 324 HDC dest_dc = reinterpret_cast<HDC>(w_param); | 324 HDC dest_dc = reinterpret_cast<HDC>(w_param); |
| 325 DCHECK(dest_dc); | 325 DCHECK(dest_dc); |
| 326 HDC src_dc = ::GetDC(GetNativeView()); | 326 HDC src_dc = ::GetDC(GetNativeView()); |
| 327 ::BitBlt(dest_dc, 0, 0, client_rect.right - client_rect.left, | 327 ::BitBlt(dest_dc, 0, 0, client_rect.right - client_rect.left, |
| 328 client_rect.bottom - client_rect.top, src_dc, 0, 0, | 328 client_rect.bottom - client_rect.top, src_dc, 0, 0, |
| 329 SRCCOPY); | 329 SRCCOPY); |
| (...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 431 if (CommandLine::ForCurrentProcess()->HasSwitch( | 431 if (CommandLine::ForCurrentProcess()->HasSwitch( |
| 432 switches::kDebugEnableFrameToggle)) { | 432 switches::kDebugEnableFrameToggle)) { |
| 433 system_menu_contents_->AddSeparator(); | 433 system_menu_contents_->AddSeparator(); |
| 434 system_menu_contents_->AddItem(IDC_DEBUG_FRAME_TOGGLE, | 434 system_menu_contents_->AddItem(IDC_DEBUG_FRAME_TOGGLE, |
| 435 L"Toggle Frame Type"); | 435 L"Toggle Frame Type"); |
| 436 } | 436 } |
| 437 } | 437 } |
| 438 | 438 |
| 439 void BrowserFrameWin::HandleMetroNavSearchRequest(WPARAM w_param, | 439 void BrowserFrameWin::HandleMetroNavSearchRequest(WPARAM w_param, |
| 440 LPARAM l_param) { | 440 LPARAM l_param) { |
| 441 if (!base::win::GetMetroModule()) { | 441 if (!base::win::IsMetroProcess()) { |
| 442 NOTREACHED() << "Received unexpected metro navigation request"; | 442 NOTREACHED() << "Received unexpected metro navigation request"; |
| 443 return; | 443 return; |
| 444 } | 444 } |
| 445 | 445 |
| 446 if (!w_param && !l_param) { | 446 if (!w_param && !l_param) { |
| 447 NOTREACHED() << "Invalid metro request parameters"; | 447 NOTREACHED() << "Invalid metro request parameters"; |
| 448 return; | 448 return; |
| 449 } | 449 } |
| 450 | 450 |
| 451 Browser* browser = browser_view()->browser(); | 451 Browser* browser = browser_view()->browser(); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 470 string16())); | 470 string16())); |
| 471 } | 471 } |
| 472 } | 472 } |
| 473 if (request_url.is_valid()) { | 473 if (request_url.is_valid()) { |
| 474 browser->OpenURL(OpenURLParams(request_url, Referrer(), NEW_FOREGROUND_TAB, | 474 browser->OpenURL(OpenURLParams(request_url, Referrer(), NEW_FOREGROUND_TAB, |
| 475 content::PAGE_TRANSITION_TYPED, false)); | 475 content::PAGE_TRANSITION_TYPED, false)); |
| 476 } | 476 } |
| 477 } | 477 } |
| 478 | 478 |
| 479 void BrowserFrameWin::GetMetroCurrentTabInfo(WPARAM w_param) { | 479 void BrowserFrameWin::GetMetroCurrentTabInfo(WPARAM w_param) { |
| 480 if (!base::win::GetMetroModule()) { | 480 if (!base::win::IsMetroProcess()) { |
| 481 NOTREACHED() << "Received unexpected metro request"; | 481 NOTREACHED() << "Received unexpected metro request"; |
| 482 return; | 482 return; |
| 483 } | 483 } |
| 484 | 484 |
| 485 if (!w_param) { | 485 if (!w_param) { |
| 486 NOTREACHED() << "Invalid metro request parameter"; | 486 NOTREACHED() << "Invalid metro request parameter"; |
| 487 return; | 487 return; |
| 488 } | 488 } |
| 489 | 489 |
| 490 base::win::CurrentTabInfo* current_tab_info = | 490 base::win::CurrentTabInfo* current_tab_info = |
| (...skipping 27 matching lines...) Expand all Loading... |
| 518 | 518 |
| 519 //////////////////////////////////////////////////////////////////////////////// | 519 //////////////////////////////////////////////////////////////////////////////// |
| 520 // NativeBrowserFrame, public: | 520 // NativeBrowserFrame, public: |
| 521 | 521 |
| 522 // static | 522 // static |
| 523 NativeBrowserFrame* NativeBrowserFrame::CreateNativeBrowserFrame( | 523 NativeBrowserFrame* NativeBrowserFrame::CreateNativeBrowserFrame( |
| 524 BrowserFrame* browser_frame, | 524 BrowserFrame* browser_frame, |
| 525 BrowserView* browser_view) { | 525 BrowserView* browser_view) { |
| 526 return new BrowserFrameWin(browser_frame, browser_view); | 526 return new BrowserFrameWin(browser_frame, browser_view); |
| 527 } | 527 } |
| OLD | NEW |