| OLD | NEW |
| 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 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 "base/command_line.h" | 5 #include "base/command_line.h" |
| 6 #include "chrome/browser/browser.h" | 6 #include "chrome/browser/browser.h" |
| 7 #include "chrome/browser/browser_process.h" // TODO(beng): remove once done. | 7 #include "chrome/browser/browser_process.h" // TODO(beng): remove once done. |
| 8 #include "chrome/browser/browser_window.h" | 8 #include "chrome/browser/browser_window.h" |
| 9 #include "chrome/browser/frame_util.h" | 9 #include "chrome/browser/frame_util.h" |
| 10 #include "chrome/browser/views/frame/aero_glass_frame.h" | 10 #include "chrome/browser/views/frame/aero_glass_frame.h" |
| 11 #include "chrome/browser/views/frame/browser_frame.h" | 11 #include "chrome/browser/views/frame/browser_frame.h" |
| 12 #include "chrome/browser/views/frame/browser_view.h" | 12 #include "chrome/browser/views/frame/browser_view.h" |
| 13 #include "chrome/browser/views/frame/embedded_frame.h" |
| 13 #include "chrome/browser/views/frame/opaque_frame.h" | 14 #include "chrome/browser/views/frame/opaque_frame.h" |
| 14 #include "chrome/common/win_util.h" | 15 #include "chrome/common/win_util.h" |
| 15 | 16 |
| 16 /////////////////////////////////////////////////////////////////////////////// | 17 /////////////////////////////////////////////////////////////////////////////// |
| 17 // BrowserWindow, public: | 18 // BrowserWindow, public: |
| 18 | 19 |
| 19 // static | 20 // static |
| 20 BrowserWindow* BrowserWindow::CreateBrowserWindow(Browser* browser) { | 21 BrowserWindow* BrowserWindow::CreateBrowserWindow(Browser* browser) { |
| 21 BrowserView* browser_view = new BrowserView(browser); | 22 BrowserView* browser_view = new BrowserView(browser); |
| 22 BrowserFrame::CreateForBrowserView(BrowserFrame::GetActiveFrameType(), | 23 BrowserFrame::CreateForBrowserView(BrowserFrame::GetActiveFrameType(), |
| 23 browser_view); | 24 browser_view); |
| 24 return browser_view; | 25 return browser_view; |
| 25 } | 26 } |
| 26 | 27 |
| 27 /////////////////////////////////////////////////////////////////////////////// | 28 /////////////////////////////////////////////////////////////////////////////// |
| 28 // BrowserFrame, public: | 29 // BrowserFrame, public: |
| 29 | 30 |
| 30 // static | 31 // static |
| 31 BrowserFrame::FrameType BrowserFrame::GetActiveFrameType() { | 32 BrowserFrame::FrameType BrowserFrame::GetActiveFrameType() { |
| 32 return win_util::ShouldUseVistaFrame() ? BrowserFrame::FRAMETYPE_AERO_GLASS | 33 return win_util::ShouldUseVistaFrame() ? BrowserFrame::FRAMETYPE_AERO_GLASS |
| 33 : BrowserFrame::FRAMETYPE_OPAQUE; | 34 : BrowserFrame::FRAMETYPE_OPAQUE; |
| 34 } | 35 } |
| 35 | 36 |
| 36 // static | 37 // static |
| 37 BrowserFrame* BrowserFrame::CreateForBrowserView(BrowserFrame::FrameType type, | 38 BrowserFrame* BrowserFrame::CreateForBrowserView(BrowserFrame::FrameType type, |
| 38 BrowserView* browser_view) { | 39 BrowserView* browser_view) { |
| 40 // Embedded windows will have a parent window handle |
| 41 Browser* browser = browser_view->browser(); |
| 42 if(browser->parent_hwnd()) { |
| 43 EmbeddedFrame* frame = new EmbeddedFrame(browser_view); |
| 44 frame->Init(browser->parent_hwnd(), browser->override_bounds()); |
| 45 return frame; |
| 46 } |
| 47 |
| 39 if (type == FRAMETYPE_OPAQUE) { | 48 if (type == FRAMETYPE_OPAQUE) { |
| 40 OpaqueFrame* frame = new OpaqueFrame(browser_view); | 49 OpaqueFrame* frame = new OpaqueFrame(browser_view); |
| 41 frame->Init(); | 50 frame->Init(); |
| 42 return frame; | 51 return frame; |
| 43 } else if (type == FRAMETYPE_AERO_GLASS) { | 52 } else if (type == FRAMETYPE_AERO_GLASS) { |
| 44 AeroGlassFrame* frame = new AeroGlassFrame(browser_view); | 53 AeroGlassFrame* frame = new AeroGlassFrame(browser_view); |
| 45 frame->Init(); | 54 frame->Init(); |
| 46 return frame; | 55 return frame; |
| 47 } | 56 } |
| 48 NOTREACHED() << "Unsupported frame type"; | 57 NOTREACHED() << "Unsupported frame type"; |
| 49 return NULL; | 58 return NULL; |
| 50 } | 59 } |
| 51 | 60 |
| OLD | NEW |