diff --git a/UI/QuickMenu/IButtonPage.cs b/UI/QuickMenu/IButtonPage.cs index f7627d8..d11dde0 100644 --- a/UI/QuickMenu/IButtonPage.cs +++ b/UI/QuickMenu/IButtonPage.cs @@ -7,10 +7,12 @@ public interface IButtonPage { ReMenuButton AddButton(string text, string tooltip, Action onClick, Sprite sprite = null); ReMenuButton AddSpacer(Sprite sprite = null); - ReMenuToggle AddToggle(string text, string tooltip, Action onToggle, bool defaultValue = false); - ReMenuToggle AddToggle(string text, string tooltip, ConfigValue configValue); ReMenuPage AddMenuPage(string text, string tooltip = "", Sprite sprite = null); ReCategoryPage AddCategoryPage(string text, string tooltip = "", Sprite sprite = null); + ReMenuToggle AddToggle(string text, string tooltip, Action onToggle, bool defaultValue = false); + ReMenuToggle AddToggle(string text, string tooltip, ConfigValue configValue); + ReMenuToggle AddToggle(string text, string tooltip, Action onToggle, bool defaultValue = false, Sprite iconOn = null, Sprite iconOff = null); + ReMenuToggle AddToggle(string text, string tooltip, ConfigValue configValue, Sprite iconOn = null, Sprite iconOff = null); ReMenuPage GetMenuPage(string name); ReCategoryPage GetCategoryPage(string name); void AddCategoryPage(string text, string tooltip, Action onPageBuilt, Sprite sprite = null); diff --git a/UI/QuickMenu/ReMenuCategory.cs b/UI/QuickMenu/ReMenuCategory.cs index a423cb5..487ea19 100644 --- a/UI/QuickMenu/ReMenuCategory.cs +++ b/UI/QuickMenu/ReMenuCategory.cs @@ -185,15 +185,18 @@ public ReMenuButton AddSpacer(Sprite sprite = null) { return spacer; } - public ReMenuToggle AddToggle(string text, string tooltip, Action onToggle, bool defaultValue = false) + public ReMenuToggle AddToggle(string text, string tooltip, Action onToggle, bool defaultValue = false) + => AddToggle(text, tooltip, onToggle, defaultValue, null, null); + public ReMenuToggle AddToggle(string text, string tooltip, ConfigValue configValue) + => AddToggle(text, tooltip, configValue, null, null); + public ReMenuToggle AddToggle(string text, string tooltip, Action onToggle, bool defaultValue = false, Sprite iconOn = null, Sprite iconOff = null) { - var toggle = new ReMenuToggle(text, tooltip, onToggle, _buttonContainer.RectTransform, defaultValue); + var toggle = new ReMenuToggle(text, tooltip, onToggle, _buttonContainer.RectTransform, defaultValue, iconOn, iconOff); return toggle; } - - public ReMenuToggle AddToggle(string text, string tooltip, ConfigValue configValue) + public ReMenuToggle AddToggle(string text, string tooltip, ConfigValue configValue, Sprite iconOn = null, Sprite iconOff = null) { - var toggle = new ReMenuToggle(text, tooltip, configValue.SetValue, _buttonContainer.RectTransform, configValue); + var toggle = new ReMenuToggle(text, tooltip, configValue.SetValue, _buttonContainer.RectTransform, configValue, iconOn, iconOff); return toggle; } diff --git a/UI/QuickMenu/ReMenuPage.cs b/UI/QuickMenu/ReMenuPage.cs index 6f7a9e3..1bfcf7e 100644 --- a/UI/QuickMenu/ReMenuPage.cs +++ b/UI/QuickMenu/ReMenuPage.cs @@ -161,13 +161,16 @@ public ReMenuButton AddSpacer(Sprite sprite = null) } public ReMenuToggle AddToggle(string text, string tooltip, Action onToggle, bool defaultValue = false) + => AddToggle(text, tooltip, onToggle, defaultValue, null, null); + public ReMenuToggle AddToggle(string text, string tooltip, ConfigValue configValue) + => AddToggle(text, tooltip, configValue, null, null); + public ReMenuToggle AddToggle(string text, string tooltip, Action onToggle, bool defaultValue = false, Sprite iconOn = null, Sprite iconOff = null) { - return new ReMenuToggle(text, tooltip, onToggle, _container, defaultValue); + return new ReMenuToggle(text, tooltip, onToggle, _container, defaultValue, iconOn, iconOff); } - - public ReMenuToggle AddToggle(string text, string tooltip, ConfigValue configValue) + public ReMenuToggle AddToggle(string text, string tooltip, ConfigValue configValue, Sprite iconOn = null, Sprite iconOff = null) { - return new ReMenuToggle(text, tooltip, configValue.SetValue, _container, configValue); + return new ReMenuToggle(text, tooltip, configValue.SetValue, _container, configValue, iconOn, iconOff); } public ReMenuPage AddMenuPage(string text, string tooltip = "", Sprite sprite = null) diff --git a/UI/QuickMenu/ReMenuToggle.cs b/UI/QuickMenu/ReMenuToggle.cs index 016df3b..02d8374 100644 --- a/UI/QuickMenu/ReMenuToggle.cs +++ b/UI/QuickMenu/ReMenuToggle.cs @@ -60,11 +60,13 @@ public string Tooltip { _tooltip.field_Public_String_1 = value; } } - - public ReMenuToggle(string text, string tooltip, Action onToggle, Transform parent, bool defaultValue = false) : base(QuickMenuEx.TogglePrefab, parent, $"Button_Toggle{text}") + public ReMenuToggle(string text, string tooltip, Action onToggle, Transform parent, bool defaultValue = false) : this(text, tooltip, onToggle, parent, defaultValue, null, null) { } + public ReMenuToggle(string text, string tooltip, Action onToggle, Transform parent, bool defaultValue = false, Sprite iconOn = null, Sprite iconOff = null) : base(QuickMenuEx.TogglePrefab, parent, $"Button_Toggle{text}") { - var iconOn = RectTransform.Find("Icon_On").GetComponent(); - iconOn.sprite = QuickMenuEx.OnIconSprite; + var icon = RectTransform.Find("Icon_On").GetComponent(); + icon.sprite = iconOn ?? QuickMenuEx.OnIconSprite; + icon = RectTransform.Find("Icon_Off").GetComponent(); + icon.sprite = iconOff ?? QuickMenuEx.OffIconSprite; Object.DestroyImmediate(GameObject.GetComponent()); // Fix for having clickable area overlap main quickmenu ui