diff options
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_ |