diff options
author | Vito Caputo <vcaputo@pengaru.com> | 2022-03-28 13:57:45 -0700 |
---|---|---|
committer | Vito Caputo <vcaputo@pengaru.com> | 2022-03-28 13:57:45 -0700 |
commit | 9d4abba0d4f80b691cffea53322f0a4912653d25 (patch) | |
tree | de7e15b5814df12c08b761cd8c0900079cb7f619 | |
parent | e867baeae24107f211bc13908f022fd2117214d1 (diff) |
til_settings: provide a user_data pointer w/til_setting_t
Particularly in implementing a stateful/"retained" GUI it can be
desirable to embed something like a widget pointer in a
til_setting_t once described and shown to the user.
Management of this pointer is largely nonexistant from the
libtil perspective. It's simply initialized to NULL when a new
setting is added, and never accessed again. 100% the caller's
responsibility.
This works fine since libtil/til_settings_t only accumulates
til_setting_t entries and never removes them except when
discarding an entire til_settings_t wholesale.
-rw-r--r-- | src/til_settings.c | 1 | ||||
-rw-r--r-- | src/til_settings.h | 1 |
2 files changed, 2 insertions, 0 deletions
diff --git a/src/til_settings.c b/src/til_settings.c index 0c2eff1..a1466d9 100644 --- a/src/til_settings.c +++ b/src/til_settings.c @@ -53,6 +53,7 @@ static int add_value(til_settings_t *settings, const char *key, const char *valu settings->settings[settings->num - 1]->key = key; settings->settings[settings->num - 1]->value = value; settings->settings[settings->num - 1]->desc = desc; + settings->settings[settings->num - 1]->user_data = NULL; return 0; } diff --git a/src/til_settings.h b/src/til_settings.h index 2896405..cbff2a7 100644 --- a/src/til_settings.h +++ b/src/til_settings.h @@ -29,6 +29,7 @@ struct til_setting_t { const char *key; const char *value; const til_setting_desc_t *desc; + void *user_data; }; til_settings_t * til_settings_new(const char *settings); |