[AlwaysOnTop] Proof of concept (#14360)

Co-authored-by: Niels Laute <niels.laute@live.nl>
This commit is contained in:
Seraphima Zykova
2021-12-29 20:33:20 +03:00
committed by GitHub
parent d39c4121a9
commit fa81968dbb
60 changed files with 2859 additions and 10 deletions

View File

@@ -0,0 +1,31 @@
#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;
};