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 |