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

Commit

Permalink
Merge pull request #30 from Gamersven/Merge
Browse files Browse the repository at this point in the history
Added the Ability to set an Icon for Toggles
  • Loading branch information
RequiDev authored Jul 11, 2022
2 parents d8f978b + c8fee28 commit 2c4fb93
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 15 deletions.
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

0 comments on commit 2c4fb93

Please sign in to comment.