Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / ui / gfx / display_change_notifier.h
1 // Copyright 2014 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_CHANGE_NOTIFIER_H_
6 #define UI_GFX_DISPLAY_CHANGE_NOTIFIER_H_
7
8 #include <vector>
9
10 #include "base/observer_list.h"
11 #include "ui/gfx/gfx_export.h"
12
13 namespace gfx {
14
15 class Display;
16 class DisplayObserver;
17
18 // DisplayChangeNotifier is a class implementing the handling of DisplayObserver
19 // notification for Screen.
20 class GFX_EXPORT DisplayChangeNotifier {
21  public:
22   DisplayChangeNotifier();
23   ~DisplayChangeNotifier();
24
25   void AddObserver(DisplayObserver* observer);
26
27   void RemoveObserver(DisplayObserver* observer);
28
29   void NotifyDisplaysChanged(const std::vector<Display>& old_displays,
30                              const std::vector<Display>& new_displays);
31
32  private:
33   // The observers that need to be notified when a display is modified, added
34   // or removed.
35   ObserverList<DisplayObserver> observer_list_;
36
37   DISALLOW_COPY_AND_ASSIGN(DisplayChangeNotifier);
38 };
39
40 } // namespace gfx
41
42 #endif // UI_GFX_DISPLAY_CHANGE_NOTIFIER_H_
43