aboutsummaryrefslogtreecommitdiffstats
path: root/include/swaybar/status_line.h
diff options
context:
space:
mode:
authorLibravatar Drew DeVault <sir@cmpwn.com>2018-03-29 15:16:12 -0400
committerLibravatar Drew DeVault <sir@cmpwn.com>2018-03-29 22:11:08 -0400
commit0d0ab7c5ce148bce841fa0682d04bc7b6c21b902 (patch)
treebc3dcefa0e306ac00d81a0cabbd6a0404d7baff6 /include/swaybar/status_line.h
parentIterate over workspaces backwards (diff)
downloadsway-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/status_line.h')
-rw-r--r--include/swaybar/status_line.h65
1 files changed, 17 insertions, 48 deletions
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
10typedef enum {UNDEF, TEXT, I3BAR} command_protocol; 8enum status_protocol {
9 PROTOCOL_UNDEF,
10 PROTOCOL_TEXT,
11 PROTOCOL_I3BAR,
12};
11 13
12struct status_line { 14struct 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
19struct 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/** 26struct status_line *status_line_init(char *cmd);
42 * Initialize status line struct. 27void status_line_free(struct status_line *status);
43 */ 28bool handle_status_readable(struct status_line *status);
44struct status_line *init_status_line();
45
46/**
47 * handle status line activity.
48 */
49bool handle_status_line(struct bar *bar);
50
51/**
52 * Handle mouse clicks.
53 */
54bool status_line_mouse_event(struct bar *bar, int x, int y, uint32_t button);
55
56/**
57 * Free status line struct.
58 */
59void free_status_line(struct status_line *line);
60 29
61#endif /* _SWAYBAR_STATUS_LINE_H */ 30#endif