From cbdf6c3747a0731d8d3e5675453eb44f720b90d1 Mon Sep 17 00:00:00 2001 From: Ivaylo Draganov Date: Sun, 4 Jul 2021 11:24:36 +0300 Subject: [PATCH] Add faction suffix support to text fields and scroll panels --- .../Logic/Ingame/AddFactionSuffixLogic.cs | 11 +++- .../Widgets/ScrollPanelWidget.cs | 2 +- OpenRA.Mods.Common/Widgets/TextFieldWidget.cs | 3 +- mods/cnc/chrome.yaml | 60 +++++++++++++++++++ 4 files changed, 73 insertions(+), 3 deletions(-) diff --git a/OpenRA.Mods.Common/Widgets/Logic/Ingame/AddFactionSuffixLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/Ingame/AddFactionSuffixLogic.cs index 951d467acc..2c9f1698e7 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/Ingame/AddFactionSuffixLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/Ingame/AddFactionSuffixLogic.cs @@ -29,13 +29,22 @@ namespace OpenRA.Mods.Common.Widgets.Logic iw.ImageCollection += suffix; else if (widget is BackgroundWidget bgw) bgw.Background += suffix; + else if (widget is TextFieldWidget tfw) + tfw.Background += suffix; + else if (widget is ScrollPanelWidget spw) + { + spw.Button += suffix; + spw.Background += suffix; + spw.ScrollBarBackground += suffix; + spw.Decorations += suffix; + } else if (widget is ProductionTabsWidget ptw) { ptw.Button += suffix; ptw.Background += suffix; } else - throw new InvalidOperationException("AddFactionSuffixLogic only supports ButtonWidget, ImageWidget, BackgroundWidget and ProductionTabsWidget"); + throw new InvalidOperationException("AddFactionSuffixLogic only supports ButtonWidget, ImageWidget, BackgroundWidget, TextFieldWidget, ScrollPanelWidget and ProductionTabsWidget"); } } } diff --git a/OpenRA.Mods.Common/Widgets/ScrollPanelWidget.cs b/OpenRA.Mods.Common/Widgets/ScrollPanelWidget.cs index 8631830441..3637ada0f0 100644 --- a/OpenRA.Mods.Common/Widgets/ScrollPanelWidget.cs +++ b/OpenRA.Mods.Common/Widgets/ScrollPanelWidget.cs @@ -48,7 +48,7 @@ namespace OpenRA.Mods.Common.Widgets public string Background = "scrollpanel-bg"; public string ScrollBarBackground = "scrollpanel-bg"; public string Button = "scrollpanel-button"; - public readonly string Decorations = "scrollpanel-decorations"; + public string Decorations = "scrollpanel-decorations"; public readonly string DecorationScrollUp = "up"; public readonly string DecorationScrollDown = "down"; readonly CachedTransform<(bool Disabled, bool Pressed, bool Hover, bool Focused), Sprite> getUpArrowImage; diff --git a/OpenRA.Mods.Common/Widgets/TextFieldWidget.cs b/OpenRA.Mods.Common/Widgets/TextFieldWidget.cs index 588aa13b13..b76afd6dd3 100644 --- a/OpenRA.Mods.Common/Widgets/TextFieldWidget.cs +++ b/OpenRA.Mods.Common/Widgets/TextFieldWidget.cs @@ -37,6 +37,7 @@ namespace OpenRA.Mods.Common.Widgets public int VisualHeight = 1; public int LeftMargin = 5; public int RightMargin = 5; + public string Background = "textfield"; public bool Disabled = false; @@ -561,7 +562,7 @@ namespace OpenRA.Mods.Common.Widgets var disabled = IsDisabled(); var hover = Ui.MouseOverWidget == this || Children.Any(c => c == Ui.MouseOverWidget); - var state = WidgetUtils.GetStatefulImageName("textfield", disabled, false, hover, HasKeyboardFocus); + var state = WidgetUtils.GetStatefulImageName(Background, disabled, false, hover, HasKeyboardFocus); WidgetUtils.DrawPanel(state, new Rectangle(pos.X, pos.Y, Bounds.Width, Bounds.Height)); diff --git a/mods/cnc/chrome.yaml b/mods/cnc/chrome.yaml index cc08dde2cb..3670ce7a35 100644 --- a/mods/cnc/chrome.yaml +++ b/mods/cnc/chrome.yaml @@ -120,6 +120,30 @@ textfield-disabled: textfield-focused: Inherits: button-pressed +textfield-nod: + Inherits: button-nod + +textfield-nod-hover: + Inherits: button-nod-hover + +textfield-nod-disabled: + Inherits: button-nod-disabled + +textfield-nod-focused: + Inherits: button-nod-pressed + +textfield-gdi: + Inherits: button-gdi + +textfield-gdi-hover: + Inherits: button-gdi-hover + +textfield-gdi-disabled: + Inherits: button-gdi-disabled + +textfield-gdi-focused: + Inherits: button-gdi-pressed + # # Progress bar # === @@ -151,6 +175,36 @@ scrollpanel-button-disabled: scrollpanel-button-pressed: Inherits: button-pressed +scrollpanel-bg-nod: + Inherits: panel-gray-nod + +scrollpanel-button-nod: + Inherits: button-nod + +scrollpanel-button-nod-hover: + Inherits: button-nod-hover + +scrollpanel-button-nod-disabled: + Inherits: button-nod-disabled + +scrollpanel-button-nod-pressed: + Inherits: button-nod-pressed + +scrollpanel-bg-gdi: + Inherits: panel-gray-gdi + +scrollpanel-button-gdi: + Inherits: button-gdi + +scrollpanel-button-gdi-hover: + Inherits: button-gdi-hover + +scrollpanel-button-gdi-disabled: + Inherits: button-gdi-disabled + +scrollpanel-button-gdi-pressed: + Inherits: button-gdi-pressed + scrollitem-hover: Inherits: button @@ -374,6 +428,12 @@ scrollpanel-decorations: left: 938, 17, 16, 16 left-disabled: 955, 17, 16, 16 +scrollpanel-decorations-nod: + Inherits: scrollpanel-decorations + +scrollpanel-decorations-gdi: + Inherits: scrollpanel-decorations + dropdown-decorations: Inherits: ^Chrome Regions: