Index: ui/display/desktop_observer.cc |
diff --git a/ui/display/desktop_observer.cc b/ui/display/desktop_observer.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..0a15c1a951d98aa3a5c85ee058ac474ccaefb5d8 |
--- /dev/null |
+++ b/ui/display/desktop_observer.cc |
@@ -0,0 +1,34 @@ |
+// Copyright 2016 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "ui/display/desktop_observer.h" |
+ |
+namespace display { |
+ |
+namespace desktop { |
+ |
+namespace { |
+ |
+base::ObserverList<DesktopObserver> g_desktop_observer_list; |
Lei Zhang
2016/06/29 20:51:01
This probably should be a LazyInstance or it will
Tom (Use chromium acct)
2016/06/29 21:12:50
Done.
|
+ |
+} // anonymous namespace |
+ |
+DesktopObserver::~DesktopObserver() {} |
+ |
+void AddObserver(DesktopObserver* observer) { |
+ g_desktop_observer_list.AddObserver(observer); |
+} |
+ |
+void RemoveObserver(DesktopObserver* observer) { |
+ g_desktop_observer_list.RemoveObserver(observer); |
+} |
+ |
+void OnWorkspaceChanged(const std::string& new_workspace) { |
+ FOR_EACH_OBSERVER(DesktopObserver, g_desktop_observer_list, |
+ OnWorkspaceChanged(new_workspace)); |
+} |
+ |
+} // namespace desktop |
+ |
+} // namespace display |