mirror of
https://github.com/sinai-dev/UnityExplorer.git
synced 2025-06-16 22:27:45 +08:00
Make Type and Member names selectable / copy+paste-able
This commit is contained in:
parent
e2c1c186c3
commit
20298aa47b
@ -12,11 +12,11 @@ namespace UnityExplorer.CacheObject
|
|||||||
public CacheConfigEntry(IConfigElement configElement)
|
public CacheConfigEntry(IConfigElement configElement)
|
||||||
{
|
{
|
||||||
this.RefConfigElement = configElement;
|
this.RefConfigElement = configElement;
|
||||||
|
this.FallbackType = configElement.ElementType;
|
||||||
|
|
||||||
this.NameLabelText = $"<color=cyan>{configElement.Name}</color>" +
|
this.NameLabelText = $"<color=cyan>{configElement.Name}</color>" +
|
||||||
$"\r\n<color=grey><i>{configElement.Description}</i></color>";
|
$"\r\n<color=grey><i>{configElement.Description}</i></color>";
|
||||||
|
this.NameLabelTextRaw = string.Empty;
|
||||||
this.FallbackType = configElement.ElementType;
|
|
||||||
|
|
||||||
configElement.OnValueChangedNotify += UpdateValueFromSource;
|
configElement.OnValueChangedNotify += UpdateValueFromSource;
|
||||||
}
|
}
|
||||||
|
@ -61,6 +61,7 @@ namespace UnityExplorer.CacheObject
|
|||||||
var kvpCell = cell as CacheKeyValuePairCell;
|
var kvpCell = cell as CacheKeyValuePairCell;
|
||||||
|
|
||||||
kvpCell.NameLabel.text = $"{DictIndex}:";
|
kvpCell.NameLabel.text = $"{DictIndex}:";
|
||||||
|
kvpCell.HiddenNameLabel.Text = "";
|
||||||
kvpCell.Image.color = DictIndex % 2 == 0 ? CacheListEntryCell.EvenColor : CacheListEntryCell.OddColor;
|
kvpCell.Image.color = DictIndex % 2 == 0 ? CacheListEntryCell.EvenColor : CacheListEntryCell.OddColor;
|
||||||
|
|
||||||
if (KeyInputWanted)
|
if (KeyInputWanted)
|
||||||
|
@ -28,6 +28,7 @@ namespace UnityExplorer.CacheObject
|
|||||||
var listCell = cell as CacheListEntryCell;
|
var listCell = cell as CacheListEntryCell;
|
||||||
|
|
||||||
listCell.NameLabel.text = $"{ListIndex}:";
|
listCell.NameLabel.text = $"{ListIndex}:";
|
||||||
|
listCell.HiddenNameLabel.Text = "";
|
||||||
listCell.Image.color = ListIndex % 2 == 0 ? CacheListEntryCell.EvenColor : CacheListEntryCell.OddColor;
|
listCell.Image.color = ListIndex % 2 == 0 ? CacheListEntryCell.EvenColor : CacheListEntryCell.OddColor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -34,6 +34,7 @@ namespace UnityExplorer.CacheObject
|
|||||||
this.Owner = inspector;
|
this.Owner = inspector;
|
||||||
this.NameLabelText = SignatureHighlighter.Parse(member.DeclaringType, false, member);
|
this.NameLabelText = SignatureHighlighter.Parse(member.DeclaringType, false, member);
|
||||||
this.NameForFiltering = $"{member.DeclaringType.Name}.{member.Name}";
|
this.NameForFiltering = $"{member.DeclaringType.Name}.{member.Name}";
|
||||||
|
this.NameLabelTextRaw = NameForFiltering;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void ReleasePooledObjects()
|
public override void ReleasePooledObjects()
|
||||||
|
@ -47,6 +47,7 @@ namespace UnityExplorer.CacheObject
|
|||||||
public bool SubContentShowWanted { get; private set; }
|
public bool SubContentShowWanted { get; private set; }
|
||||||
|
|
||||||
public string NameLabelText { get; protected set; }
|
public string NameLabelText { get; protected set; }
|
||||||
|
public string NameLabelTextRaw { get; protected set; }
|
||||||
public string ValueLabelText { get; protected set; }
|
public string ValueLabelText { get; protected set; }
|
||||||
|
|
||||||
public abstract bool ShouldAutoEvaluate { get; }
|
public abstract bool ShouldAutoEvaluate { get; }
|
||||||
@ -260,6 +261,8 @@ namespace UnityExplorer.CacheObject
|
|||||||
public virtual void SetDataToCell(CacheObjectCell cell)
|
public virtual void SetDataToCell(CacheObjectCell cell)
|
||||||
{
|
{
|
||||||
cell.NameLabel.text = NameLabelText;
|
cell.NameLabel.text = NameLabelText;
|
||||||
|
if (cell.HiddenNameLabel != null)
|
||||||
|
cell.HiddenNameLabel.Text = NameLabelTextRaw;
|
||||||
cell.ValueLabel.gameObject.SetActive(true);
|
cell.ValueLabel.gameObject.SetActive(true);
|
||||||
|
|
||||||
cell.SubContentHolder.gameObject.SetActive(SubContentShowWanted);
|
cell.SubContentHolder.gameObject.SetActive(SubContentShowWanted);
|
||||||
|
@ -45,6 +45,7 @@ namespace UnityExplorer.CacheObject.Views
|
|||||||
public LayoutElement RightGroupLayout;
|
public LayoutElement RightGroupLayout;
|
||||||
|
|
||||||
public Text NameLabel;
|
public Text NameLabel;
|
||||||
|
public InputFieldRef HiddenNameLabel;
|
||||||
public Text TypeLabel;
|
public Text TypeLabel;
|
||||||
public Text ValueLabel;
|
public Text ValueLabel;
|
||||||
public Toggle Toggle;
|
public Toggle Toggle;
|
||||||
@ -116,8 +117,19 @@ namespace UnityExplorer.CacheObject.Views
|
|||||||
|
|
||||||
NameLabel = UIFactory.CreateLabel(horiRow, "NameLabel", "<notset>", TextAnchor.MiddleLeft);
|
NameLabel = UIFactory.CreateLabel(horiRow, "NameLabel", "<notset>", TextAnchor.MiddleLeft);
|
||||||
NameLabel.horizontalOverflow = HorizontalWrapMode.Wrap;
|
NameLabel.horizontalOverflow = HorizontalWrapMode.Wrap;
|
||||||
UIFactory.SetLayoutElement(NameLabel.gameObject, minHeight: 25, minWidth: 20, flexibleHeight: 300, flexibleWidth: 0);
|
NameLayout = UIFactory.SetLayoutElement(NameLabel.gameObject, minHeight: 25, minWidth: 20, flexibleHeight: 300, flexibleWidth: 0);
|
||||||
NameLayout = NameLabel.GetComponent<LayoutElement>();
|
UIFactory.SetLayoutGroup<VerticalLayoutGroup>(NameLabel.gameObject, true, true, true, true);
|
||||||
|
|
||||||
|
HiddenNameLabel = UIFactory.CreateInputField(NameLabel.gameObject, "HiddenNameLabel", "");
|
||||||
|
var hiddenRect = HiddenNameLabel.Component.GetComponent<RectTransform>();
|
||||||
|
hiddenRect.anchorMin = Vector2.zero;
|
||||||
|
hiddenRect.anchorMax = Vector2.one;
|
||||||
|
HiddenNameLabel.Component.readOnly = true;
|
||||||
|
HiddenNameLabel.Component.lineType = UnityEngine.UI.InputField.LineType.MultiLineNewline;
|
||||||
|
HiddenNameLabel.Component.textComponent.horizontalOverflow = HorizontalWrapMode.Wrap;
|
||||||
|
HiddenNameLabel.Component.gameObject.GetComponent<Image>().color = Color.clear;
|
||||||
|
HiddenNameLabel.Component.textComponent.color = Color.clear;
|
||||||
|
UIFactory.SetLayoutElement(HiddenNameLabel.Component.gameObject, minHeight: 25, minWidth: 20, flexibleHeight: 300, flexibleWidth: 0);
|
||||||
|
|
||||||
// Right vertical group
|
// Right vertical group
|
||||||
|
|
||||||
|
@ -47,6 +47,7 @@ namespace UnityExplorer.Inspectors
|
|||||||
|
|
||||||
public ScrollPool<CacheMemberCell> MemberScrollPool { get; private set; }
|
public ScrollPool<CacheMemberCell> MemberScrollPool { get; private set; }
|
||||||
|
|
||||||
|
public InputFieldRef HiddenNameText;
|
||||||
public Text NameText;
|
public Text NameText;
|
||||||
public Text AssemblyText;
|
public Text AssemblyText;
|
||||||
private Toggle autoUpdateToggle;
|
private Toggle autoUpdateToggle;
|
||||||
@ -125,6 +126,7 @@ namespace UnityExplorer.Inspectors
|
|||||||
currentBaseTabText = $"{prefix} {SignatureHighlighter.Parse(TargetType, false)}";
|
currentBaseTabText = $"{prefix} {SignatureHighlighter.Parse(TargetType, false)}";
|
||||||
Tab.TabText.text = currentBaseTabText;
|
Tab.TabText.text = currentBaseTabText;
|
||||||
NameText.text = SignatureHighlighter.Parse(TargetType, true);
|
NameText.text = SignatureHighlighter.Parse(TargetType, true);
|
||||||
|
HiddenNameText.Text = TargetType.FullName;
|
||||||
|
|
||||||
string asmText;
|
string asmText;
|
||||||
if (TargetType.Assembly is AssemblyBuilder || string.IsNullOrEmpty(TargetType.Assembly.Location))
|
if (TargetType.Assembly is AssemblyBuilder || string.IsNullOrEmpty(TargetType.Assembly.Location))
|
||||||
@ -332,8 +334,27 @@ namespace UnityExplorer.Inspectors
|
|||||||
|
|
||||||
// Class name, assembly
|
// Class name, assembly
|
||||||
|
|
||||||
NameText = UIFactory.CreateLabel(UIRoot, "Title", "not set", TextAnchor.MiddleLeft, fontSize: 17);
|
var titleHolder = UIFactory.CreateUIObject("TitleHolder", UIRoot);
|
||||||
UIFactory.SetLayoutElement(NameText.gameObject, minHeight: 25, flexibleHeight: 0);
|
UIFactory.SetLayoutElement(titleHolder, minHeight: 35, flexibleHeight: 0, flexibleWidth: 9999);
|
||||||
|
|
||||||
|
NameText = UIFactory.CreateLabel(titleHolder, "VisibleTitle", "NotSet", TextAnchor.MiddleLeft);
|
||||||
|
var namerect = NameText.GetComponent<RectTransform>();
|
||||||
|
namerect.anchorMin = new Vector2(0, 0);
|
||||||
|
namerect.anchorMax = new Vector2(1, 1);
|
||||||
|
NameText.fontSize = 17;
|
||||||
|
UIFactory.SetLayoutElement(NameText.gameObject, minHeight: 35, flexibleHeight: 0, minWidth: 300, flexibleWidth: 9999);
|
||||||
|
|
||||||
|
HiddenNameText = UIFactory.CreateInputField(titleHolder, "Title", "not set");
|
||||||
|
var hiddenrect = HiddenNameText.Component.gameObject.GetComponent<RectTransform>();
|
||||||
|
hiddenrect.anchorMin = new Vector2(0, 0);
|
||||||
|
hiddenrect.anchorMax = new Vector2(1, 1);
|
||||||
|
HiddenNameText.Component.readOnly = true;
|
||||||
|
HiddenNameText.Component.lineType = InputField.LineType.MultiLineNewline;
|
||||||
|
HiddenNameText.Component.gameObject.GetComponent<Image>().color = Color.clear;
|
||||||
|
HiddenNameText.Component.textComponent.horizontalOverflow = HorizontalWrapMode.Wrap;
|
||||||
|
HiddenNameText.Component.textComponent.fontSize = 17;
|
||||||
|
HiddenNameText.Component.textComponent.color = Color.clear;
|
||||||
|
UIFactory.SetLayoutElement(HiddenNameText.Component.gameObject, minHeight: 35, flexibleHeight: 0, flexibleWidth: 9999);
|
||||||
|
|
||||||
AssemblyText = UIFactory.CreateLabel(UIRoot, "AssemblyLabel", "not set", TextAnchor.MiddleLeft);
|
AssemblyText = UIFactory.CreateLabel(UIRoot, "AssemblyLabel", "not set", TextAnchor.MiddleLeft);
|
||||||
UIFactory.SetLayoutElement(AssemblyText.gameObject, minHeight: 25, flexibleWidth: 9999);
|
UIFactory.SetLayoutElement(AssemblyText.gameObject, minHeight: 25, flexibleWidth: 9999);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user