void drawtext(DC *dc, int scrnum, const char *text, ColorSet *col) { char buf[BUFSIZ]; size_t mn, n = strlen(text); DM *m = &dc->menus[scrnum]; /* shorten text if necessary */ for(mn = MIN(n, sizeof buf); textnw(dc, text, mn) + dc->font.height/2 > m->cw; mn--) if(mn == 0) return; memcpy(buf, text, mn); if(mn < n) for(n = MAX(mn-3, 0); n < mn; buf[n++] = '.'); drawrect(dc, scrnum, 0, 0, m->cw, m->ch, True, col->BG); drawtextn(dc, scrnum, buf, mn, col); }
void drawtext(DC * dc, const char *text, ColorSet * col) { char buf[BUFSIZ]; size_t mn, n = strlen(text); /* shorten text if necessary */ for (mn = MIN(n, sizeof buf); textnw(dc, text, mn) + dc->font.height / 2 > dc->w; mn--) if (mn == 0) return; memcpy(buf, text, mn); if (mn < n) for (n = MAX(mn - 3, 0); n < mn; buf[n++] = '.') ; drawrect(dc, 0, 0, dc->w, dc->h, true, col->BG); drawtextn(dc, buf, mn, col); }
void drawtext(DC *dc, const char *text, Bool fill, unsigned long col[ColLast]) { char buf[BUFSIZ]; size_t mn, n = strlen(text); /* shorten text if necessary */ for(mn = MIN(n, sizeof buf); textnw(dc, text, mn) + dc->font.height/2 > dc->w; mn--) if(mn == 0) return; memcpy(buf, text, mn); if(mn < n) for(n = MAX(mn-3, 0); n < mn; buf[n++] = '.'); if(fill) drawrect(dc, 0, 0, dc->w, dc->h, True, BG(dc, col)); drawtextn(dc, buf, mn, col); }
// draw text void drawtext(DC *dc, const char * text, ColorSet *col) { char buf[MAX_TITLE_LENGTH]; /* shorten text if necessary */ size_t n = strlen(text); size_t mn = MIN(n, sizeof buf); for(; textnw(dc, text, mn) > dc->w - dc->font.height/2; mn--) { if(mn == 0) { return; // dont draw text (there isn't any) } } memcpy(buf, text, mn); /* if the text was shortened, add some elipses */ if(mn < n) for(n = MAX(mn-3, 0); n < mn; buf[n++] = '.'); drawrect_modifier(dc, 0, dc->color_border_pixels, dc->w, dc->h-(2*dc->color_border_pixels), True, col->BG); drawtextn(dc, buf, mn, col); }