bluecore/engine/Utilities/Activated.h

88 lines
1.2 KiB
C++

#ifndef BLUECORE_ACTIVATED_H
#define BLUECORE_ACTIVATED_H
namespace BlueCore
{
class Activated
{
private:
bool _Active;
public:
/**
* Default constructor.
* inital state is active
*/
inline Activated()
{
_Active = true;
}
/**
* Constructor.
* @param set inital state
*/
inline Activated(bool state) :
_Active(state )
{
}
/**
* Destructor.
*/
virtual inline ~Activated()
{
}
/**
* Activate the object.
*/
inline void activate()
{
_Active = true;
onActivation();
}
virtual void onActivation()
{
}
/**
* Deactivate the object.
*/
inline void deactivate()
{
_Active = false;
onDeactivation();
}
virtual void onDeactivation()
{
}
/**
* toggles the object's state
*/
inline void toggleActive()
{
if (_Active )
deactivate();
else
activate();
}
/**
* returns the object's state
*/
inline bool isActive()
{
return _Active;
}
};
} // namespace BlueCore
#endif // BLUECORE_ACTIVATED_H