diff options
Diffstat (limited to 'sway/commands/bar/tray_padding.c')
-rw-r--r-- | sway/commands/bar/tray_padding.c | 37 |
1 files changed, 35 insertions, 2 deletions
diff --git a/sway/commands/bar/tray_padding.c b/sway/commands/bar/tray_padding.c index 91c56f19..eb795b00 100644 --- a/sway/commands/bar/tray_padding.c +++ b/sway/commands/bar/tray_padding.c | |||
@@ -1,9 +1,42 @@ | |||
1 | #include <stdlib.h> | 1 | #include <stdlib.h> |
2 | #include <strings.h> | 2 | #include <strings.h> |
3 | #include "config.h" | ||
3 | #include "sway/commands.h" | 4 | #include "sway/commands.h" |
5 | #include "sway/config.h" | ||
4 | #include "log.h" | 6 | #include "log.h" |
5 | 7 | ||
6 | struct cmd_results *bar_cmd_tray_padding(int argc, char **argv) { | 8 | struct cmd_results *bar_cmd_tray_padding(int argc, char **argv) { |
7 | // TODO TRAY | 9 | #if HAVE_TRAY |
8 | return cmd_results_new(CMD_INVALID, "tray_padding", "TODO TRAY"); | 10 | struct cmd_results *error = NULL; |
11 | if ((error = checkarg(argc, "tray_padding", EXPECTED_AT_LEAST, 1))) { | ||
12 | return error; | ||
13 | } | ||
14 | if ((error = checkarg(argc, "tray_padding", EXPECTED_AT_MOST, 2))) { | ||
15 | return error; | ||
16 | } | ||
17 | |||
18 | if (!config->current_bar) { | ||
19 | return cmd_results_new(CMD_FAILURE, "tray_padding", "No bar defined."); | ||
20 | } | ||
21 | struct bar_config *bar = config->current_bar; | ||
22 | |||
23 | char *end; | ||
24 | int padding = strtol(argv[0], &end, 10); | ||
25 | if (padding < 0 || (*end != '\0' && strcasecmp(end, "px") != 0)) { | ||
26 | return cmd_results_new(CMD_INVALID, "tray_padding", | ||
27 | "[Bar %s] Invalid tray padding value: %s", bar->id, argv[0]); | ||
28 | } | ||
29 | |||
30 | if (argc == 2 && strcasecmp(argv[1], "px") != 0) { | ||
31 | return cmd_results_new(CMD_INVALID, "tray_padding", | ||
32 | "Expected 'tray_padding <px> [px]'"); | ||
33 | } | ||
34 | |||
35 | wlr_log(WLR_DEBUG, "[Bar %s] Setting tray padding to %d", bar->id, padding); | ||
36 | config->current_bar->tray_padding = padding; | ||
37 | return cmd_results_new(CMD_SUCCESS, NULL, NULL); | ||
38 | #else | ||
39 | return cmd_results_new(CMD_INVALID, "tray_padding", | ||
40 | "Sway has been compiled without tray support"); | ||
41 | #endif | ||
9 | } | 42 | } |