← Back to file list Raw

src/CSwitchableBase.h

#pragma once
#include "U_General.h"
template<typename Type>
class CSwitchableBase
{
public:
virtual ~CSwitchableBase() {}
void Enable()
{
m_getSwitchVar() = true;
}
void Disable()
{
m_getSwitchVar() = false;
}
void ToggleEnabledState()
{
m_getSwitchVar() = !m_getSwitchVar();
}
void SetEnabledState(bool isenabled = true)
{
m_getSwitchVar() = isenabled;
}
Type IsEnabled() const
{
return GET_CONST_FIELD(Type&, CSwitchableBase, m_getSwitchVar());
}
private:
virtual Type& m_getSwitchVar() = 0;
};