- for (lc = config_title_layout; *lc != '\0'; ++lc) {
- switch (*lc) {
- case 'N':
- if (n) { *lc = ' '; break; } /* rm duplicates */
- n = TRUE;
- self->label_width -= (ob_rr_theme->button_size + 2 +
- ob_rr_theme->paddingx + 1);
- break;
- case 'D':
- if (d) { *lc = ' '; break; }
- if (!(self->decorations & OB_FRAME_DECOR_ALLDESKTOPS)
- && config_theme_hidedisabled)
- break;
- d = TRUE;
- self->label_width -= (ob_rr_theme->button_size +
- ob_rr_theme->paddingx + 1);
- break;
- case 'S':
- if (s) { *lc = ' '; break; }
- if (!(self->decorations & OB_FRAME_DECOR_SHADE)
- && config_theme_hidedisabled)
- break;
- s = TRUE;
- self->label_width -= (ob_rr_theme->button_size +
- ob_rr_theme->paddingx + 1);
- break;
- case 'I':
- if (i) { *lc = ' '; break; }
- if (!(self->decorations & OB_FRAME_DECOR_ICONIFY)
- && config_theme_hidedisabled)
- break;
- i = TRUE;
- self->label_width -= (ob_rr_theme->button_size +
- ob_rr_theme->paddingx + 1);
- break;
- case 'L':
- if (l) { *lc = ' '; break; }
- l = TRUE;
- break;
- case 'M':
- if (m) { *lc = ' '; break; }
- if (!(self->decorations & OB_FRAME_DECOR_MAXIMIZE)
- && config_theme_hidedisabled)
- break;
- m = TRUE;
- self->label_width -= (ob_rr_theme->button_size +
- ob_rr_theme->paddingx + 1);
- break;
- case 'C':
- if (c) { *lc = ' '; break; }
- if (!(self->decorations & OB_FRAME_DECOR_CLOSE)
- && config_theme_hidedisabled)
- break;
- c = TRUE;
- self->label_width -= (ob_rr_theme->button_size +
- ob_rr_theme->paddingx + 1);
- break;
- }
- }
- if (self->label_width < 1) self->label_width = 1;
-
- if (!n) XUnmapWindow(ob_display, self->icon);
- if (!d) XUnmapWindow(ob_display, self->desk);
- if (!s) XUnmapWindow(ob_display, self->shade);
- if (!i) XUnmapWindow(ob_display, self->iconify);
- if (!l) XUnmapWindow(ob_display, self->label);
- if (!m) XUnmapWindow(ob_display, self->max);
- if (!c) XUnmapWindow(ob_display, self->close);
-
- x = ob_rr_theme->paddingx + 1;
- for (lc = config_title_layout; *lc != '\0'; ++lc) {
- switch (*lc) {
- case 'N':
- if (!n) break;
- self->icon_x = x;
- XMapWindow(ob_display, self->icon);
- XMoveWindow(ob_display, self->icon, x, ob_rr_theme->paddingy);
- x += ob_rr_theme->button_size + 2 + ob_rr_theme->paddingx + 1;
- break;
- case 'D':
- if (!d) break;
- self->desk_x = x;
- XMapWindow(ob_display, self->desk);
- XMoveWindow(ob_display, self->desk, x, ob_rr_theme->paddingy + 1);
- x += ob_rr_theme->button_size + ob_rr_theme->paddingx + 1;
- break;
- case 'S':
- if (!s) break;
- self->shade_x = x;
- XMapWindow(ob_display, self->shade);
- XMoveWindow(ob_display, self->shade, x, ob_rr_theme->paddingy + 1);
- x += ob_rr_theme->button_size + ob_rr_theme->paddingx + 1;
- break;
- case 'I':
- if (!i) break;
- self->iconify_x = x;
- XMapWindow(ob_display, self->iconify);
- XMoveWindow(ob_display,self->iconify, x, ob_rr_theme->paddingy + 1);
- x += ob_rr_theme->button_size + ob_rr_theme->paddingx + 1;
- break;
- case 'L':
- if (!l) break;
- self->label_x = x;
- XMapWindow(ob_display, self->label);
- XMoveWindow(ob_display, self->label, x, ob_rr_theme->paddingy);
- x += self->label_width + ob_rr_theme->paddingx + 1;
- break;
- case 'M':
- if (!m) break;
- self->max_x = x;
- XMapWindow(ob_display, self->max);
- XMoveWindow(ob_display, self->max, x, ob_rr_theme->paddingy + 1);
- x += ob_rr_theme->button_size + ob_rr_theme->paddingx + 1;
- break;
- case 'C':
- if (!c) break;
- self->close_x = x;
- XMapWindow(ob_display, self->close);
- XMoveWindow(ob_display, self->close, x, ob_rr_theme->paddingy + 1);
- x += ob_rr_theme->button_size + ob_rr_theme->paddingx + 1;
- break;