mirror of
https://github.com/ncblakely/GiantsTools
synced 2024-11-23 14:45:37 +01:00
45 lines
716 B
C++
45 lines
716 B
C++
#pragma once
|
|
|
|
/// <summary>
|
|
/// Event types for <see cref="IConfig">.
|
|
/// </summary>
|
|
enum class ConfigEventType
|
|
{
|
|
None = 0,
|
|
|
|
ConfigLoaded,
|
|
ConfigSaving
|
|
};
|
|
|
|
struct ConfigEvent
|
|
{
|
|
public:
|
|
virtual ~ConfigEvent() = default;
|
|
ConfigEvent(ConfigEventType type) noexcept { this->type = type; }
|
|
|
|
private:
|
|
ConfigEventType type;
|
|
};
|
|
|
|
struct ConfigLoadedEvent : ConfigEvent
|
|
{
|
|
ConfigLoadedEvent(struct IConfig& config) noexcept
|
|
: ConfigEvent(ConfigEventType::ConfigLoaded),
|
|
config(config)
|
|
{
|
|
}
|
|
|
|
struct IConfig& config;
|
|
};
|
|
|
|
struct ConfigSavingEvent : ConfigEvent
|
|
{
|
|
ConfigSavingEvent(struct IConfig& config) noexcept
|
|
: ConfigEvent(ConfigEventType::ConfigSaving),
|
|
config(config)
|
|
{
|
|
}
|
|
|
|
struct IConfig& config;
|
|
};
|