Пример #1
0
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);
}
Пример #2
0
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);
}
Пример #3
0
Файл: draw.c Проект: Yomin/dmenu
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);
}
Пример #4
0
// 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);
}