Index: chrome/browser/ui/cocoa/app_list/app_list_controller_cocoa.mm |
diff --git a/chrome/browser/ui/cocoa/app_list/app_list_controller_cocoa.mm b/chrome/browser/ui/cocoa/app_list/app_list_controller_cocoa.mm |
index 85c362d2163440a42ece6277be03ec15a5018bbd..5b0635fdbe508316b1b2b8fe7abd8ef6bbba44c3 100644 |
--- a/chrome/browser/ui/cocoa/app_list/app_list_controller_cocoa.mm |
+++ b/chrome/browser/ui/cocoa/app_list/app_list_controller_cocoa.mm |
@@ -5,9 +5,11 @@ |
#include "base/bind.h" |
#include "base/lazy_instance.h" |
#include "base/memory/scoped_nsobject.h" |
+#include "base/memory/singleton.h" |
#include "base/message_loop.h" |
+#include "chrome/browser/ui/app_list/app_list_service.h" |
+#include "chrome/browser/ui/app_list/app_list_service_mac.h" |
#include "chrome/browser/ui/app_list/app_list_controller_delegate.h" |
-#include "chrome/browser/ui/app_list/app_list_util.h" |
#include "chrome/browser/ui/app_list/app_list_view_delegate.h" |
#include "chrome/browser/ui/extensions/application_launch.h" |
#import "ui/app_list/cocoa/apps_grid_controller.h" |
@@ -21,22 +23,32 @@ namespace { |
// The AppListController class manages global resources needed for the app |
// list to operate, and controls when the app list is opened and closed. |
-class AppListController { |
+class AppListControllerCocoa : public AppListService { |
benwells
2013/02/26 01:18:25
Nit: Can you add a TODO to rename this class to Ap
tapted
2013/02/26 03:04:34
Done. I think a file-move and rename is on the car
|
public: |
- AppListController() {} |
- ~AppListController() {} |
+ virtual ~AppListControllerCocoa() {} |
+ |
+ static AppListControllerCocoa* GetInstance() { |
+ return Singleton<AppListControllerCocoa, |
+ LeakySingletonTraits<AppListControllerCocoa> >::get(); |
+ } |
void CreateAppList(Profile* profile); |
- void ShowAppList(Profile* profile); |
- void DismissAppList(); |
- bool IsAppListVisible() const; |
+ |
+ // AppListService overrides: |
+ virtual void ShowAppList(Profile* profile) OVERRIDE; |
+ virtual void DismissAppList() OVERRIDE; |
+ virtual bool IsAppListVisible() const; |
NSWindow* GetNativeWindow(); |
private: |
+ friend struct DefaultSingletonTraits<AppListControllerCocoa>; |
+ |
+ AppListControllerCocoa() {} |
+ |
scoped_nsobject<AppListWindowController> window_controller_; |
- DISALLOW_COPY_AND_ASSIGN(AppListController); |
+ DISALLOW_COPY_AND_ASSIGN(AppListControllerCocoa); |
}; |
class AppListControllerDelegateCocoa : public AppListControllerDelegate { |
@@ -60,19 +72,16 @@ class AppListControllerDelegateCocoa : public AppListControllerDelegate { |
DISALLOW_COPY_AND_ASSIGN(AppListControllerDelegateCocoa); |
}; |
-base::LazyInstance<AppListController>::Leaky g_app_list_controller = |
- LAZY_INSTANCE_INITIALIZER; |
- |
AppListControllerDelegateCocoa::AppListControllerDelegateCocoa() {} |
AppListControllerDelegateCocoa::~AppListControllerDelegateCocoa() {} |
void AppListControllerDelegateCocoa::DismissView() { |
- g_app_list_controller.Get().DismissAppList(); |
+ AppListControllerCocoa::GetInstance()->DismissAppList(); |
} |
gfx::NativeWindow AppListControllerDelegateCocoa::GetAppListWindow() { |
- return g_app_list_controller.Get().GetNativeWindow(); |
+ return AppListControllerCocoa::GetInstance()->GetNativeWindow(); |
} |
bool AppListControllerDelegateCocoa::CanPin() { |
@@ -95,7 +104,7 @@ void AppListControllerDelegateCocoa::LaunchApp( |
profile, extension, NEW_FOREGROUND_TAB)); |
} |
-void AppListController::CreateAppList(Profile* profile) { |
+void AppListControllerCocoa::CreateAppList(Profile* profile) { |
scoped_ptr<app_list::AppListViewDelegate> delegate( |
new AppListViewDelegate(new AppListControllerDelegateCocoa(), profile)); |
scoped_nsobject<AppsGridController> content( |
@@ -104,65 +113,34 @@ void AppListController::CreateAppList(Profile* profile) { |
[[AppListWindowController alloc] initWithGridController:content]); |
} |
-void AppListController::ShowAppList(Profile* profile) { |
+void AppListControllerCocoa::ShowAppList(Profile* profile) { |
if (!window_controller_) |
CreateAppList(profile); |
[[window_controller_ window] makeKeyAndOrderFront:nil]; |
} |
-void AppListController::DismissAppList() { |
+void AppListControllerCocoa::DismissAppList() { |
if (!window_controller_) |
return; |
[[window_controller_ window] close]; |
} |
-bool AppListController::IsAppListVisible() const { |
+bool AppListControllerCocoa::IsAppListVisible() const { |
return [[window_controller_ window] isVisible]; |
} |
-NSWindow* AppListController::GetNativeWindow() { |
+NSWindow* AppListControllerCocoa::GetNativeWindow() { |
return [window_controller_ window]; |
} |
} // namespace |
- |
namespace chrome { |
-void InitAppList(Profile* profile) { |
- // TODO(tapted): AppList warmup code coes here. |
-} |
- |
-void ShowAppList(Profile* profile) { |
- g_app_list_controller.Get().ShowAppList(profile); |
-} |
- |
-void NotifyAppListOfBeginExtensionInstall( |
- Profile* profile, |
- const std::string& extension_id, |
- const std::string& extension_name, |
- const gfx::ImageSkia& installing_icon) { |
-} |
- |
-void NotifyAppListOfDownloadProgress( |
- Profile* profile, |
- const std::string& extension_id, |
- int percent_downloaded) { |
-} |
- |
-void NotifyAppListOfExtensionInstallFailure( |
- Profile* profile, |
- const std::string& extension_id) { |
-} |
- |
-void DismissAppList() { |
- g_app_list_controller.Get().DismissAppList(); |
-} |
- |
-bool IsAppListVisible() { |
- return g_app_list_controller.Get().IsAppListVisible(); |
+AppListService* GetAppListServiceMac() { |
+ return AppListControllerCocoa::GetInstance(); |
} |
} // namespace chrome |