Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(23)

Side by Side Diff: ash/shell_delegate.h

Issue 2118593002: mash: Migrate ShellDelegate ownership and access to WmShell. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address comments. Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « ash/shell/window_type_launcher.cc ('k') | ash/shell_init_params.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // 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_DELEGATE_H_
6 #define ASH_SHELL_DELEGATE_H_
7
8 #include <memory>
9 #include <string>
10
11 #include "ash/ash_export.h"
12 #include "base/callback.h"
13 #include "base/strings/string16.h"
14
15 class GURL;
16
17 namespace app_list {
18 class AppListPresenter;
19 class AppListViewDelegate;
20 }
21
22 namespace gfx {
23 class Image;
24 }
25
26 namespace keyboard {
27 class KeyboardUI;
28 }
29
30 namespace ui {
31 class MenuModel;
32 }
33
34 namespace views {
35 class Widget;
36 }
37
38 namespace ash {
39
40 class AccessibilityDelegate;
41 class GPUSupport;
42 class MediaDelegate;
43 class NewWindowDelegate;
44 class PointerWatcherDelegate;
45 class SessionStateDelegate;
46 class ShelfDelegate;
47 class ShelfModel;
48 class SystemTrayDelegate;
49 class UserWallpaperDelegate;
50 struct ShelfItem;
51 class WmShelf;
52 class WmWindow;
53
54 class ASH_EXPORT VirtualKeyboardStateObserver {
55 public:
56 // Called when keyboard is activated/deactivated.
57 virtual void OnVirtualKeyboardStateChanged(bool activated) {}
58
59 protected:
60 virtual ~VirtualKeyboardStateObserver() {}
61 };
62
63 // Delegate of the Shell.
64 class ASH_EXPORT ShellDelegate {
65 public:
66 // The Shell owns the delegate.
67 virtual ~ShellDelegate() {}
68
69 // Returns true if this is the first time that the shell has been run after
70 // the system has booted. false is returned after the shell has been
71 // restarted, typically due to logging in as a guest or logging out.
72 virtual bool IsFirstRunAfterBoot() const = 0;
73
74 // Returns true if multi-profiles feature is enabled.
75 virtual bool IsMultiProfilesEnabled() const = 0;
76
77 // Returns true if incognito mode is allowed for the user.
78 // Incognito windows are restricted for supervised users.
79 virtual bool IsIncognitoAllowed() const = 0;
80
81 // Returns true if we're running in forced app mode.
82 virtual bool IsRunningInForcedAppMode() const = 0;
83
84 // Returns true if |window| can be shown for the delegate's concept of current
85 // user.
86 virtual bool CanShowWindowForUser(WmWindow* window) const = 0;
87
88 // Returns true if the first window shown on first run should be
89 // unconditionally maximized, overriding the heuristic that normally chooses
90 // the window size.
91 virtual bool IsForceMaximizeOnFirstRun() const = 0;
92
93 // Called before processing |Shell::Init()| so that the delegate
94 // can perform tasks necessary before the shell is initialized.
95 virtual void PreInit() = 0;
96
97 // Called at the beginninig of Shell destructor so that
98 // delegate can use Shell instance to perform cleanup tasks.
99 virtual void PreShutdown() = 0;
100
101 // Invoked when the user uses Ctrl-Shift-Q to close chrome.
102 virtual void Exit() = 0;
103
104 // Create a shell-specific keyboard::KeyboardUI
105 virtual keyboard::KeyboardUI* CreateKeyboardUI() = 0;
106
107 // Called when virtual keyboard has been activated/deactivated.
108 virtual void VirtualKeyboardActivated(bool activated) = 0;
109
110 // Adds or removes virtual keyboard state observer.
111 virtual void AddVirtualKeyboardStateObserver(
112 VirtualKeyboardStateObserver* observer) = 0;
113 virtual void RemoveVirtualKeyboardStateObserver(
114 VirtualKeyboardStateObserver* observer) = 0;
115
116 // Opens the |url| in a new browser tab.
117 virtual void OpenUrl(const GURL& url) = 0;
118
119 // Get the AppListPresenter. Ownership stays with Chrome.
120 virtual app_list::AppListPresenter* GetAppListPresenter() = 0;
121
122 // Creates a new ShelfDelegate. Shell takes ownership of the returned
123 // value.
124 virtual ShelfDelegate* CreateShelfDelegate(ShelfModel* model) = 0;
125
126 // Creates a system-tray delegate. Shell takes ownership of the delegate.
127 virtual SystemTrayDelegate* CreateSystemTrayDelegate() = 0;
128
129 // Creates a user wallpaper delegate. Shell takes ownership of the delegate.
130 virtual UserWallpaperDelegate* CreateUserWallpaperDelegate() = 0;
131
132 // Creates a session state delegate. Shell takes ownership of the delegate.
133 virtual SessionStateDelegate* CreateSessionStateDelegate() = 0;
134
135 // Creates a accessibility delegate. Shell takes ownership of the delegate.
136 virtual AccessibilityDelegate* CreateAccessibilityDelegate() = 0;
137
138 // Creates an application delegate. Shell takes ownership of the delegate.
139 virtual NewWindowDelegate* CreateNewWindowDelegate() = 0;
140
141 // Creates a media delegate. Shell takes ownership of the delegate.
142 virtual MediaDelegate* CreateMediaDelegate() = 0;
143
144 virtual std::unique_ptr<PointerWatcherDelegate>
145 CreatePointerWatcherDelegate() = 0;
146
147 // Creates a menu model for the |wm_shelf| and optional shelf |item|.
148 // If |item| is null, this creates a context menu for the desktop or shelf.
149 virtual ui::MenuModel* CreateContextMenu(WmShelf* wm_shelf,
150 const ShelfItem* item) = 0;
151
152 // Creates a GPU support object. Shell takes ownership of the object.
153 virtual GPUSupport* CreateGPUSupport() = 0;
154
155 // Get the product name.
156 virtual base::string16 GetProductName() const = 0;
157
158 virtual void OpenKeyboardShortcutHelpPage() const {}
159
160 virtual gfx::Image GetDeprecatedAcceleratorImage() const = 0;
161
162 // Toggles the status of the touchpad / touchscreen on or off.
163 virtual void ToggleTouchpad() {}
164 virtual void ToggleTouchscreen() {}
165 };
166
167 } // namespace ash
168
169 #endif // ASH_SHELL_DELEGATE_H_
OLDNEW
« no previous file with comments | « ash/shell/window_type_launcher.cc ('k') | ash/shell_init_params.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698