diff options
author | Ryan Dwyer <ryandwyer1@gmail.com> | 2018-07-11 22:16:48 +1000 |
---|---|---|
committer | Ryan Dwyer <ryandwyer1@gmail.com> | 2018-07-11 22:16:48 +1000 |
commit | f2d1cf3ceb9ca7198aba89245fafad42f16edb8e (patch) | |
tree | 693908491b4b01cd5589dc4e8adc49726c87fef1 /sway/commands/floating_minmax_size.c | |
parent | Merge pull request #2243 from RyanDwyer/use-fullscreen-saved-buffer (diff) | |
download | sway-f2d1cf3ceb9ca7198aba89245fafad42f16edb8e.tar.gz sway-f2d1cf3ceb9ca7198aba89245fafad42f16edb8e.tar.zst sway-f2d1cf3ceb9ca7198aba89245fafad42f16edb8e.zip |
Implement floating_minimum_size and floating_maximum_size
Diffstat (limited to 'sway/commands/floating_minmax_size.c')
-rw-r--r-- | sway/commands/floating_minmax_size.c | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/sway/commands/floating_minmax_size.c b/sway/commands/floating_minmax_size.c new file mode 100644 index 00000000..0af78908 --- /dev/null +++ b/sway/commands/floating_minmax_size.c | |||
@@ -0,0 +1,53 @@ | |||
1 | #include <errno.h> | ||
2 | #include <math.h> | ||
3 | #include <stdbool.h> | ||
4 | #include <stdlib.h> | ||
5 | #include <string.h> | ||
6 | #include <strings.h> | ||
7 | #include <wlr/util/log.h> | ||
8 | #include "sway/commands.h" | ||
9 | #include "log.h" | ||
10 | |||
11 | static const char* min_usage = | ||
12 | "Expected 'floating_minimum_size <width> x <height>'"; | ||
13 | |||
14 | static const char* max_usage = | ||
15 | "Expected 'floating_maximum_size <width> x <height>'"; | ||
16 | |||
17 | static struct cmd_results *handle_command(int argc, char **argv, char *cmd_name, | ||
18 | const char *usage, int *config_width, int *config_height) { | ||
19 | struct cmd_results *error; | ||
20 | if ((error = checkarg(argc, cmd_name, EXPECTED_EQUAL_TO, 3))) { | ||
21 | return error; | ||
22 | } | ||
23 | |||
24 | char *err; | ||
25 | int width = (int)strtol(argv[0], &err, 10); | ||
26 | if (*err) { | ||
27 | return cmd_results_new(CMD_INVALID, cmd_name, usage); | ||
28 | } | ||
29 | |||
30 | if (strcmp(argv[1], "x") != 0) { | ||
31 | return cmd_results_new(CMD_INVALID, cmd_name, usage); | ||
32 | } | ||
33 | |||
34 | int height = (int)strtol(argv[2], &err, 10); | ||
35 | if (*err) { | ||
36 | return cmd_results_new(CMD_INVALID, cmd_name, usage); | ||
37 | } | ||
38 | |||
39 | *config_width = width; | ||
40 | *config_height = height; | ||
41 | |||
42 | return cmd_results_new(CMD_SUCCESS, NULL, NULL); | ||
43 | } | ||
44 | |||
45 | struct cmd_results *cmd_floating_minimum_size(int argc, char **argv) { | ||
46 | return handle_command(argc, argv, "floating_minimum_size", min_usage, | ||
47 | &config->floating_minimum_width, &config->floating_minimum_height); | ||
48 | } | ||
49 | |||
50 | struct cmd_results *cmd_floating_maximum_size(int argc, char **argv) { | ||
51 | return handle_command(argc, argv, "floating_maximum_size", max_usage, | ||
52 | &config->floating_maximum_width, &config->floating_maximum_height); | ||
53 | } | ||