| {% 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}} |