UnityExplorer/src/UI/Panels/HookManagerPanel.cs

111 lines
3.9 KiB
C#
Raw Normal View History

using System;
using UnityEngine;
2021-09-06 23:04:40 +10:00
using UnityEngine.UI;
using UnityExplorer.Hooks;
using UnityExplorer.UI.Widgets;
2021-09-06 23:04:40 +10:00
using UnityExplorer.UI.Widgets.AutoComplete;
using UniverseLib;
2021-12-02 18:35:46 +11:00
using UniverseLib.UI;
2022-01-31 21:24:01 +11:00
using UniverseLib.UI.Models;
2021-12-02 18:35:46 +11:00
using UniverseLib.UI.Widgets;
2022-01-31 21:24:01 +11:00
using UniverseLib.UI.Widgets.ScrollView;
2021-09-06 23:04:40 +10:00
namespace UnityExplorer.UI.Panels
{
2022-04-14 01:25:59 +10:00
public class HookManagerPanel : UEPanel
2021-09-06 23:04:40 +10:00
{
public static HookManagerPanel Instance { get; private set; }
public enum Pages
{
ClassMethodSelector,
HookSourceEditor,
GenericArgsSelector,
}
public static HookCreator hookCreator;
public static HookList hookList;
public static GenericConstructorWidget genericArgsHandler;
2021-09-06 23:04:40 +10:00
// Panel
public override UIManager.Panels PanelType => UIManager.Panels.HookManager;
2021-09-06 23:04:40 +10:00
public override string Name => "Hooks";
2022-04-14 01:25:59 +10:00
public override bool ShowByDefault => false;
public override int MinWidth => 400;
public override int MinHeight => 400;
2022-04-14 01:25:59 +10:00
public override Vector2 DefaultAnchorMin => new(0.5f, 0.5f);
public override Vector2 DefaultAnchorMax => new(0.5f, 0.5f);
2021-09-06 23:04:40 +10:00
public Pages CurrentPage { get; private set; } = Pages.ClassMethodSelector;
2021-09-06 23:04:40 +10:00
2022-04-14 01:25:59 +10:00
public HookManagerPanel(UIBase owner) : base(owner)
{
}
public void SetPage(Pages page)
2021-09-06 23:04:40 +10:00
{
switch (page)
{
case Pages.ClassMethodSelector:
HookCreator.AddHooksRoot.SetActive(true);
HookCreator.EditorRoot.SetActive(false);
genericArgsHandler.UIRoot.SetActive(false);
break;
case Pages.HookSourceEditor:
HookCreator.AddHooksRoot.SetActive(false);
HookCreator.EditorRoot.SetActive(true);
genericArgsHandler.UIRoot.SetActive(false);
break;
case Pages.GenericArgsSelector:
HookCreator.AddHooksRoot.SetActive(false);
HookCreator.EditorRoot.SetActive(false);
genericArgsHandler.UIRoot.SetActive(true);
break;
}
2021-09-06 23:04:40 +10:00
}
2022-04-14 01:25:59 +10:00
public override void SetDefaultSizeAndPosition()
{
base.SetDefaultSizeAndPosition();
this.Rect.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, MinWidth);
this.Rect.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, MinHeight);
}
protected override void ConstructPanelContent()
2021-09-06 23:04:40 +10:00
{
Instance = this;
hookList = new();
hookCreator = new();
genericArgsHandler = new();
UIFactory.SetLayoutGroup<VerticalLayoutGroup>(ContentRoot, true, false);
// GameObject baseHoriGroup = UIFactory.CreateHorizontalGroup(ContentRoot, "HoriGroup", true, true, true, true);
// UIFactory.SetLayoutElement(baseHoriGroup, flexibleWidth: 9999, flexibleHeight: 9999);
// // Left Group
//GameObject leftGroup = UIFactory.CreateVerticalGroup(ContentRoot, "LeftGroup", true, true, true, true);
UIFactory.SetLayoutElement(ContentRoot.gameObject, minWidth: 300, flexibleWidth: 9999, flexibleHeight: 9999);
hookList.ConstructUI(ContentRoot);
// // Right Group
//GameObject rightGroup = UIFactory.CreateVerticalGroup(ContentRoot, "RightGroup", true, true, true, true);
UIFactory.SetLayoutElement(ContentRoot, minWidth: 300, flexibleWidth: 9999, flexibleHeight: 9999);
hookCreator.ConstructAddHooksView(ContentRoot);
hookCreator.ConstructEditor(ContentRoot);
HookCreator.EditorRoot.SetActive(false);
genericArgsHandler.ConstructUI(ContentRoot);
genericArgsHandler.UIRoot.SetActive(false);
2021-09-06 23:04:40 +10:00
}
}
}