display_change_observer_chromeos.h revision c5cede9ae108bb15f6b7a8aea21c7e1fefa2834c
1// Copyright 2013 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef ASH_DISPLAY_DISPLAY_CHANGE_OBSERVER_CHROMEOS_H 6#define ASH_DISPLAY_DISPLAY_CHANGE_OBSERVER_CHROMEOS_H 7 8#include "ash/ash_export.h" 9#include "ash/shell_observer.h" 10#include "base/basictypes.h" 11#include "ui/display/chromeos/display_configurator.h" 12 13namespace ash { 14 15struct DisplayMode; 16 17// An object that observes changes in display configuration and 18// update DisplayManagers. 19class DisplayChangeObserver : public ui::DisplayConfigurator::StateController, 20 public ui::DisplayConfigurator::Observer, 21 public ShellObserver { 22 public: 23 // Returns the resolution list. 24 ASH_EXPORT static std::vector<DisplayMode> GetDisplayModeList( 25 const ui::DisplayConfigurator::DisplayState& output); 26 27 DisplayChangeObserver(); 28 virtual ~DisplayChangeObserver(); 29 30 // ui::DisplayConfigurator::StateController overrides: 31 virtual ui::MultipleDisplayState GetStateForDisplayIds( 32 const std::vector<int64>& outputs) const OVERRIDE; 33 virtual bool GetResolutionForDisplayId(int64 display_id, 34 gfx::Size* size) const OVERRIDE; 35 36 // Overriden from ui::DisplayConfigurator::Observer: 37 virtual void OnDisplayModeChanged( 38 const ui::DisplayConfigurator::DisplayStateList& outputs) OVERRIDE; 39 40 // Overriden from ShellObserver: 41 virtual void OnAppTerminating() OVERRIDE; 42 43 private: 44 DISALLOW_COPY_AND_ASSIGN(DisplayChangeObserver); 45}; 46 47} // namespace ash 48 49#endif // ASH_DISPLAY_AURA_DISPLAY_CHANGE_OBSERVER_CHROMEOS_H 50