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 "chromeos/display/output_configurator.h" 12 13 namespace ash { 14 namespace internal { 15 16 struct Resolution; 17 18 // An object that observes changes in display configuration and 19 // update DisplayManagers. 20 class DisplayChangeObserver 21 : public chromeos::OutputConfigurator::StateController, 22 public chromeos::OutputConfigurator::Observer, 23 public ShellObserver { 24 public: 25 // Returns the resolution list. 26 ASH_EXPORT static std::vector<Resolution> GetResolutionList( 27 const chromeos::OutputConfigurator::OutputSnapshot& output); 28 29 DisplayChangeObserver(); 30 virtual ~DisplayChangeObserver(); 31 32 // chromeos::OutputConfigurator::StateController overrides: 33 virtual chromeos::OutputState GetStateForDisplayIds( 34 const std::vector<int64>& outputs) const OVERRIDE; 35 virtual bool GetResolutionForDisplayId(int64 display_id, 36 int* width, 37 int* height) const OVERRIDE; 38 39 // Overriden from chromeos::OutputConfigurator::Observer: 40 virtual void OnDisplayModeChanged( 41 const std::vector<chromeos::OutputConfigurator::OutputSnapshot>& outputs) 42 OVERRIDE; 43 44 // Overriden from ShellObserver: 45 virtual void OnAppTerminating() OVERRIDE; 46 47 private: 48 DISALLOW_COPY_AND_ASSIGN(DisplayChangeObserver); 49 }; 50 51 } // namespace internal 52 } // namespace ash 53 54 #endif // ASH_DISPLAY_AURA_DISPLAY_CHANGE_OBSERVER_CHROMEOS_H 55