diff options
Diffstat (limited to 'src/Toolbar.cc')
-rw-r--r-- | src/Toolbar.cc | 56 |
1 files changed, 41 insertions, 15 deletions
diff --git a/src/Toolbar.cc b/src/Toolbar.cc index 349f1ea..541bdea 100644 --- a/src/Toolbar.cc +++ b/src/Toolbar.cc | |||
@@ -22,7 +22,7 @@ | |||
22 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | 22 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
23 | // DEALINGS IN THE SOFTWARE. | 23 | // DEALINGS IN THE SOFTWARE. |
24 | 24 | ||
25 | // $Id: Toolbar.cc,v 1.76 2003/04/27 04:28:03 rathnor Exp $ | 25 | // $Id: Toolbar.cc,v 1.77 2003/04/28 16:48:23 rathnor Exp $ |
26 | 26 | ||
27 | #include "Toolbar.hh" | 27 | #include "Toolbar.hh" |
28 | 28 | ||
@@ -462,10 +462,27 @@ void Toolbar::reconfigure() { | |||
462 | else if (frame.workspace_label_w > frame.clock_w) | 462 | else if (frame.workspace_label_w > frame.clock_w) |
463 | frame.clock_w = frame.workspace_label_w; | 463 | frame.clock_w = frame.workspace_label_w; |
464 | 464 | ||
465 | frame.window_label_w = | 465 | // Right, let's break this one down.... |
466 | (frame.width - (frame.clock_w + (frame.button_w * 4) + | 466 | // full width, minus clock, workspace label and the 4 arrow buttons. |
467 | frame.workspace_label_w + (frame.bevel_w * 8) + 6)); | 467 | // each of the (6) aforementioned items are separated by a bevel width, |
468 | 468 | // plus outside (+1), plus the window label (+1). | |
469 | |||
470 | i = frame.clock_w + (frame.button_w * 4) + | ||
471 | frame.workspace_label_w + (frame.bevel_w * 8) + 6; | ||
472 | |||
473 | // of course if your toolbar is set too small, this could go negative. | ||
474 | // which is bad mmmkay. Since we are unsigned, we check that *first*. | ||
475 | if (vertical) | ||
476 | w = frame.height; | ||
477 | else | ||
478 | w = frame.width; | ||
479 | |||
480 | if (i > w) | ||
481 | frame.window_label_w = 0; | ||
482 | else | ||
483 | frame.window_label_w = w - i; | ||
484 | |||
485 | |||
469 | if (hidden) | 486 | if (hidden) |
470 | frame.window.moveResize(frame.x_hidden, frame.y_hidden, | 487 | frame.window.moveResize(frame.x_hidden, frame.y_hidden, |
471 | frame.width, frame.height); | 488 | frame.width, frame.height); |
@@ -477,6 +494,12 @@ void Toolbar::reconfigure() { | |||
477 | 494 | ||
478 | unsigned int next_x = frame.workspace_label_w; | 495 | unsigned int next_x = frame.workspace_label_w; |
479 | unsigned int next_y = frame.window.height(); | 496 | unsigned int next_y = frame.window.height(); |
497 | unsigned int text_x=0, text_y=0; | ||
498 | if (vertical) | ||
499 | text_x = frame.bevel_w; | ||
500 | else | ||
501 | text_y = frame.bevel_w; | ||
502 | |||
480 | 503 | ||
481 | if (vertical) { | 504 | if (vertical) { |
482 | next_x = frame.window.width(); | 505 | next_x = frame.window.width(); |
@@ -507,12 +530,11 @@ void Toolbar::reconfigure() { | |||
507 | if (vertical) { | 530 | if (vertical) { |
508 | next_y += frame.nsbutton.height() + 1; | 531 | next_y += frame.nsbutton.height() + 1; |
509 | label_w = frame.width; | 532 | label_w = frame.width; |
510 | label_h = frame.window_label_w - frame.width + frame.height; | 533 | label_h = frame.window_label_w/* - frame.width + frame.height*/; |
511 | 534 | ||
512 | } else | 535 | } else |
513 | next_x += frame.nsbutton.width() + 1; | 536 | next_x += frame.nsbutton.width() + 1; |
514 | 537 | ||
515 | |||
516 | frame.window_label.moveResize(next_x, next_y, | 538 | frame.window_label.moveResize(next_x, next_y, |
517 | label_w, label_h); | 539 | label_w, label_h); |
518 | if (vertical) | 540 | if (vertical) |
@@ -538,7 +560,7 @@ void Toolbar::reconfigure() { | |||
538 | } else | 560 | } else |
539 | next_x += frame.nwbutton.width() + 1; | 561 | next_x += frame.nwbutton.width() + 1; |
540 | 562 | ||
541 | frame.clock.moveResize(next_x, next_y, | 563 | frame.clock.moveResize(next_x + text_x, next_y + text_y, |
542 | clock_w, clock_h); | 564 | clock_w, clock_h); |
543 | 565 | ||
544 | Pixmap tmp = frame.base; | 566 | Pixmap tmp = frame.base; |
@@ -650,6 +672,9 @@ void Toolbar::reconfigure() { | |||
650 | frame.nwbutton.clear(); | 672 | frame.nwbutton.clear(); |
651 | 673 | ||
652 | redrawWindowLabel(); | 674 | redrawWindowLabel(); |
675 | if (m_iconbar.get()) | ||
676 | m_iconbar->reconfigure(); | ||
677 | |||
653 | redrawWorkspaceLabel(); | 678 | redrawWorkspaceLabel(); |
654 | checkClock(true); | 679 | checkClock(true); |
655 | 680 | ||
@@ -775,8 +800,9 @@ void Toolbar::redrawWindowLabel(bool redraw) { | |||
775 | if (m_theme.font().isRotated()) { | 800 | if (m_theme.font().isRotated()) { |
776 | int tmp = dy; | 801 | int tmp = dy; |
777 | dy = frame.window_label.height() - dx; | 802 | dy = frame.window_label.height() - dx; |
778 | dx = tmp; | 803 | dx = tmp + frame.bevel_w; |
779 | } | 804 | } else |
805 | dy += frame.bevel_w; | ||
780 | 806 | ||
781 | m_theme.font().drawText( | 807 | m_theme.font().drawText( |
782 | frame.window_label.window(), | 808 | frame.window_label.window(), |
@@ -1151,28 +1177,28 @@ void Toolbar::setPlacement(Toolbar::Placement where) { | |||
1151 | break; | 1177 | break; |
1152 | case LEFTBOTTOM: | 1178 | case LEFTBOTTOM: |
1153 | frame.x = head_x; | 1179 | frame.x = head_x; |
1154 | frame.y = head_y + head_h - frame.height; | 1180 | frame.y = head_y + head_h - frame.height - screen().rootTheme().borderWidth()*2; |
1155 | frame.x_hidden = frame.x - frame.width + | 1181 | frame.x_hidden = frame.x - frame.width + |
1156 | screen().rootTheme().bevelWidth() + screen().rootTheme().borderWidth(); | 1182 | screen().rootTheme().bevelWidth() + screen().rootTheme().borderWidth(); |
1157 | frame.y_hidden = frame.y; | 1183 | frame.y_hidden = frame.y; |
1158 | break; | 1184 | break; |
1159 | case RIGHTCENTER: | 1185 | case RIGHTCENTER: |
1160 | frame.x = head_x + head_w - frame.width; | 1186 | frame.x = head_x + head_w - frame.width - screen().rootTheme().borderWidth()*2; |
1161 | frame.y = head_y + (head_h - frame.height)/2; | 1187 | frame.y = head_y + (head_h - frame.height)/2; |
1162 | frame.x_hidden = frame.x + frame.width - | 1188 | frame.x_hidden = frame.x + frame.width - |
1163 | screen().rootTheme().bevelWidth() - screen().rootTheme().borderWidth(); | 1189 | screen().rootTheme().bevelWidth() - screen().rootTheme().borderWidth(); |
1164 | frame.y_hidden = frame.y; | 1190 | frame.y_hidden = frame.y; |
1165 | break; | 1191 | break; |
1166 | case RIGHTTOP: | 1192 | case RIGHTTOP: |
1167 | frame.x = head_x + head_w - frame.width; | 1193 | frame.x = head_x + head_w - frame.width - screen().rootTheme().borderWidth()*2; |
1168 | frame.y = head_y; | 1194 | frame.y = head_y; |
1169 | frame.x_hidden = frame.x + frame.width - | 1195 | frame.x_hidden = frame.x + frame.width - |
1170 | screen().rootTheme().bevelWidth() - screen().rootTheme().borderWidth(); | 1196 | screen().rootTheme().bevelWidth() - screen().rootTheme().borderWidth(); |
1171 | frame.y_hidden = frame.y; | 1197 | frame.y_hidden = frame.y; |
1172 | break; | 1198 | break; |
1173 | case RIGHTBOTTOM: | 1199 | case RIGHTBOTTOM: |
1174 | frame.x = head_x + head_w - frame.width; | 1200 | frame.x = head_x + head_w - frame.width - screen().rootTheme().borderWidth()*2; |
1175 | frame.y = head_y + head_h - frame.height; | 1201 | frame.y = head_y + head_h - frame.height - screen().rootTheme().borderWidth()*2; |
1176 | frame.x_hidden = frame.x + frame.width - | 1202 | frame.x_hidden = frame.x + frame.width - |
1177 | screen().rootTheme().bevelWidth() - screen().rootTheme().borderWidth(); | 1203 | screen().rootTheme().bevelWidth() - screen().rootTheme().borderWidth(); |
1178 | frame.y_hidden = frame.y; | 1204 | frame.y_hidden = frame.y; |