using System; using System.Reflection; using UnityEngine; using UnityExplorer.Helpers; using UnityExplorer.UI; using UnityEngine.UI; namespace UnityExplorer.Inspectors.Reflection { public enum MemberScopes { All, Instance, Static } public class InstanceInspector : ReflectionInspector { public override string TabLabel => $" [R] {base.TabLabel}"; internal MemberScopes m_scopeFilter; internal Button m_lastActiveScopeButton; public InstanceInspector(object target) : base(target) { } private void OnScopeFilterClicked(MemberScopes type, Button button) { if (m_lastActiveScopeButton) { var lastColors = m_lastActiveScopeButton.colors; lastColors.normalColor = new Color(0.2f, 0.2f, 0.2f); m_lastActiveScopeButton.colors = lastColors; } m_scopeFilter = type; m_lastActiveScopeButton = button; var colors = m_lastActiveScopeButton.colors; colors.normalColor = new Color(0.2f, 0.6f, 0.2f); m_lastActiveScopeButton.colors = colors; FilterMembers(null, true); m_sliderScroller.m_slider.value = 1f; } public void ConstructInstanceHelpers() { // WIP //if (m_targetType == typeof(Texture2D)) // ConstructTextureHelper(); // todo other helpers //if (typeof(Component).IsAssignableFrom(m_targetType)) //{ //} //else if (typeof(UnityEngine.Object).IsAssignableFrom(m_targetType)) //{ //} } //internal bool showingTextureHelper; //internal bool constructedTextureViewer; //internal void ConstructTextureHelper() //{ // var rowObj = UIFactory.CreateHorizontalGroup(Content, new Color(0.1f, 0.1f, 0.1f)); // var rowLayout = rowObj.AddComponent(); // rowLayout.minHeight = 25; // rowLayout.flexibleHeight = 0; // var rowGroup = rowObj.GetComponent(); // rowGroup.childForceExpandHeight = true; // rowGroup.childForceExpandWidth = false; // rowGroup.padding.top = 3; // rowGroup.padding.left = 3; // rowGroup.padding.bottom = 3; // rowGroup.padding.right = 3; // rowGroup.spacing = 5; // var showBtnObj = UIFactory.CreateButton(rowObj, new Color(0.2f, 0.2f, 0.2f)); // var showBtnLayout = showBtnObj.AddComponent(); // showBtnLayout.minWidth = 50; // showBtnLayout.flexibleWidth = 0; // var showText = showBtnObj.GetComponentInChildren(); // showText.text = "Show"; // var showBtn = showBtnObj.GetComponent