+ draw->fg = col;
+}
+
+void
+draw_setbg(Draw *draw, Col *col) {
+ if(!draw)
+ return;
+ draw->bg = col;
+}
+
+void
+draw_rect(Draw *draw, int x, int y, unsigned int w, unsigned int h, Bool filled, Bool empty, Bool invert) {
+ int dx;
+
+ if(!draw || !draw->font || !draw->fg || !draw->bg)
+ return;
+ XSetForeground(draw->dpy, draw->gc, invert ? draw->bg->rgb : draw->fg->rgb);
+ dx = (draw->font->ascent + draw->font->descent + 2) / 4;
+ if(filled)
+ XFillRectangle(draw->dpy, draw->drawable, draw->gc, x+1, y+1, dx+1, dx+1);
+ else if(empty)
+ XDrawRectangle(draw->dpy, draw->drawable, draw->gc, x+1, y+1, dx, dx);
+}
+
+void
+draw_text(Draw *draw, int x, int y, unsigned int w, unsigned int h, const char *text, Bool invert) {
+ char buf[256];
+ int i, tx, ty, len, olen;
+ TextExtents tex;
+
+ if(!draw || !draw->fg || !draw->bg)
+ return;
+ XSetForeground(draw->dpy, draw->gc, invert ? draw->fg->rgb : draw->bg->rgb);
+ XFillRectangle(draw->dpy, draw->drawable, draw->gc, x, y, w, h);
+ if(!text || !draw->font)
+ return;
+ olen = strlen(text);
+ draw_getextents(draw, text, olen, &tex);
+ ty = y + (h / 2) - tex.yOff;
+ tx = x + tex.xOff;