2e6727a00069304bb2a9fe6c2c0ff3bdc8812fb0
[platform/framework/web/crosswalk.git] / src / chrome / browser / ui / app_list / app_list_service_views.cc
1 // Copyright 2014 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/ui/app_list/app_list_service_views.h"
6
7 #include "chrome/browser/ui/app_list/app_list_controller_delegate.h"
8 #include "chrome/browser/ui/app_list/scoped_keep_alive.h"
9
10 AppListServiceViews::AppListServiceViews(
11     scoped_ptr<AppListControllerDelegate> controller_delegate)
12     : shower_(this),
13       can_dismiss_(true),
14       controller_delegate_(controller_delegate.Pass()) {
15 }
16
17 AppListServiceViews::~AppListServiceViews() {}
18
19 void AppListServiceViews::OnViewBeingDestroyed() {
20   can_dismiss_ = true;
21   shower_.HandleViewBeingDestroyed();
22 }
23
24 void AppListServiceViews::Init(Profile* initial_profile) {
25   PerformStartupChecks(initial_profile);
26 }
27
28 void AppListServiceViews::CreateForProfile(Profile* requested_profile) {
29   shower_.CreateViewForProfile(requested_profile);
30 }
31
32 void AppListServiceViews::ShowForProfile(Profile* requested_profile) {
33   DCHECK(requested_profile);
34   if (requested_profile->IsSupervised())
35     return;
36
37   ScopedKeepAlive keep_alive;
38
39   InvalidatePendingProfileLoads();
40   SetProfilePath(requested_profile->GetPath());
41   shower_.ShowForProfile(requested_profile);
42   RecordAppListLaunch();
43 }
44
45 void AppListServiceViews::DismissAppList() {
46   if (!can_dismiss_)
47     return;
48
49   shower_.DismissAppList();
50 }
51
52 bool AppListServiceViews::IsAppListVisible() const {
53   return shower_.IsAppListVisible();
54 }
55
56 gfx::NativeWindow AppListServiceViews::GetAppListWindow() {
57   return shower_.GetWindow();
58 }
59
60 Profile* AppListServiceViews::GetCurrentAppListProfile() {
61   return shower_.profile();
62 }
63
64 AppListControllerDelegate* AppListServiceViews::GetControllerDelegate() {
65   return controller_delegate_.get();
66 }
67
68 AppListControllerDelegate*
69 AppListServiceViews::GetControllerDelegateForCreate() {
70   return controller_delegate_.get();
71 }