diff --git a/OpenRA.Game/Widgets/ButtonWidget.cs b/OpenRA.Game/Widgets/ButtonWidget.cs index 2cf024a73c..49f1c43e7c 100644 --- a/OpenRA.Game/Widgets/ButtonWidget.cs +++ b/OpenRA.Game/Widgets/ButtonWidget.cs @@ -95,18 +95,18 @@ namespace OpenRA.Widgets public override void DrawInner() { var rb = RenderBounds; + var disabled = IsDisabled(); if (Font == "Regular" && Bold) Font = "Bold"; var font = Game.Renderer.Fonts[Font]; var text = GetText(); + var s = font.Measure(text); var stateOffset = (Depressed) ? new int2(VisualHeight, VisualHeight) : new int2(0, 0); - DrawBackground(rb, IsDisabled(), Depressed, rb.Contains(Viewport.LastMousePos)); - font.DrawText(text, - new int2(rb.X + UsableWidth / 2, rb.Y + Bounds.Height / 2) - - new int2(font.Measure(text).X / 2, - font.Measure(text).Y / 2) + stateOffset, IsDisabled() ? Color.Gray : Color.White); + DrawBackground(rb, disabled, Depressed, rb.Contains(Viewport.LastMousePos)); + font.DrawText(text, new int2(rb.X + (UsableWidth - s.X)/ 2, rb.Y + (Bounds.Height - s.Y) / 2) + stateOffset, + disabled ? Color.Gray : Color.White); } public override Widget Clone() { return new ButtonWidget(this); } diff --git a/OpenRA.Game/Widgets/DropDownButtonWidget.cs b/OpenRA.Game/Widgets/DropDownButtonWidget.cs index a343615e87..100b7803e8 100644 --- a/OpenRA.Game/Widgets/DropDownButtonWidget.cs +++ b/OpenRA.Game/Widgets/DropDownButtonWidget.cs @@ -35,7 +35,7 @@ namespace OpenRA.Widgets base.DrawInner(); var stateOffset = (Depressed) ? new int2(VisualHeight, VisualHeight) : new int2(0, 0); - var image = ChromeProvider.GetImage("scrollbar", "down_arrow"); + var image = ChromeProvider.GetImage("scrollbar", IsDisabled() ? "down_pressed" : "down_arrow"); var rb = RenderBounds; WidgetUtils.DrawRGBA( image, diff --git a/OpenRA.Game/Widgets/ScrollPanelWidget.cs b/OpenRA.Game/Widgets/ScrollPanelWidget.cs index 02ffffe864..f536c55874 100644 --- a/OpenRA.Game/Widgets/ScrollPanelWidget.cs +++ b/OpenRA.Game/Widgets/ScrollPanelWidget.cs @@ -88,13 +88,14 @@ namespace OpenRA.Widgets ButtonWidget.DrawBackground(thumbRect, false, (Focused && thumbRect.Contains(Viewport.LastMousePos)), thumbRect.Contains(Viewport.LastMousePos)); - var upOffset = !UpPressed || thumbHeight == 0 || ListOffset >= 0 ? 4 : 4 + ButtonDepth; - var downOffset = !DownPressed || thumbHeight == 0 || ListOffset <= Bounds.Height - ContentHeight - ? 4 : 4 + ButtonDepth; + var upDisabled = thumbHeight == 0 || ListOffset >= 0; + var downDisabled = thumbHeight == 0 || ListOffset <= Bounds.Height - ContentHeight; + var upOffset = !UpPressed || upDisabled ? 4 : 4 + ButtonDepth; + var downOffset = !DownPressed || downDisabled ? 4 : 4 + ButtonDepth; - WidgetUtils.DrawRGBA(ChromeProvider.GetImage("scrollbar", "up_arrow"), + WidgetUtils.DrawRGBA(ChromeProvider.GetImage("scrollbar", UpPressed || upDisabled ? "up_pressed" : "up_arrow"), new float2(upButtonRect.Left + upOffset, upButtonRect.Top + upOffset)); - WidgetUtils.DrawRGBA(ChromeProvider.GetImage("scrollbar", "down_arrow"), + WidgetUtils.DrawRGBA(ChromeProvider.GetImage("scrollbar", DownPressed || downDisabled ? "down_pressed" : "down_arrow"), new float2(downButtonRect.Left + downOffset, downButtonRect.Top + downOffset)); Game.Renderer.EnableScissor(backgroundRect.X + 1, backgroundRect.Y + 1, backgroundRect.Width - 2, backgroundRect.Height - 2); diff --git a/mods/ra/chrome.yaml b/mods/ra/chrome.yaml index 3e997d85e4..11ffa04419 100644 --- a/mods/ra/chrome.yaml +++ b/mods/ra/chrome.yaml @@ -209,7 +209,9 @@ music: musicplayer.png scrollbar: buttons.png down_arrow: 16,112,16,16 + down_pressed: 16,112,16,16 up_arrow: 32,112,16,16 + up_pressed: 32,112,16,16 # A copy of dialog3 progressbar-bg: dialog.png