#pragma once #include #include #include #include #include #include #include "bar/text.h" #include "bar/types.h" #include "base/color.h" #include "common/listeners.h" #include "interface/tray.h" typedef struct bar_output_t { cairo_t *cr; zdwm_window_id_t window_id; zdwm_output_id_t output_id; int32_t width; int32_t height; bar_side_t left; bar_side_t right; zdwm_bar_item_t center; } bar_output_t; typedef struct bar_palette_t { color_t bg; } bar_palette_t; typedef struct bar_t { bar_output_t *bars; size_t count; bool visible; int timerfd; zdwm_bar_config_t config; bar_palette_t palette; text_context_t *ctx; tray_t tray; } bar_t; void bar_init(bar_t *bar, listeners_t *listeners); void bar_cleanup(bar_t *bar); void bar_update(bar_t *bar); bool bar_draw(bar_t *bar); typedef struct bar_click_info_t { zdwm_window_id_t window; int32_t x; zdwm_modifier_mask_t modifiers; zdwm_button_t button; } bar_click_info_t; bool bar_click(bar_t *bar, bar_click_info_t info, zdwm_action_t *action);