#ifndef COMET_CONFIG_H #define COMET_CONFIG_H #include #include #include "util.h" #include "block.h" typedef struct config config_t; typedef enum { CONFIG_STRING, CONFIG_INT, CONFIG_UINT, CONFIG_DOUBLE, CONFIG_BOOL, CONFIG_COLOR, CONFIG_ENUM, CONFIG_TIME, CONFIG_LIST, } config_type_t; typedef struct { const char *key; config_type_t type; void *data; size_t offset; } config_entry_t; struct config { size_t n_blocks; block_t **blocks; char *font; char *monitor; bool override_redirect; color_t background; unsigned int width; unsigned int height; }; typedef struct { const char *label; int value; } config_enum_t; void config_init(config_t *config); void config_read(config_t *config, FILE *file); bool config_resolve_children(config_t *config, block_t *block); block_t *config_resolve(config_t *config); void config_free(config_t *config); #endif