From: <bra...@us...> - 2004-01-07 11:26:39
|
Update of /cvsroot/blackboxwm/blackbox/src In directory sc8-pr-cvs1:/tmp/cvs-serv21961/src Modified Files: Toolbar.cc Log Message: use bt::ellideText to ellide the focus window's title so it will fit in the window label (instead of doing it by hand) Index: Toolbar.cc =================================================================== RCS file: /cvsroot/blackboxwm/blackbox/src/Toolbar.cc,v retrieving revision 1.101 retrieving revision 1.102 diff -C2 -d -r1.101 -r1.102 *** Toolbar.cc 6 Jan 2004 15:32:37 -0000 1.101 --- Toolbar.cc 7 Jan 2004 11:26:36 -0000 1.102 *************** *** 434,453 **** if (! foc || foc->getScreen() != _screen) return; - // ellide the window title if it is larger than the available area - const std::string title = foc->getTitle(); // ### ick...a copy! - std::string ellided = title; - bt::Rect r = bt::textRect(_screen->screenNumber(), style->font, ellided); - int c = ellided.size(); - while (--c > 9 && r.width() > frame.window_label_w) { - ellided = bt::ellideText(title, c, "..."); - r = bt::textRect(_screen->screenNumber(), style->font, ellided); - } - if (c <= 9) ellided = "..."; // couldn't ellide enough - bt::Pen pen(_screen->screenNumber(), style->w_text); u.setCoords(u.left() + frame.bevel_w, u.top() + frame.bevel_w, u.right() - frame.bevel_w, u.bottom() - frame.bevel_w); bt::drawText(style->font, pen, frame.window_label, u, ! style->alignment, ellided); } --- 434,444 ---- if (! foc || foc->getScreen() != _screen) return; bt::Pen pen(_screen->screenNumber(), style->w_text); u.setCoords(u.left() + frame.bevel_w, u.top() + frame.bevel_w, u.right() - frame.bevel_w, u.bottom() - frame.bevel_w); bt::drawText(style->font, pen, frame.window_label, u, ! style->alignment, ! bt::ellideText(foc->getTitle(), frame.window_label_w, "...", ! _screen->screenNumber(), style->font)); } |