display_change_observer_chromeos.h revision 3551c9c881056c480085172ff9840cab31610854
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 13namespace ash { 14namespace internal { 15 16struct Resolution; 17 18// An object that observes changes in display configuration and 19// update DisplayManagers. 20class DisplayChangeObserver 21 : public chromeos::OutputConfigurator::StateController, 22 public chromeos::OutputConfigurator::Observer, 23 public ShellObserver { 24 public: 25 // Returns true if the size info in the output_info isn't valid 26 // and should be ignored. This is exposed for testing. 27 // |mm_width| and |mm_height| are given in millimeters. 28 ASH_EXPORT static bool ShouldIgnoreSize(unsigned long mm_width, 29 unsigned long mm_height); 30 31 // Returns the resolution list. 32 ASH_EXPORT static std::vector<Resolution> GetResolutionList( 33 const chromeos::OutputConfigurator::OutputSnapshot& output); 34 35 DisplayChangeObserver(); 36 virtual ~DisplayChangeObserver(); 37 38 // chromeos::OutputConfigurator::StateController overrides: 39 virtual chromeos::OutputState GetStateForDisplayIds( 40 const std::vector<int64>& outputs) const OVERRIDE; 41 virtual bool GetResolutionForDisplayId(int64 display_id, 42 int* width, 43 int* height) const OVERRIDE; 44 45 // Overriden from chromeos::OutputConfigurator::Observer: 46 virtual void OnDisplayModeChanged( 47 const std::vector<chromeos::OutputConfigurator::OutputSnapshot>& outputs) 48 OVERRIDE; 49 50 // Overriden from ShellObserver: 51 virtual void OnAppTerminating() OVERRIDE; 52 53 private: 54 DISALLOW_COPY_AND_ASSIGN(DisplayChangeObserver); 55}; 56 57} // namespace internal 58} // namespace ash 59 60#endif // ASH_DISPLAY_AURA_DISPLAY_CHANGE_OBSERVER_CHROMEOS_H 61