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

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

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/wm_globals_mus.h ('k') | mash/wm/bridge/wm_lookup_mus.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: mash/wm/bridge/wm_globals_mus.cc
diff --git a/mash/wm/bridge/wm_globals_mus.cc b/mash/wm/bridge/wm_globals_mus.cc
new file mode 100644
index 0000000000000000000000000000000000000000..75b6b25314d37a17d1ed153f3e68d1f0f89ad877
--- /dev/null
+++ b/mash/wm/bridge/wm_globals_mus.cc
@@ -0,0 +1,190 @@
+// 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.
+
+#include "mash/wm/bridge/wm_globals_mus.h"
+
+#include "ash/wm/common/window_resizer.h"
+#include "ash/wm/common/wm_activation_observer.h"
+#include "ash/wm/common/wm_shell_window_ids.h"
+#include "components/mus/common/util.h"
+#include "components/mus/public/cpp/window.h"
+#include "components/mus/public/cpp/window_tree_connection.h"
+#include "mash/wm/bridge/wm_root_window_controller_mus.h"
+#include "mash/wm/bridge/wm_window_mus.h"
+#include "mash/wm/public/interfaces/container.mojom.h"
+#include "mash/wm/root_window_controller.h"
+
+namespace mash {
+namespace wm {
+
+WmGlobalsMus::WmGlobalsMus(mus::WindowTreeConnection* connection)
+ : connection_(connection) {
+ connection_->AddObserver(this);
+ WmGlobals::Set(this);
+}
+
+WmGlobalsMus::~WmGlobalsMus() {
+ connection_->RemoveObserver(this);
+ WmGlobals::Set(nullptr);
+}
+
+// static
+WmGlobalsMus* WmGlobalsMus::Get() {
+ return static_cast<WmGlobalsMus*>(ash::wm::WmGlobals::Get());
+}
+
+void WmGlobalsMus::AddRootWindowController(
+ WmRootWindowControllerMus* controller) {
+ root_window_controllers_.push_back(controller);
+}
+
+void WmGlobalsMus::RemoveRootWindowController(
+ WmRootWindowControllerMus* controller) {
+ auto iter = std::find(root_window_controllers_.begin(),
+ root_window_controllers_.end(), controller);
+ DCHECK(iter != root_window_controllers_.end());
+ root_window_controllers_.erase(iter);
+}
+
+// static
+WmWindowMus* WmGlobalsMus::GetToplevelAncestor(mus::Window* window) {
+ while (window) {
+ if (IsActivationParent(window->parent()))
+ return WmWindowMus::Get(window);
+ window = window->parent();
+ }
+ return nullptr;
+}
+
+WmRootWindowControllerMus* WmGlobalsMus::GetRootWindowControllerWithDisplayId(
+ int64_t id) {
+ for (WmRootWindowControllerMus* root_window_controller :
+ root_window_controllers_) {
+ if (root_window_controller->GetDisplay().id() == id)
+ return root_window_controller;
+ }
+ NOTREACHED();
+ return nullptr;
+}
+
+ash::wm::WmWindow* WmGlobalsMus::GetFocusedWindow() {
+ return WmWindowMus::Get(connection_->GetFocusedWindow());
+}
+
+ash::wm::WmWindow* WmGlobalsMus::GetActiveWindow() {
+ return GetToplevelAncestor(connection_->GetFocusedWindow());
+}
+
+ash::wm::WmWindow* WmGlobalsMus::GetRootWindowForDisplayId(int64_t display_id) {
+ return GetRootWindowControllerWithDisplayId(display_id)->GetWindow();
+}
+
+ash::wm::WmWindow* WmGlobalsMus::GetRootWindowForNewWindows() {
+ NOTIMPLEMENTED();
+ return root_window_controllers_[0]->GetWindow();
+}
+
+std::vector<ash::wm::WmWindow*> WmGlobalsMus::GetMruWindowListIgnoreModals() {
+ NOTIMPLEMENTED();
+ return std::vector<ash::wm::WmWindow*>();
+}
+
+bool WmGlobalsMus::IsForceMaximizeOnFirstRun() {
+ NOTIMPLEMENTED();
+ return false;
+}
+
+bool WmGlobalsMus::IsUserSessionBlocked() {
+ NOTIMPLEMENTED();
+ return false;
+}
+
+bool WmGlobalsMus::IsScreenLocked() {
+ NOTIMPLEMENTED();
+ return false;
+}
+
+void WmGlobalsMus::LockCursor() {
+ NOTIMPLEMENTED();
+}
+
+void WmGlobalsMus::UnlockCursor() {
+ NOTIMPLEMENTED();
+}
+
+std::vector<ash::wm::WmWindow*> WmGlobalsMus::GetAllRootWindows() {
+ std::vector<ash::wm::WmWindow*> wm_windows(root_window_controllers_.size());
+ for (size_t i = 0; i < root_window_controllers_.size(); ++i)
+ wm_windows[i] = root_window_controllers_[i]->GetWindow();
+ return wm_windows;
+}
+
+void WmGlobalsMus::RecordUserMetricsAction(
+ ash::wm::WmUserMetricsAction action) {
+ NOTIMPLEMENTED();
+}
+
+std::unique_ptr<ash::WindowResizer> WmGlobalsMus::CreateDragWindowResizer(
+ std::unique_ptr<ash::WindowResizer> next_window_resizer,
+ ash::wm::WindowState* window_state) {
+ NOTIMPLEMENTED();
+ return next_window_resizer;
+}
+
+bool WmGlobalsMus::IsOverviewModeSelecting() {
+ NOTIMPLEMENTED();
+ return false;
+}
+
+bool WmGlobalsMus::IsOverviewModeRestoringMinimizedWindows() {
+ NOTIMPLEMENTED();
+ return false;
+}
+
+void WmGlobalsMus::AddActivationObserver(
+ ash::wm::WmActivationObserver* observer) {
+ activation_observers_.AddObserver(observer);
+}
+
+void WmGlobalsMus::RemoveActivationObserver(
+ ash::wm::WmActivationObserver* observer) {
+ activation_observers_.RemoveObserver(observer);
+}
+
+void WmGlobalsMus::AddDisplayObserver(ash::wm::WmDisplayObserver* observer) {
+ NOTIMPLEMENTED();
+}
+
+void WmGlobalsMus::RemoveDisplayObserver(ash::wm::WmDisplayObserver* observer) {
+ NOTIMPLEMENTED();
+}
+
+void WmGlobalsMus::AddOverviewModeObserver(
+ ash::wm::WmOverviewModeObserver* observer) {
+ NOTIMPLEMENTED();
+}
+
+void WmGlobalsMus::RemoveOverviewModeObserver(
+ ash::wm::WmOverviewModeObserver* observer) {
+ NOTIMPLEMENTED();
+}
+
+// static
+bool WmGlobalsMus::IsActivationParent(mus::Window* window) {
+ return window && window->local_id() == ash::kShellWindowId_DefaultContainer;
+}
+
+void WmGlobalsMus::OnWindowTreeFocusChanged(mus::Window* gained_focus,
+ mus::Window* lost_focus) {
+ WmWindowMus* gained_active = GetToplevelAncestor(gained_focus);
+ WmWindowMus* lost_active = GetToplevelAncestor(gained_focus);
+ if (gained_active == lost_active)
+ return;
+
+ FOR_EACH_OBSERVER(ash::wm::WmActivationObserver, activation_observers_,
+ OnWindowActivated(gained_active, lost_active));
+}
+
+} // namespace wm
+} // namespace mash
« no previous file with comments | « mash/wm/bridge/wm_globals_mus.h ('k') | mash/wm/bridge/wm_lookup_mus.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698