diff options
| -rwxr-xr-x | examplebar.sh | 4 | ||||
| -rw-r--r-- | src/bardata.c | 14 | ||||
| -rw-r--r-- | src/bardata.h | 5 | ||||
| -rw-r--r-- | src/pipe.c | 7 | ||||
| -rw-r--r-- | src/tsar.c | 8 | ||||
| -rwxr-xr-x | tsarc | 1 |
6 files changed, 31 insertions, 8 deletions
diff --git a/examplebar.sh b/examplebar.sh index b11383d..5fef616 100755 --- a/examplebar.sh +++ b/examplebar.sh @@ -1,4 +1,4 @@ #! /bin/sh -./tsarc create test_comp -./tsarc layout -left test_comp -center test_comp -right test_comp test_comp +./tsarc create test_comp & +./tsarc layout -left test_comp -center test_comp -right test_comp test_comp & diff --git a/src/bardata.c b/src/bardata.c index 6369aa3..8888ac3 100644 --- a/src/bardata.c +++ b/src/bardata.c @@ -51,6 +51,18 @@ void add_component(comp_side_t side, char *name) { } } +void set_component(char argv[MAX_ARGS][MAX_ARG_LEN], int argc) { + comp_t* comp = find_comp(argv[1]); + + for (int i = 2; i < argc; i++) { + if (strcmp(argv[i], "-text") == 0) { + strcpy(comp->data, argv[i + 1]); + i++; + continue; + } + } +} + void set_layout(char argv[MAX_ARGS][MAX_ARG_LEN], int argc) { comp_side_t side = SIDE_LEFT; @@ -71,7 +83,7 @@ void set_layout(char argv[MAX_ARGS][MAX_ARG_LEN], int argc) { } } -void set_var(char argv[MAX_ARGS][MAX_ARG_LEN], int argc) { +void set_config(char argv[MAX_ARGS][MAX_ARG_LEN], int argc) { char *var = argv[1]; if (strcmp(var, "height") == 0) { int new_bar_height = atoi(argv[2]); diff --git a/src/bardata.h b/src/bardata.h index a59c8b8..874f7c6 100644 --- a/src/bardata.h +++ b/src/bardata.h @@ -19,9 +19,12 @@ typedef struct { extern int fontsize; extern color_t default_fg, default_bg; extern int bar_height; +extern comp_t *comps_left[16], *comps_right[16], *comps_center[16]; +extern size_t left_size, right_size, center_size; void new_component(char *name); +void set_component(char argv[MAX_ARGS][MAX_ARG_LEN], int argc); void set_layout(char argv[MAX_ARGS][MAX_ARG_LEN], int argc); -void set_var(char argv[MAX_ARGS][MAX_ARG_LEN], int argc); +void set_config(char argv[MAX_ARGS][MAX_ARG_LEN], int argc); #endif @@ -71,10 +71,13 @@ void make_change(char argv[MAX_ARGS][MAX_ARG_LEN], int argc) { new_component(argv[1]); return; } + if (strcmp(cmd, "set") == 0) { + set_component(argv, argc); + } if (strcmp(cmd, "layout") == 0) { set_layout(argv, argc); } - if (strcmp(cmd, "set") == 0) { - set_var(argv, argc); + if (strcmp(cmd, "config") == 0) { + set_config(argv, argc); } } @@ -126,7 +126,13 @@ int main(void) { XResizeWindow(display, win, width, bar_height); - draw_text("Hello, world!", 0, 0); + + int x = 0; + for (int i = 0; i < left_size; i++) { + comp_t* comp = comps_left[i]; + draw_text(comp->data, x, 0); + x += font->max_advance_width * strlen(comp->data); + } XFlush(display); await_change(); @@ -1,3 +1,2 @@ #! /bin/sh printf "%s\201" "$@" > /tmp/tsarc.pipe - |
