blob: 8bdd58c2b5aa567a997b9cbead54cb3010f3506e [file] [log] [blame]
{% from "macros.tmpl" import license %}
{{ license() }}
#ifndef SettingsMacros_h
#define SettingsMacros_h
#define SETTINGS_GETTERS_AND_SETTERS \
{% for setting in settings %}
{{setting.type|to_passing_type}} {{setting.name}}() const { return m_{{setting.name}}; } \
void set{{setting.name|upper_first}}({{setting.type|to_passing_type}} {{setting.name}}); \
{% endfor %}
void setFromStrings(const String& name, const String& value);
// End of SETTINGS_GETTERS_AND_SETTERS.
#define SETTINGS_MEMBER_VARIABLES \
{% for setting in settings if setting.type != 'bool' %}
{{setting.type}} m_{{setting.name}}; \
{% endfor %}
{% for setting in settings if setting.type == 'bool' %}
bool m_{{setting.name}} : 1; \
{% endfor %}
// End of SETTINGS_MEMBER_VARIABLES.
#define SETTINGS_INITIALIZER_LIST \
{% for setting in settings if setting.initial and setting.type != 'bool' %}
, m_{{setting.name}}({{setting.initial}}) \
{% endfor %}
{% for setting in settings if setting.initial and setting.type == 'bool' %}
, m_{{setting.name}}({{setting.initial}}) \
{% endfor %}
// End of SETTINGS_INITIALIZER_LIST.
#define SETTINGS_SETTER_BODIES \
{% for setting in settings %}
void Settings::set{{setting.name|upper_first}}({{setting.type|to_passing_type}} {{setting.name}}) \
{ \
if (m_{{setting.name}} == {{setting.name}}) \
return; \
m_{{setting.name}} = {{setting.name}}; \
{% if setting.invalidate %}
invalidate(SettingsDelegate::{{setting.invalidate}}Change); \
{% endif %}
} \
{% endfor %}
void Settings::setFromStrings(const String& name, const String& value) \
{ \
{% for setting in settings %}
if (equalIgnoringCase(name, "{{setting.name}}")) { \
set{{setting.name|upper_first}}( \
{% if setting.type == 'String' %}
value \
{% elif setting.type == 'bool' %}
value.isEmpty() || equalIgnoringCase(value, "true") \
{% elif setting.type == 'int' %}
value.toInt() \
{% elif setting.type == 'float' %}
value.toFloat() \
{% elif setting.type == 'double' %}
value.toDouble() \
{% else %}
static_cast<{{setting.type}}>(value.toInt()) \
{% endif %}
); \
return; \
} \
{% endfor %}
}
// End of SETTINGS_SETTER_BODIES.
#endif // SettingsMacros_h