Select Git revision
-
Jiří Kalvoda authoredJiří Kalvoda authored
display.h 1.05 KiB
/*
* On-screen Display
*
* (c) 2013--2014 Martin Mares <mj@ucw.cz>
*/
#include <stdbool.h>
#include <X11/Xlib.h>
struct osd_state;
#define OSD_MAX_LINE_LEN 256
enum osd_line_type {
OSD_TYPE_TEXT,
OSD_TYPE_PERCENTAGE,
OSD_TYPE_SLIDER,
};
struct osd_line {
enum osd_line_type type;
char *fg_color;
char *outline_color;
int outline_width;
union { // Data dependent on type
char text[OSD_MAX_LINE_LEN]; // in UTF-8
unsigned int percent; // 0..100 for percentages and slider
} u;
// Used internally
int width;
int height;
int x_pos;
int y_pos;
int slider_unit;
int slider_space;
int slider_units;
int log;
};
struct osd_state *osd_new(Display *dpy);
void osd_free(struct osd_state *osd);
void osd_set_font(struct osd_state *osd, char *font_name, double line_spacing);
struct osd_line *osd_add_line(struct osd_state *osd, enum osd_line_type type);
void osd_show(struct osd_state *osd);
void osd_hide(struct osd_state *osd);
void osd_clear(struct osd_state *osd);
bool osd_handle_event(struct osd_state *osd, XEvent *ev);