| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 | 
							- using System;
 
- using UnityEditor;
 
- using UnityEditor.AnimatedValues;
 
- using UnityEngine;
 
- namespace EnhancedHierarchy {
 
-     public struct GUIBackgroundColor : IDisposable {
 
-         private readonly Color before;
 
-         public GUIBackgroundColor(Color color) {
 
-             before = GUI.backgroundColor;
 
-             GUI.backgroundColor = color;
 
-         }
 
-         public void Dispose() {
 
-             GUI.backgroundColor = before;
 
-         }
 
-     }
 
-     public struct GUIContentColor : IDisposable {
 
-         private readonly Color before;
 
-         public GUIContentColor(Color color) {
 
-             before = GUI.contentColor;
 
-             GUI.contentColor = color;
 
-         }
 
-         public void Dispose() {
 
-             GUI.contentColor = before;
 
-         }
 
-     }
 
-     public struct GUIColor : IDisposable {
 
-         private readonly Color before;
 
-         public GUIColor(Color color) {
 
-             before = GUI.color;
 
-             GUI.color = color;
 
-         }
 
-         public GUIColor(Color color, float alpha) {
 
-             before = GUI.color;
 
-             color.a = alpha;
 
-             GUI.color = color;
 
-         }
 
-         public void Dispose() {
 
-             GUI.color = before;
 
-         }
 
-     }
 
-     public sealed class GUIIndent : IDisposable {
 
-         public GUIIndent() {
 
-             EditorGUI.indentLevel++;
 
-         }
 
-         public GUIIndent(string label) {
 
-             EditorGUILayout.LabelField(label);
 
-             EditorGUI.indentLevel++;
 
-         }
 
-         public void Dispose() {
 
-             EditorGUI.indentLevel--;
 
-             EditorGUILayout.Separator();
 
-         }
 
-     }
 
-     public struct GUIEnabled : IDisposable {
 
-         private readonly bool before;
 
-         public GUIEnabled(bool enabled) {
 
-             before = GUI.enabled;
 
-             GUI.enabled = before && enabled;
 
-         }
 
-         public void Dispose() {
 
-             GUI.enabled = before;
 
-         }
 
-     }
 
-     public sealed class GUIFade : IDisposable {
 
-         private AnimBool anim;
 
-         public bool Visible { get; private set; }
 
-         public GUIFade() {
 
-             Visible = true;
 
-         }
 
-         public void SetTarget(bool target) {
 
-             if (anim == null) {
 
-                 anim = new AnimBool(target);
 
-                 anim.valueChanged.AddListener(() => {
 
-                     if (EditorWindow.focusedWindow)
 
-                         EditorWindow.focusedWindow.Repaint();
 
-                 });
 
-             }
 
-             anim.target = target;
 
-             Visible = EditorGUILayout.BeginFadeGroup(anim.faded);
 
-         }
 
-         public void Dispose() {
 
-             EditorGUILayout.EndFadeGroup();
 
-         }
 
-     }
 
- }
 
 
  |