1{% from "macros.tmpl" import license %}
2{{ license() }}
3
4#ifndef SettingsMacros_h
5#define SettingsMacros_h
6
7#define SETTINGS_GETTERS_AND_SETTERS \
8    {% for setting in settings %}
9    {{setting.type|to_passing_type}} {{setting.name}}() const { return m_{{setting.name}}; } \
10    void set{{setting.name|upper_first}}({{setting.type|to_passing_type}} {{setting.name}}); \
11    {% endfor %}
12// End of SETTINGS_GETTERS_AND_SETTERS.
13
14#define SETTINGS_MEMBER_VARIABLES \
15    {% for setting in settings if setting.type != 'bool' %}
16    {{setting.type}} m_{{setting.name}}; \
17    {% endfor %}
18    {% for setting in settings if setting.type == 'bool' %}
19    bool m_{{setting.name}} : 1; \
20    {% endfor %}
21// End of SETTINGS_MEMBER_VARIABLES.
22
23#define SETTINGS_INITIALIZER_LIST \
24    {% for setting in settings if setting.initial and setting.type != 'bool' %}
25    , m_{{setting.name}}({{setting.initial}}) \
26    {% endfor %}
27    {% for setting in settings if setting.initial and setting.type == 'bool' %}
28    , m_{{setting.name}}({{setting.initial}}) \
29    {% endfor %}
30// End of SETTINGS_INITIALIZER_LIST.
31
32#define SETTINGS_SETTER_BODIES \
33{% for setting in settings %}
34void Settings::set{{setting.name|upper_first}}({{setting.type|to_passing_type}} {{setting.name}}) \
35{ \
36    if (m_{{setting.name}} == {{setting.name}}) \
37        return; \
38    m_{{setting.name}} = {{setting.name}}; \
39    {% if setting.invalidate %}
40    invalidate(SettingsDelegate::{{setting.invalidate}}Change); \
41    {% endif  %}
42} \
43{% endfor %}
44// End of SETTINGS_SETTER_BODIES.
45
46#endif // SettingsMacros_h
47