// 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 UI_AURA_SINGLE_DISPLAY_MANAGER_H_ #define UI_AURA_SINGLE_DISPLAY_MANAGER_H_ #include "base/compiler_specific.h" #include "ui/aura/aura_export.h" #include "ui/aura/display_manager.h" #include "ui/aura/window_observer.h" #include "ui/gfx/display.h" namespace gfx { class Rect; } namespace aura { // A display manager assuming there is one display. class AURA_EXPORT SingleDisplayManager : public DisplayManager, public WindowObserver { public: SingleDisplayManager(); virtual ~SingleDisplayManager(); // DisplayManager overrides: virtual void OnNativeDisplaysChanged( const std::vector& display) OVERRIDE; virtual RootWindow* CreateRootWindowForDisplay( const gfx::Display& display) OVERRIDE; virtual gfx::Display* GetDisplayAt(size_t index) OVERRIDE; virtual size_t GetNumDisplays() const OVERRIDE; virtual const gfx::Display& GetDisplayNearestWindow( const Window* window) const OVERRIDE; virtual const gfx::Display& GetDisplayNearestPoint( const gfx::Point& point) const OVERRIDE; virtual const gfx::Display& GetDisplayMatching( const gfx::Rect& match_rect) const OVERRIDE; // WindowObserver overrides: virtual void OnWindowBoundsChanged(Window* window, const gfx::Rect& old_bounds, const gfx::Rect& new_bounds) OVERRIDE; virtual void OnWindowDestroying(Window* window) OVERRIDE; private: void Init(); void Update(const gfx::Size size); RootWindow* root_window_; gfx::Display display_; DISALLOW_COPY_AND_ASSIGN(SingleDisplayManager); }; } // namespace aura #endif // UI_AURA_SINGLE_DISPLAY_MANAGER_H_