using System; using UnityEditor.IMGUI.Controls; using UnityEngine; namespace UnityEditor.U2D.Animation { internal class VisibilityToolColumnHeader : MultiColumnHeader { public Action SetAllVisibility = (b) => {}; public Func GetAllVisibility = () => true; public VisibilityToolColumnHeader(MultiColumnHeaderState state) : base(state) { visibilityColumn = -1; } public int visibilityColumn { private get; set; } protected override void ColumnHeaderGUI(MultiColumnHeaderState.Column column, Rect headerRect, int columnIndex) { if (columnIndex == visibilityColumn) { GUIStyle style = DefaultStyles.columnHeaderCenterAligned; EditorGUI.BeginChangeCheck(); var visibility = GetAllVisibility(); visibility = GUI.Toggle(headerRect, visibility, visibility ? VisibilityTreeViewBase.VisibilityIconStyle.visibilityOnIcon : VisibilityTreeViewBase.VisibilityIconStyle.visibilityOffIcon, style); if (EditorGUI.EndChangeCheck()) SetAllVisibility(visibility); } else base.ColumnHeaderGUI(column, headerRect, columnIndex); } } }