diff options
author | Brian Ashworth <bosrsf04@gmail.com> | 2018-05-30 13:20:02 -0400 |
---|---|---|
committer | Brian Ashworth <bosrsf04@gmail.com> | 2018-06-02 08:07:44 -0400 |
commit | 7c810dc344c28d1876c5ee158cb0806289d0f813 (patch) | |
tree | dbe756bceca42ea6f9a6cf5e5771037417bb64c3 /sway/commands/bar | |
parent | Merge pull request #2080 from frsfnrrg/keyboard-remodeling (diff) | |
download | sway-7c810dc344c28d1876c5ee158cb0806289d0f813.tar.gz sway-7c810dc344c28d1876c5ee158cb0806289d0f813.tar.zst sway-7c810dc344c28d1876c5ee158cb0806289d0f813.zip |
Make command block implementation generic
Diffstat (limited to 'sway/commands/bar')
-rw-r--r-- | sway/commands/bar/colors.c | 26 | ||||
-rw-r--r-- | sway/commands/bar/id.c | 3 |
2 files changed, 20 insertions, 9 deletions
diff --git a/sway/commands/bar/colors.c b/sway/commands/bar/colors.c index 17ba9b7c..6d3c09b8 100644 --- a/sway/commands/bar/colors.c +++ b/sway/commands/bar/colors.c | |||
@@ -1,6 +1,21 @@ | |||
1 | #include <string.h> | 1 | #include <string.h> |
2 | #include "sway/commands.h" | 2 | #include "sway/commands.h" |
3 | 3 | ||
4 | // Must be in alphabetical order for bsearch | ||
5 | static struct cmd_handler bar_colors_handlers[] = { | ||
6 | { "active_workspace", bar_colors_cmd_active_workspace }, | ||
7 | { "background", bar_colors_cmd_background }, | ||
8 | { "binding_mode", bar_colors_cmd_binding_mode }, | ||
9 | { "focused_background", bar_colors_cmd_focused_background }, | ||
10 | { "focused_separator", bar_colors_cmd_focused_separator }, | ||
11 | { "focused_statusline", bar_colors_cmd_focused_statusline }, | ||
12 | { "focused_workspace", bar_colors_cmd_focused_workspace }, | ||
13 | { "inactive_workspace", bar_colors_cmd_inactive_workspace }, | ||
14 | { "separator", bar_colors_cmd_separator }, | ||
15 | { "statusline", bar_colors_cmd_statusline }, | ||
16 | { "urgent_workspace", bar_colors_cmd_urgent_workspace }, | ||
17 | }; | ||
18 | |||
4 | static struct cmd_results *parse_single_color(char **color, | 19 | static struct cmd_results *parse_single_color(char **color, |
5 | const char *cmd_name, int argc, char **argv) { | 20 | const char *cmd_name, int argc, char **argv) { |
6 | struct cmd_results *error = NULL; | 21 | struct cmd_results *error = NULL; |
@@ -37,15 +52,8 @@ static struct cmd_results *parse_three_colors(char ***colors, | |||
37 | } | 52 | } |
38 | 53 | ||
39 | struct cmd_results *bar_cmd_colors(int argc, char **argv) { | 54 | struct cmd_results *bar_cmd_colors(int argc, char **argv) { |
40 | struct cmd_results *error = NULL; | 55 | return subcommand(argv, argc, bar_colors_handlers, |
41 | if ((error = checkarg(argc, "colors", EXPECTED_EQUAL_TO, 1))) { | 56 | sizeof(bar_colors_handlers)); |
42 | return error; | ||
43 | } | ||
44 | if (strcmp("{", argv[0]) != 0) { | ||
45 | return cmd_results_new(CMD_INVALID, "colors", | ||
46 | "Expected '{' at the start of colors config definition."); | ||
47 | } | ||
48 | return cmd_results_new(CMD_BLOCK_BAR_COLORS, NULL, NULL); | ||
49 | } | 57 | } |
50 | 58 | ||
51 | struct cmd_results *bar_colors_cmd_active_workspace(int argc, char **argv) { | 59 | struct cmd_results *bar_colors_cmd_active_workspace(int argc, char **argv) { |
diff --git a/sway/commands/bar/id.c b/sway/commands/bar/id.c index c1e56f03..6ce86fef 100644 --- a/sway/commands/bar/id.c +++ b/sway/commands/bar/id.c | |||
@@ -11,6 +11,9 @@ struct cmd_results *bar_cmd_id(int argc, char **argv) { | |||
11 | 11 | ||
12 | const char *name = argv[0]; | 12 | const char *name = argv[0]; |
13 | const char *oldname = config->current_bar->id; | 13 | const char *oldname = config->current_bar->id; |
14 | if (strcmp(name, oldname) == 0) { | ||
15 | return cmd_results_new(CMD_SUCCESS, NULL, NULL); // NOP | ||
16 | } | ||
14 | // check if id is used by a previously defined bar | 17 | // check if id is used by a previously defined bar |
15 | for (int i = 0; i < config->bars->length; ++i) { | 18 | for (int i = 0; i < config->bars->length; ++i) { |
16 | struct bar_config *find = config->bars->items[i]; | 19 | struct bar_config *find = config->bars->items[i]; |