1 // Copyright (c) 2012 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 UI_GFX_DISPLAY_OBSERVER_H_ 6 #define UI_GFX_DISPLAY_OBSERVER_H_ 7 8 #include <stdint.h> 9 10 #include "ui/gfx/gfx_export.h" 11 12 namespace gfx { 13 class Display; 14 15 // Observers for display configuration changes. 16 // TODO(oshima): consolidate |WorkAreaWatcherObserver| and 17 // |DisplaySettingsProvier|. crbug.com/122863. 18 class GFX_EXPORT DisplayObserver { 19 public: 20 enum DisplayMetric { 21 DISPLAY_METRIC_NONE = 0, 22 DISPLAY_METRIC_BOUNDS = 1 << 0, 23 DISPLAY_METRIC_WORK_AREA = 1 << 1, 24 DISPLAY_METRIC_DEVICE_SCALE_FACTOR = 1 << 2, 25 DISPLAY_METRIC_ROTATION = 1 << 3, 26 }; 27 28 // Called when |new_display| has been added. 29 virtual void OnDisplayAdded(const Display& new_display) = 0; 30 31 // Called when |old_display| has been removed. 32 virtual void OnDisplayRemoved(const Display& old_display) = 0; 33 34 // Called when a |display| has one or more metrics changed. |changed_metrics| 35 // will contain the information about the change, see |DisplayMetric|. 36 virtual void OnDisplayMetricsChanged(const Display& display, 37 uint32_t changed_metrics) = 0; 38 39 protected: 40 virtual ~DisplayObserver(); 41 }; 42 43 } // namespace gfx 44 45 #endif // UI_GFX_DISPLAY_OBSERVER_H_ 46