blob: ce80c0c03f4c5b003e1981ac30d72f96f292f433 [file] [log] [blame]
[email protected]262f8bd2012-03-23 19:30:271// Copyright (c) 2012 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 ASH_SHELL_SHELL_DELEGATE_IMPL_H_
6#define ASH_SHELL_SHELL_DELEGATE_IMPL_H_
[email protected]262f8bd2012-03-23 19:30:277
dchenga94547472016-04-08 08:41:118#include <memory>
[email protected]565f32fc02013-03-05 18:51:489#include <string>
10
msw0414d4122016-07-06 22:58:4811#include "ash/common/shell_delegate.h"
[email protected]262f8bd2012-03-23 19:30:2712#include "base/compiler_specific.h"
avidb567a8a2015-12-20 17:07:2413#include "base/macros.h"
[email protected]262f8bd2012-03-23 19:30:2714
mfomitchev493ed602016-04-09 00:48:3915namespace app_list {
mfomitchevda899d82016-04-15 22:20:3716class AppListPresenterDelegateFactory;
17class AppListPresenterImpl;
mfomitchev493ed602016-04-09 00:48:3918}
19
[email protected]86459e2c2013-04-10 13:39:2420namespace keyboard {
ben974286a2015-10-10 00:45:1221class KeyboardUI;
[email protected]86459e2c2013-04-10 13:39:2422}
23
[email protected]262f8bd2012-03-23 19:30:2724namespace ash {
25namespace shell {
26
[email protected]8b57e942013-12-09 19:39:2027class ShelfDelegateImpl;
[email protected]262f8bd2012-03-23 19:30:2728
msw0414d4122016-07-06 22:58:4829class ShellDelegateImpl : public ShellDelegate {
[email protected]262f8bd2012-03-23 19:30:2730 public:
31 ShellDelegateImpl();
dchengf5963512014-10-28 01:14:1332 ~ShellDelegateImpl() override;
[email protected]262f8bd2012-03-23 19:30:2733
dchengf5963512014-10-28 01:14:1334 bool IsFirstRunAfterBoot() const override;
35 bool IsIncognitoAllowed() const override;
36 bool IsMultiProfilesEnabled() const override;
37 bool IsRunningInForcedAppMode() const override;
jamescookfd4ba1d2016-06-10 04:38:1738 bool CanShowWindowForUser(WmWindow* window) const override;
peletskyida0bbb12015-04-08 17:11:0439 bool IsForceMaximizeOnFirstRun() const override;
dchengf5963512014-10-28 01:14:1340 void PreInit() override;
41 void PreShutdown() override;
42 void Exit() override;
ben974286a2015-10-10 00:45:1243 keyboard::KeyboardUI* CreateKeyboardUI() override;
dchengf5963512014-10-28 01:14:1344 void VirtualKeyboardActivated(bool activated) override;
45 void AddVirtualKeyboardStateObserver(
mostynb10d6b382014-10-03 16:23:4546 VirtualKeyboardStateObserver* observer) override;
dchengf5963512014-10-28 01:14:1347 void RemoveVirtualKeyboardStateObserver(
mostynb10d6b382014-10-03 16:23:4548 VirtualKeyboardStateObserver* observer) override;
yusukes0b08bdbb2016-03-30 21:39:5449 void OpenUrl(const GURL& url) override;
mfomitchevda899d82016-04-15 22:20:3750 app_list::AppListPresenter* GetAppListPresenter() override;
dchengf5963512014-10-28 01:14:1351 ShelfDelegate* CreateShelfDelegate(ShelfModel* model) override;
msw0414d4122016-07-06 22:58:4852 SystemTrayDelegate* CreateSystemTrayDelegate() override;
53 UserWallpaperDelegate* CreateUserWallpaperDelegate() override;
54 SessionStateDelegate* CreateSessionStateDelegate() override;
55 AccessibilityDelegate* CreateAccessibilityDelegate() override;
56 NewWindowDelegate* CreateNewWindowDelegate() override;
57 MediaDelegate* CreateMediaDelegate() override;
jamescook214fcbde2016-04-28 01:16:0658 std::unique_ptr<PointerWatcherDelegate> CreatePointerWatcherDelegate()
59 override;
jamescookda53c142016-06-08 23:38:5660 ui::MenuModel* CreateContextMenu(WmShelf* wm_shelf,
61 const ShelfItem* item) override;
dchengf5963512014-10-28 01:14:1362 GPUSupport* CreateGPUSupport() override;
63 base::string16 GetProductName() const override;
afakhrycd2bb98d2015-09-09 09:03:4264 gfx::Image GetDeprecatedAcceleratorImage() const override;
[email protected]262f8bd2012-03-23 19:30:2765
66 private:
[email protected]8b57e942013-12-09 19:39:2067 ShelfDelegateImpl* shelf_delegate_;
mfomitchevda899d82016-04-15 22:20:3768 std::unique_ptr<app_list::AppListPresenterDelegateFactory>
69 app_list_presenter_delegate_factory_;
70 std::unique_ptr<app_list::AppListPresenterImpl> app_list_presenter_;
[email protected]262f8bd2012-03-23 19:30:2771
[email protected]262f8bd2012-03-23 19:30:2772 DISALLOW_COPY_AND_ASSIGN(ShellDelegateImpl);
73};
74
75} // namespace shell
76} // namespace ash
77
78#endif // ASH_SHELL_SHELL_DELEGATE_IMPL_H_