public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
        {
            DisplayTimeSpanAttribute timeSpanAttribute = attribute as DisplayTimeSpanAttribute;

            Rect valuesRect = DisplayLabel(position, label);

            TimeSpanDisplayMode displayMode = timeSpanAttribute.DisplayMode;

            EditorGUI.indentLevel++;
            Rect indentedValuesRect = EditorGUI.IndentedRect(valuesRect);

            EditorGUI.indentLevel--;

            switch (displayMode)
            {
            case TimeSpanDisplayMode.SingleMode:
                DisplayTimeSpanWithSingleUnit(indentedValuesRect, property, timeSpanAttribute);
                break;

            case TimeSpanDisplayMode.SingleModeSelectable:
                DisplayTimeSpanWithSelectableUnit(indentedValuesRect, property, timeSpanAttribute);
                break;

            case TimeSpanDisplayMode.ColumnMode:
            default:
                DisplayTimeSpanAsColumns(indentedValuesRect, property, timeSpanAttribute);
                break;
            }
        }
        public override float GetPropertyHeight(SerializedProperty property, GUIContent label)
        {
            DisplayTimeSpanAttribute displayAttribute = attribute as DisplayTimeSpanAttribute;

            TimeSpanDisplayMode displayMode = displayAttribute.DisplayMode;

            switch (displayMode)
            {
            case TimeSpanDisplayMode.SingleMode:
            case TimeSpanDisplayMode.SingleModeSelectable:
                return(EditorGUIUtility.singleLineHeight * 2f);

            case TimeSpanDisplayMode.ColumnMode:
            default:
                return(EditorGUIUtility.singleLineHeight * 3f);
            }
        }