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/chrome_browser_main_extra_parts_views.h" | |
6 | |
7 #include <string> | |
8 | |
9 #include "base/command_line.h" | |
10 #include "chrome/browser/ui/views/chrome_views_delegate.h" | |
11 #include "chrome/common/chrome_switches.h" | |
12 #include "ui/views/desktop/desktop_window_view.h" | |
13 #include "views/widget/widget.h" | |
14 | |
15 ChromeBrowserMainExtraPartsViews::ChromeBrowserMainExtraPartsViews() | |
16 : ChromeBrowserMainExtraParts() { | |
17 } | |
18 | |
19 void ChromeBrowserMainExtraPartsViews::ToolkitInitialized() { | |
20 // The delegate needs to be set before any UI is created so that windows | |
21 // display the correct icon. | |
22 if (!views::ViewsDelegate::views_delegate) | |
23 views::ViewsDelegate::views_delegate = new ChromeViewsDelegate; | |
24 | |
25 // TODO(beng): Move to WidgetImpl and implement on Windows too! | |
26 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kDebugViewsPaint)) | |
27 views::Widget::SetDebugPaintEnabled(true); | |
28 } | |
29 | |
30 void ChromeBrowserMainExtraPartsViews::PostBrowserProcessInit() { | |
31 #if !defined(USE_AURA) | |
32 views::Widget::SetPureViews( | |
33 CommandLine::ForCurrentProcess()->HasSwitch(switches::kUsePureViews)); | |
34 // Launch the views desktop shell window and register it as the default parent | |
35 // for all unparented views widgets. | |
36 const CommandLine& command_line = *CommandLine::ForCurrentProcess(); | |
37 if (command_line.HasSwitch(switches::kViewsDesktop)) { | |
38 std::string desktop_type_cmd = | |
39 command_line.GetSwitchValueASCII(switches::kViewsDesktop); | |
40 if (desktop_type_cmd != "disabled") { | |
41 views::desktop::DesktopWindowView::DesktopType desktop_type; | |
42 if (desktop_type_cmd == "netbook") | |
43 desktop_type = views::desktop::DesktopWindowView::DESKTOP_NETBOOK; | |
44 else if (desktop_type_cmd == "other") | |
45 desktop_type = views::desktop::DesktopWindowView::DESKTOP_OTHER; | |
46 else | |
47 desktop_type = views::desktop::DesktopWindowView::DESKTOP_DEFAULT; | |
48 views::desktop::DesktopWindowView::CreateDesktopWindow(desktop_type); | |
49 ChromeViewsDelegate* chrome_views_delegate = static_cast | |
50 <ChromeViewsDelegate*>(views::ViewsDelegate::views_delegate); | |
51 chrome_views_delegate->default_parent_view = | |
52 views::desktop::DesktopWindowView::desktop_window_view; | |
53 } | |
54 } | |
55 #endif | |
56 } | |
OLD | NEW |