| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 | using System;using UnityEngine;namespace EnhancedHierarchy {    public abstract class MiniLabelProvider {        private readonly GUIContent content = new GUIContent();        public static readonly Type[] MiniLabelsTypes = new [] {            null,            typeof(TagMiniLabel),            typeof(LayerMiniLabel),            typeof(SortingLayerMiniLabel)        };        public abstract void FillContent(GUIContent content);        public abstract bool Faded();        public abstract void OnClick();        public void Init() {            FillContent(content);        }        public bool HasValue() {            return content.text.Length > 0;        }        public virtual bool Draw(Rect rect, GUIContent content, GUIStyle style) {            return GUI.Button(rect, content, style);        }        public float Measure() {            var calculated = Styles.miniLabelStyle.CalcSize(content);            return calculated.x;        }        public void Draw(ref Rect rect) {            if (!HasValue())                return;            var color = EnhancedHierarchy.CurrentColor;            var alpha = Faded() ? Styles.backgroundColorDisabled.a : Styles.backgroundColorEnabled.a;            var finalColor = color * new Color(1f, 1f, 1f, alpha);            using(ProfilerSample.Get())            using(new GUIContentColor(finalColor)) {                Styles.miniLabelStyle.fontSize = Preferences.SmallerMiniLabel ? 8 : 9;                rect.xMin -= Measure();                if (Draw(rect, content, Styles.miniLabelStyle))                    OnClick();            }        }    }}
 |