Files
PowerToys/src/modules/alwaysontop/AlwaysOnTop/SettingsObserver.h
Seraphima Zykova fa81968dbb [AlwaysOnTop] Proof of concept (#14360)
Co-authored-by: Niels Laute <niels.laute@live.nl>
2021-12-29 17:33:20 +00:00

31 lines
676 B
C++

#pragma once
#include <unordered_set>
#include <Settings.h>
#include <SettingsConstants.h>
class SettingsObserver
{
public:
SettingsObserver(std::unordered_set<SettingId> observedSettings) :
m_observedSettings(std::move(observedSettings))
{
AlwaysOnTopSettings::instance().AddObserver(*this);
}
virtual ~SettingsObserver()
{
AlwaysOnTopSettings::instance().RemoveObserver(*this);
}
virtual void SettingsUpdate(SettingId type) {}
bool WantsToBeNotified(SettingId type) const noexcept
{
return m_observedSettings.contains(type);
}
protected:
std::unordered_set<SettingId> m_observedSettings;
};