blob: 327431d6054463f27a02cf6eb7c12e46f99b2df4 [file] [log] [blame]
{% from "templates/macros.tmpl" import license, source_files_for_generated_file %}
{{ license() }}
{{source_files_for_generated_file(template_file, input_files)}}
#ifndef {{header_guard}}
#define {{header_guard}}
#define SETTINGS_GETTERS_AND_SETTERS \
{% for setting in settings %}
{{setting.type|to_passing_type}} Get{{setting.name.to_upper_camel_case()}}() const { return {{setting.name.to_class_data_member()}}; } \
void Set{{setting.name.to_upper_camel_case()}}({{setting.type|to_passing_type}} {{setting.name.to_snake_case()}}); \
{% 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}} {{setting.name.to_class_data_member()}}; \
{% endfor %}
{% for setting in settings if setting.type == 'bool' %}
bool {{setting.name.to_class_data_member()}} : 1; \
{% endfor %}
// End of SETTINGS_MEMBER_VARIABLES.
#define SETTINGS_INITIALIZER_LIST \
{% for setting in settings if setting.initial is not none and setting.type != 'bool' %}
, {{setting.name.to_class_data_member()}}({{setting.initial}}) \
{% endfor %}
{% for setting in settings if setting.initial is not none and setting.type == 'bool' %}
, {{setting.name.to_class_data_member()}}({{setting.initial|cpp_bool}}) \
{% endfor %}
// End of SETTINGS_INITIALIZER_LIST.
#define SETTINGS_SETTER_BODIES \
{% for setting in settings %}
void Settings::Set{{setting.name.to_upper_camel_case()}}({{setting.type|to_passing_type}} {{setting.name.to_snake_case()}}) { \
if ({{setting.name.to_class_data_member()}} == {{setting.name.to_snake_case()}}) \
return; \
{{setting.name.to_class_data_member()}} = {{setting.name.to_snake_case()}}; \
{% if setting.invalidate %}
{% for type in setting.invalidate %}
Invalidate(SettingsDelegate::ChangeType::k{{type}}); \
{% endfor %}
{% endif %}
} \
{% endfor %}
void Settings::SetFromStrings(const String& name, const String& value) { \
{% for setting in settings %}
if (name == "{{setting.name}}") { \
Set{{setting.name.to_upper_camel_case()}}(FromString<{{setting.type}}>()(value)); \
return; \
} \
{% endfor %}
}
// End of SETTINGS_SETTER_BODIES.
#endif // {{header_guard}}