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();
- }
- }
- }
- }
|