SettingsObserver.h
1 #pragma once 2 3 #include <unordered_set> 4 5 #include <Settings.h> 6 #include <SettingsConstants.h> 7 8 class SettingsObserver 9 { 10 public: 11 SettingsObserver(std::unordered_set<SettingId> observedSettings) : 12 m_observedSettings(std::move(observedSettings)) 13 { 14 AlwaysOnTopSettings::instance().AddObserver(*this); 15 } 16 17 virtual ~SettingsObserver() 18 { 19 AlwaysOnTopSettings::instance().RemoveObserver(*this); 20 } 21 22 virtual void SettingsUpdate(SettingId type) {} 23 24 bool WantsToBeNotified(SettingId type) const noexcept 25 { 26 return m_observedSettings.contains(type); 27 } 28 29 protected: 30 std::unordered_set<SettingId> m_observedSettings; 31 };