-
-
-void Toolbar::redrawWorkspaceLabel(Bool redraw) {
- if (screen.getCurrentWorkspace()->getName()) {
- if (redraw)
- XClearWindow(display, frame.workspace_label);
-
- int dx = (frame.bevel_w * 2), dlen =
- strlen(screen.getCurrentWorkspace()->getName());
- unsigned int l;
-
- if (i18n->multibyte()) {
- XRectangle ink, logical;
- XmbTextExtents(screen.getToolbarStyle()->fontset,
- screen.getCurrentWorkspace()->getName(), dlen,
- &ink, &logical);
- l = logical.width;
- } else {
- l = XTextWidth(screen.getToolbarStyle()->font,
- screen.getCurrentWorkspace()->getName(), dlen);
- }
- l += (frame.bevel_w * 4);
-
- if (l > frame.workspace_label_w) {
- for (; dlen >= 0; dlen--) {
- if (i18n->multibyte()) {
- XRectangle ink, logical;
- XmbTextExtents(screen.getToolbarStyle()->fontset,
- screen.getCurrentWorkspace()->getName(), dlen,
- &ink, &logical);
- l = logical.width;
- } else {
- l = XTextWidth(screen.getWindowStyle()->font,
- screen.getCurrentWorkspace()->getName(), dlen);
- }
- l += (frame.bevel_w * 4);
-
- if (l < frame.workspace_label_w)
- break;
- }
- }
- switch (screen.getToolbarStyle()->justify) {
- case BScreen::RightJustify:
- dx += frame.workspace_label_w - l;
- break;