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
3 // found in the LICENSE file.
5 #include "chrome/browser/ui/ash/app_list/app_list_controller_ash.h"
8 #include "chrome/browser/ui/ash/launcher/chrome_launcher_controller.h"
9 #include "chrome/browser/ui/browser_navigator.h"
10 #include "extensions/common/extension.h"
11 #include "ui/app_list/views/app_list_view.h"
13 AppListControllerDelegateAsh::AppListControllerDelegateAsh() {}
15 AppListControllerDelegateAsh::~AppListControllerDelegateAsh() {}
17 void AppListControllerDelegateAsh::DismissView() {
18 DCHECK(ash::Shell::HasInstance());
19 ash::Shell::GetInstance()->DismissAppList();
22 gfx::NativeWindow AppListControllerDelegateAsh::GetAppListWindow() {
23 DCHECK(ash::Shell::HasInstance());
24 return ash::Shell::GetInstance()->GetAppListWindow();
27 gfx::Rect AppListControllerDelegateAsh::GetAppListBounds() {
28 app_list::AppListView* app_list_view =
29 ash::Shell::GetInstance()->GetAppListView();
31 return app_list_view->GetBoundsInScreen();
35 gfx::ImageSkia AppListControllerDelegateAsh::GetWindowIcon() {
36 return gfx::ImageSkia();
39 bool AppListControllerDelegateAsh::IsAppPinned(
40 const std::string& extension_id) {
41 return ChromeLauncherController::instance()->IsAppPinned(extension_id);
44 void AppListControllerDelegateAsh::PinApp(const std::string& extension_id) {
45 ChromeLauncherController::instance()->PinAppWithID(extension_id);
48 void AppListControllerDelegateAsh::UnpinApp(const std::string& extension_id) {
49 ChromeLauncherController::instance()->UnpinAppWithID(extension_id);
52 AppListControllerDelegate::Pinnable
53 AppListControllerDelegateAsh::GetPinnable() {
54 return ChromeLauncherController::instance()->CanPin() ? PIN_EDITABLE :
58 void AppListControllerDelegateAsh::OnShowChildDialog() {
59 app_list::AppListView* app_list_view =
60 ash::Shell::GetInstance()->GetAppListView();
62 app_list_view->SetAppListOverlayVisible(true);
65 void AppListControllerDelegateAsh::OnCloseChildDialog() {
66 app_list::AppListView* app_list_view =
67 ash::Shell::GetInstance()->GetAppListView();
69 app_list_view->SetAppListOverlayVisible(false);
72 bool AppListControllerDelegateAsh::CanDoCreateShortcutsFlow() {
76 void AppListControllerDelegateAsh::DoCreateShortcutsFlow(
78 const std::string& extension_id) {
82 void AppListControllerDelegateAsh::CreateNewWindow(Profile* profile,
85 ChromeLauncherController::instance()->CreateNewIncognitoWindow();
87 ChromeLauncherController::instance()->CreateNewWindow();
90 void AppListControllerDelegateAsh::OpenURL(Profile* profile,
92 ui::PageTransition transition,
93 WindowOpenDisposition disposition) {
94 chrome::NavigateParams params(profile, url, transition);
95 params.disposition = disposition;
96 chrome::Navigate(¶ms);
99 void AppListControllerDelegateAsh::ActivateApp(
101 const extensions::Extension* extension,
102 AppListSource source,
104 ChromeLauncherController::instance()->ActivateApp(
106 AppListSourceToLaunchSource(source),
112 void AppListControllerDelegateAsh::LaunchApp(
114 const extensions::Extension* extension,
115 AppListSource source,
117 ChromeLauncherController::instance()->LaunchApp(
119 AppListSourceToLaunchSource(source),
124 void AppListControllerDelegateAsh::ShowForProfileByPath(
125 const base::FilePath& profile_path) {
126 // Ash doesn't have profile switching.
130 bool AppListControllerDelegateAsh::ShouldShowUserIcon() {
134 ash::LaunchSource AppListControllerDelegateAsh::AppListSourceToLaunchSource(
135 AppListSource source) {
137 case LAUNCH_FROM_APP_LIST:
138 return ash::LAUNCH_FROM_APP_LIST;
139 case LAUNCH_FROM_APP_LIST_SEARCH:
140 return ash::LAUNCH_FROM_APP_LIST_SEARCH;
142 return ash::LAUNCH_FROM_UNKNOWN;