app_list_service_mac.h revision 1e9bf3e0803691d0a228da41fc608347b6db4340
1// Copyright 2013 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_APP_LIST_APP_LIST_SERVICE_MAC_H_ 6#define CHROME_BROWSER_UI_APP_LIST_APP_LIST_SERVICE_MAC_H_ 7 8#import <Cocoa/Cocoa.h> 9 10#include "apps/app_shim/app_shim_handler_mac.h" 11#include "base/mac/scoped_nsobject.h" 12#include "chrome/browser/ui/app_list/app_list_service_impl.h" 13 14@class AppListAnimationController; 15@class AppListWindowController; 16template <typename T> struct DefaultSingletonTraits; 17 18namespace test { 19class AppListServiceTestApiMac; 20} 21 22// AppListServiceMac manages global resources needed for the app list to 23// operate, and controls when the app list is opened and closed. 24class AppListServiceMac : public AppListServiceImpl, 25 public apps::AppShimHandler { 26 public: 27 virtual ~AppListServiceMac(); 28 29 static AppListServiceMac* GetInstance(); 30 31 void ShowWindowNearDock(); 32 33 // AppListService overrides: 34 virtual void Init(Profile* initial_profile) OVERRIDE; 35 virtual void CreateForProfile(Profile* requested_profile) OVERRIDE; 36 virtual void ShowForProfile(Profile* requested_profile) OVERRIDE; 37 virtual void DismissAppList() OVERRIDE; 38 virtual bool IsAppListVisible() const OVERRIDE; 39 virtual gfx::NativeWindow GetAppListWindow() OVERRIDE; 40 virtual AppListControllerDelegate* CreateControllerDelegate() OVERRIDE; 41 virtual Profile* GetCurrentAppListProfile() OVERRIDE; 42 43 44 // AppListServiceImpl overrides: 45 virtual void CreateShortcut() OVERRIDE; 46 47 // AppShimHandler overrides: 48 virtual void OnShimLaunch(apps::AppShimHandler::Host* host, 49 apps::AppShimLaunchType launch_type, 50 const std::vector<base::FilePath>& files) OVERRIDE; 51 virtual void OnShimClose(apps::AppShimHandler::Host* host) OVERRIDE; 52 virtual void OnShimFocus(apps::AppShimHandler::Host* host, 53 apps::AppShimFocusType focus_type, 54 const std::vector<base::FilePath>& files) OVERRIDE; 55 virtual void OnShimSetHidden(apps::AppShimHandler::Host* host, 56 bool hidden) OVERRIDE; 57 virtual void OnShimQuit(apps::AppShimHandler::Host* host) OVERRIDE; 58 59 private: 60 friend struct DefaultSingletonTraits<AppListServiceMac>; 61 friend class test::AppListServiceTestApiMac; 62 63 AppListServiceMac(); 64 65 base::scoped_nsobject<AppListWindowController> window_controller_; 66 base::scoped_nsobject<AppListAnimationController> animation_controller_; 67 base::scoped_nsobject<NSRunningApplication> previously_active_application_; 68 NSPoint last_start_origin_; 69 Profile* profile_; 70 71 DISALLOW_COPY_AND_ASSIGN(AppListServiceMac); 72}; 73 74#endif // CHROME_BROWSER_UI_APP_LIST_APP_LIST_SERVICE_MAC_H_ 75