tweaked the button look to have somewhat smoother corners and a cleaner disabled look
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15730 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -244,51 +244,79 @@ BButton::Draw(BRect updateRect)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// colors
|
// colors
|
||||||
const rgb_color panelBgColor = ui_color(B_PANEL_BACKGROUND_COLOR);
|
rgb_color panelBgColor = ui_color(B_PANEL_BACKGROUND_COLOR);
|
||||||
const rgb_color buttonBgColor = tint_color(panelBgColor, B_LIGHTEN_1_TINT);
|
rgb_color buttonBgColor = tint_color(panelBgColor, B_LIGHTEN_1_TINT);
|
||||||
const rgb_color lightColor = tint_color(panelBgColor, enabled ? B_LIGHTEN_2_TINT
|
rgb_color lightColor;
|
||||||
: B_LIGHTEN_1_TINT);
|
rgb_color maxLightColor;
|
||||||
const rgb_color maxLightColor = tint_color(panelBgColor, enabled ? B_LIGHTEN_MAX_TINT
|
rgb_color maxShadowColor = tint_color(panelBgColor, B_DARKEN_MAX_TINT);
|
||||||
: B_LIGHTEN_2_TINT);
|
|
||||||
const rgb_color maxShadowColor = tint_color(panelBgColor, B_DARKEN_MAX_TINT);
|
|
||||||
|
|
||||||
rgb_color dark1BorderColor = tint_color(panelBgColor, enabled ? B_DARKEN_3_TINT
|
rgb_color dark1BorderColor;
|
||||||
: B_DARKEN_1_TINT);
|
rgb_color dark2BorderColor;
|
||||||
rgb_color dark2BorderColor = tint_color(panelBgColor, enabled ? B_DARKEN_4_TINT
|
|
||||||
: B_DARKEN_2_TINT);
|
|
||||||
|
|
||||||
rgb_color bevelColor1 = enabled ? tint_color(panelBgColor, B_DARKEN_2_TINT)
|
rgb_color bevelColor1;
|
||||||
: panelBgColor;
|
rgb_color bevelColor2;
|
||||||
rgb_color bevelColor2 = enabled ? panelBgColor : buttonBgColor;
|
rgb_color bevelColorRBCorner;
|
||||||
|
|
||||||
rgb_color borderBevelShadow;
|
rgb_color borderBevelShadow;
|
||||||
rgb_color borderBevelLight;
|
rgb_color borderBevelLight;
|
||||||
if (IsDefault()) {
|
|
||||||
rgb_color focusColor = dark1BorderColor;
|
|
||||||
|
|
||||||
borderBevelShadow = enabled ? tint_color(focusColor, (B_NO_TINT + B_DARKEN_1_TINT) / 2)
|
if (enabled) {
|
||||||
: focusColor;
|
lightColor = tint_color(panelBgColor, B_LIGHTEN_2_TINT);
|
||||||
borderBevelLight = enabled ? tint_color(focusColor, B_LIGHTEN_1_TINT) : focusColor;
|
maxLightColor = tint_color(panelBgColor, B_LIGHTEN_MAX_TINT);
|
||||||
|
|
||||||
borderBevelLight.red = (borderBevelLight.red + panelBgColor.red) / 2;
|
|
||||||
borderBevelLight.green = (borderBevelLight.green + panelBgColor.green) / 2;
|
|
||||||
borderBevelLight.blue = (borderBevelLight.blue + panelBgColor.blue) / 2;
|
|
||||||
|
|
||||||
dark1BorderColor = tint_color(focusColor, enabled ? B_DARKEN_3_TINT
|
|
||||||
: B_DARKEN_1_TINT);
|
|
||||||
dark2BorderColor = tint_color(focusColor, enabled ? B_DARKEN_4_TINT
|
|
||||||
: B_DARKEN_2_TINT);
|
|
||||||
} else {
|
|
||||||
borderBevelShadow = enabled ? tint_color(panelBgColor, (B_NO_TINT + B_DARKEN_1_TINT) / 2)
|
|
||||||
: panelBgColor;
|
|
||||||
borderBevelLight = enabled ? buttonBgColor : panelBgColor;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
dark1BorderColor = tint_color(panelBgColor, B_DARKEN_3_TINT);
|
||||||
|
dark2BorderColor = tint_color(panelBgColor, B_DARKEN_4_TINT);
|
||||||
|
|
||||||
|
bevelColor1 = tint_color(panelBgColor, B_DARKEN_2_TINT);
|
||||||
|
bevelColor2 = panelBgColor;
|
||||||
|
|
||||||
|
if (IsDefault()) {
|
||||||
|
borderBevelShadow = tint_color(dark1BorderColor, (B_NO_TINT + B_DARKEN_1_TINT) / 2);
|
||||||
|
borderBevelLight = tint_color(dark1BorderColor, B_LIGHTEN_1_TINT);
|
||||||
|
|
||||||
|
borderBevelLight.red = (borderBevelLight.red + panelBgColor.red) / 2;
|
||||||
|
borderBevelLight.green = (borderBevelLight.green + panelBgColor.green) / 2;
|
||||||
|
borderBevelLight.blue = (borderBevelLight.blue + panelBgColor.blue) / 2;
|
||||||
|
|
||||||
|
dark1BorderColor = tint_color(dark1BorderColor, B_DARKEN_3_TINT);
|
||||||
|
dark2BorderColor = tint_color(dark1BorderColor, B_DARKEN_4_TINT);
|
||||||
|
|
||||||
|
bevelColorRBCorner = borderBevelShadow;
|
||||||
|
} else {
|
||||||
|
borderBevelShadow = tint_color(panelBgColor, (B_NO_TINT + B_DARKEN_1_TINT) / 2);
|
||||||
|
borderBevelLight = buttonBgColor;
|
||||||
|
|
||||||
|
bevelColorRBCorner = dark1BorderColor;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
lightColor = tint_color(panelBgColor, B_LIGHTEN_2_TINT);
|
||||||
|
maxLightColor = tint_color(panelBgColor, B_LIGHTEN_1_TINT);
|
||||||
|
|
||||||
|
dark1BorderColor = tint_color(panelBgColor, B_DARKEN_1_TINT);
|
||||||
|
dark2BorderColor = tint_color(panelBgColor, B_DARKEN_2_TINT);
|
||||||
|
|
||||||
|
bevelColor1 = panelBgColor;
|
||||||
|
bevelColor2 = buttonBgColor;
|
||||||
|
|
||||||
|
if (IsDefault()) {
|
||||||
|
borderBevelShadow = dark1BorderColor;
|
||||||
|
borderBevelLight = panelBgColor;
|
||||||
|
dark1BorderColor = tint_color(dark1BorderColor, B_DARKEN_1_TINT);
|
||||||
|
dark2BorderColor = tint_color(dark1BorderColor, 1.16);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
borderBevelShadow = panelBgColor;
|
||||||
|
borderBevelLight = panelBgColor;
|
||||||
|
}
|
||||||
|
|
||||||
|
bevelColorRBCorner = tint_color(panelBgColor, 1.08);;
|
||||||
|
}
|
||||||
|
|
||||||
// fill the button area
|
// fill the button area
|
||||||
SetHighColor(buttonBgColor);
|
SetHighColor(buttonBgColor);
|
||||||
FillRect(fillArea);
|
FillRect(fillArea);
|
||||||
|
|
||||||
BeginLineArray(16);
|
BeginLineArray(22);
|
||||||
// bevel around external border
|
// bevel around external border
|
||||||
AddLine(BPoint(rect.left, rect.bottom),
|
AddLine(BPoint(rect.left, rect.bottom),
|
||||||
BPoint(rect.left, rect.top), borderBevelShadow);
|
BPoint(rect.left, rect.top), borderBevelShadow);
|
||||||
@@ -316,12 +344,20 @@ BButton::Draw(BRect updateRect)
|
|||||||
|
|
||||||
// Light
|
// Light
|
||||||
AddLine(BPoint(rect.left, rect.top),
|
AddLine(BPoint(rect.left, rect.top),
|
||||||
BPoint(rect.left, rect.bottom), lightColor);
|
BPoint(rect.left, rect.top), buttonBgColor);
|
||||||
|
AddLine(BPoint(rect.left, rect.top + 1),
|
||||||
|
BPoint(rect.left, rect.bottom - 1), lightColor);
|
||||||
|
AddLine(BPoint(rect.left, rect.bottom),
|
||||||
|
BPoint(rect.left, rect.bottom), bevelColor2);
|
||||||
AddLine(BPoint(rect.left + 1, rect.top),
|
AddLine(BPoint(rect.left + 1, rect.top),
|
||||||
BPoint(rect.right, rect.top), lightColor);
|
BPoint(rect.right - 1, rect.top), lightColor);
|
||||||
|
AddLine(BPoint(rect.right, rect.top),
|
||||||
|
BPoint(rect.right, rect.top), bevelColor2);
|
||||||
// Shadow
|
// Shadow
|
||||||
AddLine(BPoint(rect.left + 1, rect.bottom),
|
AddLine(BPoint(rect.left + 1, rect.bottom),
|
||||||
BPoint(rect.right, rect.bottom), bevelColor1);
|
BPoint(rect.right - 1, rect.bottom), bevelColor1);
|
||||||
|
AddLine(BPoint(rect.right, rect.bottom),
|
||||||
|
BPoint(rect.right, rect.bottom), bevelColorRBCorner);
|
||||||
AddLine(BPoint(rect.right, rect.bottom - 1),
|
AddLine(BPoint(rect.right, rect.bottom - 1),
|
||||||
BPoint(rect.right, rect.top + 1), bevelColor1);
|
BPoint(rect.right, rect.top + 1), bevelColor1);
|
||||||
|
|
||||||
@@ -329,9 +365,13 @@ BButton::Draw(BRect updateRect)
|
|||||||
|
|
||||||
// Light
|
// Light
|
||||||
AddLine(BPoint(rect.left, rect.top),
|
AddLine(BPoint(rect.left, rect.top),
|
||||||
BPoint(rect.left, rect.bottom), maxLightColor);
|
BPoint(rect.left, rect.bottom - 1), maxLightColor);
|
||||||
|
AddLine(BPoint(rect.left, rect.bottom),
|
||||||
|
BPoint(rect.left, rect.bottom), buttonBgColor);
|
||||||
AddLine(BPoint(rect.left + 1, rect.top),
|
AddLine(BPoint(rect.left + 1, rect.top),
|
||||||
BPoint(rect.right, rect.top), maxLightColor);
|
BPoint(rect.right - 1, rect.top), maxLightColor);
|
||||||
|
AddLine(BPoint(rect.right, rect.top),
|
||||||
|
BPoint(rect.right, rect.top), buttonBgColor);
|
||||||
// Shadow
|
// Shadow
|
||||||
AddLine(BPoint(rect.left + 1, rect.bottom),
|
AddLine(BPoint(rect.left + 1, rect.bottom),
|
||||||
BPoint(rect.right, rect.bottom), bevelColor2);
|
BPoint(rect.right, rect.bottom), bevelColor2);
|
||||||
|
|||||||
Reference in New Issue
Block a user