From a4c214cfc2607feb0c90187b2fd42a214a382443 Mon Sep 17 00:00:00 2001 From: rabbitism Date: Sat, 17 Feb 2024 15:56:37 +0800 Subject: [PATCH] feat: re-org files. --- .../NumberDisplayer/Implementations.cs | 73 +++++++++++++++++++ ...berDisplayer.cs => NumberDisplayerBase.cs} | 73 ------------------- 2 files changed, 73 insertions(+), 73 deletions(-) create mode 100644 src/Ursa/Controls/NumberDisplayer/Implementations.cs rename src/Ursa/Controls/NumberDisplayer/{NumberDisplayer.cs => NumberDisplayerBase.cs} (68%) diff --git a/src/Ursa/Controls/NumberDisplayer/Implementations.cs b/src/Ursa/Controls/NumberDisplayer/Implementations.cs new file mode 100644 index 0000000..a43fa0a --- /dev/null +++ b/src/Ursa/Controls/NumberDisplayer/Implementations.cs @@ -0,0 +1,73 @@ +using Avalonia.Animation; + +namespace Ursa.Controls; + +public class Int32Displayer : NumberDisplayer +{ + protected override Type StyleKeyOverride { get; } = typeof(NumberDisplayerBase); + + protected override InterpolatingAnimator GetAnimator() + { + return new IntAnimator(); + } + + private class IntAnimator : InterpolatingAnimator + { + public override int Interpolate(double progress, int oldValue, int newValue) + { + return oldValue + (int)((newValue - oldValue) * progress); + } + } + + protected override string GetString(int value) + { + return value.ToString(StringFormat); + } +} + +public class DoubleDisplayer : NumberDisplayer +{ + protected override Type StyleKeyOverride { get; } = typeof(NumberDisplayerBase); + + protected override InterpolatingAnimator GetAnimator() + { + return new DoubleAnimator(); + } + + private class DoubleAnimator : InterpolatingAnimator + { + public override double Interpolate(double progress, double oldValue, double newValue) + { + return oldValue + (newValue - oldValue) * progress; + } + } + + protected override string GetString(double value) + { + return value.ToString(StringFormat); + } +} + +public class DateDisplay : NumberDisplayer +{ + protected override Type StyleKeyOverride { get; } = typeof(NumberDisplayerBase); + + protected override InterpolatingAnimator GetAnimator() + { + return new DateAnimator(); + } + + private class DateAnimator : InterpolatingAnimator + { + public override DateTime Interpolate(double progress, DateTime oldValue, DateTime newValue) + { + var diff = (newValue - oldValue).TotalSeconds; + return oldValue + TimeSpan.FromSeconds(diff * progress); + } + } + + protected override string GetString(DateTime value) + { + return value.ToString(StringFormat); + } +} \ No newline at end of file diff --git a/src/Ursa/Controls/NumberDisplayer/NumberDisplayer.cs b/src/Ursa/Controls/NumberDisplayer/NumberDisplayerBase.cs similarity index 68% rename from src/Ursa/Controls/NumberDisplayer/NumberDisplayer.cs rename to src/Ursa/Controls/NumberDisplayer/NumberDisplayerBase.cs index df295db..848c679 100644 --- a/src/Ursa/Controls/NumberDisplayer/NumberDisplayer.cs +++ b/src/Ursa/Controls/NumberDisplayer/NumberDisplayerBase.cs @@ -1,10 +1,7 @@ using Avalonia; using Avalonia.Animation; -using Avalonia.Controls; -using Avalonia.Controls.Documents; using Avalonia.Controls.Primitives; using Avalonia.Data; -using Avalonia.Media; using Avalonia.Styling; namespace Ursa.Controls; @@ -125,73 +122,3 @@ public abstract class NumberDisplayer: NumberDisplayerBase protected abstract string GetString(T? value); } - -public class Int32Displayer : NumberDisplayer -{ - protected override Type StyleKeyOverride { get; } = typeof(NumberDisplayerBase); - - protected override InterpolatingAnimator GetAnimator() - { - return new IntAnimator(); - } - - private class IntAnimator : InterpolatingAnimator - { - public override int Interpolate(double progress, int oldValue, int newValue) - { - return oldValue + (int)((newValue - oldValue) * progress); - } - } - - protected override string GetString(int value) - { - return value.ToString(StringFormat); - } -} - -public class DoubleDisplayer : NumberDisplayer -{ - protected override Type StyleKeyOverride { get; } = typeof(NumberDisplayerBase); - - protected override InterpolatingAnimator GetAnimator() - { - return new DoubleAnimator(); - } - - private class DoubleAnimator : InterpolatingAnimator - { - public override double Interpolate(double progress, double oldValue, double newValue) - { - return oldValue + (newValue - oldValue) * progress; - } - } - - protected override string GetString(double value) - { - return value.ToString(StringFormat); - } -} - -public class DateDisplay : NumberDisplayer -{ - protected override Type StyleKeyOverride { get; } = typeof(NumberDisplayerBase); - - protected override InterpolatingAnimator GetAnimator() - { - return new DateAnimator(); - } - - private class DateAnimator : InterpolatingAnimator - { - public override DateTime Interpolate(double progress, DateTime oldValue, DateTime newValue) - { - var diff = (newValue - oldValue).TotalSeconds; - return oldValue + TimeSpan.FromSeconds(diff * progress); - } - } - - protected override string GetString(DateTime value) - { - return value.ToString(StringFormat); - } -}