#ifndef CHROME_BROWSER_UI_VIEWS_APP_LIST_LINUX_APP_LIST_SERVICE_LINUX_H_
#define CHROME_BROWSER_UI_VIEWS_APP_LIST_LINUX_APP_LIST_SERVICE_LINUX_H_
#include "base/memory/scoped_ptr.h"
#include "chrome/browser/ui/app_list/app_list_service_impl.h"
template <typename T> struct DefaultSingletonTraits;
class AppListShower;
class AppListServiceLinux : public AppListServiceImpl {
public:
virtual ~AppListServiceLinux();
static AppListServiceLinux* GetInstance();
void set_can_close(bool can_close);
void OnAppListClosing();
virtual void Init(Profile* initial_profile) OVERRIDE;
virtual void CreateForProfile(Profile* requested_profile) OVERRIDE;
virtual void ShowForProfile(Profile* requested_profile) OVERRIDE;
virtual void DismissAppList() OVERRIDE;
virtual bool IsAppListVisible() const OVERRIDE;
virtual gfx::NativeWindow GetAppListWindow() OVERRIDE;
virtual Profile* GetCurrentAppListProfile() OVERRIDE;
virtual AppListControllerDelegate* GetControllerDelegate() OVERRIDE;
virtual void CreateShortcut() OVERRIDE;
private:
friend struct DefaultSingletonTraits<AppListServiceLinux>;
AppListServiceLinux();
scoped_ptr<AppListShower> shower_;
scoped_ptr<AppListControllerDelegate> controller_delegate_;
DISALLOW_COPY_AND_ASSIGN(AppListServiceLinux);
};
#endif