#ifndef UI_VIEWS_WIDGET_ANY_WIDGET_OBSERVER_SINGLETON_H_
#define UI_VIEWS_WIDGET_ANY_WIDGET_OBSERVER_SINGLETON_H_
#include "base/no_destructor.h"
#include "base/observer_list.h"
namespace views {
class AnyWidgetObserver;
class Widget;
namespace internal {
class AnyWidgetObserverSingleton {
public:
static AnyWidgetObserverSingleton* GetInstance();
void OnAnyWidgetInitialized(Widget* widget);
void OnAnyWidgetShown(Widget* widget);
void OnAnyWidgetHidden(Widget* widget);
void OnAnyWidgetClosing(Widget* widget);
void OnAnyWidgetActivated(Widget* widget);
void AddObserver(AnyWidgetObserver* observer);
void RemoveObserver(AnyWidgetObserver* observer);
private:
friend class base::NoDestructor<AnyWidgetObserverSingleton>;
AnyWidgetObserverSingleton();
~AnyWidgetObserverSingleton();
base::ObserverList<AnyWidgetObserver> observers_;
};
}
}
#endif