From 3b317fc3080b183892a4b0c419e7c32d64fe6af5 Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Thu, 28 May 2020 15:58:13 -0300 Subject: [PATCH 01/72] initial progressbar port. --- .../Accents/FluentBaseDark.xaml | 5 + .../Accents/FluentBaseLight.xaml | 6 + .../Accents/FluentControlResourcesDark.xaml | 9 ++ .../Accents/FluentControlResourcesLight.xaml | 8 ++ src/Avalonia.Themes.Fluent/ProgressBar.xaml | 108 ++++++++++++++---- 5 files changed, 116 insertions(+), 20 deletions(-) diff --git a/src/Avalonia.Themes.Fluent/Accents/FluentBaseDark.xaml b/src/Avalonia.Themes.Fluent/Accents/FluentBaseDark.xaml index 7a715bbde7..aed5ac1360 100644 --- a/src/Avalonia.Themes.Fluent/Accents/FluentBaseDark.xaml +++ b/src/Avalonia.Themes.Fluent/Accents/FluentBaseDark.xaml @@ -162,6 +162,11 @@ + + + + + diff --git a/src/Avalonia.Themes.Fluent/Accents/FluentBaseLight.xaml b/src/Avalonia.Themes.Fluent/Accents/FluentBaseLight.xaml index 5c6286a0bc..50d29f44ab 100644 --- a/src/Avalonia.Themes.Fluent/Accents/FluentBaseLight.xaml +++ b/src/Avalonia.Themes.Fluent/Accents/FluentBaseLight.xaml @@ -164,6 +164,12 @@ + + + + + + diff --git a/src/Avalonia.Themes.Fluent/Accents/FluentControlResourcesDark.xaml b/src/Avalonia.Themes.Fluent/Accents/FluentControlResourcesDark.xaml index 7364c339f1..21181bf19d 100644 --- a/src/Avalonia.Themes.Fluent/Accents/FluentControlResourcesDark.xaml +++ b/src/Avalonia.Themes.Fluent/Accents/FluentControlResourcesDark.xaml @@ -169,6 +169,15 @@ + + 0.6 + 4 + 0 + + + + + diff --git a/src/Avalonia.Themes.Fluent/Accents/FluentControlResourcesLight.xaml b/src/Avalonia.Themes.Fluent/Accents/FluentControlResourcesLight.xaml index 15e157f573..8ce75862f1 100644 --- a/src/Avalonia.Themes.Fluent/Accents/FluentControlResourcesLight.xaml +++ b/src/Avalonia.Themes.Fluent/Accents/FluentControlResourcesLight.xaml @@ -168,6 +168,14 @@ + + 0.6 + 4 + 0 + + + + diff --git a/src/Avalonia.Themes.Fluent/ProgressBar.xaml b/src/Avalonia.Themes.Fluent/ProgressBar.xaml index d3c2f0c784..39a573303c 100644 --- a/src/Avalonia.Themes.Fluent/ProgressBar.xaml +++ b/src/Avalonia.Themes.Fluent/ProgressBar.xaml @@ -1,24 +1,92 @@ - - - + + + + + + + + + + + + - + + + + + + + + + + @@ -68,388 +55,44 @@ - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + + + + + + + From 5a4a7c80c7861aaf68bd0a9932232ab40bdf0f78 Mon Sep 17 00:00:00 2001 From: Nikita Tsukanov Date: Tue, 9 Jun 2020 17:23:13 +0300 Subject: [PATCH 09/72] .axaml --- packages/Avalonia/Avalonia.csproj | 4 ++++ packages/Avalonia/AvaloniaBuildTasks.props | 11 ++++++++++- packages/Avalonia/AvaloniaBuildTasks.targets | 7 +++++-- packages/Avalonia/AvaloniaItemSchema.xaml | 13 +++++++++++++ .../GenerateAvaloniaResourcesTask.cs | 4 ++-- .../XamlCompilerTaskExecutor.cs | 3 ++- 6 files changed, 36 insertions(+), 6 deletions(-) create mode 100644 packages/Avalonia/AvaloniaItemSchema.xaml diff --git a/packages/Avalonia/Avalonia.csproj b/packages/Avalonia/Avalonia.csproj index 2c5a09bee7..cd3ce9adcd 100644 --- a/packages/Avalonia/Avalonia.csproj +++ b/packages/Avalonia/Avalonia.csproj @@ -41,6 +41,10 @@ true build\ + + true + build\ + diff --git a/packages/Avalonia/AvaloniaBuildTasks.props b/packages/Avalonia/AvaloniaBuildTasks.props index 30bafa37ee..8b452c7890 100644 --- a/packages/Avalonia/AvaloniaBuildTasks.props +++ b/packages/Avalonia/AvaloniaBuildTasks.props @@ -1,3 +1,12 @@ - + + + + + + + %(Filename) + Code + + diff --git a/packages/Avalonia/AvaloniaBuildTasks.targets b/packages/Avalonia/AvaloniaBuildTasks.targets index 537495fcad..6a4db38b28 100644 --- a/packages/Avalonia/AvaloniaBuildTasks.targets +++ b/packages/Avalonia/AvaloniaBuildTasks.targets @@ -31,9 +31,12 @@ + DependsOnTargets="$(BuildAvaloniaResourcesDependsOn)"> + + + + + + + + + + + + diff --git a/src/Avalonia.Build.Tasks/GenerateAvaloniaResourcesTask.cs b/src/Avalonia.Build.Tasks/GenerateAvaloniaResourcesTask.cs index 406abe6f99..ae2bf99d1e 100644 --- a/src/Avalonia.Build.Tasks/GenerateAvaloniaResourcesTask.cs +++ b/src/Avalonia.Build.Tasks/GenerateAvaloniaResourcesTask.cs @@ -107,7 +107,7 @@ namespace Avalonia.Build.Tasks foreach (var s in sources.ToList()) { - if (s.Path.ToLowerInvariant().EndsWith(".xaml") || s.Path.ToLowerInvariant().EndsWith(".paml")) + if (s.Path.ToLowerInvariant().EndsWith(".xaml") || s.Path.ToLowerInvariant().EndsWith(".paml") || s.Path.ToLowerInvariant().EndsWith(".axaml")) { XamlFileInfo info; try @@ -150,7 +150,7 @@ namespace Avalonia.Build.Tasks BuildEngine.LogMessage($"GenerateAvaloniaResourcesTask -> Root: {Root}, {Resources?.Count()} resources, Output:{Output}", _reportImportance < MessageImportance.Low ? MessageImportance.High : _reportImportance); - foreach (var r in EmbeddedResources.Where(r => r.ItemSpec.EndsWith(".xaml") || r.ItemSpec.EndsWith(".paml"))) + foreach (var r in EmbeddedResources.Where(r => r.ItemSpec.EndsWith(".xaml") || r.ItemSpec.EndsWith(".paml") || r.ItemSpec.EndsWith(".axaml"))) BuildEngine.LogWarning(BuildEngineErrorCode.LegacyResmScheme, r.ItemSpec, "XAML file is packed using legacy EmbeddedResource/resm scheme, relative URIs won't work"); var resources = BuildResourceSources(); diff --git a/src/Avalonia.Build.Tasks/XamlCompilerTaskExecutor.cs b/src/Avalonia.Build.Tasks/XamlCompilerTaskExecutor.cs index 3b69109e68..30e8f120d7 100644 --- a/src/Avalonia.Build.Tasks/XamlCompilerTaskExecutor.cs +++ b/src/Avalonia.Build.Tasks/XamlCompilerTaskExecutor.cs @@ -25,7 +25,8 @@ namespace Avalonia.Build.Tasks public static partial class XamlCompilerTaskExecutor { static bool CheckXamlName(IResource r) => r.Name.ToLowerInvariant().EndsWith(".xaml") - || r.Name.ToLowerInvariant().EndsWith(".paml"); + || r.Name.ToLowerInvariant().EndsWith(".paml") + || r.Name.ToLowerInvariant().EndsWith(".axaml"); public class CompileResult { From 927692763ebcf5abca2cae4607ed34edb2f12e57 Mon Sep 17 00:00:00 2001 From: Nikita Tsukanov Date: Tue, 9 Jun 2020 18:11:33 +0300 Subject: [PATCH 10/72] More msbuild metadata --- packages/Avalonia/AvaloniaBuildTasks.props | 1 + packages/Avalonia/AvaloniaBuildTasks.targets | 1 + packages/Avalonia/AvaloniaItemSchema.xaml | 5 +++++ 3 files changed, 7 insertions(+) diff --git a/packages/Avalonia/AvaloniaBuildTasks.props b/packages/Avalonia/AvaloniaBuildTasks.props index 8b452c7890..21cc77a1ff 100644 --- a/packages/Avalonia/AvaloniaBuildTasks.props +++ b/packages/Avalonia/AvaloniaBuildTasks.props @@ -1,6 +1,7 @@ + diff --git a/packages/Avalonia/AvaloniaBuildTasks.targets b/packages/Avalonia/AvaloniaBuildTasks.targets index 6a4db38b28..68b54c0916 100644 --- a/packages/Avalonia/AvaloniaBuildTasks.targets +++ b/packages/Avalonia/AvaloniaBuildTasks.targets @@ -82,5 +82,6 @@ + diff --git a/packages/Avalonia/AvaloniaItemSchema.xaml b/packages/Avalonia/AvaloniaItemSchema.xaml index b103e69c4f..a51ea3c0be 100644 --- a/packages/Avalonia/AvaloniaItemSchema.xaml +++ b/packages/Avalonia/AvaloniaItemSchema.xaml @@ -10,4 +10,9 @@ + From 5fd0dfe0b390d2afe2fe3e653880d2f8be60fb93 Mon Sep 17 00:00:00 2001 From: Nikita Tsukanov Date: Tue, 9 Jun 2020 18:28:49 +0300 Subject: [PATCH 11/72] More metadata --- packages/Avalonia/AvaloniaBuildTasks.props | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/Avalonia/AvaloniaBuildTasks.props b/packages/Avalonia/AvaloniaBuildTasks.props index 21cc77a1ff..8f98f5424a 100644 --- a/packages/Avalonia/AvaloniaBuildTasks.props +++ b/packages/Avalonia/AvaloniaBuildTasks.props @@ -9,5 +9,9 @@ %(Filename) Code + + %(Filename) + Code + From 792405443c808fdaf16bd74ff022fc65338b6d48 Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Wed, 17 Jun 2020 16:43:15 -0300 Subject: [PATCH 12/72] put fields in the correct place. --- src/Avalonia.Controls/ProgressBar.cs | 27 +++++++++++---------------- 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/src/Avalonia.Controls/ProgressBar.cs b/src/Avalonia.Controls/ProgressBar.cs index cdbafb314f..42cad8acd3 100644 --- a/src/Avalonia.Controls/ProgressBar.cs +++ b/src/Avalonia.Controls/ProgressBar.cs @@ -1,7 +1,4 @@ - -using System; using Avalonia.Controls.Primitives; -using Avalonia.Data; using Avalonia.Layout; using Avalonia.Media; @@ -12,6 +9,14 @@ namespace Avalonia.Controls /// public class ProgressBar : RangeBase { + private Geometry _clipRect; + private double _Container2Width; + private double _ContainerWidth; + private double _containerAnimationStartPosition; + private double _containerAnimationEndPosition; + private double _container2AnimationStartPosition; + private double _container2AnimationEndPosition; + public static readonly StyledProperty IsIndeterminateProperty = AvaloniaProperty.Register(nameof(IsIndeterminate)); @@ -50,7 +55,7 @@ namespace Avalonia.Controls nameof(Container2Width), p => p.Container2Width, (p, o) => p.Container2Width = o); - + public static readonly DirectProperty ContainerWidthProperty = AvaloniaProperty.RegisterDirect( nameof(ContainerWidth), @@ -94,52 +99,42 @@ namespace Avalonia.Controls set => SetValue(OrientationProperty, value); } - private double _containerAnimationStartPosition; public double ContainerAnimationStartPosition { get => _containerAnimationStartPosition; set => SetAndRaise(ContainerAnimationStartPositionProperty, ref _containerAnimationStartPosition, value); } - private double _containerAnimationEndPosition; public double ContainerAnimationEndPosition { get => _containerAnimationEndPosition; set => SetAndRaise(ContainerAnimationEndPositionProperty, ref _containerAnimationEndPosition, value); } - private double _container2AnimationStartPosition; public double Container2AnimationStartPosition { get => _container2AnimationStartPosition; set => SetAndRaise(Container2AnimationStartPositionProperty, ref _container2AnimationStartPosition, value); } - - - - private double _Container2Width; public double Container2Width { get => _Container2Width; set => SetAndRaise(Container2WidthProperty, ref _Container2Width, value); } - private double _ContainerWidth; public double ContainerWidth { get => _ContainerWidth; set => SetAndRaise(ContainerWidthProperty, ref _ContainerWidth, value); } - private double _container2AnimationEndPosition; public double Container2AnimationEndPosition { get => _container2AnimationEndPosition; set => SetAndRaise(Container2AnimationEndPositionProperty, ref _container2AnimationEndPosition, value); } - - private Geometry _clipRect; + public Geometry ClipRect { get => _clipRect; @@ -192,7 +187,7 @@ namespace Avalonia.Controls ContainerAnimationStartPosition = barIndicatorWidth * -1.8; // Position at -180% ContainerAnimationEndPosition = barIndicatorWidth * 3.0; // Position at 300% - + Container2AnimationStartPosition = barIndicatorWidth2 * -1.5; // Position at -150% Container2AnimationEndPosition = barIndicatorWidth2 * 1.66; // Position at 166% From ea8609d5bd2f36483433a41dd77bda2f4c948369 Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Wed, 17 Jun 2020 18:52:12 -0300 Subject: [PATCH 13/72] take advantage of border clipping. --- src/Avalonia.Themes.Fluent/ProgressBar.xaml | 28 ++++++++++----------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/Avalonia.Themes.Fluent/ProgressBar.xaml b/src/Avalonia.Themes.Fluent/ProgressBar.xaml index cd801f9261..e60029a89a 100644 --- a/src/Avalonia.Themes.Fluent/ProgressBar.xaml +++ b/src/Avalonia.Themes.Fluent/ProgressBar.xaml @@ -2,7 +2,7 @@ - + @@ -17,15 +17,15 @@ - - + + - + - - + + @@ -83,7 +83,7 @@ - - - - - - - - From 72fb2dd4b57915dedfd9f2c2e6806416141ab756 Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Wed, 17 Jun 2020 19:11:12 -0300 Subject: [PATCH 16/72] use panel instead of grid. --- src/Avalonia.Themes.Fluent/ProgressBar.xaml | 28 ++++++++++----------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/src/Avalonia.Themes.Fluent/ProgressBar.xaml b/src/Avalonia.Themes.Fluent/ProgressBar.xaml index 6e2b4138b3..77a1dc0e25 100644 --- a/src/Avalonia.Themes.Fluent/ProgressBar.xaml +++ b/src/Avalonia.Themes.Fluent/ProgressBar.xaml @@ -17,18 +17,16 @@ - - - - + + + - - + + - - - + + @@ -57,30 +55,30 @@ - - - - - - + + From c3f02f18ae20bdc870c4acf91f9ff84b78ae2640 Mon Sep 17 00:00:00 2001 From: Max Katz Date: Tue, 23 Jun 2020 02:47:52 -0400 Subject: [PATCH 25/72] Fluent HighVisibility focus adorner --- src/Avalonia.Themes.Fluent/FocusAdorner.xaml | 44 +++++++++++++++----- 1 file changed, 34 insertions(+), 10 deletions(-) diff --git a/src/Avalonia.Themes.Fluent/FocusAdorner.xaml b/src/Avalonia.Themes.Fluent/FocusAdorner.xaml index 2d5e369573..21e6ef90b6 100644 --- a/src/Avalonia.Themes.Fluent/FocusAdorner.xaml +++ b/src/Avalonia.Themes.Fluent/FocusAdorner.xaml @@ -1,10 +1,34 @@ - + + + 0 + 2 + 1 + + + + + + + + From 4da5f436f1e17f7b7ee618b97c2d43d2684a6b2c Mon Sep 17 00:00:00 2001 From: Max Katz Date: Tue, 23 Jun 2020 03:11:54 -0400 Subject: [PATCH 26/72] Allow to set DottedLineFocusAdorner only per Window to match WinUI --- src/Avalonia.Themes.Fluent/FocusAdorner.xaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Avalonia.Themes.Fluent/FocusAdorner.xaml b/src/Avalonia.Themes.Fluent/FocusAdorner.xaml index 21e6ef90b6..f20dc2e650 100644 --- a/src/Avalonia.Themes.Fluent/FocusAdorner.xaml +++ b/src/Avalonia.Themes.Fluent/FocusAdorner.xaml @@ -21,7 +21,7 @@ -