Index: chrome/browser/ui/ash/app_list/app_list_service_ash.cc |
diff --git a/chrome/browser/ui/ash/app_list/app_list_service_ash.cc b/chrome/browser/ui/ash/app_list/app_list_service_ash.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..cf1b53668b51f275ad74aa2a75323af872a1029a |
--- /dev/null |
+++ b/chrome/browser/ui/ash/app_list/app_list_service_ash.cc |
@@ -0,0 +1,53 @@ |
+// Copyright 2013 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "chrome/browser/ui/app_list/app_list_service_ash.h" |
+ |
+#include "ash/shell.h" |
+#include "base/memory/singleton.h" |
+#include "chrome/browser/ui/app_list/app_list_service_ash.h" |
+ |
+namespace { |
+ |
+class AppListServiceAshImpl : public AppListServiceAsh { |
+ public: |
+ static AppListServiceAshImpl* GetInstance() { |
+ return Singleton<AppListServiceAshImpl>::get(); |
+ } |
+ |
+ // AppListService overrides: |
+ virtual void ShowAppList(Profile* default_profile) OVERRIDE; |
+ virtual bool IsAppListVisible() const OVERRIDE; |
+ virtual void DismissAppList() OVERRIDE; |
+ |
+ private: |
+ AppListServiceAshImpl() {} |
+ |
+ friend struct DefaultSingletonTraits<AppListServiceAshImpl>; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(AppListServiceAshImpl); |
+}; |
+ |
+void AppListServiceAshImpl::ShowAppList(Profile* default_profile) { |
+ // This may not work correctly if the profile passed in is different from the |
+ // one the ash Shell is currently using. |
+ // TODO(ananta): Handle profile changes correctly when !defined(OS_CHROMEOS). |
+ if (!IsAppListVisible()) |
+ ash::Shell::GetInstance()->ToggleAppList(NULL); |
+} |
+ |
+bool AppListServiceAshImpl::IsAppListVisible() const { |
+ return ash::Shell::GetInstance()->GetAppListWindow() != NULL; |
koz (OOO until 15th September)
2013/02/19 03:55:14
I think you want ash::Shell::GetInstance()->GetApp
tapted
2013/02/19 04:25:21
Oooh - nice. Done.
|
+} |
+ |
+void AppListServiceAshImpl::DismissAppList() { |
+ if (IsAppListVisible()) |
+ ash::Shell::GetInstance()->ToggleAppList(NULL); |
+} |
+ |
+} // namespace |
+ |
+AppListServiceAsh* AppListServiceAsh::GetInstance() { |
+ return AppListServiceAshImpl::GetInstance(); |
+} |