aboutsummaryrefslogtreecommitdiff
path: root/include/swaybar/bar.h
diff options
context:
space:
mode:
authorZandr Martin <zandrmartin@gmail.com>2016-09-02 13:46:19 -0500
committerZandr Martin <zandrmartin@gmail.com>2016-09-02 13:46:19 -0500
commit79ffea328c992c5109406771a59a9f016d85970d (patch)
tree5d965e72127f227ea0a38dc5c6e4fc14e08d9498 /include/swaybar/bar.h
parentb374c35758777f98e5ddbe4b0dc43bd7c80f36d7 (diff)
parent4e6d7b125895955e3a84583c6d61f3eb2f8a4fe9 (diff)
Merge branch 'master' of git://github.com/SirCmpwn/sway into commands-refactor
Diffstat (limited to 'include/swaybar/bar.h')
-rw-r--r--include/swaybar/bar.h63
1 files changed, 63 insertions, 0 deletions
diff --git a/include/swaybar/bar.h b/include/swaybar/bar.h
new file mode 100644
index 00000000..a3c511d9
--- /dev/null
+++ b/include/swaybar/bar.h
@@ -0,0 +1,63 @@
+#ifndef _SWAYBAR_BAR_H
+#define _SWAYBAR_BAR_H
+
+#include "client/registry.h"
+#include "client/window.h"
+#include "list.h"
+
+struct bar {
+ struct config *config;
+ struct status_line *status;
+ list_t *outputs;
+
+ int ipc_event_socketfd;
+ int ipc_socketfd;
+ int status_read_fd;
+ pid_t status_command_pid;
+};
+
+struct output {
+ struct window *window;
+ struct registry *registry;
+ list_t *workspaces;
+ char *name;
+ int idx;
+};
+
+struct workspace {
+ int num;
+ char *name;
+ bool focused;
+ bool visible;
+ bool urgent;
+};
+
+/** Global bar state */
+extern struct bar swaybar;
+
+/**
+ * Setup bar.
+ */
+void bar_setup(struct bar *bar, const char *socket_path, const char *bar_id);
+
+/**
+ * Create new output struct from name.
+ */
+struct output *new_output(const char *name);
+
+/**
+ * Bar mainloop.
+ */
+void bar_run(struct bar *bar);
+
+/**
+ * free workspace list.
+ */
+void free_workspaces(list_t *workspaces);
+
+/**
+ * Teardown bar.
+ */
+void bar_teardown(struct bar *bar);
+
+#endif /* _SWAYBAR_BAR_H */