|
|
@@ -0,0 +1,76 @@
|
|
|
+/* See LICENSE file for copyright and license details. */
|
|
|
+
|
|
|
+/* X11 types - begin */
|
|
|
+struct _XDraw {
|
|
|
+ unsigned int w, h;
|
|
|
+ Display *dpy;
|
|
|
+ Drawable drawable;
|
|
|
+ GC gc;
|
|
|
+};
|
|
|
+typedef struct _XDraw Draw;
|
|
|
+
|
|
|
+struct _XCol {
|
|
|
+ unsigned long rgb;
|
|
|
+};
|
|
|
+typedef struct _XCol Col;
|
|
|
+
|
|
|
+struct _XFont {
|
|
|
+ int ascent;
|
|
|
+ int descent;
|
|
|
+ unsigned int h, w;
|
|
|
+ XFontSet set;
|
|
|
+ XFontStruct *xfont;
|
|
|
+};
|
|
|
+typedef struct _XFont Fnt;
|
|
|
+/* X11 types - end */
|
|
|
+
|
|
|
+typedef struct {
|
|
|
+ Draw *draw;
|
|
|
+ Col *fg;
|
|
|
+ Col *bg;
|
|
|
+ Fnt *font;
|
|
|
+ Bool fill;
|
|
|
+} DDC;
|
|
|
+
|
|
|
+typedef struct {
|
|
|
+ unsigned int w;
|
|
|
+ unsigned int h;
|
|
|
+ int x;
|
|
|
+ int y;
|
|
|
+ int xOff;
|
|
|
+ int yOff;
|
|
|
+} TextExtents;
|
|
|
+
|
|
|
+/* Drawable abstraction */
|
|
|
+Draw *draw_create(Display *dpy, Window win, unsigned int w, unsigned int h);
|
|
|
+void draw_resize(Draw *draw, unsigned int w, unsigned int h);
|
|
|
+void draw_free(Draw *draw);
|
|
|
+
|
|
|
+/* Drawing context abstraction */
|
|
|
+DDC *dc_create(Draw *draw);
|
|
|
+void dc_free(DDC *dc);
|
|
|
+
|
|
|
+/* Fnt abstraction */
|
|
|
+Fnt *font_create(const char *fontname);
|
|
|
+void font_free(Fnt *font);
|
|
|
+
|
|
|
+/* Colour abstraction */
|
|
|
+Col *col_create(const char *colname);
|
|
|
+void col_free(Col *col);
|
|
|
+
|
|
|
+/* Drawing context manipulation */
|
|
|
+void dc_setfont(DDC *dc, Fnt *font);
|
|
|
+void dc_setfg(DDC *dc, Col col);
|
|
|
+void dc_setbg(DDC *dc, Col col);
|
|
|
+void dc_setfill(DDC *dc, Bool fill);
|
|
|
+
|
|
|
+/* Drawing functions */
|
|
|
+void dc_drawrect(DDC *dc, int x, int y, unsigned int w, unsigned int h);
|
|
|
+void dc_drawtext(DDC *dc, int x, int y, const char *text);
|
|
|
+
|
|
|
+/* Map functions */
|
|
|
+void dc_map(DDC *dc, int x, int y, unsigned int w, unsigned int h);
|
|
|
+
|
|
|
+/* Text functions */
|
|
|
+void dc_getextents(DDC *dc, const char *text, TextExtents *extents);
|
|
|
+
|