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

Unified Diff: mash/wm/bridge/wm_globals_mus.h

Issue 1954933002: Initial cut of ash/wm/common classes for mus (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: merge to trunk Created 4 years, 7 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 | « mash/wm/bridge/mus_layout_manager_adapter.cc ('k') | mash/wm/bridge/wm_globals_mus.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: mash/wm/bridge/wm_globals_mus.h
diff --git a/mash/wm/bridge/wm_globals_mus.h b/mash/wm/bridge/wm_globals_mus.h
new file mode 100644
index 0000000000000000000000000000000000000000..afe121bd33d7a571f14d75e4266b36d8f52194fb
--- /dev/null
+++ b/mash/wm/bridge/wm_globals_mus.h
@@ -0,0 +1,93 @@
+// Copyright 2016 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef MASH_WM_BRIDGE_WM_GLOBALS_MUS_H_
+#define MASH_WM_BRIDGE_WM_GLOBALS_MUS_H_
+
+#include <stdint.h>
+
+#include <vector>
+
+#include "ash/wm/common/wm_globals.h"
+#include "base/macros.h"
+#include "base/observer_list.h"
+#include "components/mus/public/cpp/window_tree_connection_observer.h"
+
+namespace mus {
+class WindowTreeConnection;
+}
+
+namespace mash {
+namespace wm {
+
+class WmRootWindowControllerMus;
+class WmWindowMus;
+
+// WmGlobals implementation for mus.
+class WmGlobalsMus : public ash::wm::WmGlobals,
+ public mus::WindowTreeConnectionObserver {
+ public:
+ explicit WmGlobalsMus(mus::WindowTreeConnection* connection);
+ ~WmGlobalsMus() override;
+
+ static WmGlobalsMus* Get();
+
+ void AddRootWindowController(WmRootWindowControllerMus* controller);
+ void RemoveRootWindowController(WmRootWindowControllerMus* controller);
+
+ // Returns the ancestor of |window| (including |window|) that is considered
+ // toplevel. |window| may be null.
+ static WmWindowMus* GetToplevelAncestor(mus::Window* window);
+
+ WmRootWindowControllerMus* GetRootWindowControllerWithDisplayId(int64_t id);
+
+ // WmGlobals:
+ ash::wm::WmWindow* GetFocusedWindow() override;
+ ash::wm::WmWindow* GetActiveWindow() override;
+ ash::wm::WmWindow* GetRootWindowForDisplayId(int64_t display_id) override;
+ ash::wm::WmWindow* GetRootWindowForNewWindows() override;
+ std::vector<ash::wm::WmWindow*> GetMruWindowListIgnoreModals() override;
+ bool IsForceMaximizeOnFirstRun() override;
+ bool IsUserSessionBlocked() override;
+ bool IsScreenLocked() override;
+ void LockCursor() override;
+ void UnlockCursor() override;
+ std::vector<ash::wm::WmWindow*> GetAllRootWindows() override;
+ void RecordUserMetricsAction(ash::wm::WmUserMetricsAction action) override;
+ std::unique_ptr<ash::WindowResizer> CreateDragWindowResizer(
+ std::unique_ptr<ash::WindowResizer> next_window_resizer,
+ ash::wm::WindowState* window_state) override;
+ bool IsOverviewModeSelecting() override;
+ bool IsOverviewModeRestoringMinimizedWindows() override;
+ void AddActivationObserver(ash::wm::WmActivationObserver* observer) override;
+ void RemoveActivationObserver(
+ ash::wm::WmActivationObserver* observer) override;
+ void AddDisplayObserver(ash::wm::WmDisplayObserver* observer) override;
+ void RemoveDisplayObserver(ash::wm::WmDisplayObserver* observer) override;
+ void AddOverviewModeObserver(
+ ash::wm::WmOverviewModeObserver* observer) override;
+ void RemoveOverviewModeObserver(
+ ash::wm::WmOverviewModeObserver* observer) override;
+
+ private:
+ // Returns true if |window| is a window that can have active children.
+ static bool IsActivationParent(mus::Window* window);
+
+ // mus::WindowTreeConnectionObserver:
+ void OnWindowTreeFocusChanged(mus::Window* gained_focus,
+ mus::Window* lost_focus) override;
+
+ mus::WindowTreeConnection* connection_;
+
+ std::vector<WmRootWindowControllerMus*> root_window_controllers_;
+
+ base::ObserverList<ash::wm::WmActivationObserver> activation_observers_;
+
+ DISALLOW_COPY_AND_ASSIGN(WmGlobalsMus);
+};
+
+} // namespace wm
+} // namespace mash
+
+#endif // MASH_WM_BRIDGE_WM_GLOBALS_MUS_H_
« no previous file with comments | « mash/wm/bridge/mus_layout_manager_adapter.cc ('k') | mash/wm/bridge/wm_globals_mus.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698