summaryrefslogtreecommitdiffstats
path: root/include/swaybar/status_line.h
diff options
context:
space:
mode:
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