mirror of
https://github.com/wwiinnddyy/LanMountainDesktop.git
synced 2026-08-18 15:20:47 +08:00
53 lines
1.5 KiB
C#
53 lines
1.5 KiB
C#
using Avalonia;
|
|
using LanMountainDesktop.Shared.Contracts;
|
|
|
|
namespace LanMountainDesktop.AirAppSdk;
|
|
|
|
public sealed record AirAppCornerRadiusTokens(
|
|
double Micro,
|
|
double Xs,
|
|
double Sm,
|
|
double Md,
|
|
double Lg,
|
|
double Xl,
|
|
double Island,
|
|
double Component)
|
|
{
|
|
public double Get(AirAppCornerRadiusPreset preset)
|
|
{
|
|
return preset switch
|
|
{
|
|
AirAppCornerRadiusPreset.Default => Component,
|
|
AirAppCornerRadiusPreset.Micro => Micro,
|
|
AirAppCornerRadiusPreset.Xs => Xs,
|
|
AirAppCornerRadiusPreset.Sm => Sm,
|
|
AirAppCornerRadiusPreset.Md => Md,
|
|
AirAppCornerRadiusPreset.Lg => Lg,
|
|
AirAppCornerRadiusPreset.Xl => Xl,
|
|
AirAppCornerRadiusPreset.Island => Island,
|
|
AirAppCornerRadiusPreset.Component => Component,
|
|
_ => Component
|
|
};
|
|
}
|
|
|
|
public CornerRadius ToCornerRadius(AirAppCornerRadiusPreset preset)
|
|
{
|
|
return new CornerRadius(Get(preset));
|
|
}
|
|
|
|
public static AirAppCornerRadiusTokens FromShared(AppearanceCornerRadiusTokens tokens)
|
|
{
|
|
ArgumentNullException.ThrowIfNull(tokens);
|
|
|
|
return new AirAppCornerRadiusTokens(
|
|
tokens.Micro.TopLeft,
|
|
tokens.Xs.TopLeft,
|
|
tokens.Sm.TopLeft,
|
|
tokens.Md.TopLeft,
|
|
tokens.Lg.TopLeft,
|
|
tokens.Xl.TopLeft,
|
|
tokens.Island.TopLeft,
|
|
tokens.Component.TopLeft);
|
|
}
|
|
}
|