Add support for markup text in panel header

This commit is contained in:
Patrik Svensson
2020-11-07 03:17:31 +01:00
committed by Patrik Svensson
parent be3350a411
commit b1da5e7ba8
12 changed files with 121 additions and 142 deletions

View File

@ -30,10 +30,8 @@ namespace Spectre.Console
throw new ArgumentNullException(nameof(text));
}
style ??= panel.Header?.Style;
alignment ??= panel.Header?.Alignment;
return SetHeader(panel, new PanelHeader(text, style, alignment));
return SetHeader(panel, new PanelHeader(text, alignment));
}
/// <summary>
@ -54,5 +52,18 @@ namespace Spectre.Console
panel.Header = header;
return panel;
}
/// <summary>
/// Sets the panel header style.
/// </summary>
/// <param name="panel">The panel.</param>
/// <param name="style">The header style.</param>
/// <returns>The same instance so that multiple calls can be chained.</returns>
[Obsolete("Use markup in header instead.")]
[EditorBrowsable(EditorBrowsableState.Never)]
public static Panel HeaderStyle(this Panel panel, Style style)
{
return panel;
}
}
}

View File

@ -12,10 +12,9 @@ namespace Spectre.Console
/// </summary>
/// <param name="panel">The panel.</param>
/// <param name="text">The header text.</param>
/// <param name="style">The header style.</param>
/// <param name="alignment">The header alignment.</param>
/// <returns>The same instance so that multiple calls can be chained.</returns>
public static Panel Header(this Panel panel, string text, Style? style = null, Justify? alignment = null)
public static Panel Header(this Panel panel, string text, Justify? alignment = null)
{
if (panel is null)
{
@ -27,42 +26,8 @@ namespace Spectre.Console
throw new ArgumentNullException(nameof(text));
}
style ??= panel.Header?.Style;
alignment ??= panel.Header?.Alignment;
return Header(panel, new PanelHeader(text, style, alignment));
}
/// <summary>
/// Sets the panel header style.
/// </summary>
/// <param name="panel">The panel.</param>
/// <param name="style">The header style.</param>
/// <returns>The same instance so that multiple calls can be chained.</returns>
public static Panel HeaderStyle(this Panel panel, Style style)
{
if (panel is null)
{
throw new ArgumentNullException(nameof(panel));
}
if (style is null)
{
throw new ArgumentNullException(nameof(style));
}
if (panel.Header != null)
{
// Update existing style
panel.Header.Style = style;
}
else
{
// Create header
Header(panel, string.Empty, style, null);
}
return panel;
return Header(panel, new PanelHeader(text, alignment));
}
/// <summary>
@ -86,7 +51,7 @@ namespace Spectre.Console
else
{
// Create header
Header(panel, string.Empty, null, alignment);
Header(panel, string.Empty, alignment);
}
return panel;