summaryrefslogtreecommitdiffstats
path: root/ash/screen_ash.h
diff options
context:
space:
mode:
authorerg@chromium.org <erg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-03-10 00:18:48 +0000
committererg@chromium.org <erg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-03-10 00:18:48 +0000
commit277a3bb5fd9196b3109d0e6ca2ba6a4ec43582b4 (patch)
tree94b10b9669fc76bc969be9709d3e2f4cb6b0dc80 /ash/screen_ash.h
parent011352fdfe5524e72ea9aff9cc21b553ff4dc351 (diff)
downloadchromium_src-277a3bb5fd9196b3109d0e6ca2ba6a4ec43582b4.zip
chromium_src-277a3bb5fd9196b3109d0e6ca2ba6a4ec43582b4.tar.gz
chromium_src-277a3bb5fd9196b3109d0e6ca2ba6a4ec43582b4.tar.bz2
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 Review URL: http://codereview.chromium.org/9616045 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@125950 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ash/screen_ash.h')
-rw-r--r--ash/screen_ash.h62
1 files changed, 62 insertions, 0 deletions
diff --git a/ash/screen_ash.h b/ash/screen_ash.h
new file mode 100644
index 0000000..deaa76f
--- /dev/null
+++ b/ash/screen_ash.h
@@ -0,0 +1,62 @@
+// 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.
+
+#ifndef ASH_SCREEN_ASH_H_
+#define ASH_SCREEN_ASH_H_
+#pragma once
+
+#include "base/compiler_specific.h"
+#include "ash/ash_export.h"
+#include "ui/gfx/insets.h"
+#include "ui/gfx/screen.h"
+
+namespace aura {
+class RootWindow;
+}
+
+namespace ash {
+
+// Aura implementation of gfx::Screen. Implemented here to avoid circular
+// dependencies.
+class ASH_EXPORT ScreenAsh : public gfx::Screen {
+ public:
+ explicit ScreenAsh(aura::RootWindow* root_window);
+ virtual ~ScreenAsh();
+
+ void set_work_area_insets(const gfx::Insets& insets) {
+ work_area_insets_ = insets;
+ }
+ const gfx::Insets& work_area_insets() const { return work_area_insets_; }
+
+ protected:
+ virtual gfx::Point GetCursorScreenPointImpl() OVERRIDE;
+ virtual gfx::Rect GetMonitorWorkAreaNearestWindowImpl(
+ gfx::NativeView view) OVERRIDE;
+ virtual gfx::Rect GetMonitorAreaNearestWindowImpl(
+ gfx::NativeView view) OVERRIDE;
+ virtual gfx::Rect GetMonitorWorkAreaNearestPointImpl(
+ const gfx::Point& point) OVERRIDE;
+ virtual gfx::Rect GetMonitorAreaNearestPointImpl(
+ const gfx::Point& point) OVERRIDE;
+ virtual gfx::NativeWindow GetWindowAtCursorScreenPointImpl() OVERRIDE;
+ virtual gfx::Size GetPrimaryMonitorSizeImpl() OVERRIDE;
+ virtual int GetNumMonitorsImpl() OVERRIDE;
+
+ private:
+ // We currently support only one monitor. These two methods return the bounds
+ // and work area.
+ gfx::Rect GetBounds();
+ gfx::Rect GetWorkAreaBounds();
+
+ // Insets for the work area.
+ gfx::Insets work_area_insets_;
+
+ aura::RootWindow* root_window_;
+
+ DISALLOW_COPY_AND_ASSIGN(ScreenAsh);
+};
+
+} // namespace ash
+
+#endif // ASH_SCREEN_ASH_H_