app_list_service_views.cc revision 010d83a9304c5a91596085d917d248abff47903a
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 10AppListServiceViews::AppListServiceViews( 11 scoped_ptr<AppListControllerDelegate> controller_delegate) 12 : shower_(this), 13 can_dismiss_(true), 14 controller_delegate_(controller_delegate.Pass()) { 15} 16 17AppListServiceViews::~AppListServiceViews() {} 18 19void AppListServiceViews::OnViewBeingDestroyed() { 20 can_dismiss_ = true; 21 shower_.HandleViewBeingDestroyed(); 22} 23 24void AppListServiceViews::Init(Profile* initial_profile) { 25 PerformStartupChecks(initial_profile); 26} 27 28void AppListServiceViews::CreateForProfile(Profile* requested_profile) { 29 shower_.CreateViewForProfile(requested_profile); 30} 31 32void AppListServiceViews::ShowForProfile(Profile* requested_profile) { 33 DCHECK(requested_profile); 34 if (requested_profile->IsManaged()) 35 return; 36 37 ScopedKeepAlive keep_alive; 38 39 InvalidatePendingProfileLoads(); 40 SetProfilePath(requested_profile->GetPath()); 41 shower_.ShowForProfile(requested_profile); 42 RecordAppListLaunch(); 43} 44 45void AppListServiceViews::DismissAppList() { 46 if (!can_dismiss_) 47 return; 48 49 shower_.DismissAppList(); 50} 51 52bool AppListServiceViews::IsAppListVisible() const { 53 return shower_.IsAppListVisible(); 54} 55 56gfx::NativeWindow AppListServiceViews::GetAppListWindow() { 57 return shower_.GetWindow(); 58} 59 60Profile* AppListServiceViews::GetCurrentAppListProfile() { 61 return shower_.profile(); 62} 63 64AppListControllerDelegate* AppListServiceViews::GetControllerDelegate() { 65 return controller_delegate_.get(); 66} 67 68AppListControllerDelegate* 69AppListServiceViews::GetControllerDelegateForCreate() { 70 return controller_delegate_.get(); 71} 72