diff options
author | erg@chromium.org <erg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-03-10 00:18:48 +0000 |
---|---|---|
committer | erg@chromium.org <erg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-03-10 00:18:48 +0000 |
commit | 277a3bb5fd9196b3109d0e6ca2ba6a4ec43582b4 (patch) | |
tree | 94b10b9669fc76bc969be9709d3e2f4cb6b0dc80 /ash/screen_ash.h | |
parent | 011352fdfe5524e72ea9aff9cc21b553ff4dc351 (diff) | |
download | chromium_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.h | 62 |
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_ |