Files

88 lines
2.8 KiB
C#
Raw Permalink Normal View History

2026-04-01 00:34:07 +08:00
using Avalonia;
2026-08-11 23:03:55 +08:00
namespace LanMountainDesktop.AirAppSdk;
2026-04-01 00:34:07 +08:00
2026-08-11 23:03:55 +08:00
public static class AirAppAppearanceExtensions
2026-04-01 00:34:07 +08:00
{
public static CornerRadius ResolveCornerRadius(
2026-08-11 23:03:55 +08:00
this AirAppAppearanceSnapshot snapshot,
AirAppCornerRadiusPreset preset)
2026-04-01 00:34:07 +08:00
{
ArgumentNullException.ThrowIfNull(snapshot);
var value = snapshot.CornerRadiusTokens.Get(preset);
return new CornerRadius(Math.Max(0d, value));
}
public static CornerRadius ResolveCornerRadius(
2026-08-11 23:03:55 +08:00
this AirAppAppearanceSnapshot snapshot,
AirAppCornerRadiusPreset preset,
2026-04-01 00:34:07 +08:00
CornerRadius fallback)
{
ArgumentNullException.ThrowIfNull(snapshot);
var value = snapshot.CornerRadiusTokens.Get(preset);
if (!double.IsFinite(value) || value < 0)
{
return fallback;
}
return new CornerRadius(value);
}
public static CornerRadius ResolveCornerRadius(
2026-08-11 23:03:55 +08:00
this IAirAppAppearanceContext context,
AirAppCornerRadiusPreset preset)
2026-04-01 00:34:07 +08:00
{
ArgumentNullException.ThrowIfNull(context);
var value = context.ResolveCornerRadius(preset);
return new CornerRadius(Math.Max(0d, value));
}
public static CornerRadius ResolveCornerRadius(
2026-08-11 23:03:55 +08:00
this IAirAppAppearanceContext context,
AirAppCornerRadiusPreset preset,
2026-04-01 00:34:07 +08:00
double minimum,
double maximum)
{
ArgumentNullException.ThrowIfNull(context);
var value = context.ResolveCornerRadius(preset, minimum, maximum);
return new CornerRadius(Math.Max(0d, value));
}
public static CornerRadius ResolveScaledCornerRadius(
2026-08-11 23:03:55 +08:00
this IAirAppAppearanceContext context,
2026-04-01 00:34:07 +08:00
double baseRadius)
{
ArgumentNullException.ThrowIfNull(context);
var value = context.ResolveScaledCornerRadius(baseRadius);
return new CornerRadius(Math.Max(0d, value));
}
public static CornerRadius ResolveScaledCornerRadius(
2026-08-11 23:03:55 +08:00
this IAirAppAppearanceContext context,
2026-04-01 00:34:07 +08:00
double baseRadius,
double minimum,
double maximum)
{
ArgumentNullException.ThrowIfNull(context);
var value = context.ResolveScaledCornerRadius(baseRadius, minimum, maximum);
return new CornerRadius(Math.Max(0d, value));
}
public static CornerRadius ResolveCornerRadius(
2026-08-11 23:03:55 +08:00
this AirAppComponentContext context,
AirAppCornerRadiusPreset preset,
2026-04-01 00:34:07 +08:00
double minimum,
double maximum)
{
ArgumentNullException.ThrowIfNull(context);
var value = context.ResolveCornerRadius(preset, minimum, maximum);
return new CornerRadius(Math.Max(0d, value));
}
2026-08-11 23:03:55 +08:00
public static AirAppAppearanceSnapshot GetAppearanceSnapshot(
this AirAppComponentContext context)
2026-04-01 00:34:07 +08:00
{
ArgumentNullException.ThrowIfNull(context);
return context.Appearance.Snapshot;
}
}