aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorBrian Ashworth <bosrsf04@gmail.com>2018-07-25 21:57:19 -0400
committerBrian Ashworth <bosrsf04@gmail.com>2018-08-01 22:47:54 -0400
commit88bc4b528ef3e1af3598b513dd5c1572dd09ec23 (patch)
tree535543a1e5bc6d59c96af249f3d3c9953a68a2aa /include
parentabf33468c12df258b8135089d99e7bd4f10e4f28 (diff)
downloadsway-88bc4b528ef3e1af3598b513dd5c1572dd09ec23.tar.xz
Implements swaynagbar
Diffstat (limited to 'include')
-rw-r--r--include/swaynagbar/nagbar.h88
-rw-r--r--include/swaynagbar/render.h6
2 files changed, 94 insertions, 0 deletions
diff --git a/include/swaynagbar/nagbar.h b/include/swaynagbar/nagbar.h
new file mode 100644
index 00000000..07a0d51e
--- /dev/null
+++ b/include/swaynagbar/nagbar.h
@@ -0,0 +1,88 @@
+#ifndef _SWAY_NAGBAR_NAGBAR_H
+#define _SWAY_NAGBAR_NAGNAR_H
+#include <stdint.h>
+#include "list.h"
+#include "pool-buffer.h"
+#include "xdg-output-unstable-v1-client-protocol.h"
+
+#define NAGBAR_BAR_BORDER_THICKNESS 2
+#define NAGBAR_MESSAGE_PADDING 8
+#define NAGBAR_BUTTON_BORDER_THICKNESS 3
+#define NAGBAR_BUTTON_GAP 20
+#define NAGBAR_BUTTON_GAP_CLOSE 15
+#define NAGBAR_BUTTON_MARGIN_RIGHT 2
+#define NAGBAR_BUTTON_PADDING 3
+
+enum sway_nagbar_type {
+ NAGBAR_ERROR,
+ NAGBAR_WARNING,
+};
+
+struct sway_nagbar_colors {
+ uint32_t button_background;
+ uint32_t background;
+ uint32_t text;
+ uint32_t border;
+ uint32_t border_bottom;
+};
+
+struct sway_nagbar_pointer {
+ struct wl_pointer *pointer;
+ struct wl_cursor_theme *cursor_theme;
+ struct wl_cursor_image *cursor_image;
+ struct wl_surface *cursor_surface;
+ int x;
+ int y;
+};
+
+struct sway_nagbar_output {
+ char *name;
+ struct wl_output *wl_output;
+ uint32_t wl_name;
+};
+
+struct sway_nagbar_button {
+ char *text;
+ char *action;
+ int x;
+ int y;
+ int width;
+ int height;
+};
+
+struct sway_nagbar {
+ bool run_display;
+ int querying_outputs;
+
+ struct wl_display *display;
+ struct wl_compositor *compositor;
+ struct wl_seat *seat;
+ struct wl_shm *shm;
+ struct sway_nagbar_pointer pointer;
+ struct zxdg_output_manager_v1 *xdg_output_manager;
+ struct sway_nagbar_output output;
+ struct zwlr_layer_shell_v1 *layer_shell;
+ struct zwlr_layer_surface_v1 *layer_surface;
+ struct wl_surface *surface;
+
+ uint32_t width;
+ uint32_t height;
+ int32_t scale;
+ struct pool_buffer buffers[2];
+ struct pool_buffer *current_buffer;
+
+ enum sway_nagbar_type type;
+ struct sway_nagbar_colors colors;
+ uint32_t anchors;
+ char *message;
+ char *font;
+ list_t *buttons;
+};
+
+void nagbar_setup(struct sway_nagbar *nagbar);
+
+void nagbar_run(struct sway_nagbar *nagbar);
+
+void nagbar_destroy(struct sway_nagbar *nagbar);
+
+#endif
diff --git a/include/swaynagbar/render.h b/include/swaynagbar/render.h
new file mode 100644
index 00000000..d9429f7f
--- /dev/null
+++ b/include/swaynagbar/render.h
@@ -0,0 +1,6 @@
+#ifndef _SWAY_NAGBAR_RENDER_H
+#define _SWAY_NAGBAR_RENDER_H
+
+void render_frame(struct sway_nagbar *nagbar);
+
+#endif