Skip to content
Snippets Groups Projects
Select Git revision
  • 864fc3a22e3a1b57079e100f74159d41be9a4e12
  • jk default protected
2 results

display.h

Blame
  • 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);