hikari/include/hikari/indicator.h

84 lines
2.0 KiB
C

#if !defined(HIKARI_INDICATOR_H)
#define HIKARI_INDICATOR_H
#include <hikari/font.h>
#include <hikari/indicator_bar.h>
#include <hikari/sheet.h>
struct hikari_render_data;
struct hikari_view;
struct hikari_output;
struct hikari_indicator {
struct hikari_indicator_bar title;
struct hikari_indicator_bar sheet;
struct hikari_indicator_bar group;
struct hikari_indicator_bar mark;
int bar_height;
};
void
hikari_indicator_init(
struct hikari_indicator *indicator, float color[static 4]);
void
hikari_indicator_fini(struct hikari_indicator *indicator);
void
hikari_indicator_render(
struct hikari_indicator *indicator, struct hikari_render_data *render_data);
void
hikari_indicator_update(struct hikari_indicator *indicator,
struct hikari_view *view,
float background[static 4]);
void
hikari_indicator_update_sheet(struct hikari_indicator *indicator,
struct wlr_box *view_geometry,
struct hikari_output *output,
struct hikari_sheet *sheet,
float background[static 4],
bool iconified,
bool floating);
void
hikari_indicator_damage(
struct hikari_indicator *indicator, struct hikari_view *view);
static inline void
hikari_indicator_update_title(struct hikari_indicator *indicator,
struct wlr_box *view_geometry,
struct hikari_output *output,
const char *text,
float background[static 4])
{
hikari_indicator_bar_update(
&indicator->title, view_geometry, output, text, background);
}
static inline void
hikari_indicator_update_group(struct hikari_indicator *indicator,
struct wlr_box *view_geometry,
struct hikari_output *output,
const char *text,
float background[static 4])
{
hikari_indicator_bar_update(
&indicator->group, view_geometry, output, text, background);
}
static inline void
hikari_indicator_update_mark(struct hikari_indicator *indicator,
struct wlr_box *view_geometry,
struct hikari_output *output,
const char *text,
float background[static 4])
{
hikari_indicator_bar_update(
&indicator->mark, view_geometry, output, text, background);
}
#endif