Example #1
0
        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);
        }