From 74016d7d3349d8600933a1e88b62caab12fc1009 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Mon, 2 Aug 2021 19:29:52 +0200 Subject: [PATCH] =?UTF-8?q?bar:=20add=20bar->output=5Fname(),=20returns=20?= =?UTF-8?q?the=20name=20of=20the=20output=20we=E2=80=99re=20on?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bar/backend.h | 1 + bar/bar.c | 8 ++++++++ bar/bar.h | 2 ++ bar/wayland.c | 10 ++++++++++ bar/xcb.c | 8 ++++++++ 5 files changed, 29 insertions(+) diff --git a/bar/backend.h b/bar/backend.h index d365da6..47fae95 100644 --- a/bar/backend.h +++ b/bar/backend.h @@ -14,4 +14,5 @@ struct backend { void (*commit)(const struct bar *bar); void (*refresh)(const struct bar *bar); void (*set_cursor)(struct bar *bar, const char *cursor); + const char *(*output_name)(const struct bar *bar); }; diff --git a/bar/bar.c b/bar/bar.c index c7b1ea5..9d1b0cc 100644 --- a/bar/bar.c +++ b/bar/bar.c @@ -162,6 +162,13 @@ set_cursor(struct bar *bar, const char *cursor) b->backend.iface->set_cursor(bar, cursor); } +static const char * +output_name(const struct bar *bar) +{ + const struct private *b = bar->private; + return b->backend.iface->output_name(bar); +} + static void on_mouse(struct bar *_bar, enum mouse_event event, enum mouse_button btn, int x, int y) @@ -456,6 +463,7 @@ bar_new(const struct bar_config *config) bar->destroy = &destroy; bar->refresh = &refresh; bar->set_cursor = &set_cursor; + bar->output_name = &output_name; for (size_t i = 0; i < priv->left.count; i++) priv->left.mods[i]->bar = bar; diff --git a/bar/bar.h b/bar/bar.h index 5d154dd..45fb328 100644 --- a/bar/bar.h +++ b/bar/bar.h @@ -12,6 +12,8 @@ struct bar { void (*refresh)(const struct bar *bar); void (*set_cursor)(struct bar *bar, const char *cursor); + + const char *(*output_name)(const struct bar *bar); }; enum bar_location { BAR_TOP, BAR_BOTTOM }; diff --git a/bar/wayland.c b/bar/wayland.c index ef62025..cb10eae 100644 --- a/bar/wayland.c +++ b/bar/wayland.c @@ -1308,6 +1308,15 @@ set_cursor(struct bar *_bar, const char *cursor) update_cursor_surface(backend, seat); } +static const char * +output_name(const struct bar *_bar) +{ + const struct private *bar = _bar->private; + const struct wayland_backend *backend = bar->backend.data; + + return backend->monitor != NULL ? backend->monitor->name : NULL; +} + const struct backend wayland_backend_iface = { .setup = &setup, .cleanup = &cleanup, @@ -1315,4 +1324,5 @@ const struct backend wayland_backend_iface = { .commit = &commit, .refresh = &refresh, .set_cursor = &set_cursor, + .output_name = &output_name, }; diff --git a/bar/xcb.c b/bar/xcb.c index 9c452da..4b0e7c1 100644 --- a/bar/xcb.c +++ b/bar/xcb.c @@ -462,6 +462,13 @@ set_cursor(struct bar *_bar, const char *cursor) backend->conn, backend->win, XCB_CW_CURSOR, &backend->cursor); } +static const char * +output_name(const struct bar *_bar) +{ + /* Not implemented */ + return NULL; +} + const struct backend xcb_backend_iface = { .setup = &setup, .cleanup = &cleanup, @@ -469,4 +476,5 @@ const struct backend xcb_backend_iface = { .commit = &commit, .refresh = &refresh, .set_cursor = &set_cursor, + .output_name = &output_name, };