the dark border is now drawn without holes at the edges, as on R5, also fixed the BBox being used as separator, like NetPositive does

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17112 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Stephan Aßmus
2006-04-12 16:51:40 +00:00
parent 84b53ca7a0
commit 196144a56c
+40 -14
View File
@@ -498,9 +498,15 @@ BBox::_DrawPlain(BRect labelBox)
BRect rect = Bounds(); BRect rect = Bounds();
rect.top += TopBorderOffset(); rect.top += TopBorderOffset();
rgb_color light = tint_color(ViewColor(), B_LIGHTEN_MAX_TINT);
rgb_color shadow = tint_color(ViewColor(), B_DARKEN_3_TINT); rgb_color shadow = tint_color(ViewColor(), B_DARKEN_3_TINT);
if (rect.Height() == 0.0 || rect.Width() == 0.0) {
// used as separator
SetHighColor(shadow);
StrokeLine(rect.LeftTop(),rect.RightBottom());
} else {
// used as box
rgb_color light = tint_color(ViewColor(), B_LIGHTEN_MAX_TINT);
BeginLineArray(4); BeginLineArray(4);
AddLine(BPoint(rect.left, rect.bottom), AddLine(BPoint(rect.left, rect.bottom),
BPoint(rect.left, rect.top), light); BPoint(rect.left, rect.top), light);
@@ -512,6 +518,7 @@ BBox::_DrawPlain(BRect labelBox)
BPoint(rect.right, rect.top + 1.0f), shadow); BPoint(rect.right, rect.top + 1.0f), shadow);
EndLineArray(); EndLineArray();
} }
}
void void
@@ -523,28 +530,47 @@ BBox::_DrawFancy(BRect labelBox)
rgb_color light = tint_color(ViewColor(), B_LIGHTEN_MAX_TINT); rgb_color light = tint_color(ViewColor(), B_LIGHTEN_MAX_TINT);
rgb_color shadow = tint_color(ViewColor(), B_DARKEN_3_TINT); rgb_color shadow = tint_color(ViewColor(), B_DARKEN_3_TINT);
BeginLineArray(8); if (rect.Height() == 1.0) {
AddLine(BPoint(rect.left, rect.bottom), // used as horizontal separator
BPoint(rect.left, rect.top), shadow); BeginLineArray(2);
AddLine(BPoint(rect.left + 1.0f, rect.top), AddLine(BPoint(rect.left, rect.top),
BPoint(rect.right, rect.top), shadow); BPoint(rect.right, rect.top), shadow);
AddLine(BPoint(rect.left + 1.0f, rect.bottom), AddLine(BPoint(rect.left, rect.bottom),
BPoint(rect.right, rect.bottom), light); BPoint(rect.right, rect.bottom), light);
AddLine(BPoint(rect.right, rect.bottom - 1.0f), EndLineArray();
BPoint(rect.right, rect.top + 1.0f), light); } else if (rect.Width() == 1.0) {
// used as vertical separator
BeginLineArray(2);
AddLine(BPoint(rect.left, rect.top),
BPoint(rect.left, rect.bottom), shadow);
AddLine(BPoint(rect.right, rect.top),
BPoint(rect.right, rect.bottom), light);
EndLineArray();
} else {
// used as box
BeginLineArray(8);
AddLine(BPoint(rect.left, rect.bottom - 1.0),
BPoint(rect.left, rect.top), shadow);
AddLine(BPoint(rect.left + 1.0, rect.top),
BPoint(rect.right - 1.0, rect.top), shadow);
AddLine(BPoint(rect.left, rect.bottom),
BPoint(rect.right, rect.bottom), light);
AddLine(BPoint(rect.right, rect.bottom - 1.0),
BPoint(rect.right, rect.top), light);
rect.InsetBy(1.0, 1.0); rect.InsetBy(1.0, 1.0);
AddLine(BPoint(rect.left, rect.bottom), AddLine(BPoint(rect.left, rect.bottom - 1.0),
BPoint(rect.left, rect.top), light); BPoint(rect.left, rect.top), light);
AddLine(BPoint(rect.left + 1.0f, rect.top), AddLine(BPoint(rect.left + 1.0, rect.top),
BPoint(rect.right, rect.top), light); BPoint(rect.right - 1.0, rect.top), light);
AddLine(BPoint(rect.left + 1.0f, rect.bottom), AddLine(BPoint(rect.left, rect.bottom),
BPoint(rect.right, rect.bottom), shadow); BPoint(rect.right, rect.bottom), shadow);
AddLine(BPoint(rect.right, rect.bottom - 1.0f), AddLine(BPoint(rect.right, rect.bottom - 1.0),
BPoint(rect.right, rect.top + 1.0f), shadow); BPoint(rect.right, rect.top), shadow);
EndLineArray(); EndLineArray();
} }
}
void void