aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/bardata.c14
-rw-r--r--src/bardata.h5
-rw-r--r--src/pipe.c7
-rw-r--r--src/tsar.c8
4 files changed, 29 insertions, 5 deletions
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
diff --git a/src/pipe.c b/src/pipe.c
index d688179..fec810d 100644
--- a/src/pipe.c
+++ b/src/pipe.c
@@ -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);
}
}
diff --git a/src/tsar.c b/src/tsar.c
index a4a0025..1570b92 100644
--- a/src/tsar.c
+++ b/src/tsar.c
@@ -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();