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.
5 #ifndef COMPONENTS_MUS_PUBLIC_CPP_VIEW_TRACKER_H_
6 #define COMPONENTS_MUS_PUBLIC_CPP_VIEW_TRACKER_H_
11 #include "components/mus/public/cpp/view_observer.h"
12 #include "third_party/mojo/src/mojo/public/cpp/system/macros.h"
16 class ViewTracker
: public ViewObserver
{
18 using Views
= std::set
<View
*>;
21 ~ViewTracker() override
;
23 // Returns the set of views being observed.
24 const std::set
<View
*>& views() const { return views_
; }
26 // Adds |view| to the set of Views being tracked.
29 // Removes |view| from the set of views being tracked.
30 void Remove(View
* view
);
32 // Returns true if |view| was previously added and has not been removed or
34 bool Contains(View
* view
);
36 // ViewObserver overrides:
37 void OnViewDestroying(View
* view
) override
;
42 MOJO_DISALLOW_COPY_AND_ASSIGN(ViewTracker
);
47 #endif // COMPONENTS_MUS_PUBLIC_CPP_VIEW_TRACKER_H_