summaryrefslogtreecommitdiffstats
path: root/ash/screen_ash.cc
diff options
context:
space:
mode:
authorerg@chromium.org <erg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-03-13 21:09:17 +0000
committererg@chromium.org <erg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-03-13 21:09:17 +0000
commit1a2145b860591d2e868ab98147ea4f162636d7eb (patch)
tree26a65524e4698ffc4b76eeb3409bbd0fca2ae238 /ash/screen_ash.cc
parent73238e09cc56e8b1b599ec978bec7bdd7a7730a8 (diff)
downloadchromium_src-1a2145b860591d2e868ab98147ea4f162636d7eb.zip
chromium_src-1a2145b860591d2e868ab98147ea4f162636d7eb.tar.gz
chromium_src-1a2145b860591d2e868ab98147ea4f162636d7eb.tar.bz2
Recommit r125950, which was reverted by r125958 due to link failures on win_aura bot.
Aura/Ash split: Move ScreenAura to aura::RootWindowScreen. What is now aura::RootWindowScreen was tightly bundled with aura::RootWindow. Instead of moving it to ash::ScreenAsh, I renamed it aurea::RootWindowScreen because there's a bunch of unit tests that use RootWindow as if it were the desktop. Screen integration stuff has been moved out of RootWindow (and related observers) and into ash::Shell. BUG=116458 First Review URL: http://codereview.chromium.org/9616045 Review URL: http://codereview.chromium.org/9696008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@126464 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ash/screen_ash.cc')
-rw-r--r--ash/screen_ash.cc67
1 files changed, 67 insertions, 0 deletions
diff --git a/ash/screen_ash.cc b/ash/screen_ash.cc
new file mode 100644
index 0000000..bbdf9e8
--- /dev/null
+++ b/ash/screen_ash.cc
@@ -0,0 +1,67 @@
+// Copyright (c) 2012 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 "ash/screen_ash.h"
+
+#include "base/logging.h"
+#include "ui/aura/root_window.h"
+#include "ui/aura/window.h"
+#include "ui/gfx/native_widget_types.h"
+
+namespace ash {
+
+ScreenAsh::ScreenAsh(aura::RootWindow* root_window)
+ : root_window_(root_window) {
+}
+
+ScreenAsh::~ScreenAsh() {
+}
+
+gfx::Point ScreenAsh::GetCursorScreenPointImpl() {
+ return root_window_->last_mouse_location();
+}
+
+gfx::Rect ScreenAsh::GetMonitorWorkAreaNearestWindowImpl(
+ gfx::NativeWindow window) {
+ return GetWorkAreaBounds();
+}
+
+gfx::Rect ScreenAsh::GetMonitorAreaNearestWindowImpl(
+ gfx::NativeWindow window) {
+ return GetBounds();
+}
+
+gfx::Rect ScreenAsh::GetMonitorWorkAreaNearestPointImpl(
+ const gfx::Point& point) {
+ return GetWorkAreaBounds();
+}
+
+gfx::Rect ScreenAsh::GetMonitorAreaNearestPointImpl(const gfx::Point& point) {
+ return GetBounds();
+}
+
+gfx::NativeWindow ScreenAsh::GetWindowAtCursorScreenPointImpl() {
+ const gfx::Point point = GetCursorScreenPoint();
+ return root_window_->GetTopWindowContainingPoint(point);
+}
+
+gfx::Rect ScreenAsh::GetBounds() {
+ return gfx::Rect(root_window_->bounds().size());
+}
+
+gfx::Rect ScreenAsh::GetWorkAreaBounds() {
+ gfx::Rect bounds(GetBounds());
+ bounds.Inset(work_area_insets_);
+ return bounds;
+}
+
+gfx::Size ScreenAsh::GetPrimaryMonitorSizeImpl() {
+ return GetMonitorWorkAreaNearestPoint(gfx::Point()).size();
+}
+
+int ScreenAsh::GetNumMonitorsImpl() {
+ return 1;
+}
+
+} // namespace ash