aboutsummaryrefslogtreecommitdiff
path: root/include/swaybar
diff options
context:
space:
mode:
authorIan Fan <ianfan0@gmail.com>2018-10-28 10:25:47 +0000
committerIan Fan <ianfan0@gmail.com>2018-12-31 20:40:18 +0000
commit5f65f339896fadf0011b75d78c869594876d35d9 (patch)
treebbb234ad123657f1a8ed1f311cf9183b67e7e961 /include/swaybar
parent598e950296ce9fef24b54b4c01302ee68473fb8a (diff)
swaybar: add tray interface
Diffstat (limited to 'include/swaybar')
-rw-r--r--include/swaybar/bar.h8
-rw-r--r--include/swaybar/tray/tray.h28
2 files changed, 36 insertions, 0 deletions
diff --git a/include/swaybar/bar.h b/include/swaybar/bar.h
index 57c5114e..ef27012d 100644
--- a/include/swaybar/bar.h
+++ b/include/swaybar/bar.h
@@ -1,6 +1,7 @@
#ifndef _SWAYBAR_BAR_H
#define _SWAYBAR_BAR_H
#include <wayland-client.h>
+#include "config.h"
#include "input.h"
#include "pool-buffer.h"
#include "wlr-layer-shell-unstable-v1-client-protocol.h"
@@ -8,6 +9,9 @@
struct swaybar_config;
struct swaybar_output;
+#if HAVE_TRAY
+struct swaybar_tray;
+#endif
struct swaybar_workspace;
struct loop;
@@ -38,6 +42,10 @@ struct swaybar {
int ipc_socketfd;
struct wl_list outputs; // swaybar_output::link
+
+#if HAVE_TRAY
+ struct swaybar_tray *tray;
+#endif
};
struct swaybar_output {
diff --git a/include/swaybar/tray/tray.h b/include/swaybar/tray/tray.h
new file mode 100644
index 00000000..217e2d45
--- /dev/null
+++ b/include/swaybar/tray/tray.h
@@ -0,0 +1,28 @@
+#ifndef _SWAYBAR_TRAY_TRAY_H
+#define _SWAYBAR_TRAY_TRAY_H
+
+#include "config.h"
+#ifdef HAVE_SYSTEMD
+#include <systemd/sd-bus.h>
+#elif HAVE_ELOGIND
+#include <elogind/sd-bus.h>
+#endif
+#include <cairo.h>
+#include <stdint.h>
+
+struct swaybar;
+struct swaybar_output;
+
+struct swaybar_tray {
+ struct swaybar *bar;
+
+ int fd;
+ sd_bus *bus;
+};
+
+struct swaybar_tray *create_tray(struct swaybar *bar);
+void destroy_tray(struct swaybar_tray *tray);
+void tray_in(int fd, short mask, void *data);
+uint32_t render_tray(cairo_t *cairo, struct swaybar_output *output, double *x);
+
+#endif