From 55d3040a0e661e1556aee7205fcb9b60652648c8 Mon Sep 17 00:00:00 2001 From: Paul Chote Date: Fri, 1 Jun 2018 17:15:41 +0000 Subject: [PATCH] Blink the color picker palette tab when the Store button is pressed. This provides some visual feedback that something has happened on the hidden tab. --- .../Widgets/Logic/ColorPickerLogic.cs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/OpenRA.Mods.Common/Widgets/Logic/ColorPickerLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/ColorPickerLogic.cs index 485fd9eaf2..3bef1475e9 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/ColorPickerLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/ColorPickerLogic.cs @@ -24,6 +24,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic public class ColorPickerLogic : ChromeLogic { static bool paletteTabOpenedLast; + int paletteTabHighlighted = 0; [ObjectCreator.UseCtor] public ColorPickerLogic(Widget widget, ModData modData, World world, HSLColor initialColor, Action onChange, Dictionary logicArgs) @@ -91,7 +92,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic paletteTab.IsVisible = () => paletteTabOpenedLast; paletteTabButton.OnClick = () => paletteTabOpenedLast = true; - paletteTabButton.IsHighlighted = paletteTab.IsVisible; + paletteTabButton.IsHighlighted = () => paletteTab.IsVisible() || paletteTabHighlighted > 0; var paletteCols = 8; var palettePresetRows = 2; @@ -172,6 +173,10 @@ namespace OpenRA.Mods.Common.Widgets.Logic .Reverse().Take(paletteCustomRows * paletteCols).Reverse() .ToArray(); Game.Settings.Save(); + + // Flash the palette tab to show players that something has happened + if (!paletteTabOpenedLast) + paletteTabHighlighted = 4; }; } } @@ -196,5 +201,11 @@ namespace OpenRA.Mods.Common.Widgets.Logic color.AttachPanel(colorChooser, onExit); } + + public override void Tick() + { + if (paletteTabHighlighted > 0) + paletteTabHighlighted--; + } } } \ No newline at end of file