-
-
-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;
+
+
+void Toolbar::redrawWorkspaceLabel(bool redraw) {
+ const string& name = screen->getCurrentWorkspace()->getName();
+
+#ifdef XFT
+ redraw = true;
+#endif // XFT
+
+ if (redraw)
+ XClearWindow(display, frame.workspace_label);
+
+ ToolbarStyle *style = screen->getToolbarStyle();
+
+ int pos = frame.bevel_w * 2;
+ style->doJustify(name.c_str(), pos, frame.workspace_label_w,
+ frame.bevel_w * 4);
+ style->font->drawString(frame.workspace_label, pos, 1, style->l_text, name);
+}
+
+
+void Toolbar::drawArrow(Drawable surface, bool left) const {
+ ToolbarStyle *style = screen->getToolbarStyle();
+
+ BPen pen(style->b_pic);
+
+ int hh = frame.button_w / 2, hw = frame.button_w / 2;
+ XPoint pts[3];
+ const int bullet_size = 3;
+
+
+ if (left) {
+#ifdef BITMAPBUTTONS
+ if (style->left_button.mask != None) {
+ XSetClipMask(blackbox->getXDisplay(), pen.gc(), style->left_button.mask);
+ XSetClipOrigin(blackbox->getXDisplay(), pen.gc(),
+ (frame.button_w - style->left_button.w)/2,
+ (frame.button_w - style->left_button.h)/2);
+
+ XFillRectangle(blackbox->getXDisplay(), surface, pen.gc(),
+ (frame.button_w - style->left_button.w)/2,
+ (frame.button_w - style->left_button.h)/2,
+ style->left_button.w, style->left_button.h);
+
+ XSetClipMask(blackbox->getXDisplay(), pen.gc(), None);
+ XSetClipOrigin(blackbox->getXDisplay(), pen.gc(), 0, 0);