diff options
author | Drew DeVault <sir@cmpwn.com> | 2018-03-29 15:16:12 -0400 |
---|---|---|
committer | Drew DeVault <sir@cmpwn.com> | 2018-03-29 22:11:08 -0400 |
commit | 0d0ab7c5ce148bce841fa0682d04bc7b6c21b902 (patch) | |
tree | bc3dcefa0e306ac00d81a0cabbd6a0404d7baff6 /include/swaybar | |
parent | Iterate over workspaces backwards (diff) | |
download | sway-0d0ab7c5ce148bce841fa0682d04bc7b6c21b902.tar.gz sway-0d0ab7c5ce148bce841fa0682d04bc7b6c21b902.tar.zst sway-0d0ab7c5ce148bce841fa0682d04bc7b6c21b902.zip |
Implement status line
Does not yet support i3bar json protocol
Diffstat (limited to 'include/swaybar')
-rw-r--r-- | include/swaybar/bar.h | 1 | ||||
-rw-r--r-- | include/swaybar/status_line.h | 65 |
2 files changed, 18 insertions, 48 deletions
diff --git a/include/swaybar/bar.h b/include/swaybar/bar.h index c89aa61c..1bf2ea2d 100644 --- a/include/swaybar/bar.h +++ b/include/swaybar/bar.h | |||
@@ -16,6 +16,7 @@ struct swaybar { | |||
16 | 16 | ||
17 | struct swaybar_config *config; | 17 | struct swaybar_config *config; |
18 | struct swaybar_output *focused_output; | 18 | struct swaybar_output *focused_output; |
19 | struct status_line *status; | ||
19 | 20 | ||
20 | int ipc_event_socketfd; | 21 | int ipc_event_socketfd; |
21 | int ipc_socketfd; | 22 | int ipc_socketfd; |
diff --git a/include/swaybar/status_line.h b/include/swaybar/status_line.h index 0664ddee..6c595df0 100644 --- a/include/swaybar/status_line.h +++ b/include/swaybar/status_line.h | |||
@@ -1,61 +1,30 @@ | |||
1 | #ifndef _SWAYBAR_STATUS_LINE_H | 1 | #ifndef _SWAYBAR_STATUS_LINE_H |
2 | #define _SWAYBAR_STATUS_LINE_H | 2 | #define _SWAYBAR_STATUS_LINE_H |
3 | |||
4 | #include <stdint.h> | 3 | #include <stdint.h> |
4 | #include <stdio.h> | ||
5 | #include <stdbool.h> | 5 | #include <stdbool.h> |
6 | |||
7 | #include "list.h" | ||
8 | #include "bar.h" | 6 | #include "bar.h" |
9 | 7 | ||
10 | typedef enum {UNDEF, TEXT, I3BAR} command_protocol; | 8 | enum status_protocol { |
9 | PROTOCOL_UNDEF, | ||
10 | PROTOCOL_TEXT, | ||
11 | PROTOCOL_I3BAR, | ||
12 | }; | ||
11 | 13 | ||
12 | struct status_line { | 14 | struct status_line { |
13 | list_t *block_line; | 15 | pid_t pid; |
14 | const char *text_line; | 16 | int read_fd, write_fd; |
15 | command_protocol protocol; | 17 | FILE *read, *write; |
16 | bool click_events; | ||
17 | }; | ||
18 | 18 | ||
19 | struct status_block { | 19 | enum status_protocol protocol; |
20 | char *full_text, *short_text, *align; | 20 | const char *text; |
21 | bool urgent; | ||
22 | uint32_t color; | ||
23 | int min_width; | ||
24 | char *name, *instance; | ||
25 | bool separator; | ||
26 | int separator_block_width; | ||
27 | bool markup; | ||
28 | // Airblader features | ||
29 | uint32_t background; | ||
30 | uint32_t border; | ||
31 | int border_top; | ||
32 | int border_bottom; | ||
33 | int border_left; | ||
34 | int border_right; | ||
35 | 21 | ||
36 | // Set during rendering | 22 | char *buffer; |
37 | int x; | 23 | size_t buffer_size; |
38 | int width; | ||
39 | }; | 24 | }; |
40 | 25 | ||
41 | /** | 26 | struct status_line *status_line_init(char *cmd); |
42 | * Initialize status line struct. | 27 | void status_line_free(struct status_line *status); |
43 | */ | 28 | bool handle_status_readable(struct status_line *status); |
44 | struct status_line *init_status_line(); | ||
45 | |||
46 | /** | ||
47 | * handle status line activity. | ||
48 | */ | ||
49 | bool handle_status_line(struct bar *bar); | ||
50 | |||
51 | /** | ||
52 | * Handle mouse clicks. | ||
53 | */ | ||
54 | bool status_line_mouse_event(struct bar *bar, int x, int y, uint32_t button); | ||
55 | |||
56 | /** | ||
57 | * Free status line struct. | ||
58 | */ | ||
59 | void free_status_line(struct status_line *line); | ||
60 | 29 | ||
61 | #endif /* _SWAYBAR_STATUS_LINE_H */ | 30 | #endif |