using System; namespace Mapbox.Editor { using UnityEditor; using UnityEditor.IMGUI.Controls; using UnityEngine; internal class FeatureSectionMultiColumnHeader : MultiColumnHeader { Mode m_Mode; public enum Mode { LargeHeader, DefaultHeader, MinimumHeaderWithoutSorting } public FeatureSectionMultiColumnHeader(MultiColumnHeaderState state) : base(state) { mode = Mode.DefaultHeader; } public Mode mode { get { return m_Mode; } set { m_Mode = value; switch (m_Mode) { case Mode.LargeHeader: canSort = true; height = 37f; break; case Mode.DefaultHeader: canSort = true; height = DefaultGUI.defaultHeight; break; case Mode.MinimumHeaderWithoutSorting: canSort = false; height = DefaultGUI.minimumHeight; break; } } } protected override void ColumnHeaderGUI(MultiColumnHeaderState.Column column, Rect headerRect, int columnIndex) { // Default column header gui base.ColumnHeaderGUI(column, headerRect, columnIndex); // Add additional info for large header if (mode == Mode.LargeHeader) { // Show example overlay stuff on some of the columns if (columnIndex > 2) { headerRect.xMax -= 3f; var oldAlignment = EditorStyles.largeLabel.alignment; EditorStyles.largeLabel.alignment = TextAnchor.UpperRight; GUI.Label(headerRect, 36 + columnIndex + "%", EditorStyles.largeLabel); EditorStyles.largeLabel.alignment = oldAlignment; } } } } }