protected override void DrawLabel(GUIContent label, bool isAppendedToHorizontal, ref bool hasVerticalOutline, IDrawContext context)
        {
            base.DrawLabel(label, isAppendedToHorizontal, ref hasVerticalOutline, context);
            var  value       = (string)Value ?? string.Empty;
            bool hasLineEnds = value.Contains("\n");
            bool expanded    = _expanded || hasLineEnds;

            if (expanded)
            {
                GUILayout.FlexibleSpace();

                context.BeginEnabled(!hasLineEnds);
                if (GUILayout.Button("↑", GUILayout.Width(20f)) && !hasLineEnds)
                {
                    _expanded = false;
                }
                context.EndEnabled();
            }
        }