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

Unified Diff: ash/shell.h

Issue 2739763003: Moves maintaining ShellObservers back to Shell (Closed)
Patch Set: merge Created 3 years, 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ash/shelf/shelf_widget_unittest.cc ('k') | ash/shell.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ash/shell.h
diff --git a/ash/shell.h b/ash/shell.h
index 81ffb0d2239a0d2847a46e3d46c98948631a3535..39209b1df1f3cfecbdb9f31be0555662bd8b253f 100644
--- a/ash/shell.h
+++ b/ash/shell.h
@@ -109,6 +109,7 @@ class ScreenPinningController;
class ScreenPositionController;
class SessionStateDelegate;
struct ShellInitParams;
+class ShellObserver;
class ShutdownObserver;
class SmsObserver;
class StickyKeysController;
@@ -410,6 +411,49 @@ class ASH_EXPORT Shell : public SystemModalContainerEventFilterDelegate,
GPUSupport* gpu_support() { return gpu_support_.get(); }
+ void AddShellObserver(ShellObserver* observer);
+ void RemoveShellObserver(ShellObserver* observer);
+
+ // Notifies observers that maximize mode has started, windows might still
+ // animate.
+ void NotifyMaximizeModeStarted();
+
+ // Notifies observers that maximize mode is about to end.
+ void NotifyMaximizeModeEnding();
+
+ // Notifies observers that maximize mode has ended, windows might still be
+ // returning to their original position.
+ void NotifyMaximizeModeEnded();
+
+ // Notifies observers that overview mode is about to be started (before the
+ // windows get re-arranged).
+ void NotifyOverviewModeStarting();
+
+ // Notifies observers that overview mode has ended.
+ void NotifyOverviewModeEnded();
+
+ // Notifies observers that fullscreen mode has changed for |root_window|.
+ void NotifyFullscreenStateChanged(bool is_fullscreen, WmWindow* root_window);
+
+ // Notifies observers that |pinned_window| changed its pinned window state.
+ void NotifyPinnedStateChanged(WmWindow* pinned_window);
+
+ // Notifies observers that the virtual keyboard has been
+ // activated/deactivated.
+ void NotifyVirtualKeyboardActivated(bool activated);
+
+ // Notifies observers that the shelf was created for |root_window|.
+ // TODO(jamescook): Move to Shelf.
+ void NotifyShelfCreatedForRootWindow(WmWindow* root_window);
+
+ // Notifies observers that |root_window|'s shelf changed alignment.
+ // TODO(jamescook): Move to Shelf.
+ void NotifyShelfAlignmentChanged(WmWindow* root_window);
+
+ // Notifies observers that |root_window|'s shelf changed auto-hide behavior.
+ // TODO(jamescook): Move to Shelf.
+ void NotifyShelfAutoHideBehaviorChanged(WmWindow* root_window);
+
private:
FRIEND_TEST_ALL_PREFIXES(ExtendedDesktopTest, TestCursor);
FRIEND_TEST_ALL_PREFIXES(WindowManagerTest, MouseEventCursors);
@@ -580,6 +624,8 @@ class ASH_EXPORT Shell : public SystemModalContainerEventFilterDelegate,
std::unique_ptr<AppListDelegateImpl> app_list_delegate_impl_;
+ base::ObserverList<ShellObserver> shell_observers_;
+
DISALLOW_COPY_AND_ASSIGN(Shell);
};
« no previous file with comments | « ash/shelf/shelf_widget_unittest.cc ('k') | ash/shell.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698