void
drw_text(Drw *drw, int x, int y, unsigned int w, unsigned int h, const char *text, int invert) {
+ _drw_text(drw, x, y, w, h, text, invert, 1);
+}
+
+void
+drw_text_nopad(Drw *drw, int x, int y, unsigned int w, unsigned int h, const char *text, int invert) {
+ _drw_text(drw, x, y, w, h, text, invert, 0);
+}
+
+void
+_drw_text(Drw *drw, int x, int y, unsigned int w, unsigned int h, const char *text, int invert, int pad) {
char buf[256];
int i, tx, ty, th, len, olen;
Extnts tex;
drw_font_getexts(drw->font, text, olen, &tex);
th = drw->font->ascent + drw->font->descent;
ty = y + (h / 2) - (th / 2) + drw->font->ascent;
- tx = x + (h / 2);
+ tx = x + (h / 2) * pad;
/* shorten text if necessary */
- for(len = MIN(olen, sizeof buf); len && (tex.w > w - tex.h || w < tex.h); len--)
+ for(len = MIN(olen, sizeof buf); len && (tex.w > w - tex.h * pad || w < tex.h * pad); len--)
drw_font_getexts(drw->font, text, len, &tex);
if(!len)
return;