app_list_service_ash.h revision 0529e5d033099cbfc42635f6f6183833b09dff6e
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#ifndef CHROME_BROWSER_UI_ASH_APP_LIST_APP_LIST_SERVICE_ASH_H_
6#define CHROME_BROWSER_UI_ASH_APP_LIST_APP_LIST_SERVICE_ASH_H_
7
8#include "base/memory/scoped_ptr.h"
9#include "chrome/browser/ui/app_list/app_list_service_impl.h"
10
11class AppListControllerDelegateAsh;
12template <typename T> struct DefaultSingletonTraits;
13
14// AppListServiceAsh wraps functionality in ChromeLauncherController and the Ash
15// Shell for showing and hiding the app list on the Ash desktop.
16class AppListServiceAsh : public AppListServiceImpl {
17 public:
18  static AppListServiceAsh* GetInstance();
19
20 private:
21  friend struct DefaultSingletonTraits<AppListServiceAsh>;
22
23  AppListServiceAsh();
24  virtual ~AppListServiceAsh();
25
26  // AppListService overrides:
27  virtual base::FilePath GetProfilePath(
28      const base::FilePath& user_data_dir) OVERRIDE;
29  virtual void CreateForProfile(Profile* default_profile) OVERRIDE;
30  virtual void ShowForProfile(Profile* default_profile) OVERRIDE;
31  virtual bool IsAppListVisible() const OVERRIDE;
32  virtual void DismissAppList() OVERRIDE;
33  virtual void EnableAppList(Profile* initial_profile,
34                             AppListEnableSource enable_source) OVERRIDE;
35  virtual gfx::NativeWindow GetAppListWindow() OVERRIDE;
36  virtual Profile* GetCurrentAppListProfile() OVERRIDE;
37  virtual AppListControllerDelegate* GetControllerDelegate() OVERRIDE;
38
39  scoped_ptr<AppListControllerDelegateAsh> controller_delegate_;
40
41  DISALLOW_COPY_AND_ASSIGN(AppListServiceAsh);
42};
43
44#endif  // CHROME_BROWSER_UI_ASH_APP_LIST_APP_LIST_SERVICE_ASH_H_
45