diff options
| author | iamcheeseman <[hidden email]> | 2026-03-01 09:57:38 -0500 |
|---|---|---|
| committer | iamcheeseman <[hidden email]> | 2026-03-01 09:57:38 -0500 |
| commit | 888cda3a0117aa5391c0641878c6748a0afdf190 (patch) | |
| tree | d12599aad0c054f8414a3dac60af59d8b586d525 /src/bardata.c | |
| parent | c5a9d10e55b15f128c7215d64bbd9e8161345e16 (diff) | |
| parent | 915b623c32d3edb881d248153706338e7ae9054c (diff) | |
Merge branch 'master' of ssh://codeberg.org/iamcheeseman/tsarbar
Diffstat (limited to 'src/bardata.c')
| -rw-r--r-- | src/bardata.c | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/src/bardata.c b/src/bardata.c new file mode 100644 index 0000000..a35f3b5 --- /dev/null +++ b/src/bardata.c @@ -0,0 +1,79 @@ +#include <stdio.h> +#include <string.h> + +#include "bardata.h" +#include "pipe.h" + +typedef enum { + SIDE_LEFT, + SIDE_CENTER, + SIDE_RIGHT, +} comp_side_t; + +typedef struct { +} color_t; + +typedef struct { + char name[16]; + char data[64]; + color_t fg, bg; +} comp_t; + +// Global state, oh naur D: +comp_t comps[32]; +size_t comps_size = 0; +comp_t *comps_left[16], *comps_right[16], *comps_center[16]; +size_t left_size = 0, right_size = 0, center_size = 0; + +void new_component(char *name) { + strcpy(comps[comps_size].name, name); + comps_size++; +} + +comp_t *find_comp(char *name) { + for (size_t i = 0; i < comps_size; i++) { + if (strcmp(comps[i].name, name) == 0) { + return &comps[i]; + } + } + return NULL; +} + +void add_component(comp_side_t side, char *name) { + comp_t *comp = find_comp(name); + if (side == SIDE_LEFT) { + comps_left[left_size] = comp; + left_size++; + return; + } + if (side == SIDE_RIGHT) { + comps_right[right_size] = comp; + right_size++; + return; + } + if (side == SIDE_CENTER) { + comps_center[center_size] = comp; + center_size++; + return; + } +} + +void set_layout(char argv[MAX_ARGS][MAX_ARG_LEN], int argc) { + comp_side_t side = SIDE_LEFT; + + for (int i = 1; i < argc; i++) { + if (strcmp(argv[i], "-left") == 0) { + side = SIDE_LEFT; + continue; + } + if (strcmp(argv[i], "-center") == 0) { + side = SIDE_CENTER; + continue; + } + if (strcmp(argv[i], "-right") == 0) { + side = SIDE_RIGHT; + continue; + } + add_component(side, argv[i]); + } +} |
