Files
LanMountainDesktop/LanMountainDesktop.Settings.Core/GlobalAppearanceSettings.cs

78 lines
2.4 KiB
C#
Raw Normal View History

2026-03-20 00:41:14 +08:00
namespace LanMountainDesktop.Settings.Core;
public static class GlobalAppearanceSettings
{
2026-04-08 00:55:10 +08:00
public const string CornerRadiusStyleSharp = "Sharp";
public const string CornerRadiusStyleBalanced = "Balanced";
public const string CornerRadiusStyleRounded = "Rounded";
public const string CornerRadiusStyleOpen = "Open";
public const string CornerRadiusStyleFluent = "Fluent";
2026-04-08 00:55:10 +08:00
public const string DefaultCornerRadiusStyle = CornerRadiusStyleBalanced;
/// <summary>
/// Kept for backward compatibility during settings migration.
/// New code should not reference this constant.
/// </summary>
2026-03-20 00:41:14 +08:00
public const double DefaultCornerRadiusScale = 1.0;
2026-03-20 18:05:42 +08:00
public const double MinimumCornerRadiusScale = 0.0;
2026-03-20 00:41:14 +08:00
2026-04-08 00:55:10 +08:00
public static string NormalizeCornerRadiusStyle(string? value)
2026-03-20 00:41:14 +08:00
{
2026-04-08 00:55:10 +08:00
if (string.IsNullOrWhiteSpace(value))
{
return DefaultCornerRadiusStyle;
}
var trimmed = value.Trim();
if (string.Equals(trimmed, CornerRadiusStyleSharp, StringComparison.OrdinalIgnoreCase))
{
return CornerRadiusStyleSharp;
}
if (string.Equals(trimmed, CornerRadiusStyleBalanced, StringComparison.OrdinalIgnoreCase))
{
return CornerRadiusStyleBalanced;
}
if (string.Equals(trimmed, CornerRadiusStyleRounded, StringComparison.OrdinalIgnoreCase))
2026-03-20 00:41:14 +08:00
{
2026-04-08 00:55:10 +08:00
return CornerRadiusStyleRounded;
2026-03-20 00:41:14 +08:00
}
2026-04-08 00:55:10 +08:00
if (string.Equals(trimmed, CornerRadiusStyleOpen, StringComparison.OrdinalIgnoreCase))
{
return CornerRadiusStyleOpen;
}
if (string.Equals(trimmed, CornerRadiusStyleFluent, StringComparison.OrdinalIgnoreCase))
{
return CornerRadiusStyleFluent;
}
2026-04-08 00:55:10 +08:00
return DefaultCornerRadiusStyle;
}
public static readonly IReadOnlyList<string> AllCornerRadiusStyles =
[
CornerRadiusStyleSharp,
CornerRadiusStyleBalanced,
CornerRadiusStyleRounded,
CornerRadiusStyleOpen,
CornerRadiusStyleFluent
2026-04-08 00:55:10 +08:00
];
/// <summary>
/// Backward compatibility: map previous scale values to the closest style.
/// </summary>
public static string MigrateScaleToStyle(double scale)
{
return scale switch
{
<= 0.60 => CornerRadiusStyleSharp,
<= 1.20 => CornerRadiusStyleBalanced,
<= 1.70 => CornerRadiusStyleRounded,
_ => CornerRadiusStyleOpen
};
2026-03-20 00:41:14 +08:00
}
}