Skip to content
This repository has been archived by the owner on Jan 24, 2023. It is now read-only.

Added the Ability to set an Icon for Toggles #30

Merged
merged 6 commits into from
Jul 11, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions UI/QuickMenu/IButtonPage.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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<bool> onToggle, bool defaultValue = false);
ReMenuToggle AddToggle(string text, string tooltip, ConfigValue<bool> 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<bool> onToggle, bool defaultValue = false);
ReMenuToggle AddToggle(string text, string tooltip, ConfigValue<bool> configValue);
ReMenuToggle AddToggle(string text, string tooltip, Action<bool> onToggle, bool defaultValue = false, Sprite iconOn = null, Sprite iconOff = null);
ReMenuToggle AddToggle(string text, string tooltip, ConfigValue<bool> configValue, Sprite iconOn = null, Sprite iconOff = null);
ReMenuPage GetMenuPage(string name);
ReCategoryPage GetCategoryPage(string name);
void AddCategoryPage(string text, string tooltip, Action<ReCategoryPage> onPageBuilt, Sprite sprite = null);
Expand Down
13 changes: 8 additions & 5 deletions UI/QuickMenu/ReMenuCategory.cs
Original file line number Diff line number Diff line change
Expand Up @@ -185,15 +185,18 @@ public ReMenuButton AddSpacer(Sprite sprite = null) {
return spacer;
}

public ReMenuToggle AddToggle(string text, string tooltip, Action<bool> onToggle, bool defaultValue = false)
public ReMenuToggle AddToggle(string text, string tooltip, Action<bool> onToggle, bool defaultValue = false)
=> AddToggle(text, tooltip, onToggle, defaultValue, null, null);
public ReMenuToggle AddToggle(string text, string tooltip, ConfigValue<bool> configValue)
=> AddToggle(text, tooltip, configValue, null, null);
public ReMenuToggle AddToggle(string text, string tooltip, Action<bool> 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<bool> configValue)
public ReMenuToggle AddToggle(string text, string tooltip, ConfigValue<bool> 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;
}

Expand Down
11 changes: 7 additions & 4 deletions UI/QuickMenu/ReMenuPage.cs
Original file line number Diff line number Diff line change
Expand Up @@ -161,13 +161,16 @@ public ReMenuButton AddSpacer(Sprite sprite = null)
}

public ReMenuToggle AddToggle(string text, string tooltip, Action<bool> onToggle, bool defaultValue = false)
=> AddToggle(text, tooltip, onToggle, defaultValue, null, null);
public ReMenuToggle AddToggle(string text, string tooltip, ConfigValue<bool> configValue)
=> AddToggle(text, tooltip, configValue, null, null);
public ReMenuToggle AddToggle(string text, string tooltip, Action<bool> 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<bool> configValue)
public ReMenuToggle AddToggle(string text, string tooltip, ConfigValue<bool> 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)
Expand Down
10 changes: 6 additions & 4 deletions UI/QuickMenu/ReMenuToggle.cs
Original file line number Diff line number Diff line change
Expand Up @@ -60,11 +60,13 @@ public string Tooltip {
_tooltip.field_Public_String_1 = value;
}
}

public ReMenuToggle(string text, string tooltip, Action<bool> onToggle, Transform parent, bool defaultValue = false) : base(QuickMenuEx.TogglePrefab, parent, $"Button_Toggle{text}")
public ReMenuToggle(string text, string tooltip, Action<bool> onToggle, Transform parent, bool defaultValue = false) : this(text, tooltip, onToggle, parent, defaultValue, null, null) { }
public ReMenuToggle(string text, string tooltip, Action<bool> 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<Image>();
iconOn.sprite = QuickMenuEx.OnIconSprite;
var icon = RectTransform.Find("Icon_On").GetComponent<Image>();
icon.sprite = iconOn ?? QuickMenuEx.OnIconSprite;
icon = RectTransform.Find("Icon_Off").GetComponent<Image>();
icon.sprite = iconOff ?? QuickMenuEx.OffIconSprite;

Object.DestroyImmediate(GameObject.GetComponent<UIInvisibleGraphic>()); // Fix for having clickable area overlap main quickmenu ui

Expand Down