Home | History | Annotate | Download | only in app_list
      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 }
     72