private void ShowTypeInspector() { var @object = GetSelected().FirstOrDefault(); if (@object is UTinyType.Reference) { var type = ((UTinyType.Reference)@object).Dereference(Model.Registry); UTinyTypeViewer.SetType(type); } else if (@object is UTinyField) { var field = (UTinyField)@object; UTinyTypeViewer.SetType(field.DeclaringType); } }
private bool Foldout(bool foldout, string name, bool showArrow, UTinyObject tiny) { if (showArrow) { foldout = EditorGUILayout.Foldout(foldout, " " + name, true, UTinyStyles.ComponenHeaderFoldout); } else { GUILayout.Space(24); EditorGUILayout.LabelField(name, UTinyStyles.ComponenHeaderLabel); } var rect = GUILayoutUtility.GetLastRect(); if (Event.current.type == EventType.MouseDown && rect.Contains(Event.current.mousePosition) && Event.current.button == 1 && null != tiny && TargetType == typeof(UTinyEntity)) { var menu = new GenericMenu(); menu.AddItem(new GUIContent("Inspect Initial Values.."), false, () => UTinyTypeViewer.SetType(tiny.Type.Dereference(tiny.Registry))); menu.AddItem(new GUIContent("Reset Initial Values.."), false, () => tiny.Reset()); menu.ShowAsContext(); } return(foldout); }