1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- using UnityEditor;
- using UnityEditor.IMGUI.Controls;
- using UnityEngine;
- namespace UnityEditorInternal
- {
- class BindingTreeViewGUI : TreeViewGUI
- {
- static readonly float s_RowRightOffset = 10;
- static readonly float s_ColorIndicatorTopMargin = 3;
- static readonly Color s_KeyColorForNonCurves = new Color(0.7f, 0.7f, 0.7f, 0.5f);
- static readonly Color s_ChildrenCurveLabelColor = new Color(1.0f, 1.0f, 1.0f, 0.7f);
- public BindingTreeViewGUI(TreeViewController treeView)
- : base(treeView, true)
- {
- k_IconWidth = 13.0f;
- }
- public override void OnRowGUI(Rect rowRect, TreeViewItem node, int row, bool selected, bool focused)
- {
- Color originalColor = GUI.color;
- GUI.color = node.parent == null ||
- node.parent.id == BindingTreeViewDataSource.RootID ||
- node.parent.id == BindingTreeViewDataSource.GroupID ?
- Color.white :
- s_ChildrenCurveLabelColor;
- base.OnRowGUI(rowRect, node, row, selected, focused);
- GUI.color = originalColor;
- DoCurveColorIndicator(rowRect, node as CurveTreeViewNode);
- }
- protected override bool IsRenaming(int id)
- {
- return false;
- }
- public override bool BeginRename(TreeViewItem item, float delay)
- {
- return false;
- }
- void DoCurveColorIndicator(Rect rect, CurveTreeViewNode node)
- {
- if (node == null)
- return;
- if (Event.current.type != EventType.Repaint)
- return;
- Color originalColor = GUI.color;
- if (node.bindings.Length == 1 && !node.bindings[0].isPPtrCurve)
- GUI.color = CurveUtility.GetPropertyColor(node.bindings[0].propertyName);
- else
- GUI.color = s_KeyColorForNonCurves;
- Texture icon = CurveUtility.GetIconCurve();
- rect = new Rect(rect.xMax - s_RowRightOffset - (icon.width * 0.5f) - 5, rect.yMin + s_ColorIndicatorTopMargin, icon.width, icon.height);
- GUI.DrawTexture(rect, icon, ScaleMode.ScaleToFit, true, 1);
- GUI.color = originalColor;
- }
- protected override Texture GetIconForItem(TreeViewItem item)
- {
- var node = item as CurveTreeViewNode;
- if (node == null)
- return null;
- if (node.bindings == null || node.bindings.Length == 0)
- return null;
- return AssetPreview.GetMiniTypeThumbnail(node.bindings[0].type);
- }
- }
- }
|