diff options
Diffstat (limited to 'chromium/third_party/blink/renderer/build/scripts/templates/settings_macros.h.tmpl')
-rw-r--r-- | chromium/third_party/blink/renderer/build/scripts/templates/settings_macros.h.tmpl | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/chromium/third_party/blink/renderer/build/scripts/templates/settings_macros.h.tmpl b/chromium/third_party/blink/renderer/build/scripts/templates/settings_macros.h.tmpl new file mode 100644 index 00000000000..efbb2fa3127 --- /dev/null +++ b/chromium/third_party/blink/renderer/build/scripts/templates/settings_macros.h.tmpl @@ -0,0 +1,70 @@ +{% from "templates/macros.tmpl" import license, source_files_for_generated_file %} +{{ license() }} + +{{source_files_for_generated_file(template_file, input_files)}} + +#ifndef SettingsMacros_h +#define SettingsMacros_h + +#define SETTINGS_GETTERS_AND_SETTERS \ + {% for setting in settings %} + {{setting.type|to_passing_type}} Get{{setting.name|upper_first}}() const { return {{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}} {{setting.name}}_; \ + {% endfor %} + {% for setting in settings if setting.type == 'bool' %} + bool {{setting.name}}_ : 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}}_({{setting.initial}}) \ + {% endfor %} + {% for setting in settings if setting.initial is not none and setting.type == 'bool' %} + , {{setting.name}}_({{setting.initial|cpp_bool}}) \ + {% 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 ({{setting.name}}_ == {{setting.name}}) \ + return; \ + {{setting.name}}_ = {{setting.name}}; \ + {% if setting.invalidate %} + Invalidate(SettingsDelegate::k{{setting.invalidate}}Change); \ + {% endif %} +} \ +{% endfor %} +void Settings::SetFromStrings(const String& name, const String& value) { \ + {% for setting in settings %} + if (name == "{{setting.name}}") { \ + Set{{setting.name|upper_first}}( \ + {% if setting.type == 'String' %} + value \ + {% elif setting.type == 'bool' %} + value.IsEmpty() || 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 |