From bd6d61c1724f16eae22ed8c117b17ec27923f19e Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Sat, 30 May 2020 13:06:36 -0300 Subject: [PATCH 01/17] initial test of styling menus and context menus. --- src/Avalonia.Themes.Fluent/ContextMenu.xaml | 37 +++++++++++---------- src/Avalonia.Themes.Fluent/Menu.xaml | 2 +- src/Avalonia.Themes.Fluent/MenuItem.xaml | 37 ++++++++++++++++----- 3 files changed, 50 insertions(+), 26 deletions(-) diff --git a/src/Avalonia.Themes.Fluent/ContextMenu.xaml b/src/Avalonia.Themes.Fluent/ContextMenu.xaml index 75f8f7c23d..9a583e2e30 100644 --- a/src/Avalonia.Themes.Fluent/ContextMenu.xaml +++ b/src/Avalonia.Themes.Fluent/ContextMenu.xaml @@ -1,22 +1,25 @@ \ No newline at end of file + diff --git a/src/Avalonia.Themes.Fluent/MenuItem.xaml b/src/Avalonia.Themes.Fluent/MenuItem.xaml index 314416cda0..d2586c6aa8 100644 --- a/src/Avalonia.Themes.Fluent/MenuItem.xaml +++ b/src/Avalonia.Themes.Fluent/MenuItem.xaml @@ -2,13 +2,23 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:conv="clr-namespace:Avalonia.Controls.Converters;assembly=Avalonia.Controls" xmlns:sys="clr-namespace:System;assembly=netstandard"> + + + + + + + + + + 12,9,12,12 - - - - - - - - - - - + - - - + From d8d19dd75abfdb4e5bbda2a65d7f56597361288f Mon Sep 17 00:00:00 2001 From: Max Katz Date: Fri, 12 Jun 2020 04:51:01 -0400 Subject: [PATCH 10/17] Initial Fluent NumericUpDown --- src/Avalonia.Themes.Fluent/NumericUpDown.xaml | 52 +++++++++++++------ 1 file changed, 37 insertions(+), 15 deletions(-) diff --git a/src/Avalonia.Themes.Fluent/NumericUpDown.xaml b/src/Avalonia.Themes.Fluent/NumericUpDown.xaml index 24cbb62908..08de50c6e3 100644 --- a/src/Avalonia.Themes.Fluent/NumericUpDown.xaml +++ b/src/Avalonia.Themes.Fluent/NumericUpDown.xaml @@ -1,38 +1,60 @@ - + + + + + + + + + + - - \ No newline at end of file + + From 0ac2468981bfefbaf3cfb0dc91f7733c7f7bbe00 Mon Sep 17 00:00:00 2001 From: Dariusz Komosinski Date: Sun, 14 Jun 2020 22:27:12 +0200 Subject: [PATCH 11/17] Fix typo in Track that was breaking layout for inverse horizontal tracks. --- src/Avalonia.Controls/Primitives/Track.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Avalonia.Controls/Primitives/Track.cs b/src/Avalonia.Controls/Primitives/Track.cs index 1db47a13e7..c91adaa26e 100644 --- a/src/Avalonia.Controls/Primitives/Track.cs +++ b/src/Avalonia.Controls/Primitives/Track.cs @@ -259,7 +259,7 @@ namespace Avalonia.Controls.Primitives CoerceLength(ref increaseButtonLength, arrangeSize.Width); CoerceLength(ref thumbLength, arrangeSize.Width); - offset = offset.WithY(isDirectionReversed ? increaseButtonLength + thumbLength : 0.0); + offset = offset.WithX(isDirectionReversed ? increaseButtonLength + thumbLength : 0.0); pieceSize = pieceSize.WithWidth(decreaseButtonLength); if (DecreaseButton != null) From 11190042ed258bf001ddf984336b5ffa2dc06f1e Mon Sep 17 00:00:00 2001 From: Max Katz Date: Sun, 14 Jun 2020 17:08:43 -0400 Subject: [PATCH 12/17] Add missed brushes for Fluent theme --- src/Avalonia.Themes.Fluent/Accents/BaseDark.xaml | 3 +++ src/Avalonia.Themes.Fluent/Accents/BaseLight.xaml | 3 +++ 2 files changed, 6 insertions(+) diff --git a/src/Avalonia.Themes.Fluent/Accents/BaseDark.xaml b/src/Avalonia.Themes.Fluent/Accents/BaseDark.xaml index 44318ffa8f..0bea6c5781 100644 --- a/src/Avalonia.Themes.Fluent/Accents/BaseDark.xaml +++ b/src/Avalonia.Themes.Fluent/Accents/BaseDark.xaml @@ -138,6 +138,9 @@ + + + diff --git a/src/Avalonia.Themes.Fluent/Accents/BaseLight.xaml b/src/Avalonia.Themes.Fluent/Accents/BaseLight.xaml index e43a7ab4e7..ef296faa60 100644 --- a/src/Avalonia.Themes.Fluent/Accents/BaseLight.xaml +++ b/src/Avalonia.Themes.Fluent/Accents/BaseLight.xaml @@ -138,6 +138,9 @@ + + + From 0d685ac7d6d5570c691c4278fcb6f93c51306748 Mon Sep 17 00:00:00 2001 From: Max Katz Date: Mon, 15 Jun 2020 02:11:33 -0400 Subject: [PATCH 13/17] Add :pressed :open :icon pseudoclasses to MenuItem --- src/Avalonia.Controls/MenuItem.cs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/Avalonia.Controls/MenuItem.cs b/src/Avalonia.Controls/MenuItem.cs index b08519963b..912abc6de3 100644 --- a/src/Avalonia.Controls/MenuItem.cs +++ b/src/Avalonia.Controls/MenuItem.cs @@ -105,6 +105,7 @@ namespace Avalonia.Controls static MenuItem() { SelectableMixin.Attach(IsSelectedProperty); + PressedMixin.Attach(); CommandProperty.Changed.Subscribe(CommandChanged); FocusableProperty.OverrideDefaultValue(true); HeaderProperty.Changed.AddClassHandler((x, e) => x.HeaderChanged(e)); @@ -534,11 +535,13 @@ namespace Avalonia.Controls if (oldValue != null) { LogicalChildren.Remove(oldValue); + PseudoClasses.Remove(":icon"); } if (newValue != null) { LogicalChildren.Add(newValue); + PseudoClasses.Add(":icon"); } } @@ -566,11 +569,13 @@ namespace Avalonia.Controls { RaiseEvent(new RoutedEventArgs(SubmenuOpenedEvent)); IsSelected = true; + PseudoClasses.Add(":open"); } else { CloseSubmenus(); SelectedIndex = -1; + PseudoClasses.Remove(":open"); } } From edb7768ca269be2687bb796397c801fb54bb29b4 Mon Sep 17 00:00:00 2001 From: Max Katz Date: Mon, 15 Jun 2020 02:11:42 -0400 Subject: [PATCH 14/17] Some MenuItem theme adjustments --- .../Accents/FluentControlResourcesDark.xaml | 56 +++- .../Accents/FluentControlResourcesLight.xaml | 54 +++- src/Avalonia.Themes.Fluent/Common.xaml | 6 + src/Avalonia.Themes.Fluent/ContextMenu.xaml | 58 +++- src/Avalonia.Themes.Fluent/Menu.xaml | 26 +- src/Avalonia.Themes.Fluent/MenuItem.xaml | 253 ++++++++++++------ src/Avalonia.Themes.Fluent/Separator.xaml | 12 +- 7 files changed, 351 insertions(+), 114 deletions(-) create mode 100644 src/Avalonia.Themes.Fluent/Common.xaml diff --git a/src/Avalonia.Themes.Fluent/Accents/FluentControlResourcesDark.xaml b/src/Avalonia.Themes.Fluent/Accents/FluentControlResourcesDark.xaml index cc35de185d..467f1f4ede 100644 --- a/src/Avalonia.Themes.Fluent/Accents/FluentControlResourcesDark.xaml +++ b/src/Avalonia.Themes.Fluent/Accents/FluentControlResourcesDark.xaml @@ -251,13 +251,56 @@ - 1 + 1 + 32 + 0,0 + + 12,0,0,0 + + 12,4,12,4 + + + + + + + + + + + + + + + + + + + + + + 11,9,11,10 11,4,11,7 1 - + + --> + --> + diff --git a/src/Avalonia.Themes.Fluent/Accents/FluentControlResourcesLight.xaml b/src/Avalonia.Themes.Fluent/Accents/FluentControlResourcesLight.xaml index edbf68951f..a85b40893d 100644 --- a/src/Avalonia.Themes.Fluent/Accents/FluentControlResourcesLight.xaml +++ b/src/Avalonia.Themes.Fluent/Accents/FluentControlResourcesLight.xaml @@ -250,14 +250,57 @@ - 1 + 1 + 32 + 0,0 + + 12,0,0,0 + + 12,4,12,4 + + + + + + + + + + + + + + + + + + + + + 11,9,11,10 11,4,11,7 1 - + + --> + --> diff --git a/src/Avalonia.Themes.Fluent/Common.xaml b/src/Avalonia.Themes.Fluent/Common.xaml new file mode 100644 index 0000000000..e09e39d7cb --- /dev/null +++ b/src/Avalonia.Themes.Fluent/Common.xaml @@ -0,0 +1,6 @@ + + + diff --git a/src/Avalonia.Themes.Fluent/ContextMenu.xaml b/src/Avalonia.Themes.Fluent/ContextMenu.xaml index 9a583e2e30..44783a8dea 100644 --- a/src/Avalonia.Themes.Fluent/ContextMenu.xaml +++ b/src/Avalonia.Themes.Fluent/ContextMenu.xaml @@ -1,24 +1,60 @@ - - - - + + + + + + - + + - + + + + + + + + + + + + diff --git a/src/Avalonia.Themes.Fluent/Separator.xaml b/src/Avalonia.Themes.Fluent/Separator.xaml index cf0db16ee6..dc968fe86c 100644 --- a/src/Avalonia.Themes.Fluent/Separator.xaml +++ b/src/Avalonia.Themes.Fluent/Separator.xaml @@ -4,17 +4,15 @@ - - - From dde9bebab1dd7a682b7758a7ef3eb47a04364374 Mon Sep 17 00:00:00 2001 From: ahopper Date: Mon, 15 Jun 2020 08:42:10 +0100 Subject: [PATCH 15/17] fix non zero minimum on slider --- src/Avalonia.Controls/Slider.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Avalonia.Controls/Slider.cs b/src/Avalonia.Controls/Slider.cs index 64378a4eb2..fe1a4f5ac1 100644 --- a/src/Avalonia.Controls/Slider.cs +++ b/src/Avalonia.Controls/Slider.cs @@ -201,7 +201,7 @@ namespace Avalonia.Controls var invert = orient ? 0 : 1; var calcVal = Math.Abs(invert - logicalPos); var range = Maximum - Minimum; - var finalValue = calcVal * range; + var finalValue = calcVal * range + Minimum; Value = IsSnapToTickEnabled ? SnapToTick(finalValue) : finalValue; } From 752398188b3a83e50f6b5f3eb406b2f0abd4f76b Mon Sep 17 00:00:00 2001 From: Jumar Macato Date: Mon, 15 Jun 2020 06:06:43 -0400 Subject: [PATCH 16/17] Fix scroll events for legacy X11 --- src/Avalonia.X11/XI2Manager.cs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/Avalonia.X11/XI2Manager.cs b/src/Avalonia.X11/XI2Manager.cs index 0734532d92..448635332c 100644 --- a/src/Avalonia.X11/XI2Manager.cs +++ b/src/Avalonia.X11/XI2Manager.cs @@ -237,6 +237,22 @@ namespace Avalonia.X11 RawPointerEventType.Move, ev.Position, ev.Modifiers)); } + if (ev.Type == XiEventType.XI_ButtonPress && ev.Button >= 4 && ev.Button <= 7 && !ev.Emulated) + { + Vector? scrollDelta = ev.Button switch + { + 4 => new Vector(0, 1), + 5 => new Vector(0, -1), + 6 => new Vector(1, 0), + 7 => new Vector(-1, 0), + _ => null + }; + + if (scrollDelta.HasValue) + client.ScheduleXI2Input(new RawMouseWheelEventArgs(client.MouseDevice, ev.Timestamp, + client.InputRoot, ev.Position, scrollDelta.Value, ev.Modifiers)); + } + if (ev.Type == XiEventType.XI_ButtonPress || ev.Type == XiEventType.XI_ButtonRelease) { var down = ev.Type == XiEventType.XI_ButtonPress; From c50bbd92011be07e4b5116690f86d2a495dc3664 Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Mon, 15 Jun 2020 10:34:04 -0300 Subject: [PATCH 17/17] multi-touch enabled by default. --- src/Avalonia.X11/XI2Manager.cs | 2 +- src/Windows/Avalonia.Win32/WindowImpl.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Avalonia.X11/XI2Manager.cs b/src/Avalonia.X11/XI2Manager.cs index 448635332c..4e44f55fe0 100644 --- a/src/Avalonia.X11/XI2Manager.cs +++ b/src/Avalonia.X11/XI2Manager.cs @@ -97,7 +97,7 @@ namespace Avalonia.X11 { _platform = platform; _x11 = platform.Info; - _multitouch = platform.Options?.EnableMultiTouch ?? false; + _multitouch = platform.Options?.EnableMultiTouch ?? true; var devices =(XIDeviceInfo*) XIQueryDevice(_x11.Display, (int)XiPredefinedDeviceId.XIAllMasterDevices, out int num); for (var c = 0; c < num; c++) diff --git a/src/Windows/Avalonia.Win32/WindowImpl.cs b/src/Windows/Avalonia.Win32/WindowImpl.cs index 0cf5a73b9f..81340fcde7 100644 --- a/src/Windows/Avalonia.Win32/WindowImpl.cs +++ b/src/Windows/Avalonia.Win32/WindowImpl.cs @@ -577,7 +577,7 @@ namespace Avalonia.Win32 Handle = new PlatformHandle(_hwnd, PlatformConstants.WindowHandleType); - _multitouch = Win32Platform.Options.EnableMultitouch ?? false; + _multitouch = Win32Platform.Options.EnableMultitouch ?? true; if (_multitouch) {