diff options
| author | Federico Angelilli <code@fedang.net> | 2024-07-13 00:12:09 +0200 |
|---|---|---|
| committer | Federico Angelilli <code@fedang.net> | 2024-07-13 00:12:09 +0200 |
| commit | f10d68879e358a2642573d408bbc47f1c759d387 (patch) | |
| tree | 629d317ccabb9f92adc0cab2d9f2e856fdc53826 /src/config.c | |
| parent | a60a1a755598240f5a7705070179bfa707ad4c56 (diff) | |
Separate block infos
Diffstat (limited to 'src/config.c')
| -rw-r--r-- | src/config.c | 40 |
1 files changed, 13 insertions, 27 deletions
diff --git a/src/config.c b/src/config.c index 9a2bc42..ff587da 100644 --- a/src/config.c +++ b/src/config.c @@ -9,6 +9,7 @@ #include "config.h" #include "util.h" #include "block.h" +#include "blocks/info.h" #define ANY_INI_IMPLEMENT #include "any_ini.h" @@ -24,7 +25,7 @@ static const config_entry_t bar_entries[] = { { "height", CONFIG_UINT, offsetof(config_t, height) }, { "font", CONFIG_STRING, offsetof(config_t, font) }, { "monitor", CONFIG_STRING, offsetof(config_t, monitor) }, - { "override_redirect", CONFIG_BOOL, offsetof(config_t, override_redirect) }, + { "override-redirect", CONFIG_BOOL, offsetof(config_t, override_redirect) }, { "background", CONFIG_COLOR, offsetof(config_t, background) }, { 0 }, }; @@ -41,28 +42,6 @@ static const config_entry_t block_entries[] = { { 0 }, }; -static const config_entry_t block_text_entries[] = { - { "text", CONFIG_STRING, offsetof(block_t, text.text) }, - { "text-color", CONFIG_COLOR, offsetof(block_t, text.text_color) }, - { "text-size", CONFIG_INT, offsetof(block_t, text.text_size) }, -}; - -static const config_block_t block_infos[] = { - { - .type_name = "text", - .type_size = 0, - .base = { 0 }, - .entries = block_text_entries, - .apply = NULL, - }, - //{ - // "group", - // 0, - // block_group_entries, - //}, - { 0 } -}; - static bool config_read_string(const char *value, char **result) { if (value == NULL) @@ -325,15 +304,22 @@ void config_read(config_t *config, FILE *file) goto skip_pair; } + + // FIXME: Move this somewhere else + const config_block_t block_infos[] = { + block_text_info, + block_group_info, + { 0 } + }; + for (int i = 0; block_infos[i].type_name != NULL; i++) { if (strcmp(block_infos[i].type_name, value)) continue; info = &block_infos[i]; memcpy(block, &info->base, sizeof(block_t)); - result = !strcmp(value, "text") - ? block - : malloc(info->type_size); - + block->info = result = !strcmp(value, "text") + ? block + : malloc(info->type_size); goto skip_pair; } |
