From d7904b34cd7995935b4dce91bc057c5480973031 Mon Sep 17 00:00:00 2001 From: affederaffe <68356204+affederaffe@users.noreply.github.com> Date: Thu, 29 Dec 2022 20:55:14 +0100 Subject: [PATCH 001/122] Use Tmds.DBus.Protocol --- .gitmodules | 3 + Avalonia.Desktop.slnf | 7 +- Avalonia.sln | 7 + NuGet.Config | 1 + .../AppMenuRegistrar.DBus.cs | 176 ++++ .../Avalonia.FreeDesktop.csproj | 3 +- src/Avalonia.FreeDesktop/DBus.DBus.cs | 643 ++++++++++++ src/Avalonia.FreeDesktop/DBusFileChooser.cs | 32 - src/Avalonia.FreeDesktop/DBusHelper.cs | 54 +- .../DBusIme/DBusTextInputMethodBase.cs | 58 +- .../DBusIme/Fcitx/Fcitx.DBus.cs | 627 ++++++++++++ .../DBusIme/Fcitx/FcitxDBus.cs | 69 -- .../DBusIme/Fcitx/FcitxICWrapper.cs | 32 +- .../DBusIme/Fcitx/FcitxX11TextInputMethod.cs | 47 +- .../DBusIme/IBus/IBus.DBus.cs | 513 ++++++++++ .../DBusIme/IBus/IBusDBus.cs | 52 - .../DBusIme/IBus/IBusEnums.cs | 2 +- .../DBusIme/IBus/IBusX11TextInputMethod.cs | 44 +- .../DBusIme/X11DBusImeHelper.cs | 25 +- src/Avalonia.FreeDesktop/DBusMenu.DBus.cs | 463 +++++++++ src/Avalonia.FreeDesktop/DBusMenu.cs | 56 -- src/Avalonia.FreeDesktop/DBusMenuExporter.cs | 432 ++++---- src/Avalonia.FreeDesktop/DBusRequest.cs | 16 - src/Avalonia.FreeDesktop/DBusSystemDialog.cs | 107 +- src/Avalonia.FreeDesktop/DBusTrayIconImpl.cs | 415 ++++---- .../FreeDesktopPortalDesktop.DBus.cs | 937 ++++++++++++++++++ .../StatusNotifierWatcher.DBus.cs | 351 +++++++ src/Avalonia.X11/X11Window.cs | 6 +- src/Linux/Tmds.DBus | 1 + 29 files changed, 4272 insertions(+), 907 deletions(-) create mode 100644 src/Avalonia.FreeDesktop/AppMenuRegistrar.DBus.cs create mode 100644 src/Avalonia.FreeDesktop/DBus.DBus.cs delete mode 100644 src/Avalonia.FreeDesktop/DBusFileChooser.cs create mode 100644 src/Avalonia.FreeDesktop/DBusIme/Fcitx/Fcitx.DBus.cs delete mode 100644 src/Avalonia.FreeDesktop/DBusIme/Fcitx/FcitxDBus.cs create mode 100644 src/Avalonia.FreeDesktop/DBusIme/IBus/IBus.DBus.cs delete mode 100644 src/Avalonia.FreeDesktop/DBusIme/IBus/IBusDBus.cs create mode 100644 src/Avalonia.FreeDesktop/DBusMenu.DBus.cs delete mode 100644 src/Avalonia.FreeDesktop/DBusMenu.cs delete mode 100644 src/Avalonia.FreeDesktop/DBusRequest.cs create mode 100644 src/Avalonia.FreeDesktop/FreeDesktopPortalDesktop.DBus.cs create mode 100644 src/Avalonia.FreeDesktop/StatusNotifierWatcher.DBus.cs create mode 160000 src/Linux/Tmds.DBus diff --git a/.gitmodules b/.gitmodules index 032bc879cc..16bc977251 100644 --- a/.gitmodules +++ b/.gitmodules @@ -7,3 +7,6 @@ [submodule "nukebuild/il-repack"] path = nukebuild/il-repack url = https://github.com/Gillibald/il-repack +[submodule "Tmds.DBus"] + path = src/Linux/Tmds.DBus + url = https://github.com/affederaffe/Tmds.DBus diff --git a/Avalonia.Desktop.slnf b/Avalonia.Desktop.slnf index 3fa8e969c8..72eb13d0a9 100644 --- a/Avalonia.Desktop.slnf +++ b/Avalonia.Desktop.slnf @@ -7,9 +7,9 @@ "samples\\ControlCatalog\\ControlCatalog.csproj", "samples\\IntegrationTestApp\\IntegrationTestApp.csproj", "samples\\MiniMvvm\\MiniMvvm.csproj", + "samples\\ReactiveUIDemo\\ReactiveUIDemo.csproj", "samples\\SampleControls\\ControlSamples.csproj", "samples\\Sandbox\\Sandbox.csproj", - "samples\\ReactiveUIDemo\\ReactiveUIDemo.csproj", "src\\Avalonia.Base\\Avalonia.Base.csproj", "src\\Avalonia.Build.Tasks\\Avalonia.Build.Tasks.csproj", "src\\Avalonia.Controls.ColorPicker\\Avalonia.Controls.ColorPicker.csproj", @@ -31,15 +31,16 @@ "src\\Avalonia.Themes.Simple\\Avalonia.Themes.Simple.csproj", "src\\Avalonia.X11\\Avalonia.X11.csproj", "src\\Linux\\Avalonia.LinuxFramebuffer\\Avalonia.LinuxFramebuffer.csproj", + "src\\Linux\\Tmds.DBus\\src\\Tmds.DBus.Protocol\\Tmds.DBus.Protocol.csproj", "src\\Markup\\Avalonia.Markup.Xaml.Loader\\Avalonia.Markup.Xaml.Loader.csproj", "src\\Markup\\Avalonia.Markup.Xaml\\Avalonia.Markup.Xaml.csproj", "src\\Markup\\Avalonia.Markup\\Avalonia.Markup.csproj", "src\\Skia\\Avalonia.Skia\\Avalonia.Skia.csproj", + "src\\tools\\DevAnalyzers\\DevAnalyzers.csproj", + "src\\tools\\DevGenerators\\DevGenerators.csproj", "src\\Windows\\Avalonia.Direct2D1\\Avalonia.Direct2D1.csproj", "src\\Windows\\Avalonia.Win32.Interop\\Avalonia.Win32.Interop.csproj", "src\\Windows\\Avalonia.Win32\\Avalonia.Win32.csproj", - "src\\tools\\DevAnalyzers\\DevAnalyzers.csproj", - "src\\tools\\DevGenerators\\DevGenerators.csproj", "tests\\Avalonia.Base.UnitTests\\Avalonia.Base.UnitTests.csproj", "tests\\Avalonia.Benchmarks\\Avalonia.Benchmarks.csproj", "tests\\Avalonia.Controls.DataGrid.UnitTests\\Avalonia.Controls.DataGrid.UnitTests.csproj", diff --git a/Avalonia.sln b/Avalonia.sln index fc42a5d63b..e399483896 100644 --- a/Avalonia.sln +++ b/Avalonia.sln @@ -231,6 +231,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ControlCatalog.Browser.Blaz EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ReactiveUIDemo", "samples\ReactiveUIDemo\ReactiveUIDemo.csproj", "{75C47156-C5D8-44BC-A5A7-E8657C2248D6}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tmds.DBus.Protocol", "src\Linux\Tmds.DBus\src\Tmds.DBus.Protocol\Tmds.DBus.Protocol.csproj", "{29E25263-3CC3-4D55-A042-00BA136867D4}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -542,6 +544,10 @@ Global {75C47156-C5D8-44BC-A5A7-E8657C2248D6}.Debug|Any CPU.Build.0 = Debug|Any CPU {75C47156-C5D8-44BC-A5A7-E8657C2248D6}.Release|Any CPU.ActiveCfg = Release|Any CPU {75C47156-C5D8-44BC-A5A7-E8657C2248D6}.Release|Any CPU.Build.0 = Release|Any CPU + {29E25263-3CC3-4D55-A042-00BA136867D4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {29E25263-3CC3-4D55-A042-00BA136867D4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {29E25263-3CC3-4D55-A042-00BA136867D4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {29E25263-3CC3-4D55-A042-00BA136867D4}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -606,6 +612,7 @@ Global {15B93A4C-1B46-43F6-B534-7B25B6E99932} = {9B9E3891-2366-4253-A952-D08BCEB71098} {90B08091-9BBD-4362-B712-E9F2CC62B218} = {9B9E3891-2366-4253-A952-D08BCEB71098} {75C47156-C5D8-44BC-A5A7-E8657C2248D6} = {9B9E3891-2366-4253-A952-D08BCEB71098} + {29E25263-3CC3-4D55-A042-00BA136867D4} = {86C53C40-57AA-45B8-AD42-FAE0EFDF0F2B} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {87366D66-1391-4D90-8999-95A620AD786A} diff --git a/NuGet.Config b/NuGet.Config index 7d2bd8abd2..7a9dd7993c 100644 --- a/NuGet.Config +++ b/NuGet.Config @@ -6,5 +6,6 @@ + diff --git a/src/Avalonia.FreeDesktop/AppMenuRegistrar.DBus.cs b/src/Avalonia.FreeDesktop/AppMenuRegistrar.DBus.cs new file mode 100644 index 0000000000..a45d1642fc --- /dev/null +++ b/src/Avalonia.FreeDesktop/AppMenuRegistrar.DBus.cs @@ -0,0 +1,176 @@ +using System; +using System.Threading.Tasks; + +using Tmds.DBus.Protocol; + + +namespace Avalonia.FreeDesktop +{ + internal class Registrar : AppMenuRegistrarObject + { + private const string Interface = "com.canonical.AppMenu.Registrar"; + + public Registrar(RegistrarService service, ObjectPath path) : base(service, path) { } + + public Task RegisterWindowAsync(uint windowId, ObjectPath menuObjectPath) + { + return Connection.CallMethodAsync(CreateMessage()); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + signature: "uo", + member: "RegisterWindow", + flags: MessageFlags.NoReplyExpected); + writer.WriteUInt32(windowId); + writer.WriteObjectPath(menuObjectPath); + return writer.CreateMessage(); + } + } + + public Task UnregisterWindowAsync(uint windowId) + { + return Connection.CallMethodAsync(CreateMessage()); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + signature: "u", + member: "UnregisterWindow"); + writer.WriteUInt32(windowId); + return writer.CreateMessage(); + } + } + + public Task<(string Service, ObjectPath MenuObjectPath)> GetMenuForWindowAsync(uint windowId) + { + return Connection.CallMethodAsync(CreateMessage(), (Message m, object? s) => ReadMessage_so(m, (AppMenuRegistrarObject)s!), this); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + signature: "u", + member: "GetMenuForWindow"); + writer.WriteUInt32(windowId); + return writer.CreateMessage(); + } + } + } + + internal class RegistrarService + { + public RegistrarService(Connection connection, string destination) + => (Connection, Destination) = (connection, destination); + + public Connection Connection { get; } + public string Destination { get; } + public Registrar CreateRegistrar(string path) => new Registrar(this, path); + } + + internal class AppMenuRegistrarObject + { + protected AppMenuRegistrarObject(RegistrarService service, ObjectPath path) + => (Service, Path) = (service, path); + + public RegistrarService Service { get; } + public ObjectPath Path { get; } + protected Connection Connection => Service.Connection; + + protected MessageBuffer CreateGetPropertyMessage(string @interface, string property) + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + "org.freedesktop.DBus.Properties", + signature: "ss", + member: "Get"); + writer.WriteString(@interface); + writer.WriteString(property); + return writer.CreateMessage(); + } + + protected MessageBuffer CreateGetAllPropertiesMessage(string @interface) + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + "org.freedesktop.DBus.Properties", + signature: "s", + member: "GetAll"); + writer.WriteString(@interface); + return writer.CreateMessage(); + } + + protected ValueTask WatchPropertiesChangedAsync(string @interface, + MessageValueReader> reader, Action> handler, + bool emitOnCapturedContext) + { + var rule = new MatchRule + { + Type = MessageType.Signal, + Sender = Service.Destination, + Path = Path, + Interface = "org.freedesktop.DBus.Properties", + Member = "PropertiesChanged", + Arg0 = @interface + }; + return Connection.AddMatchAsync(rule, reader, + (Exception? ex, PropertyChanges changes, object? rs, object? hs) => + ((Action>)hs!).Invoke(ex, changes), + this, handler, emitOnCapturedContext); + } + + public ValueTask WatchSignalAsync(string sender, string @interface, ObjectPath path, string signal, + MessageValueReader reader, Action handler, bool emitOnCapturedContext) + { + var rule = new MatchRule + { + Type = MessageType.Signal, + Sender = sender, + Path = path, + Member = signal, + Interface = @interface + }; + return Connection.AddMatchAsync(rule, reader, + (Exception? ex, TArg arg, object? rs, object? hs) => ((Action)hs!).Invoke(ex, arg), + this, handler, emitOnCapturedContext); + } + + public ValueTask WatchSignalAsync(string sender, string @interface, ObjectPath path, string signal, Action handler, + bool emitOnCapturedContext) + { + var rule = new MatchRule + { + Type = MessageType.Signal, + Sender = sender, + Path = path, + Member = signal, + Interface = @interface + }; + return Connection.AddMatchAsync(rule, (Message message, object? state) => null!, + (Exception? ex, object v, object? rs, object? hs) => ((Action)hs!).Invoke(ex), this, handler, emitOnCapturedContext); + } + + protected static (string, ObjectPath) ReadMessage_so(Message message, AppMenuRegistrarObject _) + { + var reader = message.GetBodyReader(); + var arg0 = reader.ReadString(); + var arg1 = reader.ReadObjectPath(); + return (arg0, arg1); + } + } +} diff --git a/src/Avalonia.FreeDesktop/Avalonia.FreeDesktop.csproj b/src/Avalonia.FreeDesktop/Avalonia.FreeDesktop.csproj index 3b1c6cc7b1..a33fa7b32d 100644 --- a/src/Avalonia.FreeDesktop/Avalonia.FreeDesktop.csproj +++ b/src/Avalonia.FreeDesktop/Avalonia.FreeDesktop.csproj @@ -12,7 +12,8 @@ - + + diff --git a/src/Avalonia.FreeDesktop/DBus.DBus.cs b/src/Avalonia.FreeDesktop/DBus.DBus.cs new file mode 100644 index 0000000000..4cf2b76b45 --- /dev/null +++ b/src/Avalonia.FreeDesktop/DBus.DBus.cs @@ -0,0 +1,643 @@ +using System; +using System.Collections.Generic; +using System.Threading.Tasks; + +using Tmds.DBus.Protocol; + + +namespace Avalonia.FreeDesktop +{ + internal record DBusProperties + { + public string[] Features { get; set; } = default!; + public string[] Interfaces { get; set; } = default!; + } + + internal class DBus : DBusObject + { + private const string Interface = "org.freedesktop.DBus"; + + public DBus(DBusService service, ObjectPath path) : base(service, path) { } + + public Task HelloAsync() + { + return Connection.CallMethodAsync(CreateMessage(), static (m, s) => ReadMessage_s(m, (DBusObject)s!), this); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + "Hello"); + return writer.CreateMessage(); + } + } + + public Task RequestNameAsync(string a0, uint a1) + { + return Connection.CallMethodAsync(CreateMessage(), static (m, s) => ReadMessage_u(m, (DBusObject)s!), this); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + signature: "su", + member: "RequestName"); + writer.WriteString(a0); + writer.WriteUInt32(a1); + return writer.CreateMessage(); + } + } + + public Task ReleaseNameAsync(string a0) + { + return Connection.CallMethodAsync(CreateMessage(), static (m, s) => ReadMessage_u(m, (DBusObject)s!), this); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + signature: "s", + member: "ReleaseName"); + writer.WriteString(a0); + return writer.CreateMessage(); + } + } + + public Task StartServiceByNameAsync(string a0, uint a1) + { + return Connection.CallMethodAsync(CreateMessage(), static (m, s) => ReadMessage_u(m, (DBusObject)s!), this); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + signature: "su", + member: "StartServiceByName"); + writer.WriteString(a0); + writer.WriteUInt32(a1); + return writer.CreateMessage(); + } + } + + public Task UpdateActivationEnvironmentAsync(Dictionary a0) + { + return Connection.CallMethodAsync(CreateMessage()); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + signature: "a{ss}", + member: "UpdateActivationEnvironment"); + writer.WriteDictionary(a0); + return writer.CreateMessage(); + } + } + + public Task NameHasOwnerAsync(string a0) + { + return Connection.CallMethodAsync(CreateMessage(), static (m, s) => ReadMessage_b(m, (DBusObject)s!), this); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + signature: "s", + member: "NameHasOwner"); + writer.WriteString(a0); + return writer.CreateMessage(); + } + } + + public Task ListNamesAsync() + { + return Connection.CallMethodAsync(CreateMessage(), static (m, s) => ReadMessage_as(m, (DBusObject)s!), this); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + "ListNames"); + return writer.CreateMessage(); + } + } + + public Task ListActivatableNamesAsync() + { + return Connection.CallMethodAsync(CreateMessage(), static (m, s) => ReadMessage_as(m, (DBusObject)s!), this); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + "ListActivatableNames"); + return writer.CreateMessage(); + } + } + + public Task AddMatchAsync(string a0) + { + return Connection.CallMethodAsync(CreateMessage()); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + signature: "s", + member: "AddMatch"); + writer.WriteString(a0); + return writer.CreateMessage(); + } + } + + public Task RemoveMatchAsync(string a0) + { + return Connection.CallMethodAsync(CreateMessage()); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + signature: "s", + member: "RemoveMatch"); + writer.WriteString(a0); + return writer.CreateMessage(); + } + } + + public Task GetNameOwnerAsync(string a0) + { + return Connection.CallMethodAsync(CreateMessage(), static (m, s) => ReadMessage_s(m, (DBusObject)s!), this); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + signature: "s", + member: "GetNameOwner"); + writer.WriteString(a0); + return writer.CreateMessage(); + } + } + + public Task ListQueuedOwnersAsync(string a0) + { + return Connection.CallMethodAsync(CreateMessage(), static (m, s) => ReadMessage_as(m, (DBusObject)s!), this); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + signature: "s", + member: "ListQueuedOwners"); + writer.WriteString(a0); + return writer.CreateMessage(); + } + } + + public Task GetConnectionUnixUserAsync(string a0) + { + return Connection.CallMethodAsync(CreateMessage(), static (m, s) => ReadMessage_u(m, (DBusObject)s!), this); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + signature: "s", + member: "GetConnectionUnixUser"); + writer.WriteString(a0); + return writer.CreateMessage(); + } + } + + public Task GetConnectionUnixProcessIDAsync(string a0) + { + return Connection.CallMethodAsync(CreateMessage(), static (m, s) => ReadMessage_u(m, (DBusObject)s!), this); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + signature: "s", + member: "GetConnectionUnixProcessID"); + writer.WriteString(a0); + return writer.CreateMessage(); + } + } + + public Task GetAdtAuditSessionDataAsync(string a0) + { + return Connection.CallMethodAsync(CreateMessage(), static (m, s) => ReadMessage_ay(m, (DBusObject)s!), this); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + signature: "s", + member: "GetAdtAuditSessionData"); + writer.WriteString(a0); + return writer.CreateMessage(); + } + } + + public Task GetConnectionSELinuxSecurityContextAsync(string a0) + { + return Connection.CallMethodAsync(CreateMessage(), static (m, s) => ReadMessage_ay(m, (DBusObject)s!), this); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + signature: "s", + member: "GetConnectionSELinuxSecurityContext"); + writer.WriteString(a0); + return writer.CreateMessage(); + } + } + + public Task ReloadConfigAsync() + { + return Connection.CallMethodAsync(CreateMessage()); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + "ReloadConfig"); + return writer.CreateMessage(); + } + } + + public Task GetIdAsync() + { + return Connection.CallMethodAsync(CreateMessage(), static (m, s) => ReadMessage_s(m, (DBusObject)s!), this); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + "GetId"); + return writer.CreateMessage(); + } + } + + public Task> GetConnectionCredentialsAsync(string a0) + { + return Connection.CallMethodAsync(CreateMessage(), static (m, s) => ReadMessage_aesv(m, (DBusObject)s!), this); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + signature: "s", + member: "GetConnectionCredentials"); + writer.WriteString(a0); + return writer.CreateMessage(); + } + } + + public ValueTask WatchNameOwnerChangedAsync(Action handler, bool emitOnCapturedContext = true) => + WatchSignalAsync(Service.Destination, Interface, Path, "NameOwnerChanged", static (m, s) => + ReadMessage_sss(m, (DBusObject)s!), handler, emitOnCapturedContext); + + public ValueTask WatchNameLostAsync(Action handler, bool emitOnCapturedContext = true) => + WatchSignalAsync(Service.Destination, Interface, Path, "NameLost", static (m, s) => + ReadMessage_s(m, (DBusObject)s!), handler, emitOnCapturedContext); + + public ValueTask WatchNameAcquiredAsync(Action handler, bool emitOnCapturedContext = true) => + WatchSignalAsync(Service.Destination, Interface, Path, "NameAcquired", static (m, s) => + ReadMessage_s(m, (DBusObject)s!), handler, emitOnCapturedContext); + + public Task SetFeaturesAsync(string[] value) + { + return Connection.CallMethodAsync(CreateMessage()); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + "org.freedesktop.DBus.Properties", + signature: "ssv", + member: "Set"); + writer.WriteString(Interface); + writer.WriteString("Features"); + writer.WriteSignature("as"); + writer.WriteArray(value); + return writer.CreateMessage(); + } + } + + public Task SetInterfacesAsync(string[] value) + { + return Connection.CallMethodAsync(CreateMessage()); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + "org.freedesktop.DBus.Properties", + signature: "ssv", + member: "Set"); + writer.WriteString(Interface); + writer.WriteString("Interfaces"); + writer.WriteSignature("as"); + writer.WriteArray(value); + return writer.CreateMessage(); + } + } + + public Task GetFeaturesAsync() => + Connection.CallMethodAsync(CreateGetPropertyMessage(Interface, "Features"), static (m, s) => + ReadMessage_v_as(m, (DBusObject)s!), this); + + public Task GetInterfacesAsync() => + Connection.CallMethodAsync(CreateGetPropertyMessage(Interface, "Interfaces"), static (m, s) => + ReadMessage_v_as(m, (DBusObject)s!), this); + + public Task GetPropertiesAsync() + { + return Connection.CallMethodAsync(CreateGetAllPropertiesMessage(Interface), static (m, s) => + ReadMessage(m, (DBusObject)s!), this); + + static DBusProperties ReadMessage(Message message, DBusObject _) + { + var reader = message.GetBodyReader(); + return ReadProperties(ref reader); + } + } + + public ValueTask WatchPropertiesChangedAsync(Action> handler, bool emitOnCapturedContext = true) + { + return base.WatchPropertiesChangedAsync(Interface, static (m, s) => + ReadMessage(m, (DBusObject)s!), handler, emitOnCapturedContext); + + static PropertyChanges ReadMessage(Message message, DBusObject _) + { + var reader = message.GetBodyReader(); + reader.ReadString(); // interface + List changed = new(); + return new PropertyChanges(ReadProperties(ref reader, changed), changed.ToArray(), ReadInvalidated(ref reader)); + } + + static string[] ReadInvalidated(ref Reader reader) + { + List? invalidated = null; + var headersEnd = reader.ReadArrayStart(DBusType.String); + while (reader.HasNext(headersEnd)) + { + invalidated ??= new List(); + var property = reader.ReadString(); + switch (property) + { + case "Features": + invalidated.Add("Features"); + break; + case "Interfaces": + invalidated.Add("Interfaces"); + break; + } + } + + return invalidated?.ToArray() ?? Array.Empty(); + } + } + + private static DBusProperties ReadProperties(ref Reader reader, List? changedList = null) + { + var props = new DBusProperties(); + var headersEnd = reader.ReadArrayStart(DBusType.Struct); + while (reader.HasNext(headersEnd)) + { + var property = reader.ReadString(); + switch (property) + { + case "Features": + reader.ReadSignature("as"); + props.Features = reader.ReadArray(); + changedList?.Add("Features"); + break; + case "Interfaces": + reader.ReadSignature("as"); + props.Interfaces = reader.ReadArray(); + changedList?.Add("Interfaces"); + break; + default: + reader.ReadVariant(); + break; + } + } + + return props; + } + } + + internal class DBusService + { + public DBusService(Connection connection, string destination) + => (Connection, Destination) = (connection, destination); + + public Connection Connection { get; } + public string Destination { get; } + public DBus CreateDBus(string path) => new(this, path); + } + + internal class DBusObject + { + protected DBusObject(DBusService service, ObjectPath path) + { + Service = service; + Path = path; + } + + public DBusService Service { get; } + public ObjectPath Path { get; } + protected Connection Connection => Service.Connection; + + protected MessageBuffer CreateGetPropertyMessage(string @interface, string property) + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + "org.freedesktop.DBus.Properties", + signature: "ss", + member: "Get"); + writer.WriteString(@interface); + writer.WriteString(property); + return writer.CreateMessage(); + } + + protected MessageBuffer CreateGetAllPropertiesMessage(string @interface) + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + "org.freedesktop.DBus.Properties", + signature: "s", + member: "GetAll"); + writer.WriteString(@interface); + return writer.CreateMessage(); + } + + protected ValueTask WatchPropertiesChangedAsync(string @interface, + MessageValueReader> reader, Action> handler, + bool emitOnCapturedContext) + { + var rule = new MatchRule + { + Type = MessageType.Signal, + Sender = Service.Destination, + Path = Path, + Interface = "org.freedesktop.DBus.Properties", + Member = "PropertiesChanged", + Arg0 = @interface + }; + return Connection.AddMatchAsync(rule, reader, static (ex, changes, _, hs) => + ((Action>)hs!).Invoke(ex, changes), this, handler, emitOnCapturedContext); + } + + public ValueTask WatchSignalAsync(string sender, string @interface, ObjectPath path, string signal, + MessageValueReader reader, Action handler, bool emitOnCapturedContext) + { + var rule = new MatchRule + { + Type = MessageType.Signal, + Sender = sender, + Path = path, + Member = signal, + Interface = @interface + }; + return Connection.AddMatchAsync(rule, reader, static (ex, arg, _, hs) => + ((Action)hs!).Invoke(ex, arg), this, handler, emitOnCapturedContext); + } + + public ValueTask WatchSignalAsync(string sender, string @interface, ObjectPath path, string signal, Action handler, + bool emitOnCapturedContext) + { + var rule = new MatchRule + { + Type = MessageType.Signal, + Sender = sender, + Path = path, + Member = signal, + Interface = @interface + }; + return Connection.AddMatchAsync(rule, static (_, _) => null!, static (ex, _, _, hs) => + ((Action)hs!).Invoke(ex), this, handler, emitOnCapturedContext); + } + + protected static string ReadMessage_s(Message message, DBusObject _) + { + var reader = message.GetBodyReader(); + return reader.ReadString(); + } + + protected static uint ReadMessage_u(Message message, DBusObject _) + { + var reader = message.GetBodyReader(); + return reader.ReadUInt32(); + } + + protected static bool ReadMessage_b(Message message, DBusObject _) + { + var reader = message.GetBodyReader(); + return reader.ReadBool(); + } + + protected static string[] ReadMessage_as(Message message, DBusObject _) + { + var reader = message.GetBodyReader(); + return reader.ReadArray(); + } + + protected static byte[] ReadMessage_ay(Message message, DBusObject _) + { + var reader = message.GetBodyReader(); + return reader.ReadArray(); + } + + protected static Dictionary ReadMessage_aesv(Message message, DBusObject _) + { + var reader = message.GetBodyReader(); + return reader.ReadDictionary(); + } + + protected static (string, string, string) ReadMessage_sss(Message message, DBusObject _) + { + var reader = message.GetBodyReader(); + var arg0 = reader.ReadString(); + var arg1 = reader.ReadString(); + var arg2 = reader.ReadString(); + return (arg0, arg1, arg2); + } + + protected static string[] ReadMessage_v_as(Message message, DBusObject _) + { + var reader = message.GetBodyReader(); + reader.ReadSignature("as"); + return reader.ReadArray(); + } + } +} diff --git a/src/Avalonia.FreeDesktop/DBusFileChooser.cs b/src/Avalonia.FreeDesktop/DBusFileChooser.cs deleted file mode 100644 index 24db614a02..0000000000 --- a/src/Avalonia.FreeDesktop/DBusFileChooser.cs +++ /dev/null @@ -1,32 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Threading.Tasks; -using Tmds.DBus; - -[assembly: InternalsVisibleTo(Connection.DynamicAssemblyName)] -namespace Avalonia.FreeDesktop -{ - [DBusInterface("org.freedesktop.portal.FileChooser")] - internal interface IFileChooser : IDBusObject - { - Task OpenFileAsync(string ParentWindow, string Title, IDictionary Options); - Task SaveFileAsync(string ParentWindow, string Title, IDictionary Options); - Task SaveFilesAsync(string ParentWindow, string Title, IDictionary Options); - Task GetAsync(string prop); - Task GetAllAsync(); - Task SetAsync(string prop, object val); - Task WatchPropertiesAsync(Action handler); - } - - [Dictionary] - internal class FileChooserProperties - { - public uint Version { get; set; } - } - - internal static class FileChooserExtensions - { - public static Task GetVersionAsync(this IFileChooser o) => o.GetAsync("version"); - } -} diff --git a/src/Avalonia.FreeDesktop/DBusHelper.cs b/src/Avalonia.FreeDesktop/DBusHelper.cs index ef99838208..e0445cc95c 100644 --- a/src/Avalonia.FreeDesktop/DBusHelper.cs +++ b/src/Avalonia.FreeDesktop/DBusHelper.cs @@ -1,51 +1,12 @@ using System; using System.Threading; using Avalonia.Logging; -using Avalonia.Threading; -using Tmds.DBus; +using Tmds.DBus.Protocol; namespace Avalonia.FreeDesktop { public static class DBusHelper { - /// - /// This class uses synchronous execution at DBus connection establishment stage - /// then switches to using AvaloniaSynchronizationContext - /// - private class DBusSyncContext : SynchronizationContext - { - private readonly object _lock = new(); - private SynchronizationContext? _ctx; - - public override void Post(SendOrPostCallback d, object? state) - { - lock (_lock) - { - if (_ctx is not null) - _ctx?.Post(d, state); - else - d(state); - } - } - - public override void Send(SendOrPostCallback d, object? state) - { - lock (_lock) - { - if (_ctx is not null) - _ctx?.Send(d, state); - else - d(state); - } - } - - public void Initialized() - { - lock (_lock) - _ctx = new AvaloniaSynchronizationContext(); - } - } - public static Connection? Connection { get; private set; } public static Connection? TryInitialize(string? dbusAddress = null) @@ -56,19 +17,14 @@ namespace Avalonia.FreeDesktop var oldContext = SynchronizationContext.Current; try { - - var dbusContext = new DBusSyncContext(); - SynchronizationContext.SetSynchronizationContext(dbusContext); - var conn = new Connection(new ClientConnectionOptions(dbusAddress ?? Address.Session) + var conn = new Connection(new ClientConnectionOptions(dbusAddress ?? Address.Session!) { - AutoConnect = false, - SynchronizationContext = dbusContext + AutoConnect = false }); + // Connect synchronously - conn.ConnectAsync().Wait(); + conn.ConnectAsync().GetAwaiter().GetResult(); - // Initialize a brand new sync-context - dbusContext.Initialized(); Connection = conn; } catch (Exception e) diff --git a/src/Avalonia.FreeDesktop/DBusIme/DBusTextInputMethodBase.cs b/src/Avalonia.FreeDesktop/DBusIme/DBusTextInputMethodBase.cs index 899288b4a8..c7bf530cfd 100644 --- a/src/Avalonia.FreeDesktop/DBusIme/DBusTextInputMethodBase.cs +++ b/src/Avalonia.FreeDesktop/DBusIme/DBusTextInputMethodBase.cs @@ -5,7 +5,7 @@ using System.Threading.Tasks; using Avalonia.Input.Raw; using Avalonia.Input.TextInput; using Avalonia.Logging; -using Tmds.DBus; +using Tmds.DBus.Protocol; namespace Avalonia.FreeDesktop.DBusIme { @@ -46,7 +46,7 @@ namespace Avalonia.FreeDesktop.DBusIme public DBusTextInputMethodBase(Connection connection, params string[] knownNames) { - _queue = new DBusCallQueue(QueueOnError); + _queue = new DBusCallQueue(QueueOnErrorAsync); Connection = connection; _knownNames = knownNames; Watch(); @@ -54,12 +54,17 @@ namespace Avalonia.FreeDesktop.DBusIme public ITextInputMethodClient Client => _client; - public bool IsActive => _client != null; + public bool IsActive => _client is not null; - async void Watch() + private async void Watch() { foreach (var name in _knownNames) - _disposables.Add(await Connection.ResolveServiceOwnerAsync(name, OnNameChange)); + { + var dbus = new DBusService(Connection, name).CreateDBus("/org/freedesktop/DBus"); + _disposables.Add(await dbus.WatchNameOwnerChangedAsync(OnNameChange)); + var nameOwner = await dbus.GetNameOwnerAsync(name); + OnNameChange(null, (name, null, nameOwner)); + } } protected abstract Task Connect(string name); @@ -67,9 +72,9 @@ namespace Avalonia.FreeDesktop.DBusIme protected string GetAppName() => Application.Current?.Name ?? Assembly.GetEntryAssembly()?.GetName()?.Name ?? "Avalonia"; - private async void OnNameChange(ServiceOwnerChangedEventArgs args) + private async void OnNameChange(Exception? e, (string ServiceName, string? OldOwner, string? NewOwner) args) { - if (args.NewOwner != null && _currentName == null) + if (args.NewOwner is not null && _currentName is null) { _onlineNamesQueue.Enqueue(args.ServiceName); if (!_connecting) @@ -89,10 +94,10 @@ namespace Avalonia.FreeDesktop.DBusIme return; } } - catch (Exception e) + catch (Exception ex) { Logger.TryGet(LogEventLevel.Error, "IME") - ?.Log(this, "Unable to create IME input context:\n" + e); + ?.Log(this, "Unable to create IME input context:\n" + ex); } } } @@ -105,7 +110,7 @@ namespace Avalonia.FreeDesktop.DBusIme } // IME has crashed - if (args.NewOwner == null && args.ServiceName == _currentName) + if (args.NewOwner is null && args.ServiceName == _currentName) { _currentName = null; foreach (var s in _disposables) @@ -120,7 +125,7 @@ namespace Avalonia.FreeDesktop.DBusIme } } - protected virtual Task Disconnect() + protected virtual Task DisconnectAsync() { return Task.CompletedTask; } @@ -136,13 +141,13 @@ namespace Avalonia.FreeDesktop.DBusIme _imeActive = null; } - async Task QueueOnError(Exception e) + private async Task QueueOnErrorAsync(Exception e) { Logger.TryGet(LogEventLevel.Error, "IME") ?.Log(this, "Error:\n" + e); try { - await Disconnect(); + await DisconnectAsync(); } catch (Exception ex) { @@ -160,20 +165,13 @@ namespace Avalonia.FreeDesktop.DBusIme if(d is { }) _disposables.Add(d); } - + public void Dispose() { foreach(var d in _disposables) d.Dispose(); _disposables.Clear(); - try - { - Disconnect().ContinueWith(_ => { }); - } - catch - { - // fire and forget - } + DisconnectAsync(); _currentName = null; } @@ -182,13 +180,13 @@ namespace Avalonia.FreeDesktop.DBusIme protected abstract Task ResetContextCore(); protected abstract Task HandleKeyCore(RawKeyEventArgs args, int keyVal, int keyCode); - void UpdateActive() + private void UpdateActive() { _queue.Enqueue(async () => { if(!IsConnected) return; - + var active = _windowActive && _controlActive; if (active != _imeActive) { @@ -204,7 +202,7 @@ namespace Avalonia.FreeDesktop.DBusIme _windowActive = active; UpdateActive(); } - + void ITextInputMethodImpl.SetClient(ITextInputMethodClient? client) { _client = client; @@ -227,7 +225,7 @@ namespace Avalonia.FreeDesktop.DBusIme // Error, disconnect catch (Exception e) { - await QueueOnError(e); + await QueueOnErrorAsync(e); return false; } } @@ -240,7 +238,7 @@ namespace Avalonia.FreeDesktop.DBusIme } protected void FireCommit(string s) => _onCommit?.Invoke(s); - + private Action? _onForward; event Action IX11InputMethodControl.ForwardKey { @@ -249,8 +247,8 @@ namespace Avalonia.FreeDesktop.DBusIme } protected void FireForward(X11InputMethodForwardedKey k) => _onForward?.Invoke(k); - - void UpdateCursorRect() + + private void UpdateCursorRect() { _queue.Enqueue(async () => { @@ -265,7 +263,7 @@ namespace Avalonia.FreeDesktop.DBusIme } }); } - + void IX11InputMethodControl.UpdateWindowInfo(PixelPoint position, double scaling) { _windowPosition = position; diff --git a/src/Avalonia.FreeDesktop/DBusIme/Fcitx/Fcitx.DBus.cs b/src/Avalonia.FreeDesktop/DBusIme/Fcitx/Fcitx.DBus.cs new file mode 100644 index 0000000000..f9e4497892 --- /dev/null +++ b/src/Avalonia.FreeDesktop/DBusIme/Fcitx/Fcitx.DBus.cs @@ -0,0 +1,627 @@ +using System; +using System.Threading.Tasks; +using Tmds.DBus.Protocol; + +namespace Avalonia.FreeDesktop.DBusIme.Fcitx +{ + internal class InputContext : FcitxObject + { + private const string Interface = "org.fcitx.Fcitx.InputContext"; + + public InputContext(FcitxService service, ObjectPath path) : base(service, path) { } + + public Task FocusInAsync() + { + return Connection.CallMethodAsync(CreateMessage()); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + "FocusIn"); + return writer.CreateMessage(); + } + } + + public Task FocusOutAsync() + { + return Connection.CallMethodAsync(CreateMessage()); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + "FocusOut"); + return writer.CreateMessage(); + } + } + + public Task ResetAsync() + { + return Connection.CallMethodAsync(CreateMessage()); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + "Reset"); + return writer.CreateMessage(); + } + } + + public Task SetCursorRectAsync(int x, int y, int w, int h) + { + return Connection.CallMethodAsync(CreateMessage()); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + signature: "iiii", + member: "SetCursorRect"); + writer.WriteInt32(x); + writer.WriteInt32(y); + writer.WriteInt32(w); + writer.WriteInt32(h); + return writer.CreateMessage(); + } + } + + public Task SetCapacityAsync(uint caps) + { + return Connection.CallMethodAsync(CreateMessage()); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + signature: "u", + member: "SetCapacity"); + writer.WriteUInt32(caps); + return writer.CreateMessage(); + } + } + + public Task SetSurroundingTextAsync(string text, uint cursor, uint anchor) + { + return Connection.CallMethodAsync(CreateMessage()); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + signature: "suu", + member: "SetSurroundingText"); + writer.WriteString(text); + writer.WriteUInt32(cursor); + writer.WriteUInt32(anchor); + return writer.CreateMessage(); + } + } + + public Task SetSurroundingTextPositionAsync(uint cursor, uint anchor) + { + return Connection.CallMethodAsync(CreateMessage()); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + signature: "uu", + member: "SetSurroundingTextPosition"); + writer.WriteUInt32(cursor); + writer.WriteUInt32(anchor); + return writer.CreateMessage(); + } + } + + public Task DestroyICAsync() + { + return Connection.CallMethodAsync(CreateMessage()); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + "DestroyIC"); + return writer.CreateMessage(); + } + } + + public Task ProcessKeyEventAsync(uint keyval, uint keycode, uint state, int type, uint time) + { + return Connection.CallMethodAsync(CreateMessage(), static (m, s) => ReadMessage_i(m, (FcitxObject)s!), this); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + signature: "uuuiu", + member: "ProcessKeyEvent"); + writer.WriteUInt32(keyval); + writer.WriteUInt32(keycode); + writer.WriteUInt32(state); + writer.WriteInt32(type); + writer.WriteUInt32(time); + return writer.CreateMessage(); + } + } + + public ValueTask WatchCommitStringAsync(Action handler, bool emitOnCapturedContext = true) => + WatchSignalAsync(Service.Destination, Interface, Path, "CommitString", static (m, s) => + ReadMessage_s(m, (FcitxObject)s!), handler, emitOnCapturedContext); + + public ValueTask WatchCurrentIMAsync(Action handler, + bool emitOnCapturedContext = true) => + WatchSignalAsync(Service.Destination, Interface, Path, "CurrentIM", static (m, s) => + ReadMessage_sss(m, (FcitxObject)s!), handler, emitOnCapturedContext); + + public ValueTask WatchUpdateFormattedPreeditAsync(Action handler, + bool emitOnCapturedContext = true) => + WatchSignalAsync(Service.Destination, Interface, Path, "UpdateFormattedPreedit", static (m, s) => + ReadMessage_arsizi(m, (FcitxObject)s!), handler, emitOnCapturedContext); + + public ValueTask WatchForwardKeyAsync(Action handler, + bool emitOnCapturedContext = true) => + WatchSignalAsync(Service.Destination, Interface, Path, "ForwardKey", static (m, s) => + ReadMessage_uui(m, (FcitxObject)s!), handler, emitOnCapturedContext); + + public ValueTask WatchDeleteSurroundingTextAsync(Action handler, + bool emitOnCapturedContext = true) => + WatchSignalAsync(Service.Destination, Interface, Path, "DeleteSurroundingText", static (m, s) => + ReadMessage_iu(m, (FcitxObject)s!), handler, emitOnCapturedContext); + } + + internal class InputMethod : FcitxObject + { + private const string Interface = "org.fcitx.Fcitx.InputMethod"; + + public InputMethod(FcitxService service, ObjectPath path) : base(service, path) { } + + public Task<(int Icid, bool Enable, uint Keyval1, uint State1, uint Keyval2, uint State2)> CreateICv3Async(string appname, int pid) + { + return Connection.CallMethodAsync(CreateMessage(), static (m, s) => ReadMessage_ibuuuu(m, (FcitxObject)s!), this); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + signature: "si", + member: "CreateICv3"); + writer.WriteString(appname); + writer.WriteInt32(pid); + return writer.CreateMessage(); + } + } + } + + internal class InputContext1 : FcitxObject + { + private const string Interface = "org.fcitx.Fcitx.InputContext1"; + + public InputContext1(FcitxService service, ObjectPath path) : base(service, path) { } + + public Task FocusInAsync() + { + return Connection.CallMethodAsync(CreateMessage()); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + "FocusIn"); + return writer.CreateMessage(); + } + } + + public Task FocusOutAsync() + { + return Connection.CallMethodAsync(CreateMessage()); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + "FocusOut"); + return writer.CreateMessage(); + } + } + + public Task ResetAsync() + { + return Connection.CallMethodAsync(CreateMessage()); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + "Reset"); + return writer.CreateMessage(); + } + } + + public Task SetCursorRectAsync(int x, int y, int w, int h) + { + return Connection.CallMethodAsync(CreateMessage()); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + signature: "iiii", + member: "SetCursorRect"); + writer.WriteInt32(x); + writer.WriteInt32(y); + writer.WriteInt32(w); + writer.WriteInt32(h); + return writer.CreateMessage(); + } + } + + public Task SetCapabilityAsync(ulong caps) + { + return Connection.CallMethodAsync(CreateMessage()); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + signature: "t", + member: "SetCapability"); + writer.WriteUInt64(caps); + return writer.CreateMessage(); + } + } + + public Task SetSurroundingTextAsync(string text, uint cursor, uint anchor) + { + return Connection.CallMethodAsync(CreateMessage()); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + signature: "suu", + member: "SetSurroundingText"); + writer.WriteString(text); + writer.WriteUInt32(cursor); + writer.WriteUInt32(anchor); + return writer.CreateMessage(); + } + } + + public Task SetSurroundingTextPositionAsync(uint cursor, uint anchor) + { + return Connection.CallMethodAsync(CreateMessage()); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + signature: "uu", + member: "SetSurroundingTextPosition"); + writer.WriteUInt32(cursor); + writer.WriteUInt32(anchor); + return writer.CreateMessage(); + } + } + + public Task DestroyICAsync() + { + return Connection.CallMethodAsync(CreateMessage()); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + "DestroyIC"); + return writer.CreateMessage(); + } + } + + public Task ProcessKeyEventAsync(uint keyval, uint keycode, uint state, bool type, uint time) + { + return Connection.CallMethodAsync(CreateMessage(), static (m, s) => ReadMessage_b(m, (FcitxObject)s!), this); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + signature: "uuubu", + member: "ProcessKeyEvent"); + writer.WriteUInt32(keyval); + writer.WriteUInt32(keycode); + writer.WriteUInt32(state); + writer.WriteBool(type); + writer.WriteUInt32(time); + return writer.CreateMessage(); + } + } + + public ValueTask WatchCommitStringAsync(Action handler, bool emitOnCapturedContext = true) + => WatchSignalAsync(Service.Destination, Interface, Path, "CommitString", static (m, s) => + ReadMessage_s(m, (FcitxObject)s!), handler, emitOnCapturedContext); + + public ValueTask WatchCurrentIMAsync(Action handler, + bool emitOnCapturedContext = true) => + WatchSignalAsync(Service.Destination, Interface, Path, "CurrentIM", static (m, s) => + ReadMessage_sss(m, (FcitxObject)s!), handler, emitOnCapturedContext); + + public ValueTask WatchUpdateFormattedPreeditAsync(Action handler, + bool emitOnCapturedContext = true) => + WatchSignalAsync(Service.Destination, Interface, Path, "UpdateFormattedPreedit", static (m, s) => + ReadMessage_arsizi(m, (FcitxObject)s!), handler, emitOnCapturedContext); + + public ValueTask WatchForwardKeyAsync(Action handler, + bool emitOnCapturedContext = true) => + WatchSignalAsync(Service.Destination, Interface, Path, "ForwardKey", static (m, s) => + ReadMessage_uub(m, (FcitxObject)s!), handler, emitOnCapturedContext); + + public ValueTask WatchDeleteSurroundingTextAsync(Action handler, + bool emitOnCapturedContext = true) => + WatchSignalAsync(Service.Destination, Interface, Path, "DeleteSurroundingText", static (m, s) => + ReadMessage_iu(m, (FcitxObject)s!), handler, emitOnCapturedContext); + } + + internal class InputMethod1 : FcitxObject + { + private const string Interface = "org.fcitx.Fcitx.InputMethod1"; + + public InputMethod1(FcitxService service, ObjectPath path) : base(service, path) { } + + public Task<(ObjectPath A0, byte[] A1)> CreateInputContextAsync((string, string)[] a0) + { + return Connection.CallMethodAsync(CreateMessage(), static (m, s) => ReadMessage_oay(m, (FcitxObject)s!), this); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + signature: "a(ss)", + member: "CreateInputContext"); + writer.WriteArray(a0); + return writer.CreateMessage(); + } + } + } + + internal class FcitxService + { + public FcitxService(Connection connection, string destination) + => (Connection, Destination) = (connection, destination); + + public Connection Connection { get; } + public string Destination { get; } + public InputContext CreateInputContext(string path) => new(this, path); + public InputMethod CreateInputMethod(string path) => new(this, path); + public InputContext1 CreateInputContext1(string path) => new(this, path); + public InputMethod1 CreateInputMethod1(string path) => new(this, path); + } + + internal class FcitxObject + { + protected FcitxObject(FcitxService service, ObjectPath path) + => (Service, Path) = (service, path); + + public FcitxService Service { get; } + public ObjectPath Path { get; } + protected Connection Connection => Service.Connection; + + protected MessageBuffer CreateGetPropertyMessage(string @interface, string property) + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + "org.freedesktop.DBus.Properties", + signature: "ss", + member: "Get"); + writer.WriteString(@interface); + writer.WriteString(property); + return writer.CreateMessage(); + } + + protected MessageBuffer CreateGetAllPropertiesMessage(string @interface) + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + "org.freedesktop.DBus.Properties", + signature: "s", + member: "GetAll"); + writer.WriteString(@interface); + return writer.CreateMessage(); + } + + protected ValueTask WatchPropertiesChangedAsync(string @interface, + MessageValueReader> reader, Action> handler, + bool emitOnCapturedContext) + { + var rule = new MatchRule + { + Type = MessageType.Signal, + Sender = Service.Destination, + Path = Path, + Interface = "org.freedesktop.DBus.Properties", + Member = "PropertiesChanged", + Arg0 = @interface + }; + return Connection.AddMatchAsync(rule, reader, static (ex, changes, _, hs) => + ((Action>)hs!).Invoke(ex, changes), + this, handler, emitOnCapturedContext); + } + + public ValueTask WatchSignalAsync(string sender, string @interface, ObjectPath path, string signal, + MessageValueReader reader, Action handler, bool emitOnCapturedContext) + { + var rule = new MatchRule + { + Type = MessageType.Signal, + Sender = sender, + Path = path, + Member = signal, + Interface = @interface + }; + return Connection.AddMatchAsync(rule, reader, static (ex, arg, _, hs) => + ((Action)hs!).Invoke(ex, arg), this, handler, emitOnCapturedContext); + } + + public ValueTask WatchSignalAsync(string sender, string @interface, ObjectPath path, string signal, Action handler, + bool emitOnCapturedContext) + { + var rule = new MatchRule + { + Type = MessageType.Signal, + Sender = sender, + Path = path, + Member = signal, + Interface = @interface + }; + return Connection.AddMatchAsync(rule, static (_, _) => + null!, static (ex, _, _, hs) => + ((Action)hs!).Invoke(ex), this, handler, emitOnCapturedContext); + } + + protected static int ReadMessage_i(Message message, FcitxObject _) + { + var reader = message.GetBodyReader(); + return reader.ReadInt32(); + } + + protected static string ReadMessage_s(Message message, FcitxObject _) + { + var reader = message.GetBodyReader(); + return reader.ReadString(); + } + + protected static (string, string, string) ReadMessage_sss(Message message, FcitxObject _) + { + var reader = message.GetBodyReader(); + var arg0 = reader.ReadString(); + var arg1 = reader.ReadString(); + var arg2 = reader.ReadString(); + return (arg0, arg1, arg2); + } + + protected static ((string, int)[], int) ReadMessage_arsizi(Message message, FcitxObject _) + { + var reader = message.GetBodyReader(); + var arg0 = reader.ReadArray<(string, int)>(); + var arg1 = reader.ReadInt32(); + return (arg0, arg1); + } + + protected static (uint, uint, int) ReadMessage_uui(Message message, FcitxObject _) + { + var reader = message.GetBodyReader(); + var arg0 = reader.ReadUInt32(); + var arg1 = reader.ReadUInt32(); + var arg2 = reader.ReadInt32(); + return (arg0, arg1, arg2); + } + + protected static (int, uint) ReadMessage_iu(Message message, FcitxObject _) + { + var reader = message.GetBodyReader(); + var arg0 = reader.ReadInt32(); + var arg1 = reader.ReadUInt32(); + return (arg0, arg1); + } + + protected static (int, bool, uint, uint, uint, uint) ReadMessage_ibuuuu(Message message, FcitxObject _) + { + var reader = message.GetBodyReader(); + var arg0 = reader.ReadInt32(); + var arg1 = reader.ReadBool(); + var arg2 = reader.ReadUInt32(); + var arg3 = reader.ReadUInt32(); + var arg4 = reader.ReadUInt32(); + var arg5 = reader.ReadUInt32(); + return (arg0, arg1, arg2, arg3, arg4, arg5); + } + + protected static bool ReadMessage_b(Message message, FcitxObject _) + { + var reader = message.GetBodyReader(); + return reader.ReadBool(); + } + + protected static (uint, uint, bool) ReadMessage_uub(Message message, FcitxObject _) + { + var reader = message.GetBodyReader(); + var arg0 = reader.ReadUInt32(); + var arg1 = reader.ReadUInt32(); + var arg2 = reader.ReadBool(); + return (arg0, arg1, arg2); + } + + protected static (ObjectPath, byte[]) ReadMessage_oay(Message message, FcitxObject _) + { + var reader = message.GetBodyReader(); + var arg0 = reader.ReadObjectPath(); + var arg1 = reader.ReadArray(); + return (arg0, arg1); + } + } +} diff --git a/src/Avalonia.FreeDesktop/DBusIme/Fcitx/FcitxDBus.cs b/src/Avalonia.FreeDesktop/DBusIme/Fcitx/FcitxDBus.cs deleted file mode 100644 index 06afacaa29..0000000000 --- a/src/Avalonia.FreeDesktop/DBusIme/Fcitx/FcitxDBus.cs +++ /dev/null @@ -1,69 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Threading.Tasks; -using Tmds.DBus; - -[assembly: InternalsVisibleTo(Tmds.DBus.Connection.DynamicAssemblyName)] -namespace Avalonia.FreeDesktop.DBusIme.Fcitx -{ - [DBusInterface("org.fcitx.Fcitx.InputMethod")] - interface IFcitxInputMethod : IDBusObject - { - Task<(int icid, bool enable, uint keyval1, uint state1, uint keyval2, uint state2)> CreateICv3Async( - string Appname, int Pid); - } - - - [DBusInterface("org.fcitx.Fcitx.InputContext")] - interface IFcitxInputContext : IDBusObject - { - Task EnableICAsync(); - Task CloseICAsync(); - Task FocusInAsync(); - Task FocusOutAsync(); - Task ResetAsync(); - Task MouseEventAsync(int X); - Task SetCursorLocationAsync(int X, int Y); - Task SetCursorRectAsync(int X, int Y, int W, int H); - Task SetCapacityAsync(uint Caps); - Task SetSurroundingTextAsync(string Text, uint Cursor, uint Anchor); - Task SetSurroundingTextPositionAsync(uint Cursor, uint Anchor); - Task DestroyICAsync(); - Task ProcessKeyEventAsync(uint Keyval, uint Keycode, uint State, int Type, uint Time); - Task WatchEnableIMAsync(Action handler, Action? onError = null); - Task WatchCloseIMAsync(Action handler, Action? onError = null); - Task WatchCommitStringAsync(Action handler, Action? onError = null); - Task WatchCurrentIMAsync(Action<(string name, string uniqueName, string langCode)> handler, Action? onError = null); - Task WatchUpdatePreeditAsync(Action<(string str, int cursorpos)> handler, Action? onError = null); - Task WatchUpdateFormattedPreeditAsync(Action<((string, int)[] str, int cursorpos)> handler, Action? onError = null); - Task WatchUpdateClientSideUIAsync(Action<(string auxup, string auxdown, string preedit, string candidateword, string imname, int cursorpos)> handler, Action? onError = null); - Task WatchForwardKeyAsync(Action<(uint keyval, uint state, int type)> handler, Action? onError = null); - Task WatchDeleteSurroundingTextAsync(Action<(int offset, uint nchar)> handler, Action? onError = null); - } - - [DBusInterface("org.fcitx.Fcitx.InputContext1")] - interface IFcitxInputContext1 : IDBusObject - { - Task FocusInAsync(); - Task FocusOutAsync(); - Task ResetAsync(); - Task SetCursorRectAsync(int X, int Y, int W, int H); - Task SetCapabilityAsync(ulong Caps); - Task SetSurroundingTextAsync(string Text, uint Cursor, uint Anchor); - Task SetSurroundingTextPositionAsync(uint Cursor, uint Anchor); - Task DestroyICAsync(); - Task ProcessKeyEventAsync(uint Keyval, uint Keycode, uint State, bool Type, uint Time); - Task WatchCommitStringAsync(Action handler, Action? onError = null); - Task WatchCurrentIMAsync(Action<(string name, string uniqueName, string langCode)> handler, Action? onError = null); - Task WatchUpdateFormattedPreeditAsync(Action<((string, int)[] str, int cursorpos)> handler, Action? onError = null); - Task WatchForwardKeyAsync(Action<(uint keyval, uint state, bool type)> handler, Action? onError = null); - Task WatchDeleteSurroundingTextAsync(Action<(int offset, uint nchar)> handler, Action? onError = null); - } - - [DBusInterface("org.fcitx.Fcitx.InputMethod1")] - interface IFcitxInputMethod1 : IDBusObject - { - Task<(ObjectPath path, byte[] data)> CreateInputContextAsync((string, string)[] arg0); - } -} diff --git a/src/Avalonia.FreeDesktop/DBusIme/Fcitx/FcitxICWrapper.cs b/src/Avalonia.FreeDesktop/DBusIme/Fcitx/FcitxICWrapper.cs index 6c503edb41..b71ca55cf8 100644 --- a/src/Avalonia.FreeDesktop/DBusIme/Fcitx/FcitxICWrapper.cs +++ b/src/Avalonia.FreeDesktop/DBusIme/Fcitx/FcitxICWrapper.cs @@ -5,15 +5,15 @@ namespace Avalonia.FreeDesktop.DBusIme.Fcitx { internal class FcitxICWrapper { - private readonly IFcitxInputContext1? _modern; - private readonly IFcitxInputContext? _old; + private readonly InputContext1? _modern; + private readonly InputContext? _old; - public FcitxICWrapper(IFcitxInputContext old) + public FcitxICWrapper(InputContext old) { _old = old; } - public FcitxICWrapper(IFcitxInputContext1 modern) + public FcitxICWrapper(InputContext1 modern) { _modern = modern; } @@ -21,32 +21,30 @@ namespace Avalonia.FreeDesktop.DBusIme.Fcitx public Task FocusInAsync() => _old?.FocusInAsync() ?? _modern?.FocusInAsync() ?? Task.CompletedTask; public Task FocusOutAsync() => _old?.FocusOutAsync() ?? _modern?.FocusOutAsync() ?? Task.CompletedTask; - + public Task ResetAsync() => _old?.ResetAsync() ?? _modern?.ResetAsync() ?? Task.CompletedTask; public Task SetCursorRectAsync(int x, int y, int w, int h) => _old?.SetCursorRectAsync(x, y, w, h) ?? _modern?.SetCursorRectAsync(x, y, w, h) ?? Task.CompletedTask; + public Task DestroyICAsync() => _old?.DestroyICAsync() ?? _modern?.DestroyICAsync() ?? Task.CompletedTask; public async Task ProcessKeyEventAsync(uint keyVal, uint keyCode, uint state, int type, uint time) { - if(_old!=null) + if (_old is not null) return await _old.ProcessKeyEventAsync(keyVal, keyCode, state, type, time) != 0; return await (_modern?.ProcessKeyEventAsync(keyVal, keyCode, state, type > 0, time) ?? Task.FromResult(false)); } - public Task WatchCommitStringAsync(Action handler) => - _old?.WatchCommitStringAsync(handler) - ?? _modern?.WatchCommitStringAsync(handler) - ?? Task.FromResult(default(IDisposable?)); + public ValueTask WatchCommitStringAsync(Action handler) => + _old?.WatchCommitStringAsync(handler) + ?? _modern?.WatchCommitStringAsync(handler) + ?? new ValueTask(default(IDisposable?)); - public Task WatchForwardKeyAsync(Action<(uint keyval, uint state, int type)> handler) - { - return _old?.WatchForwardKeyAsync(handler) - ?? _modern?.WatchForwardKeyAsync(ev => - handler((ev.keyval, ev.state, ev.type ? 1 : 0))) - ?? Task.FromResult(default(IDisposable?)); - } + public ValueTask WatchForwardKeyAsync(Action handler) => + _old?.WatchForwardKeyAsync(handler) + ?? _modern?.WatchForwardKeyAsync((e, ev) => handler.Invoke(e, (ev.Keyval, ev.State, ev.Type ? 1 : 0))) + ?? new ValueTask(default(IDisposable?)); public Task SetCapacityAsync(uint flags) => _old?.SetCapacityAsync(flags) ?? _modern?.SetCapabilityAsync(flags) ?? Task.CompletedTask; diff --git a/src/Avalonia.FreeDesktop/DBusIme/Fcitx/FcitxX11TextInputMethod.cs b/src/Avalonia.FreeDesktop/DBusIme/Fcitx/FcitxX11TextInputMethod.cs index 791431dfa7..2a5260b1cf 100644 --- a/src/Avalonia.FreeDesktop/DBusIme/Fcitx/FcitxX11TextInputMethod.cs +++ b/src/Avalonia.FreeDesktop/DBusIme/Fcitx/FcitxX11TextInputMethod.cs @@ -1,12 +1,10 @@ using System; using System.Diagnostics; -using System.Reactive.Concurrency; -using System.Reflection; using System.Threading.Tasks; using Avalonia.Input; using Avalonia.Input.Raw; using Avalonia.Input.TextInput; -using Tmds.DBus; +using Tmds.DBus.Protocol; namespace Avalonia.FreeDesktop.DBusIme.Fcitx { @@ -15,32 +13,25 @@ namespace Avalonia.FreeDesktop.DBusIme.Fcitx private FcitxICWrapper? _context; private FcitxCapabilityFlags? _lastReportedFlags; - public FcitxX11TextInputMethod(Connection connection) : base(connection, - "org.fcitx.Fcitx", - "org.freedesktop.portal.Fcitx" - ) - { - - } + public FcitxX11TextInputMethod(Connection connection) : base(connection, "org.fcitx.Fcitx", "org.freedesktop.portal.Fcitx") { } protected override async Task Connect(string name) { + var service = new FcitxService(Connection, name); if (name == "org.fcitx.Fcitx") { - var method = Connection.CreateProxy(name, "/inputmethod"); + var method = service.CreateInputMethod("/inputmethod"); var resp = await method.CreateICv3Async(GetAppName(), Process.GetCurrentProcess().Id); - var proxy = Connection.CreateProxy(name, - "/inputcontext_" + resp.icid); - + var proxy = service.CreateInputContext($"/inputcontext_{resp.Icid}"); _context = new FcitxICWrapper(proxy); } else { - var method = Connection.CreateProxy(name, "/inputmethod"); + var method = service.CreateInputMethod1("/inputmethod"); var resp = await method.CreateInputContextAsync(new[] { ("appName", GetAppName()) }); - var proxy = Connection.CreateProxy(name, resp.path); + var proxy = service.CreateInputContext1(resp.A0); _context = new FcitxICWrapper(proxy); } @@ -49,7 +40,7 @@ namespace Avalonia.FreeDesktop.DBusIme.Fcitx return true; } - protected override Task Disconnect() => _context?.DestroyICAsync() ?? Task.CompletedTask; + protected override Task DisconnectAsync() => _context?.DestroyICAsync() ?? Task.CompletedTask; protected override void OnDisconnected() => _context = null; @@ -64,14 +55,12 @@ namespace Avalonia.FreeDesktop.DBusIme.Fcitx Math.Max(1, cursorRect.Height)) ?? Task.CompletedTask; - protected override Task SetActiveCore(bool active)=> (active + protected override Task SetActiveCore(bool active)=> (active ? _context?.FocusInAsync() : _context?.FocusOutAsync()) ?? Task.CompletedTask; - - protected override Task ResetContextCore() => _context?.ResetAsync() - ?? Task.CompletedTask; + protected override Task ResetContextCore() => _context?.ResetAsync() ?? Task.CompletedTask; protected override async Task HandleKeyCore(RawKeyEventArgs args, int keyVal, int keyCode) { @@ -88,17 +77,13 @@ namespace Avalonia.FreeDesktop.DBusIme.Fcitx var type = args.Type == RawKeyEventType.KeyDown ? FcitxKeyEventType.FCITX_PRESS_KEY : FcitxKeyEventType.FCITX_RELEASE_KEY; - if (_context is { }) - { + if (_context is not null) return await _context.ProcessKeyEventAsync((uint)keyVal, (uint)keyCode, (uint)state, (int)type, (uint)args.Timestamp).ConfigureAwait(false); - } - else - { - return false; - } + + return false; } - + public override void SetOptions(TextInputOptions options) => Enqueue(async () => { @@ -128,7 +113,7 @@ namespace Avalonia.FreeDesktop.DBusIme.Fcitx } }); - private void OnForward((uint keyval, uint state, int type) ev) + private void OnForward(Exception? e, (uint keyval, uint state, int type) ev) { var state = (FcitxKeyState)ev.state; KeyModifiers mods = default; @@ -150,6 +135,6 @@ namespace Avalonia.FreeDesktop.DBusIme.Fcitx }); } - private void OnCommitString(string s) => FireCommit(s); + private void OnCommitString(Exception? e, string s) => FireCommit(s); } } diff --git a/src/Avalonia.FreeDesktop/DBusIme/IBus/IBus.DBus.cs b/src/Avalonia.FreeDesktop/DBusIme/IBus/IBus.DBus.cs new file mode 100644 index 0000000000..e0f9681766 --- /dev/null +++ b/src/Avalonia.FreeDesktop/DBusIme/IBus/IBus.DBus.cs @@ -0,0 +1,513 @@ +using System; +using System.Threading.Tasks; +using Tmds.DBus.Protocol; + +namespace Avalonia.FreeDesktop.DBusIme.IBus +{ + internal class Portal : IBusObject + { + private const string Interface = "org.freedesktop.IBus.Portal"; + + public Portal(IBusService service, ObjectPath path) : base(service, path) { } + + public Task CreateInputContextAsync(string clientName) + { + return Connection.CallMethodAsync(CreateMessage(), static (m, s) => ReadMessage_o(m, (IBusObject)s!), this); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + signature: "s", + member: "CreateInputContext"); + writer.WriteString(clientName); + return writer.CreateMessage(); + } + } + } + + internal class InputContext : IBusObject + { + private const string Interface = "org.freedesktop.IBus.InputContext"; + + public InputContext(IBusService service, ObjectPath path) : base(service, path) { } + + public Task ProcessKeyEventAsync(uint keyval, uint keycode, uint state) + { + return Connection.CallMethodAsync(CreateMessage(), static (m, s) => ReadMessage_b(m, (IBusObject)s!), this); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + signature: "uuu", + member: "ProcessKeyEvent"); + writer.WriteUInt32(keyval); + writer.WriteUInt32(keycode); + writer.WriteUInt32(state); + return writer.CreateMessage(); + } + } + + public Task SetCursorLocationAsync(int x, int y, int w, int h) + { + return Connection.CallMethodAsync(CreateMessage()); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + signature: "iiii", + member: "SetCursorLocation"); + writer.WriteInt32(x); + writer.WriteInt32(y); + writer.WriteInt32(w); + writer.WriteInt32(h); + return writer.CreateMessage(); + } + } + + public Task SetCursorLocationRelativeAsync(int x, int y, int w, int h) + { + return Connection.CallMethodAsync(CreateMessage()); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + signature: "iiii", + member: "SetCursorLocationRelative"); + writer.WriteInt32(x); + writer.WriteInt32(y); + writer.WriteInt32(w); + writer.WriteInt32(h); + return writer.CreateMessage(); + } + } + + public Task ProcessHandWritingEventAsync(double[] coordinates) + { + return Connection.CallMethodAsync(CreateMessage()); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + signature: "ad", + member: "ProcessHandWritingEvent"); + writer.WriteArray(coordinates); + return writer.CreateMessage(); + } + } + + public Task CancelHandWritingAsync(uint nStrokes) + { + return Connection.CallMethodAsync(CreateMessage()); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + signature: "u", + member: "CancelHandWriting"); + writer.WriteUInt32(nStrokes); + return writer.CreateMessage(); + } + } + + public Task FocusInAsync() + { + return Connection.CallMethodAsync(CreateMessage()); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + "FocusIn"); + return writer.CreateMessage(); + } + } + + public Task FocusOutAsync() + { + return Connection.CallMethodAsync(CreateMessage()); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + "FocusOut"); + return writer.CreateMessage(); + } + } + + public Task ResetAsync() + { + return Connection.CallMethodAsync(CreateMessage()); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + "Reset"); + return writer.CreateMessage(); + } + } + + public Task SetCapabilitiesAsync(uint caps) + { + return Connection.CallMethodAsync(CreateMessage()); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + signature: "u", + member: "SetCapabilities"); + writer.WriteUInt32(caps); + return writer.CreateMessage(); + } + } + + public Task PropertyActivateAsync(string name, uint state) + { + return Connection.CallMethodAsync(CreateMessage()); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + signature: "su", + member: "PropertyActivate"); + writer.WriteString(name); + writer.WriteUInt32(state); + return writer.CreateMessage(); + } + } + + public Task SetEngineAsync(string name) + { + return Connection.CallMethodAsync(CreateMessage()); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + signature: "s", + member: "SetEngine"); + writer.WriteString(name); + return writer.CreateMessage(); + } + } + + public Task GetEngineAsync() + { + return Connection.CallMethodAsync(CreateMessage(), static (m, s) => ReadMessage_v(m, (IBusObject)s!), this); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + "GetEngine"); + return writer.CreateMessage(); + } + } + + public Task SetSurroundingTextAsync(object text, uint cursorPos, uint anchorPos) + { + return Connection.CallMethodAsync(CreateMessage()); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + signature: "vuu", + member: "SetSurroundingText"); + writer.WriteVariant(text); + writer.WriteUInt32(cursorPos); + writer.WriteUInt32(anchorPos); + return writer.CreateMessage(); + } + } + + public ValueTask WatchCommitTextAsync(Action handler, bool emitOnCapturedContext = true) => + WatchSignalAsync(Service.Destination, Interface, Path, "CommitText", static (m, s) => + ReadMessage_v(m, (IBusObject)s!), handler, emitOnCapturedContext); + + public ValueTask WatchForwardKeyEventAsync(Action handler, + bool emitOnCapturedContext = true) => + WatchSignalAsync(Service.Destination, Interface, Path, "ForwardKeyEvent", static (m, s) => + ReadMessage_uuu(m, (IBusObject)s!), handler, emitOnCapturedContext); + + public ValueTask WatchUpdatePreeditTextAsync(Action handler, + bool emitOnCapturedContext = true) => + WatchSignalAsync(Service.Destination, Interface, Path, "UpdatePreeditText", static (m, s) => + ReadMessage_vub(m, (IBusObject)s!), handler, emitOnCapturedContext); + + public ValueTask WatchUpdatePreeditTextWithModeAsync( + Action handler, bool emitOnCapturedContext = true) => + WatchSignalAsync(Service.Destination, Interface, Path, "UpdatePreeditTextWithMode", static (m, s) => + ReadMessage_vubu(m, (IBusObject)s!), handler, emitOnCapturedContext); + + public ValueTask WatchShowPreeditTextAsync(Action handler, bool emitOnCapturedContext = true) + => WatchSignalAsync(Service.Destination, Interface, Path, "ShowPreeditText", handler, emitOnCapturedContext); + + public ValueTask WatchHidePreeditTextAsync(Action handler, bool emitOnCapturedContext = true) + => WatchSignalAsync(Service.Destination, Interface, Path, "HidePreeditText", handler, emitOnCapturedContext); + + public ValueTask WatchUpdateAuxiliaryTextAsync(Action handler, + bool emitOnCapturedContext = true) => + WatchSignalAsync(Service.Destination, Interface, Path, "UpdateAuxiliaryText", static (m, s) => + ReadMessage_vb(m, (IBusObject)s!), handler, emitOnCapturedContext); + + public ValueTask WatchShowAuxiliaryTextAsync(Action handler, bool emitOnCapturedContext = true) + => WatchSignalAsync(Service.Destination, Interface, Path, "ShowAuxiliaryText", handler, emitOnCapturedContext); + + public ValueTask WatchHideAuxiliaryTextAsync(Action handler, bool emitOnCapturedContext = true) + => WatchSignalAsync(Service.Destination, Interface, Path, "HideAuxiliaryText", handler, emitOnCapturedContext); + + public ValueTask WatchUpdateLookupTableAsync(Action handler, + bool emitOnCapturedContext = true) => + WatchSignalAsync(Service.Destination, Interface, Path, "UpdateLookupTable", static (m, s) => + ReadMessage_vb(m, (IBusObject)s!), handler, emitOnCapturedContext); + + public ValueTask WatchShowLookupTableAsync(Action handler, bool emitOnCapturedContext = true) + => WatchSignalAsync(Service.Destination, Interface, Path, "ShowLookupTable", handler, emitOnCapturedContext); + + public ValueTask WatchHideLookupTableAsync(Action handler, bool emitOnCapturedContext = true) + => WatchSignalAsync(Service.Destination, Interface, Path, "HideLookupTable", handler, emitOnCapturedContext); + + public ValueTask WatchPageUpLookupTableAsync(Action handler, bool emitOnCapturedContext = true) + => WatchSignalAsync(Service.Destination, Interface, Path, "PageUpLookupTable", handler, emitOnCapturedContext); + + public ValueTask WatchPageDownLookupTableAsync(Action handler, bool emitOnCapturedContext = true) + => WatchSignalAsync(Service.Destination, Interface, Path, "PageDownLookupTable", handler, emitOnCapturedContext); + + public ValueTask WatchCursorUpLookupTableAsync(Action handler, bool emitOnCapturedContext = true) + => WatchSignalAsync(Service.Destination, Interface, Path, "CursorUpLookupTable", handler, emitOnCapturedContext); + + public ValueTask WatchCursorDownLookupTableAsync(Action handler, bool emitOnCapturedContext = true) + => WatchSignalAsync(Service.Destination, Interface, Path, "CursorDownLookupTable", handler, emitOnCapturedContext); + + public ValueTask WatchRegisterPropertiesAsync(Action handler, bool emitOnCapturedContext = true) + => WatchSignalAsync(Service.Destination, Interface, Path, "RegisterProperties", static (m, s) => ReadMessage_v(m, (IBusObject)s!), handler, emitOnCapturedContext); + + public ValueTask WatchUpdatePropertyAsync(Action handler, bool emitOnCapturedContext = true) + => WatchSignalAsync(Service.Destination, Interface, Path, "UpdateProperty", static (m, s) => ReadMessage_v(m, (IBusObject)s!), handler, emitOnCapturedContext); + } + + internal class Service : IBusObject + { + private const string Interface = "org.freedesktop.IBus.Service"; + + public Service(IBusService service, ObjectPath path) : base(service, path) { } + + public Task DestroyAsync() + { + return Connection.CallMethodAsync(CreateMessage()); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + "Destroy"); + return writer.CreateMessage(); + } + } + } + + internal class IBusService + { + public IBusService(Connection connection, string destination) + => (Connection, Destination) = (connection, destination); + + public Connection Connection { get; } + public string Destination { get; } + public Portal CreatePortal(string path) => new(this, path); + public InputContext CreateInputContext(string path) => new(this, path); + public Service CreateService(string path) => new(this, path); + } + + internal class IBusObject + { + protected IBusObject(IBusService service, ObjectPath path) + => (Service, Path) = (service, path); + + public IBusService Service { get; } + public ObjectPath Path { get; } + protected Connection Connection => Service.Connection; + + protected MessageBuffer CreateGetPropertyMessage(string @interface, string property) + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + "org.freedesktop.DBus.Properties", + signature: "ss", + member: "Get"); + writer.WriteString(@interface); + writer.WriteString(property); + return writer.CreateMessage(); + } + + protected MessageBuffer CreateGetAllPropertiesMessage(string @interface) + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + "org.freedesktop.DBus.Properties", + signature: "s", + member: "GetAll"); + writer.WriteString(@interface); + return writer.CreateMessage(); + } + + protected ValueTask WatchPropertiesChangedAsync(string @interface, + MessageValueReader> reader, Action> handler, + bool emitOnCapturedContext) + { + var rule = new MatchRule + { + Type = MessageType.Signal, + Sender = Service.Destination, + Path = Path, + Interface = "org.freedesktop.DBus.Properties", + Member = "PropertiesChanged", + Arg0 = @interface + }; + return Connection.AddMatchAsync(rule, reader, static (ex, changes, _, hs) => + ((Action>)hs!).Invoke(ex, changes), + this, handler, emitOnCapturedContext); + } + + public ValueTask WatchSignalAsync(string sender, string @interface, ObjectPath path, string signal, + MessageValueReader reader, Action handler, bool emitOnCapturedContext) + { + var rule = new MatchRule + { + Type = MessageType.Signal, + Sender = sender, + Path = path, + Member = signal, + Interface = @interface + }; + return Connection.AddMatchAsync(rule, reader, static (ex, arg, _, hs) => ((Action)hs!).Invoke(ex, arg), + this, handler, emitOnCapturedContext); + } + + public ValueTask WatchSignalAsync(string sender, string @interface, ObjectPath path, string signal, Action handler, + bool emitOnCapturedContext) + { + var rule = new MatchRule + { + Type = MessageType.Signal, + Sender = sender, + Path = path, + Member = signal, + Interface = @interface + }; + return Connection.AddMatchAsync(rule, static (_, _) => null!, static (ex, _, _, hs) => ((Action)hs!).Invoke(ex), this, handler, emitOnCapturedContext); + } + + protected static ObjectPath ReadMessage_o(Message message, IBusObject _) + { + var reader = message.GetBodyReader(); + return reader.ReadObjectPath(); + } + + protected static bool ReadMessage_b(Message message, IBusObject _) + { + var reader = message.GetBodyReader(); + return reader.ReadBool(); + } + + protected static object ReadMessage_v(Message message, IBusObject _) + { + var reader = message.GetBodyReader(); + return reader.ReadVariant(); + } + + protected static (uint, uint, uint) ReadMessage_uuu(Message message, IBusObject _) + { + var reader = message.GetBodyReader(); + var arg0 = reader.ReadUInt32(); + var arg1 = reader.ReadUInt32(); + var arg2 = reader.ReadUInt32(); + return (arg0, arg1, arg2); + } + + protected static (object, uint, bool) ReadMessage_vub(Message message, IBusObject _) + { + var reader = message.GetBodyReader(); + var arg0 = reader.ReadVariant(); + var arg1 = reader.ReadUInt32(); + var arg2 = reader.ReadBool(); + return (arg0, arg1, arg2); + } + + protected static (object, uint, bool, uint) ReadMessage_vubu(Message message, IBusObject _) + { + var reader = message.GetBodyReader(); + var arg0 = reader.ReadVariant(); + var arg1 = reader.ReadUInt32(); + var arg2 = reader.ReadBool(); + var arg3 = reader.ReadUInt32(); + return (arg0, arg1, arg2, arg3); + } + + protected static (object, bool) ReadMessage_vb(Message message, IBusObject _) + { + var reader = message.GetBodyReader(); + var arg0 = reader.ReadVariant(); + var arg1 = reader.ReadBool(); + return (arg0, arg1); + } + } +} diff --git a/src/Avalonia.FreeDesktop/DBusIme/IBus/IBusDBus.cs b/src/Avalonia.FreeDesktop/DBusIme/IBus/IBusDBus.cs deleted file mode 100644 index 4ef034adb9..0000000000 --- a/src/Avalonia.FreeDesktop/DBusIme/IBus/IBusDBus.cs +++ /dev/null @@ -1,52 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; -using System.Threading.Tasks; -using Tmds.DBus; - -[assembly: InternalsVisibleTo(Connection.DynamicAssemblyName)] -namespace Avalonia.FreeDesktop.DBusIme.IBus -{ - [DBusInterface("org.freedesktop.IBus.InputContext")] - interface IIBusInputContext : IDBusObject - { - Task ProcessKeyEventAsync(uint Keyval, uint Keycode, uint State); - Task SetCursorLocationAsync(int X, int Y, int W, int H); - Task FocusInAsync(); - Task FocusOutAsync(); - Task ResetAsync(); - Task SetCapabilitiesAsync(uint Caps); - Task PropertyActivateAsync(string Name, int State); - Task SetEngineAsync(string Name); - Task GetEngineAsync(); - Task DestroyAsync(); - Task SetSurroundingTextAsync(object Text, uint CursorPos, uint AnchorPos); - Task WatchCommitTextAsync(Action cb, Action? onError = null); - Task WatchForwardKeyEventAsync(Action<(uint keyval, uint keycode, uint state)> handler, Action? onError = null); - Task WatchRequireSurroundingTextAsync(Action handler, Action? onError = null); - Task WatchDeleteSurroundingTextAsync(Action<(int offset, uint nchars)> handler, Action? onError = null); - Task WatchUpdatePreeditTextAsync(Action<(object text, uint cursorPos, bool visible)> handler, Action? onError = null); - Task WatchShowPreeditTextAsync(Action handler, Action? onError = null); - Task WatchHidePreeditTextAsync(Action handler, Action? onError = null); - Task WatchUpdateAuxiliaryTextAsync(Action<(object text, bool visible)> handler, Action? onError = null); - Task WatchShowAuxiliaryTextAsync(Action handler, Action? onError = null); - Task WatchHideAuxiliaryTextAsync(Action handler, Action? onError = null); - Task WatchUpdateLookupTableAsync(Action<(object table, bool visible)> handler, Action? onError = null); - Task WatchShowLookupTableAsync(Action handler, Action? onError = null); - Task WatchHideLookupTableAsync(Action handler, Action? onError = null); - Task WatchPageUpLookupTableAsync(Action handler, Action? onError = null); - Task WatchPageDownLookupTableAsync(Action handler, Action? onError = null); - Task WatchCursorUpLookupTableAsync(Action handler, Action? onError = null); - Task WatchCursorDownLookupTableAsync(Action handler, Action? onError = null); - Task WatchRegisterPropertiesAsync(Action handler, Action? onError = null); - Task WatchUpdatePropertyAsync(Action handler, Action? onError = null); - } - - - [DBusInterface("org.freedesktop.IBus.Portal")] - interface IIBusPortal : IDBusObject - { - Task CreateInputContextAsync(string Name); - } -} diff --git a/src/Avalonia.FreeDesktop/DBusIme/IBus/IBusEnums.cs b/src/Avalonia.FreeDesktop/DBusIme/IBus/IBusEnums.cs index 3070f51a8e..b8ac816694 100644 --- a/src/Avalonia.FreeDesktop/DBusIme/IBus/IBusEnums.cs +++ b/src/Avalonia.FreeDesktop/DBusIme/IBus/IBusEnums.cs @@ -18,7 +18,7 @@ namespace Avalonia.FreeDesktop.DBusIme.IBus Button3Mask = 1 << 10, Button4Mask = 1 << 11, Button5Mask = 1 << 12, - + HandledMask = 1 << 24, ForwardMask = 1 << 25, IgnoredMask = ForwardMask, diff --git a/src/Avalonia.FreeDesktop/DBusIme/IBus/IBusX11TextInputMethod.cs b/src/Avalonia.FreeDesktop/DBusIme/IBus/IBusX11TextInputMethod.cs index 2324ca44a7..f3ab8617a4 100644 --- a/src/Avalonia.FreeDesktop/DBusIme/IBus/IBusX11TextInputMethod.cs +++ b/src/Avalonia.FreeDesktop/DBusIme/IBus/IBusX11TextInputMethod.cs @@ -1,35 +1,32 @@ -using System.Collections.Generic; +using System; using System.Threading.Tasks; using Avalonia.Input; using Avalonia.Input.Raw; using Avalonia.Input.TextInput; -using Tmds.DBus; +using Tmds.DBus.Protocol; namespace Avalonia.FreeDesktop.DBusIme.IBus { internal class IBusX11TextInputMethod : DBusTextInputMethodBase { - private IIBusInputContext? _context; + private Service? _service; + private InputContext? _context; - public IBusX11TextInputMethod(Connection connection) : base(connection, - "org.freedesktop.portal.IBus") - { - } + public IBusX11TextInputMethod(Connection connection) : base(connection, "org.freedesktop.portal.IBus") { } protected override async Task Connect(string name) { - var path = - await Connection.CreateProxy(name, "/org/freedesktop/IBus") - .CreateInputContextAsync(GetAppName()); - - _context = Connection.CreateProxy(name, path); + var service = new IBusService(Connection, name); + var path = await service.CreatePortal("/org/freedesktop/IBus").CreateInputContextAsync(GetAppName()); + _context = service.CreateInputContext(path); + _service = service.CreateService(path); AddDisposable(await _context.WatchCommitTextAsync(OnCommitText)); AddDisposable(await _context.WatchForwardKeyEventAsync(OnForwardKey)); Enqueue(() => _context.SetCapabilitiesAsync((uint)IBusCapability.CapFocus)); return true; } - private void OnForwardKey((uint keyval, uint keycode, uint state) k) + private void OnForwardKey(Exception? e, (uint keyval, uint keycode, uint state) k) { var state = (IBusModifierMask)k.state; KeyModifiers mods = default; @@ -49,8 +46,7 @@ namespace Avalonia.FreeDesktop.DBusIme.IBus }); } - - private void OnCommitText(object wtf) + private void OnCommitText(Exception? e, object wtf) { // Hello darkness, my old friend if (wtf.GetType().GetField("Item3") is { } prop) @@ -61,16 +57,16 @@ namespace Avalonia.FreeDesktop.DBusIme.IBus } } - protected override Task Disconnect() => _context?.DestroyAsync() - ?? Task.CompletedTask; + protected override Task DisconnectAsync() => _service?.DestroyAsync() ?? Task.CompletedTask; protected override void OnDisconnected() { + _service = null; _context = null; base.OnDisconnected(); } - protected override Task SetCursorRectCore(PixelRect rect) + protected override Task SetCursorRectCore(PixelRect rect) => _context?.SetCursorLocationAsync(rect.X, rect.Y, rect.Width, rect.Height) ?? Task.CompletedTask; @@ -96,20 +92,12 @@ namespace Avalonia.FreeDesktop.DBusIme.IBus if (args.Type == RawKeyEventType.KeyUp) state |= IBusModifierMask.ReleaseMask; - if(_context is { }) - { - return _context.ProcessKeyEventAsync((uint)keyVal, (uint)keyCode, (uint)state); - } - else - { - return Task.FromResult(false); - } - + return _context is not null ? _context.ProcessKeyEventAsync((uint)keyVal, (uint)keyCode, (uint)state) : Task.FromResult(false); } public override void SetOptions(TextInputOptions options) { - // No-op, because ibus + // No-op, because ibus } } } diff --git a/src/Avalonia.FreeDesktop/DBusIme/X11DBusImeHelper.cs b/src/Avalonia.FreeDesktop/DBusIme/X11DBusImeHelper.cs index 86978c8b60..c68e10043b 100644 --- a/src/Avalonia.FreeDesktop/DBusIme/X11DBusImeHelper.cs +++ b/src/Avalonia.FreeDesktop/DBusIme/X11DBusImeHelper.cs @@ -2,44 +2,43 @@ using System; using System.Collections.Generic; using Avalonia.FreeDesktop.DBusIme.Fcitx; using Avalonia.FreeDesktop.DBusIme.IBus; -using Tmds.DBus; +using Tmds.DBus.Protocol; namespace Avalonia.FreeDesktop.DBusIme { public class X11DBusImeHelper { - private static readonly Dictionary> KnownMethods = - new Dictionary> + private static readonly Dictionary> KnownMethods = new() { - ["fcitx"] = conn => + ["fcitx"] = static conn => new DBusInputMethodFactory(_ => new FcitxX11TextInputMethod(conn)), - ["ibus"] = conn => + ["ibus"] = static conn => new DBusInputMethodFactory(_ => new IBusX11TextInputMethod(conn)) }; - - static Func? DetectInputMethod() + + private static Func? DetectInputMethod() { foreach (var name in new[] { "AVALONIA_IM_MODULE", "GTK_IM_MODULE", "QT_IM_MODULE" }) { var value = Environment.GetEnvironmentVariable(name); - + if (value == "none") return null; - - if (value != null && KnownMethods.TryGetValue(value, out var factory)) + + if (value is not null && KnownMethods.TryGetValue(value, out var factory)) return factory; } return null; } - + public static bool DetectAndRegister() { var factory = DetectInputMethod(); - if (factory != null) + if (factory is not null) { var conn = DBusHelper.TryInitialize(); - if (conn != null) + if (conn is not null) { AvaloniaLocator.CurrentMutable.Bind().ToConstant(factory(conn)); return true; diff --git a/src/Avalonia.FreeDesktop/DBusMenu.DBus.cs b/src/Avalonia.FreeDesktop/DBusMenu.DBus.cs new file mode 100644 index 0000000000..d9016d8644 --- /dev/null +++ b/src/Avalonia.FreeDesktop/DBusMenu.DBus.cs @@ -0,0 +1,463 @@ +using System; +using Tmds.DBus.Protocol; +using System.Collections.Generic; +using System.Threading.Tasks; + +namespace Avalonia.FreeDesktop +{ + internal record DBusMenuProperties + { + public uint Version { get; set; } + public string TextDirection { get; set; } = default!; + public string Status { get; set; } = default!; + public string[] IconThemePath { get; set; } = default!; + } + + internal class DBusMenu : DBusMenuObject + { + private const string Interface = "com.canonical.dbusmenu"; + public DBusMenu(DBusMenuService service, ObjectPath path) : base(service, path) + { } + public Task<(uint Revision, (int, Dictionary, object[]) Layout)> GetLayoutAsync(int parentId, int recursionDepth, string[] propertyNames) + { + return Connection.CallMethodAsync(CreateMessage(), (m, s) => ReadMessage_uriaesvavz(m, (DBusMenuObject)s!), this); + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + signature: "iias", + member: "GetLayout"); + writer.WriteInt32(parentId); + writer.WriteInt32(recursionDepth); + writer.WriteArray(propertyNames); + return writer.CreateMessage(); + } + } + public Task<(int, Dictionary)[]> GetGroupPropertiesAsync(int[] ids, string[] propertyNames) + { + return Connection.CallMethodAsync(CreateMessage(), (m, s) => ReadMessage_ariaesvz(m, (DBusMenuObject)s!), this); + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + signature: "aias", + member: "GetGroupProperties"); + writer.WriteArray(ids); + writer.WriteArray(propertyNames); + return writer.CreateMessage(); + } + } + public Task GetPropertyAsync(int id, string name) + { + return Connection.CallMethodAsync(CreateMessage(), (m, s) => ReadMessage_v(m, (DBusMenuObject)s!), this); + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + signature: "is", + member: "GetProperty"); + writer.WriteInt32(id); + writer.WriteString(name); + return writer.CreateMessage(); + } + } + public Task EventAsync(int id, string eventId, object data, uint timestamp) + { + return Connection.CallMethodAsync(CreateMessage()); + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + signature: "isvu", + member: "Event"); + writer.WriteInt32(id); + writer.WriteString(eventId); + writer.WriteVariant(data); + writer.WriteUInt32(timestamp); + return writer.CreateMessage(); + } + } + public Task EventGroupAsync((int, string, object, uint)[] events) + { + return Connection.CallMethodAsync(CreateMessage(), (m, s) => ReadMessage_ai(m, (DBusMenuObject)s!), this); + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + signature: "a(isvu)", + member: "EventGroup"); + writer.WriteArray(events); + return writer.CreateMessage(); + } + } + public Task AboutToShowAsync(int id) + { + return Connection.CallMethodAsync(CreateMessage(), (m, s) => ReadMessage_b(m, (DBusMenuObject)s!), this); + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + signature: "i", + member: "AboutToShow"); + writer.WriteInt32(id); + return writer.CreateMessage(); + } + } + public Task<(int[] UpdatesNeeded, int[] IdErrors)> AboutToShowGroupAsync(int[] ids) + { + return Connection.CallMethodAsync(CreateMessage(), (m, s) => ReadMessage_aiai(m, (DBusMenuObject)s!), this); + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + signature: "ai", + member: "AboutToShowGroup"); + writer.WriteArray(ids); + return writer.CreateMessage(); + } + } + public ValueTask WatchItemsPropertiesUpdatedAsync(Action)[] UpdatedProps, (int, string[])[] RemovedProps)> handler, bool emitOnCapturedContext = true) + => WatchSignalAsync(Service.Destination, Interface, Path, "ItemsPropertiesUpdated", (m, s) => ReadMessage_ariaesvzariasz(m, (DBusMenuObject)s!), handler, emitOnCapturedContext); + public ValueTask WatchLayoutUpdatedAsync(Action handler, bool emitOnCapturedContext = true) + => WatchSignalAsync(Service.Destination, Interface, Path, "LayoutUpdated", (m, s) => ReadMessage_ui(m, (DBusMenuObject)s!), handler, emitOnCapturedContext); + public ValueTask WatchItemActivationRequestedAsync(Action handler, bool emitOnCapturedContext = true) + => WatchSignalAsync(Service.Destination, Interface, Path, "ItemActivationRequested", (m, s) => ReadMessage_iu(m, (DBusMenuObject)s!), handler, emitOnCapturedContext); + public Task SetVersionAsync(uint value) + { + return Connection.CallMethodAsync(CreateMessage()); + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + "org.freedesktop.DBus.Properties", + signature: "ssv", + member: "Set"); + writer.WriteString(Interface); + writer.WriteString("Version"); + writer.WriteSignature("u"); + writer.WriteUInt32(value); + return writer.CreateMessage(); + } + } + public Task SetTextDirectionAsync(string value) + { + return Connection.CallMethodAsync(CreateMessage()); + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + "org.freedesktop.DBus.Properties", + signature: "ssv", + member: "Set"); + writer.WriteString(Interface); + writer.WriteString("TextDirection"); + writer.WriteSignature("s"); + writer.WriteString(value); + return writer.CreateMessage(); + } + } + public Task SetStatusAsync(string value) + { + return Connection.CallMethodAsync(CreateMessage()); + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + "org.freedesktop.DBus.Properties", + signature: "ssv", + member: "Set"); + writer.WriteString(Interface); + writer.WriteString("Status"); + writer.WriteSignature("s"); + writer.WriteString(value); + return writer.CreateMessage(); + } + } + public Task SetIconThemePathAsync(string[] value) + { + return Connection.CallMethodAsync(CreateMessage()); + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + "org.freedesktop.DBus.Properties", + signature: "ssv", + member: "Set"); + writer.WriteString(Interface); + writer.WriteString("IconThemePath"); + writer.WriteSignature("as"); + writer.WriteArray(value); + return writer.CreateMessage(); + } + } + public Task GetVersionAsync() + => Connection.CallMethodAsync(CreateGetPropertyMessage(Interface, "Version"), (m, s) => ReadMessage_v_u(m, (DBusMenuObject)s!), this); + public Task GetTextDirectionAsync() + => Connection.CallMethodAsync(CreateGetPropertyMessage(Interface, "TextDirection"), (m, s) => ReadMessage_v_s(m, (DBusMenuObject)s!), this); + public Task GetStatusAsync() + => Connection.CallMethodAsync(CreateGetPropertyMessage(Interface, "Status"), (m, s) => ReadMessage_v_s(m, (DBusMenuObject)s!), this); + public Task GetIconThemePathAsync() + => Connection.CallMethodAsync(CreateGetPropertyMessage(Interface, "IconThemePath"), (m, s) => ReadMessage_v_as(m, (DBusMenuObject)s!), this); + public Task GetPropertiesAsync() + { + return Connection.CallMethodAsync(CreateGetAllPropertiesMessage(Interface), (m, s) => ReadMessage(m, (DBusMenuObject)s!), this); + static DBusMenuProperties ReadMessage(Message message, DBusMenuObject _) + { + var reader = message.GetBodyReader(); + return ReadProperties(ref reader); + } + } + public ValueTask WatchPropertiesChangedAsync(Action> handler, bool emitOnCapturedContext = true) + { + return base.WatchPropertiesChangedAsync(Interface, (m, s) => ReadMessage(m, (DBusMenuObject)s!), handler, emitOnCapturedContext); + static PropertyChanges ReadMessage(Message message, DBusMenuObject _) + { + var reader = message.GetBodyReader(); + reader.ReadString(); // interface + List changed = new(), invalidated = new(); + return new PropertyChanges(ReadProperties(ref reader, changed), changed.ToArray(), ReadInvalidated(ref reader)); + } + static string[] ReadInvalidated(ref Reader reader) + { + List? invalidated = null; + ArrayEnd headersEnd = reader.ReadArrayStart(DBusType.String); + while (reader.HasNext(headersEnd)) + { + invalidated ??= new(); + var property = reader.ReadString(); + switch (property) + { + case "Version": invalidated.Add("Version"); break; + case "TextDirection": invalidated.Add("TextDirection"); break; + case "Status": invalidated.Add("Status"); break; + case "IconThemePath": invalidated.Add("IconThemePath"); break; + } + } + return invalidated?.ToArray() ?? Array.Empty(); + } + } + private static DBusMenuProperties ReadProperties(ref Reader reader, List? changedList = null) + { + var props = new DBusMenuProperties(); + ArrayEnd headersEnd = reader.ReadArrayStart(DBusType.Struct); + while (reader.HasNext(headersEnd)) + { + var property = reader.ReadString(); + switch (property) + { + case "Version": + reader.ReadSignature("u"); + props.Version = reader.ReadUInt32(); + changedList?.Add("Version"); + break; + case "TextDirection": + reader.ReadSignature("s"); + props.TextDirection = reader.ReadString(); + changedList?.Add("TextDirection"); + break; + case "Status": + reader.ReadSignature("s"); + props.Status = reader.ReadString(); + changedList?.Add("Status"); + break; + case "IconThemePath": + reader.ReadSignature("as"); + props.IconThemePath = reader.ReadArray(); + changedList?.Add("IconThemePath"); + break; + default: + reader.ReadVariant(); + break; + } + } + return props; + } + } + + internal class DBusMenuService + { + public Connection Connection { get; } + public string Destination { get; } + public DBusMenuService(Connection connection, string destination) + => (Connection, Destination) = (connection, destination); + public DBusMenu CreateDbusmenu(string path) => new DBusMenu(this, path); + } + + internal class DBusMenuObject + { + public DBusMenuService Service { get; } + public ObjectPath Path { get; } + protected Connection Connection => Service.Connection; + protected DBusMenuObject(DBusMenuService service, ObjectPath path) + => (Service, Path) = (service, path); + protected MessageBuffer CreateGetPropertyMessage(string @interface, string property) + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + "org.freedesktop.DBus.Properties", + signature: "ss", + member: "Get"); + writer.WriteString(@interface); + writer.WriteString(property); + return writer.CreateMessage(); + } + protected MessageBuffer CreateGetAllPropertiesMessage(string @interface) + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + "org.freedesktop.DBus.Properties", + signature: "s", + member: "GetAll"); + writer.WriteString(@interface); + return writer.CreateMessage(); + } + protected ValueTask WatchPropertiesChangedAsync(string @interface, MessageValueReader> reader, Action> handler, bool emitOnCapturedContext) + { + var rule = new MatchRule + { + Type = MessageType.Signal, + Sender = Service.Destination, + Path = Path, + Interface = "org.freedesktop.DBus.Properties", + Member = "PropertiesChanged", + Arg0 = @interface + }; + return Connection.AddMatchAsync(rule, reader, + (ex, changes, rs, hs) => ((Action>)hs!).Invoke(ex, changes), + this, handler, emitOnCapturedContext); + } + public ValueTask WatchSignalAsync(string sender, string @interface, ObjectPath path, string signal, MessageValueReader reader, Action handler, bool emitOnCapturedContext) + { + var rule = new MatchRule + { + Type = MessageType.Signal, + Sender = sender, + Path = path, + Member = signal, + Interface = @interface + }; + return Connection.AddMatchAsync(rule, reader, + (ex, arg, rs, hs) => ((Action)hs!).Invoke(ex, arg), + this, handler, emitOnCapturedContext); + } + public ValueTask WatchSignalAsync(string sender, string @interface, ObjectPath path, string signal, Action handler, bool emitOnCapturedContext) + { + var rule = new MatchRule + { + Type = MessageType.Signal, + Sender = sender, + Path = path, + Member = signal, + Interface = @interface + }; + return Connection.AddMatchAsync(rule, (message, state) => null!, + (ex, v, rs, hs) => ((Action)hs!).Invoke(ex), this, handler, emitOnCapturedContext); + } + protected static (uint, (int, Dictionary, object[])) ReadMessage_uriaesvavz(Message message, DBusMenuObject _) + { + var reader = message.GetBodyReader(); + var arg0 = reader.ReadUInt32(); + var arg1 = reader.ReadStruct, object[]>(); + return (arg0, arg1); + } + protected static (int, Dictionary)[] ReadMessage_ariaesvz(Message message, DBusMenuObject _) + { + var reader = message.GetBodyReader(); + return reader.ReadArray<(int, Dictionary)>(); + } + protected static object ReadMessage_v(Message message, DBusMenuObject _) + { + var reader = message.GetBodyReader(); + return reader.ReadVariant(); + } + protected static int[] ReadMessage_ai(Message message, DBusMenuObject _) + { + var reader = message.GetBodyReader(); + return reader.ReadArray(); + } + protected static bool ReadMessage_b(Message message, DBusMenuObject _) + { + var reader = message.GetBodyReader(); + return reader.ReadBool(); + } + protected static (int[], int[]) ReadMessage_aiai(Message message, DBusMenuObject _) + { + var reader = message.GetBodyReader(); + var arg0 = reader.ReadArray(); + var arg1 = reader.ReadArray(); + return (arg0, arg1); + } + protected static ((int, Dictionary)[], (int, string[])[]) ReadMessage_ariaesvzariasz(Message message, DBusMenuObject _) + { + var reader = message.GetBodyReader(); + var arg0 = reader.ReadArray<(int, Dictionary)>(); + var arg1 = reader.ReadArray<(int, string[])>(); + return (arg0, arg1); + } + protected static (uint, int) ReadMessage_ui(Message message, DBusMenuObject _) + { + var reader = message.GetBodyReader(); + var arg0 = reader.ReadUInt32(); + var arg1 = reader.ReadInt32(); + return (arg0, arg1); + } + protected static (int, uint) ReadMessage_iu(Message message, DBusMenuObject _) + { + var reader = message.GetBodyReader(); + var arg0 = reader.ReadInt32(); + var arg1 = reader.ReadUInt32(); + return (arg0, arg1); + } + protected static uint ReadMessage_v_u(Message message, DBusMenuObject _) + { + var reader = message.GetBodyReader(); + reader.ReadSignature("u"); + return reader.ReadUInt32(); + } + protected static string ReadMessage_v_s(Message message, DBusMenuObject _) + { + var reader = message.GetBodyReader(); + reader.ReadSignature("s"); + return reader.ReadString(); + } + protected static string[] ReadMessage_v_as(Message message, DBusMenuObject _) + { + var reader = message.GetBodyReader(); + reader.ReadSignature("as"); + return reader.ReadArray(); + } + } +} diff --git a/src/Avalonia.FreeDesktop/DBusMenu.cs b/src/Avalonia.FreeDesktop/DBusMenu.cs deleted file mode 100644 index 3a1c65e7c9..0000000000 --- a/src/Avalonia.FreeDesktop/DBusMenu.cs +++ /dev/null @@ -1,56 +0,0 @@ - -using System; -using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Threading.Tasks; -using Tmds.DBus; - -[assembly: InternalsVisibleTo(Tmds.DBus.Connection.DynamicAssemblyName)] -namespace Avalonia.FreeDesktop.DBusMenu -{ - - [DBusInterface("org.freedesktop.DBus.Properties")] - interface IFreeDesktopDBusProperties : IDBusObject - { - Task GetAsync(string prop); - Task GetAllAsync(); - Task SetAsync(string prop, object val); - Task WatchPropertiesAsync(Action handler); - } - - [DBusInterface("com.canonical.dbusmenu")] - interface IDBusMenu : IFreeDesktopDBusProperties - { - Task<(uint revision, (int, KeyValuePair[], object[]) layout)> GetLayoutAsync(int ParentId, int RecursionDepth, string[] PropertyNames); - Task<(int, KeyValuePair[])[]> GetGroupPropertiesAsync(int[] Ids, string[] PropertyNames); - Task GetPropertyAsync(int Id, string Name); - Task EventAsync(int Id, string EventId, object Data, uint Timestamp); - Task EventGroupAsync((int id, string eventId, object data, uint timestamp)[] events); - Task AboutToShowAsync(int Id); - Task<(int[] updatesNeeded, int[] idErrors)> AboutToShowGroupAsync(int[] Ids); - Task WatchItemsPropertiesUpdatedAsync(Action<((int, IDictionary)[] updatedProps, (int, string[])[] removedProps)> handler, Action? onError = null); - Task WatchLayoutUpdatedAsync(Action<(uint revision, int parent)> handler, Action? onError = null); - Task WatchItemActivationRequestedAsync(Action<(int id, uint timestamp)> handler, Action? onError = null); - } - - [Dictionary] - class DBusMenuProperties - { - public uint Version { get; set; } = default (uint); - public string? TextDirection { get; set; } = default (string); - public string? Status { get; set; } = default (string); - public string[]? IconThemePath { get; set; } = default (string[]); - } - - - [DBusInterface("com.canonical.AppMenu.Registrar")] - interface IRegistrar : IDBusObject - { - Task RegisterWindowAsync(uint WindowId, ObjectPath MenuObjectPath); - Task UnregisterWindowAsync(uint WindowId); - Task<(string service, ObjectPath menuObjectPath)> GetMenuForWindowAsync(uint WindowId); - Task<(uint, string, ObjectPath)[]> GetMenusAsync(); - Task WatchWindowRegisteredAsync(Action<(uint windowId, string service, ObjectPath menuObjectPath)> handler, Action? onError = null); - Task WatchWindowUnregisteredAsync(Action handler, Action? onError = null); - } -} diff --git a/src/Avalonia.FreeDesktop/DBusMenuExporter.cs b/src/Avalonia.FreeDesktop/DBusMenuExporter.cs index 657e324010..682434bc8d 100644 --- a/src/Avalonia.FreeDesktop/DBusMenuExporter.cs +++ b/src/Avalonia.FreeDesktop/DBusMenuExporter.cs @@ -2,98 +2,81 @@ using System; using System.Collections.Generic; using System.Collections.Specialized; using System.IO; -using System.Reactive.Disposables; +using System.Linq; using System.Threading.Tasks; using Avalonia.Controls; using Avalonia.Controls.Platform; -using Avalonia.FreeDesktop.DBusMenu; using Avalonia.Input; using Avalonia.Platform; using Avalonia.Threading; -using Tmds.DBus; +using Tmds.DBus.Protocol; + #pragma warning disable 1998 namespace Avalonia.FreeDesktop { public class DBusMenuExporter { - public static ITopLevelNativeMenuExporter? TryCreateTopLevelNativeMenu(IntPtr xid) - { - if (DBusHelper.Connection == null) - return null; + public static ITopLevelNativeMenuExporter? TryCreateTopLevelNativeMenu(IntPtr xid) => + DBusHelper.Connection is null ? null : new DBusMenuExporterImpl(DBusHelper.Connection, xid); - return new DBusMenuExporterImpl(DBusHelper.Connection, xid); - } - - public static INativeMenuExporter TryCreateDetachedNativeMenu(ObjectPath path, Connection currentConection) - { - return new DBusMenuExporterImpl(currentConection, path); - } + public static INativeMenuExporter TryCreateDetachedNativeMenu(string path, Connection currentConnection) => + new DBusMenuExporterImpl(currentConnection, path); - public static ObjectPath GenerateDBusMenuObjPath => "/net/avaloniaui/dbusmenu/" - + Guid.NewGuid().ToString("N"); + public static string GenerateDBusMenuObjPath => $"/net/avaloniaui/dbusmenu/{Guid.NewGuid():N}"; - private class DBusMenuExporterImpl : ITopLevelNativeMenuExporter, IDBusMenu, IDisposable + private class DBusMenuExporterImpl : ITopLevelNativeMenuExporter, IMethodHandler, IDisposable { - private readonly Connection _dbus; + private readonly Connection _connection; + private readonly DBusMenuProperties _dBusMenuProperties = new() { Version = 2, Status = "normal" }; + private readonly Dictionary _idsToItems = new(); + private readonly Dictionary _itemsToIds = new(); + private readonly HashSet _menus = new(); private readonly uint _xid; - private IRegistrar? _registrar; + private readonly bool _appMenu = true; + private Registrar? _registrar; + private NativeMenu? _menu; private bool _disposed; private uint _revision = 1; - private NativeMenu? _menu; - private readonly Dictionary _idsToItems = new Dictionary(); - private readonly Dictionary _itemsToIds = new Dictionary(); - private readonly HashSet _menus = new HashSet(); private bool _resetQueued; private int _nextId = 1; - private bool _appMenu = true; - - public DBusMenuExporterImpl(Connection dbus, IntPtr xid) + + public DBusMenuExporterImpl(Connection connection, IntPtr xid) { - _dbus = dbus; + _connection = connection; _xid = (uint)xid.ToInt32(); - ObjectPath = GenerateDBusMenuObjPath; + Path = GenerateDBusMenuObjPath; SetNativeMenu(new NativeMenu()); Init(); } - public DBusMenuExporterImpl(Connection dbus, ObjectPath path) + public DBusMenuExporterImpl(Connection connection, string path) { - _dbus = dbus; + _connection = connection; _appMenu = false; - ObjectPath = path; + Path = path; SetNativeMenu(new NativeMenu()); Init(); } - - async void Init() - { - try - { - if (_appMenu) - { - await _dbus.RegisterObjectAsync(this); - _registrar = DBusHelper.Connection?.CreateProxy( - "com.canonical.AppMenu.Registrar", - "/com/canonical/AppMenu/Registrar"); - if (!_disposed && _registrar is { }) - await _registrar.RegisterWindowAsync(_xid, ObjectPath); - } - else - { - await _dbus.RegisterObjectAsync(this); - } - } - catch (Exception e) - { - Logging.Logger.TryGet(Logging.LogEventLevel.Error, Logging.LogArea.X11Platform) - ?.Log(this, e.Message); - // It's not really important if this code succeeds, - // and it's not important to know if it succeeds - // since even if we register the window it's not guaranteed that - // menu will be actually exported - } + public string Path { get; } + + private async void Init() + { + _connection.AddMethodHandler(this); + if (!_appMenu) + return; + var services = await _connection.ListServicesAsync(); + if (!services.Contains("com.canonical.AppMenu.Registrar")) + return; + _registrar = new RegistrarService(_connection, "com.canonical.AppMenu.Registrar") + .CreateRegistrar("/com/canonical/AppMenu/Registrar"); + if (!_disposed) + await _registrar.RegisterWindowAsync(_xid, Path); + // It's not really important if this code succeeds, + // and it's not important to know if it succeeds + // since even if we register the window it's not guaranteed that + // menu will be actually exported } public void Dispose() @@ -101,7 +84,7 @@ namespace Avalonia.FreeDesktop if (_disposed) return; _disposed = true; - _dbus.UnregisterObject(this); + // Fire and forget _registrar?.UnregisterWindowAsync(_xid); } @@ -113,17 +96,17 @@ namespace Avalonia.FreeDesktop public void SetNativeMenu(NativeMenu? menu) { - if (menu == null) + if (menu is null) menu = new NativeMenu(); - if (_menu != null) + if (_menu is not null) ((INotifyCollectionChanged)_menu.Items).CollectionChanged -= OnMenuItemsChanged; _menu = menu; ((INotifyCollectionChanged)_menu.Items).CollectionChanged += OnMenuItemsChanged; - + DoLayoutReset(); } - + /* This is basic initial implementation, so we don't actually track anything and just reset the whole layout on *ANY* change @@ -131,10 +114,10 @@ namespace Avalonia.FreeDesktop This is not how it should work and will prevent us from implementing various features, but that's the fastest way to get things working, so... */ - void DoLayoutReset() + private void DoLayoutReset() { _resetQueued = false; - foreach (var i in _idsToItems.Values) + foreach (var i in _idsToItems.Values) i.PropertyChanged -= OnItemPropertyChanged; foreach(var menu in _menus) ((INotifyCollectionChanged)menu.Items).CollectionChanged -= OnMenuItemsChanged; @@ -142,10 +125,10 @@ namespace Avalonia.FreeDesktop _idsToItems.Clear(); _itemsToIds.Clear(); _revision++; - LayoutUpdated?.Invoke((_revision, 0)); + EmitUIntIntSignal("LayoutUpdated", _revision, 0); } - void QueueReset() + private void QueueReset() { if(_resetQueued) return; @@ -163,10 +146,10 @@ namespace Avalonia.FreeDesktop private void EnsureSubscribed(NativeMenu? menu) { - if(menu!=null && _menus.Add(menu)) + if (menu is not null && _menus.Add(menu)) ((INotifyCollectionChanged)menu.Items).CollectionChanged += OnMenuItemsChanged; } - + private int GetId(NativeMenuItemBase item) { if (_itemsToIds.TryGetValue(item, out var id)) @@ -190,33 +173,11 @@ namespace Avalonia.FreeDesktop QueueReset(); } - public ObjectPath ObjectPath { get; } - - - async Task IFreeDesktopDBusProperties.GetAsync(string prop) - { - if (prop == "Version") - return 2; - if (prop == "Status") - return "normal"; - return 0; - } - - async Task IFreeDesktopDBusProperties.GetAllAsync() - { - return new DBusMenuProperties - { - Version = 2, - Status = "normal", - }; - } - - private static string[] AllProperties = new[] - { + private static readonly string[] AllProperties = { "type", "label", "enabled", "visible", "shortcut", "toggle-type", "children-display", "toggle-state", "icon-data" }; - - object? GetProperty((NativeMenuItemBase? item, NativeMenu? menu) i, string name) + + private object? GetProperty((NativeMenuItemBase? item, NativeMenu? menu) i, string name) { var (it, menu) = i; @@ -228,24 +189,20 @@ namespace Avalonia.FreeDesktop else if (it is NativeMenuItem item) { if (name == "type") - { return null; - } if (name == "label") - return item?.Header ?? ""; + return item.Header ?? ""; if (name == "enabled") { - if (item == null) - return null; - if (item.Menu != null && item.Menu.Items.Count == 0) + if (item.Menu is not null && item.Menu.Items.Count == 0) return false; - if (item.IsEnabled == false) + if (!item.IsEnabled) return false; return null; } if (name == "shortcut") { - if (item?.Gesture == null) + if (item.Gesture is null) return null; if (item.Gesture.KeyModifiers == 0) return null; @@ -271,19 +228,16 @@ namespace Avalonia.FreeDesktop return "radio"; } - if (name == "toggle-state") - { - if (item.ToggleType != NativeMenuItemToggleType.None) - return item.IsChecked ? 1 : 0; - } - + if (name == "toggle-state" && item.ToggleType != NativeMenuItemToggleType.None) + return item.IsChecked ? 1 : 0; + if (name == "icon-data") { - if (item.Icon != null) + if (item.Icon is not null) { var loader = AvaloniaLocator.Current.GetService(); - if (loader != null) + if (loader is not null) { var icon = loader.LoadIcon(item.Icon.PlatformImpl.Item); @@ -293,155 +247,199 @@ namespace Avalonia.FreeDesktop } } } - + if (name == "children-display") - return menu != null ? "submenu" : null; + return menu is not null ? "submenu" : null; } return null; } - private List> _reusablePropertyList = new List>(); - KeyValuePair[] GetProperties((NativeMenuItemBase? item, NativeMenu? menu) i, string[] names) + private Dictionary GetProperties((NativeMenuItemBase? item, NativeMenu? menu) i, string[] names) { - if (names?.Length > 0 != true) + if (names.Length == 0) names = AllProperties; - _reusablePropertyList.Clear(); + var properties = new Dictionary(); foreach (var n in names) { var v = GetProperty(i, n); - if (v != null) - _reusablePropertyList.Add(new KeyValuePair(n, v)); + if (v is not null) + properties.Add(n, v); } - return _reusablePropertyList.ToArray(); + return properties; } - - public Task SetAsync(string prop, object val) => Task.CompletedTask; - - public Task<(uint revision, (int, KeyValuePair[], object[]) layout)> GetLayoutAsync( - int ParentId, int RecursionDepth, string[] PropertyNames) + private (int, Dictionary, object[]) GetLayout(NativeMenuItemBase? item, NativeMenu? menu, int depth, string[] propertyNames) { - var menu = GetMenu(ParentId); - var rv = (_revision, GetLayout(menu.item, menu.menu, RecursionDepth, PropertyNames)); - if (!IsNativeMenuExported) - { - IsNativeMenuExported = true; - Dispatcher.UIThread.Post(() => - { - OnIsNativeMenuExportedChanged?.Invoke(this, EventArgs.Empty); - }); - } - return Task.FromResult(rv); - } - - (int, KeyValuePair[], object[]) GetLayout(NativeMenuItemBase? item, NativeMenu? menu, int depth, string[] propertyNames) - { - var id = item == null ? 0 : GetId(item); + var id = item is null ? 0 : GetId(item); var props = GetProperties((item, menu), propertyNames); - var children = (depth == 0 || menu == null) ? Array.Empty() : new object[menu.Items.Count]; - if(menu != null) + var children = depth == 0 || menu is null ? Array.Empty() : new object[menu.Items.Count]; + if (menu is not null) + { for (var c = 0; c < children.Length; c++) { var ch = menu.Items[c]; - children[c] = GetLayout(ch, (ch as NativeMenuItem)?.Menu, depth == -1 ? -1 : depth - 1, propertyNames); } - - return (id, props, children); - } - - public Task<(int, KeyValuePair[])[]> GetGroupPropertiesAsync(int[] Ids, string[] PropertyNames) - { - var arr = new (int, KeyValuePair[])[Ids.Length]; - for (var c = 0; c < Ids.Length; c++) - { - var id = Ids[c]; - var item = GetMenu(id); - var props = GetProperties(item, PropertyNames); - arr[c] = (id, props); } - return Task.FromResult(arr); - } - - public async Task GetPropertyAsync(int Id, string Name) - { - return GetProperty(GetMenu(Id), Name) ?? 0; + return (id, props, children); } - - public void HandleEvent(int id, string eventId, object data, uint timestamp) + private void HandleEvent(int id, string eventId, object data, uint timestamp) { if (eventId == "clicked") { var item = GetMenu(id).item; - - if (item is NativeMenuItem menuItem && item is INativeMenuItemExporterEventsImplBridge bridge) - { - if (menuItem?.IsEnabled == true) - bridge?.RaiseClicked(); - } + if (item is NativeMenuItem { IsEnabled: true } and INativeMenuItemExporterEventsImplBridge bridge) + bridge.RaiseClicked(); } } - - public Task EventAsync(int Id, string EventId, object Data, uint Timestamp) - { - HandleEvent(Id, EventId, Data, Timestamp); - return Task.CompletedTask; - } - public Task EventGroupAsync((int id, string eventId, object data, uint timestamp)[] Events) + public ValueTask HandleMethodAsync(MethodContext context) { - foreach (var e in Events) - HandleEvent(e.id, e.eventId, e.data, e.timestamp); - return Task.FromResult(Array.Empty()); - } - - public async Task AboutToShowAsync(int Id) - { - return false; - } - - public async Task<(int[] updatesNeeded, int[] idErrors)> AboutToShowGroupAsync(int[] Ids) - { - return (Array.Empty(), Array.Empty()); - } + switch (context.Request.InterfaceAsString) + { + case "com.canonical.dbusmenu": + switch (context.Request.MemberAsString, context.Request.SignatureAsString) + { + case ("GetLayout", "iias"): + { + using var writer = context.CreateReplyWriter("u(ia{sv}av)"); + var reader = context.Request.GetBodyReader(); + var parentId = reader.ReadInt32(); + var recursionDepth = reader.ReadInt32(); + var propertyNames = reader.ReadArray(); + var menu = GetMenu(parentId); + var layout = GetLayout(menu.item, menu.menu, recursionDepth, propertyNames); + writer.WriteUInt32(_revision); + writer.WriteStruct(layout); + if (!IsNativeMenuExported) + { + IsNativeMenuExported = true; + Dispatcher.UIThread.Post(() => OnIsNativeMenuExportedChanged?.Invoke(this, EventArgs.Empty)); + } + + context.Reply(writer.CreateMessage()); + break; + } + case ("GetGroupProperties", "aias"): + { + using var writer = context.CreateReplyWriter("a(ia{sv})"); + var reader = context.Request.GetBodyReader(); + var ids = reader.ReadArray(); + var propertyNames = reader.ReadArray(); + var arrayStart = writer.WriteArrayStart(DBusType.Struct); + foreach (var id in ids) + { + var item = GetMenu(id); + var props = GetProperties(item, propertyNames); + writer.WriteStruct((id, props)); + } + + writer.WriteArrayEnd(arrayStart); + context.Reply(writer.CreateMessage()); + break; + } + case ("GetProperty", "is"): + { + using var writer = context.CreateReplyWriter("v"); + var reader = context.Request.GetBodyReader(); + var id = reader.ReadInt32(); + var name = reader.ReadString(); + writer.WriteVariant(GetProperty(GetMenu(id), name) ?? 0); + context.Reply(writer.CreateMessage()); + break; + } + case ("Event", "isvu"): + { + var reader = context.Request.GetBodyReader(); + var id = reader.ReadInt32(); + var eventId = reader.ReadString(); + var data = reader.ReadVariant(); + var timestamp = reader.ReadUInt32(); + Dispatcher.UIThread.Post(() => HandleEvent(id, eventId, data, timestamp)); + break; + } + case ("EventGroup", "a(isvu)"): + { + using var writer = context.CreateReplyWriter("ai"); + var reader = context.Request.GetBodyReader(); + var events = reader.ReadArray<(int Id, string EventId, object Data, uint Timestamp)>(); + foreach (var e in events) + Dispatcher.UIThread.Post(() => HandleEvent(e.Id, e.EventId, e.Data, e.Timestamp)); + writer.WriteArray(Array.Empty()); + context.Reply(writer.CreateMessage()); + break; + } + case ("AboutToShow", "i"): + { + using var writer = context.CreateReplyWriter("b"); + writer.WriteBool(false); + context.Reply(writer.CreateMessage()); + break; + } + case ("AboutToShowGroup", "ai"): + { + using var writer = context.CreateReplyWriter("aiai"); + writer.WriteStruct((Array.Empty(), Array.Empty())); + context.Reply(writer.CreateMessage()); + break; + } + } - #region Events + break; + case "org.freedesktop.DBus.Properties": + switch (context.Request.MemberAsString, context.Request.SignatureAsString) + { + case ("Version", "u"): + { + using var writer = context.CreateReplyWriter("u"); + writer.WriteUInt32(_dBusMenuProperties.Version); + context.Reply(writer.CreateMessage()); + break; + } + case ("TextDirection", "s"): + { + using var writer = context.CreateReplyWriter("s"); + writer.WriteString(_dBusMenuProperties.TextDirection); + context.Reply(writer.CreateMessage()); + break; + } + case ("Status", "s"): + { + using var writer = context.CreateReplyWriter("s"); + writer.WriteString(_dBusMenuProperties.Status); + context.Reply(writer.CreateMessage()); + break; + } + case ("IconThemePath", "as"): + { + using var writer = context.CreateReplyWriter("as"); + writer.WriteArray(_dBusMenuProperties.IconThemePath); + context.Reply(writer.CreateMessage()); + break; + } + } - private event Action<((int, IDictionary)[] updatedProps, (int, string[])[] removedProps)> - ItemsPropertiesUpdated { add { } remove { } } - private event Action<(uint revision, int parent)>? LayoutUpdated; - private event Action<(int id, uint timestamp)> ItemActivationRequested { add { } remove { } } - private event Action PropertiesChanged { add { } remove { } } + break; + } - async Task IDBusMenu.WatchItemsPropertiesUpdatedAsync(Action<((int, IDictionary)[] updatedProps, (int, string[])[] removedProps)> handler, Action? onError) - { - ItemsPropertiesUpdated += handler; - return Disposable.Create(() => ItemsPropertiesUpdated -= handler); - } - async Task IDBusMenu.WatchLayoutUpdatedAsync(Action<(uint revision, int parent)> handler, Action? onError) - { - LayoutUpdated += handler; - return Disposable.Create(() => LayoutUpdated -= handler); + return default; } - async Task IDBusMenu.WatchItemActivationRequestedAsync(Action<(int id, uint timestamp)> handler, Action? onError) - { - ItemActivationRequested+= handler; - return Disposable.Create(() => ItemActivationRequested -= handler); - } + public bool RunMethodHandlerSynchronously(Message message) => true; - async Task IFreeDesktopDBusProperties.WatchPropertiesAsync(Action handler) + private void EmitUIntIntSignal(string member, uint arg0, int arg1) { - PropertiesChanged += handler; - return Disposable.Create(() => PropertiesChanged -= handler); + using var writer = _connection.GetMessageWriter(); + writer.WriteSignalHeader(null, Path, "com.canonical.dbusmenu", member, "ui"); + writer.WriteUInt32(arg0); + writer.WriteInt32(arg1); + _connection.TrySendMessage(writer.CreateMessage()); } - - #endregion } } } diff --git a/src/Avalonia.FreeDesktop/DBusRequest.cs b/src/Avalonia.FreeDesktop/DBusRequest.cs deleted file mode 100644 index d84905324f..0000000000 --- a/src/Avalonia.FreeDesktop/DBusRequest.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Threading.Tasks; -using Tmds.DBus; - -[assembly: InternalsVisibleTo(Connection.DynamicAssemblyName)] -namespace Avalonia.FreeDesktop -{ - [DBusInterface("org.freedesktop.portal.Request")] - internal interface IRequest : IDBusObject - { - Task CloseAsync(); - Task WatchResponseAsync(Action<(uint response, IDictionary results)> handler, Action? onError = null); - } -} diff --git a/src/Avalonia.FreeDesktop/DBusSystemDialog.cs b/src/Avalonia.FreeDesktop/DBusSystemDialog.cs index 8597f3922a..d59af3b5dd 100644 --- a/src/Avalonia.FreeDesktop/DBusSystemDialog.cs +++ b/src/Avalonia.FreeDesktop/DBusSystemDialog.cs @@ -4,45 +4,33 @@ using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; -using Avalonia.Logging; using Avalonia.Platform; using Avalonia.Platform.Storage; using Avalonia.Platform.Storage.FileIO; - -using Tmds.DBus; +using Tmds.DBus.Protocol; namespace Avalonia.FreeDesktop { internal class DBusSystemDialog : BclStorageProvider { - private static readonly Lazy s_fileChooser = new(() => DBusHelper.Connection? - .CreateProxy("org.freedesktop.portal.Desktop", "/org/freedesktop/portal/desktop")); - - internal static async Task TryCreate(IPlatformHandle handle) + internal static async Task TryCreateAsync(IPlatformHandle handle) { - if (handle.HandleDescriptor == "XID" && s_fileChooser.Value is { } fileChooser) - { - try - { - await fileChooser.GetVersionAsync(); - return new DBusSystemDialog(fileChooser, handle); - } - catch (Exception e) - { - Logger.TryGet(LogEventLevel.Error, LogArea.X11Platform)?.Log(null, $"Unable to connect to org.freedesktop.portal.Desktop: {e.Message}"); - return null; - } - } - - return null; + if (DBusHelper.Connection is null) + return null; + var services = await DBusHelper.Connection.ListServicesAsync(); + if (!services.Contains("org.freedesktop.portal.Desktop", StringComparer.Ordinal)) + return null; + return new DBusSystemDialog(new DesktopService(DBusHelper.Connection, "org.freedesktop.portal.Desktop"), handle); } - private readonly IFileChooser _fileChooser; + private readonly DesktopService _desktopService; + private readonly FileChooser _fileChooser; private readonly IPlatformHandle _handle; - private DBusSystemDialog(IFileChooser fileChooser, IPlatformHandle handle) + private DBusSystemDialog(DesktopService desktopService, IPlatformHandle handle) { - _fileChooser = fileChooser; + _desktopService = desktopService; + _fileChooser = desktopService.CreateFileChooser("/org/freedesktop/portal/desktop"); _handle = handle; } @@ -59,20 +47,24 @@ namespace Avalonia.FreeDesktop var chooserOptions = new Dictionary(); var filters = ParseFilters(options.FileTypeFilter); if (filters.Any()) - { chooserOptions.Add("filters", filters); - } chooserOptions.Add("multiple", options.AllowMultiple); objectPath = await _fileChooser.OpenFileAsync(parentWindow, options.Title ?? string.Empty, chooserOptions); - var request = DBusHelper.Connection!.CreateProxy("org.freedesktop.portal.Request", objectPath); + var request = _desktopService.CreateRequest(objectPath); var tsc = new TaskCompletionSource(); - using var disposable = await request.WatchResponseAsync(x => tsc.SetResult(x.results["uris"] as string[]), tsc.SetException); - var uris = await tsc.Task ?? Array.Empty(); + using var disposable = await request.WatchResponseAsync((e, x) => + { + if (e is not null) + tsc.TrySetException(e); + else + tsc.TrySetResult(x.results["uris"] as string[]); + }); - return uris.Select(path => new BclStorageFile(new FileInfo(new Uri(path).LocalPath))).ToList(); + var uris = await tsc.Task ?? Array.Empty(); + return uris.Select(static path => new BclStorageFile(new FileInfo(new Uri(path).LocalPath))).ToList(); } public override async Task SaveFilePickerAsync(FilePickerSaveOptions options) @@ -82,33 +74,33 @@ namespace Avalonia.FreeDesktop var chooserOptions = new Dictionary(); var filters = ParseFilters(options.FileTypeChoices); if (filters.Any()) - { chooserOptions.Add("filters", filters); - } if (options.SuggestedFileName is { } currentName) chooserOptions.Add("current_name", currentName); if (options.SuggestedStartLocation?.TryGetUri(out var currentFolder) == true) chooserOptions.Add("current_folder", Encoding.UTF8.GetBytes(currentFolder.ToString())); - objectPath = await _fileChooser.SaveFileAsync(parentWindow, options.Title ?? string.Empty, chooserOptions); - var request = DBusHelper.Connection!.CreateProxy("org.freedesktop.portal.Request", objectPath); + objectPath = await _fileChooser.SaveFileAsync(parentWindow, options.Title ?? string.Empty, chooserOptions); + var request = _desktopService.CreateRequest(objectPath); var tsc = new TaskCompletionSource(); - using var disposable = await request.WatchResponseAsync(x => tsc.SetResult(x.results["uris"] as string[]), tsc.SetException); + using var disposable = await request.WatchResponseAsync((e, x) => + { + if (e is not null) + tsc.TrySetException(e); + else + tsc.TrySetResult(x.results["uris"] as string[]); + }); + var uris = await tsc.Task; var path = uris?.FirstOrDefault() is { } filePath ? new Uri(filePath).LocalPath : null; if (path is null) - { return null; - } - else - { - // WSL2 freedesktop automatically adds extension from selected file type, but we can't pass "default ext". So apply it manually. - path = StorageProviderHelpers.NameWithExtension(path, options.DefaultExtension, null); - return new BclStorageFile(new FileInfo(path)); - } + // WSL2 freedesktop automatically adds extension from selected file type, but we can't pass "default ext". So apply it manually. + path = StorageProviderHelpers.NameWithExtension(path, options.DefaultExtension, null); + return new BclStorageFile(new FileInfo(path)); } public override async Task> OpenFolderPickerAsync(FolderPickerOpenOptions options) @@ -119,27 +111,31 @@ namespace Avalonia.FreeDesktop { "directory", true }, { "multiple", options.AllowMultiple } }; + var objectPath = await _fileChooser.OpenFileAsync(parentWindow, options.Title ?? string.Empty, chooserOptions); - var request = DBusHelper.Connection!.CreateProxy("org.freedesktop.portal.Request", objectPath); + var request = _desktopService.CreateRequest(objectPath); var tsc = new TaskCompletionSource(); - using var disposable = await request.WatchResponseAsync(x => tsc.SetResult(x.results["uris"] as string[]), tsc.SetException); - var uris = await tsc.Task ?? Array.Empty(); + using var disposable = await request.WatchResponseAsync((e, x) => + { + if (e is not null) + tsc.TrySetException(e); + else + tsc.TrySetResult(x.results["uris"] as string[]); + }); + var uris = await tsc.Task ?? Array.Empty(); return uris - .Select(path => new Uri(path).LocalPath) + .Select(static path => new Uri(path).LocalPath) // WSL2 freedesktop allows to select files as well in directory picker, filter it out. .Where(Directory.Exists) - .Select(path => new BclStorageFolder(new DirectoryInfo(path))).ToList(); + .Select(static path => new BclStorageFolder(new DirectoryInfo(path))).ToList(); } private static (string name, (uint style, string extension)[])[] ParseFilters(IReadOnlyList? fileTypes) { // Example: [('Images', [(0, '*.ico'), (1, 'image/png')]), ('Text', [(0, '*.txt')])] - if (fileTypes is null) - { return Array.Empty<(string name, (uint style, string extension)[])>(); - } var filters = new List<(string name, (uint style, string extension)[])>(); foreach (var fileType in fileTypes) @@ -150,18 +146,11 @@ namespace Avalonia.FreeDesktop var extensions = Enumerable.Empty<(uint, string)>(); if (fileType.Patterns is { } patterns) - { extensions = extensions.Concat(patterns.Select(static x => (globStyle, x))); - } else if (fileType.MimeTypes is { } mimeTypes) - { extensions = extensions.Concat(mimeTypes.Select(static x => (mimeStyle, x))); - } - if (extensions.Any()) - { filters.Add((fileType.Name, extensions.ToArray())); - } } return filters.ToArray(); diff --git a/src/Avalonia.FreeDesktop/DBusTrayIconImpl.cs b/src/Avalonia.FreeDesktop/DBusTrayIconImpl.cs index e37067d05c..ed041cb2ca 100644 --- a/src/Avalonia.FreeDesktop/DBusTrayIconImpl.cs +++ b/src/Avalonia.FreeDesktop/DBusTrayIconImpl.cs @@ -1,16 +1,12 @@ -#nullable enable - -using System; +using System; +using System.Collections.Generic; using System.Diagnostics; -using System.Reactive.Disposables; -using System.Runtime.CompilerServices; +using System.Linq; using System.Threading.Tasks; using Avalonia.Controls.Platform; using Avalonia.Logging; using Avalonia.Platform; -using Tmds.DBus; - -[assembly: InternalsVisibleTo(Connection.DynamicAssemblyName)] +using Tmds.DBus.Protocol; namespace Avalonia.FreeDesktop { @@ -20,11 +16,12 @@ namespace Avalonia.FreeDesktop private readonly ObjectPath _dbusMenuPath; private readonly Connection? _connection; - private IDisposable? _serviceWatchDisposable; + private readonly DBus? _dBus; + private IDisposable? _serviceWatchDisposable; private StatusNotifierItemDbusObj? _statusNotifierItemDbusObj; - private IStatusNotifierWatcher? _statusNotifierWatcher; - private DbusPixmap _icon; + private StatusNotifierWatcher? _statusNotifierWatcher; + private (int, int, byte[]) _icon; private string? _sysTrayServiceName; private string? _tooltipText; @@ -51,6 +48,7 @@ namespace Avalonia.FreeDesktop IsActive = true; + _dBus = new DBusService(_connection, "org.freedesktop.DBus").CreateDBus("/org/freedesktop/DBus"); _dbusMenuPath = DBusMenuExporter.GenerateDBusMenuObjPath; MenuExporter = DBusMenuExporter.TryCreateDetachedNativeMenu(_dbusMenuPath, _connection); @@ -60,47 +58,31 @@ namespace Avalonia.FreeDesktop private void InitializeSNWService() { - if (_connection is null || _isDisposed) return; - - try - { - _statusNotifierWatcher = _connection.CreateProxy( - "org.kde.StatusNotifierWatcher", - "/StatusNotifierWatcher"); - } - catch - { - Logger.TryGet(LogEventLevel.Error, "DBUS") - ?.Log(this, - "org.kde.StatusNotifierWatcher service is not available on this system. Tray Icons will not work without it."); - + if (_connection is null || _isDisposed) return; - } + _statusNotifierWatcher = new StatusNotifierWatcherService(_connection, "org.kde.StatusNotifierWatcher") + .CreateStatusNotifierWatcher("/StatusNotifierWatcher"); _serviceConnected = true; } private async void WatchAsync() { - try - { - _serviceWatchDisposable = - await _connection?.ResolveServiceOwnerAsync("org.kde.StatusNotifierWatcher", OnNameChange)!; - } - catch (Exception e) - { - Logger.TryGet(LogEventLevel.Error, "DBUS") - ?.Log(this, - $"Unable to hook watcher method on org.kde.StatusNotifierWatcher: {e}"); - } + var services = await _connection!.ListServicesAsync(); + if (!services.Contains("org.kde.StatusNotifierWatcher", StringComparer.Ordinal)) + return; + + _serviceWatchDisposable = await _dBus!.WatchNameOwnerChangedAsync((e, x) => { OnNameChange(x.A2); }); + var nameOwner = await _dBus.GetNameOwnerAsync("org.kde.StatusNotifierWatcher"); + OnNameChange(nameOwner); } - private void OnNameChange(ServiceOwnerChangedEventArgs obj) + private void OnNameChange(string? newOwner) { if (_isDisposed) return; - if (!_serviceConnected & obj.NewOwner != null) + if (!_serviceConnected & newOwner is not null) { _serviceConnected = true; InitializeSNWService(); @@ -108,55 +90,45 @@ namespace Avalonia.FreeDesktop DestroyTrayIcon(); if (_isVisible) - { CreateTrayIcon(); - } } - else if (_serviceConnected & obj.NewOwner is null) + else if (_serviceConnected & newOwner is null) { DestroyTrayIcon(); _serviceConnected = false; } } - private void CreateTrayIcon() + private async void CreateTrayIcon() { if (_connection is null || !_serviceConnected || _isDisposed) return; +#if NET5_0_OR_GREATER + var pid = Environment.ProcessId; +#else var pid = Process.GetCurrentProcess().Id; +#endif var tid = s_trayIconInstanceId++; _sysTrayServiceName = FormattableString.Invariant($"org.kde.StatusNotifierItem-{pid}-{tid}"); - _statusNotifierItemDbusObj = new StatusNotifierItemDbusObj(_dbusMenuPath); - - try - { - _connection.RegisterObjectAsync(_statusNotifierItemDbusObj); - _connection.RegisterServiceAsync(_sysTrayServiceName); - _statusNotifierWatcher?.RegisterStatusNotifierItemAsync(_sysTrayServiceName); - } - catch (Exception e) - { - Logger.TryGet(LogEventLevel.Error, "DBUS") - ?.Log(this, $"Error creating a DBus tray icon: {e}."); + _statusNotifierItemDbusObj = new StatusNotifierItemDbusObj(_connection, _dbusMenuPath); - _serviceConnected = false; - } + _connection.AddMethodHandler(_statusNotifierItemDbusObj); + await _dBus!.RequestNameAsync(_sysTrayServiceName, 0); + await _statusNotifierWatcher!.RegisterStatusNotifierItemAsync(_sysTrayServiceName); _statusNotifierItemDbusObj.SetTitleAndTooltip(_tooltipText); _statusNotifierItemDbusObj.SetIcon(_icon); - _statusNotifierItemDbusObj.ActivationDelegate += OnClicked; } private void DestroyTrayIcon() { - if (_connection is null || !_serviceConnected || _isDisposed || _statusNotifierItemDbusObj is null) + if (_connection is null || !_serviceConnected || _isDisposed || _statusNotifierItemDbusObj is null || _sysTrayServiceName is null) return; - _connection.UnregisterObject(_statusNotifierItemDbusObj); - _connection.UnregisterServiceAsync(_sysTrayServiceName); + _dBus.ReleaseNameAsync(_sysTrayServiceName); } public void Dispose() @@ -175,13 +147,14 @@ namespace Avalonia.FreeDesktop if (icon is null) { - _statusNotifierItemDbusObj?.SetIcon(DbusPixmap.EmptyPixmap); + _statusNotifierItemDbusObj?.SetIcon((1, 1, new byte[] { 255, 0, 0, 0 })); return; } var x11iconData = IconConverterDelegate(icon); - if (x11iconData.Length == 0) return; + if (x11iconData.Length == 0) + return; var w = (int)x11iconData[0]; var h = (int)x11iconData[1]; @@ -199,7 +172,7 @@ namespace Avalonia.FreeDesktop pixByteArray[pixByteArrayCounter++] = (byte)(rawPixel & 0xFF); } - _icon = new DbusPixmap(w, h, pixByteArray); + _icon = (w, h, pixByteArray); _statusNotifierItemDbusObj?.SetIcon(_icon); } @@ -237,111 +210,38 @@ namespace Avalonia.FreeDesktop /// /// Useful guide: https://web.archive.org/web/20210818173850/https://www.notmart.org/misc/statusnotifieritem/statusnotifieritem.html /// - internal class StatusNotifierItemDbusObj : IStatusNotifierItem + internal class StatusNotifierItemDbusObj : IMethodHandler { + private readonly Connection _connection; private readonly StatusNotifierItemProperties _backingProperties; - public event Action? OnTitleChanged; - public event Action? OnIconChanged; - public event Action? OnAttentionIconChanged; - public event Action? OnOverlayIconChanged; - public event Action? OnTooltipChanged; - public Action? NewStatusAsync { get; set; } - public Action? ActivationDelegate { get; set; } - public ObjectPath ObjectPath { get; } - - public StatusNotifierItemDbusObj(ObjectPath dbusmenuPath) - { - ObjectPath = new ObjectPath($"/StatusNotifierItem"); + public StatusNotifierItemDbusObj(Connection connection, ObjectPath dbusMenuPath) + { + _connection = connection; _backingProperties = new StatusNotifierItemProperties { - Menu = dbusmenuPath, // Needs a dbus menu somehow - ToolTip = new ToolTip("") + Menu = dbusMenuPath, // Needs a dbus menu somehow + ToolTip = (string.Empty, Array.Empty<(int, int, byte[])>(), string.Empty, string.Empty) }; InvalidateAll(); } - public Task ContextMenuAsync(int x, int y) => Task.CompletedTask; - - public Task ActivateAsync(int x, int y) - { - ActivationDelegate?.Invoke(); - return Task.CompletedTask; - } + public string Path => "/StatusNotifierItem"; - public Task SecondaryActivateAsync(int x, int y) => Task.CompletedTask; - - public Task ScrollAsync(int delta, string orientation) => Task.CompletedTask; + public event Action? ActivationDelegate; public void InvalidateAll() { - OnTitleChanged?.Invoke(); - OnIconChanged?.Invoke(); - OnOverlayIconChanged?.Invoke(); - OnAttentionIconChanged?.Invoke(); - OnTooltipChanged?.Invoke(); - } - - public Task WatchNewTitleAsync(Action handler, Action onError) - { - OnTitleChanged += handler; - return Task.FromResult(Disposable.Create(() => OnTitleChanged -= handler)); - } - - public Task WatchNewIconAsync(Action handler, Action onError) - { - OnIconChanged += handler; - return Task.FromResult(Disposable.Create(() => OnIconChanged -= handler)); - } - - public Task WatchNewAttentionIconAsync(Action handler, Action onError) - { - OnAttentionIconChanged += handler; - return Task.FromResult(Disposable.Create(() => OnAttentionIconChanged -= handler)); + EmitVoidSignal("NewTitle"); + EmitVoidSignal("NewIcon"); + EmitVoidSignal("NewAttentionIcon"); + EmitVoidSignal("NewOverlayIcon"); + EmitVoidSignal("NewToolTip"); + EmitStringSignal("NewStatus", _backingProperties.Status ?? string.Empty); } - public Task WatchNewOverlayIconAsync(Action handler, Action onError) - { - OnOverlayIconChanged += handler; - return Task.FromResult(Disposable.Create(() => OnOverlayIconChanged -= handler)); - } - - public Task WatchNewToolTipAsync(Action handler, Action onError) - { - OnTooltipChanged += handler; - return Task.FromResult(Disposable.Create(() => OnTooltipChanged -= handler)); - } - - public Task WatchNewStatusAsync(Action handler, Action onError) - { - NewStatusAsync += handler; - return Task.FromResult(Disposable.Create(() => NewStatusAsync -= handler)); - } - - public Task GetAsync(string prop) - { - return Task.FromResult(prop switch - { - nameof(_backingProperties.Category) => _backingProperties.Category, - nameof(_backingProperties.Id) => _backingProperties.Id, - nameof(_backingProperties.Menu) => _backingProperties.Menu, - nameof(_backingProperties.IconPixmap) => _backingProperties.IconPixmap, - nameof(_backingProperties.Status) => _backingProperties.Status, - nameof(_backingProperties.Title) => _backingProperties.Title, - nameof(_backingProperties.ToolTip) => _backingProperties.ToolTip, - _ => null - }); - } - - public Task GetAllAsync() => Task.FromResult(_backingProperties); - - public Task SetAsync(string prop, object val) => Task.CompletedTask; - - public Task WatchPropertiesAsync(Action handler) => - Task.FromResult(Disposable.Empty); - - public void SetIcon(DbusPixmap dbusPixmap) + public void SetIcon((int, int, byte[]) dbusPixmap) { _backingProperties.IconPixmap = new[] { dbusPixmap }; InvalidateAll(); @@ -356,98 +256,153 @@ namespace Avalonia.FreeDesktop _backingProperties.Category = "ApplicationStatus"; _backingProperties.Status = text; _backingProperties.Title = text; - _backingProperties.ToolTip = new ToolTip(text); - + _backingProperties.ToolTip = (string.Empty, Array.Empty<(int, int, byte[])>(), text, string.Empty); InvalidateAll(); } - } - - [DBusInterface("org.kde.StatusNotifierWatcher")] - internal interface IStatusNotifierWatcher : IDBusObject - { - Task RegisterStatusNotifierItemAsync(string Service); - Task RegisterStatusNotifierHostAsync(string Service); - } - [DBusInterface("org.kde.StatusNotifierItem")] - internal interface IStatusNotifierItem : IDBusObject - { - Task ContextMenuAsync(int x, int y); - Task ActivateAsync(int x, int y); - Task SecondaryActivateAsync(int x, int y); - Task ScrollAsync(int delta, string orientation); - Task WatchNewTitleAsync(Action handler, Action onError); - Task WatchNewIconAsync(Action handler, Action onError); - Task WatchNewAttentionIconAsync(Action handler, Action onError); - Task WatchNewOverlayIconAsync(Action handler, Action onError); - Task WatchNewToolTipAsync(Action handler, Action onError); - Task WatchNewStatusAsync(Action handler, Action onError); - Task GetAsync(string prop); - Task GetAllAsync(); - Task SetAsync(string prop, object val); - Task WatchPropertiesAsync(Action handler); - } - - // This class is used by Tmds.Dbus to ferry properties - // from the SNI spec. - // Don't change this to actual C# properties since - // Tmds.Dbus will get confused. - [Dictionary] - internal class StatusNotifierItemProperties - { - public string? Category; - - public string? Id; - - public string? Title; + public bool RunMethodHandlerSynchronously(Message message) => false; - public string? Status; - - public ObjectPath Menu; - - public DbusPixmap[]? IconPixmap; + public ValueTask HandleMethodAsync(MethodContext context) + { + switch (context.Request.InterfaceAsString) + { + case "org.kde.StatusNotifierItem": + switch (context.Request.MemberAsString, context.Request.SignatureAsString) + { + case ("ContextMenu", "ii"): + break; + case ("Activate", "ii"): + ActivationDelegate?.Invoke(); + break; + case ("SecondaryActivate", "ii"): + break; + case ("Scroll", "is"): + break; + } - public ToolTip ToolTip; - } + break; + case "org.freedesktop.DBus.Properties": + switch (context.Request.MemberAsString, context.Request.SignatureAsString) + { + case ("Get", "ss"): + { + var reader = context.Request.GetBodyReader(); + var interfaceName = reader.ReadString(); + var member = reader.ReadString(); + switch (member) + { + case "Category": + { + using var writer = context.CreateReplyWriter("s"); + writer.WriteString(_backingProperties.Category); + context.Reply(writer.CreateMessage()); + break; + } + case "Id": + { + using var writer = context.CreateReplyWriter("s"); + writer.WriteString(_backingProperties.Id); + context.Reply(writer.CreateMessage()); + break; + } + case "Title": + { + using var writer = context.CreateReplyWriter("s"); + writer.WriteString(_backingProperties.Title); + context.Reply(writer.CreateMessage()); + break; + } + case "Status": + { + using var writer = context.CreateReplyWriter("s"); + writer.WriteString(_backingProperties.Status); + context.Reply(writer.CreateMessage()); + break; + } + case "Menu": + { + using var writer = context.CreateReplyWriter("o"); + writer.WriteObjectPath(_backingProperties.Menu); + context.Reply(writer.CreateMessage()); + break; + } + case "IconPixmap": + { + using var writer = context.CreateReplyWriter("a(iiay)"); + writer.WriteArray(_backingProperties.IconPixmap); + context.Reply(writer.CreateMessage()); + break; + } + case "ToolTip": + { + using var writer = context.CreateReplyWriter("(sa(iiay)ss)"); + writer.WriteStruct(_backingProperties.ToolTip); + context.Reply(writer.CreateMessage()); + break; + } + } + + break; + } + case ("GetAll", "s"): + { + var writer = context.CreateReplyWriter("a{sv}"); + var dict = new Dictionary + { + { "Category", _backingProperties.Category ?? string.Empty }, + { "Id", _backingProperties.Id ?? string.Empty }, + { "Title", _backingProperties.Title ?? string.Empty }, + { "Status", _backingProperties.Status ?? string.Empty }, + { "Menu", _backingProperties.Menu }, + { "IconPixmap", _backingProperties.IconPixmap }, + { "ToolTip", _backingProperties.ToolTip } + }; + + writer.WriteDictionary(dict); + context.Reply(writer.CreateMessage()); + break; + } + } - internal struct ToolTip - { - public readonly string First; - public readonly DbusPixmap[] Second; - public readonly string Third; - public readonly string Fourth; + break; + } - private static readonly DbusPixmap[] s_blank = - { - new DbusPixmap(0, 0, Array.Empty()), new DbusPixmap(0, 0, Array.Empty()) - }; + return default; + } - public ToolTip(string message) : this("", s_blank, message, "") + private void EmitVoidSignal(string member) { + using var writer = _connection.GetMessageWriter(); + writer.WriteSignalHeader(null, Path, "org.kde.StatusNotifierItem", member); + _connection.TrySendMessage(writer.CreateMessage()); } - public ToolTip(string first, DbusPixmap[] second, string third, string fourth) + private void EmitStringSignal(string member, string value) { - First = first; - Second = second; - Third = third; - Fourth = fourth; + using var writer = _connection.GetMessageWriter(); + writer.WriteSignalHeader(null, Path, "org.kde.StatusNotifierItem", member, "s"); + writer.WriteString(value); + _connection.TrySendMessage(writer.CreateMessage()); } - } - internal readonly struct DbusPixmap - { - public readonly int Width; - public readonly int Height; - public readonly byte[] Data; - - public DbusPixmap(int width, int height, byte[] data) + private record StatusNotifierItemProperties { - Width = width; - Height = height; - Data = data; + public string? Category { get; set; } + public string? Id { get; set; } + public string? Title { get; set; } + public string? Status { get; set; } + public int WindowId { get; set; } + public string? IconThemePath { get; set; } + public ObjectPath Menu { get; set; } + public bool ItemIsMenu { get; set; } + public string? IconName { get; set; } + public (int, int, byte[])[]? IconPixmap { get; set; } + public string? OverlayIconName { get; set; } + public (int, int, byte[])[]? OverlayIconPixmap { get; set; } + public string? AttentionIconName { get; set; } + public (int, int, byte[])[]? AttentionIconPixmap { get; set; } + public string? AttentionMovieName { get; set; } + public (string, (int, int, byte[])[], string, string) ToolTip { get; set; } } - - public static DbusPixmap EmptyPixmap = new DbusPixmap(1, 1, new byte[] { 255, 0, 0, 0 }); } } diff --git a/src/Avalonia.FreeDesktop/FreeDesktopPortalDesktop.DBus.cs b/src/Avalonia.FreeDesktop/FreeDesktopPortalDesktop.DBus.cs new file mode 100644 index 0000000000..a0ca8abc97 --- /dev/null +++ b/src/Avalonia.FreeDesktop/FreeDesktopPortalDesktop.DBus.cs @@ -0,0 +1,937 @@ +using System; +using System.Collections.Generic; +using System.Runtime.InteropServices; +using System.Threading.Tasks; +using Tmds.DBus.Protocol; + +namespace Avalonia.FreeDesktop +{ + internal record NotificationProperties + { + public uint Version { get; set; } + } + + internal class Notification : DesktopObject + { + private const string Interface = "org.freedesktop.portal.Notification"; + + public Notification(DesktopService service, ObjectPath path) : base(service, path) { } + + public Task AddNotificationAsync(string id, Dictionary notification) + { + return Connection.CallMethodAsync(CreateMessage()); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + signature: "sa{sv}", + member: "AddNotification"); + writer.WriteString(id); + writer.WriteDictionary(notification); + return writer.CreateMessage(); + } + } + + public Task RemoveNotificationAsync(string id) + { + return Connection.CallMethodAsync(CreateMessage()); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + signature: "s", + member: "RemoveNotification"); + writer.WriteString(id); + return writer.CreateMessage(); + } + } + + public ValueTask WatchActionInvokedAsync(Action handler, + bool emitOnCapturedContext = true) + => WatchSignalAsync(Service.Destination, Interface, Path, "ActionInvoked", + (m, s) => ReadMessage_ssav(m, (DesktopObject)s!), handler, emitOnCapturedContext); + + public Task SetVersionAsync(uint value) + { + return Connection.CallMethodAsync(CreateMessage()); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + "org.freedesktop.DBus.Properties", + signature: "ssv", + member: "Set"); + writer.WriteString(Interface); + writer.WriteString("version"); + writer.WriteSignature("u"); + writer.WriteUInt32(value); + return writer.CreateMessage(); + } + } + + public Task GetVersionAsync() + => Connection.CallMethodAsync(CreateGetPropertyMessage(Interface, "version"), + (m, s) => ReadMessage_v_u(m, (DesktopObject)s!), this); + + public Task GetPropertiesAsync() + { + return Connection.CallMethodAsync(CreateGetAllPropertiesMessage(Interface), + (m, s) => ReadMessage(m, (DesktopObject)s!), this); + + static NotificationProperties ReadMessage(Message message, DesktopObject _) + { + var reader = message.GetBodyReader(); + return ReadProperties(ref reader); + } + } + + public ValueTask WatchPropertiesChangedAsync(Action> handler, + bool emitOnCapturedContext = true) + { + return base.WatchPropertiesChangedAsync(Interface, (m, s) => ReadMessage(m, (DesktopObject)s!), handler, + emitOnCapturedContext); + + static PropertyChanges ReadMessage(Message message, DesktopObject _) + { + var reader = message.GetBodyReader(); + reader.ReadString(); // interface + List changed = new(); + return new PropertyChanges(ReadProperties(ref reader, changed), changed.ToArray(), + ReadInvalidated(ref reader)); + } + + static string[] ReadInvalidated(ref Reader reader) + { + List? invalidated = null; + ArrayEnd headersEnd = reader.ReadArrayStart(DBusType.String); + while (reader.HasNext(headersEnd)) + { + invalidated ??= new(); + var property = reader.ReadString(); + switch (property) + { + case "version": + invalidated.Add("Version"); + break; + } + } + + return invalidated?.ToArray() ?? Array.Empty(); + } + } + + private static NotificationProperties ReadProperties(ref Reader reader, List? changedList = null) + { + var props = new NotificationProperties(); + ArrayEnd headersEnd = reader.ReadArrayStart(DBusType.Struct); + while (reader.HasNext(headersEnd)) + { + var property = reader.ReadString(); + switch (property) + { + case "version": + reader.ReadSignature("u"); + props.Version = reader.ReadUInt32(); + changedList?.Add("Version"); + break; + default: + reader.ReadVariant(); + break; + } + } + + return props; + } + } + + internal record OpenURIProperties + { + public uint Version { get; set; } + } + + internal class OpenURI : DesktopObject + { + private const string Interface = "org.freedesktop.portal.OpenURI"; + + public OpenURI(DesktopService service, ObjectPath path) : base(service, path) { } + + public Task OpenUriAsync(string parentWindow, string uri, Dictionary options) + { + return Connection.CallMethodAsync(CreateMessage(), (m, s) => ReadMessage_o(m, (DesktopObject)s!), this); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + signature: "ssa{sv}", + member: "OpenURI"); + writer.WriteString(parentWindow); + writer.WriteString(uri); + writer.WriteDictionary(options); + return writer.CreateMessage(); + } + } + + public Task OpenFileAsync(string parentWindow, SafeHandle fd, Dictionary options) + { + return Connection.CallMethodAsync(CreateMessage(), (m, s) => ReadMessage_o(m, (DesktopObject)s!), this); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + signature: "sha{sv}", + member: "OpenFile"); + writer.WriteString(parentWindow); + writer.WriteHandle(fd); + writer.WriteDictionary(options); + return writer.CreateMessage(); + } + } + + public Task OpenDirectoryAsync(string parentWindow, SafeHandle fd, Dictionary options) + { + return Connection.CallMethodAsync(CreateMessage(), (m, s) => ReadMessage_o(m, (DesktopObject)s!), this); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + signature: "sha{sv}", + member: "OpenDirectory"); + writer.WriteString(parentWindow); + writer.WriteHandle(fd); + writer.WriteDictionary(options); + return writer.CreateMessage(); + } + } + + public Task SetVersionAsync(uint value) + { + return Connection.CallMethodAsync(CreateMessage()); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + "org.freedesktop.DBus.Properties", + signature: "ssv", + member: "Set"); + writer.WriteString(Interface); + writer.WriteString("version"); + writer.WriteSignature("u"); + writer.WriteUInt32(value); + return writer.CreateMessage(); + } + } + + public Task GetVersionAsync() + => Connection.CallMethodAsync(CreateGetPropertyMessage(Interface, "version"), + (m, s) => ReadMessage_v_u(m, (DesktopObject)s!), this); + + public Task GetPropertiesAsync() + { + return Connection.CallMethodAsync(CreateGetAllPropertiesMessage(Interface), + (m, s) => ReadMessage(m, (DesktopObject)s!), this); + + static OpenURIProperties ReadMessage(Message message, DesktopObject _) + { + var reader = message.GetBodyReader(); + return ReadProperties(ref reader); + } + } + + public ValueTask WatchPropertiesChangedAsync(Action> handler, + bool emitOnCapturedContext = true) + { + return base.WatchPropertiesChangedAsync(Interface, (m, s) => ReadMessage(m, (DesktopObject)s!), handler, + emitOnCapturedContext); + + static PropertyChanges ReadMessage(Message message, DesktopObject _) + { + var reader = message.GetBodyReader(); + reader.ReadString(); // interface + List changed = new(); + return new PropertyChanges(ReadProperties(ref reader, changed), changed.ToArray(), ReadInvalidated(ref reader)); + } + + static string[] ReadInvalidated(ref Reader reader) + { + List? invalidated = null; + ArrayEnd headersEnd = reader.ReadArrayStart(DBusType.String); + while (reader.HasNext(headersEnd)) + { + invalidated ??= new(); + var property = reader.ReadString(); + switch (property) + { + case "version": + invalidated.Add("Version"); + break; + } + } + + return invalidated?.ToArray() ?? Array.Empty(); + } + } + + private static OpenURIProperties ReadProperties(ref Reader reader, List? changedList = null) + { + var props = new OpenURIProperties(); + ArrayEnd headersEnd = reader.ReadArrayStart(DBusType.Struct); + while (reader.HasNext(headersEnd)) + { + var property = reader.ReadString(); + switch (property) + { + case "version": + reader.ReadSignature("u"); + props.Version = reader.ReadUInt32(); + changedList?.Add("Version"); + break; + default: + reader.ReadVariant(); + break; + } + } + + return props; + } + } + + internal record DynamicLauncherProperties + { + public uint SupportedLauncherTypes { get; set; } + public uint Version { get; set; } + } + + internal class DynamicLauncher : DesktopObject + { + private const string Interface = "org.freedesktop.portal.DynamicLauncher"; + + public DynamicLauncher(DesktopService service, ObjectPath path) : base(service, path) { } + + public Task InstallAsync(string token, string desktopFileId, string desktopEntry, Dictionary options) + { + return Connection.CallMethodAsync(CreateMessage()); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + signature: "sssa{sv}", + member: "Install"); + writer.WriteString(token); + writer.WriteString(desktopFileId); + writer.WriteString(desktopEntry); + writer.WriteDictionary(options); + return writer.CreateMessage(); + } + } + + public Task PrepareInstallAsync(string parentWindow, string name, object iconV, Dictionary options) + { + return Connection.CallMethodAsync(CreateMessage(), (m, s) => ReadMessage_o(m, (DesktopObject)s!), this); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + signature: "ssva{sv}", + member: "PrepareInstall"); + writer.WriteString(parentWindow); + writer.WriteString(name); + writer.WriteVariant(iconV); + writer.WriteDictionary(options); + return writer.CreateMessage(); + } + } + + public Task RequestInstallTokenAsync(string name, object iconV, Dictionary options) + { + return Connection.CallMethodAsync(CreateMessage(), (m, s) => ReadMessage_s(m, (DesktopObject)s!), this); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + signature: "sva{sv}", + member: "RequestInstallToken"); + writer.WriteString(name); + writer.WriteVariant(iconV); + writer.WriteDictionary(options); + return writer.CreateMessage(); + } + } + + public Task UninstallAsync(string desktopFileId, Dictionary options) + { + return Connection.CallMethodAsync(CreateMessage()); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + signature: "sa{sv}", + member: "Uninstall"); + writer.WriteString(desktopFileId); + writer.WriteDictionary(options); + return writer.CreateMessage(); + } + } + + public Task GetDesktopEntryAsync(string desktopFileId) + { + return Connection.CallMethodAsync(CreateMessage(), (m, s) => ReadMessage_s(m, (DesktopObject)s!), this); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + signature: "s", + member: "GetDesktopEntry"); + writer.WriteString(desktopFileId); + return writer.CreateMessage(); + } + } + + public Task<(object IconV, string IconFormat, uint IconSize)> GetIconAsync(string desktopFileId) + { + return Connection.CallMethodAsync(CreateMessage(), (m, s) => ReadMessage_vsu(m, (DesktopObject)s!), this); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + signature: "s", + member: "GetIcon"); + writer.WriteString(desktopFileId); + return writer.CreateMessage(); + } + } + + public Task LaunchAsync(string desktopFileId, Dictionary options) + { + return Connection.CallMethodAsync(CreateMessage()); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + signature: "sa{sv}", + member: "Launch"); + writer.WriteString(desktopFileId); + writer.WriteDictionary(options); + return writer.CreateMessage(); + } + } + + public Task SetSupportedLauncherTypesAsync(uint value) + { + return Connection.CallMethodAsync(CreateMessage()); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + "org.freedesktop.DBus.Properties", + signature: "ssv", + member: "Set"); + writer.WriteString(Interface); + writer.WriteString("SupportedLauncherTypes"); + writer.WriteSignature("u"); + writer.WriteUInt32(value); + return writer.CreateMessage(); + } + } + + public Task SetVersionAsync(uint value) + { + return Connection.CallMethodAsync(CreateMessage()); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + "org.freedesktop.DBus.Properties", + signature: "ssv", + member: "Set"); + writer.WriteString(Interface); + writer.WriteString("version"); + writer.WriteSignature("u"); + writer.WriteUInt32(value); + return writer.CreateMessage(); + } + } + + public Task GetSupportedLauncherTypesAsync() + => Connection.CallMethodAsync(CreateGetPropertyMessage(Interface, "SupportedLauncherTypes"), + (m, s) => ReadMessage_v_u(m, (DesktopObject)s!), this); + + public Task GetVersionAsync() + => Connection.CallMethodAsync(CreateGetPropertyMessage(Interface, "version"), + (m, s) => ReadMessage_v_u(m, (DesktopObject)s!), this); + + public Task GetPropertiesAsync() + { + return Connection.CallMethodAsync(CreateGetAllPropertiesMessage(Interface), + (m, s) => ReadMessage(m, (DesktopObject)s!), this); + + static DynamicLauncherProperties ReadMessage(Message message, DesktopObject _) + { + var reader = message.GetBodyReader(); + return ReadProperties(ref reader); + } + } + + public ValueTask WatchPropertiesChangedAsync(Action> handler, + bool emitOnCapturedContext = true) + { + return base.WatchPropertiesChangedAsync(Interface, (m, s) => ReadMessage(m, (DesktopObject)s!), handler, + emitOnCapturedContext); + + static PropertyChanges ReadMessage(Message message, DesktopObject _) + { + var reader = message.GetBodyReader(); + reader.ReadString(); // interface + List changed = new(); + return new PropertyChanges(ReadProperties(ref reader, changed), changed.ToArray(), + ReadInvalidated(ref reader)); + } + + static string[] ReadInvalidated(ref Reader reader) + { + List? invalidated = null; + ArrayEnd headersEnd = reader.ReadArrayStart(DBusType.String); + while (reader.HasNext(headersEnd)) + { + invalidated ??= new(); + var property = reader.ReadString(); + switch (property) + { + case "SupportedLauncherTypes": + invalidated.Add("SupportedLauncherTypes"); + break; + case "version": + invalidated.Add("Version"); + break; + } + } + + return invalidated?.ToArray() ?? Array.Empty(); + } + } + + private static DynamicLauncherProperties ReadProperties(ref Reader reader, List? changedList = null) + { + var props = new DynamicLauncherProperties(); + ArrayEnd headersEnd = reader.ReadArrayStart(DBusType.Struct); + while (reader.HasNext(headersEnd)) + { + var property = reader.ReadString(); + switch (property) + { + case "SupportedLauncherTypes": + reader.ReadSignature("u"); + props.SupportedLauncherTypes = reader.ReadUInt32(); + changedList?.Add("SupportedLauncherTypes"); + break; + case "version": + reader.ReadSignature("u"); + props.Version = reader.ReadUInt32(); + changedList?.Add("Version"); + break; + default: + reader.ReadVariant(); + break; + } + } + + return props; + } + } + + internal record FileChooserProperties + { + public uint Version { get; set; } + } + + internal class FileChooser : DesktopObject + { + private const string Interface = "org.freedesktop.portal.FileChooser"; + + public FileChooser(DesktopService service, ObjectPath path) : base(service, path) { } + + public Task OpenFileAsync(string parentWindow, string title, Dictionary options) + { + return Connection.CallMethodAsync(CreateMessage(), (m, s) => ReadMessage_o(m, (DesktopObject)s!), this); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + signature: "ssa{sv}", + member: "OpenFile"); + writer.WriteString(parentWindow); + writer.WriteString(title); + writer.WriteDictionary(options); + return writer.CreateMessage(); + } + } + + public Task SaveFileAsync(string parentWindow, string title, Dictionary options) + { + return Connection.CallMethodAsync(CreateMessage(), (m, s) => ReadMessage_o(m, (DesktopObject)s!), this); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + signature: "ssa{sv}", + member: "SaveFile"); + writer.WriteString(parentWindow); + writer.WriteString(title); + writer.WriteDictionary(options); + return writer.CreateMessage(); + } + } + + public Task SaveFilesAsync(string parentWindow, string title, Dictionary options) + { + return Connection.CallMethodAsync(CreateMessage(), (m, s) => ReadMessage_o(m, (DesktopObject)s!), this); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + signature: "ssa{sv}", + member: "SaveFiles"); + writer.WriteString(parentWindow); + writer.WriteString(title); + writer.WriteDictionary(options); + return writer.CreateMessage(); + } + } + + public Task SetVersionAsync(uint value) + { + return Connection.CallMethodAsync(CreateMessage()); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + "org.freedesktop.DBus.Properties", + signature: "ssv", + member: "Set"); + writer.WriteString(Interface); + writer.WriteString("version"); + writer.WriteSignature("u"); + writer.WriteUInt32(value); + return writer.CreateMessage(); + } + } + + public Task GetVersionAsync() + => Connection.CallMethodAsync(CreateGetPropertyMessage(Interface, "version"), + (m, s) => ReadMessage_v_u(m, (DesktopObject)s!), this); + + public Task GetPropertiesAsync() + { + return Connection.CallMethodAsync(CreateGetAllPropertiesMessage(Interface), + (m, s) => ReadMessage(m, (DesktopObject)s!), this); + + static FileChooserProperties ReadMessage(Message message, DesktopObject _) + { + var reader = message.GetBodyReader(); + return ReadProperties(ref reader); + } + } + + public ValueTask WatchPropertiesChangedAsync(Action> handler, + bool emitOnCapturedContext = true) + { + return base.WatchPropertiesChangedAsync(Interface, (m, s) => ReadMessage(m, (DesktopObject)s!), handler, + emitOnCapturedContext); + + static PropertyChanges ReadMessage(Message message, DesktopObject _) + { + var reader = message.GetBodyReader(); + reader.ReadString(); // interface + List changed = new(); + return new PropertyChanges(ReadProperties(ref reader, changed), changed.ToArray(), + ReadInvalidated(ref reader)); + } + + static string[] ReadInvalidated(ref Reader reader) + { + List? invalidated = null; + ArrayEnd headersEnd = reader.ReadArrayStart(DBusType.String); + while (reader.HasNext(headersEnd)) + { + invalidated ??= new(); + var property = reader.ReadString(); + switch (property) + { + case "version": + invalidated.Add("Version"); + break; + } + } + + return invalidated?.ToArray() ?? Array.Empty(); + } + } + + private static FileChooserProperties ReadProperties(ref Reader reader, List? changedList = null) + { + var props = new FileChooserProperties(); + ArrayEnd headersEnd = reader.ReadArrayStart(DBusType.Struct); + while (reader.HasNext(headersEnd)) + { + var property = reader.ReadString(); + switch (property) + { + case "version": + reader.ReadSignature("u"); + props.Version = reader.ReadUInt32(); + changedList?.Add("Version"); + break; + default: + reader.ReadVariant(); + break; + } + } + + return props; + } + } + + internal class Request : DesktopObject + { + private const string Interface = "org.freedesktop.portal.Request"; + + public Request(DesktopService service, ObjectPath path) : base(service, path) { } + + public Task CloseAsync() + { + return Connection.CallMethodAsync(CreateMessage()); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + "Close"); + return writer.CreateMessage(); + } + } + + public ValueTask WatchResponseAsync(Action results)> handler, bool emitOnCapturedContext = true) + => WatchSignalAsync(Service.Destination, Interface, Path, "Response", + static (m, s) => ReadMessage_uaesv(m, (DesktopObject)s!), handler, emitOnCapturedContext); + } + + internal class DesktopService + { + public DesktopService(Connection connection, string destination) + => (Connection, Destination) = (connection, destination); + + public Connection Connection { get; } + public string Destination { get; } + public Notification CreateNotification(string path) => new(this, path); + public OpenURI CreateOpenUri(string path) => new(this, path); + public DynamicLauncher CreateDynamicLauncher(string path) => new(this, path); + public FileChooser CreateFileChooser(string path) => new(this, path); + public Request CreateRequest(string path) => new(this, path); + } + + internal class DesktopObject + { + protected DesktopObject(DesktopService service, ObjectPath path) + => (Service, Path) = (service, path); + + public DesktopService Service { get; } + public ObjectPath Path { get; } + protected Connection Connection => Service.Connection; + + protected MessageBuffer CreateGetPropertyMessage(string @interface, string property) + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + "org.freedesktop.DBus.Properties", + signature: "ss", + member: "Get"); + writer.WriteString(@interface); + writer.WriteString(property); + return writer.CreateMessage(); + } + + protected MessageBuffer CreateGetAllPropertiesMessage(string @interface) + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + "org.freedesktop.DBus.Properties", + signature: "s", + member: "GetAll"); + writer.WriteString(@interface); + return writer.CreateMessage(); + } + + protected ValueTask WatchPropertiesChangedAsync(string @interface, + MessageValueReader> reader, Action> handler, + bool emitOnCapturedContext) + { + var rule = new MatchRule + { + Type = MessageType.Signal, + Sender = Service.Destination, + Path = Path, + Interface = "org.freedesktop.DBus.Properties", + Member = "PropertiesChanged", + Arg0 = @interface + }; + return Connection.AddMatchAsync(rule, reader, + (ex, changes, rs, hs) => + ((Action>)hs!).Invoke(ex, changes), + this, handler, emitOnCapturedContext); + } + + public ValueTask WatchSignalAsync(string sender, string @interface, ObjectPath path, string signal, + MessageValueReader reader, Action handler, bool emitOnCapturedContext) + { + var rule = new MatchRule + { + Type = MessageType.Signal, + Sender = sender, + Path = path, + Member = signal, + Interface = @interface + }; + return Connection.AddMatchAsync(rule, reader, + (ex, arg, rs, hs) => ((Action)hs!).Invoke(ex, arg), + this, handler, emitOnCapturedContext); + } + + protected static ObjectPath ReadMessage_o(Message message, DesktopObject _) + { + var reader = message.GetBodyReader(); + return reader.ReadObjectPath(); + } + + protected static uint ReadMessage_v_u(Message message, DesktopObject _) + { + var reader = message.GetBodyReader(); + reader.ReadSignature("u"); + return reader.ReadUInt32(); + } + + protected static (string, string, object[]) ReadMessage_ssav(Message message, DesktopObject _) + { + var reader = message.GetBodyReader(); + var arg0 = reader.ReadString(); + var arg1 = reader.ReadString(); + var arg2 = reader.ReadArray(); + return (arg0, arg1, arg2); + } + + protected static (uint, Dictionary) ReadMessage_uaesv(Message message, DesktopObject _) + { + var reader = message.GetBodyReader(); + var arg0 = reader.ReadUInt32(); + var arg1 = reader.ReadDictionary(); + return (arg0, arg1); + } + + protected static string ReadMessage_s(Message message, DesktopObject _) + { + var reader = message.GetBodyReader(); + return reader.ReadString(); + } + + protected static (object, string, uint) ReadMessage_vsu(Message message, DesktopObject _) + { + var reader = message.GetBodyReader(); + var arg0 = reader.ReadVariant(); + var arg1 = reader.ReadString(); + var arg2 = reader.ReadUInt32(); + return (arg0, arg1, arg2); + } + } + + internal class PropertyChanges + { + public PropertyChanges(TProperties properties, string[] invalidated, string[] changed) + => (Properties, Invalidated, Changed) = (properties, invalidated, changed); + + public TProperties Properties { get; } + public string[] Invalidated { get; } + public string[] Changed { get; } + public bool HasChanged(string property) => Array.IndexOf(Changed, property) != -1; + public bool IsInvalidated(string property) => Array.IndexOf(Invalidated, property) != -1; + } +} diff --git a/src/Avalonia.FreeDesktop/StatusNotifierWatcher.DBus.cs b/src/Avalonia.FreeDesktop/StatusNotifierWatcher.DBus.cs new file mode 100644 index 0000000000..5cd44905af --- /dev/null +++ b/src/Avalonia.FreeDesktop/StatusNotifierWatcher.DBus.cs @@ -0,0 +1,351 @@ +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using Tmds.DBus.Protocol; + +namespace Avalonia.FreeDesktop +{ + internal record StatusNotifierWatcherProperties + { + public string[] RegisteredStatusNotifierItems { get; set; } = default!; + public bool IsStatusNotifierHostRegistered { get; set; } + public int ProtocolVersion { get; set; } + } + + internal class StatusNotifierWatcher : StatusNotifierWatcherObject + { + private const string Interface = "org.kde.StatusNotifierWatcher"; + + public StatusNotifierWatcher(StatusNotifierWatcherService service, ObjectPath path) : base(service, path) { } + + public Task RegisterStatusNotifierItemAsync(string service) + { + return Connection.CallMethodAsync(CreateMessage()); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + signature: "s", + member: "RegisterStatusNotifierItem"); + writer.WriteString(service); + return writer.CreateMessage(); + } + } + + public Task RegisterStatusNotifierHostAsync(string service) + { + return Connection.CallMethodAsync(CreateMessage()); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + Interface, + signature: "s", + member: "RegisterStatusNotifierHost"); + writer.WriteString(service); + return writer.CreateMessage(); + } + } + + public ValueTask WatchStatusNotifierItemRegisteredAsync(Action handler, bool emitOnCapturedContext = true) => + WatchSignalAsync(Service.Destination, Interface, Path, "StatusNotifierItemRegistered", static (m, s) => + ReadMessage_s(m, (StatusNotifierWatcherObject)s!), handler, emitOnCapturedContext); + + public ValueTask WatchStatusNotifierItemUnregisteredAsync(Action handler, bool emitOnCapturedContext = true) + => WatchSignalAsync(Service.Destination, Interface, Path, "StatusNotifierItemUnregistered", static (m, s) + => ReadMessage_s(m, (StatusNotifierWatcherObject)s!), handler, emitOnCapturedContext); + + public ValueTask WatchStatusNotifierHostRegisteredAsync(Action handler, bool emitOnCapturedContext = true) => + WatchSignalAsync(Service.Destination, Interface, Path, "StatusNotifierHostRegistered", handler, emitOnCapturedContext); + + public ValueTask WatchStatusNotifierHostUnregisteredAsync(Action handler, bool emitOnCapturedContext = true) => + WatchSignalAsync(Service.Destination, Interface, Path, "StatusNotifierHostUnregistered", handler, emitOnCapturedContext); + + public Task SetRegisteredStatusNotifierItemsAsync(string[] value) + { + return Connection.CallMethodAsync(CreateMessage()); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + "org.freedesktop.DBus.Properties", + signature: "ssv", + member: "Set"); + writer.WriteString(Interface); + writer.WriteString("RegisteredStatusNotifierItems"); + writer.WriteSignature("as"); + writer.WriteArray(value); + return writer.CreateMessage(); + } + } + + public Task SetIsStatusNotifierHostRegisteredAsync(bool value) + { + return Connection.CallMethodAsync(CreateMessage()); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + "org.freedesktop.DBus.Properties", + signature: "ssv", + member: "Set"); + writer.WriteString(Interface); + writer.WriteString("IsStatusNotifierHostRegistered"); + writer.WriteSignature("b"); + writer.WriteBool(value); + return writer.CreateMessage(); + } + } + + public Task SetProtocolVersionAsync(int value) + { + return Connection.CallMethodAsync(CreateMessage()); + + MessageBuffer CreateMessage() + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + "org.freedesktop.DBus.Properties", + signature: "ssv", + member: "Set"); + writer.WriteString(Interface); + writer.WriteString("ProtocolVersion"); + writer.WriteSignature("i"); + writer.WriteInt32(value); + return writer.CreateMessage(); + } + } + + public Task GetRegisteredStatusNotifierItemsAsync() => + Connection.CallMethodAsync(CreateGetPropertyMessage(Interface, "RegisteredStatusNotifierItems"), static (m, s) + => ReadMessage_v_as(m, (StatusNotifierWatcherObject)s!), this); + + public Task GetIsStatusNotifierHostRegisteredAsync() => + Connection.CallMethodAsync(CreateGetPropertyMessage(Interface, "IsStatusNotifierHostRegistered"), static (m, s) => + ReadMessage_v_b(m, (StatusNotifierWatcherObject)s!), this); + + public Task GetProtocolVersionAsync() => + Connection.CallMethodAsync(CreateGetPropertyMessage(Interface, "ProtocolVersion"), static (m, s) + => ReadMessage_v_i(m, (StatusNotifierWatcherObject)s!), this); + + public Task GetPropertiesAsync() + { + return Connection.CallMethodAsync(CreateGetAllPropertiesMessage(Interface), static (m, s) + => ReadMessage(m, (StatusNotifierWatcherObject)s!), this); + + static StatusNotifierWatcherProperties ReadMessage(Message message, StatusNotifierWatcherObject _) + { + var reader = message.GetBodyReader(); + return ReadProperties(ref reader); + } + } + + public ValueTask WatchPropertiesChangedAsync(Action> handler, bool emitOnCapturedContext = true) + { + return base.WatchPropertiesChangedAsync(Interface, static (m, s) => ReadMessage(m, (StatusNotifierWatcherObject)s!), handler, emitOnCapturedContext); + + static PropertyChanges ReadMessage(Message message, StatusNotifierWatcherObject _) + { + var reader = message.GetBodyReader(); + reader.ReadString(); // interface + List changed = new(); + return new PropertyChanges(ReadProperties(ref reader, changed), changed.ToArray(), + ReadInvalidated(ref reader)); + } + + static string[] ReadInvalidated(ref Reader reader) + { + List? invalidated = null; + var headersEnd = reader.ReadArrayStart(DBusType.String); + while (reader.HasNext(headersEnd)) + { + invalidated ??= new List(); + var property = reader.ReadString(); + switch (property) + { + case "RegisteredStatusNotifierItems": + invalidated.Add("RegisteredStatusNotifierItems"); + break; + case "IsStatusNotifierHostRegistered": + invalidated.Add("IsStatusNotifierHostRegistered"); + break; + case "ProtocolVersion": + invalidated.Add("ProtocolVersion"); + break; + } + } + + return invalidated?.ToArray() ?? Array.Empty(); + } + } + + private static StatusNotifierWatcherProperties ReadProperties(ref Reader reader, List? changedList = null) + { + var props = new StatusNotifierWatcherProperties(); + var headersEnd = reader.ReadArrayStart(DBusType.Struct); + while (reader.HasNext(headersEnd)) + { + var property = reader.ReadString(); + switch (property) + { + case "RegisteredStatusNotifierItems": + reader.ReadSignature("as"); + props.RegisteredStatusNotifierItems = reader.ReadArray(); + changedList?.Add("RegisteredStatusNotifierItems"); + break; + case "IsStatusNotifierHostRegistered": + reader.ReadSignature("b"); + props.IsStatusNotifierHostRegistered = reader.ReadBool(); + changedList?.Add("IsStatusNotifierHostRegistered"); + break; + case "ProtocolVersion": + reader.ReadSignature("i"); + props.ProtocolVersion = reader.ReadInt32(); + changedList?.Add("ProtocolVersion"); + break; + default: + reader.ReadVariant(); + break; + } + } + + return props; + } + } + + internal class StatusNotifierWatcherService + { + public StatusNotifierWatcherService(Connection connection, string destination) => (Connection, Destination) = (connection, destination); + + public Connection Connection { get; } + public string Destination { get; } + + public StatusNotifierWatcher CreateStatusNotifierWatcher(string path) => new(this, path); + } + + internal class StatusNotifierWatcherObject + { + protected StatusNotifierWatcherObject(StatusNotifierWatcherService service, ObjectPath path) + { + (Service, Path) = (service, path); + } + + public StatusNotifierWatcherService Service { get; } + public ObjectPath Path { get; } + protected Connection Connection => Service.Connection; + + protected MessageBuffer CreateGetPropertyMessage(string @interface, string property) + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + "org.freedesktop.DBus.Properties", + signature: "ss", + member: "Get"); + writer.WriteString(@interface); + writer.WriteString(property); + return writer.CreateMessage(); + } + + protected MessageBuffer CreateGetAllPropertiesMessage(string @interface) + { + using var writer = Connection.GetMessageWriter(); + writer.WriteMethodCallHeader( + Service.Destination, + Path, + "org.freedesktop.DBus.Properties", + signature: "s", + member: "GetAll"); + writer.WriteString(@interface); + return writer.CreateMessage(); + } + + protected ValueTask WatchPropertiesChangedAsync(string @interface, MessageValueReader> reader, Action> handler, bool emitOnCapturedContext) + { + var rule = new MatchRule + { + Type = MessageType.Signal, + Sender = Service.Destination, + Path = Path, + Interface = "org.freedesktop.DBus.Properties", + Member = "PropertiesChanged", + Arg0 = @interface + }; + return Connection.AddMatchAsync(rule, reader, static (ex, changes, _, hs) => + ((Action>)hs!).Invoke(ex, changes), this, handler, emitOnCapturedContext); + } + + public ValueTask WatchSignalAsync(string sender, string @interface, ObjectPath path, string signal, MessageValueReader reader, Action handler, bool emitOnCapturedContext) + { + var rule = new MatchRule + { + Type = MessageType.Signal, + Sender = sender, + Path = path, + Member = signal, + Interface = @interface + }; + return Connection.AddMatchAsync(rule, reader, + (ex, arg, _, hs) => ((Action)hs!).Invoke(ex, arg), + this, handler, emitOnCapturedContext); + } + + public ValueTask WatchSignalAsync(string sender, string @interface, ObjectPath path, string signal, Action handler, bool emitOnCapturedContext) + { + var rule = new MatchRule + { + Type = MessageType.Signal, + Sender = sender, + Path = path, + Member = signal, + Interface = @interface + }; + return Connection.AddMatchAsync(rule, static (_, _) + => null!, static (Exception? ex, object _, object? _, object? hs) + => ((Action)hs!).Invoke(ex), this, handler, emitOnCapturedContext); + } + + protected static string ReadMessage_s(Message message, StatusNotifierWatcherObject _) + { + var reader = message.GetBodyReader(); + return reader.ReadString(); + } + + protected static string[] ReadMessage_v_as(Message message, StatusNotifierWatcherObject _) + { + var reader = message.GetBodyReader(); + reader.ReadSignature("as"); + return reader.ReadArray(); + } + + protected static bool ReadMessage_v_b(Message message, StatusNotifierWatcherObject _) + { + var reader = message.GetBodyReader(); + reader.ReadSignature("b"); + return reader.ReadBool(); + } + + protected static int ReadMessage_v_i(Message message, StatusNotifierWatcherObject _) + { + var reader = message.GetBodyReader(); + reader.ReadSignature("i"); + return reader.ReadInt32(); + } + } +} diff --git a/src/Avalonia.X11/X11Window.cs b/src/Avalonia.X11/X11Window.cs index 810a806c8a..e0d6cf3e55 100644 --- a/src/Avalonia.X11/X11Window.cs +++ b/src/Avalonia.X11/X11Window.cs @@ -212,10 +212,10 @@ namespace Avalonia.X11 _x11.Atoms.XA_CARDINAL, 32, PropertyMode.Replace, ref _xSyncCounter, 1); } - StorageProvider = new CompositeStorageProvider(new Func>[] + StorageProvider = new CompositeStorageProvider(new[] { - () => _platform.Options.UseDBusFilePicker ? DBusSystemDialog.TryCreate(Handle) : Task.FromResult(null), - () => GtkSystemDialog.TryCreate(this), + () => _platform.Options.UseDBusFilePicker ? DBusSystemDialog.TryCreateAsync(Handle) : Task.FromResult(null), + () => GtkSystemDialog.TryCreate(this) }); } diff --git a/src/Linux/Tmds.DBus b/src/Linux/Tmds.DBus new file mode 160000 index 0000000000..bfca94ab05 --- /dev/null +++ b/src/Linux/Tmds.DBus @@ -0,0 +1 @@ +Subproject commit bfca94ab052683c7ccef51e4a036098f539cc676 From d5df9298bd2642492654b56505180da89c4faf6e Mon Sep 17 00:00:00 2001 From: affederaffe <68356204+affederaffe@users.noreply.github.com> Date: Fri, 30 Dec 2022 14:34:10 +0100 Subject: [PATCH 002/122] Fix warnings --- .../AppMenuRegistrar.DBus.cs | 25 ++- src/Avalonia.FreeDesktop/DBus.DBus.cs | 14 +- src/Avalonia.FreeDesktop/DBusCallQueue.cs | 13 +- .../DBusIme/Fcitx/FcitxEnums.cs | 64 ++++---- .../DBusIme/IBus/IBusEnums.cs | 2 +- src/Avalonia.FreeDesktop/DBusMenu.DBus.cs | 131 ++++++++++------ src/Avalonia.FreeDesktop/DBusMenuExporter.cs | 3 +- src/Avalonia.FreeDesktop/DBusSystemDialog.cs | 18 +-- src/Avalonia.FreeDesktop/DBusTrayIconImpl.cs | 32 ++-- .../FreeDesktopPortalDesktop.DBus.cs | 143 +++++++++--------- src/Avalonia.FreeDesktop/IX11InputMethod.cs | 4 +- src/Avalonia.FreeDesktop/NativeMethods.cs | 8 +- .../StatusNotifierWatcher.DBus.cs | 25 ++- 13 files changed, 258 insertions(+), 224 deletions(-) diff --git a/src/Avalonia.FreeDesktop/AppMenuRegistrar.DBus.cs b/src/Avalonia.FreeDesktop/AppMenuRegistrar.DBus.cs index a45d1642fc..75c8ce61a5 100644 --- a/src/Avalonia.FreeDesktop/AppMenuRegistrar.DBus.cs +++ b/src/Avalonia.FreeDesktop/AppMenuRegistrar.DBus.cs @@ -1,9 +1,7 @@ using System; using System.Threading.Tasks; - using Tmds.DBus.Protocol; - namespace Avalonia.FreeDesktop { internal class Registrar : AppMenuRegistrarObject @@ -52,7 +50,7 @@ namespace Avalonia.FreeDesktop public Task<(string Service, ObjectPath MenuObjectPath)> GetMenuForWindowAsync(uint windowId) { - return Connection.CallMethodAsync(CreateMessage(), (Message m, object? s) => ReadMessage_so(m, (AppMenuRegistrarObject)s!), this); + return Connection.CallMethodAsync(CreateMessage(), static (m, s) => ReadMessage_so(m, (AppMenuRegistrarObject)s!), this); MessageBuffer CreateMessage() { @@ -76,7 +74,7 @@ namespace Avalonia.FreeDesktop public Connection Connection { get; } public string Destination { get; } - public Registrar CreateRegistrar(string path) => new Registrar(this, path); + public Registrar CreateRegistrar(string path) => new(this, path); } internal class AppMenuRegistrarObject @@ -84,8 +82,8 @@ namespace Avalonia.FreeDesktop protected AppMenuRegistrarObject(RegistrarService service, ObjectPath path) => (Service, Path) = (service, path); - public RegistrarService Service { get; } - public ObjectPath Path { get; } + protected RegistrarService Service { get; } + protected ObjectPath Path { get; } protected Connection Connection => Service.Connection; protected MessageBuffer CreateGetPropertyMessage(string @interface, string property) @@ -128,9 +126,8 @@ namespace Avalonia.FreeDesktop Member = "PropertiesChanged", Arg0 = @interface }; - return Connection.AddMatchAsync(rule, reader, - (Exception? ex, PropertyChanges changes, object? rs, object? hs) => - ((Action>)hs!).Invoke(ex, changes), + return Connection.AddMatchAsync(rule, reader, static (ex, changes, _, hs) + => ((Action>)hs!).Invoke(ex, changes), this, handler, emitOnCapturedContext); } @@ -145,9 +142,8 @@ namespace Avalonia.FreeDesktop Member = signal, Interface = @interface }; - return Connection.AddMatchAsync(rule, reader, - (Exception? ex, TArg arg, object? rs, object? hs) => ((Action)hs!).Invoke(ex, arg), - this, handler, emitOnCapturedContext); + return Connection.AddMatchAsync(rule, reader, static (ex, arg, _, hs) => + ((Action)hs!).Invoke(ex, arg), this, handler, emitOnCapturedContext); } public ValueTask WatchSignalAsync(string sender, string @interface, ObjectPath path, string signal, Action handler, @@ -161,8 +157,9 @@ namespace Avalonia.FreeDesktop Member = signal, Interface = @interface }; - return Connection.AddMatchAsync(rule, (Message message, object? state) => null!, - (Exception? ex, object v, object? rs, object? hs) => ((Action)hs!).Invoke(ex), this, handler, emitOnCapturedContext); + return Connection.AddMatchAsync(rule, static (_, _) + => null!, static (ex, _, _, hs) + => ((Action)hs!).Invoke(ex), this, handler, emitOnCapturedContext); } protected static (string, ObjectPath) ReadMessage_so(Message message, AppMenuRegistrarObject _) diff --git a/src/Avalonia.FreeDesktop/DBus.DBus.cs b/src/Avalonia.FreeDesktop/DBus.DBus.cs index 4cf2b76b45..0f83ddaa4a 100644 --- a/src/Avalonia.FreeDesktop/DBus.DBus.cs +++ b/src/Avalonia.FreeDesktop/DBus.DBus.cs @@ -1,10 +1,8 @@ using System; using System.Collections.Generic; using System.Threading.Tasks; - using Tmds.DBus.Protocol; - namespace Avalonia.FreeDesktop { internal record DBusProperties @@ -417,10 +415,10 @@ namespace Avalonia.FreeDesktop public Task GetPropertiesAsync() { - return Connection.CallMethodAsync(CreateGetAllPropertiesMessage(Interface), static (m, s) => - ReadMessage(m, (DBusObject)s!), this); + return Connection.CallMethodAsync(CreateGetAllPropertiesMessage(Interface), static (m, _) => + ReadMessage(m), this); - static DBusProperties ReadMessage(Message message, DBusObject _) + static DBusProperties ReadMessage(Message message) { var reader = message.GetBodyReader(); return ReadProperties(ref reader); @@ -429,10 +427,10 @@ namespace Avalonia.FreeDesktop public ValueTask WatchPropertiesChangedAsync(Action> handler, bool emitOnCapturedContext = true) { - return base.WatchPropertiesChangedAsync(Interface, static (m, s) => - ReadMessage(m, (DBusObject)s!), handler, emitOnCapturedContext); + return base.WatchPropertiesChangedAsync(Interface, static (m, _) => + ReadMessage(m), handler, emitOnCapturedContext); - static PropertyChanges ReadMessage(Message message, DBusObject _) + static PropertyChanges ReadMessage(Message message) { var reader = message.GetBodyReader(); reader.ReadString(); // interface diff --git a/src/Avalonia.FreeDesktop/DBusCallQueue.cs b/src/Avalonia.FreeDesktop/DBusCallQueue.cs index e7c07dcbf9..b853626d45 100644 --- a/src/Avalonia.FreeDesktop/DBusCallQueue.cs +++ b/src/Avalonia.FreeDesktop/DBusCallQueue.cs @@ -7,19 +7,20 @@ namespace Avalonia.FreeDesktop class DBusCallQueue { private readonly Func _errorHandler; + private readonly Queue _q = new(); - record Item(Func Callback) + private bool _processing; + + private record Item(Func Callback) { public Action? OnFinish; } - private Queue _q = new Queue(); - private bool _processing; public DBusCallQueue(Func errorHandler) { _errorHandler = errorHandler; } - + public void Enqueue(Func cb) { _q.Enqueue(new Item(cb)); @@ -42,7 +43,7 @@ namespace Avalonia.FreeDesktop Process(); return tcs.Task; } - + public Task EnqueueAsync(Func> cb) { var tcs = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); @@ -62,7 +63,7 @@ namespace Avalonia.FreeDesktop return tcs.Task; } - async void Process() + private async void Process() { if(_processing) return; diff --git a/src/Avalonia.FreeDesktop/DBusIme/Fcitx/FcitxEnums.cs b/src/Avalonia.FreeDesktop/DBusIme/Fcitx/FcitxEnums.cs index 6510a5877a..fafc66b6b9 100644 --- a/src/Avalonia.FreeDesktop/DBusIme/Fcitx/FcitxEnums.cs +++ b/src/Avalonia.FreeDesktop/DBusIme/Fcitx/FcitxEnums.cs @@ -2,45 +2,45 @@ using System; namespace Avalonia.FreeDesktop.DBusIme.Fcitx { - enum FcitxKeyEventType + internal enum FcitxKeyEventType { FCITX_PRESS_KEY, FCITX_RELEASE_KEY - }; - + } + [Flags] - enum FcitxCapabilityFlags + internal enum FcitxCapabilityFlags { CAPACITY_NONE = 0, - CAPACITY_CLIENT_SIDE_UI = (1 << 0), - CAPACITY_PREEDIT = (1 << 1), - CAPACITY_CLIENT_SIDE_CONTROL_STATE = (1 << 2), - CAPACITY_PASSWORD = (1 << 3), - CAPACITY_FORMATTED_PREEDIT = (1 << 4), - CAPACITY_CLIENT_UNFOCUS_COMMIT = (1 << 5), - CAPACITY_SURROUNDING_TEXT = (1 << 6), - CAPACITY_EMAIL = (1 << 7), - CAPACITY_DIGIT = (1 << 8), - CAPACITY_UPPERCASE = (1 << 9), - CAPACITY_LOWERCASE = (1 << 10), - CAPACITY_NOAUTOUPPERCASE = (1 << 11), - CAPACITY_URL = (1 << 12), - CAPACITY_DIALABLE = (1 << 13), - CAPACITY_NUMBER = (1 << 14), - CAPACITY_NO_ON_SCREEN_KEYBOARD = (1 << 15), - CAPACITY_SPELLCHECK = (1 << 16), - CAPACITY_NO_SPELLCHECK = (1 << 17), - CAPACITY_WORD_COMPLETION = (1 << 18), - CAPACITY_UPPERCASE_WORDS = (1 << 19), - CAPACITY_UPPERCASE_SENTENCES = (1 << 20), - CAPACITY_ALPHA = (1 << 21), - CAPACITY_NAME = (1 << 22), - CAPACITY_GET_IM_INFO_ON_FOCUS = (1 << 23), - CAPACITY_RELATIVE_CURSOR_RECT = (1 << 24), - }; + CAPACITY_CLIENT_SIDE_UI = 1 << 0, + CAPACITY_PREEDIT = 1 << 1, + CAPACITY_CLIENT_SIDE_CONTROL_STATE = 1 << 2, + CAPACITY_PASSWORD = 1 << 3, + CAPACITY_FORMATTED_PREEDIT = 1 << 4, + CAPACITY_CLIENT_UNFOCUS_COMMIT = 1 << 5, + CAPACITY_SURROUNDING_TEXT = 1 << 6, + CAPACITY_EMAIL = 1 << 7, + CAPACITY_DIGIT = 1 << 8, + CAPACITY_UPPERCASE = 1 << 9, + CAPACITY_LOWERCASE = 1 << 10, + CAPACITY_NOAUTOUPPERCASE = 1 << 11, + CAPACITY_URL = 1 << 12, + CAPACITY_DIALABLE = 1 << 13, + CAPACITY_NUMBER = 1 << 14, + CAPACITY_NO_ON_SCREEN_KEYBOARD = 1 << 15, + CAPACITY_SPELLCHECK = 1 << 16, + CAPACITY_NO_SPELLCHECK = 1 << 17, + CAPACITY_WORD_COMPLETION = 1 << 18, + CAPACITY_UPPERCASE_WORDS = 1 << 19, + CAPACITY_UPPERCASE_SENTENCES = 1 << 20, + CAPACITY_ALPHA = 1 << 21, + CAPACITY_NAME = 1 << 22, + CAPACITY_GET_IM_INFO_ON_FOCUS = 1 << 23, + CAPACITY_RELATIVE_CURSOR_RECT = 1 << 24 + } [Flags] - enum FcitxKeyState + internal enum FcitxKeyState { FcitxKeyState_None = 0, FcitxKeyState_Shift = 1 << 0, @@ -63,5 +63,5 @@ namespace Avalonia.FreeDesktop.DBusIme.Fcitx FcitxKeyState_Hyper = 1 << 27, FcitxKeyState_Meta = 1 << 28, FcitxKeyState_UsedMask = 0x5c001fff - }; + } } diff --git a/src/Avalonia.FreeDesktop/DBusIme/IBus/IBusEnums.cs b/src/Avalonia.FreeDesktop/DBusIme/IBus/IBusEnums.cs index b8ac816694..1b430f9c90 100644 --- a/src/Avalonia.FreeDesktop/DBusIme/IBus/IBusEnums.cs +++ b/src/Avalonia.FreeDesktop/DBusIme/IBus/IBusEnums.cs @@ -40,6 +40,6 @@ namespace Avalonia.FreeDesktop.DBusIme.IBus CapLookupTable = 1 << 2, CapFocus = 1 << 3, CapProperty = 1 << 4, - CapSurroundingText = 1 << 5, + CapSurroundingText = 1 << 5 } } diff --git a/src/Avalonia.FreeDesktop/DBusMenu.DBus.cs b/src/Avalonia.FreeDesktop/DBusMenu.DBus.cs index d9016d8644..e3928cfbb2 100644 --- a/src/Avalonia.FreeDesktop/DBusMenu.DBus.cs +++ b/src/Avalonia.FreeDesktop/DBusMenu.DBus.cs @@ -16,11 +16,12 @@ namespace Avalonia.FreeDesktop internal class DBusMenu : DBusMenuObject { private const string Interface = "com.canonical.dbusmenu"; - public DBusMenu(DBusMenuService service, ObjectPath path) : base(service, path) - { } + + public DBusMenu(DBusMenuService service, ObjectPath path) : base(service, path) { } + public Task<(uint Revision, (int, Dictionary, object[]) Layout)> GetLayoutAsync(int parentId, int recursionDepth, string[] propertyNames) { - return Connection.CallMethodAsync(CreateMessage(), (m, s) => ReadMessage_uriaesvavz(m, (DBusMenuObject)s!), this); + return Connection.CallMethodAsync(CreateMessage(), static (m, _) => ReadMessage_uriaesvavz(m), this); MessageBuffer CreateMessage() { using var writer = Connection.GetMessageWriter(); @@ -36,9 +37,10 @@ namespace Avalonia.FreeDesktop return writer.CreateMessage(); } } + public Task<(int, Dictionary)[]> GetGroupPropertiesAsync(int[] ids, string[] propertyNames) { - return Connection.CallMethodAsync(CreateMessage(), (m, s) => ReadMessage_ariaesvz(m, (DBusMenuObject)s!), this); + return Connection.CallMethodAsync(CreateMessage(), static (m, _) => ReadMessage_ariaesvz(m), this); MessageBuffer CreateMessage() { using var writer = Connection.GetMessageWriter(); @@ -53,9 +55,10 @@ namespace Avalonia.FreeDesktop return writer.CreateMessage(); } } + public Task GetPropertyAsync(int id, string name) { - return Connection.CallMethodAsync(CreateMessage(), (m, s) => ReadMessage_v(m, (DBusMenuObject)s!), this); + return Connection.CallMethodAsync(CreateMessage(), static (m, _) => ReadMessage_v(m), this); MessageBuffer CreateMessage() { using var writer = Connection.GetMessageWriter(); @@ -70,6 +73,7 @@ namespace Avalonia.FreeDesktop return writer.CreateMessage(); } } + public Task EventAsync(int id, string eventId, object data, uint timestamp) { return Connection.CallMethodAsync(CreateMessage()); @@ -89,9 +93,10 @@ namespace Avalonia.FreeDesktop return writer.CreateMessage(); } } + public Task EventGroupAsync((int, string, object, uint)[] events) { - return Connection.CallMethodAsync(CreateMessage(), (m, s) => ReadMessage_ai(m, (DBusMenuObject)s!), this); + return Connection.CallMethodAsync(CreateMessage(), static (m, _) => ReadMessage_ai(m), this); MessageBuffer CreateMessage() { using var writer = Connection.GetMessageWriter(); @@ -105,9 +110,10 @@ namespace Avalonia.FreeDesktop return writer.CreateMessage(); } } + public Task AboutToShowAsync(int id) { - return Connection.CallMethodAsync(CreateMessage(), (m, s) => ReadMessage_b(m, (DBusMenuObject)s!), this); + return Connection.CallMethodAsync(CreateMessage(), static (m, _) => ReadMessage_b(m), this); MessageBuffer CreateMessage() { using var writer = Connection.GetMessageWriter(); @@ -121,9 +127,10 @@ namespace Avalonia.FreeDesktop return writer.CreateMessage(); } } + public Task<(int[] UpdatesNeeded, int[] IdErrors)> AboutToShowGroupAsync(int[] ids) { - return Connection.CallMethodAsync(CreateMessage(), (m, s) => ReadMessage_aiai(m, (DBusMenuObject)s!), this); + return Connection.CallMethodAsync(CreateMessage(), static (m, _) => ReadMessage_aiai(m), this); MessageBuffer CreateMessage() { using var writer = Connection.GetMessageWriter(); @@ -137,12 +144,16 @@ namespace Avalonia.FreeDesktop return writer.CreateMessage(); } } + public ValueTask WatchItemsPropertiesUpdatedAsync(Action)[] UpdatedProps, (int, string[])[] RemovedProps)> handler, bool emitOnCapturedContext = true) - => WatchSignalAsync(Service.Destination, Interface, Path, "ItemsPropertiesUpdated", (m, s) => ReadMessage_ariaesvzariasz(m, (DBusMenuObject)s!), handler, emitOnCapturedContext); + => WatchSignalAsync(Service.Destination, Interface, Path, "ItemsPropertiesUpdated", static (m, _) => ReadMessage_ariaesvzariasz(m), handler, emitOnCapturedContext); + public ValueTask WatchLayoutUpdatedAsync(Action handler, bool emitOnCapturedContext = true) - => WatchSignalAsync(Service.Destination, Interface, Path, "LayoutUpdated", (m, s) => ReadMessage_ui(m, (DBusMenuObject)s!), handler, emitOnCapturedContext); + => WatchSignalAsync(Service.Destination, Interface, Path, "LayoutUpdated", static (m, _) => ReadMessage_ui(m), handler, emitOnCapturedContext); + public ValueTask WatchItemActivationRequestedAsync(Action handler, bool emitOnCapturedContext = true) - => WatchSignalAsync(Service.Destination, Interface, Path, "ItemActivationRequested", (m, s) => ReadMessage_iu(m, (DBusMenuObject)s!), handler, emitOnCapturedContext); + => WatchSignalAsync(Service.Destination, Interface, Path, "ItemActivationRequested", static (m, _) => ReadMessage_iu(m), handler, emitOnCapturedContext); + public Task SetVersionAsync(uint value) { return Connection.CallMethodAsync(CreateMessage()); @@ -162,6 +173,7 @@ namespace Avalonia.FreeDesktop return writer.CreateMessage(); } } + public Task SetTextDirectionAsync(string value) { return Connection.CallMethodAsync(CreateMessage()); @@ -181,6 +193,7 @@ namespace Avalonia.FreeDesktop return writer.CreateMessage(); } } + public Task SetStatusAsync(string value) { return Connection.CallMethodAsync(CreateMessage()); @@ -200,6 +213,7 @@ namespace Avalonia.FreeDesktop return writer.CreateMessage(); } } + public Task SetIconThemePathAsync(string[] value) { return Connection.CallMethodAsync(CreateMessage()); @@ -219,40 +233,46 @@ namespace Avalonia.FreeDesktop return writer.CreateMessage(); } } + public Task GetVersionAsync() - => Connection.CallMethodAsync(CreateGetPropertyMessage(Interface, "Version"), (m, s) => ReadMessage_v_u(m, (DBusMenuObject)s!), this); + => Connection.CallMethodAsync(CreateGetPropertyMessage(Interface, "Version"), static (m, _) => ReadMessage_v_u(m), this); + public Task GetTextDirectionAsync() - => Connection.CallMethodAsync(CreateGetPropertyMessage(Interface, "TextDirection"), (m, s) => ReadMessage_v_s(m, (DBusMenuObject)s!), this); + => Connection.CallMethodAsync(CreateGetPropertyMessage(Interface, "TextDirection"), static (m, _) => ReadMessage_v_s(m), this); + public Task GetStatusAsync() - => Connection.CallMethodAsync(CreateGetPropertyMessage(Interface, "Status"), (m, s) => ReadMessage_v_s(m, (DBusMenuObject)s!), this); + => Connection.CallMethodAsync(CreateGetPropertyMessage(Interface, "Status"), static (m, _) => ReadMessage_v_s(m), this); + public Task GetIconThemePathAsync() - => Connection.CallMethodAsync(CreateGetPropertyMessage(Interface, "IconThemePath"), (m, s) => ReadMessage_v_as(m, (DBusMenuObject)s!), this); + => Connection.CallMethodAsync(CreateGetPropertyMessage(Interface, "IconThemePath"), static (m, _) => ReadMessage_v_as(m), this); + public Task GetPropertiesAsync() { - return Connection.CallMethodAsync(CreateGetAllPropertiesMessage(Interface), (m, s) => ReadMessage(m, (DBusMenuObject)s!), this); - static DBusMenuProperties ReadMessage(Message message, DBusMenuObject _) + return Connection.CallMethodAsync(CreateGetAllPropertiesMessage(Interface), static (m, _) => ReadMessage(m), this); + static DBusMenuProperties ReadMessage(Message message) { var reader = message.GetBodyReader(); return ReadProperties(ref reader); } } + public ValueTask WatchPropertiesChangedAsync(Action> handler, bool emitOnCapturedContext = true) { - return base.WatchPropertiesChangedAsync(Interface, (m, s) => ReadMessage(m, (DBusMenuObject)s!), handler, emitOnCapturedContext); - static PropertyChanges ReadMessage(Message message, DBusMenuObject _) + return base.WatchPropertiesChangedAsync(Interface, static (m, _) => ReadMessage(m), handler, emitOnCapturedContext); + static PropertyChanges ReadMessage(Message message) { var reader = message.GetBodyReader(); reader.ReadString(); // interface - List changed = new(), invalidated = new(); + List changed = new(); return new PropertyChanges(ReadProperties(ref reader, changed), changed.ToArray(), ReadInvalidated(ref reader)); } static string[] ReadInvalidated(ref Reader reader) { List? invalidated = null; - ArrayEnd headersEnd = reader.ReadArrayStart(DBusType.String); + var headersEnd = reader.ReadArrayStart(DBusType.String); while (reader.HasNext(headersEnd)) { - invalidated ??= new(); + invalidated ??= new List(); var property = reader.ReadString(); switch (property) { @@ -265,10 +285,11 @@ namespace Avalonia.FreeDesktop return invalidated?.ToArray() ?? Array.Empty(); } } - private static DBusMenuProperties ReadProperties(ref Reader reader, List? changedList = null) + + private static DBusMenuProperties ReadProperties(ref Reader reader, ICollection? changedList = null) { var props = new DBusMenuProperties(); - ArrayEnd headersEnd = reader.ReadArrayStart(DBusType.Struct); + var headersEnd = reader.ReadArrayStart(DBusType.Struct); while (reader.HasNext(headersEnd)) { var property = reader.ReadString(); @@ -309,7 +330,7 @@ namespace Avalonia.FreeDesktop public string Destination { get; } public DBusMenuService(Connection connection, string destination) => (Connection, Destination) = (connection, destination); - public DBusMenu CreateDbusmenu(string path) => new DBusMenu(this, path); + public DBusMenu CreateDbusmenu(string path) => new(this, path); } internal class DBusMenuObject @@ -319,6 +340,7 @@ namespace Avalonia.FreeDesktop protected Connection Connection => Service.Connection; protected DBusMenuObject(DBusMenuService service, ObjectPath path) => (Service, Path) = (service, path); + protected MessageBuffer CreateGetPropertyMessage(string @interface, string property) { using var writer = Connection.GetMessageWriter(); @@ -332,6 +354,7 @@ namespace Avalonia.FreeDesktop writer.WriteString(property); return writer.CreateMessage(); } + protected MessageBuffer CreateGetAllPropertiesMessage(string @interface) { using var writer = Connection.GetMessageWriter(); @@ -344,6 +367,7 @@ namespace Avalonia.FreeDesktop writer.WriteString(@interface); return writer.CreateMessage(); } + protected ValueTask WatchPropertiesChangedAsync(string @interface, MessageValueReader> reader, Action> handler, bool emitOnCapturedContext) { var rule = new MatchRule @@ -355,11 +379,11 @@ namespace Avalonia.FreeDesktop Member = "PropertiesChanged", Arg0 = @interface }; - return Connection.AddMatchAsync(rule, reader, - (ex, changes, rs, hs) => ((Action>)hs!).Invoke(ex, changes), - this, handler, emitOnCapturedContext); + return Connection.AddMatchAsync(rule, reader, static (ex, changes, _, hs) + => ((Action>)hs!).Invoke(ex, changes), this, handler, emitOnCapturedContext); } - public ValueTask WatchSignalAsync(string sender, string @interface, ObjectPath path, string signal, MessageValueReader reader, Action handler, bool emitOnCapturedContext) + + protected ValueTask WatchSignalAsync(string sender, string @interface, ObjectPath path, string signal, MessageValueReader reader, Action handler, bool emitOnCapturedContext) { var rule = new MatchRule { @@ -369,11 +393,11 @@ namespace Avalonia.FreeDesktop Member = signal, Interface = @interface }; - return Connection.AddMatchAsync(rule, reader, - (ex, arg, rs, hs) => ((Action)hs!).Invoke(ex, arg), - this, handler, emitOnCapturedContext); + return Connection.AddMatchAsync(rule, reader, static (ex, arg, _, hs) + => ((Action)hs!).Invoke(ex, arg), this, handler, emitOnCapturedContext); } - public ValueTask WatchSignalAsync(string sender, string @interface, ObjectPath path, string signal, Action handler, bool emitOnCapturedContext) + + protected ValueTask WatchSignalAsync(string sender, string @interface, ObjectPath path, string signal, Action handler, bool emitOnCapturedContext) { var rule = new MatchRule { @@ -383,77 +407,90 @@ namespace Avalonia.FreeDesktop Member = signal, Interface = @interface }; - return Connection.AddMatchAsync(rule, (message, state) => null!, - (ex, v, rs, hs) => ((Action)hs!).Invoke(ex), this, handler, emitOnCapturedContext); + return Connection.AddMatchAsync(rule, static (_, _) + => null!, static (ex, _, _, hs) + => ((Action)hs!).Invoke(ex), this, handler, emitOnCapturedContext); } - protected static (uint, (int, Dictionary, object[])) ReadMessage_uriaesvavz(Message message, DBusMenuObject _) + + protected static (uint, (int, Dictionary, object[])) ReadMessage_uriaesvavz(Message message) { var reader = message.GetBodyReader(); var arg0 = reader.ReadUInt32(); var arg1 = reader.ReadStruct, object[]>(); return (arg0, arg1); } - protected static (int, Dictionary)[] ReadMessage_ariaesvz(Message message, DBusMenuObject _) + + protected static (int, Dictionary)[] ReadMessage_ariaesvz(Message message) { var reader = message.GetBodyReader(); return reader.ReadArray<(int, Dictionary)>(); } - protected static object ReadMessage_v(Message message, DBusMenuObject _) + + protected static object ReadMessage_v(Message message) { var reader = message.GetBodyReader(); return reader.ReadVariant(); } - protected static int[] ReadMessage_ai(Message message, DBusMenuObject _) + + protected static int[] ReadMessage_ai(Message message) { var reader = message.GetBodyReader(); return reader.ReadArray(); } - protected static bool ReadMessage_b(Message message, DBusMenuObject _) + + protected static bool ReadMessage_b(Message message) { var reader = message.GetBodyReader(); return reader.ReadBool(); } - protected static (int[], int[]) ReadMessage_aiai(Message message, DBusMenuObject _) + + protected static (int[], int[]) ReadMessage_aiai(Message message) { var reader = message.GetBodyReader(); var arg0 = reader.ReadArray(); var arg1 = reader.ReadArray(); return (arg0, arg1); } - protected static ((int, Dictionary)[], (int, string[])[]) ReadMessage_ariaesvzariasz(Message message, DBusMenuObject _) + + protected static ((int, Dictionary)[], (int, string[])[]) ReadMessage_ariaesvzariasz(Message message) { var reader = message.GetBodyReader(); var arg0 = reader.ReadArray<(int, Dictionary)>(); var arg1 = reader.ReadArray<(int, string[])>(); return (arg0, arg1); } - protected static (uint, int) ReadMessage_ui(Message message, DBusMenuObject _) + + protected static (uint, int) ReadMessage_ui(Message message) { var reader = message.GetBodyReader(); var arg0 = reader.ReadUInt32(); var arg1 = reader.ReadInt32(); return (arg0, arg1); } - protected static (int, uint) ReadMessage_iu(Message message, DBusMenuObject _) + + protected static (int, uint) ReadMessage_iu(Message message) { var reader = message.GetBodyReader(); var arg0 = reader.ReadInt32(); var arg1 = reader.ReadUInt32(); return (arg0, arg1); } - protected static uint ReadMessage_v_u(Message message, DBusMenuObject _) + + protected static uint ReadMessage_v_u(Message message) { var reader = message.GetBodyReader(); reader.ReadSignature("u"); return reader.ReadUInt32(); } - protected static string ReadMessage_v_s(Message message, DBusMenuObject _) + + protected static string ReadMessage_v_s(Message message) { var reader = message.GetBodyReader(); reader.ReadSignature("s"); return reader.ReadString(); } - protected static string[] ReadMessage_v_as(Message message, DBusMenuObject _) + + protected static string[] ReadMessage_v_as(Message message) { var reader = message.GetBodyReader(); reader.ReadSignature("as"); diff --git a/src/Avalonia.FreeDesktop/DBusMenuExporter.cs b/src/Avalonia.FreeDesktop/DBusMenuExporter.cs index 682434bc8d..69e2eed72f 100644 --- a/src/Avalonia.FreeDesktop/DBusMenuExporter.cs +++ b/src/Avalonia.FreeDesktop/DBusMenuExporter.cs @@ -96,8 +96,7 @@ namespace Avalonia.FreeDesktop public void SetNativeMenu(NativeMenu? menu) { - if (menu is null) - menu = new NativeMenu(); + menu ??= new NativeMenu(); if (_menu is not null) ((INotifyCollectionChanged)_menu.Items).CollectionChanged -= OnMenuItemsChanged; diff --git a/src/Avalonia.FreeDesktop/DBusSystemDialog.cs b/src/Avalonia.FreeDesktop/DBusSystemDialog.cs index d59af3b5dd..7d1a0bbfc4 100644 --- a/src/Avalonia.FreeDesktop/DBusSystemDialog.cs +++ b/src/Avalonia.FreeDesktop/DBusSystemDialog.cs @@ -18,9 +18,9 @@ namespace Avalonia.FreeDesktop if (DBusHelper.Connection is null) return null; var services = await DBusHelper.Connection.ListServicesAsync(); - if (!services.Contains("org.freedesktop.portal.Desktop", StringComparer.Ordinal)) - return null; - return new DBusSystemDialog(new DesktopService(DBusHelper.Connection, "org.freedesktop.portal.Desktop"), handle); + return services.Contains("org.freedesktop.portal.Desktop", StringComparer.Ordinal) + ? new DBusSystemDialog(new DesktopService(DBusHelper.Connection, "org.freedesktop.portal.Desktop"), handle) + : null; } private readonly DesktopService _desktopService; @@ -140,15 +140,15 @@ namespace Avalonia.FreeDesktop var filters = new List<(string name, (uint style, string extension)[])>(); foreach (var fileType in fileTypes) { - const uint globStyle = 0u; - const uint mimeStyle = 1u; + const uint GlobStyle = 0u; + const uint MimeStyle = 1u; var extensions = Enumerable.Empty<(uint, string)>(); - if (fileType.Patterns is { } patterns) - extensions = extensions.Concat(patterns.Select(static x => (globStyle, x))); - else if (fileType.MimeTypes is { } mimeTypes) - extensions = extensions.Concat(mimeTypes.Select(static x => (mimeStyle, x))); + if (fileType.Patterns is not null) + extensions = extensions.Concat(fileType.Patterns.Select(static x => (globStyle: GlobStyle, x))); + else if (fileType.MimeTypes is not null) + extensions = extensions.Concat(fileType.MimeTypes.Select(static x => (mimeStyle: MimeStyle, x))); if (extensions.Any()) filters.Add((fileType.Name, extensions.ToArray())); } diff --git a/src/Avalonia.FreeDesktop/DBusTrayIconImpl.cs b/src/Avalonia.FreeDesktop/DBusTrayIconImpl.cs index ed041cb2ca..d6518f7246 100644 --- a/src/Avalonia.FreeDesktop/DBusTrayIconImpl.cs +++ b/src/Avalonia.FreeDesktop/DBusTrayIconImpl.cs @@ -72,7 +72,7 @@ namespace Avalonia.FreeDesktop if (!services.Contains("org.kde.StatusNotifierWatcher", StringComparer.Ordinal)) return; - _serviceWatchDisposable = await _dBus!.WatchNameOwnerChangedAsync((e, x) => { OnNameChange(x.A2); }); + _serviceWatchDisposable = await _dBus!.WatchNameOwnerChangedAsync((_, x) => OnNameChange(x.A2) ); var nameOwner = await _dBus.GetNameOwnerAsync("org.kde.StatusNotifierWatcher"); OnNameChange(nameOwner); } @@ -128,7 +128,7 @@ namespace Avalonia.FreeDesktop if (_connection is null || !_serviceConnected || _isDisposed || _statusNotifierItemDbusObj is null || _sysTrayServiceName is null) return; - _dBus.ReleaseNameAsync(_sysTrayServiceName); + _dBus!.ReleaseNameAsync(_sysTrayServiceName); } public void Dispose() @@ -147,7 +147,7 @@ namespace Avalonia.FreeDesktop if (icon is null) { - _statusNotifierItemDbusObj?.SetIcon((1, 1, new byte[] { 255, 0, 0, 0 })); + _statusNotifierItemDbusObj?.SetIcon(StatusNotifierItemDbusObj.StatusNotifierItemProperties.EmptyPixmap); return; } @@ -238,7 +238,7 @@ namespace Avalonia.FreeDesktop EmitVoidSignal("NewAttentionIcon"); EmitVoidSignal("NewOverlayIcon"); EmitVoidSignal("NewToolTip"); - EmitStringSignal("NewStatus", _backingProperties.Status ?? string.Empty); + EmitStringSignal("NewStatus", _backingProperties.Status); } public void SetIcon((int, int, byte[]) dbusPixmap) @@ -287,7 +287,7 @@ namespace Avalonia.FreeDesktop case ("Get", "ss"): { var reader = context.Request.GetBodyReader(); - var interfaceName = reader.ReadString(); + _ = reader.ReadString(); var member = reader.ReadString(); switch (member) { @@ -349,10 +349,10 @@ namespace Avalonia.FreeDesktop var writer = context.CreateReplyWriter("a{sv}"); var dict = new Dictionary { - { "Category", _backingProperties.Category ?? string.Empty }, - { "Id", _backingProperties.Id ?? string.Empty }, - { "Title", _backingProperties.Title ?? string.Empty }, - { "Status", _backingProperties.Status ?? string.Empty }, + { "Category", _backingProperties.Category }, + { "Id", _backingProperties.Id }, + { "Title", _backingProperties.Title }, + { "Status", _backingProperties.Status }, { "Menu", _backingProperties.Menu }, { "IconPixmap", _backingProperties.IconPixmap }, { "ToolTip", _backingProperties.ToolTip } @@ -385,24 +385,26 @@ namespace Avalonia.FreeDesktop _connection.TrySendMessage(writer.CreateMessage()); } - private record StatusNotifierItemProperties + internal record StatusNotifierItemProperties { - public string? Category { get; set; } - public string? Id { get; set; } - public string? Title { get; set; } - public string? Status { get; set; } + public string Category { get; set; } = string.Empty; + public string Id { get; set; } = string.Empty; + public string Title { get; set; } = string.Empty; + public string Status { get; set; } = string.Empty; public int WindowId { get; set; } public string? IconThemePath { get; set; } public ObjectPath Menu { get; set; } public bool ItemIsMenu { get; set; } public string? IconName { get; set; } - public (int, int, byte[])[]? IconPixmap { get; set; } + public (int, int, byte[])[] IconPixmap { get; set; } = { EmptyPixmap }; public string? OverlayIconName { get; set; } public (int, int, byte[])[]? OverlayIconPixmap { get; set; } public string? AttentionIconName { get; set; } public (int, int, byte[])[]? AttentionIconPixmap { get; set; } public string? AttentionMovieName { get; set; } public (string, (int, int, byte[])[], string, string) ToolTip { get; set; } + + public static (int, int, byte[]) EmptyPixmap = (1, 1, new byte[] { 255, 0, 0, 0 }); } } } diff --git a/src/Avalonia.FreeDesktop/FreeDesktopPortalDesktop.DBus.cs b/src/Avalonia.FreeDesktop/FreeDesktopPortalDesktop.DBus.cs index a0ca8abc97..23f1dcf0e7 100644 --- a/src/Avalonia.FreeDesktop/FreeDesktopPortalDesktop.DBus.cs +++ b/src/Avalonia.FreeDesktop/FreeDesktopPortalDesktop.DBus.cs @@ -56,8 +56,8 @@ namespace Avalonia.FreeDesktop public ValueTask WatchActionInvokedAsync(Action handler, bool emitOnCapturedContext = true) - => WatchSignalAsync(Service.Destination, Interface, Path, "ActionInvoked", - (m, s) => ReadMessage_ssav(m, (DesktopObject)s!), handler, emitOnCapturedContext); + => WatchSignalAsync(Service.Destination, Interface, Path, "ActionInvoked", static (m, s) + => ReadMessage_ssav(m, (DesktopObject)s!), handler, emitOnCapturedContext); public Task SetVersionAsync(uint value) { @@ -81,15 +81,15 @@ namespace Avalonia.FreeDesktop } public Task GetVersionAsync() - => Connection.CallMethodAsync(CreateGetPropertyMessage(Interface, "version"), - (m, s) => ReadMessage_v_u(m, (DesktopObject)s!), this); + => Connection.CallMethodAsync(CreateGetPropertyMessage(Interface, "version"), static (m, s) + => ReadMessage_v_u(m, (DesktopObject)s!), this); public Task GetPropertiesAsync() { - return Connection.CallMethodAsync(CreateGetAllPropertiesMessage(Interface), - (m, s) => ReadMessage(m, (DesktopObject)s!), this); + return Connection.CallMethodAsync(CreateGetAllPropertiesMessage(Interface), static (m, _) + => ReadMessage(m), this); - static NotificationProperties ReadMessage(Message message, DesktopObject _) + static NotificationProperties ReadMessage(Message message) { var reader = message.GetBodyReader(); return ReadProperties(ref reader); @@ -99,10 +99,10 @@ namespace Avalonia.FreeDesktop public ValueTask WatchPropertiesChangedAsync(Action> handler, bool emitOnCapturedContext = true) { - return base.WatchPropertiesChangedAsync(Interface, (m, s) => ReadMessage(m, (DesktopObject)s!), handler, - emitOnCapturedContext); + return base.WatchPropertiesChangedAsync(Interface, static (m, _) + => ReadMessage(m), handler, emitOnCapturedContext); - static PropertyChanges ReadMessage(Message message, DesktopObject _) + static PropertyChanges ReadMessage(Message message) { var reader = message.GetBodyReader(); reader.ReadString(); // interface @@ -114,10 +114,10 @@ namespace Avalonia.FreeDesktop static string[] ReadInvalidated(ref Reader reader) { List? invalidated = null; - ArrayEnd headersEnd = reader.ReadArrayStart(DBusType.String); + var headersEnd = reader.ReadArrayStart(DBusType.String); while (reader.HasNext(headersEnd)) { - invalidated ??= new(); + invalidated ??= new List(); var property = reader.ReadString(); switch (property) { @@ -131,10 +131,10 @@ namespace Avalonia.FreeDesktop } } - private static NotificationProperties ReadProperties(ref Reader reader, List? changedList = null) + private static NotificationProperties ReadProperties(ref Reader reader, ICollection? changedList = null) { var props = new NotificationProperties(); - ArrayEnd headersEnd = reader.ReadArrayStart(DBusType.Struct); + var headersEnd = reader.ReadArrayStart(DBusType.Struct); while (reader.HasNext(headersEnd)) { var property = reader.ReadString(); @@ -168,7 +168,7 @@ namespace Avalonia.FreeDesktop public Task OpenUriAsync(string parentWindow, string uri, Dictionary options) { - return Connection.CallMethodAsync(CreateMessage(), (m, s) => ReadMessage_o(m, (DesktopObject)s!), this); + return Connection.CallMethodAsync(CreateMessage(), static (m, s) => ReadMessage_o(m, (DesktopObject)s!), this); MessageBuffer CreateMessage() { @@ -188,7 +188,7 @@ namespace Avalonia.FreeDesktop public Task OpenFileAsync(string parentWindow, SafeHandle fd, Dictionary options) { - return Connection.CallMethodAsync(CreateMessage(), (m, s) => ReadMessage_o(m, (DesktopObject)s!), this); + return Connection.CallMethodAsync(CreateMessage(), static (m, s) => ReadMessage_o(m, (DesktopObject)s!), this); MessageBuffer CreateMessage() { @@ -208,7 +208,7 @@ namespace Avalonia.FreeDesktop public Task OpenDirectoryAsync(string parentWindow, SafeHandle fd, Dictionary options) { - return Connection.CallMethodAsync(CreateMessage(), (m, s) => ReadMessage_o(m, (DesktopObject)s!), this); + return Connection.CallMethodAsync(CreateMessage(), static (m, s) => ReadMessage_o(m, (DesktopObject)s!), this); MessageBuffer CreateMessage() { @@ -248,15 +248,15 @@ namespace Avalonia.FreeDesktop } public Task GetVersionAsync() - => Connection.CallMethodAsync(CreateGetPropertyMessage(Interface, "version"), - (m, s) => ReadMessage_v_u(m, (DesktopObject)s!), this); + => Connection.CallMethodAsync(CreateGetPropertyMessage(Interface, "version"), static (m, s) + => ReadMessage_v_u(m, (DesktopObject)s!), this); public Task GetPropertiesAsync() { - return Connection.CallMethodAsync(CreateGetAllPropertiesMessage(Interface), - (m, s) => ReadMessage(m, (DesktopObject)s!), this); + return Connection.CallMethodAsync(CreateGetAllPropertiesMessage(Interface), static (m, _) + => ReadMessage(m), this); - static OpenURIProperties ReadMessage(Message message, DesktopObject _) + static OpenURIProperties ReadMessage(Message message) { var reader = message.GetBodyReader(); return ReadProperties(ref reader); @@ -266,10 +266,10 @@ namespace Avalonia.FreeDesktop public ValueTask WatchPropertiesChangedAsync(Action> handler, bool emitOnCapturedContext = true) { - return base.WatchPropertiesChangedAsync(Interface, (m, s) => ReadMessage(m, (DesktopObject)s!), handler, - emitOnCapturedContext); + return base.WatchPropertiesChangedAsync(Interface, static (m, _) + => ReadMessage(m), handler, emitOnCapturedContext); - static PropertyChanges ReadMessage(Message message, DesktopObject _) + static PropertyChanges ReadMessage(Message message) { var reader = message.GetBodyReader(); reader.ReadString(); // interface @@ -280,10 +280,10 @@ namespace Avalonia.FreeDesktop static string[] ReadInvalidated(ref Reader reader) { List? invalidated = null; - ArrayEnd headersEnd = reader.ReadArrayStart(DBusType.String); + var headersEnd = reader.ReadArrayStart(DBusType.String); while (reader.HasNext(headersEnd)) { - invalidated ??= new(); + invalidated ??= new List(); var property = reader.ReadString(); switch (property) { @@ -297,10 +297,10 @@ namespace Avalonia.FreeDesktop } } - private static OpenURIProperties ReadProperties(ref Reader reader, List? changedList = null) + private static OpenURIProperties ReadProperties(ref Reader reader, ICollection? changedList = null) { var props = new OpenURIProperties(); - ArrayEnd headersEnd = reader.ReadArrayStart(DBusType.Struct); + var headersEnd = reader.ReadArrayStart(DBusType.Struct); while (reader.HasNext(headersEnd)) { var property = reader.ReadString(); @@ -356,7 +356,7 @@ namespace Avalonia.FreeDesktop public Task PrepareInstallAsync(string parentWindow, string name, object iconV, Dictionary options) { - return Connection.CallMethodAsync(CreateMessage(), (m, s) => ReadMessage_o(m, (DesktopObject)s!), this); + return Connection.CallMethodAsync(CreateMessage(), static (m, s) => ReadMessage_o(m, (DesktopObject)s!), this); MessageBuffer CreateMessage() { @@ -377,7 +377,8 @@ namespace Avalonia.FreeDesktop public Task RequestInstallTokenAsync(string name, object iconV, Dictionary options) { - return Connection.CallMethodAsync(CreateMessage(), (m, s) => ReadMessage_s(m, (DesktopObject)s!), this); + return Connection.CallMethodAsync(CreateMessage(), static (m, s) + => ReadMessage_s(m, (DesktopObject)s!), this); MessageBuffer CreateMessage() { @@ -416,7 +417,8 @@ namespace Avalonia.FreeDesktop public Task GetDesktopEntryAsync(string desktopFileId) { - return Connection.CallMethodAsync(CreateMessage(), (m, s) => ReadMessage_s(m, (DesktopObject)s!), this); + return Connection.CallMethodAsync(CreateMessage(), static (m, s) + => ReadMessage_s(m, (DesktopObject)s!), this); MessageBuffer CreateMessage() { @@ -434,7 +436,8 @@ namespace Avalonia.FreeDesktop public Task<(object IconV, string IconFormat, uint IconSize)> GetIconAsync(string desktopFileId) { - return Connection.CallMethodAsync(CreateMessage(), (m, s) => ReadMessage_vsu(m, (DesktopObject)s!), this); + return Connection.CallMethodAsync(CreateMessage(), static (m, s) + => ReadMessage_vsu(m, (DesktopObject)s!), this); MessageBuffer CreateMessage() { @@ -512,19 +515,19 @@ namespace Avalonia.FreeDesktop } public Task GetSupportedLauncherTypesAsync() - => Connection.CallMethodAsync(CreateGetPropertyMessage(Interface, "SupportedLauncherTypes"), - (m, s) => ReadMessage_v_u(m, (DesktopObject)s!), this); + => Connection.CallMethodAsync(CreateGetPropertyMessage(Interface, "SupportedLauncherTypes"), static (m, s) + => ReadMessage_v_u(m, (DesktopObject)s!), this); public Task GetVersionAsync() - => Connection.CallMethodAsync(CreateGetPropertyMessage(Interface, "version"), - (m, s) => ReadMessage_v_u(m, (DesktopObject)s!), this); + => Connection.CallMethodAsync(CreateGetPropertyMessage(Interface, "version"), static (m, s) + => ReadMessage_v_u(m, (DesktopObject)s!), this); public Task GetPropertiesAsync() { - return Connection.CallMethodAsync(CreateGetAllPropertiesMessage(Interface), - (m, s) => ReadMessage(m, (DesktopObject)s!), this); + return Connection.CallMethodAsync(CreateGetAllPropertiesMessage(Interface), static (m, _) + => ReadMessage(m), this); - static DynamicLauncherProperties ReadMessage(Message message, DesktopObject _) + static DynamicLauncherProperties ReadMessage(Message message) { var reader = message.GetBodyReader(); return ReadProperties(ref reader); @@ -534,10 +537,11 @@ namespace Avalonia.FreeDesktop public ValueTask WatchPropertiesChangedAsync(Action> handler, bool emitOnCapturedContext = true) { - return base.WatchPropertiesChangedAsync(Interface, (m, s) => ReadMessage(m, (DesktopObject)s!), handler, + return base.WatchPropertiesChangedAsync(Interface, static (m, _) + => ReadMessage(m), handler, emitOnCapturedContext); - static PropertyChanges ReadMessage(Message message, DesktopObject _) + static PropertyChanges ReadMessage(Message message) { var reader = message.GetBodyReader(); reader.ReadString(); // interface @@ -549,10 +553,10 @@ namespace Avalonia.FreeDesktop static string[] ReadInvalidated(ref Reader reader) { List? invalidated = null; - ArrayEnd headersEnd = reader.ReadArrayStart(DBusType.String); + var headersEnd = reader.ReadArrayStart(DBusType.String); while (reader.HasNext(headersEnd)) { - invalidated ??= new(); + invalidated ??= new List(); var property = reader.ReadString(); switch (property) { @@ -569,10 +573,10 @@ namespace Avalonia.FreeDesktop } } - private static DynamicLauncherProperties ReadProperties(ref Reader reader, List? changedList = null) + private static DynamicLauncherProperties ReadProperties(ref Reader reader, ICollection? changedList = null) { var props = new DynamicLauncherProperties(); - ArrayEnd headersEnd = reader.ReadArrayStart(DBusType.Struct); + var headersEnd = reader.ReadArrayStart(DBusType.Struct); while (reader.HasNext(headersEnd)) { var property = reader.ReadString(); @@ -611,7 +615,7 @@ namespace Avalonia.FreeDesktop public Task OpenFileAsync(string parentWindow, string title, Dictionary options) { - return Connection.CallMethodAsync(CreateMessage(), (m, s) => ReadMessage_o(m, (DesktopObject)s!), this); + return Connection.CallMethodAsync(CreateMessage(), static (m, s) => ReadMessage_o(m, (DesktopObject)s!), this); MessageBuffer CreateMessage() { @@ -631,7 +635,7 @@ namespace Avalonia.FreeDesktop public Task SaveFileAsync(string parentWindow, string title, Dictionary options) { - return Connection.CallMethodAsync(CreateMessage(), (m, s) => ReadMessage_o(m, (DesktopObject)s!), this); + return Connection.CallMethodAsync(CreateMessage(), static (m, s) => ReadMessage_o(m, (DesktopObject)s!), this); MessageBuffer CreateMessage() { @@ -651,7 +655,7 @@ namespace Avalonia.FreeDesktop public Task SaveFilesAsync(string parentWindow, string title, Dictionary options) { - return Connection.CallMethodAsync(CreateMessage(), (m, s) => ReadMessage_o(m, (DesktopObject)s!), this); + return Connection.CallMethodAsync(CreateMessage(), static (m, s) => ReadMessage_o(m, (DesktopObject)s!), this); MessageBuffer CreateMessage() { @@ -691,15 +695,15 @@ namespace Avalonia.FreeDesktop } public Task GetVersionAsync() - => Connection.CallMethodAsync(CreateGetPropertyMessage(Interface, "version"), - (m, s) => ReadMessage_v_u(m, (DesktopObject)s!), this); + => Connection.CallMethodAsync(CreateGetPropertyMessage(Interface, "version"), static (m, s) + => ReadMessage_v_u(m, (DesktopObject)s!), this); public Task GetPropertiesAsync() { - return Connection.CallMethodAsync(CreateGetAllPropertiesMessage(Interface), - (m, s) => ReadMessage(m, (DesktopObject)s!), this); + return Connection.CallMethodAsync(CreateGetAllPropertiesMessage(Interface), static (m, _) + => ReadMessage(m), this); - static FileChooserProperties ReadMessage(Message message, DesktopObject _) + static FileChooserProperties ReadMessage(Message message) { var reader = message.GetBodyReader(); return ReadProperties(ref reader); @@ -709,10 +713,10 @@ namespace Avalonia.FreeDesktop public ValueTask WatchPropertiesChangedAsync(Action> handler, bool emitOnCapturedContext = true) { - return base.WatchPropertiesChangedAsync(Interface, (m, s) => ReadMessage(m, (DesktopObject)s!), handler, - emitOnCapturedContext); + return base.WatchPropertiesChangedAsync(Interface, static (m, _) + => ReadMessage(m), handler, emitOnCapturedContext); - static PropertyChanges ReadMessage(Message message, DesktopObject _) + static PropertyChanges ReadMessage(Message message) { var reader = message.GetBodyReader(); reader.ReadString(); // interface @@ -724,10 +728,10 @@ namespace Avalonia.FreeDesktop static string[] ReadInvalidated(ref Reader reader) { List? invalidated = null; - ArrayEnd headersEnd = reader.ReadArrayStart(DBusType.String); + var headersEnd = reader.ReadArrayStart(DBusType.String); while (reader.HasNext(headersEnd)) { - invalidated ??= new(); + invalidated ??= new List(); var property = reader.ReadString(); switch (property) { @@ -741,10 +745,10 @@ namespace Avalonia.FreeDesktop } } - private static FileChooserProperties ReadProperties(ref Reader reader, List? changedList = null) + private static FileChooserProperties ReadProperties(ref Reader reader, ICollection? changedList = null) { var props = new FileChooserProperties(); - ArrayEnd headersEnd = reader.ReadArrayStart(DBusType.Struct); + var headersEnd = reader.ReadArrayStart(DBusType.Struct); while (reader.HasNext(headersEnd)) { var property = reader.ReadString(); @@ -811,8 +815,8 @@ namespace Avalonia.FreeDesktop protected DesktopObject(DesktopService service, ObjectPath path) => (Service, Path) = (service, path); - public DesktopService Service { get; } - public ObjectPath Path { get; } + protected DesktopService Service { get; } + protected ObjectPath Path { get; } protected Connection Connection => Service.Connection; protected MessageBuffer CreateGetPropertyMessage(string @interface, string property) @@ -855,13 +859,11 @@ namespace Avalonia.FreeDesktop Member = "PropertiesChanged", Arg0 = @interface }; - return Connection.AddMatchAsync(rule, reader, - (ex, changes, rs, hs) => - ((Action>)hs!).Invoke(ex, changes), - this, handler, emitOnCapturedContext); + return Connection.AddMatchAsync(rule, reader, static (ex, changes, _, hs) + => ((Action>)hs!).Invoke(ex, changes), this, handler, emitOnCapturedContext); } - public ValueTask WatchSignalAsync(string sender, string @interface, ObjectPath path, string signal, + protected ValueTask WatchSignalAsync(string sender, string @interface, ObjectPath path, string signal, MessageValueReader reader, Action handler, bool emitOnCapturedContext) { var rule = new MatchRule @@ -872,9 +874,8 @@ namespace Avalonia.FreeDesktop Member = signal, Interface = @interface }; - return Connection.AddMatchAsync(rule, reader, - (ex, arg, rs, hs) => ((Action)hs!).Invoke(ex, arg), - this, handler, emitOnCapturedContext); + return Connection.AddMatchAsync(rule, reader, static (ex, arg, _, hs) => + ((Action)hs!).Invoke(ex, arg), this, handler, emitOnCapturedContext); } protected static ObjectPath ReadMessage_o(Message message, DesktopObject _) diff --git a/src/Avalonia.FreeDesktop/IX11InputMethod.cs b/src/Avalonia.FreeDesktop/IX11InputMethod.cs index 9fa9c1809e..6ae63ea322 100644 --- a/src/Avalonia.FreeDesktop/IX11InputMethod.cs +++ b/src/Avalonia.FreeDesktop/IX11InputMethod.cs @@ -19,7 +19,7 @@ namespace Avalonia.FreeDesktop public KeyModifiers Modifiers { get; set; } public RawKeyEventType Type { get; set; } } - + public interface IX11InputMethodControl : IDisposable { void SetWindowActive(bool active); @@ -27,7 +27,7 @@ namespace Avalonia.FreeDesktop ValueTask HandleEventAsync(RawKeyEventArgs args, int keyVal, int keyCode); event Action Commit; event Action ForwardKey; - + void UpdateWindowInfo(PixelPoint position, double scaling); } } diff --git a/src/Avalonia.FreeDesktop/NativeMethods.cs b/src/Avalonia.FreeDesktop/NativeMethods.cs index 147955b6a3..df22f46323 100644 --- a/src/Avalonia.FreeDesktop/NativeMethods.cs +++ b/src/Avalonia.FreeDesktop/NativeMethods.cs @@ -15,18 +15,18 @@ namespace Avalonia.FreeDesktop public static string ReadLink(string path) { var symlinkSize = Encoding.UTF8.GetByteCount(path); - var bufferSize = 4097; // PATH_MAX is (usually?) 4096, but we need to know if the result was truncated + const int BufferSize = 4097; // PATH_MAX is (usually?) 4096, but we need to know if the result was truncated var symlink = ArrayPool.Shared.Rent(symlinkSize + 1); - var buffer = ArrayPool.Shared.Rent(bufferSize); + var buffer = ArrayPool.Shared.Rent(BufferSize); try { Encoding.UTF8.GetBytes(path, 0, path.Length, symlink, 0); symlink[symlinkSize] = 0; - var size = readlink(symlink, buffer, bufferSize); - Debug.Assert(size < bufferSize); // if this fails, we need to increase the buffer size (dynamically?) + var size = readlink(symlink, buffer, BufferSize); + Debug.Assert(size < BufferSize); // if this fails, we need to increase the buffer size (dynamically?) return Encoding.UTF8.GetString(buffer, 0, (int)size); } diff --git a/src/Avalonia.FreeDesktop/StatusNotifierWatcher.DBus.cs b/src/Avalonia.FreeDesktop/StatusNotifierWatcher.DBus.cs index 5cd44905af..4e6ce3bd43 100644 --- a/src/Avalonia.FreeDesktop/StatusNotifierWatcher.DBus.cs +++ b/src/Avalonia.FreeDesktop/StatusNotifierWatcher.DBus.cs @@ -145,10 +145,10 @@ namespace Avalonia.FreeDesktop public Task GetPropertiesAsync() { - return Connection.CallMethodAsync(CreateGetAllPropertiesMessage(Interface), static (m, s) - => ReadMessage(m, (StatusNotifierWatcherObject)s!), this); + return Connection.CallMethodAsync(CreateGetAllPropertiesMessage(Interface), static (m, _) + => ReadMessage(m), this); - static StatusNotifierWatcherProperties ReadMessage(Message message, StatusNotifierWatcherObject _) + static StatusNotifierWatcherProperties ReadMessage(Message message) { var reader = message.GetBodyReader(); return ReadProperties(ref reader); @@ -157,9 +157,9 @@ namespace Avalonia.FreeDesktop public ValueTask WatchPropertiesChangedAsync(Action> handler, bool emitOnCapturedContext = true) { - return base.WatchPropertiesChangedAsync(Interface, static (m, s) => ReadMessage(m, (StatusNotifierWatcherObject)s!), handler, emitOnCapturedContext); + return base.WatchPropertiesChangedAsync(Interface, static (m, _) => ReadMessage(m), handler, emitOnCapturedContext); - static PropertyChanges ReadMessage(Message message, StatusNotifierWatcherObject _) + static PropertyChanges ReadMessage(Message message) { var reader = message.GetBodyReader(); reader.ReadString(); // interface @@ -194,7 +194,7 @@ namespace Avalonia.FreeDesktop } } - private static StatusNotifierWatcherProperties ReadProperties(ref Reader reader, List? changedList = null) + private static StatusNotifierWatcherProperties ReadProperties(ref Reader reader, ICollection? changedList = null) { var props = new StatusNotifierWatcherProperties(); var headersEnd = reader.ReadArrayStart(DBusType.Struct); @@ -245,8 +245,8 @@ namespace Avalonia.FreeDesktop (Service, Path) = (service, path); } - public StatusNotifierWatcherService Service { get; } - public ObjectPath Path { get; } + protected StatusNotifierWatcherService Service { get; } + protected ObjectPath Path { get; } protected Connection Connection => Service.Connection; protected MessageBuffer CreateGetPropertyMessage(string @interface, string property) @@ -291,7 +291,7 @@ namespace Avalonia.FreeDesktop ((Action>)hs!).Invoke(ex, changes), this, handler, emitOnCapturedContext); } - public ValueTask WatchSignalAsync(string sender, string @interface, ObjectPath path, string signal, MessageValueReader reader, Action handler, bool emitOnCapturedContext) + protected ValueTask WatchSignalAsync(string sender, string @interface, ObjectPath path, string signal, MessageValueReader reader, Action handler, bool emitOnCapturedContext) { var rule = new MatchRule { @@ -301,12 +301,11 @@ namespace Avalonia.FreeDesktop Member = signal, Interface = @interface }; - return Connection.AddMatchAsync(rule, reader, - (ex, arg, _, hs) => ((Action)hs!).Invoke(ex, arg), - this, handler, emitOnCapturedContext); + return Connection.AddMatchAsync(rule, reader, static (ex, arg, _, hs) + => ((Action)hs!).Invoke(ex, arg), this, handler, emitOnCapturedContext); } - public ValueTask WatchSignalAsync(string sender, string @interface, ObjectPath path, string signal, Action handler, bool emitOnCapturedContext) + protected ValueTask WatchSignalAsync(string sender, string @interface, ObjectPath path, string signal, Action handler, bool emitOnCapturedContext) { var rule = new MatchRule { From e5985aa675221931c25cbc27b168b9fac3a254a4 Mon Sep 17 00:00:00 2001 From: affederaffe <68356204+affederaffe@users.noreply.github.com> Date: Fri, 30 Dec 2022 14:34:31 +0100 Subject: [PATCH 003/122] Import TrimmingEnable.props --- src/Avalonia.FreeDesktop/Avalonia.FreeDesktop.csproj | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/Avalonia.FreeDesktop/Avalonia.FreeDesktop.csproj b/src/Avalonia.FreeDesktop/Avalonia.FreeDesktop.csproj index a33fa7b32d..e80a90e38a 100644 --- a/src/Avalonia.FreeDesktop/Avalonia.FreeDesktop.csproj +++ b/src/Avalonia.FreeDesktop/Avalonia.FreeDesktop.csproj @@ -5,6 +5,9 @@ enable + + + @@ -15,7 +18,9 @@ + + From 2c2eed724eb6e821b41d0d61134737bdb4525068 Mon Sep 17 00:00:00 2001 From: affederaffe <68356204+affederaffe@users.noreply.github.com> Date: Fri, 6 Jan 2023 16:26:36 +0100 Subject: [PATCH 004/122] Use source generator --- .gitmodules | 3 + Avalonia.Desktop.slnf | 1 + Avalonia.sln | 7 + .../AppMenuRegistrar.DBus.cs | 173 ---- .../Avalonia.FreeDesktop.csproj | 5 + src/Avalonia.FreeDesktop/DBus.DBus.cs | 641 ------------ .../DBusIme/DBusTextInputMethodBase.cs | 2 +- .../DBusIme/Fcitx/Fcitx.DBus.cs | 627 ------------ .../DBusIme/Fcitx/FcitxICWrapper.cs | 10 +- .../DBusIme/Fcitx/FcitxX11TextInputMethod.cs | 9 +- .../DBusIme/IBus/IBus.DBus.cs | 513 ---------- .../DBusIme/IBus/IBusX11TextInputMethod.cs | 12 +- src/Avalonia.FreeDesktop/DBusInterfaces.cs | 18 + src/Avalonia.FreeDesktop/DBusMenu.DBus.cs | 500 ---------- src/Avalonia.FreeDesktop/DBusMenuExporter.cs | 178 +--- src/Avalonia.FreeDesktop/DBusSystemDialog.cs | 18 +- src/Avalonia.FreeDesktop/DBusTrayIconImpl.cs | 190 +--- .../FreeDesktopPortalDesktop.DBus.cs | 938 ------------------ .../StatusNotifierWatcher.DBus.cs | 350 ------- src/tools/Tmds.DBus.SourceGenerator | 1 + 20 files changed, 130 insertions(+), 4066 deletions(-) delete mode 100644 src/Avalonia.FreeDesktop/AppMenuRegistrar.DBus.cs delete mode 100644 src/Avalonia.FreeDesktop/DBus.DBus.cs delete mode 100644 src/Avalonia.FreeDesktop/DBusIme/Fcitx/Fcitx.DBus.cs delete mode 100644 src/Avalonia.FreeDesktop/DBusIme/IBus/IBus.DBus.cs create mode 100644 src/Avalonia.FreeDesktop/DBusInterfaces.cs delete mode 100644 src/Avalonia.FreeDesktop/DBusMenu.DBus.cs delete mode 100644 src/Avalonia.FreeDesktop/FreeDesktopPortalDesktop.DBus.cs delete mode 100644 src/Avalonia.FreeDesktop/StatusNotifierWatcher.DBus.cs create mode 160000 src/tools/Tmds.DBus.SourceGenerator diff --git a/.gitmodules b/.gitmodules index 16bc977251..2b899e8f5a 100644 --- a/.gitmodules +++ b/.gitmodules @@ -10,3 +10,6 @@ [submodule "Tmds.DBus"] path = src/Linux/Tmds.DBus url = https://github.com/affederaffe/Tmds.DBus +[submodule "src/tools/Tmds.DBus.SourceGenerator"] + path = src/tools/Tmds.DBus.SourceGenerator + url = https://github.com/affederaffe/Tmds.DBus.SourceGenerator diff --git a/Avalonia.Desktop.slnf b/Avalonia.Desktop.slnf index 72eb13d0a9..165245781b 100644 --- a/Avalonia.Desktop.slnf +++ b/Avalonia.Desktop.slnf @@ -38,6 +38,7 @@ "src\\Skia\\Avalonia.Skia\\Avalonia.Skia.csproj", "src\\tools\\DevAnalyzers\\DevAnalyzers.csproj", "src\\tools\\DevGenerators\\DevGenerators.csproj", + "src\\tools\\Tmds.DBus.SourceGenerator\\Tmds.DBus.SourceGenerator\\Tmds.DBus.SourceGenerator.csproj", "src\\Windows\\Avalonia.Direct2D1\\Avalonia.Direct2D1.csproj", "src\\Windows\\Avalonia.Win32.Interop\\Avalonia.Win32.Interop.csproj", "src\\Windows\\Avalonia.Win32\\Avalonia.Win32.csproj", diff --git a/Avalonia.sln b/Avalonia.sln index e399483896..47ed2b9140 100644 --- a/Avalonia.sln +++ b/Avalonia.sln @@ -233,6 +233,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ReactiveUIDemo", "samples\R EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tmds.DBus.Protocol", "src\Linux\Tmds.DBus\src\Tmds.DBus.Protocol\Tmds.DBus.Protocol.csproj", "{29E25263-3CC3-4D55-A042-00BA136867D4}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tmds.DBus.SourceGenerator", "src\tools\Tmds.DBus.SourceGenerator\Tmds.DBus.SourceGenerator\Tmds.DBus.SourceGenerator.csproj", "{5E9C0032-E460-4BC1-BCC7-6448F34DD679}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -548,6 +550,10 @@ Global {29E25263-3CC3-4D55-A042-00BA136867D4}.Debug|Any CPU.Build.0 = Debug|Any CPU {29E25263-3CC3-4D55-A042-00BA136867D4}.Release|Any CPU.ActiveCfg = Release|Any CPU {29E25263-3CC3-4D55-A042-00BA136867D4}.Release|Any CPU.Build.0 = Release|Any CPU + {5E9C0032-E460-4BC1-BCC7-6448F34DD679}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5E9C0032-E460-4BC1-BCC7-6448F34DD679}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5E9C0032-E460-4BC1-BCC7-6448F34DD679}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5E9C0032-E460-4BC1-BCC7-6448F34DD679}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -613,6 +619,7 @@ Global {90B08091-9BBD-4362-B712-E9F2CC62B218} = {9B9E3891-2366-4253-A952-D08BCEB71098} {75C47156-C5D8-44BC-A5A7-E8657C2248D6} = {9B9E3891-2366-4253-A952-D08BCEB71098} {29E25263-3CC3-4D55-A042-00BA136867D4} = {86C53C40-57AA-45B8-AD42-FAE0EFDF0F2B} + {5E9C0032-E460-4BC1-BCC7-6448F34DD679} = {4ED8B739-6F4E-4CD4-B993-545E6B5CE637} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {87366D66-1391-4D90-8999-95A620AD786A} diff --git a/src/Avalonia.FreeDesktop/AppMenuRegistrar.DBus.cs b/src/Avalonia.FreeDesktop/AppMenuRegistrar.DBus.cs deleted file mode 100644 index 75c8ce61a5..0000000000 --- a/src/Avalonia.FreeDesktop/AppMenuRegistrar.DBus.cs +++ /dev/null @@ -1,173 +0,0 @@ -using System; -using System.Threading.Tasks; -using Tmds.DBus.Protocol; - -namespace Avalonia.FreeDesktop -{ - internal class Registrar : AppMenuRegistrarObject - { - private const string Interface = "com.canonical.AppMenu.Registrar"; - - public Registrar(RegistrarService service, ObjectPath path) : base(service, path) { } - - public Task RegisterWindowAsync(uint windowId, ObjectPath menuObjectPath) - { - return Connection.CallMethodAsync(CreateMessage()); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - signature: "uo", - member: "RegisterWindow", - flags: MessageFlags.NoReplyExpected); - writer.WriteUInt32(windowId); - writer.WriteObjectPath(menuObjectPath); - return writer.CreateMessage(); - } - } - - public Task UnregisterWindowAsync(uint windowId) - { - return Connection.CallMethodAsync(CreateMessage()); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - signature: "u", - member: "UnregisterWindow"); - writer.WriteUInt32(windowId); - return writer.CreateMessage(); - } - } - - public Task<(string Service, ObjectPath MenuObjectPath)> GetMenuForWindowAsync(uint windowId) - { - return Connection.CallMethodAsync(CreateMessage(), static (m, s) => ReadMessage_so(m, (AppMenuRegistrarObject)s!), this); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - signature: "u", - member: "GetMenuForWindow"); - writer.WriteUInt32(windowId); - return writer.CreateMessage(); - } - } - } - - internal class RegistrarService - { - public RegistrarService(Connection connection, string destination) - => (Connection, Destination) = (connection, destination); - - public Connection Connection { get; } - public string Destination { get; } - public Registrar CreateRegistrar(string path) => new(this, path); - } - - internal class AppMenuRegistrarObject - { - protected AppMenuRegistrarObject(RegistrarService service, ObjectPath path) - => (Service, Path) = (service, path); - - protected RegistrarService Service { get; } - protected ObjectPath Path { get; } - protected Connection Connection => Service.Connection; - - protected MessageBuffer CreateGetPropertyMessage(string @interface, string property) - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - "org.freedesktop.DBus.Properties", - signature: "ss", - member: "Get"); - writer.WriteString(@interface); - writer.WriteString(property); - return writer.CreateMessage(); - } - - protected MessageBuffer CreateGetAllPropertiesMessage(string @interface) - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - "org.freedesktop.DBus.Properties", - signature: "s", - member: "GetAll"); - writer.WriteString(@interface); - return writer.CreateMessage(); - } - - protected ValueTask WatchPropertiesChangedAsync(string @interface, - MessageValueReader> reader, Action> handler, - bool emitOnCapturedContext) - { - var rule = new MatchRule - { - Type = MessageType.Signal, - Sender = Service.Destination, - Path = Path, - Interface = "org.freedesktop.DBus.Properties", - Member = "PropertiesChanged", - Arg0 = @interface - }; - return Connection.AddMatchAsync(rule, reader, static (ex, changes, _, hs) - => ((Action>)hs!).Invoke(ex, changes), - this, handler, emitOnCapturedContext); - } - - public ValueTask WatchSignalAsync(string sender, string @interface, ObjectPath path, string signal, - MessageValueReader reader, Action handler, bool emitOnCapturedContext) - { - var rule = new MatchRule - { - Type = MessageType.Signal, - Sender = sender, - Path = path, - Member = signal, - Interface = @interface - }; - return Connection.AddMatchAsync(rule, reader, static (ex, arg, _, hs) => - ((Action)hs!).Invoke(ex, arg), this, handler, emitOnCapturedContext); - } - - public ValueTask WatchSignalAsync(string sender, string @interface, ObjectPath path, string signal, Action handler, - bool emitOnCapturedContext) - { - var rule = new MatchRule - { - Type = MessageType.Signal, - Sender = sender, - Path = path, - Member = signal, - Interface = @interface - }; - return Connection.AddMatchAsync(rule, static (_, _) - => null!, static (ex, _, _, hs) - => ((Action)hs!).Invoke(ex), this, handler, emitOnCapturedContext); - } - - protected static (string, ObjectPath) ReadMessage_so(Message message, AppMenuRegistrarObject _) - { - var reader = message.GetBodyReader(); - var arg0 = reader.ReadString(); - var arg1 = reader.ReadObjectPath(); - return (arg0, arg1); - } - } -} diff --git a/src/Avalonia.FreeDesktop/Avalonia.FreeDesktop.csproj b/src/Avalonia.FreeDesktop/Avalonia.FreeDesktop.csproj index e80a90e38a..e1e0a636ea 100644 --- a/src/Avalonia.FreeDesktop/Avalonia.FreeDesktop.csproj +++ b/src/Avalonia.FreeDesktop/Avalonia.FreeDesktop.csproj @@ -17,10 +17,15 @@ + + + + + diff --git a/src/Avalonia.FreeDesktop/DBus.DBus.cs b/src/Avalonia.FreeDesktop/DBus.DBus.cs deleted file mode 100644 index 0f83ddaa4a..0000000000 --- a/src/Avalonia.FreeDesktop/DBus.DBus.cs +++ /dev/null @@ -1,641 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Threading.Tasks; -using Tmds.DBus.Protocol; - -namespace Avalonia.FreeDesktop -{ - internal record DBusProperties - { - public string[] Features { get; set; } = default!; - public string[] Interfaces { get; set; } = default!; - } - - internal class DBus : DBusObject - { - private const string Interface = "org.freedesktop.DBus"; - - public DBus(DBusService service, ObjectPath path) : base(service, path) { } - - public Task HelloAsync() - { - return Connection.CallMethodAsync(CreateMessage(), static (m, s) => ReadMessage_s(m, (DBusObject)s!), this); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - "Hello"); - return writer.CreateMessage(); - } - } - - public Task RequestNameAsync(string a0, uint a1) - { - return Connection.CallMethodAsync(CreateMessage(), static (m, s) => ReadMessage_u(m, (DBusObject)s!), this); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - signature: "su", - member: "RequestName"); - writer.WriteString(a0); - writer.WriteUInt32(a1); - return writer.CreateMessage(); - } - } - - public Task ReleaseNameAsync(string a0) - { - return Connection.CallMethodAsync(CreateMessage(), static (m, s) => ReadMessage_u(m, (DBusObject)s!), this); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - signature: "s", - member: "ReleaseName"); - writer.WriteString(a0); - return writer.CreateMessage(); - } - } - - public Task StartServiceByNameAsync(string a0, uint a1) - { - return Connection.CallMethodAsync(CreateMessage(), static (m, s) => ReadMessage_u(m, (DBusObject)s!), this); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - signature: "su", - member: "StartServiceByName"); - writer.WriteString(a0); - writer.WriteUInt32(a1); - return writer.CreateMessage(); - } - } - - public Task UpdateActivationEnvironmentAsync(Dictionary a0) - { - return Connection.CallMethodAsync(CreateMessage()); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - signature: "a{ss}", - member: "UpdateActivationEnvironment"); - writer.WriteDictionary(a0); - return writer.CreateMessage(); - } - } - - public Task NameHasOwnerAsync(string a0) - { - return Connection.CallMethodAsync(CreateMessage(), static (m, s) => ReadMessage_b(m, (DBusObject)s!), this); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - signature: "s", - member: "NameHasOwner"); - writer.WriteString(a0); - return writer.CreateMessage(); - } - } - - public Task ListNamesAsync() - { - return Connection.CallMethodAsync(CreateMessage(), static (m, s) => ReadMessage_as(m, (DBusObject)s!), this); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - "ListNames"); - return writer.CreateMessage(); - } - } - - public Task ListActivatableNamesAsync() - { - return Connection.CallMethodAsync(CreateMessage(), static (m, s) => ReadMessage_as(m, (DBusObject)s!), this); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - "ListActivatableNames"); - return writer.CreateMessage(); - } - } - - public Task AddMatchAsync(string a0) - { - return Connection.CallMethodAsync(CreateMessage()); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - signature: "s", - member: "AddMatch"); - writer.WriteString(a0); - return writer.CreateMessage(); - } - } - - public Task RemoveMatchAsync(string a0) - { - return Connection.CallMethodAsync(CreateMessage()); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - signature: "s", - member: "RemoveMatch"); - writer.WriteString(a0); - return writer.CreateMessage(); - } - } - - public Task GetNameOwnerAsync(string a0) - { - return Connection.CallMethodAsync(CreateMessage(), static (m, s) => ReadMessage_s(m, (DBusObject)s!), this); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - signature: "s", - member: "GetNameOwner"); - writer.WriteString(a0); - return writer.CreateMessage(); - } - } - - public Task ListQueuedOwnersAsync(string a0) - { - return Connection.CallMethodAsync(CreateMessage(), static (m, s) => ReadMessage_as(m, (DBusObject)s!), this); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - signature: "s", - member: "ListQueuedOwners"); - writer.WriteString(a0); - return writer.CreateMessage(); - } - } - - public Task GetConnectionUnixUserAsync(string a0) - { - return Connection.CallMethodAsync(CreateMessage(), static (m, s) => ReadMessage_u(m, (DBusObject)s!), this); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - signature: "s", - member: "GetConnectionUnixUser"); - writer.WriteString(a0); - return writer.CreateMessage(); - } - } - - public Task GetConnectionUnixProcessIDAsync(string a0) - { - return Connection.CallMethodAsync(CreateMessage(), static (m, s) => ReadMessage_u(m, (DBusObject)s!), this); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - signature: "s", - member: "GetConnectionUnixProcessID"); - writer.WriteString(a0); - return writer.CreateMessage(); - } - } - - public Task GetAdtAuditSessionDataAsync(string a0) - { - return Connection.CallMethodAsync(CreateMessage(), static (m, s) => ReadMessage_ay(m, (DBusObject)s!), this); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - signature: "s", - member: "GetAdtAuditSessionData"); - writer.WriteString(a0); - return writer.CreateMessage(); - } - } - - public Task GetConnectionSELinuxSecurityContextAsync(string a0) - { - return Connection.CallMethodAsync(CreateMessage(), static (m, s) => ReadMessage_ay(m, (DBusObject)s!), this); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - signature: "s", - member: "GetConnectionSELinuxSecurityContext"); - writer.WriteString(a0); - return writer.CreateMessage(); - } - } - - public Task ReloadConfigAsync() - { - return Connection.CallMethodAsync(CreateMessage()); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - "ReloadConfig"); - return writer.CreateMessage(); - } - } - - public Task GetIdAsync() - { - return Connection.CallMethodAsync(CreateMessage(), static (m, s) => ReadMessage_s(m, (DBusObject)s!), this); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - "GetId"); - return writer.CreateMessage(); - } - } - - public Task> GetConnectionCredentialsAsync(string a0) - { - return Connection.CallMethodAsync(CreateMessage(), static (m, s) => ReadMessage_aesv(m, (DBusObject)s!), this); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - signature: "s", - member: "GetConnectionCredentials"); - writer.WriteString(a0); - return writer.CreateMessage(); - } - } - - public ValueTask WatchNameOwnerChangedAsync(Action handler, bool emitOnCapturedContext = true) => - WatchSignalAsync(Service.Destination, Interface, Path, "NameOwnerChanged", static (m, s) => - ReadMessage_sss(m, (DBusObject)s!), handler, emitOnCapturedContext); - - public ValueTask WatchNameLostAsync(Action handler, bool emitOnCapturedContext = true) => - WatchSignalAsync(Service.Destination, Interface, Path, "NameLost", static (m, s) => - ReadMessage_s(m, (DBusObject)s!), handler, emitOnCapturedContext); - - public ValueTask WatchNameAcquiredAsync(Action handler, bool emitOnCapturedContext = true) => - WatchSignalAsync(Service.Destination, Interface, Path, "NameAcquired", static (m, s) => - ReadMessage_s(m, (DBusObject)s!), handler, emitOnCapturedContext); - - public Task SetFeaturesAsync(string[] value) - { - return Connection.CallMethodAsync(CreateMessage()); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - "org.freedesktop.DBus.Properties", - signature: "ssv", - member: "Set"); - writer.WriteString(Interface); - writer.WriteString("Features"); - writer.WriteSignature("as"); - writer.WriteArray(value); - return writer.CreateMessage(); - } - } - - public Task SetInterfacesAsync(string[] value) - { - return Connection.CallMethodAsync(CreateMessage()); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - "org.freedesktop.DBus.Properties", - signature: "ssv", - member: "Set"); - writer.WriteString(Interface); - writer.WriteString("Interfaces"); - writer.WriteSignature("as"); - writer.WriteArray(value); - return writer.CreateMessage(); - } - } - - public Task GetFeaturesAsync() => - Connection.CallMethodAsync(CreateGetPropertyMessage(Interface, "Features"), static (m, s) => - ReadMessage_v_as(m, (DBusObject)s!), this); - - public Task GetInterfacesAsync() => - Connection.CallMethodAsync(CreateGetPropertyMessage(Interface, "Interfaces"), static (m, s) => - ReadMessage_v_as(m, (DBusObject)s!), this); - - public Task GetPropertiesAsync() - { - return Connection.CallMethodAsync(CreateGetAllPropertiesMessage(Interface), static (m, _) => - ReadMessage(m), this); - - static DBusProperties ReadMessage(Message message) - { - var reader = message.GetBodyReader(); - return ReadProperties(ref reader); - } - } - - public ValueTask WatchPropertiesChangedAsync(Action> handler, bool emitOnCapturedContext = true) - { - return base.WatchPropertiesChangedAsync(Interface, static (m, _) => - ReadMessage(m), handler, emitOnCapturedContext); - - static PropertyChanges ReadMessage(Message message) - { - var reader = message.GetBodyReader(); - reader.ReadString(); // interface - List changed = new(); - return new PropertyChanges(ReadProperties(ref reader, changed), changed.ToArray(), ReadInvalidated(ref reader)); - } - - static string[] ReadInvalidated(ref Reader reader) - { - List? invalidated = null; - var headersEnd = reader.ReadArrayStart(DBusType.String); - while (reader.HasNext(headersEnd)) - { - invalidated ??= new List(); - var property = reader.ReadString(); - switch (property) - { - case "Features": - invalidated.Add("Features"); - break; - case "Interfaces": - invalidated.Add("Interfaces"); - break; - } - } - - return invalidated?.ToArray() ?? Array.Empty(); - } - } - - private static DBusProperties ReadProperties(ref Reader reader, List? changedList = null) - { - var props = new DBusProperties(); - var headersEnd = reader.ReadArrayStart(DBusType.Struct); - while (reader.HasNext(headersEnd)) - { - var property = reader.ReadString(); - switch (property) - { - case "Features": - reader.ReadSignature("as"); - props.Features = reader.ReadArray(); - changedList?.Add("Features"); - break; - case "Interfaces": - reader.ReadSignature("as"); - props.Interfaces = reader.ReadArray(); - changedList?.Add("Interfaces"); - break; - default: - reader.ReadVariant(); - break; - } - } - - return props; - } - } - - internal class DBusService - { - public DBusService(Connection connection, string destination) - => (Connection, Destination) = (connection, destination); - - public Connection Connection { get; } - public string Destination { get; } - public DBus CreateDBus(string path) => new(this, path); - } - - internal class DBusObject - { - protected DBusObject(DBusService service, ObjectPath path) - { - Service = service; - Path = path; - } - - public DBusService Service { get; } - public ObjectPath Path { get; } - protected Connection Connection => Service.Connection; - - protected MessageBuffer CreateGetPropertyMessage(string @interface, string property) - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - "org.freedesktop.DBus.Properties", - signature: "ss", - member: "Get"); - writer.WriteString(@interface); - writer.WriteString(property); - return writer.CreateMessage(); - } - - protected MessageBuffer CreateGetAllPropertiesMessage(string @interface) - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - "org.freedesktop.DBus.Properties", - signature: "s", - member: "GetAll"); - writer.WriteString(@interface); - return writer.CreateMessage(); - } - - protected ValueTask WatchPropertiesChangedAsync(string @interface, - MessageValueReader> reader, Action> handler, - bool emitOnCapturedContext) - { - var rule = new MatchRule - { - Type = MessageType.Signal, - Sender = Service.Destination, - Path = Path, - Interface = "org.freedesktop.DBus.Properties", - Member = "PropertiesChanged", - Arg0 = @interface - }; - return Connection.AddMatchAsync(rule, reader, static (ex, changes, _, hs) => - ((Action>)hs!).Invoke(ex, changes), this, handler, emitOnCapturedContext); - } - - public ValueTask WatchSignalAsync(string sender, string @interface, ObjectPath path, string signal, - MessageValueReader reader, Action handler, bool emitOnCapturedContext) - { - var rule = new MatchRule - { - Type = MessageType.Signal, - Sender = sender, - Path = path, - Member = signal, - Interface = @interface - }; - return Connection.AddMatchAsync(rule, reader, static (ex, arg, _, hs) => - ((Action)hs!).Invoke(ex, arg), this, handler, emitOnCapturedContext); - } - - public ValueTask WatchSignalAsync(string sender, string @interface, ObjectPath path, string signal, Action handler, - bool emitOnCapturedContext) - { - var rule = new MatchRule - { - Type = MessageType.Signal, - Sender = sender, - Path = path, - Member = signal, - Interface = @interface - }; - return Connection.AddMatchAsync(rule, static (_, _) => null!, static (ex, _, _, hs) => - ((Action)hs!).Invoke(ex), this, handler, emitOnCapturedContext); - } - - protected static string ReadMessage_s(Message message, DBusObject _) - { - var reader = message.GetBodyReader(); - return reader.ReadString(); - } - - protected static uint ReadMessage_u(Message message, DBusObject _) - { - var reader = message.GetBodyReader(); - return reader.ReadUInt32(); - } - - protected static bool ReadMessage_b(Message message, DBusObject _) - { - var reader = message.GetBodyReader(); - return reader.ReadBool(); - } - - protected static string[] ReadMessage_as(Message message, DBusObject _) - { - var reader = message.GetBodyReader(); - return reader.ReadArray(); - } - - protected static byte[] ReadMessage_ay(Message message, DBusObject _) - { - var reader = message.GetBodyReader(); - return reader.ReadArray(); - } - - protected static Dictionary ReadMessage_aesv(Message message, DBusObject _) - { - var reader = message.GetBodyReader(); - return reader.ReadDictionary(); - } - - protected static (string, string, string) ReadMessage_sss(Message message, DBusObject _) - { - var reader = message.GetBodyReader(); - var arg0 = reader.ReadString(); - var arg1 = reader.ReadString(); - var arg2 = reader.ReadString(); - return (arg0, arg1, arg2); - } - - protected static string[] ReadMessage_v_as(Message message, DBusObject _) - { - var reader = message.GetBodyReader(); - reader.ReadSignature("as"); - return reader.ReadArray(); - } - } -} diff --git a/src/Avalonia.FreeDesktop/DBusIme/DBusTextInputMethodBase.cs b/src/Avalonia.FreeDesktop/DBusIme/DBusTextInputMethodBase.cs index c7bf530cfd..08d2a0c219 100644 --- a/src/Avalonia.FreeDesktop/DBusIme/DBusTextInputMethodBase.cs +++ b/src/Avalonia.FreeDesktop/DBusIme/DBusTextInputMethodBase.cs @@ -60,7 +60,7 @@ namespace Avalonia.FreeDesktop.DBusIme { foreach (var name in _knownNames) { - var dbus = new DBusService(Connection, name).CreateDBus("/org/freedesktop/DBus"); + var dbus = new OrgFreedesktopDBus(Connection, name, "/org/freedesktop/DBus"); _disposables.Add(await dbus.WatchNameOwnerChangedAsync(OnNameChange)); var nameOwner = await dbus.GetNameOwnerAsync(name); OnNameChange(null, (name, null, nameOwner)); diff --git a/src/Avalonia.FreeDesktop/DBusIme/Fcitx/Fcitx.DBus.cs b/src/Avalonia.FreeDesktop/DBusIme/Fcitx/Fcitx.DBus.cs deleted file mode 100644 index f9e4497892..0000000000 --- a/src/Avalonia.FreeDesktop/DBusIme/Fcitx/Fcitx.DBus.cs +++ /dev/null @@ -1,627 +0,0 @@ -using System; -using System.Threading.Tasks; -using Tmds.DBus.Protocol; - -namespace Avalonia.FreeDesktop.DBusIme.Fcitx -{ - internal class InputContext : FcitxObject - { - private const string Interface = "org.fcitx.Fcitx.InputContext"; - - public InputContext(FcitxService service, ObjectPath path) : base(service, path) { } - - public Task FocusInAsync() - { - return Connection.CallMethodAsync(CreateMessage()); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - "FocusIn"); - return writer.CreateMessage(); - } - } - - public Task FocusOutAsync() - { - return Connection.CallMethodAsync(CreateMessage()); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - "FocusOut"); - return writer.CreateMessage(); - } - } - - public Task ResetAsync() - { - return Connection.CallMethodAsync(CreateMessage()); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - "Reset"); - return writer.CreateMessage(); - } - } - - public Task SetCursorRectAsync(int x, int y, int w, int h) - { - return Connection.CallMethodAsync(CreateMessage()); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - signature: "iiii", - member: "SetCursorRect"); - writer.WriteInt32(x); - writer.WriteInt32(y); - writer.WriteInt32(w); - writer.WriteInt32(h); - return writer.CreateMessage(); - } - } - - public Task SetCapacityAsync(uint caps) - { - return Connection.CallMethodAsync(CreateMessage()); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - signature: "u", - member: "SetCapacity"); - writer.WriteUInt32(caps); - return writer.CreateMessage(); - } - } - - public Task SetSurroundingTextAsync(string text, uint cursor, uint anchor) - { - return Connection.CallMethodAsync(CreateMessage()); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - signature: "suu", - member: "SetSurroundingText"); - writer.WriteString(text); - writer.WriteUInt32(cursor); - writer.WriteUInt32(anchor); - return writer.CreateMessage(); - } - } - - public Task SetSurroundingTextPositionAsync(uint cursor, uint anchor) - { - return Connection.CallMethodAsync(CreateMessage()); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - signature: "uu", - member: "SetSurroundingTextPosition"); - writer.WriteUInt32(cursor); - writer.WriteUInt32(anchor); - return writer.CreateMessage(); - } - } - - public Task DestroyICAsync() - { - return Connection.CallMethodAsync(CreateMessage()); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - "DestroyIC"); - return writer.CreateMessage(); - } - } - - public Task ProcessKeyEventAsync(uint keyval, uint keycode, uint state, int type, uint time) - { - return Connection.CallMethodAsync(CreateMessage(), static (m, s) => ReadMessage_i(m, (FcitxObject)s!), this); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - signature: "uuuiu", - member: "ProcessKeyEvent"); - writer.WriteUInt32(keyval); - writer.WriteUInt32(keycode); - writer.WriteUInt32(state); - writer.WriteInt32(type); - writer.WriteUInt32(time); - return writer.CreateMessage(); - } - } - - public ValueTask WatchCommitStringAsync(Action handler, bool emitOnCapturedContext = true) => - WatchSignalAsync(Service.Destination, Interface, Path, "CommitString", static (m, s) => - ReadMessage_s(m, (FcitxObject)s!), handler, emitOnCapturedContext); - - public ValueTask WatchCurrentIMAsync(Action handler, - bool emitOnCapturedContext = true) => - WatchSignalAsync(Service.Destination, Interface, Path, "CurrentIM", static (m, s) => - ReadMessage_sss(m, (FcitxObject)s!), handler, emitOnCapturedContext); - - public ValueTask WatchUpdateFormattedPreeditAsync(Action handler, - bool emitOnCapturedContext = true) => - WatchSignalAsync(Service.Destination, Interface, Path, "UpdateFormattedPreedit", static (m, s) => - ReadMessage_arsizi(m, (FcitxObject)s!), handler, emitOnCapturedContext); - - public ValueTask WatchForwardKeyAsync(Action handler, - bool emitOnCapturedContext = true) => - WatchSignalAsync(Service.Destination, Interface, Path, "ForwardKey", static (m, s) => - ReadMessage_uui(m, (FcitxObject)s!), handler, emitOnCapturedContext); - - public ValueTask WatchDeleteSurroundingTextAsync(Action handler, - bool emitOnCapturedContext = true) => - WatchSignalAsync(Service.Destination, Interface, Path, "DeleteSurroundingText", static (m, s) => - ReadMessage_iu(m, (FcitxObject)s!), handler, emitOnCapturedContext); - } - - internal class InputMethod : FcitxObject - { - private const string Interface = "org.fcitx.Fcitx.InputMethod"; - - public InputMethod(FcitxService service, ObjectPath path) : base(service, path) { } - - public Task<(int Icid, bool Enable, uint Keyval1, uint State1, uint Keyval2, uint State2)> CreateICv3Async(string appname, int pid) - { - return Connection.CallMethodAsync(CreateMessage(), static (m, s) => ReadMessage_ibuuuu(m, (FcitxObject)s!), this); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - signature: "si", - member: "CreateICv3"); - writer.WriteString(appname); - writer.WriteInt32(pid); - return writer.CreateMessage(); - } - } - } - - internal class InputContext1 : FcitxObject - { - private const string Interface = "org.fcitx.Fcitx.InputContext1"; - - public InputContext1(FcitxService service, ObjectPath path) : base(service, path) { } - - public Task FocusInAsync() - { - return Connection.CallMethodAsync(CreateMessage()); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - "FocusIn"); - return writer.CreateMessage(); - } - } - - public Task FocusOutAsync() - { - return Connection.CallMethodAsync(CreateMessage()); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - "FocusOut"); - return writer.CreateMessage(); - } - } - - public Task ResetAsync() - { - return Connection.CallMethodAsync(CreateMessage()); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - "Reset"); - return writer.CreateMessage(); - } - } - - public Task SetCursorRectAsync(int x, int y, int w, int h) - { - return Connection.CallMethodAsync(CreateMessage()); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - signature: "iiii", - member: "SetCursorRect"); - writer.WriteInt32(x); - writer.WriteInt32(y); - writer.WriteInt32(w); - writer.WriteInt32(h); - return writer.CreateMessage(); - } - } - - public Task SetCapabilityAsync(ulong caps) - { - return Connection.CallMethodAsync(CreateMessage()); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - signature: "t", - member: "SetCapability"); - writer.WriteUInt64(caps); - return writer.CreateMessage(); - } - } - - public Task SetSurroundingTextAsync(string text, uint cursor, uint anchor) - { - return Connection.CallMethodAsync(CreateMessage()); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - signature: "suu", - member: "SetSurroundingText"); - writer.WriteString(text); - writer.WriteUInt32(cursor); - writer.WriteUInt32(anchor); - return writer.CreateMessage(); - } - } - - public Task SetSurroundingTextPositionAsync(uint cursor, uint anchor) - { - return Connection.CallMethodAsync(CreateMessage()); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - signature: "uu", - member: "SetSurroundingTextPosition"); - writer.WriteUInt32(cursor); - writer.WriteUInt32(anchor); - return writer.CreateMessage(); - } - } - - public Task DestroyICAsync() - { - return Connection.CallMethodAsync(CreateMessage()); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - "DestroyIC"); - return writer.CreateMessage(); - } - } - - public Task ProcessKeyEventAsync(uint keyval, uint keycode, uint state, bool type, uint time) - { - return Connection.CallMethodAsync(CreateMessage(), static (m, s) => ReadMessage_b(m, (FcitxObject)s!), this); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - signature: "uuubu", - member: "ProcessKeyEvent"); - writer.WriteUInt32(keyval); - writer.WriteUInt32(keycode); - writer.WriteUInt32(state); - writer.WriteBool(type); - writer.WriteUInt32(time); - return writer.CreateMessage(); - } - } - - public ValueTask WatchCommitStringAsync(Action handler, bool emitOnCapturedContext = true) - => WatchSignalAsync(Service.Destination, Interface, Path, "CommitString", static (m, s) => - ReadMessage_s(m, (FcitxObject)s!), handler, emitOnCapturedContext); - - public ValueTask WatchCurrentIMAsync(Action handler, - bool emitOnCapturedContext = true) => - WatchSignalAsync(Service.Destination, Interface, Path, "CurrentIM", static (m, s) => - ReadMessage_sss(m, (FcitxObject)s!), handler, emitOnCapturedContext); - - public ValueTask WatchUpdateFormattedPreeditAsync(Action handler, - bool emitOnCapturedContext = true) => - WatchSignalAsync(Service.Destination, Interface, Path, "UpdateFormattedPreedit", static (m, s) => - ReadMessage_arsizi(m, (FcitxObject)s!), handler, emitOnCapturedContext); - - public ValueTask WatchForwardKeyAsync(Action handler, - bool emitOnCapturedContext = true) => - WatchSignalAsync(Service.Destination, Interface, Path, "ForwardKey", static (m, s) => - ReadMessage_uub(m, (FcitxObject)s!), handler, emitOnCapturedContext); - - public ValueTask WatchDeleteSurroundingTextAsync(Action handler, - bool emitOnCapturedContext = true) => - WatchSignalAsync(Service.Destination, Interface, Path, "DeleteSurroundingText", static (m, s) => - ReadMessage_iu(m, (FcitxObject)s!), handler, emitOnCapturedContext); - } - - internal class InputMethod1 : FcitxObject - { - private const string Interface = "org.fcitx.Fcitx.InputMethod1"; - - public InputMethod1(FcitxService service, ObjectPath path) : base(service, path) { } - - public Task<(ObjectPath A0, byte[] A1)> CreateInputContextAsync((string, string)[] a0) - { - return Connection.CallMethodAsync(CreateMessage(), static (m, s) => ReadMessage_oay(m, (FcitxObject)s!), this); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - signature: "a(ss)", - member: "CreateInputContext"); - writer.WriteArray(a0); - return writer.CreateMessage(); - } - } - } - - internal class FcitxService - { - public FcitxService(Connection connection, string destination) - => (Connection, Destination) = (connection, destination); - - public Connection Connection { get; } - public string Destination { get; } - public InputContext CreateInputContext(string path) => new(this, path); - public InputMethod CreateInputMethod(string path) => new(this, path); - public InputContext1 CreateInputContext1(string path) => new(this, path); - public InputMethod1 CreateInputMethod1(string path) => new(this, path); - } - - internal class FcitxObject - { - protected FcitxObject(FcitxService service, ObjectPath path) - => (Service, Path) = (service, path); - - public FcitxService Service { get; } - public ObjectPath Path { get; } - protected Connection Connection => Service.Connection; - - protected MessageBuffer CreateGetPropertyMessage(string @interface, string property) - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - "org.freedesktop.DBus.Properties", - signature: "ss", - member: "Get"); - writer.WriteString(@interface); - writer.WriteString(property); - return writer.CreateMessage(); - } - - protected MessageBuffer CreateGetAllPropertiesMessage(string @interface) - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - "org.freedesktop.DBus.Properties", - signature: "s", - member: "GetAll"); - writer.WriteString(@interface); - return writer.CreateMessage(); - } - - protected ValueTask WatchPropertiesChangedAsync(string @interface, - MessageValueReader> reader, Action> handler, - bool emitOnCapturedContext) - { - var rule = new MatchRule - { - Type = MessageType.Signal, - Sender = Service.Destination, - Path = Path, - Interface = "org.freedesktop.DBus.Properties", - Member = "PropertiesChanged", - Arg0 = @interface - }; - return Connection.AddMatchAsync(rule, reader, static (ex, changes, _, hs) => - ((Action>)hs!).Invoke(ex, changes), - this, handler, emitOnCapturedContext); - } - - public ValueTask WatchSignalAsync(string sender, string @interface, ObjectPath path, string signal, - MessageValueReader reader, Action handler, bool emitOnCapturedContext) - { - var rule = new MatchRule - { - Type = MessageType.Signal, - Sender = sender, - Path = path, - Member = signal, - Interface = @interface - }; - return Connection.AddMatchAsync(rule, reader, static (ex, arg, _, hs) => - ((Action)hs!).Invoke(ex, arg), this, handler, emitOnCapturedContext); - } - - public ValueTask WatchSignalAsync(string sender, string @interface, ObjectPath path, string signal, Action handler, - bool emitOnCapturedContext) - { - var rule = new MatchRule - { - Type = MessageType.Signal, - Sender = sender, - Path = path, - Member = signal, - Interface = @interface - }; - return Connection.AddMatchAsync(rule, static (_, _) => - null!, static (ex, _, _, hs) => - ((Action)hs!).Invoke(ex), this, handler, emitOnCapturedContext); - } - - protected static int ReadMessage_i(Message message, FcitxObject _) - { - var reader = message.GetBodyReader(); - return reader.ReadInt32(); - } - - protected static string ReadMessage_s(Message message, FcitxObject _) - { - var reader = message.GetBodyReader(); - return reader.ReadString(); - } - - protected static (string, string, string) ReadMessage_sss(Message message, FcitxObject _) - { - var reader = message.GetBodyReader(); - var arg0 = reader.ReadString(); - var arg1 = reader.ReadString(); - var arg2 = reader.ReadString(); - return (arg0, arg1, arg2); - } - - protected static ((string, int)[], int) ReadMessage_arsizi(Message message, FcitxObject _) - { - var reader = message.GetBodyReader(); - var arg0 = reader.ReadArray<(string, int)>(); - var arg1 = reader.ReadInt32(); - return (arg0, arg1); - } - - protected static (uint, uint, int) ReadMessage_uui(Message message, FcitxObject _) - { - var reader = message.GetBodyReader(); - var arg0 = reader.ReadUInt32(); - var arg1 = reader.ReadUInt32(); - var arg2 = reader.ReadInt32(); - return (arg0, arg1, arg2); - } - - protected static (int, uint) ReadMessage_iu(Message message, FcitxObject _) - { - var reader = message.GetBodyReader(); - var arg0 = reader.ReadInt32(); - var arg1 = reader.ReadUInt32(); - return (arg0, arg1); - } - - protected static (int, bool, uint, uint, uint, uint) ReadMessage_ibuuuu(Message message, FcitxObject _) - { - var reader = message.GetBodyReader(); - var arg0 = reader.ReadInt32(); - var arg1 = reader.ReadBool(); - var arg2 = reader.ReadUInt32(); - var arg3 = reader.ReadUInt32(); - var arg4 = reader.ReadUInt32(); - var arg5 = reader.ReadUInt32(); - return (arg0, arg1, arg2, arg3, arg4, arg5); - } - - protected static bool ReadMessage_b(Message message, FcitxObject _) - { - var reader = message.GetBodyReader(); - return reader.ReadBool(); - } - - protected static (uint, uint, bool) ReadMessage_uub(Message message, FcitxObject _) - { - var reader = message.GetBodyReader(); - var arg0 = reader.ReadUInt32(); - var arg1 = reader.ReadUInt32(); - var arg2 = reader.ReadBool(); - return (arg0, arg1, arg2); - } - - protected static (ObjectPath, byte[]) ReadMessage_oay(Message message, FcitxObject _) - { - var reader = message.GetBodyReader(); - var arg0 = reader.ReadObjectPath(); - var arg1 = reader.ReadArray(); - return (arg0, arg1); - } - } -} diff --git a/src/Avalonia.FreeDesktop/DBusIme/Fcitx/FcitxICWrapper.cs b/src/Avalonia.FreeDesktop/DBusIme/Fcitx/FcitxICWrapper.cs index b71ca55cf8..b651f126fb 100644 --- a/src/Avalonia.FreeDesktop/DBusIme/Fcitx/FcitxICWrapper.cs +++ b/src/Avalonia.FreeDesktop/DBusIme/Fcitx/FcitxICWrapper.cs @@ -5,15 +5,15 @@ namespace Avalonia.FreeDesktop.DBusIme.Fcitx { internal class FcitxICWrapper { - private readonly InputContext1? _modern; - private readonly InputContext? _old; + private readonly OrgFcitxFcitxInputContext1? _modern; + private readonly OrgFcitxFcitxInputContext? _old; - public FcitxICWrapper(InputContext old) + public FcitxICWrapper(OrgFcitxFcitxInputContext old) { _old = old; } - public FcitxICWrapper(InputContext1 modern) + public FcitxICWrapper(OrgFcitxFcitxInputContext1 modern) { _modern = modern; } @@ -43,7 +43,7 @@ namespace Avalonia.FreeDesktop.DBusIme.Fcitx public ValueTask WatchForwardKeyAsync(Action handler) => _old?.WatchForwardKeyAsync(handler) - ?? _modern?.WatchForwardKeyAsync((e, ev) => handler.Invoke(e, (ev.Keyval, ev.State, ev.Type ? 1 : 0))) + ?? _modern?.WatchForwardKeyAsync((e, ev) => handler.Invoke(e, (ev.keyval, ev.state, ev.type ? 1 : 0))) ?? new ValueTask(default(IDisposable?)); public Task SetCapacityAsync(uint flags) => diff --git a/src/Avalonia.FreeDesktop/DBusIme/Fcitx/FcitxX11TextInputMethod.cs b/src/Avalonia.FreeDesktop/DBusIme/Fcitx/FcitxX11TextInputMethod.cs index 2a5260b1cf..6b30c5424a 100644 --- a/src/Avalonia.FreeDesktop/DBusIme/Fcitx/FcitxX11TextInputMethod.cs +++ b/src/Avalonia.FreeDesktop/DBusIme/Fcitx/FcitxX11TextInputMethod.cs @@ -17,21 +17,20 @@ namespace Avalonia.FreeDesktop.DBusIme.Fcitx protected override async Task Connect(string name) { - var service = new FcitxService(Connection, name); if (name == "org.fcitx.Fcitx") { - var method = service.CreateInputMethod("/inputmethod"); + var method = new OrgFcitxFcitxInputMethod(Connection, name, "/inputmethod"); var resp = await method.CreateICv3Async(GetAppName(), Process.GetCurrentProcess().Id); - var proxy = service.CreateInputContext($"/inputcontext_{resp.Icid}"); + var proxy = new OrgFcitxFcitxInputContext(Connection, name, $"/inputcontext_{resp.icid}"); _context = new FcitxICWrapper(proxy); } else { - var method = service.CreateInputMethod1("/inputmethod"); + var method = new OrgFcitxFcitxInputMethod1(Connection, name, "/inputmethod"); var resp = await method.CreateInputContextAsync(new[] { ("appName", GetAppName()) }); - var proxy = service.CreateInputContext1(resp.A0); + var proxy = new OrgFcitxFcitxInputContext1(Connection, name, resp.Item1); _context = new FcitxICWrapper(proxy); } diff --git a/src/Avalonia.FreeDesktop/DBusIme/IBus/IBus.DBus.cs b/src/Avalonia.FreeDesktop/DBusIme/IBus/IBus.DBus.cs deleted file mode 100644 index e0f9681766..0000000000 --- a/src/Avalonia.FreeDesktop/DBusIme/IBus/IBus.DBus.cs +++ /dev/null @@ -1,513 +0,0 @@ -using System; -using System.Threading.Tasks; -using Tmds.DBus.Protocol; - -namespace Avalonia.FreeDesktop.DBusIme.IBus -{ - internal class Portal : IBusObject - { - private const string Interface = "org.freedesktop.IBus.Portal"; - - public Portal(IBusService service, ObjectPath path) : base(service, path) { } - - public Task CreateInputContextAsync(string clientName) - { - return Connection.CallMethodAsync(CreateMessage(), static (m, s) => ReadMessage_o(m, (IBusObject)s!), this); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - signature: "s", - member: "CreateInputContext"); - writer.WriteString(clientName); - return writer.CreateMessage(); - } - } - } - - internal class InputContext : IBusObject - { - private const string Interface = "org.freedesktop.IBus.InputContext"; - - public InputContext(IBusService service, ObjectPath path) : base(service, path) { } - - public Task ProcessKeyEventAsync(uint keyval, uint keycode, uint state) - { - return Connection.CallMethodAsync(CreateMessage(), static (m, s) => ReadMessage_b(m, (IBusObject)s!), this); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - signature: "uuu", - member: "ProcessKeyEvent"); - writer.WriteUInt32(keyval); - writer.WriteUInt32(keycode); - writer.WriteUInt32(state); - return writer.CreateMessage(); - } - } - - public Task SetCursorLocationAsync(int x, int y, int w, int h) - { - return Connection.CallMethodAsync(CreateMessage()); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - signature: "iiii", - member: "SetCursorLocation"); - writer.WriteInt32(x); - writer.WriteInt32(y); - writer.WriteInt32(w); - writer.WriteInt32(h); - return writer.CreateMessage(); - } - } - - public Task SetCursorLocationRelativeAsync(int x, int y, int w, int h) - { - return Connection.CallMethodAsync(CreateMessage()); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - signature: "iiii", - member: "SetCursorLocationRelative"); - writer.WriteInt32(x); - writer.WriteInt32(y); - writer.WriteInt32(w); - writer.WriteInt32(h); - return writer.CreateMessage(); - } - } - - public Task ProcessHandWritingEventAsync(double[] coordinates) - { - return Connection.CallMethodAsync(CreateMessage()); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - signature: "ad", - member: "ProcessHandWritingEvent"); - writer.WriteArray(coordinates); - return writer.CreateMessage(); - } - } - - public Task CancelHandWritingAsync(uint nStrokes) - { - return Connection.CallMethodAsync(CreateMessage()); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - signature: "u", - member: "CancelHandWriting"); - writer.WriteUInt32(nStrokes); - return writer.CreateMessage(); - } - } - - public Task FocusInAsync() - { - return Connection.CallMethodAsync(CreateMessage()); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - "FocusIn"); - return writer.CreateMessage(); - } - } - - public Task FocusOutAsync() - { - return Connection.CallMethodAsync(CreateMessage()); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - "FocusOut"); - return writer.CreateMessage(); - } - } - - public Task ResetAsync() - { - return Connection.CallMethodAsync(CreateMessage()); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - "Reset"); - return writer.CreateMessage(); - } - } - - public Task SetCapabilitiesAsync(uint caps) - { - return Connection.CallMethodAsync(CreateMessage()); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - signature: "u", - member: "SetCapabilities"); - writer.WriteUInt32(caps); - return writer.CreateMessage(); - } - } - - public Task PropertyActivateAsync(string name, uint state) - { - return Connection.CallMethodAsync(CreateMessage()); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - signature: "su", - member: "PropertyActivate"); - writer.WriteString(name); - writer.WriteUInt32(state); - return writer.CreateMessage(); - } - } - - public Task SetEngineAsync(string name) - { - return Connection.CallMethodAsync(CreateMessage()); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - signature: "s", - member: "SetEngine"); - writer.WriteString(name); - return writer.CreateMessage(); - } - } - - public Task GetEngineAsync() - { - return Connection.CallMethodAsync(CreateMessage(), static (m, s) => ReadMessage_v(m, (IBusObject)s!), this); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - "GetEngine"); - return writer.CreateMessage(); - } - } - - public Task SetSurroundingTextAsync(object text, uint cursorPos, uint anchorPos) - { - return Connection.CallMethodAsync(CreateMessage()); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - signature: "vuu", - member: "SetSurroundingText"); - writer.WriteVariant(text); - writer.WriteUInt32(cursorPos); - writer.WriteUInt32(anchorPos); - return writer.CreateMessage(); - } - } - - public ValueTask WatchCommitTextAsync(Action handler, bool emitOnCapturedContext = true) => - WatchSignalAsync(Service.Destination, Interface, Path, "CommitText", static (m, s) => - ReadMessage_v(m, (IBusObject)s!), handler, emitOnCapturedContext); - - public ValueTask WatchForwardKeyEventAsync(Action handler, - bool emitOnCapturedContext = true) => - WatchSignalAsync(Service.Destination, Interface, Path, "ForwardKeyEvent", static (m, s) => - ReadMessage_uuu(m, (IBusObject)s!), handler, emitOnCapturedContext); - - public ValueTask WatchUpdatePreeditTextAsync(Action handler, - bool emitOnCapturedContext = true) => - WatchSignalAsync(Service.Destination, Interface, Path, "UpdatePreeditText", static (m, s) => - ReadMessage_vub(m, (IBusObject)s!), handler, emitOnCapturedContext); - - public ValueTask WatchUpdatePreeditTextWithModeAsync( - Action handler, bool emitOnCapturedContext = true) => - WatchSignalAsync(Service.Destination, Interface, Path, "UpdatePreeditTextWithMode", static (m, s) => - ReadMessage_vubu(m, (IBusObject)s!), handler, emitOnCapturedContext); - - public ValueTask WatchShowPreeditTextAsync(Action handler, bool emitOnCapturedContext = true) - => WatchSignalAsync(Service.Destination, Interface, Path, "ShowPreeditText", handler, emitOnCapturedContext); - - public ValueTask WatchHidePreeditTextAsync(Action handler, bool emitOnCapturedContext = true) - => WatchSignalAsync(Service.Destination, Interface, Path, "HidePreeditText", handler, emitOnCapturedContext); - - public ValueTask WatchUpdateAuxiliaryTextAsync(Action handler, - bool emitOnCapturedContext = true) => - WatchSignalAsync(Service.Destination, Interface, Path, "UpdateAuxiliaryText", static (m, s) => - ReadMessage_vb(m, (IBusObject)s!), handler, emitOnCapturedContext); - - public ValueTask WatchShowAuxiliaryTextAsync(Action handler, bool emitOnCapturedContext = true) - => WatchSignalAsync(Service.Destination, Interface, Path, "ShowAuxiliaryText", handler, emitOnCapturedContext); - - public ValueTask WatchHideAuxiliaryTextAsync(Action handler, bool emitOnCapturedContext = true) - => WatchSignalAsync(Service.Destination, Interface, Path, "HideAuxiliaryText", handler, emitOnCapturedContext); - - public ValueTask WatchUpdateLookupTableAsync(Action handler, - bool emitOnCapturedContext = true) => - WatchSignalAsync(Service.Destination, Interface, Path, "UpdateLookupTable", static (m, s) => - ReadMessage_vb(m, (IBusObject)s!), handler, emitOnCapturedContext); - - public ValueTask WatchShowLookupTableAsync(Action handler, bool emitOnCapturedContext = true) - => WatchSignalAsync(Service.Destination, Interface, Path, "ShowLookupTable", handler, emitOnCapturedContext); - - public ValueTask WatchHideLookupTableAsync(Action handler, bool emitOnCapturedContext = true) - => WatchSignalAsync(Service.Destination, Interface, Path, "HideLookupTable", handler, emitOnCapturedContext); - - public ValueTask WatchPageUpLookupTableAsync(Action handler, bool emitOnCapturedContext = true) - => WatchSignalAsync(Service.Destination, Interface, Path, "PageUpLookupTable", handler, emitOnCapturedContext); - - public ValueTask WatchPageDownLookupTableAsync(Action handler, bool emitOnCapturedContext = true) - => WatchSignalAsync(Service.Destination, Interface, Path, "PageDownLookupTable", handler, emitOnCapturedContext); - - public ValueTask WatchCursorUpLookupTableAsync(Action handler, bool emitOnCapturedContext = true) - => WatchSignalAsync(Service.Destination, Interface, Path, "CursorUpLookupTable", handler, emitOnCapturedContext); - - public ValueTask WatchCursorDownLookupTableAsync(Action handler, bool emitOnCapturedContext = true) - => WatchSignalAsync(Service.Destination, Interface, Path, "CursorDownLookupTable", handler, emitOnCapturedContext); - - public ValueTask WatchRegisterPropertiesAsync(Action handler, bool emitOnCapturedContext = true) - => WatchSignalAsync(Service.Destination, Interface, Path, "RegisterProperties", static (m, s) => ReadMessage_v(m, (IBusObject)s!), handler, emitOnCapturedContext); - - public ValueTask WatchUpdatePropertyAsync(Action handler, bool emitOnCapturedContext = true) - => WatchSignalAsync(Service.Destination, Interface, Path, "UpdateProperty", static (m, s) => ReadMessage_v(m, (IBusObject)s!), handler, emitOnCapturedContext); - } - - internal class Service : IBusObject - { - private const string Interface = "org.freedesktop.IBus.Service"; - - public Service(IBusService service, ObjectPath path) : base(service, path) { } - - public Task DestroyAsync() - { - return Connection.CallMethodAsync(CreateMessage()); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - "Destroy"); - return writer.CreateMessage(); - } - } - } - - internal class IBusService - { - public IBusService(Connection connection, string destination) - => (Connection, Destination) = (connection, destination); - - public Connection Connection { get; } - public string Destination { get; } - public Portal CreatePortal(string path) => new(this, path); - public InputContext CreateInputContext(string path) => new(this, path); - public Service CreateService(string path) => new(this, path); - } - - internal class IBusObject - { - protected IBusObject(IBusService service, ObjectPath path) - => (Service, Path) = (service, path); - - public IBusService Service { get; } - public ObjectPath Path { get; } - protected Connection Connection => Service.Connection; - - protected MessageBuffer CreateGetPropertyMessage(string @interface, string property) - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - "org.freedesktop.DBus.Properties", - signature: "ss", - member: "Get"); - writer.WriteString(@interface); - writer.WriteString(property); - return writer.CreateMessage(); - } - - protected MessageBuffer CreateGetAllPropertiesMessage(string @interface) - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - "org.freedesktop.DBus.Properties", - signature: "s", - member: "GetAll"); - writer.WriteString(@interface); - return writer.CreateMessage(); - } - - protected ValueTask WatchPropertiesChangedAsync(string @interface, - MessageValueReader> reader, Action> handler, - bool emitOnCapturedContext) - { - var rule = new MatchRule - { - Type = MessageType.Signal, - Sender = Service.Destination, - Path = Path, - Interface = "org.freedesktop.DBus.Properties", - Member = "PropertiesChanged", - Arg0 = @interface - }; - return Connection.AddMatchAsync(rule, reader, static (ex, changes, _, hs) => - ((Action>)hs!).Invoke(ex, changes), - this, handler, emitOnCapturedContext); - } - - public ValueTask WatchSignalAsync(string sender, string @interface, ObjectPath path, string signal, - MessageValueReader reader, Action handler, bool emitOnCapturedContext) - { - var rule = new MatchRule - { - Type = MessageType.Signal, - Sender = sender, - Path = path, - Member = signal, - Interface = @interface - }; - return Connection.AddMatchAsync(rule, reader, static (ex, arg, _, hs) => ((Action)hs!).Invoke(ex, arg), - this, handler, emitOnCapturedContext); - } - - public ValueTask WatchSignalAsync(string sender, string @interface, ObjectPath path, string signal, Action handler, - bool emitOnCapturedContext) - { - var rule = new MatchRule - { - Type = MessageType.Signal, - Sender = sender, - Path = path, - Member = signal, - Interface = @interface - }; - return Connection.AddMatchAsync(rule, static (_, _) => null!, static (ex, _, _, hs) => ((Action)hs!).Invoke(ex), this, handler, emitOnCapturedContext); - } - - protected static ObjectPath ReadMessage_o(Message message, IBusObject _) - { - var reader = message.GetBodyReader(); - return reader.ReadObjectPath(); - } - - protected static bool ReadMessage_b(Message message, IBusObject _) - { - var reader = message.GetBodyReader(); - return reader.ReadBool(); - } - - protected static object ReadMessage_v(Message message, IBusObject _) - { - var reader = message.GetBodyReader(); - return reader.ReadVariant(); - } - - protected static (uint, uint, uint) ReadMessage_uuu(Message message, IBusObject _) - { - var reader = message.GetBodyReader(); - var arg0 = reader.ReadUInt32(); - var arg1 = reader.ReadUInt32(); - var arg2 = reader.ReadUInt32(); - return (arg0, arg1, arg2); - } - - protected static (object, uint, bool) ReadMessage_vub(Message message, IBusObject _) - { - var reader = message.GetBodyReader(); - var arg0 = reader.ReadVariant(); - var arg1 = reader.ReadUInt32(); - var arg2 = reader.ReadBool(); - return (arg0, arg1, arg2); - } - - protected static (object, uint, bool, uint) ReadMessage_vubu(Message message, IBusObject _) - { - var reader = message.GetBodyReader(); - var arg0 = reader.ReadVariant(); - var arg1 = reader.ReadUInt32(); - var arg2 = reader.ReadBool(); - var arg3 = reader.ReadUInt32(); - return (arg0, arg1, arg2, arg3); - } - - protected static (object, bool) ReadMessage_vb(Message message, IBusObject _) - { - var reader = message.GetBodyReader(); - var arg0 = reader.ReadVariant(); - var arg1 = reader.ReadBool(); - return (arg0, arg1); - } - } -} diff --git a/src/Avalonia.FreeDesktop/DBusIme/IBus/IBusX11TextInputMethod.cs b/src/Avalonia.FreeDesktop/DBusIme/IBus/IBusX11TextInputMethod.cs index f3ab8617a4..4db0d95d3c 100644 --- a/src/Avalonia.FreeDesktop/DBusIme/IBus/IBusX11TextInputMethod.cs +++ b/src/Avalonia.FreeDesktop/DBusIme/IBus/IBusX11TextInputMethod.cs @@ -9,17 +9,17 @@ namespace Avalonia.FreeDesktop.DBusIme.IBus { internal class IBusX11TextInputMethod : DBusTextInputMethodBase { - private Service? _service; - private InputContext? _context; + private OrgFreedesktopIBusService? _service; + private OrgFreedesktopIBusInputContext? _context; public IBusX11TextInputMethod(Connection connection) : base(connection, "org.freedesktop.portal.IBus") { } protected override async Task Connect(string name) { - var service = new IBusService(Connection, name); - var path = await service.CreatePortal("/org/freedesktop/IBus").CreateInputContextAsync(GetAppName()); - _context = service.CreateInputContext(path); - _service = service.CreateService(path); + var portal = new OrgFreedesktopIBusPortal(Connection, name, "/org/freedesktop/IBus"); + var path = await portal.CreateInputContextAsync(GetAppName()); + _service = new OrgFreedesktopIBusService(Connection, name, path); + _context = new OrgFreedesktopIBusInputContext(Connection, name, path); AddDisposable(await _context.WatchCommitTextAsync(OnCommitText)); AddDisposable(await _context.WatchForwardKeyEventAsync(OnForwardKey)); Enqueue(() => _context.SetCapabilitiesAsync((uint)IBusCapability.CapFocus)); diff --git a/src/Avalonia.FreeDesktop/DBusInterfaces.cs b/src/Avalonia.FreeDesktop/DBusInterfaces.cs new file mode 100644 index 0000000000..3bece27ab1 --- /dev/null +++ b/src/Avalonia.FreeDesktop/DBusInterfaces.cs @@ -0,0 +1,18 @@ +using Tmds.DBus.SourceGenerator; + +namespace Avalonia.FreeDesktop +{ + [DBusInterface("./DBusXml/DBus.xml")] + [DBusInterface("./DBusXml/StatusNotifierWatcher.xml")] + [DBusInterface("./DBusXml/com.canonical.AppMenu.Registrar.xml")] + [DBusInterface("./DBusXml/org.fcitx.Fcitx.InputContext.xml")] + [DBusInterface("./DBusXml/org.fcitx.Fcitx.InputMethod.xml")] + [DBusInterface("./DBusXml/org.fcitx.Fcitx.InputContext1.xml")] + [DBusInterface("./DBusXml/org.fcitx.Fcitx.InputMethod1.xml")] + [DBusInterface("./DBusXml/org.freedesktop.portal.FileChooser.xml")] + [DBusInterface("./DBusXml/org.freedesktop.portal.Request.xml")] + [DBusInterface("./DBusXml/org.freedesktop.IBus.Portal.xml")] + [DBusHandler("./DBusXml/DBusMenu.xml")] + [DBusHandler("./DBusXml/StatusNotifierItem.xml")] + internal class DBusInterfaces { } +} diff --git a/src/Avalonia.FreeDesktop/DBusMenu.DBus.cs b/src/Avalonia.FreeDesktop/DBusMenu.DBus.cs deleted file mode 100644 index e3928cfbb2..0000000000 --- a/src/Avalonia.FreeDesktop/DBusMenu.DBus.cs +++ /dev/null @@ -1,500 +0,0 @@ -using System; -using Tmds.DBus.Protocol; -using System.Collections.Generic; -using System.Threading.Tasks; - -namespace Avalonia.FreeDesktop -{ - internal record DBusMenuProperties - { - public uint Version { get; set; } - public string TextDirection { get; set; } = default!; - public string Status { get; set; } = default!; - public string[] IconThemePath { get; set; } = default!; - } - - internal class DBusMenu : DBusMenuObject - { - private const string Interface = "com.canonical.dbusmenu"; - - public DBusMenu(DBusMenuService service, ObjectPath path) : base(service, path) { } - - public Task<(uint Revision, (int, Dictionary, object[]) Layout)> GetLayoutAsync(int parentId, int recursionDepth, string[] propertyNames) - { - return Connection.CallMethodAsync(CreateMessage(), static (m, _) => ReadMessage_uriaesvavz(m), this); - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - signature: "iias", - member: "GetLayout"); - writer.WriteInt32(parentId); - writer.WriteInt32(recursionDepth); - writer.WriteArray(propertyNames); - return writer.CreateMessage(); - } - } - - public Task<(int, Dictionary)[]> GetGroupPropertiesAsync(int[] ids, string[] propertyNames) - { - return Connection.CallMethodAsync(CreateMessage(), static (m, _) => ReadMessage_ariaesvz(m), this); - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - signature: "aias", - member: "GetGroupProperties"); - writer.WriteArray(ids); - writer.WriteArray(propertyNames); - return writer.CreateMessage(); - } - } - - public Task GetPropertyAsync(int id, string name) - { - return Connection.CallMethodAsync(CreateMessage(), static (m, _) => ReadMessage_v(m), this); - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - signature: "is", - member: "GetProperty"); - writer.WriteInt32(id); - writer.WriteString(name); - return writer.CreateMessage(); - } - } - - public Task EventAsync(int id, string eventId, object data, uint timestamp) - { - return Connection.CallMethodAsync(CreateMessage()); - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - signature: "isvu", - member: "Event"); - writer.WriteInt32(id); - writer.WriteString(eventId); - writer.WriteVariant(data); - writer.WriteUInt32(timestamp); - return writer.CreateMessage(); - } - } - - public Task EventGroupAsync((int, string, object, uint)[] events) - { - return Connection.CallMethodAsync(CreateMessage(), static (m, _) => ReadMessage_ai(m), this); - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - signature: "a(isvu)", - member: "EventGroup"); - writer.WriteArray(events); - return writer.CreateMessage(); - } - } - - public Task AboutToShowAsync(int id) - { - return Connection.CallMethodAsync(CreateMessage(), static (m, _) => ReadMessage_b(m), this); - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - signature: "i", - member: "AboutToShow"); - writer.WriteInt32(id); - return writer.CreateMessage(); - } - } - - public Task<(int[] UpdatesNeeded, int[] IdErrors)> AboutToShowGroupAsync(int[] ids) - { - return Connection.CallMethodAsync(CreateMessage(), static (m, _) => ReadMessage_aiai(m), this); - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - signature: "ai", - member: "AboutToShowGroup"); - writer.WriteArray(ids); - return writer.CreateMessage(); - } - } - - public ValueTask WatchItemsPropertiesUpdatedAsync(Action)[] UpdatedProps, (int, string[])[] RemovedProps)> handler, bool emitOnCapturedContext = true) - => WatchSignalAsync(Service.Destination, Interface, Path, "ItemsPropertiesUpdated", static (m, _) => ReadMessage_ariaesvzariasz(m), handler, emitOnCapturedContext); - - public ValueTask WatchLayoutUpdatedAsync(Action handler, bool emitOnCapturedContext = true) - => WatchSignalAsync(Service.Destination, Interface, Path, "LayoutUpdated", static (m, _) => ReadMessage_ui(m), handler, emitOnCapturedContext); - - public ValueTask WatchItemActivationRequestedAsync(Action handler, bool emitOnCapturedContext = true) - => WatchSignalAsync(Service.Destination, Interface, Path, "ItemActivationRequested", static (m, _) => ReadMessage_iu(m), handler, emitOnCapturedContext); - - public Task SetVersionAsync(uint value) - { - return Connection.CallMethodAsync(CreateMessage()); - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - "org.freedesktop.DBus.Properties", - signature: "ssv", - member: "Set"); - writer.WriteString(Interface); - writer.WriteString("Version"); - writer.WriteSignature("u"); - writer.WriteUInt32(value); - return writer.CreateMessage(); - } - } - - public Task SetTextDirectionAsync(string value) - { - return Connection.CallMethodAsync(CreateMessage()); - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - "org.freedesktop.DBus.Properties", - signature: "ssv", - member: "Set"); - writer.WriteString(Interface); - writer.WriteString("TextDirection"); - writer.WriteSignature("s"); - writer.WriteString(value); - return writer.CreateMessage(); - } - } - - public Task SetStatusAsync(string value) - { - return Connection.CallMethodAsync(CreateMessage()); - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - "org.freedesktop.DBus.Properties", - signature: "ssv", - member: "Set"); - writer.WriteString(Interface); - writer.WriteString("Status"); - writer.WriteSignature("s"); - writer.WriteString(value); - return writer.CreateMessage(); - } - } - - public Task SetIconThemePathAsync(string[] value) - { - return Connection.CallMethodAsync(CreateMessage()); - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - "org.freedesktop.DBus.Properties", - signature: "ssv", - member: "Set"); - writer.WriteString(Interface); - writer.WriteString("IconThemePath"); - writer.WriteSignature("as"); - writer.WriteArray(value); - return writer.CreateMessage(); - } - } - - public Task GetVersionAsync() - => Connection.CallMethodAsync(CreateGetPropertyMessage(Interface, "Version"), static (m, _) => ReadMessage_v_u(m), this); - - public Task GetTextDirectionAsync() - => Connection.CallMethodAsync(CreateGetPropertyMessage(Interface, "TextDirection"), static (m, _) => ReadMessage_v_s(m), this); - - public Task GetStatusAsync() - => Connection.CallMethodAsync(CreateGetPropertyMessage(Interface, "Status"), static (m, _) => ReadMessage_v_s(m), this); - - public Task GetIconThemePathAsync() - => Connection.CallMethodAsync(CreateGetPropertyMessage(Interface, "IconThemePath"), static (m, _) => ReadMessage_v_as(m), this); - - public Task GetPropertiesAsync() - { - return Connection.CallMethodAsync(CreateGetAllPropertiesMessage(Interface), static (m, _) => ReadMessage(m), this); - static DBusMenuProperties ReadMessage(Message message) - { - var reader = message.GetBodyReader(); - return ReadProperties(ref reader); - } - } - - public ValueTask WatchPropertiesChangedAsync(Action> handler, bool emitOnCapturedContext = true) - { - return base.WatchPropertiesChangedAsync(Interface, static (m, _) => ReadMessage(m), handler, emitOnCapturedContext); - static PropertyChanges ReadMessage(Message message) - { - var reader = message.GetBodyReader(); - reader.ReadString(); // interface - List changed = new(); - return new PropertyChanges(ReadProperties(ref reader, changed), changed.ToArray(), ReadInvalidated(ref reader)); - } - static string[] ReadInvalidated(ref Reader reader) - { - List? invalidated = null; - var headersEnd = reader.ReadArrayStart(DBusType.String); - while (reader.HasNext(headersEnd)) - { - invalidated ??= new List(); - var property = reader.ReadString(); - switch (property) - { - case "Version": invalidated.Add("Version"); break; - case "TextDirection": invalidated.Add("TextDirection"); break; - case "Status": invalidated.Add("Status"); break; - case "IconThemePath": invalidated.Add("IconThemePath"); break; - } - } - return invalidated?.ToArray() ?? Array.Empty(); - } - } - - private static DBusMenuProperties ReadProperties(ref Reader reader, ICollection? changedList = null) - { - var props = new DBusMenuProperties(); - var headersEnd = reader.ReadArrayStart(DBusType.Struct); - while (reader.HasNext(headersEnd)) - { - var property = reader.ReadString(); - switch (property) - { - case "Version": - reader.ReadSignature("u"); - props.Version = reader.ReadUInt32(); - changedList?.Add("Version"); - break; - case "TextDirection": - reader.ReadSignature("s"); - props.TextDirection = reader.ReadString(); - changedList?.Add("TextDirection"); - break; - case "Status": - reader.ReadSignature("s"); - props.Status = reader.ReadString(); - changedList?.Add("Status"); - break; - case "IconThemePath": - reader.ReadSignature("as"); - props.IconThemePath = reader.ReadArray(); - changedList?.Add("IconThemePath"); - break; - default: - reader.ReadVariant(); - break; - } - } - return props; - } - } - - internal class DBusMenuService - { - public Connection Connection { get; } - public string Destination { get; } - public DBusMenuService(Connection connection, string destination) - => (Connection, Destination) = (connection, destination); - public DBusMenu CreateDbusmenu(string path) => new(this, path); - } - - internal class DBusMenuObject - { - public DBusMenuService Service { get; } - public ObjectPath Path { get; } - protected Connection Connection => Service.Connection; - protected DBusMenuObject(DBusMenuService service, ObjectPath path) - => (Service, Path) = (service, path); - - protected MessageBuffer CreateGetPropertyMessage(string @interface, string property) - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - "org.freedesktop.DBus.Properties", - signature: "ss", - member: "Get"); - writer.WriteString(@interface); - writer.WriteString(property); - return writer.CreateMessage(); - } - - protected MessageBuffer CreateGetAllPropertiesMessage(string @interface) - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - "org.freedesktop.DBus.Properties", - signature: "s", - member: "GetAll"); - writer.WriteString(@interface); - return writer.CreateMessage(); - } - - protected ValueTask WatchPropertiesChangedAsync(string @interface, MessageValueReader> reader, Action> handler, bool emitOnCapturedContext) - { - var rule = new MatchRule - { - Type = MessageType.Signal, - Sender = Service.Destination, - Path = Path, - Interface = "org.freedesktop.DBus.Properties", - Member = "PropertiesChanged", - Arg0 = @interface - }; - return Connection.AddMatchAsync(rule, reader, static (ex, changes, _, hs) - => ((Action>)hs!).Invoke(ex, changes), this, handler, emitOnCapturedContext); - } - - protected ValueTask WatchSignalAsync(string sender, string @interface, ObjectPath path, string signal, MessageValueReader reader, Action handler, bool emitOnCapturedContext) - { - var rule = new MatchRule - { - Type = MessageType.Signal, - Sender = sender, - Path = path, - Member = signal, - Interface = @interface - }; - return Connection.AddMatchAsync(rule, reader, static (ex, arg, _, hs) - => ((Action)hs!).Invoke(ex, arg), this, handler, emitOnCapturedContext); - } - - protected ValueTask WatchSignalAsync(string sender, string @interface, ObjectPath path, string signal, Action handler, bool emitOnCapturedContext) - { - var rule = new MatchRule - { - Type = MessageType.Signal, - Sender = sender, - Path = path, - Member = signal, - Interface = @interface - }; - return Connection.AddMatchAsync(rule, static (_, _) - => null!, static (ex, _, _, hs) - => ((Action)hs!).Invoke(ex), this, handler, emitOnCapturedContext); - } - - protected static (uint, (int, Dictionary, object[])) ReadMessage_uriaesvavz(Message message) - { - var reader = message.GetBodyReader(); - var arg0 = reader.ReadUInt32(); - var arg1 = reader.ReadStruct, object[]>(); - return (arg0, arg1); - } - - protected static (int, Dictionary)[] ReadMessage_ariaesvz(Message message) - { - var reader = message.GetBodyReader(); - return reader.ReadArray<(int, Dictionary)>(); - } - - protected static object ReadMessage_v(Message message) - { - var reader = message.GetBodyReader(); - return reader.ReadVariant(); - } - - protected static int[] ReadMessage_ai(Message message) - { - var reader = message.GetBodyReader(); - return reader.ReadArray(); - } - - protected static bool ReadMessage_b(Message message) - { - var reader = message.GetBodyReader(); - return reader.ReadBool(); - } - - protected static (int[], int[]) ReadMessage_aiai(Message message) - { - var reader = message.GetBodyReader(); - var arg0 = reader.ReadArray(); - var arg1 = reader.ReadArray(); - return (arg0, arg1); - } - - protected static ((int, Dictionary)[], (int, string[])[]) ReadMessage_ariaesvzariasz(Message message) - { - var reader = message.GetBodyReader(); - var arg0 = reader.ReadArray<(int, Dictionary)>(); - var arg1 = reader.ReadArray<(int, string[])>(); - return (arg0, arg1); - } - - protected static (uint, int) ReadMessage_ui(Message message) - { - var reader = message.GetBodyReader(); - var arg0 = reader.ReadUInt32(); - var arg1 = reader.ReadInt32(); - return (arg0, arg1); - } - - protected static (int, uint) ReadMessage_iu(Message message) - { - var reader = message.GetBodyReader(); - var arg0 = reader.ReadInt32(); - var arg1 = reader.ReadUInt32(); - return (arg0, arg1); - } - - protected static uint ReadMessage_v_u(Message message) - { - var reader = message.GetBodyReader(); - reader.ReadSignature("u"); - return reader.ReadUInt32(); - } - - protected static string ReadMessage_v_s(Message message) - { - var reader = message.GetBodyReader(); - reader.ReadSignature("s"); - return reader.ReadString(); - } - - protected static string[] ReadMessage_v_as(Message message) - { - var reader = message.GetBodyReader(); - reader.ReadSignature("as"); - return reader.ReadArray(); - } - } -} diff --git a/src/Avalonia.FreeDesktop/DBusMenuExporter.cs b/src/Avalonia.FreeDesktop/DBusMenuExporter.cs index 69e2eed72f..e8d4a7b6b4 100644 --- a/src/Avalonia.FreeDesktop/DBusMenuExporter.cs +++ b/src/Avalonia.FreeDesktop/DBusMenuExporter.cs @@ -3,7 +3,6 @@ using System.Collections.Generic; using System.Collections.Specialized; using System.IO; using System.Linq; -using System.Threading.Tasks; using Avalonia.Controls; using Avalonia.Controls.Platform; using Avalonia.Input; @@ -25,16 +24,15 @@ namespace Avalonia.FreeDesktop public static string GenerateDBusMenuObjPath => $"/net/avaloniaui/dbusmenu/{Guid.NewGuid():N}"; - private class DBusMenuExporterImpl : ITopLevelNativeMenuExporter, IMethodHandler, IDisposable + private class DBusMenuExporterImpl : ComCanonicalDbusmenu, ITopLevelNativeMenuExporter, IDisposable { private readonly Connection _connection; - private readonly DBusMenuProperties _dBusMenuProperties = new() { Version = 2, Status = "normal" }; private readonly Dictionary _idsToItems = new(); private readonly Dictionary _itemsToIds = new(); private readonly HashSet _menus = new(); private readonly uint _xid; private readonly bool _appMenu = true; - private Registrar? _registrar; + private ComCanonicalAppMenuRegistrar? _registrar; private NativeMenu? _menu; private bool _disposed; private uint _revision = 1; @@ -59,7 +57,40 @@ namespace Avalonia.FreeDesktop Init(); } - public string Path { get; } + public override string Path { get; } + + protected override (uint revision, (int, Dictionary, object[]) layout) OnGetLayout(int parentId, int recursionDepth, string[] propertyNames) + { + var menu = GetMenu(parentId); + var layout = GetLayout(menu.item, menu.menu, recursionDepth, propertyNames); + if (!IsNativeMenuExported) + { + IsNativeMenuExported = true; + Dispatcher.UIThread.Post(() => OnIsNativeMenuExportedChanged?.Invoke(this, EventArgs.Empty)); + } + + return (_revision, layout); + } + + protected override (int, Dictionary)[] OnGetGroupProperties(int[] ids, string[] propertyNames) => + ids.Select(id => (id, GetProperties(GetMenu(id), propertyNames))).ToArray(); + + protected override object OnGetProperty(int id, string name) => GetProperty(GetMenu(id), name) ?? 0; + + protected override void OnEvent(int id, string eventId, object data, uint timestamp) => + Dispatcher.UIThread.Post(() => HandleEvent(id, eventId, data, timestamp)); + + protected override int[] OnEventGroup((int, string, object, uint)[] events) + { + foreach (var e in events) + Dispatcher.UIThread.Post(() => HandleEvent(e.Item1, e.Item2, e.Item3, e.Item4)); + return Array.Empty(); + } + + protected override bool OnAboutToShow(int id) => false; + + protected override (int[] updatesNeeded, int[] idErrors) OnAboutToShowGroup(int[] ids) => + (Array.Empty(), Array.Empty()); private async void Init() { @@ -69,8 +100,7 @@ namespace Avalonia.FreeDesktop var services = await _connection.ListServicesAsync(); if (!services.Contains("com.canonical.AppMenu.Registrar")) return; - _registrar = new RegistrarService(_connection, "com.canonical.AppMenu.Registrar") - .CreateRegistrar("/com/canonical/AppMenu/Registrar"); + _registrar = new ComCanonicalAppMenuRegistrar(_connection, "com.canonical.AppMenu.Registrar", "/com/canonical/AppMenu/Registrar"); if (!_disposed) await _registrar.RegisterWindowAsync(_xid, Path); // It's not really important if this code succeeds, @@ -297,140 +327,6 @@ namespace Avalonia.FreeDesktop } } - public ValueTask HandleMethodAsync(MethodContext context) - { - switch (context.Request.InterfaceAsString) - { - case "com.canonical.dbusmenu": - switch (context.Request.MemberAsString, context.Request.SignatureAsString) - { - case ("GetLayout", "iias"): - { - using var writer = context.CreateReplyWriter("u(ia{sv}av)"); - var reader = context.Request.GetBodyReader(); - var parentId = reader.ReadInt32(); - var recursionDepth = reader.ReadInt32(); - var propertyNames = reader.ReadArray(); - var menu = GetMenu(parentId); - var layout = GetLayout(menu.item, menu.menu, recursionDepth, propertyNames); - writer.WriteUInt32(_revision); - writer.WriteStruct(layout); - if (!IsNativeMenuExported) - { - IsNativeMenuExported = true; - Dispatcher.UIThread.Post(() => OnIsNativeMenuExportedChanged?.Invoke(this, EventArgs.Empty)); - } - - context.Reply(writer.CreateMessage()); - break; - } - case ("GetGroupProperties", "aias"): - { - using var writer = context.CreateReplyWriter("a(ia{sv})"); - var reader = context.Request.GetBodyReader(); - var ids = reader.ReadArray(); - var propertyNames = reader.ReadArray(); - var arrayStart = writer.WriteArrayStart(DBusType.Struct); - foreach (var id in ids) - { - var item = GetMenu(id); - var props = GetProperties(item, propertyNames); - writer.WriteStruct((id, props)); - } - - writer.WriteArrayEnd(arrayStart); - context.Reply(writer.CreateMessage()); - break; - } - case ("GetProperty", "is"): - { - using var writer = context.CreateReplyWriter("v"); - var reader = context.Request.GetBodyReader(); - var id = reader.ReadInt32(); - var name = reader.ReadString(); - writer.WriteVariant(GetProperty(GetMenu(id), name) ?? 0); - context.Reply(writer.CreateMessage()); - break; - } - case ("Event", "isvu"): - { - var reader = context.Request.GetBodyReader(); - var id = reader.ReadInt32(); - var eventId = reader.ReadString(); - var data = reader.ReadVariant(); - var timestamp = reader.ReadUInt32(); - Dispatcher.UIThread.Post(() => HandleEvent(id, eventId, data, timestamp)); - break; - } - case ("EventGroup", "a(isvu)"): - { - using var writer = context.CreateReplyWriter("ai"); - var reader = context.Request.GetBodyReader(); - var events = reader.ReadArray<(int Id, string EventId, object Data, uint Timestamp)>(); - foreach (var e in events) - Dispatcher.UIThread.Post(() => HandleEvent(e.Id, e.EventId, e.Data, e.Timestamp)); - writer.WriteArray(Array.Empty()); - context.Reply(writer.CreateMessage()); - break; - } - case ("AboutToShow", "i"): - { - using var writer = context.CreateReplyWriter("b"); - writer.WriteBool(false); - context.Reply(writer.CreateMessage()); - break; - } - case ("AboutToShowGroup", "ai"): - { - using var writer = context.CreateReplyWriter("aiai"); - writer.WriteStruct((Array.Empty(), Array.Empty())); - context.Reply(writer.CreateMessage()); - break; - } - } - - break; - case "org.freedesktop.DBus.Properties": - switch (context.Request.MemberAsString, context.Request.SignatureAsString) - { - case ("Version", "u"): - { - using var writer = context.CreateReplyWriter("u"); - writer.WriteUInt32(_dBusMenuProperties.Version); - context.Reply(writer.CreateMessage()); - break; - } - case ("TextDirection", "s"): - { - using var writer = context.CreateReplyWriter("s"); - writer.WriteString(_dBusMenuProperties.TextDirection); - context.Reply(writer.CreateMessage()); - break; - } - case ("Status", "s"): - { - using var writer = context.CreateReplyWriter("s"); - writer.WriteString(_dBusMenuProperties.Status); - context.Reply(writer.CreateMessage()); - break; - } - case ("IconThemePath", "as"): - { - using var writer = context.CreateReplyWriter("as"); - writer.WriteArray(_dBusMenuProperties.IconThemePath); - context.Reply(writer.CreateMessage()); - break; - } - } - - break; - } - - return default; - } - - public bool RunMethodHandlerSynchronously(Message message) => true; - private void EmitUIntIntSignal(string member, uint arg0, int arg1) { using var writer = _connection.GetMessageWriter(); diff --git a/src/Avalonia.FreeDesktop/DBusSystemDialog.cs b/src/Avalonia.FreeDesktop/DBusSystemDialog.cs index 7d1a0bbfc4..81233f3b2f 100644 --- a/src/Avalonia.FreeDesktop/DBusSystemDialog.cs +++ b/src/Avalonia.FreeDesktop/DBusSystemDialog.cs @@ -19,18 +19,18 @@ namespace Avalonia.FreeDesktop return null; var services = await DBusHelper.Connection.ListServicesAsync(); return services.Contains("org.freedesktop.portal.Desktop", StringComparer.Ordinal) - ? new DBusSystemDialog(new DesktopService(DBusHelper.Connection, "org.freedesktop.portal.Desktop"), handle) + ? new DBusSystemDialog(DBusHelper.Connection, handle) : null; } - private readonly DesktopService _desktopService; - private readonly FileChooser _fileChooser; + private readonly Connection _connection; + private readonly OrgFreedesktopPortalFileChooser _fileChooser; private readonly IPlatformHandle _handle; - private DBusSystemDialog(DesktopService desktopService, IPlatformHandle handle) + private DBusSystemDialog(Connection connection, IPlatformHandle handle) { - _desktopService = desktopService; - _fileChooser = desktopService.CreateFileChooser("/org/freedesktop/portal/desktop"); + _connection = connection; + _fileChooser = new OrgFreedesktopPortalFileChooser(connection, "org.freedesktop.portal.Desktop", "/org/freedesktop/portal/desktop"); _handle = handle; } @@ -53,7 +53,7 @@ namespace Avalonia.FreeDesktop objectPath = await _fileChooser.OpenFileAsync(parentWindow, options.Title ?? string.Empty, chooserOptions); - var request = _desktopService.CreateRequest(objectPath); + var request = new OrgFreedesktopPortalRequest(_connection, "org.freedesktop.portal.Desktop", objectPath); var tsc = new TaskCompletionSource(); using var disposable = await request.WatchResponseAsync((e, x) => { @@ -82,7 +82,7 @@ namespace Avalonia.FreeDesktop chooserOptions.Add("current_folder", Encoding.UTF8.GetBytes(currentFolder.ToString())); objectPath = await _fileChooser.SaveFileAsync(parentWindow, options.Title ?? string.Empty, chooserOptions); - var request = _desktopService.CreateRequest(objectPath); + var request = new OrgFreedesktopPortalRequest(_connection, "org.freedesktop.portal.Desktop", objectPath); var tsc = new TaskCompletionSource(); using var disposable = await request.WatchResponseAsync((e, x) => { @@ -113,7 +113,7 @@ namespace Avalonia.FreeDesktop }; var objectPath = await _fileChooser.OpenFileAsync(parentWindow, options.Title ?? string.Empty, chooserOptions); - var request = _desktopService.CreateRequest(objectPath); + var request = new OrgFreedesktopPortalRequest(_connection, "org.freedesktop.portal.Desktop", objectPath); var tsc = new TaskCompletionSource(); using var disposable = await request.WatchResponseAsync((e, x) => { diff --git a/src/Avalonia.FreeDesktop/DBusTrayIconImpl.cs b/src/Avalonia.FreeDesktop/DBusTrayIconImpl.cs index d6518f7246..215408a0e3 100644 --- a/src/Avalonia.FreeDesktop/DBusTrayIconImpl.cs +++ b/src/Avalonia.FreeDesktop/DBusTrayIconImpl.cs @@ -1,8 +1,6 @@ using System; -using System.Collections.Generic; using System.Diagnostics; using System.Linq; -using System.Threading.Tasks; using Avalonia.Controls.Platform; using Avalonia.Logging; using Avalonia.Platform; @@ -13,14 +11,15 @@ namespace Avalonia.FreeDesktop internal class DBusTrayIconImpl : ITrayIconImpl { private static int s_trayIconInstanceId; + public static readonly (int, int, byte[]) EmptyPixmap = (1, 1, new byte[] { 255, 0, 0, 0 }); private readonly ObjectPath _dbusMenuPath; private readonly Connection? _connection; - private readonly DBus? _dBus; + private readonly OrgFreedesktopDBus? _dBus; private IDisposable? _serviceWatchDisposable; private StatusNotifierItemDbusObj? _statusNotifierItemDbusObj; - private StatusNotifierWatcher? _statusNotifierWatcher; + private OrgKdeStatusNotifierWatcher? _statusNotifierWatcher; private (int, int, byte[]) _icon; private string? _sysTrayServiceName; @@ -48,7 +47,7 @@ namespace Avalonia.FreeDesktop IsActive = true; - _dBus = new DBusService(_connection, "org.freedesktop.DBus").CreateDBus("/org/freedesktop/DBus"); + _dBus = new OrgFreedesktopDBus(_connection, "org.freedesktop.DBus", "/org/freedesktop/DBus"); _dbusMenuPath = DBusMenuExporter.GenerateDBusMenuObjPath; MenuExporter = DBusMenuExporter.TryCreateDetachedNativeMenu(_dbusMenuPath, _connection); @@ -61,8 +60,7 @@ namespace Avalonia.FreeDesktop if (_connection is null || _isDisposed) return; - _statusNotifierWatcher = new StatusNotifierWatcherService(_connection, "org.kde.StatusNotifierWatcher") - .CreateStatusNotifierWatcher("/StatusNotifierWatcher"); + _statusNotifierWatcher = new OrgKdeStatusNotifierWatcher(_connection, "org.kde.StatusNotifierWatcher", "/StatusNotifierWatcher"); _serviceConnected = true; } @@ -72,7 +70,7 @@ namespace Avalonia.FreeDesktop if (!services.Contains("org.kde.StatusNotifierWatcher", StringComparer.Ordinal)) return; - _serviceWatchDisposable = await _dBus!.WatchNameOwnerChangedAsync((_, x) => OnNameChange(x.A2) ); + _serviceWatchDisposable = await _dBus!.WatchNameOwnerChangedAsync((_, x) => OnNameChange(x.Item2) ); var nameOwner = await _dBus.GetNameOwnerAsync("org.kde.StatusNotifierWatcher"); OnNameChange(nameOwner); } @@ -147,7 +145,7 @@ namespace Avalonia.FreeDesktop if (icon is null) { - _statusNotifierItemDbusObj?.SetIcon(StatusNotifierItemDbusObj.StatusNotifierItemProperties.EmptyPixmap); + _statusNotifierItemDbusObj?.SetIcon(EmptyPixmap); return; } @@ -210,27 +208,37 @@ namespace Avalonia.FreeDesktop /// /// Useful guide: https://web.archive.org/web/20210818173850/https://www.notmart.org/misc/statusnotifieritem/statusnotifieritem.html /// - internal class StatusNotifierItemDbusObj : IMethodHandler + internal class StatusNotifierItemDbusObj : OrgKdeStatusNotifierItem { private readonly Connection _connection; - private readonly StatusNotifierItemProperties _backingProperties; public StatusNotifierItemDbusObj(Connection connection, ObjectPath dbusMenuPath) { _connection = connection; - _backingProperties = new StatusNotifierItemProperties - { - Menu = dbusMenuPath, // Needs a dbus menu somehow - ToolTip = (string.Empty, Array.Empty<(int, int, byte[])>(), string.Empty, string.Empty) - }; - + BackingProperties.Menu = dbusMenuPath; + BackingProperties.ToolTip = (string.Empty, Array.Empty<(int, int, byte[])>(), string.Empty, string.Empty); + BackingProperties.IconName = string.Empty; + BackingProperties.AttentionIconName = string.Empty; + BackingProperties.AttentionIconPixmap = new []{ DBusTrayIconImpl.EmptyPixmap }; + BackingProperties.AttentionMovieName = string.Empty; + BackingProperties.IconThemePath = string.Empty; + BackingProperties.OverlayIconName = string.Empty; + BackingProperties.OverlayIconPixmap = new []{ DBusTrayIconImpl.EmptyPixmap }; InvalidateAll(); } - public string Path => "/StatusNotifierItem"; + public override string Path => "/StatusNotifierItem"; public event Action? ActivationDelegate; + protected override void OnContextMenu(int x, int y) { } + + protected override void OnActivate(int x, int y) => ActivationDelegate?.Invoke(); + + protected override void OnSecondaryActivate(int x, int y) { } + + protected override void OnScroll(int delta, string orientation) { } + public void InvalidateAll() { EmitVoidSignal("NewTitle"); @@ -238,12 +246,12 @@ namespace Avalonia.FreeDesktop EmitVoidSignal("NewAttentionIcon"); EmitVoidSignal("NewOverlayIcon"); EmitVoidSignal("NewToolTip"); - EmitStringSignal("NewStatus", _backingProperties.Status); + EmitStringSignal("NewStatus", BackingProperties.Status); } public void SetIcon((int, int, byte[]) dbusPixmap) { - _backingProperties.IconPixmap = new[] { dbusPixmap }; + BackingProperties.IconPixmap = new[] { dbusPixmap }; InvalidateAll(); } @@ -252,124 +260,14 @@ namespace Avalonia.FreeDesktop if (text is null) return; - _backingProperties.Id = text; - _backingProperties.Category = "ApplicationStatus"; - _backingProperties.Status = text; - _backingProperties.Title = text; - _backingProperties.ToolTip = (string.Empty, Array.Empty<(int, int, byte[])>(), text, string.Empty); + BackingProperties.Id = text; + BackingProperties.Category = "ApplicationStatus"; + BackingProperties.Status = text; + BackingProperties.Title = text; + BackingProperties.ToolTip = (string.Empty, Array.Empty<(int, int, byte[])>(), text, string.Empty); InvalidateAll(); } - public bool RunMethodHandlerSynchronously(Message message) => false; - - public ValueTask HandleMethodAsync(MethodContext context) - { - switch (context.Request.InterfaceAsString) - { - case "org.kde.StatusNotifierItem": - switch (context.Request.MemberAsString, context.Request.SignatureAsString) - { - case ("ContextMenu", "ii"): - break; - case ("Activate", "ii"): - ActivationDelegate?.Invoke(); - break; - case ("SecondaryActivate", "ii"): - break; - case ("Scroll", "is"): - break; - } - - break; - case "org.freedesktop.DBus.Properties": - switch (context.Request.MemberAsString, context.Request.SignatureAsString) - { - case ("Get", "ss"): - { - var reader = context.Request.GetBodyReader(); - _ = reader.ReadString(); - var member = reader.ReadString(); - switch (member) - { - case "Category": - { - using var writer = context.CreateReplyWriter("s"); - writer.WriteString(_backingProperties.Category); - context.Reply(writer.CreateMessage()); - break; - } - case "Id": - { - using var writer = context.CreateReplyWriter("s"); - writer.WriteString(_backingProperties.Id); - context.Reply(writer.CreateMessage()); - break; - } - case "Title": - { - using var writer = context.CreateReplyWriter("s"); - writer.WriteString(_backingProperties.Title); - context.Reply(writer.CreateMessage()); - break; - } - case "Status": - { - using var writer = context.CreateReplyWriter("s"); - writer.WriteString(_backingProperties.Status); - context.Reply(writer.CreateMessage()); - break; - } - case "Menu": - { - using var writer = context.CreateReplyWriter("o"); - writer.WriteObjectPath(_backingProperties.Menu); - context.Reply(writer.CreateMessage()); - break; - } - case "IconPixmap": - { - using var writer = context.CreateReplyWriter("a(iiay)"); - writer.WriteArray(_backingProperties.IconPixmap); - context.Reply(writer.CreateMessage()); - break; - } - case "ToolTip": - { - using var writer = context.CreateReplyWriter("(sa(iiay)ss)"); - writer.WriteStruct(_backingProperties.ToolTip); - context.Reply(writer.CreateMessage()); - break; - } - } - - break; - } - case ("GetAll", "s"): - { - var writer = context.CreateReplyWriter("a{sv}"); - var dict = new Dictionary - { - { "Category", _backingProperties.Category }, - { "Id", _backingProperties.Id }, - { "Title", _backingProperties.Title }, - { "Status", _backingProperties.Status }, - { "Menu", _backingProperties.Menu }, - { "IconPixmap", _backingProperties.IconPixmap }, - { "ToolTip", _backingProperties.ToolTip } - }; - - writer.WriteDictionary(dict); - context.Reply(writer.CreateMessage()); - break; - } - } - - break; - } - - return default; - } - private void EmitVoidSignal(string member) { using var writer = _connection.GetMessageWriter(); @@ -384,27 +282,5 @@ namespace Avalonia.FreeDesktop writer.WriteString(value); _connection.TrySendMessage(writer.CreateMessage()); } - - internal record StatusNotifierItemProperties - { - public string Category { get; set; } = string.Empty; - public string Id { get; set; } = string.Empty; - public string Title { get; set; } = string.Empty; - public string Status { get; set; } = string.Empty; - public int WindowId { get; set; } - public string? IconThemePath { get; set; } - public ObjectPath Menu { get; set; } - public bool ItemIsMenu { get; set; } - public string? IconName { get; set; } - public (int, int, byte[])[] IconPixmap { get; set; } = { EmptyPixmap }; - public string? OverlayIconName { get; set; } - public (int, int, byte[])[]? OverlayIconPixmap { get; set; } - public string? AttentionIconName { get; set; } - public (int, int, byte[])[]? AttentionIconPixmap { get; set; } - public string? AttentionMovieName { get; set; } - public (string, (int, int, byte[])[], string, string) ToolTip { get; set; } - - public static (int, int, byte[]) EmptyPixmap = (1, 1, new byte[] { 255, 0, 0, 0 }); - } } } diff --git a/src/Avalonia.FreeDesktop/FreeDesktopPortalDesktop.DBus.cs b/src/Avalonia.FreeDesktop/FreeDesktopPortalDesktop.DBus.cs deleted file mode 100644 index 23f1dcf0e7..0000000000 --- a/src/Avalonia.FreeDesktop/FreeDesktopPortalDesktop.DBus.cs +++ /dev/null @@ -1,938 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Runtime.InteropServices; -using System.Threading.Tasks; -using Tmds.DBus.Protocol; - -namespace Avalonia.FreeDesktop -{ - internal record NotificationProperties - { - public uint Version { get; set; } - } - - internal class Notification : DesktopObject - { - private const string Interface = "org.freedesktop.portal.Notification"; - - public Notification(DesktopService service, ObjectPath path) : base(service, path) { } - - public Task AddNotificationAsync(string id, Dictionary notification) - { - return Connection.CallMethodAsync(CreateMessage()); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - signature: "sa{sv}", - member: "AddNotification"); - writer.WriteString(id); - writer.WriteDictionary(notification); - return writer.CreateMessage(); - } - } - - public Task RemoveNotificationAsync(string id) - { - return Connection.CallMethodAsync(CreateMessage()); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - signature: "s", - member: "RemoveNotification"); - writer.WriteString(id); - return writer.CreateMessage(); - } - } - - public ValueTask WatchActionInvokedAsync(Action handler, - bool emitOnCapturedContext = true) - => WatchSignalAsync(Service.Destination, Interface, Path, "ActionInvoked", static (m, s) - => ReadMessage_ssav(m, (DesktopObject)s!), handler, emitOnCapturedContext); - - public Task SetVersionAsync(uint value) - { - return Connection.CallMethodAsync(CreateMessage()); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - "org.freedesktop.DBus.Properties", - signature: "ssv", - member: "Set"); - writer.WriteString(Interface); - writer.WriteString("version"); - writer.WriteSignature("u"); - writer.WriteUInt32(value); - return writer.CreateMessage(); - } - } - - public Task GetVersionAsync() - => Connection.CallMethodAsync(CreateGetPropertyMessage(Interface, "version"), static (m, s) - => ReadMessage_v_u(m, (DesktopObject)s!), this); - - public Task GetPropertiesAsync() - { - return Connection.CallMethodAsync(CreateGetAllPropertiesMessage(Interface), static (m, _) - => ReadMessage(m), this); - - static NotificationProperties ReadMessage(Message message) - { - var reader = message.GetBodyReader(); - return ReadProperties(ref reader); - } - } - - public ValueTask WatchPropertiesChangedAsync(Action> handler, - bool emitOnCapturedContext = true) - { - return base.WatchPropertiesChangedAsync(Interface, static (m, _) - => ReadMessage(m), handler, emitOnCapturedContext); - - static PropertyChanges ReadMessage(Message message) - { - var reader = message.GetBodyReader(); - reader.ReadString(); // interface - List changed = new(); - return new PropertyChanges(ReadProperties(ref reader, changed), changed.ToArray(), - ReadInvalidated(ref reader)); - } - - static string[] ReadInvalidated(ref Reader reader) - { - List? invalidated = null; - var headersEnd = reader.ReadArrayStart(DBusType.String); - while (reader.HasNext(headersEnd)) - { - invalidated ??= new List(); - var property = reader.ReadString(); - switch (property) - { - case "version": - invalidated.Add("Version"); - break; - } - } - - return invalidated?.ToArray() ?? Array.Empty(); - } - } - - private static NotificationProperties ReadProperties(ref Reader reader, ICollection? changedList = null) - { - var props = new NotificationProperties(); - var headersEnd = reader.ReadArrayStart(DBusType.Struct); - while (reader.HasNext(headersEnd)) - { - var property = reader.ReadString(); - switch (property) - { - case "version": - reader.ReadSignature("u"); - props.Version = reader.ReadUInt32(); - changedList?.Add("Version"); - break; - default: - reader.ReadVariant(); - break; - } - } - - return props; - } - } - - internal record OpenURIProperties - { - public uint Version { get; set; } - } - - internal class OpenURI : DesktopObject - { - private const string Interface = "org.freedesktop.portal.OpenURI"; - - public OpenURI(DesktopService service, ObjectPath path) : base(service, path) { } - - public Task OpenUriAsync(string parentWindow, string uri, Dictionary options) - { - return Connection.CallMethodAsync(CreateMessage(), static (m, s) => ReadMessage_o(m, (DesktopObject)s!), this); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - signature: "ssa{sv}", - member: "OpenURI"); - writer.WriteString(parentWindow); - writer.WriteString(uri); - writer.WriteDictionary(options); - return writer.CreateMessage(); - } - } - - public Task OpenFileAsync(string parentWindow, SafeHandle fd, Dictionary options) - { - return Connection.CallMethodAsync(CreateMessage(), static (m, s) => ReadMessage_o(m, (DesktopObject)s!), this); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - signature: "sha{sv}", - member: "OpenFile"); - writer.WriteString(parentWindow); - writer.WriteHandle(fd); - writer.WriteDictionary(options); - return writer.CreateMessage(); - } - } - - public Task OpenDirectoryAsync(string parentWindow, SafeHandle fd, Dictionary options) - { - return Connection.CallMethodAsync(CreateMessage(), static (m, s) => ReadMessage_o(m, (DesktopObject)s!), this); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - signature: "sha{sv}", - member: "OpenDirectory"); - writer.WriteString(parentWindow); - writer.WriteHandle(fd); - writer.WriteDictionary(options); - return writer.CreateMessage(); - } - } - - public Task SetVersionAsync(uint value) - { - return Connection.CallMethodAsync(CreateMessage()); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - "org.freedesktop.DBus.Properties", - signature: "ssv", - member: "Set"); - writer.WriteString(Interface); - writer.WriteString("version"); - writer.WriteSignature("u"); - writer.WriteUInt32(value); - return writer.CreateMessage(); - } - } - - public Task GetVersionAsync() - => Connection.CallMethodAsync(CreateGetPropertyMessage(Interface, "version"), static (m, s) - => ReadMessage_v_u(m, (DesktopObject)s!), this); - - public Task GetPropertiesAsync() - { - return Connection.CallMethodAsync(CreateGetAllPropertiesMessage(Interface), static (m, _) - => ReadMessage(m), this); - - static OpenURIProperties ReadMessage(Message message) - { - var reader = message.GetBodyReader(); - return ReadProperties(ref reader); - } - } - - public ValueTask WatchPropertiesChangedAsync(Action> handler, - bool emitOnCapturedContext = true) - { - return base.WatchPropertiesChangedAsync(Interface, static (m, _) - => ReadMessage(m), handler, emitOnCapturedContext); - - static PropertyChanges ReadMessage(Message message) - { - var reader = message.GetBodyReader(); - reader.ReadString(); // interface - List changed = new(); - return new PropertyChanges(ReadProperties(ref reader, changed), changed.ToArray(), ReadInvalidated(ref reader)); - } - - static string[] ReadInvalidated(ref Reader reader) - { - List? invalidated = null; - var headersEnd = reader.ReadArrayStart(DBusType.String); - while (reader.HasNext(headersEnd)) - { - invalidated ??= new List(); - var property = reader.ReadString(); - switch (property) - { - case "version": - invalidated.Add("Version"); - break; - } - } - - return invalidated?.ToArray() ?? Array.Empty(); - } - } - - private static OpenURIProperties ReadProperties(ref Reader reader, ICollection? changedList = null) - { - var props = new OpenURIProperties(); - var headersEnd = reader.ReadArrayStart(DBusType.Struct); - while (reader.HasNext(headersEnd)) - { - var property = reader.ReadString(); - switch (property) - { - case "version": - reader.ReadSignature("u"); - props.Version = reader.ReadUInt32(); - changedList?.Add("Version"); - break; - default: - reader.ReadVariant(); - break; - } - } - - return props; - } - } - - internal record DynamicLauncherProperties - { - public uint SupportedLauncherTypes { get; set; } - public uint Version { get; set; } - } - - internal class DynamicLauncher : DesktopObject - { - private const string Interface = "org.freedesktop.portal.DynamicLauncher"; - - public DynamicLauncher(DesktopService service, ObjectPath path) : base(service, path) { } - - public Task InstallAsync(string token, string desktopFileId, string desktopEntry, Dictionary options) - { - return Connection.CallMethodAsync(CreateMessage()); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - signature: "sssa{sv}", - member: "Install"); - writer.WriteString(token); - writer.WriteString(desktopFileId); - writer.WriteString(desktopEntry); - writer.WriteDictionary(options); - return writer.CreateMessage(); - } - } - - public Task PrepareInstallAsync(string parentWindow, string name, object iconV, Dictionary options) - { - return Connection.CallMethodAsync(CreateMessage(), static (m, s) => ReadMessage_o(m, (DesktopObject)s!), this); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - signature: "ssva{sv}", - member: "PrepareInstall"); - writer.WriteString(parentWindow); - writer.WriteString(name); - writer.WriteVariant(iconV); - writer.WriteDictionary(options); - return writer.CreateMessage(); - } - } - - public Task RequestInstallTokenAsync(string name, object iconV, Dictionary options) - { - return Connection.CallMethodAsync(CreateMessage(), static (m, s) - => ReadMessage_s(m, (DesktopObject)s!), this); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - signature: "sva{sv}", - member: "RequestInstallToken"); - writer.WriteString(name); - writer.WriteVariant(iconV); - writer.WriteDictionary(options); - return writer.CreateMessage(); - } - } - - public Task UninstallAsync(string desktopFileId, Dictionary options) - { - return Connection.CallMethodAsync(CreateMessage()); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - signature: "sa{sv}", - member: "Uninstall"); - writer.WriteString(desktopFileId); - writer.WriteDictionary(options); - return writer.CreateMessage(); - } - } - - public Task GetDesktopEntryAsync(string desktopFileId) - { - return Connection.CallMethodAsync(CreateMessage(), static (m, s) - => ReadMessage_s(m, (DesktopObject)s!), this); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - signature: "s", - member: "GetDesktopEntry"); - writer.WriteString(desktopFileId); - return writer.CreateMessage(); - } - } - - public Task<(object IconV, string IconFormat, uint IconSize)> GetIconAsync(string desktopFileId) - { - return Connection.CallMethodAsync(CreateMessage(), static (m, s) - => ReadMessage_vsu(m, (DesktopObject)s!), this); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - signature: "s", - member: "GetIcon"); - writer.WriteString(desktopFileId); - return writer.CreateMessage(); - } - } - - public Task LaunchAsync(string desktopFileId, Dictionary options) - { - return Connection.CallMethodAsync(CreateMessage()); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - signature: "sa{sv}", - member: "Launch"); - writer.WriteString(desktopFileId); - writer.WriteDictionary(options); - return writer.CreateMessage(); - } - } - - public Task SetSupportedLauncherTypesAsync(uint value) - { - return Connection.CallMethodAsync(CreateMessage()); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - "org.freedesktop.DBus.Properties", - signature: "ssv", - member: "Set"); - writer.WriteString(Interface); - writer.WriteString("SupportedLauncherTypes"); - writer.WriteSignature("u"); - writer.WriteUInt32(value); - return writer.CreateMessage(); - } - } - - public Task SetVersionAsync(uint value) - { - return Connection.CallMethodAsync(CreateMessage()); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - "org.freedesktop.DBus.Properties", - signature: "ssv", - member: "Set"); - writer.WriteString(Interface); - writer.WriteString("version"); - writer.WriteSignature("u"); - writer.WriteUInt32(value); - return writer.CreateMessage(); - } - } - - public Task GetSupportedLauncherTypesAsync() - => Connection.CallMethodAsync(CreateGetPropertyMessage(Interface, "SupportedLauncherTypes"), static (m, s) - => ReadMessage_v_u(m, (DesktopObject)s!), this); - - public Task GetVersionAsync() - => Connection.CallMethodAsync(CreateGetPropertyMessage(Interface, "version"), static (m, s) - => ReadMessage_v_u(m, (DesktopObject)s!), this); - - public Task GetPropertiesAsync() - { - return Connection.CallMethodAsync(CreateGetAllPropertiesMessage(Interface), static (m, _) - => ReadMessage(m), this); - - static DynamicLauncherProperties ReadMessage(Message message) - { - var reader = message.GetBodyReader(); - return ReadProperties(ref reader); - } - } - - public ValueTask WatchPropertiesChangedAsync(Action> handler, - bool emitOnCapturedContext = true) - { - return base.WatchPropertiesChangedAsync(Interface, static (m, _) - => ReadMessage(m), handler, - emitOnCapturedContext); - - static PropertyChanges ReadMessage(Message message) - { - var reader = message.GetBodyReader(); - reader.ReadString(); // interface - List changed = new(); - return new PropertyChanges(ReadProperties(ref reader, changed), changed.ToArray(), - ReadInvalidated(ref reader)); - } - - static string[] ReadInvalidated(ref Reader reader) - { - List? invalidated = null; - var headersEnd = reader.ReadArrayStart(DBusType.String); - while (reader.HasNext(headersEnd)) - { - invalidated ??= new List(); - var property = reader.ReadString(); - switch (property) - { - case "SupportedLauncherTypes": - invalidated.Add("SupportedLauncherTypes"); - break; - case "version": - invalidated.Add("Version"); - break; - } - } - - return invalidated?.ToArray() ?? Array.Empty(); - } - } - - private static DynamicLauncherProperties ReadProperties(ref Reader reader, ICollection? changedList = null) - { - var props = new DynamicLauncherProperties(); - var headersEnd = reader.ReadArrayStart(DBusType.Struct); - while (reader.HasNext(headersEnd)) - { - var property = reader.ReadString(); - switch (property) - { - case "SupportedLauncherTypes": - reader.ReadSignature("u"); - props.SupportedLauncherTypes = reader.ReadUInt32(); - changedList?.Add("SupportedLauncherTypes"); - break; - case "version": - reader.ReadSignature("u"); - props.Version = reader.ReadUInt32(); - changedList?.Add("Version"); - break; - default: - reader.ReadVariant(); - break; - } - } - - return props; - } - } - - internal record FileChooserProperties - { - public uint Version { get; set; } - } - - internal class FileChooser : DesktopObject - { - private const string Interface = "org.freedesktop.portal.FileChooser"; - - public FileChooser(DesktopService service, ObjectPath path) : base(service, path) { } - - public Task OpenFileAsync(string parentWindow, string title, Dictionary options) - { - return Connection.CallMethodAsync(CreateMessage(), static (m, s) => ReadMessage_o(m, (DesktopObject)s!), this); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - signature: "ssa{sv}", - member: "OpenFile"); - writer.WriteString(parentWindow); - writer.WriteString(title); - writer.WriteDictionary(options); - return writer.CreateMessage(); - } - } - - public Task SaveFileAsync(string parentWindow, string title, Dictionary options) - { - return Connection.CallMethodAsync(CreateMessage(), static (m, s) => ReadMessage_o(m, (DesktopObject)s!), this); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - signature: "ssa{sv}", - member: "SaveFile"); - writer.WriteString(parentWindow); - writer.WriteString(title); - writer.WriteDictionary(options); - return writer.CreateMessage(); - } - } - - public Task SaveFilesAsync(string parentWindow, string title, Dictionary options) - { - return Connection.CallMethodAsync(CreateMessage(), static (m, s) => ReadMessage_o(m, (DesktopObject)s!), this); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - signature: "ssa{sv}", - member: "SaveFiles"); - writer.WriteString(parentWindow); - writer.WriteString(title); - writer.WriteDictionary(options); - return writer.CreateMessage(); - } - } - - public Task SetVersionAsync(uint value) - { - return Connection.CallMethodAsync(CreateMessage()); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - "org.freedesktop.DBus.Properties", - signature: "ssv", - member: "Set"); - writer.WriteString(Interface); - writer.WriteString("version"); - writer.WriteSignature("u"); - writer.WriteUInt32(value); - return writer.CreateMessage(); - } - } - - public Task GetVersionAsync() - => Connection.CallMethodAsync(CreateGetPropertyMessage(Interface, "version"), static (m, s) - => ReadMessage_v_u(m, (DesktopObject)s!), this); - - public Task GetPropertiesAsync() - { - return Connection.CallMethodAsync(CreateGetAllPropertiesMessage(Interface), static (m, _) - => ReadMessage(m), this); - - static FileChooserProperties ReadMessage(Message message) - { - var reader = message.GetBodyReader(); - return ReadProperties(ref reader); - } - } - - public ValueTask WatchPropertiesChangedAsync(Action> handler, - bool emitOnCapturedContext = true) - { - return base.WatchPropertiesChangedAsync(Interface, static (m, _) - => ReadMessage(m), handler, emitOnCapturedContext); - - static PropertyChanges ReadMessage(Message message) - { - var reader = message.GetBodyReader(); - reader.ReadString(); // interface - List changed = new(); - return new PropertyChanges(ReadProperties(ref reader, changed), changed.ToArray(), - ReadInvalidated(ref reader)); - } - - static string[] ReadInvalidated(ref Reader reader) - { - List? invalidated = null; - var headersEnd = reader.ReadArrayStart(DBusType.String); - while (reader.HasNext(headersEnd)) - { - invalidated ??= new List(); - var property = reader.ReadString(); - switch (property) - { - case "version": - invalidated.Add("Version"); - break; - } - } - - return invalidated?.ToArray() ?? Array.Empty(); - } - } - - private static FileChooserProperties ReadProperties(ref Reader reader, ICollection? changedList = null) - { - var props = new FileChooserProperties(); - var headersEnd = reader.ReadArrayStart(DBusType.Struct); - while (reader.HasNext(headersEnd)) - { - var property = reader.ReadString(); - switch (property) - { - case "version": - reader.ReadSignature("u"); - props.Version = reader.ReadUInt32(); - changedList?.Add("Version"); - break; - default: - reader.ReadVariant(); - break; - } - } - - return props; - } - } - - internal class Request : DesktopObject - { - private const string Interface = "org.freedesktop.portal.Request"; - - public Request(DesktopService service, ObjectPath path) : base(service, path) { } - - public Task CloseAsync() - { - return Connection.CallMethodAsync(CreateMessage()); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - "Close"); - return writer.CreateMessage(); - } - } - - public ValueTask WatchResponseAsync(Action results)> handler, bool emitOnCapturedContext = true) - => WatchSignalAsync(Service.Destination, Interface, Path, "Response", - static (m, s) => ReadMessage_uaesv(m, (DesktopObject)s!), handler, emitOnCapturedContext); - } - - internal class DesktopService - { - public DesktopService(Connection connection, string destination) - => (Connection, Destination) = (connection, destination); - - public Connection Connection { get; } - public string Destination { get; } - public Notification CreateNotification(string path) => new(this, path); - public OpenURI CreateOpenUri(string path) => new(this, path); - public DynamicLauncher CreateDynamicLauncher(string path) => new(this, path); - public FileChooser CreateFileChooser(string path) => new(this, path); - public Request CreateRequest(string path) => new(this, path); - } - - internal class DesktopObject - { - protected DesktopObject(DesktopService service, ObjectPath path) - => (Service, Path) = (service, path); - - protected DesktopService Service { get; } - protected ObjectPath Path { get; } - protected Connection Connection => Service.Connection; - - protected MessageBuffer CreateGetPropertyMessage(string @interface, string property) - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - "org.freedesktop.DBus.Properties", - signature: "ss", - member: "Get"); - writer.WriteString(@interface); - writer.WriteString(property); - return writer.CreateMessage(); - } - - protected MessageBuffer CreateGetAllPropertiesMessage(string @interface) - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - "org.freedesktop.DBus.Properties", - signature: "s", - member: "GetAll"); - writer.WriteString(@interface); - return writer.CreateMessage(); - } - - protected ValueTask WatchPropertiesChangedAsync(string @interface, - MessageValueReader> reader, Action> handler, - bool emitOnCapturedContext) - { - var rule = new MatchRule - { - Type = MessageType.Signal, - Sender = Service.Destination, - Path = Path, - Interface = "org.freedesktop.DBus.Properties", - Member = "PropertiesChanged", - Arg0 = @interface - }; - return Connection.AddMatchAsync(rule, reader, static (ex, changes, _, hs) - => ((Action>)hs!).Invoke(ex, changes), this, handler, emitOnCapturedContext); - } - - protected ValueTask WatchSignalAsync(string sender, string @interface, ObjectPath path, string signal, - MessageValueReader reader, Action handler, bool emitOnCapturedContext) - { - var rule = new MatchRule - { - Type = MessageType.Signal, - Sender = sender, - Path = path, - Member = signal, - Interface = @interface - }; - return Connection.AddMatchAsync(rule, reader, static (ex, arg, _, hs) => - ((Action)hs!).Invoke(ex, arg), this, handler, emitOnCapturedContext); - } - - protected static ObjectPath ReadMessage_o(Message message, DesktopObject _) - { - var reader = message.GetBodyReader(); - return reader.ReadObjectPath(); - } - - protected static uint ReadMessage_v_u(Message message, DesktopObject _) - { - var reader = message.GetBodyReader(); - reader.ReadSignature("u"); - return reader.ReadUInt32(); - } - - protected static (string, string, object[]) ReadMessage_ssav(Message message, DesktopObject _) - { - var reader = message.GetBodyReader(); - var arg0 = reader.ReadString(); - var arg1 = reader.ReadString(); - var arg2 = reader.ReadArray(); - return (arg0, arg1, arg2); - } - - protected static (uint, Dictionary) ReadMessage_uaesv(Message message, DesktopObject _) - { - var reader = message.GetBodyReader(); - var arg0 = reader.ReadUInt32(); - var arg1 = reader.ReadDictionary(); - return (arg0, arg1); - } - - protected static string ReadMessage_s(Message message, DesktopObject _) - { - var reader = message.GetBodyReader(); - return reader.ReadString(); - } - - protected static (object, string, uint) ReadMessage_vsu(Message message, DesktopObject _) - { - var reader = message.GetBodyReader(); - var arg0 = reader.ReadVariant(); - var arg1 = reader.ReadString(); - var arg2 = reader.ReadUInt32(); - return (arg0, arg1, arg2); - } - } - - internal class PropertyChanges - { - public PropertyChanges(TProperties properties, string[] invalidated, string[] changed) - => (Properties, Invalidated, Changed) = (properties, invalidated, changed); - - public TProperties Properties { get; } - public string[] Invalidated { get; } - public string[] Changed { get; } - public bool HasChanged(string property) => Array.IndexOf(Changed, property) != -1; - public bool IsInvalidated(string property) => Array.IndexOf(Invalidated, property) != -1; - } -} diff --git a/src/Avalonia.FreeDesktop/StatusNotifierWatcher.DBus.cs b/src/Avalonia.FreeDesktop/StatusNotifierWatcher.DBus.cs deleted file mode 100644 index 4e6ce3bd43..0000000000 --- a/src/Avalonia.FreeDesktop/StatusNotifierWatcher.DBus.cs +++ /dev/null @@ -1,350 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Threading.Tasks; -using Tmds.DBus.Protocol; - -namespace Avalonia.FreeDesktop -{ - internal record StatusNotifierWatcherProperties - { - public string[] RegisteredStatusNotifierItems { get; set; } = default!; - public bool IsStatusNotifierHostRegistered { get; set; } - public int ProtocolVersion { get; set; } - } - - internal class StatusNotifierWatcher : StatusNotifierWatcherObject - { - private const string Interface = "org.kde.StatusNotifierWatcher"; - - public StatusNotifierWatcher(StatusNotifierWatcherService service, ObjectPath path) : base(service, path) { } - - public Task RegisterStatusNotifierItemAsync(string service) - { - return Connection.CallMethodAsync(CreateMessage()); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - signature: "s", - member: "RegisterStatusNotifierItem"); - writer.WriteString(service); - return writer.CreateMessage(); - } - } - - public Task RegisterStatusNotifierHostAsync(string service) - { - return Connection.CallMethodAsync(CreateMessage()); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - Interface, - signature: "s", - member: "RegisterStatusNotifierHost"); - writer.WriteString(service); - return writer.CreateMessage(); - } - } - - public ValueTask WatchStatusNotifierItemRegisteredAsync(Action handler, bool emitOnCapturedContext = true) => - WatchSignalAsync(Service.Destination, Interface, Path, "StatusNotifierItemRegistered", static (m, s) => - ReadMessage_s(m, (StatusNotifierWatcherObject)s!), handler, emitOnCapturedContext); - - public ValueTask WatchStatusNotifierItemUnregisteredAsync(Action handler, bool emitOnCapturedContext = true) - => WatchSignalAsync(Service.Destination, Interface, Path, "StatusNotifierItemUnregistered", static (m, s) - => ReadMessage_s(m, (StatusNotifierWatcherObject)s!), handler, emitOnCapturedContext); - - public ValueTask WatchStatusNotifierHostRegisteredAsync(Action handler, bool emitOnCapturedContext = true) => - WatchSignalAsync(Service.Destination, Interface, Path, "StatusNotifierHostRegistered", handler, emitOnCapturedContext); - - public ValueTask WatchStatusNotifierHostUnregisteredAsync(Action handler, bool emitOnCapturedContext = true) => - WatchSignalAsync(Service.Destination, Interface, Path, "StatusNotifierHostUnregistered", handler, emitOnCapturedContext); - - public Task SetRegisteredStatusNotifierItemsAsync(string[] value) - { - return Connection.CallMethodAsync(CreateMessage()); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - "org.freedesktop.DBus.Properties", - signature: "ssv", - member: "Set"); - writer.WriteString(Interface); - writer.WriteString("RegisteredStatusNotifierItems"); - writer.WriteSignature("as"); - writer.WriteArray(value); - return writer.CreateMessage(); - } - } - - public Task SetIsStatusNotifierHostRegisteredAsync(bool value) - { - return Connection.CallMethodAsync(CreateMessage()); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - "org.freedesktop.DBus.Properties", - signature: "ssv", - member: "Set"); - writer.WriteString(Interface); - writer.WriteString("IsStatusNotifierHostRegistered"); - writer.WriteSignature("b"); - writer.WriteBool(value); - return writer.CreateMessage(); - } - } - - public Task SetProtocolVersionAsync(int value) - { - return Connection.CallMethodAsync(CreateMessage()); - - MessageBuffer CreateMessage() - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - "org.freedesktop.DBus.Properties", - signature: "ssv", - member: "Set"); - writer.WriteString(Interface); - writer.WriteString("ProtocolVersion"); - writer.WriteSignature("i"); - writer.WriteInt32(value); - return writer.CreateMessage(); - } - } - - public Task GetRegisteredStatusNotifierItemsAsync() => - Connection.CallMethodAsync(CreateGetPropertyMessage(Interface, "RegisteredStatusNotifierItems"), static (m, s) - => ReadMessage_v_as(m, (StatusNotifierWatcherObject)s!), this); - - public Task GetIsStatusNotifierHostRegisteredAsync() => - Connection.CallMethodAsync(CreateGetPropertyMessage(Interface, "IsStatusNotifierHostRegistered"), static (m, s) => - ReadMessage_v_b(m, (StatusNotifierWatcherObject)s!), this); - - public Task GetProtocolVersionAsync() => - Connection.CallMethodAsync(CreateGetPropertyMessage(Interface, "ProtocolVersion"), static (m, s) - => ReadMessage_v_i(m, (StatusNotifierWatcherObject)s!), this); - - public Task GetPropertiesAsync() - { - return Connection.CallMethodAsync(CreateGetAllPropertiesMessage(Interface), static (m, _) - => ReadMessage(m), this); - - static StatusNotifierWatcherProperties ReadMessage(Message message) - { - var reader = message.GetBodyReader(); - return ReadProperties(ref reader); - } - } - - public ValueTask WatchPropertiesChangedAsync(Action> handler, bool emitOnCapturedContext = true) - { - return base.WatchPropertiesChangedAsync(Interface, static (m, _) => ReadMessage(m), handler, emitOnCapturedContext); - - static PropertyChanges ReadMessage(Message message) - { - var reader = message.GetBodyReader(); - reader.ReadString(); // interface - List changed = new(); - return new PropertyChanges(ReadProperties(ref reader, changed), changed.ToArray(), - ReadInvalidated(ref reader)); - } - - static string[] ReadInvalidated(ref Reader reader) - { - List? invalidated = null; - var headersEnd = reader.ReadArrayStart(DBusType.String); - while (reader.HasNext(headersEnd)) - { - invalidated ??= new List(); - var property = reader.ReadString(); - switch (property) - { - case "RegisteredStatusNotifierItems": - invalidated.Add("RegisteredStatusNotifierItems"); - break; - case "IsStatusNotifierHostRegistered": - invalidated.Add("IsStatusNotifierHostRegistered"); - break; - case "ProtocolVersion": - invalidated.Add("ProtocolVersion"); - break; - } - } - - return invalidated?.ToArray() ?? Array.Empty(); - } - } - - private static StatusNotifierWatcherProperties ReadProperties(ref Reader reader, ICollection? changedList = null) - { - var props = new StatusNotifierWatcherProperties(); - var headersEnd = reader.ReadArrayStart(DBusType.Struct); - while (reader.HasNext(headersEnd)) - { - var property = reader.ReadString(); - switch (property) - { - case "RegisteredStatusNotifierItems": - reader.ReadSignature("as"); - props.RegisteredStatusNotifierItems = reader.ReadArray(); - changedList?.Add("RegisteredStatusNotifierItems"); - break; - case "IsStatusNotifierHostRegistered": - reader.ReadSignature("b"); - props.IsStatusNotifierHostRegistered = reader.ReadBool(); - changedList?.Add("IsStatusNotifierHostRegistered"); - break; - case "ProtocolVersion": - reader.ReadSignature("i"); - props.ProtocolVersion = reader.ReadInt32(); - changedList?.Add("ProtocolVersion"); - break; - default: - reader.ReadVariant(); - break; - } - } - - return props; - } - } - - internal class StatusNotifierWatcherService - { - public StatusNotifierWatcherService(Connection connection, string destination) => (Connection, Destination) = (connection, destination); - - public Connection Connection { get; } - public string Destination { get; } - - public StatusNotifierWatcher CreateStatusNotifierWatcher(string path) => new(this, path); - } - - internal class StatusNotifierWatcherObject - { - protected StatusNotifierWatcherObject(StatusNotifierWatcherService service, ObjectPath path) - { - (Service, Path) = (service, path); - } - - protected StatusNotifierWatcherService Service { get; } - protected ObjectPath Path { get; } - protected Connection Connection => Service.Connection; - - protected MessageBuffer CreateGetPropertyMessage(string @interface, string property) - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - "org.freedesktop.DBus.Properties", - signature: "ss", - member: "Get"); - writer.WriteString(@interface); - writer.WriteString(property); - return writer.CreateMessage(); - } - - protected MessageBuffer CreateGetAllPropertiesMessage(string @interface) - { - using var writer = Connection.GetMessageWriter(); - writer.WriteMethodCallHeader( - Service.Destination, - Path, - "org.freedesktop.DBus.Properties", - signature: "s", - member: "GetAll"); - writer.WriteString(@interface); - return writer.CreateMessage(); - } - - protected ValueTask WatchPropertiesChangedAsync(string @interface, MessageValueReader> reader, Action> handler, bool emitOnCapturedContext) - { - var rule = new MatchRule - { - Type = MessageType.Signal, - Sender = Service.Destination, - Path = Path, - Interface = "org.freedesktop.DBus.Properties", - Member = "PropertiesChanged", - Arg0 = @interface - }; - return Connection.AddMatchAsync(rule, reader, static (ex, changes, _, hs) => - ((Action>)hs!).Invoke(ex, changes), this, handler, emitOnCapturedContext); - } - - protected ValueTask WatchSignalAsync(string sender, string @interface, ObjectPath path, string signal, MessageValueReader reader, Action handler, bool emitOnCapturedContext) - { - var rule = new MatchRule - { - Type = MessageType.Signal, - Sender = sender, - Path = path, - Member = signal, - Interface = @interface - }; - return Connection.AddMatchAsync(rule, reader, static (ex, arg, _, hs) - => ((Action)hs!).Invoke(ex, arg), this, handler, emitOnCapturedContext); - } - - protected ValueTask WatchSignalAsync(string sender, string @interface, ObjectPath path, string signal, Action handler, bool emitOnCapturedContext) - { - var rule = new MatchRule - { - Type = MessageType.Signal, - Sender = sender, - Path = path, - Member = signal, - Interface = @interface - }; - return Connection.AddMatchAsync(rule, static (_, _) - => null!, static (Exception? ex, object _, object? _, object? hs) - => ((Action)hs!).Invoke(ex), this, handler, emitOnCapturedContext); - } - - protected static string ReadMessage_s(Message message, StatusNotifierWatcherObject _) - { - var reader = message.GetBodyReader(); - return reader.ReadString(); - } - - protected static string[] ReadMessage_v_as(Message message, StatusNotifierWatcherObject _) - { - var reader = message.GetBodyReader(); - reader.ReadSignature("as"); - return reader.ReadArray(); - } - - protected static bool ReadMessage_v_b(Message message, StatusNotifierWatcherObject _) - { - var reader = message.GetBodyReader(); - reader.ReadSignature("b"); - return reader.ReadBool(); - } - - protected static int ReadMessage_v_i(Message message, StatusNotifierWatcherObject _) - { - var reader = message.GetBodyReader(); - reader.ReadSignature("i"); - return reader.ReadInt32(); - } - } -} diff --git a/src/tools/Tmds.DBus.SourceGenerator b/src/tools/Tmds.DBus.SourceGenerator new file mode 160000 index 0000000000..1cf4faba30 --- /dev/null +++ b/src/tools/Tmds.DBus.SourceGenerator @@ -0,0 +1 @@ +Subproject commit 1cf4faba30741f799a33313a2842cf70eeb6c67e From ebc77f9ba1dbcc15ab98ae72b4f0f92ef808da42 Mon Sep 17 00:00:00 2001 From: affederaffe <68356204+affederaffe@users.noreply.github.com> Date: Fri, 6 Jan 2023 16:41:42 +0100 Subject: [PATCH 005/122] Add xml files --- src/Avalonia.FreeDesktop/DBusXml/DBus.xml | 89 ++++ src/Avalonia.FreeDesktop/DBusXml/DBusMenu.xml | 437 ++++++++++++++++++ .../DBusXml/StatusNotifierItem.xml | 96 ++++ .../DBusXml/StatusNotifierWatcher.xml | 42 ++ .../com.canonical.AppMenu.Registrar.xml | 56 +++ .../DBusXml/org.fcitx.Fcitx.InputContext.xml | 64 +++ .../DBusXml/org.fcitx.Fcitx.InputContext1.xml | 64 +++ .../DBusXml/org.fcitx.Fcitx.InputMethod.xml | 16 + .../DBusXml/org.fcitx.Fcitx.InputMethod1.xml | 12 + .../DBusXml/org.freedesktop.IBus.Portal.xml | 139 ++++++ .../org.freedesktop.portal.FileChooser.xml | 377 +++++++++++++++ .../org.freedesktop.portal.Request.xml | 86 ++++ 12 files changed, 1478 insertions(+) create mode 100644 src/Avalonia.FreeDesktop/DBusXml/DBus.xml create mode 100644 src/Avalonia.FreeDesktop/DBusXml/DBusMenu.xml create mode 100644 src/Avalonia.FreeDesktop/DBusXml/StatusNotifierItem.xml create mode 100644 src/Avalonia.FreeDesktop/DBusXml/StatusNotifierWatcher.xml create mode 100644 src/Avalonia.FreeDesktop/DBusXml/com.canonical.AppMenu.Registrar.xml create mode 100644 src/Avalonia.FreeDesktop/DBusXml/org.fcitx.Fcitx.InputContext.xml create mode 100644 src/Avalonia.FreeDesktop/DBusXml/org.fcitx.Fcitx.InputContext1.xml create mode 100644 src/Avalonia.FreeDesktop/DBusXml/org.fcitx.Fcitx.InputMethod.xml create mode 100644 src/Avalonia.FreeDesktop/DBusXml/org.fcitx.Fcitx.InputMethod1.xml create mode 100644 src/Avalonia.FreeDesktop/DBusXml/org.freedesktop.IBus.Portal.xml create mode 100644 src/Avalonia.FreeDesktop/DBusXml/org.freedesktop.portal.FileChooser.xml create mode 100644 src/Avalonia.FreeDesktop/DBusXml/org.freedesktop.portal.Request.xml diff --git a/src/Avalonia.FreeDesktop/DBusXml/DBus.xml b/src/Avalonia.FreeDesktop/DBusXml/DBus.xml new file mode 100644 index 0000000000..a7ecce70f2 --- /dev/null +++ b/src/Avalonia.FreeDesktop/DBusXml/DBus.xml @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Avalonia.FreeDesktop/DBusXml/DBusMenu.xml b/src/Avalonia.FreeDesktop/DBusXml/DBusMenu.xml new file mode 100644 index 0000000000..de6868cb3e --- /dev/null +++ b/src/Avalonia.FreeDesktop/DBusXml/DBusMenu.xml @@ -0,0 +1,437 @@ + + + + + + + + Name + Type + Description + Default Value + + + type + String + Can be one of: + - "standard": an item which can be clicked to trigger an action or + show another menu + - "separator": a separator + + Vendor specific types can be added by prefixing them with + "x--". + + "standard" + + + label + string + Text of the item, except that: + -# two consecutive underscore characters "__" are displayed as a + single underscore, + -# any remaining underscore characters are not displayed at all, + -# the first of those remaining underscore characters (unless it is + the last character in the string) indicates that the following + character is the access key. + + "" + + + enabled + boolean + Whether the item can be activated or not. + true + + + visible + boolean + True if the item is visible in the menu. + true + + + icon-name + string + Icon name of the item, following the freedesktop.org icon spec. + "" + + + icon-data + binary + PNG data of the icon. + Empty + + + shortcut + array of arrays of strings + The shortcut of the item. Each array represents the key press + in the list of keypresses. Each list of strings contains a list of + modifiers and then the key that is used. The modifier strings + allowed are: "Control", "Alt", "Shift" and "Super". + + - A simple shortcut like Ctrl+S is represented as: + [["Control", "S"]] + - A complex shortcut like Ctrl+Q, Alt+X is represented as: + [["Control", "Q"], ["Alt", "X"]] + Empty + + + toggle-type + string + + If the item can be toggled, this property should be set to: + - "checkmark": Item is an independent togglable item + - "radio": Item is part of a group where only one item can be + toggled at a time + - "": Item cannot be toggled + + "" + + + toggle-state + int + + Describe the current state of a "togglable" item. Can be one of: + - 0 = off + - 1 = on + - anything else = indeterminate + + Note: + The implementation does not itself handle ensuring that only one + item in a radio group is set to "on", or that a group does not have + "on" and "indeterminate" items simultaneously; maintaining this + policy is up to the toolkit wrappers. + + -1 + + + children-display + string + + If the menu item has children this property should be set to + "submenu". + + "" + + + disposition + string + + How the menuitem feels the information it's displaying to the + user should be presented. + - "normal" a standard menu item + - "informative" providing additional information to the user + - "warning" looking at potentially harmful results + - "alert" something bad could potentially happen + + "normal" + + + + Vendor specific properties can be added by prefixing them with + "x--". + ]]> + + + + + Provides the version of the DBusmenu API that this API is + implementing. + + + + + + Represents the way the text direction of the application. This + allows the server to handle mismatches intelligently. For left- + to-right the string is "ltr" for right-to-left it is "rtl". + + + + + + Tells if the menus are in a normal state or they believe that they + could use some attention. Cases for showing them would be if help + were referring to them or they accessors were being highlighted. + This property can have two values: "normal" in almost all cases and + "notice" when they should have a higher priority to be shown. + + + + + + A list of directories that should be used for finding icons using + the icon naming spec. Idealy there should only be one for the icon + theme, but additional ones are often added by applications for + app specific icons. + + + + + + + + Provides the layout and propertiers that are attached to the entries + that are in the layout. It only gives the items that are children + of the item that is specified in @a parentId. It will return all of the + properties or specific ones depending of the value in @a propertyNames. + + The format is recursive, where the second 'v' is in the same format + as the original 'a(ia{sv}av)'. Its content depends on the value + of @a recursionDepth. + + + The ID of the parent node for the layout. For + grabbing the layout from the root node use zero. + + + + The amount of levels of recursion to use. This affects the + content of the second variant array. + - -1: deliver all the items under the @a parentId. + - 0: no recursion, the array will be empty. + - n: array will contains items up to 'n' level depth. + + + + + The list of item properties we are + interested in. If there are no entries in the list all of + the properties will be sent. + + + + The revision number of the layout. For matching + with layoutUpdated signals. + + + The layout, as a recursive structure. + + + + + + Returns the list of items which are children of @a parentId. + + + + A list of ids that we should be finding the properties + on. If the list is empty, all menu items should be sent. + + + + + The list of item properties we are + interested in. If there are no entries in the list all of + the properties will be sent. + + + + + An array of property values. + An item in this area is represented as a struct following + this format: + @li id unsigned the item id + @li properties map(string => variant) the requested item properties + + + + + + + Get a signal property on a single item. This is not useful if you're + going to implement this interface, it should only be used if you're + debugging via a commandline tool. + + + the id of the item which received the event + + + the name of the property to get + + + the value of the property + + + + + -" + ]]> + + the id of the item which received the event + + + the type of event + + + event-specific data + + + The time that the event occured if available or the time the message was sent if not + + + + + + Used to pass a set of events as a single message for possibily several + different menuitems. This is done to optimize DBus traffic. + + + + An array of all the events that should be passed. This tuple should + match the parameters of the 'Event' signal. Which is roughly: + id, eventID, data and timestamp. + + + + + I list of menuitem IDs that couldn't be found. If none of the ones + in the list can be found, a DBus error is returned. + + + + + + + This is called by the applet to notify the application that it is about + to show the menu under the specified item. + + + + Which menu item represents the parent of the item about to be shown. + + + + + Whether this AboutToShow event should result in the menu being updated. + + + + + + + A function to tell several menus being shown that they are about to + be shown to the user. This is likely only useful for programitc purposes + so while the return values are returned, in general, the singular function + should be used in most user interacation scenarios. + + + + The IDs of the menu items who's submenus are being shown. + + + + + The IDs of the menus that need updates. Note: if no update information + is needed the DBus message should set the no reply flag. + + + + + I list of menuitem IDs that couldn't be found. If none of the ones + in the list can be found, a DBus error is returned. + + + + + + + + Triggered when there are lots of property updates across many items + so they all get grouped into a single dbus message. The format is + the ID of the item with a hashtable of names and values for those + properties. + + + + + + + Triggered by the application to notify display of a layout update, up to + revision + + + The revision of the layout that we're currently on + + + + If the layout update is only of a subtree, this is the + parent item for the entries that have changed. It is zero if + the whole layout should be considered invalid. + + + + + + The server is requesting that all clients displaying this + menu open it to the user. This would be for things like + hotkeys that when the user presses them the menu should + open and display itself to the user. + + + ID of the menu that should be activated + + + The time that the event occured + + + + + + + diff --git a/src/Avalonia.FreeDesktop/DBusXml/StatusNotifierItem.xml b/src/Avalonia.FreeDesktop/DBusXml/StatusNotifierItem.xml new file mode 100644 index 0000000000..7866a74639 --- /dev/null +++ b/src/Avalonia.FreeDesktop/DBusXml/StatusNotifierItem.xml @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Avalonia.FreeDesktop/DBusXml/StatusNotifierWatcher.xml b/src/Avalonia.FreeDesktop/DBusXml/StatusNotifierWatcher.xml new file mode 100644 index 0000000000..2eb1a7a0b8 --- /dev/null +++ b/src/Avalonia.FreeDesktop/DBusXml/StatusNotifierWatcher.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Avalonia.FreeDesktop/DBusXml/com.canonical.AppMenu.Registrar.xml b/src/Avalonia.FreeDesktop/DBusXml/com.canonical.AppMenu.Registrar.xml new file mode 100644 index 0000000000..42a71707b6 --- /dev/null +++ b/src/Avalonia.FreeDesktop/DBusXml/com.canonical.AppMenu.Registrar.xml @@ -0,0 +1,56 @@ + + + + + + An interface to register a menu from an application's window to be displayed in another + window.  This manages that association between XWindow Window IDs and the dbus + address and object that provides the menu using the dbusmenu dbus interface. + + + + + The XWindow ID of the window + + + The object on the dbus interface implementing the dbusmenu interface + + + + + A method to allow removing a window from the database. Windows will also be removed + when the client drops off DBus so this is not required. It is polite though. And + important for testing. + + + The XWindow ID of the window + + + + Gets the registered menu for a given window ID. + + The XWindow ID of the window to get + + + The address of the connection on DBus (e.g. :1.23 or org.example.service) + + + The path to the object which implements the com.canonical.dbusmenu interface. + + + + diff --git a/src/Avalonia.FreeDesktop/DBusXml/org.fcitx.Fcitx.InputContext.xml b/src/Avalonia.FreeDesktop/DBusXml/org.fcitx.Fcitx.InputContext.xml new file mode 100644 index 0000000000..b30d94cebf --- /dev/null +++ b/src/Avalonia.FreeDesktop/DBusXml/org.fcitx.Fcitx.InputContext.xml @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Avalonia.FreeDesktop/DBusXml/org.fcitx.Fcitx.InputContext1.xml b/src/Avalonia.FreeDesktop/DBusXml/org.fcitx.Fcitx.InputContext1.xml new file mode 100644 index 0000000000..6cb130d48a --- /dev/null +++ b/src/Avalonia.FreeDesktop/DBusXml/org.fcitx.Fcitx.InputContext1.xml @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Avalonia.FreeDesktop/DBusXml/org.fcitx.Fcitx.InputMethod.xml b/src/Avalonia.FreeDesktop/DBusXml/org.fcitx.Fcitx.InputMethod.xml new file mode 100644 index 0000000000..b8d60f0d37 --- /dev/null +++ b/src/Avalonia.FreeDesktop/DBusXml/org.fcitx.Fcitx.InputMethod.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + diff --git a/src/Avalonia.FreeDesktop/DBusXml/org.fcitx.Fcitx.InputMethod1.xml b/src/Avalonia.FreeDesktop/DBusXml/org.fcitx.Fcitx.InputMethod1.xml new file mode 100644 index 0000000000..0cc358a09a --- /dev/null +++ b/src/Avalonia.FreeDesktop/DBusXml/org.fcitx.Fcitx.InputMethod1.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/src/Avalonia.FreeDesktop/DBusXml/org.freedesktop.IBus.Portal.xml b/src/Avalonia.FreeDesktop/DBusXml/org.freedesktop.IBus.Portal.xml new file mode 100644 index 0000000000..376ad424d4 --- /dev/null +++ b/src/Avalonia.FreeDesktop/DBusXml/org.freedesktop.IBus.Portal.xml @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Avalonia.FreeDesktop/DBusXml/org.freedesktop.portal.FileChooser.xml b/src/Avalonia.FreeDesktop/DBusXml/org.freedesktop.portal.FileChooser.xml new file mode 100644 index 0000000000..2ae3546955 --- /dev/null +++ b/src/Avalonia.FreeDesktop/DBusXml/org.freedesktop.portal.FileChooser.xml @@ -0,0 +1,377 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Avalonia.FreeDesktop/DBusXml/org.freedesktop.portal.Request.xml b/src/Avalonia.FreeDesktop/DBusXml/org.freedesktop.portal.Request.xml new file mode 100644 index 0000000000..c1abb4eb7b --- /dev/null +++ b/src/Avalonia.FreeDesktop/DBusXml/org.freedesktop.portal.Request.xml @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + From 18737db8f4b0f486067069724e74b7b86b0bc8a7 Mon Sep 17 00:00:00 2001 From: affederaffe <68356204+affederaffe@users.noreply.github.com> Date: Mon, 9 Jan 2023 18:12:32 +0100 Subject: [PATCH 006/122] Use generated signal emit methods --- src/Avalonia.FreeDesktop/DBusMenuExporter.cs | 33 +++++++------------- src/Avalonia.FreeDesktop/DBusTrayIconImpl.cs | 33 ++++++-------------- src/tools/Tmds.DBus.SourceGenerator | 2 +- 3 files changed, 22 insertions(+), 46 deletions(-) diff --git a/src/Avalonia.FreeDesktop/DBusMenuExporter.cs b/src/Avalonia.FreeDesktop/DBusMenuExporter.cs index 77f5048cd3..cb6def056f 100644 --- a/src/Avalonia.FreeDesktop/DBusMenuExporter.cs +++ b/src/Avalonia.FreeDesktop/DBusMenuExporter.cs @@ -2,8 +2,7 @@ using System; using System.Collections.Generic; using System.Collections.Specialized; using System.IO; -using Avalonia.Reactive; -using System.Threading.Tasks; +using System.Linq; using Avalonia.Controls; using Avalonia.Controls.Platform; using Avalonia.Input; @@ -27,7 +26,6 @@ namespace Avalonia.FreeDesktop private class DBusMenuExporterImpl : ComCanonicalDbusmenu, ITopLevelNativeMenuExporter, IDisposable { - private readonly Connection _connection; private readonly Dictionary _idsToItems = new(); private readonly Dictionary _itemsToIds = new(); private readonly HashSet _menus = new(); @@ -42,7 +40,7 @@ namespace Avalonia.FreeDesktop public DBusMenuExporterImpl(Connection connection, IntPtr xid) { - _connection = connection; + Connection = connection; _xid = (uint)xid.ToInt32(); Path = GenerateDBusMenuObjPath; SetNativeMenu(new NativeMenu()); @@ -51,13 +49,15 @@ namespace Avalonia.FreeDesktop public DBusMenuExporterImpl(Connection connection, string path) { - _connection = connection; + Connection = connection; _appMenu = false; Path = path; SetNativeMenu(new NativeMenu()); Init(); } + protected override Connection Connection { get; } + public override string Path { get; } protected override (uint revision, (int, Dictionary, object[]) layout) OnGetLayout(int parentId, int recursionDepth, string[] propertyNames) @@ -79,12 +79,12 @@ namespace Avalonia.FreeDesktop protected override object OnGetProperty(int id, string name) => GetProperty(GetMenu(id), name) ?? 0; protected override void OnEvent(int id, string eventId, object data, uint timestamp) => - Dispatcher.UIThread.Post(() => HandleEvent(id, eventId, data, timestamp)); + Dispatcher.UIThread.Post(() => HandleEvent(id, eventId)); protected override int[] OnEventGroup((int, string, object, uint)[] events) { foreach (var e in events) - Dispatcher.UIThread.Post(() => HandleEvent(e.Item1, e.Item2, e.Item3, e.Item4)); + Dispatcher.UIThread.Post(() => HandleEvent(e.Item1, e.Item2)); return Array.Empty(); } @@ -95,13 +95,13 @@ namespace Avalonia.FreeDesktop private async void Init() { - _connection.AddMethodHandler(this); + Connection.AddMethodHandler(this); if (!_appMenu) return; - var services = await _connection.ListServicesAsync(); + var services = await Connection.ListServicesAsync(); if (!services.Contains("com.canonical.AppMenu.Registrar")) return; - _registrar = new ComCanonicalAppMenuRegistrar(_connection, "com.canonical.AppMenu.Registrar", "/com/canonical/AppMenu/Registrar"); + _registrar = new ComCanonicalAppMenuRegistrar(Connection, "com.canonical.AppMenu.Registrar", "/com/canonical/AppMenu/Registrar"); if (!_disposed) await _registrar.RegisterWindowAsync(_xid, Path); // It's not really important if this code succeeds, @@ -155,7 +155,7 @@ namespace Avalonia.FreeDesktop _idsToItems.Clear(); _itemsToIds.Clear(); _revision++; - EmitUIntIntSignal("LayoutUpdated", _revision, 0); + EmitLayoutUpdated(_revision, 0); } private void QueueReset() @@ -318,7 +318,7 @@ namespace Avalonia.FreeDesktop } - private void HandleEvent(int id, string eventId, object data, uint timestamp) + private void HandleEvent(int id, string eventId) { if (eventId == "clicked") { @@ -327,15 +327,6 @@ namespace Avalonia.FreeDesktop bridge.RaiseClicked(); } } - - private void EmitUIntIntSignal(string member, uint arg0, int arg1) - { - using var writer = _connection.GetMessageWriter(); - writer.WriteSignalHeader(null, Path, "com.canonical.dbusmenu", member, "ui"); - writer.WriteUInt32(arg0); - writer.WriteInt32(arg1); - _connection.TrySendMessage(writer.CreateMessage()); - } } } } diff --git a/src/Avalonia.FreeDesktop/DBusTrayIconImpl.cs b/src/Avalonia.FreeDesktop/DBusTrayIconImpl.cs index 4e9c495665..16b1a1d686 100644 --- a/src/Avalonia.FreeDesktop/DBusTrayIconImpl.cs +++ b/src/Avalonia.FreeDesktop/DBusTrayIconImpl.cs @@ -211,11 +211,9 @@ namespace Avalonia.FreeDesktop /// internal class StatusNotifierItemDbusObj : OrgKdeStatusNotifierItem { - private readonly Connection _connection; - public StatusNotifierItemDbusObj(Connection connection, ObjectPath dbusMenuPath) { - _connection = connection; + Connection = connection; BackingProperties.Menu = dbusMenuPath; BackingProperties.ToolTip = (string.Empty, Array.Empty<(int, int, byte[])>(), string.Empty, string.Empty); BackingProperties.IconName = string.Empty; @@ -228,6 +226,8 @@ namespace Avalonia.FreeDesktop InvalidateAll(); } + protected override Connection Connection { get; } + public override string Path => "/StatusNotifierItem"; public event Action? ActivationDelegate; @@ -242,12 +242,12 @@ namespace Avalonia.FreeDesktop public void InvalidateAll() { - EmitVoidSignal("NewTitle"); - EmitVoidSignal("NewIcon"); - EmitVoidSignal("NewAttentionIcon"); - EmitVoidSignal("NewOverlayIcon"); - EmitVoidSignal("NewToolTip"); - EmitStringSignal("NewStatus", BackingProperties.Status); + EmitNewTitle(); + EmitNewIcon(); + EmitNewAttentionIcon(); + EmitNewOverlayIcon(); + EmitNewToolTip(); + EmitNewStatus(BackingProperties.Status); } public void SetIcon((int, int, byte[]) dbusPixmap) @@ -268,20 +268,5 @@ namespace Avalonia.FreeDesktop BackingProperties.ToolTip = (string.Empty, Array.Empty<(int, int, byte[])>(), text, string.Empty); InvalidateAll(); } - - private void EmitVoidSignal(string member) - { - using var writer = _connection.GetMessageWriter(); - writer.WriteSignalHeader(null, Path, "org.kde.StatusNotifierItem", member); - _connection.TrySendMessage(writer.CreateMessage()); - } - - private void EmitStringSignal(string member, string value) - { - using var writer = _connection.GetMessageWriter(); - writer.WriteSignalHeader(null, Path, "org.kde.StatusNotifierItem", member, "s"); - writer.WriteString(value); - _connection.TrySendMessage(writer.CreateMessage()); - } } } diff --git a/src/tools/Tmds.DBus.SourceGenerator b/src/tools/Tmds.DBus.SourceGenerator index 1cf4faba30..6007f27d04 160000 --- a/src/tools/Tmds.DBus.SourceGenerator +++ b/src/tools/Tmds.DBus.SourceGenerator @@ -1 +1 @@ -Subproject commit 1cf4faba30741f799a33313a2842cf70eeb6c67e +Subproject commit 6007f27d04691f7c4c35722df3dc65bf4b558f18 From b570bfa1a9f0fad0af88f109788a8af05256f040 Mon Sep 17 00:00:00 2001 From: affederaffe <68356204+affederaffe@users.noreply.github.com> Date: Mon, 9 Jan 2023 23:12:09 +0100 Subject: [PATCH 007/122] Fix ObjectDisposedException on Dispose --- .../DBusIme/DBusTextInputMethodBase.cs | 7 +++++-- .../DBusIme/Fcitx/FcitxX11TextInputMethod.cs | 8 +++++++- .../DBusIme/IBus/IBusX11TextInputMethod.cs | 6 ++++++ src/Avalonia.FreeDesktop/DBusTrayIconImpl.cs | 1 - 4 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/Avalonia.FreeDesktop/DBusIme/DBusTextInputMethodBase.cs b/src/Avalonia.FreeDesktop/DBusIme/DBusTextInputMethodBase.cs index 08d2a0c219..9fd58402c6 100644 --- a/src/Avalonia.FreeDesktop/DBusIme/DBusTextInputMethodBase.cs +++ b/src/Avalonia.FreeDesktop/DBusIme/DBusTextInputMethodBase.cs @@ -60,7 +60,7 @@ namespace Avalonia.FreeDesktop.DBusIme { foreach (var name in _knownNames) { - var dbus = new OrgFreedesktopDBus(Connection, name, "/org/freedesktop/DBus"); + var dbus = new OrgFreedesktopDBus(Connection, "org.freedesktop.DBus", "/org/freedesktop/DBus"); _disposables.Add(await dbus.WatchNameOwnerChangedAsync(OnNameChange)); var nameOwner = await dbus.GetNameOwnerAsync(name); OnNameChange(null, (name, null, nameOwner)); @@ -74,6 +74,9 @@ namespace Avalonia.FreeDesktop.DBusIme private async void OnNameChange(Exception? e, (string ServiceName, string? OldOwner, string? NewOwner) args) { + if (e is not null) + return; + if (args.NewOwner is not null && _currentName is null) { _onlineNamesQueue.Enqueue(args.ServiceName); @@ -162,7 +165,7 @@ namespace Avalonia.FreeDesktop.DBusIme protected void AddDisposable(IDisposable? d) { - if(d is { }) + if (d is { }) _disposables.Add(d); } diff --git a/src/Avalonia.FreeDesktop/DBusIme/Fcitx/FcitxX11TextInputMethod.cs b/src/Avalonia.FreeDesktop/DBusIme/Fcitx/FcitxX11TextInputMethod.cs index 6b30c5424a..be88b94707 100644 --- a/src/Avalonia.FreeDesktop/DBusIme/Fcitx/FcitxX11TextInputMethod.cs +++ b/src/Avalonia.FreeDesktop/DBusIme/Fcitx/FcitxX11TextInputMethod.cs @@ -134,6 +134,12 @@ namespace Avalonia.FreeDesktop.DBusIme.Fcitx }); } - private void OnCommitString(Exception? e, string s) => FireCommit(s); + private void OnCommitString(Exception? e, string s) + { + if (e is not null) + return; + + FireCommit(s); + } } } diff --git a/src/Avalonia.FreeDesktop/DBusIme/IBus/IBusX11TextInputMethod.cs b/src/Avalonia.FreeDesktop/DBusIme/IBus/IBusX11TextInputMethod.cs index 4db0d95d3c..57bb10a885 100644 --- a/src/Avalonia.FreeDesktop/DBusIme/IBus/IBusX11TextInputMethod.cs +++ b/src/Avalonia.FreeDesktop/DBusIme/IBus/IBusX11TextInputMethod.cs @@ -28,6 +28,9 @@ namespace Avalonia.FreeDesktop.DBusIme.IBus private void OnForwardKey(Exception? e, (uint keyval, uint keycode, uint state) k) { + if (e is not null) + return; + var state = (IBusModifierMask)k.state; KeyModifiers mods = default; if (state.HasAllFlags(IBusModifierMask.ControlMask)) @@ -48,6 +51,9 @@ namespace Avalonia.FreeDesktop.DBusIme.IBus private void OnCommitText(Exception? e, object wtf) { + if (e is not null) + return; + // Hello darkness, my old friend if (wtf.GetType().GetField("Item3") is { } prop) { diff --git a/src/Avalonia.FreeDesktop/DBusTrayIconImpl.cs b/src/Avalonia.FreeDesktop/DBusTrayIconImpl.cs index 16b1a1d686..a34a9a0a84 100644 --- a/src/Avalonia.FreeDesktop/DBusTrayIconImpl.cs +++ b/src/Avalonia.FreeDesktop/DBusTrayIconImpl.cs @@ -1,6 +1,5 @@ using System; using System.Diagnostics; -using Avalonia.Reactive; using System.Linq; using Avalonia.Controls.Platform; using Avalonia.Logging; From 86b61050a0ec49fdefe225c79e01ea67af4deb0a Mon Sep 17 00:00:00 2001 From: affederaffe <68356204+affederaffe@users.noreply.github.com> Date: Thu, 19 Jan 2023 19:47:35 +0100 Subject: [PATCH 008/122] Use DBusVariantItem to manually encode/decode variants Note: Tray-Icon submenus don't work, needs investigation --- .../DBusIme/IBus/IBusX11TextInputMethod.cs | 13 +-- src/Avalonia.FreeDesktop/DBusInterfaces.cs | 3 +- src/Avalonia.FreeDesktop/DBusMenuExporter.cs | 72 +++++++------- .../DBusPlatformSettings.cs | 85 ++++++++-------- src/Avalonia.FreeDesktop/DBusSettings.cs | 16 --- src/Avalonia.FreeDesktop/DBusSystemDialog.cs | 74 +++++++------- .../org.freedesktop.portal.Settings.xml | 99 +++++++++++++++++++ src/Linux/Tmds.DBus | 2 +- src/tools/Tmds.DBus.SourceGenerator | 2 +- 9 files changed, 226 insertions(+), 140 deletions(-) delete mode 100644 src/Avalonia.FreeDesktop/DBusSettings.cs create mode 100644 src/Avalonia.FreeDesktop/DBusXml/org.freedesktop.portal.Settings.xml diff --git a/src/Avalonia.FreeDesktop/DBusIme/IBus/IBusX11TextInputMethod.cs b/src/Avalonia.FreeDesktop/DBusIme/IBus/IBusX11TextInputMethod.cs index 57bb10a885..59e9ecd1cf 100644 --- a/src/Avalonia.FreeDesktop/DBusIme/IBus/IBusX11TextInputMethod.cs +++ b/src/Avalonia.FreeDesktop/DBusIme/IBus/IBusX11TextInputMethod.cs @@ -4,6 +4,8 @@ using Avalonia.Input; using Avalonia.Input.Raw; using Avalonia.Input.TextInput; using Tmds.DBus.Protocol; +using Tmds.DBus.SourceGenerator; + namespace Avalonia.FreeDesktop.DBusIme.IBus { @@ -49,18 +51,13 @@ namespace Avalonia.FreeDesktop.DBusIme.IBus }); } - private void OnCommitText(Exception? e, object wtf) + private void OnCommitText(Exception? e, DBusVariantItem variantItem) { if (e is not null) return; - // Hello darkness, my old friend - if (wtf.GetType().GetField("Item3") is { } prop) - { - var text = prop.GetValue(wtf) as string; - if (!string.IsNullOrEmpty(text)) - FireCommit(text!); - } + if (variantItem.Value is DBusStructItem { Count: >= 3 } structItem && structItem[2] is DBusStringItem stringItem) + FireCommit(stringItem.Value); } protected override Task DisconnectAsync() => _service?.DestroyAsync() ?? Task.CompletedTask; diff --git a/src/Avalonia.FreeDesktop/DBusInterfaces.cs b/src/Avalonia.FreeDesktop/DBusInterfaces.cs index 3bece27ab1..fb2f0ca2f3 100644 --- a/src/Avalonia.FreeDesktop/DBusInterfaces.cs +++ b/src/Avalonia.FreeDesktop/DBusInterfaces.cs @@ -9,9 +9,10 @@ namespace Avalonia.FreeDesktop [DBusInterface("./DBusXml/org.fcitx.Fcitx.InputMethod.xml")] [DBusInterface("./DBusXml/org.fcitx.Fcitx.InputContext1.xml")] [DBusInterface("./DBusXml/org.fcitx.Fcitx.InputMethod1.xml")] + [DBusInterface("./DBusXml/org.freedesktop.IBus.Portal.xml")] [DBusInterface("./DBusXml/org.freedesktop.portal.FileChooser.xml")] [DBusInterface("./DBusXml/org.freedesktop.portal.Request.xml")] - [DBusInterface("./DBusXml/org.freedesktop.IBus.Portal.xml")] + [DBusInterface("./DBusXml/org.freedesktop.portal.Settings.xml")] [DBusHandler("./DBusXml/DBusMenu.xml")] [DBusHandler("./DBusXml/StatusNotifierItem.xml")] internal class DBusInterfaces { } diff --git a/src/Avalonia.FreeDesktop/DBusMenuExporter.cs b/src/Avalonia.FreeDesktop/DBusMenuExporter.cs index cb6def056f..1978dfba81 100644 --- a/src/Avalonia.FreeDesktop/DBusMenuExporter.cs +++ b/src/Avalonia.FreeDesktop/DBusMenuExporter.cs @@ -9,8 +9,7 @@ using Avalonia.Input; using Avalonia.Platform; using Avalonia.Threading; using Tmds.DBus.Protocol; - -#pragma warning disable 1998 +using Tmds.DBus.SourceGenerator; namespace Avalonia.FreeDesktop { @@ -60,7 +59,7 @@ namespace Avalonia.FreeDesktop public override string Path { get; } - protected override (uint revision, (int, Dictionary, object[]) layout) OnGetLayout(int parentId, int recursionDepth, string[] propertyNames) + protected override (uint revision, (int, Dictionary, DBusVariantItem[]) layout) OnGetLayout(int parentId, int recursionDepth, string[] propertyNames) { var menu = GetMenu(parentId); var layout = GetLayout(menu.item, menu.menu, recursionDepth, propertyNames); @@ -73,15 +72,15 @@ namespace Avalonia.FreeDesktop return (_revision, layout); } - protected override (int, Dictionary)[] OnGetGroupProperties(int[] ids, string[] propertyNames) => + protected override (int, Dictionary)[] OnGetGroupProperties(int[] ids, string[] propertyNames) => ids.Select(id => (id, GetProperties(GetMenu(id), propertyNames))).ToArray(); - protected override object OnGetProperty(int id, string name) => GetProperty(GetMenu(id), name) ?? 0; + protected override DBusVariantItem OnGetProperty(int id, string name) => GetProperty(GetMenu(id), name) ?? new DBusVariantItem("i", new DBusInt32Item(0)); - protected override void OnEvent(int id, string eventId, object data, uint timestamp) => + protected override void OnEvent(int id, string eventId, DBusVariantItem data, uint timestamp) => Dispatcher.UIThread.Post(() => HandleEvent(id, eventId)); - protected override int[] OnEventGroup((int, string, object, uint)[] events) + protected override int[] OnEventGroup((int, string, DBusVariantItem, uint)[] events) { foreach (var e in events) Dispatcher.UIThread.Post(() => HandleEvent(e.Item1, e.Item2)); @@ -115,14 +114,14 @@ namespace Avalonia.FreeDesktop if (_disposed) return; _disposed = true; - // Fire and forget - _registrar?.UnregisterWindowAsync(_xid); + _ = _registrar?.UnregisterWindowAsync(_xid); } public bool IsNativeMenuExported { get; private set; } + public event EventHandler? OnIsNativeMenuExportedChanged; public void SetNativeMenu(NativeMenu? menu) @@ -203,31 +202,31 @@ namespace Avalonia.FreeDesktop QueueReset(); } - private static readonly string[] AllProperties = { + private static readonly string[] s_allProperties = { "type", "label", "enabled", "visible", "shortcut", "toggle-type", "children-display", "toggle-state", "icon-data" }; - private object? GetProperty((NativeMenuItemBase? item, NativeMenu? menu) i, string name) + private DBusVariantItem? GetProperty((NativeMenuItemBase? item, NativeMenu? menu) i, string name) { var (it, menu) = i; if (it is NativeMenuItemSeparator) { if (name == "type") - return "separator"; + return new DBusVariantItem("s", new DBusStringItem("separator")); } else if (it is NativeMenuItem item) { if (name == "type") return null; if (name == "label") - return item.Header ?? ""; + return new DBusVariantItem("s", new DBusStringItem(item.Header ?? "")); if (name == "enabled") { if (item.Menu is not null && item.Menu.Items.Count == 0) - return false; + return new DBusVariantItem("b", new DBusBoolItem(false)); if (!item.IsEnabled) - return false; + return new DBusVariantItem("b", new DBusBoolItem(false)); return null; } if (name == "shortcut") @@ -236,30 +235,30 @@ namespace Avalonia.FreeDesktop return null; if (item.Gesture.KeyModifiers == 0) return null; - var lst = new List(); + var lst = new List(); var mod = item.Gesture; if (mod.KeyModifiers.HasAllFlags(KeyModifiers.Control)) - lst.Add("Control"); + lst.Add(new DBusStringItem("Control")); if (mod.KeyModifiers.HasAllFlags(KeyModifiers.Alt)) - lst.Add("Alt"); + lst.Add(new DBusStringItem("Alt")); if (mod.KeyModifiers.HasAllFlags(KeyModifiers.Shift)) - lst.Add("Shift"); + lst.Add(new DBusStringItem("Shift")); if (mod.KeyModifiers.HasAllFlags(KeyModifiers.Meta)) - lst.Add("Super"); - lst.Add(item.Gesture.Key.ToString()); - return new[] { lst.ToArray() }; + lst.Add(new DBusStringItem("Super")); + lst.Add(new DBusStringItem(item.Gesture.Key.ToString())); + return new DBusVariantItem("aas", new DBusArrayItem(DBusType.Array, new[] { new DBusArrayItem(DBusType.String, lst) })); } if (name == "toggle-type") { if (item.ToggleType == NativeMenuItemToggleType.CheckBox) - return "checkmark"; + return new DBusVariantItem("s", new DBusStringItem("checkmark")); if (item.ToggleType == NativeMenuItemToggleType.Radio) - return "radio"; + return new DBusVariantItem("s", new DBusStringItem("radio")); } if (name == "toggle-state" && item.ToggleType != NativeMenuItemToggleType.None) - return item.IsChecked ? 1 : 0; + return new DBusVariantItem("i", new DBusInt32Item(item.IsChecked ? 1 : 0)); if (name == "icon-data") { @@ -273,23 +272,24 @@ namespace Avalonia.FreeDesktop using var ms = new MemoryStream(); icon.Save(ms); - return ms.ToArray(); + return new DBusVariantItem("ay", + new DBusArrayItem(DBusType.Byte, ms.ToArray().Select(static x => new DBusByteItem(x)))); } } } if (name == "children-display") - return menu is not null ? "submenu" : null; + return menu is not null ? new DBusVariantItem("s", new DBusStringItem("submenu")) : null; } return null; } - private Dictionary GetProperties((NativeMenuItemBase? item, NativeMenu? menu) i, string[] names) + private Dictionary GetProperties((NativeMenuItemBase? item, NativeMenu? menu) i, string[] names) { if (names.Length == 0) - names = AllProperties; - var properties = new Dictionary(); + names = s_allProperties; + var properties = new Dictionary(); foreach (var n in names) { var v = GetProperty(i, n); @@ -300,17 +300,23 @@ namespace Avalonia.FreeDesktop return properties; } - private (int, Dictionary, object[]) GetLayout(NativeMenuItemBase? item, NativeMenu? menu, int depth, string[] propertyNames) + private (int, Dictionary, DBusVariantItem[]) GetLayout(NativeMenuItemBase? item, NativeMenu? menu, int depth, string[] propertyNames) { var id = item is null ? 0 : GetId(item); var props = GetProperties((item, menu), propertyNames); - var children = depth == 0 || menu is null ? Array.Empty() : new object[menu.Items.Count]; + var children = depth == 0 || menu is null ? Array.Empty() : new DBusVariantItem[menu.Items.Count]; if (menu is not null) { for (var c = 0; c < children.Length; c++) { var ch = menu.Items[c]; - children[c] = GetLayout(ch, (ch as NativeMenuItem)?.Menu, depth == -1 ? -1 : depth - 1, propertyNames); + var layout = GetLayout(ch, (ch as NativeMenuItem)?.Menu, depth == -1 ? -1 : depth - 1, propertyNames); + children[c] = new DBusVariantItem("(ia{sv}av)", new DBusStructItem(new DBusItem[] + { + new DBusInt32Item(layout.Item1), + new DBusArrayItem(DBusType.DictEntry, layout.Item2.Select(static x => new DBusDictEntryItem(new DBusStringItem(x.Key), x.Value))), + new DBusArrayItem(DBusType.Variant, layout.Item3) + })); } } diff --git a/src/Avalonia.FreeDesktop/DBusPlatformSettings.cs b/src/Avalonia.FreeDesktop/DBusPlatformSettings.cs index 039fc7c088..a25bb68458 100644 --- a/src/Avalonia.FreeDesktop/DBusPlatformSettings.cs +++ b/src/Avalonia.FreeDesktop/DBusPlatformSettings.cs @@ -2,44 +2,35 @@ using System.Threading.Tasks; using Avalonia.Logging; using Avalonia.Platform; +using Tmds.DBus.SourceGenerator; -namespace Avalonia.FreeDesktop; - -internal class DBusPlatformSettings : DefaultPlatformSettings +namespace Avalonia.FreeDesktop { - private readonly IDBusSettings? _settings; - private PlatformColorValues? _lastColorValues; - - public DBusPlatformSettings() + internal class DBusPlatformSettings : DefaultPlatformSettings { - _settings = DBusHelper.TryInitialize()? - .CreateProxy("org.freedesktop.portal.Desktop", "/org/freedesktop/portal/desktop"); + private readonly OrgFreedesktopPortalSettings? _settings; + private PlatformColorValues? _lastColorValues; - if (_settings is not null) + public DBusPlatformSettings() { - _ = _settings.WatchSettingChangedAsync(SettingsChangedHandler); + if (DBusHelper.Connection is null) + return; - _ = TryGetInitialValue(); + _settings = new OrgFreedesktopPortalSettings(DBusHelper.Connection, "org.freedesktop.portal.Desktop", "/org/freedesktop/portal/desktop"); + _ = _settings.WatchSettingChangedAsync(SettingsChangedHandler); + _ = TryGetInitialValueAsync(); } - } - - public override PlatformColorValues GetColorValues() - { - return _lastColorValues ?? base.GetColorValues(); - } - private async Task TryGetInitialValue() - { - var colorSchemeTask = _settings!.ReadAsync("org.freedesktop.appearance", "color-scheme"); - if (colorSchemeTask.Status == TaskStatus.RanToCompletion) + public override PlatformColorValues GetColorValues() { - _lastColorValues = GetColorValuesFromSetting(colorSchemeTask.Result); + return _lastColorValues ?? base.GetColorValues(); } - else + + private async Task TryGetInitialValueAsync() { try { - var value = await colorSchemeTask; + var value = await _settings!.ReadAsync("org.freedesktop.appearance", "color-scheme"); _lastColorValues = GetColorValuesFromSetting(value); OnColorValuesChanged(_lastColorValues); } @@ -49,29 +40,31 @@ internal class DBusPlatformSettings : DefaultPlatformSettings Logger.TryGet(LogEventLevel.Error, LogArea.FreeDesktopPlatform)?.Log(this, "Unable to get setting value", ex); } } - } - - private void SettingsChangedHandler((string @namespace, string key, object value) tuple) - { - if (tuple.@namespace == "org.freedesktop.appearance" - && tuple.key == "color-scheme") + + private void SettingsChangedHandler(Exception? exception, (string @namespace, string key, DBusVariantItem value) valueTuple) { - /* - 0: No preference - 1: Prefer dark appearance - 2: Prefer light appearance - */ - _lastColorValues = GetColorValuesFromSetting(tuple.value); - OnColorValuesChanged(_lastColorValues); + if (exception is not null) + return; + + if (valueTuple is ("org.freedesktop.appearance", "color-scheme", { } value)) + { + /* + 0: No preference + 1: Prefer dark appearance + 2: Prefer light appearance + */ + _lastColorValues = GetColorValuesFromSetting(value); + OnColorValuesChanged(_lastColorValues); + } } - } - - private static PlatformColorValues GetColorValuesFromSetting(object value) - { - var isDark = value?.ToString() == "1"; - return new PlatformColorValues + + private static PlatformColorValues GetColorValuesFromSetting(DBusVariantItem value) { - ThemeVariant = isDark ? PlatformThemeVariant.Dark : PlatformThemeVariant.Light - }; + var isDark = ((value.Value as DBusVariantItem)!.Value as DBusUInt32Item)!.Value == 1; + return new PlatformColorValues + { + ThemeVariant = isDark ? PlatformThemeVariant.Dark : PlatformThemeVariant.Light + }; + } } } diff --git a/src/Avalonia.FreeDesktop/DBusSettings.cs b/src/Avalonia.FreeDesktop/DBusSettings.cs deleted file mode 100644 index 05911981c7..0000000000 --- a/src/Avalonia.FreeDesktop/DBusSettings.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Threading.Tasks; -using Tmds.DBus; - -namespace Avalonia.FreeDesktop; - -[DBusInterface("org.freedesktop.portal.Settings")] -internal interface IDBusSettings : IDBusObject -{ - Task<(string @namespace, IDictionary)> ReadAllAsync(string[] namespaces); - - Task ReadAsync(string @namespace, string key); - - Task WatchSettingChangedAsync(Action<(string @namespace, string key, object value)> handler, Action? onError = null); -} diff --git a/src/Avalonia.FreeDesktop/DBusSystemDialog.cs b/src/Avalonia.FreeDesktop/DBusSystemDialog.cs index 81233f3b2f..763480a33d 100644 --- a/src/Avalonia.FreeDesktop/DBusSystemDialog.cs +++ b/src/Avalonia.FreeDesktop/DBusSystemDialog.cs @@ -2,12 +2,12 @@ using System; using System.Collections.Generic; using System.IO; using System.Linq; -using System.Text; using System.Threading.Tasks; using Avalonia.Platform; using Avalonia.Platform.Storage; using Avalonia.Platform.Storage.FileIO; using Tmds.DBus.Protocol; +using Tmds.DBus.SourceGenerator; namespace Avalonia.FreeDesktop { @@ -44,12 +44,12 @@ namespace Avalonia.FreeDesktop { var parentWindow = $"x11:{_handle.Handle:X}"; ObjectPath objectPath; - var chooserOptions = new Dictionary(); + var chooserOptions = new Dictionary(); var filters = ParseFilters(options.FileTypeFilter); - if (filters.Any()) + if (filters is not null) chooserOptions.Add("filters", filters); - chooserOptions.Add("multiple", options.AllowMultiple); + chooserOptions.Add("multiple", new DBusVariantItem("b", new DBusBoolItem(options.AllowMultiple))); objectPath = await _fileChooser.OpenFileAsync(parentWindow, options.Title ?? string.Empty, chooserOptions); @@ -58,9 +58,8 @@ namespace Avalonia.FreeDesktop using var disposable = await request.WatchResponseAsync((e, x) => { if (e is not null) - tsc.TrySetException(e); - else - tsc.TrySetResult(x.results["uris"] as string[]); + return; + tsc.TrySetResult((x.results["uris"].Value as DBusArrayItem)?.Select(static y => (y as DBusStringItem)!.Value).ToArray()); }); var uris = await tsc.Task ?? Array.Empty(); @@ -71,15 +70,15 @@ namespace Avalonia.FreeDesktop { var parentWindow = $"x11:{_handle.Handle:X}"; ObjectPath objectPath; - var chooserOptions = new Dictionary(); + var chooserOptions = new Dictionary(); var filters = ParseFilters(options.FileTypeChoices); - if (filters.Any()) + if (filters is not null) chooserOptions.Add("filters", filters); if (options.SuggestedFileName is { } currentName) - chooserOptions.Add("current_name", currentName); + chooserOptions.Add("current_name", new DBusVariantItem("s", new DBusStringItem(currentName))); if (options.SuggestedStartLocation?.TryGetUri(out var currentFolder) == true) - chooserOptions.Add("current_folder", Encoding.UTF8.GetBytes(currentFolder.ToString())); + chooserOptions.Add("current_folder", new DBusVariantItem("s", new DBusStringItem(currentFolder.ToString()))); objectPath = await _fileChooser.SaveFileAsync(parentWindow, options.Title ?? string.Empty, chooserOptions); var request = new OrgFreedesktopPortalRequest(_connection, "org.freedesktop.portal.Desktop", objectPath); @@ -87,9 +86,8 @@ namespace Avalonia.FreeDesktop using var disposable = await request.WatchResponseAsync((e, x) => { if (e is not null) - tsc.TrySetException(e); - else - tsc.TrySetResult(x.results["uris"] as string[]); + return; + tsc.TrySetResult((x.results["uris"].Value as DBusArrayItem)?.Select(static y => (y as DBusStringItem)!.Value).ToArray()); }); var uris = await tsc.Task; @@ -106,10 +104,10 @@ namespace Avalonia.FreeDesktop public override async Task> OpenFolderPickerAsync(FolderPickerOpenOptions options) { var parentWindow = $"x11:{_handle.Handle:X}"; - var chooserOptions = new Dictionary + var chooserOptions = new Dictionary { - { "directory", true }, - { "multiple", options.AllowMultiple } + { "directory", new DBusVariantItem("b", new DBusBoolItem(true)) }, + { "multiple", new DBusVariantItem("b", new DBusBoolItem(options.AllowMultiple)) } }; var objectPath = await _fileChooser.OpenFileAsync(parentWindow, options.Title ?? string.Empty, chooserOptions); @@ -118,9 +116,8 @@ namespace Avalonia.FreeDesktop using var disposable = await request.WatchResponseAsync((e, x) => { if (e is not null) - tsc.TrySetException(e); - else - tsc.TrySetResult(x.results["uris"] as string[]); + return; + tsc.TrySetResult((x.results["uris"].Value as DBusArrayItem)?.Select(static y => (y as DBusStringItem)!.Value).ToArray()); }); var uris = await tsc.Task ?? Array.Empty(); @@ -131,29 +128,38 @@ namespace Avalonia.FreeDesktop .Select(static path => new BclStorageFolder(new DirectoryInfo(path))).ToList(); } - private static (string name, (uint style, string extension)[])[] ParseFilters(IReadOnlyList? fileTypes) + private static DBusVariantItem? ParseFilters(IReadOnlyList? fileTypes) { + const uint GlobStyle = 0u; + const uint MimeStyle = 1u; + // Example: [('Images', [(0, '*.ico'), (1, 'image/png')]), ('Text', [(0, '*.txt')])] if (fileTypes is null) - return Array.Empty<(string name, (uint style, string extension)[])>(); + return null; + + var any = false; + var filters = new DBusArrayItem(DBusType.Struct, new List()); - var filters = new List<(string name, (uint style, string extension)[])>(); foreach (var fileType in fileTypes) { - const uint GlobStyle = 0u; - const uint MimeStyle = 1u; - - var extensions = Enumerable.Empty<(uint, string)>(); + var extensions = new List(); + if (fileType.Patterns?.Count > 0) + extensions.AddRange( + fileType.Patterns.Select(static pattern => + new DBusStructItem(new DBusItem[] { new DBusUInt32Item(GlobStyle), new DBusStringItem(pattern) }))); + else if (fileType.MimeTypes?.Count > 0) + extensions.AddRange( + fileType.MimeTypes.Select(static mimeType => + new DBusStructItem(new DBusItem[] { new DBusUInt32Item(MimeStyle), new DBusStringItem(mimeType) }))); + else + continue; - if (fileType.Patterns is not null) - extensions = extensions.Concat(fileType.Patterns.Select(static x => (globStyle: GlobStyle, x))); - else if (fileType.MimeTypes is not null) - extensions = extensions.Concat(fileType.MimeTypes.Select(static x => (mimeStyle: MimeStyle, x))); - if (extensions.Any()) - filters.Add((fileType.Name, extensions.ToArray())); + any = true; + filters.Add(new DBusStructItem( + new DBusItem[] { new DBusStringItem(fileType.Name), new DBusArrayItem(DBusType.Struct, extensions) })); } - return filters.ToArray(); + return any ? new DBusVariantItem("a(sa(us))", filters) : null; } } } diff --git a/src/Avalonia.FreeDesktop/DBusXml/org.freedesktop.portal.Settings.xml b/src/Avalonia.FreeDesktop/DBusXml/org.freedesktop.portal.Settings.xml new file mode 100644 index 0000000000..669997a3df --- /dev/null +++ b/src/Avalonia.FreeDesktop/DBusXml/org.freedesktop.portal.Settings.xml @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Linux/Tmds.DBus b/src/Linux/Tmds.DBus index bfca94ab05..e86bcf1bc2 160000 --- a/src/Linux/Tmds.DBus +++ b/src/Linux/Tmds.DBus @@ -1 +1 @@ -Subproject commit bfca94ab052683c7ccef51e4a036098f539cc676 +Subproject commit e86bcf1bc2d86338ab61663a4ae48dbc0bd7e02d diff --git a/src/tools/Tmds.DBus.SourceGenerator b/src/tools/Tmds.DBus.SourceGenerator index 6007f27d04..86e0ded07f 160000 --- a/src/tools/Tmds.DBus.SourceGenerator +++ b/src/tools/Tmds.DBus.SourceGenerator @@ -1 +1 @@ -Subproject commit 6007f27d04691f7c4c35722df3dc65bf4b558f18 +Subproject commit 86e0ded07fc8622e216f93f8fc01e8c1b3ef29b1 From 9de82b19393ff5ff4910637d99d15fb4d3f75294 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Thu, 19 Jan 2023 23:26:03 +0100 Subject: [PATCH 009/122] Make nth-last-child style change background. Will hopefully make it a bit more obvious if it breaks in future: previously it was easier to miss as both `nth-child` and `nth-last-child` changed the foreground. --- samples/ControlCatalog/Pages/ListBoxPage.xaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/ControlCatalog/Pages/ListBoxPage.xaml b/samples/ControlCatalog/Pages/ListBoxPage.xaml index dc0eaf0a51..b1b1b99c9c 100644 --- a/samples/ControlCatalog/Pages/ListBoxPage.xaml +++ b/samples/ControlCatalog/Pages/ListBoxPage.xaml @@ -10,7 +10,7 @@ From a4665747e3f6aa3f31784d6adddf358e1b84f8a5 Mon Sep 17 00:00:00 2001 From: affederaffe <68356204+affederaffe@users.noreply.github.com> Date: Thu, 19 Jan 2023 23:31:41 +0100 Subject: [PATCH 010/122] Don't dispose DBus connection in tray icon --- src/Avalonia.FreeDesktop/DBusMenuExporter.cs | 7 ++++--- src/Avalonia.FreeDesktop/DBusTrayIconImpl.cs | 1 - 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Avalonia.FreeDesktop/DBusMenuExporter.cs b/src/Avalonia.FreeDesktop/DBusMenuExporter.cs index 1978dfba81..6f1810d1c1 100644 --- a/src/Avalonia.FreeDesktop/DBusMenuExporter.cs +++ b/src/Avalonia.FreeDesktop/DBusMenuExporter.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Collections.Specialized; using System.IO; using System.Linq; +using System.Threading.Tasks; using Avalonia.Controls; using Avalonia.Controls.Platform; using Avalonia.Input; @@ -43,7 +44,7 @@ namespace Avalonia.FreeDesktop _xid = (uint)xid.ToInt32(); Path = GenerateDBusMenuObjPath; SetNativeMenu(new NativeMenu()); - Init(); + _ = InitializeAsync(); } public DBusMenuExporterImpl(Connection connection, string path) @@ -52,7 +53,7 @@ namespace Avalonia.FreeDesktop _appMenu = false; Path = path; SetNativeMenu(new NativeMenu()); - Init(); + _ = InitializeAsync(); } protected override Connection Connection { get; } @@ -92,7 +93,7 @@ namespace Avalonia.FreeDesktop protected override (int[] updatesNeeded, int[] idErrors) OnAboutToShowGroup(int[] ids) => (Array.Empty(), Array.Empty()); - private async void Init() + private async Task InitializeAsync() { Connection.AddMethodHandler(this); if (!_appMenu) diff --git a/src/Avalonia.FreeDesktop/DBusTrayIconImpl.cs b/src/Avalonia.FreeDesktop/DBusTrayIconImpl.cs index a34a9a0a84..f732cfef07 100644 --- a/src/Avalonia.FreeDesktop/DBusTrayIconImpl.cs +++ b/src/Avalonia.FreeDesktop/DBusTrayIconImpl.cs @@ -134,7 +134,6 @@ namespace Avalonia.FreeDesktop IsActive = false; _isDisposed = true; DestroyTrayIcon(); - _connection?.Dispose(); _serviceWatchDisposable?.Dispose(); } From 649e4fc57e45f4f8c357e61b7b66fd818eef9557 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Fri, 20 Jan 2023 10:57:40 +0100 Subject: [PATCH 011/122] Add failing test for #9997. And a passing test for `nth-child` selector. --- .../VirtualizingStackPanelTests.cs | 61 ++++++++++++++++++- 1 file changed, 60 insertions(+), 1 deletion(-) diff --git a/tests/Avalonia.Controls.UnitTests/VirtualizingStackPanelTests.cs b/tests/Avalonia.Controls.UnitTests/VirtualizingStackPanelTests.cs index f1dd874c71..469f832b3a 100644 --- a/tests/Avalonia.Controls.UnitTests/VirtualizingStackPanelTests.cs +++ b/tests/Avalonia.Controls.UnitTests/VirtualizingStackPanelTests.cs @@ -9,6 +9,8 @@ using Avalonia.Controls.Templates; using Avalonia.Data; using Avalonia.Layout; using Avalonia.LogicalTree; +using Avalonia.Media; +using Avalonia.Styling; using Avalonia.UnitTests; using Avalonia.VisualTree; using Xunit; @@ -278,6 +280,58 @@ namespace Avalonia.Controls.UnitTests Assert.Same(focused, target.GetRealizedElements().First()); } + [Fact] + public void NthChild_Selector_Works() + { + using var app = App(); + + var style = new Style(x => x.OfType().NthChild(5, 0)) + { + Setters = { new Setter(ListBoxItem.BackgroundProperty, Brushes.Red) }, + }; + + var (target, _, _) = CreateTarget(styles: new[] { style }); + var realized = target.GetRealizedContainers()!.Cast().ToList(); + + Assert.Equal(10, realized.Count); + + for (var i = 0; i < 10; ++i) + { + var container = realized[i]; + var index = target.IndexFromContainer(container); + var expectedBackground = (i == 4 || i == 9) ? Brushes.Red : null; + + Assert.Equal(i, index); + Assert.Equal(expectedBackground, container.Background); + } + } + + [Fact] + public void NthLastChild_Selector_Works() + { + using var app = App(); + + var style = new Style(x => x.OfType().NthLastChild(5, 0)) + { + Setters = { new Setter(ListBoxItem.BackgroundProperty, Brushes.Red) }, + }; + + var (target, _, _) = CreateTarget(styles: new[] { style }); + var realized = target.GetRealizedContainers()!.Cast().ToList(); + + Assert.Equal(10, realized.Count); + + for (var i = 0; i < 10; ++i) + { + var container = realized[i]; + var index = target.IndexFromContainer(container); + var expectedBackground = (i == 0 || i == 5) ? Brushes.Red : null; + + Assert.Equal(i, index); + Assert.Equal(expectedBackground, container.Background); + } + } + private static IReadOnlyList GetRealizedIndexes(VirtualizingStackPanel target, ItemsControl itemsControl) { return target.GetRealizedElements() @@ -322,7 +376,8 @@ namespace Avalonia.Controls.UnitTests private static (VirtualizingStackPanel, ScrollViewer, ItemsControl) CreateTarget( IEnumerable? items = null, - bool useItemTemplate = true) + bool useItemTemplate = true, + IEnumerable + From 0c20abec120cd9a0039342c88737c4b0085d6e13 Mon Sep 17 00:00:00 2001 From: Max Katz Date: Wed, 1 Feb 2023 02:27:27 -0500 Subject: [PATCH 025/122] Update src/Avalonia.Controls.DataGrid/Themes/Fluent.xaml --- src/Avalonia.Controls.DataGrid/Themes/Fluent.xaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Avalonia.Controls.DataGrid/Themes/Fluent.xaml b/src/Avalonia.Controls.DataGrid/Themes/Fluent.xaml index 2197b0fe59..ca516c8918 100644 --- a/src/Avalonia.Controls.DataGrid/Themes/Fluent.xaml +++ b/src/Avalonia.Controls.DataGrid/Themes/Fluent.xaml @@ -22,7 +22,7 @@ - + From dff80c8ded5cd28bb6b0f3535aee27f6394c1f4e Mon Sep 17 00:00:00 2001 From: affederaffe <68356204+affederaffe@users.noreply.github.com> Date: Sun, 5 Feb 2023 12:55:46 +0100 Subject: [PATCH 026/122] Remove ListServicesAsync usage - Uses Reflection underneath - It's faster to just fail than receiving all available services first --- src/Avalonia.FreeDesktop/DBusMenuExporter.cs | 25 ++++++++++++-------- src/Avalonia.FreeDesktop/DBusSystemDialog.cs | 24 ++++++++++++------- src/Avalonia.FreeDesktop/DBusTrayIconImpl.cs | 24 +++++++++++-------- src/tools/Tmds.DBus.SourceGenerator | 2 +- 4 files changed, 45 insertions(+), 30 deletions(-) diff --git a/src/Avalonia.FreeDesktop/DBusMenuExporter.cs b/src/Avalonia.FreeDesktop/DBusMenuExporter.cs index deac7346cb..d86a6bf3a4 100644 --- a/src/Avalonia.FreeDesktop/DBusMenuExporter.cs +++ b/src/Avalonia.FreeDesktop/DBusMenuExporter.cs @@ -98,16 +98,21 @@ namespace Avalonia.FreeDesktop Connection.AddMethodHandler(this); if (!_appMenu) return; - var services = await Connection.ListServicesAsync(); - if (!services.Contains("com.canonical.AppMenu.Registrar")) - return; + _registrar = new ComCanonicalAppMenuRegistrar(Connection, "com.canonical.AppMenu.Registrar", "/com/canonical/AppMenu/Registrar"); - if (!_disposed) - await _registrar.RegisterWindowAsync(_xid, Path); - // It's not really important if this code succeeds, - // and it's not important to know if it succeeds - // since even if we register the window it's not guaranteed that - // menu will be actually exported + try + { + if (!_disposed) + await _registrar.RegisterWindowAsync(_xid, Path); + } + catch + { + // It's not really important if this code succeeds, + // and it's not important to know if it succeeds + // since even if we register the window it's not guaranteed that + // menu will be actually exported + _registrar = null; + } } public void Dispose() @@ -286,7 +291,7 @@ namespace Avalonia.FreeDesktop return null; } - private Dictionary GetProperties((NativeMenuItemBase? item, NativeMenu? menu) i, string[] names) + private static Dictionary GetProperties((NativeMenuItemBase? item, NativeMenu? menu) i, string[] names) { if (names.Length == 0) names = s_allProperties; diff --git a/src/Avalonia.FreeDesktop/DBusSystemDialog.cs b/src/Avalonia.FreeDesktop/DBusSystemDialog.cs index 1c965a077e..fa36f7d1ab 100644 --- a/src/Avalonia.FreeDesktop/DBusSystemDialog.cs +++ b/src/Avalonia.FreeDesktop/DBusSystemDialog.cs @@ -17,20 +17,28 @@ namespace Avalonia.FreeDesktop { if (DBusHelper.Connection is null) return null; - var services = await DBusHelper.Connection.ListServicesAsync(); - return services.Contains("org.freedesktop.portal.Desktop", StringComparer.Ordinal) - ? new DBusSystemDialog(DBusHelper.Connection, handle) - : null; + + var dbusFileChooser = new OrgFreedesktopPortalFileChooser(DBusHelper.Connection, "org.freedesktop.portal.Desktop", "/org/freedesktop/portal/desktop"); + try + { + await dbusFileChooser.GetVersionAsync(); + } + catch + { + return null; + } + + return new DBusSystemDialog(DBusHelper.Connection, handle, dbusFileChooser); } private readonly Connection _connection; private readonly OrgFreedesktopPortalFileChooser _fileChooser; private readonly IPlatformHandle _handle; - private DBusSystemDialog(Connection connection, IPlatformHandle handle) + private DBusSystemDialog(Connection connection, IPlatformHandle handle, OrgFreedesktopPortalFileChooser fileChooser) { _connection = connection; - _fileChooser = new OrgFreedesktopPortalFileChooser(connection, "org.freedesktop.portal.Desktop", "/org/freedesktop/portal/desktop"); + _fileChooser = fileChooser; _handle = handle; } @@ -137,7 +145,6 @@ namespace Avalonia.FreeDesktop if (fileTypes is null) return null; - var any = false; var filters = new DBusArrayItem(DBusType.Struct, new List()); foreach (var fileType in fileTypes) @@ -154,7 +161,6 @@ namespace Avalonia.FreeDesktop else continue; - any = true; filters.Add(new DBusStructItem( new DBusItem[] { @@ -163,7 +169,7 @@ namespace Avalonia.FreeDesktop })); } - return any ? new DBusVariantItem("a(sa(us))", filters) : null; + return filters.Count > 0 ? new DBusVariantItem("a(sa(us))", filters) : null; } } } diff --git a/src/Avalonia.FreeDesktop/DBusTrayIconImpl.cs b/src/Avalonia.FreeDesktop/DBusTrayIconImpl.cs index f732cfef07..521fe68e90 100644 --- a/src/Avalonia.FreeDesktop/DBusTrayIconImpl.cs +++ b/src/Avalonia.FreeDesktop/DBusTrayIconImpl.cs @@ -1,6 +1,5 @@ using System; using System.Diagnostics; -using System.Linq; using Avalonia.Controls.Platform; using Avalonia.Logging; using Avalonia.Platform; @@ -66,13 +65,18 @@ namespace Avalonia.FreeDesktop private async void WatchAsync() { - var services = await _connection!.ListServicesAsync(); - if (!services.Contains("org.kde.StatusNotifierWatcher", StringComparer.Ordinal)) - return; - - _serviceWatchDisposable = await _dBus!.WatchNameOwnerChangedAsync((_, x) => OnNameChange(x.Item2) ); - var nameOwner = await _dBus.GetNameOwnerAsync("org.kde.StatusNotifierWatcher"); - OnNameChange(nameOwner); + try + { + _serviceWatchDisposable = await _dBus!.WatchNameOwnerChangedAsync((_, x) => OnNameChange(x.Item2)); + var nameOwner = await _dBus.GetNameOwnerAsync("org.kde.StatusNotifierWatcher"); + OnNameChange(nameOwner); + } + catch + { + _serviceWatchDisposable = null; + Logger.TryGet(LogEventLevel.Error, "DBUS") + ?.Log(this, "Interface 'org.kde.StatusNotifierWatcher' is unavailable."); + } } private void OnNameChange(string? newOwner) @@ -99,7 +103,7 @@ namespace Avalonia.FreeDesktop private async void CreateTrayIcon() { - if (_connection is null || !_serviceConnected || _isDisposed) + if (_connection is null || !_serviceConnected || _isDisposed || _statusNotifierWatcher is null) return; #if NET5_0_OR_GREATER @@ -114,7 +118,7 @@ namespace Avalonia.FreeDesktop _connection.AddMethodHandler(_statusNotifierItemDbusObj); await _dBus!.RequestNameAsync(_sysTrayServiceName, 0); - await _statusNotifierWatcher!.RegisterStatusNotifierItemAsync(_sysTrayServiceName); + await _statusNotifierWatcher.RegisterStatusNotifierItemAsync(_sysTrayServiceName); _statusNotifierItemDbusObj.SetTitleAndTooltip(_tooltipText); _statusNotifierItemDbusObj.SetIcon(_icon); diff --git a/src/tools/Tmds.DBus.SourceGenerator b/src/tools/Tmds.DBus.SourceGenerator index 86e0ded07f..309159609e 160000 --- a/src/tools/Tmds.DBus.SourceGenerator +++ b/src/tools/Tmds.DBus.SourceGenerator @@ -1 +1 @@ -Subproject commit 86e0ded07fc8622e216f93f8fc01e8c1b3ef29b1 +Subproject commit 309159609e09f3f0ae77f0abd761360049761700 From 04df472194e194559d33619e089f3aa918e3f5a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Pedro?= Date: Thu, 9 Feb 2023 03:10:19 +0000 Subject: [PATCH 027/122] Added unit test for #10226. --- .../Styling/StyledElementTests_Theming.cs | 40 ++++++++++++++++--- 1 file changed, 35 insertions(+), 5 deletions(-) diff --git a/tests/Avalonia.Base.UnitTests/Styling/StyledElementTests_Theming.cs b/tests/Avalonia.Base.UnitTests/Styling/StyledElementTests_Theming.cs index b5a9b35134..60603937d9 100644 --- a/tests/Avalonia.Base.UnitTests/Styling/StyledElementTests_Theming.cs +++ b/tests/Avalonia.Base.UnitTests/Styling/StyledElementTests_Theming.cs @@ -104,7 +104,7 @@ public class StyledElementTests_Theming target.Theme = null; Assert.Equal("style", target.Tag); } - + [Fact] public void TemplatedParent_Theme_Is_Detached_From_Template_Controls_When_Theme_Property_Cleared() { @@ -539,12 +539,42 @@ public class StyledElementTests_Theming Assert.Same(target.Theme, theme3); } + [Fact] + public void TemplatedParent_Theme_Change_Applies_To_Children() + { + var theme = CreateDerivedTheme(); + var target = CreateTarget(); + + Assert.Null(target.Theme); + Assert.Null(target.Template); + + var root = CreateRoot(target, theme.BasedOn); + + Assert.NotNull(target.Theme); + Assert.NotNull(target.Template); + + root.Styles.Add(new Style(x => x.OfType().Class("foo")) + { + Setters = { new Setter(StyledElement.ThemeProperty, theme) } + }); + + root.LayoutManager.ExecuteLayoutPass(); + + var border = Assert.IsType(target.VisualChild); + Assert.Equal(Brushes.Red, border.Background); + + target.Classes.Add("foo"); + root.LayoutManager.ExecuteLayoutPass(); + + Assert.Equal(Brushes.Green, border.Background); + } + private static ThemedControl CreateTarget() { return new ThemedControl(); } - private static TestRoot CreateRoot(Control child) + private static TestRoot CreateRoot(Control child, ControlTheme? theme = null) { var result = new TestRoot() { @@ -552,7 +582,7 @@ public class StyledElementTests_Theming { new Style(x => x.OfType()) { - Setters = { new Setter(StyledElement.ThemeProperty, CreateTheme()) } + Setters = { new Setter(StyledElement.ThemeProperty, theme ?? CreateTheme()) } } } }; @@ -580,8 +610,8 @@ public class StyledElementTests_Theming { new Style(x => x.Nesting().Template().OfType()) { - Setters = - { + Setters = + { new Setter(Border.BackgroundProperty, Brushes.Red), new Setter(Control.TagProperty, tag), } From b8a987e84748b3c26d37dbfa787e720c0a188aed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Pedro?= Date: Wed, 8 Feb 2023 20:29:25 +0000 Subject: [PATCH 028/122] Ensure templated parent control theme is applied. --- src/Avalonia.Base/Layout/Layoutable.cs | 6 ++++++ src/Avalonia.Base/StyledElement.cs | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/Avalonia.Base/Layout/Layoutable.cs b/src/Avalonia.Base/Layout/Layoutable.cs index 775b8adddd..c45fc16929 100644 --- a/src/Avalonia.Base/Layout/Layoutable.cs +++ b/src/Avalonia.Base/Layout/Layoutable.cs @@ -795,6 +795,12 @@ namespace Avalonia.Layout InvalidateMeasure(); } + internal override void OnTemplatedParentControlThemeChanged() + { + base.OnTemplatedParentControlThemeChanged(); + InvalidateMeasure(); + } + /// /// Called when the layout manager raises a LayoutUpdated event. /// diff --git a/src/Avalonia.Base/StyledElement.cs b/src/Avalonia.Base/StyledElement.cs index 5bf022cd51..b910012444 100644 --- a/src/Avalonia.Base/StyledElement.cs +++ b/src/Avalonia.Base/StyledElement.cs @@ -390,7 +390,7 @@ namespace Avalonia /// public bool ApplyStyling() { - if (_initCount == 0 && (!_stylesApplied || !_themeApplied)) + if (_initCount == 0 && (!_stylesApplied || !_themeApplied || !_templatedParentThemeApplied)) { GetValueStore().BeginStyling(); From a6d42cb8b4322bd85e4179ed7dfc74ce6d31bf6c Mon Sep 17 00:00:00 2001 From: Benedikt Stebner Date: Fri, 10 Feb 2023 08:17:18 +0100 Subject: [PATCH 029/122] Move font assets to a dedicated package --- Avalonia.sln | 8 +++++++- samples/ControlCatalog/ControlCatalog.csproj | 1 + .../Assets/Inter-Bold.ttf | Bin .../Assets/Inter-ExtraLight.ttf | Bin .../Assets/Inter-Light.ttf | Bin .../Assets/Inter-Medium.ttf | Bin .../Assets/Inter-Regular.ttf | Bin .../Assets/Inter-SemiBold.ttf | Bin .../Assets/Inter-Thin.ttf | Bin .../Avalonia.Themes.Fluent.Fonts.csproj | 17 +++++++++++++++++ .../Properties/AssemblyInfo.cs | 3 +++ src/Avalonia.Themes.Fluent/Accents/Base.xaml | 2 +- .../Avalonia.Themes.Fluent.csproj | 3 +-- src/Skia/Avalonia.Skia/FontManagerImpl.cs | 17 +++++++++-------- 14 files changed, 39 insertions(+), 12 deletions(-) rename src/{Avalonia.Themes.Fluent => Avalonia.Themes.Fluent.Fonts}/Assets/Inter-Bold.ttf (100%) rename src/{Avalonia.Themes.Fluent => Avalonia.Themes.Fluent.Fonts}/Assets/Inter-ExtraLight.ttf (100%) rename src/{Avalonia.Themes.Fluent => Avalonia.Themes.Fluent.Fonts}/Assets/Inter-Light.ttf (100%) rename src/{Avalonia.Themes.Fluent => Avalonia.Themes.Fluent.Fonts}/Assets/Inter-Medium.ttf (100%) rename src/{Avalonia.Themes.Fluent => Avalonia.Themes.Fluent.Fonts}/Assets/Inter-Regular.ttf (100%) rename src/{Avalonia.Themes.Fluent => Avalonia.Themes.Fluent.Fonts}/Assets/Inter-SemiBold.ttf (100%) rename src/{Avalonia.Themes.Fluent => Avalonia.Themes.Fluent.Fonts}/Assets/Inter-Thin.ttf (100%) create mode 100644 src/Avalonia.Themes.Fluent.Fonts/Avalonia.Themes.Fluent.Fonts.csproj create mode 100644 src/Avalonia.Themes.Fluent.Fonts/Properties/AssemblyInfo.cs diff --git a/Avalonia.sln b/Avalonia.sln index 525e01c891..060c1d9e50 100644 --- a/Avalonia.sln +++ b/Avalonia.sln @@ -231,12 +231,14 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ControlCatalog.Browser.Blaz EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ReactiveUIDemo", "samples\ReactiveUIDemo\ReactiveUIDemo.csproj", "{75C47156-C5D8-44BC-A5A7-E8657C2248D6}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GpuInterop", "samples\GpuInterop\GpuInterop.csproj", "{C810060E-3809-4B74-A125-F11533AF9C1B}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GpuInterop", "samples\GpuInterop\GpuInterop.csproj", "{C810060E-3809-4B74-A125-F11533AF9C1B}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Controls.ItemsRepeater", "src\Avalonia.Controls.ItemsRepeater\Avalonia.Controls.ItemsRepeater.csproj", "{EE0F0DD4-A70D-472B-BD5D-B7D32D0E9386}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Controls.ItemsRepeater.UnitTests", "tests\Avalonia.Controls.ItemsRepeater.UnitTests\Avalonia.Controls.ItemsRepeater.UnitTests.csproj", "{F4E36AA8-814E-4704-BC07-291F70F45193}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Themes.Fluent.Fonts", "src\Avalonia.Themes.Fluent.Fonts\Avalonia.Themes.Fluent.Fonts.csproj", "{5E19C5EF-19D7-4E70-9050-48DAE7FF5FA4}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -560,6 +562,10 @@ Global {F4E36AA8-814E-4704-BC07-291F70F45193}.Debug|Any CPU.Build.0 = Debug|Any CPU {F4E36AA8-814E-4704-BC07-291F70F45193}.Release|Any CPU.ActiveCfg = Release|Any CPU {F4E36AA8-814E-4704-BC07-291F70F45193}.Release|Any CPU.Build.0 = Release|Any CPU + {5E19C5EF-19D7-4E70-9050-48DAE7FF5FA4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5E19C5EF-19D7-4E70-9050-48DAE7FF5FA4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5E19C5EF-19D7-4E70-9050-48DAE7FF5FA4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5E19C5EF-19D7-4E70-9050-48DAE7FF5FA4}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/samples/ControlCatalog/ControlCatalog.csproj b/samples/ControlCatalog/ControlCatalog.csproj index c223bfe1a9..2326b0a632 100644 --- a/samples/ControlCatalog/ControlCatalog.csproj +++ b/samples/ControlCatalog/ControlCatalog.csproj @@ -29,6 +29,7 @@ + diff --git a/src/Avalonia.Themes.Fluent/Assets/Inter-Bold.ttf b/src/Avalonia.Themes.Fluent.Fonts/Assets/Inter-Bold.ttf similarity index 100% rename from src/Avalonia.Themes.Fluent/Assets/Inter-Bold.ttf rename to src/Avalonia.Themes.Fluent.Fonts/Assets/Inter-Bold.ttf diff --git a/src/Avalonia.Themes.Fluent/Assets/Inter-ExtraLight.ttf b/src/Avalonia.Themes.Fluent.Fonts/Assets/Inter-ExtraLight.ttf similarity index 100% rename from src/Avalonia.Themes.Fluent/Assets/Inter-ExtraLight.ttf rename to src/Avalonia.Themes.Fluent.Fonts/Assets/Inter-ExtraLight.ttf diff --git a/src/Avalonia.Themes.Fluent/Assets/Inter-Light.ttf b/src/Avalonia.Themes.Fluent.Fonts/Assets/Inter-Light.ttf similarity index 100% rename from src/Avalonia.Themes.Fluent/Assets/Inter-Light.ttf rename to src/Avalonia.Themes.Fluent.Fonts/Assets/Inter-Light.ttf diff --git a/src/Avalonia.Themes.Fluent/Assets/Inter-Medium.ttf b/src/Avalonia.Themes.Fluent.Fonts/Assets/Inter-Medium.ttf similarity index 100% rename from src/Avalonia.Themes.Fluent/Assets/Inter-Medium.ttf rename to src/Avalonia.Themes.Fluent.Fonts/Assets/Inter-Medium.ttf diff --git a/src/Avalonia.Themes.Fluent/Assets/Inter-Regular.ttf b/src/Avalonia.Themes.Fluent.Fonts/Assets/Inter-Regular.ttf similarity index 100% rename from src/Avalonia.Themes.Fluent/Assets/Inter-Regular.ttf rename to src/Avalonia.Themes.Fluent.Fonts/Assets/Inter-Regular.ttf diff --git a/src/Avalonia.Themes.Fluent/Assets/Inter-SemiBold.ttf b/src/Avalonia.Themes.Fluent.Fonts/Assets/Inter-SemiBold.ttf similarity index 100% rename from src/Avalonia.Themes.Fluent/Assets/Inter-SemiBold.ttf rename to src/Avalonia.Themes.Fluent.Fonts/Assets/Inter-SemiBold.ttf diff --git a/src/Avalonia.Themes.Fluent/Assets/Inter-Thin.ttf b/src/Avalonia.Themes.Fluent.Fonts/Assets/Inter-Thin.ttf similarity index 100% rename from src/Avalonia.Themes.Fluent/Assets/Inter-Thin.ttf rename to src/Avalonia.Themes.Fluent.Fonts/Assets/Inter-Thin.ttf diff --git a/src/Avalonia.Themes.Fluent.Fonts/Avalonia.Themes.Fluent.Fonts.csproj b/src/Avalonia.Themes.Fluent.Fonts/Avalonia.Themes.Fluent.Fonts.csproj new file mode 100644 index 0000000000..c8c039de9b --- /dev/null +++ b/src/Avalonia.Themes.Fluent.Fonts/Avalonia.Themes.Fluent.Fonts.csproj @@ -0,0 +1,17 @@ + + + net6.0;netstandard2.0 + + $(NoWarn);IL2026 + + + + + + + + + + + + diff --git a/src/Avalonia.Themes.Fluent.Fonts/Properties/AssemblyInfo.cs b/src/Avalonia.Themes.Fluent.Fonts/Properties/AssemblyInfo.cs new file mode 100644 index 0000000000..5315883f5e --- /dev/null +++ b/src/Avalonia.Themes.Fluent.Fonts/Properties/AssemblyInfo.cs @@ -0,0 +1,3 @@ +using Avalonia.Metadata; + +[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Themes.Fluent.Fonts")] diff --git a/src/Avalonia.Themes.Fluent/Accents/Base.xaml b/src/Avalonia.Themes.Fluent/Accents/Base.xaml index 7512fa4cfa..389574a36d 100644 --- a/src/Avalonia.Themes.Fluent/Accents/Base.xaml +++ b/src/Avalonia.Themes.Fluent/Accents/Base.xaml @@ -3,7 +3,7 @@ xmlns:sys="using:System" xmlns:converters="using:Avalonia.Controls.Converters"> - avares://Avalonia.Themes.Fluent/Assets#Inter + avares://Avalonia.Themes.Fluent.Fonts/Assets#Inter, $Default 14 diff --git a/src/Avalonia.Themes.Fluent/Avalonia.Themes.Fluent.csproj b/src/Avalonia.Themes.Fluent/Avalonia.Themes.Fluent.csproj index fb52b3b147..8d266ce82f 100644 --- a/src/Avalonia.Themes.Fluent/Avalonia.Themes.Fluent.csproj +++ b/src/Avalonia.Themes.Fluent/Avalonia.Themes.Fluent.csproj @@ -9,8 +9,7 @@ - - + diff --git a/src/Skia/Avalonia.Skia/FontManagerImpl.cs b/src/Skia/Avalonia.Skia/FontManagerImpl.cs index 90ff9652d8..db4c511acb 100644 --- a/src/Skia/Avalonia.Skia/FontManagerImpl.cs +++ b/src/Skia/Avalonia.Skia/FontManagerImpl.cs @@ -106,7 +106,14 @@ namespace Avalonia.Skia { SKTypeface skTypeface = null; - if (typeface.FontFamily.Key == null) + if(typeface.FontFamily.Key != null) + { + var fontCollection = SKTypefaceCollectionCache.GetOrAddTypefaceCollection(typeface.FontFamily); + + skTypeface = fontCollection.Get(typeface); + } + + if (skTypeface is null) { var defaultName = SKTypeface.Default.FamilyName; @@ -135,13 +142,7 @@ namespace Avalonia.Skia skTypeface ??= _skFontManager.MatchTypeface(SKTypeface.Default, fontStyle) ?? SKTypeface.Default; } - else - { - var fontCollection = SKTypefaceCollectionCache.GetOrAddTypefaceCollection(typeface.FontFamily); - - skTypeface = fontCollection.Get(typeface); - } - + if (skTypeface == null) { throw new InvalidOperationException( From 137d4019d571b62b603baa63d2c2752d1be15e51 Mon Sep 17 00:00:00 2001 From: Benedikt Stebner Date: Fri, 10 Feb 2023 08:21:37 +0100 Subject: [PATCH 030/122] Cleanup csproj --- .../Avalonia.Themes.Fluent.Fonts.csproj | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/Avalonia.Themes.Fluent.Fonts/Avalonia.Themes.Fluent.Fonts.csproj b/src/Avalonia.Themes.Fluent.Fonts/Avalonia.Themes.Fluent.Fonts.csproj index c8c039de9b..c9deb02b2a 100644 --- a/src/Avalonia.Themes.Fluent.Fonts/Avalonia.Themes.Fluent.Fonts.csproj +++ b/src/Avalonia.Themes.Fluent.Fonts/Avalonia.Themes.Fluent.Fonts.csproj @@ -1,8 +1,6 @@  net6.0;netstandard2.0 - - $(NoWarn);IL2026 @@ -10,8 +8,5 @@ - - - From 8e7441348a6b130b516374e8dbaa5b2812653309 Mon Sep 17 00:00:00 2001 From: Benedikt Stebner Date: Fri, 10 Feb 2023 10:05:04 +0100 Subject: [PATCH 031/122] Rename --- Avalonia.sln | 2 +- samples/ControlCatalog/ControlCatalog.csproj | 2 +- .../Assets/Inter-Bold.ttf | Bin 370508 -> 0 bytes .../Assets/Inter-ExtraLight.ttf | Bin 357944 -> 0 bytes .../Assets/Inter-Light.ttf | Bin 357740 -> 0 bytes .../Assets/Inter-Medium.ttf | Bin 369808 -> 0 bytes .../Assets/Inter-Regular.ttf | Bin 359128 -> 0 bytes .../Assets/Inter-SemiBold.ttf | Bin 367820 -> 0 bytes .../Assets/Inter-Thin.ttf | Bin 353652 -> 0 bytes .../Assets/Inter-Bold.otf | Bin 0 -> 271436 bytes .../Assets/Inter-ExtraLight.otf | Bin 0 -> 264196 bytes .../Assets/Inter-Light.otf | Bin 0 -> 265000 bytes .../Assets/Inter-Medium.otf | Bin 0 -> 269692 bytes .../Assets/Inter-Regular.otf | Bin 0 -> 258992 bytes .../Assets/Inter-SemiBold.otf | Bin 0 -> 270760 bytes .../Assets/Inter-Thin.otf | Bin 0 -> 257356 bytes .../Avalonia.Themes.Fluent.Inter.csproj} | 0 .../Properties/AssemblyInfo.cs | 2 +- src/Avalonia.Themes.Fluent/Accents/Base.xaml | 2 +- 19 files changed, 4 insertions(+), 4 deletions(-) delete mode 100644 src/Avalonia.Themes.Fluent.Fonts/Assets/Inter-Bold.ttf delete mode 100644 src/Avalonia.Themes.Fluent.Fonts/Assets/Inter-ExtraLight.ttf delete mode 100644 src/Avalonia.Themes.Fluent.Fonts/Assets/Inter-Light.ttf delete mode 100644 src/Avalonia.Themes.Fluent.Fonts/Assets/Inter-Medium.ttf delete mode 100644 src/Avalonia.Themes.Fluent.Fonts/Assets/Inter-Regular.ttf delete mode 100644 src/Avalonia.Themes.Fluent.Fonts/Assets/Inter-SemiBold.ttf delete mode 100644 src/Avalonia.Themes.Fluent.Fonts/Assets/Inter-Thin.ttf create mode 100644 src/Avalonia.Themes.Fluent.Inter/Assets/Inter-Bold.otf create mode 100644 src/Avalonia.Themes.Fluent.Inter/Assets/Inter-ExtraLight.otf create mode 100644 src/Avalonia.Themes.Fluent.Inter/Assets/Inter-Light.otf create mode 100644 src/Avalonia.Themes.Fluent.Inter/Assets/Inter-Medium.otf create mode 100644 src/Avalonia.Themes.Fluent.Inter/Assets/Inter-Regular.otf create mode 100644 src/Avalonia.Themes.Fluent.Inter/Assets/Inter-SemiBold.otf create mode 100644 src/Avalonia.Themes.Fluent.Inter/Assets/Inter-Thin.otf rename src/{Avalonia.Themes.Fluent.Fonts/Avalonia.Themes.Fluent.Fonts.csproj => Avalonia.Themes.Fluent.Inter/Avalonia.Themes.Fluent.Inter.csproj} (100%) rename src/{Avalonia.Themes.Fluent.Fonts => Avalonia.Themes.Fluent.Inter}/Properties/AssemblyInfo.cs (75%) diff --git a/Avalonia.sln b/Avalonia.sln index 060c1d9e50..52abe0e718 100644 --- a/Avalonia.sln +++ b/Avalonia.sln @@ -237,7 +237,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Controls.ItemsRepe EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Controls.ItemsRepeater.UnitTests", "tests\Avalonia.Controls.ItemsRepeater.UnitTests\Avalonia.Controls.ItemsRepeater.UnitTests.csproj", "{F4E36AA8-814E-4704-BC07-291F70F45193}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Themes.Fluent.Fonts", "src\Avalonia.Themes.Fluent.Fonts\Avalonia.Themes.Fluent.Fonts.csproj", "{5E19C5EF-19D7-4E70-9050-48DAE7FF5FA4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Themes.Fluent.Inter", "src\Avalonia.Themes.Fluent.Inter\Avalonia.Themes.Fluent.Inter.csproj", "{5E19C5EF-19D7-4E70-9050-48DAE7FF5FA4}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/samples/ControlCatalog/ControlCatalog.csproj b/samples/ControlCatalog/ControlCatalog.csproj index 2326b0a632..c0a49908fc 100644 --- a/samples/ControlCatalog/ControlCatalog.csproj +++ b/samples/ControlCatalog/ControlCatalog.csproj @@ -29,7 +29,7 @@ - + diff --git a/src/Avalonia.Themes.Fluent.Fonts/Assets/Inter-Bold.ttf b/src/Avalonia.Themes.Fluent.Fonts/Assets/Inter-Bold.ttf deleted file mode 100644 index a372c5fccae93cf48400a055a678c51e88246ce6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 370508 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'wlpOxl2vXtnvtP`?w;%zV?h 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�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

DWiNZ7%oW3|Z=HAjFQGd1QsYgn`D;+p+-Um}Y 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 Arz%C^xMSm2pmP@v*$_N)9K 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

vi8Y59dup$3z|e$& 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%0Awcb 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

@_^

e#ye@1J5j6J_@{qsjV_ey`v@ZHR9 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�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 diff --git a/src/Avalonia.Themes.Fluent.Fonts/Assets/Inter-Regular.ttf b/src/Avalonia.Themes.Fluent.Fonts/Assets/Inter-Regular.ttf deleted file mode 100644 index c28fe4d74427dfdfd10dcca8ddfab1bd6ac63425..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 359128 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 diff --git a/src/Avalonia.Themes.Fluent.Fonts/Assets/Inter-SemiBold.ttf b/src/Avalonia.Themes.Fluent.Fonts/Assets/Inter-SemiBold.ttf deleted file mode 100644 index d085eb4994dbe9d23d97505da13b107fc189ac2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 367820 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

8^s2G==tni_IjL!$-=cGbE5PYid7}W;;mxk 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

co?qXETeKrtFnj0O~= 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

d2EOzYbDsE%b``!) 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 diff --git a/src/Avalonia.Themes.Fluent.Fonts/Assets/Inter-Thin.ttf b/src/Avalonia.Themes.Fluent.Fonts/Assets/Inter-Thin.ttf deleted file mode 100644 index 016a13482bafa6f0a6aa8d405a48b0c6eb9265e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 353652 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 F{{fv6L;U~% diff --git a/src/Avalonia.Themes.Fluent.Inter/Assets/Inter-Bold.otf b/src/Avalonia.Themes.Fluent.Inter/Assets/Inter-Bold.otf new file mode 100644 index 0000000000000000000000000000000000000000..c74cc0c6c13ccda9d3beac6c5a7aac5176da4a7c GIT binary patch literal 271436 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

eA*oHF==1$> zEJM-vhY?r?TssnSB%{ycaulP_`}7@vxU`QkOwm}R{s3HU5^^k~&zO?h9o#ucYHPr? zC?TnRLD0U(GhCk%asm_dybqYZgPh24^-5soxd?sMkRLMoTq7rkBq66T^#hWg1B%*{ z#v&Lx=RRSE#^|RZWssjSbr<=02#t}cAytvnm<~ryXD)3!gBco+Gef8yzF@in@=N9} zMa~MLddy~;#wN8FxYXWXF_Vd$%QTHa8jFO=GM|~%Na}AwFn4X9{8nPUDjOj_p;|$kVg*?GTH1Z@<9$800CYB9NyU&2z{zOwrgo z%fwjZIfm=CLY`-W%1M0&>V4$J5ZeFGOi^3@67n4KSEl2UzlGFB{?2p)@)C3DxR;rs zKE1*e_4!qX>%>A{V>EXl|6sUwEaY`2sNHTbMSXFT(f399Co}tzbZ(G`;BTfS@)i@+ zhPRoba^7JyCxn^$BFcxn7t#uOpW&Ldpz%aREE4-I;v%tM)b~aG|2#61=|p4{qt7ym$^kkFiGD5m z&M_28bpTx#N#zE5FQV^YM8AMU8x^(F3MB0p^oK~=7tm`7eU~G8GBSnHdxlD7n(COw z==EErGd&2I0T`#|021v^XzoGzL#84F%p5`nLta8=K{lR?^GxM18ZRoB>D|aYCa6yN zA=H)yOmsj#5Yi3#AfwNHiuxNg)vq|C&w#1~(^S`zj6M&lQcP35A7b>`P(92vwLxh{ zuLtT8rq>}K4WYV}3Bfp3k1^dB`FO}$WP2RHA{&HInHmC(DSG^6W~d)uVde|utIW(sz6Omjw?Or4%q*%$6J}BUnubvSHVYYz zY|aezR}1F8k8H`T706c1J&bG}@-dRy^mUjFZ9^6y+cB#XvORM@Kz0bB^Q&XXAtY@_ zsC_y!Lv`u`UEvyZ3%QEy9&!iSBjj%+wIjHnB6~4SW41SQKSTCmhK|#hnSscDOj8^7 zXJ$Hb0Mpbjv>j;bhc}p}ej3CywfSJCsm+JLnk`~ zlYt!0G?i-v(^QX!8$O+73BdK4(JdB*k%#+AT%#=ZX$c#YJSOI4iatbr2kRLIN&Mz8U;Ln401j*`A9l976R325wrIo7c)}58N9_8aH6xLsD76(D|{CdDMpcnMpt%VCGHaL1tPb z4>6|;@-Q61*zSg;J_Co&(__q`c0SIWHpmmq;Jj6I-h!dm13EUC63A1`rm|39f=&CQ zu?03gewLZXk<>0=sEyAvL+yHj8EVUm%upNu%nbFzFYr5_OV7K+jDx()%qz$%a39-X zTP>I~04bS+^Fk};3`Jri;-FsIV$K^#o0+~y9D_K6kuGzFAq{f|AwA}x{b}x-IPW0C znS-%SbLhl*3mM5wLu3>)4Uo~y8HkKwF4{}SGG_=fj=A@c@yz`biE%*OJIF-l{)J3p zraUs4xm%DakczfiicDiJ#;Hzc&TwP~Gvkn%%q&Oxn8E9T4nh|8^As|hIb)DHkc;|` zMdmRFV_4@iXC$(KIU|q{F!K`fLFQuY(02*q?m`x4?nNZVpDv00k3yDWF2=HlF-_h#baoY5GJEQ!OVQ*lg!Yu$};y1vK%vu zkksyA<{&FDkIGN&1?C%MMP~XSD=|a+tIXWZ$fud1@mz(Oy2z@`7-ThOsv|?pEiBhy zhWflF)WLCYBkB3z;~1@yo+GzNP@FYKosvNxl7ZF=t~ z9`%2J=KX@Ca^u|cFed2x46&*2=)3~DzCzb}iPIK2j5#<4&65&=aYpky#HR5xf{B4h z`WXbZIqet3VI+-3kZq7O7J=pfXwJ0AIpjEIbw*NOf(RnVGeK=O0X~4EFp&wW(-k}s8821 z(-yg&SwoN;LW(0d!Y1tVP2^_y2FvdtzhxHn!?qAA%XhFH+fYC3U{+V;_sklN{2_#1 zhkj(%801c7QD5z19@Td@bB`hSFoSy1XIYvf*MGx)X3eE|{uJ!5L%zFrVhgnqSyKo=ReHiVIr&$vJppPsSl8eM^ z6LHZe7B(v4N7{_$&MgOAJof_9Fd2#TAPiCG_qJ4p=fsAMFR%Aj5)hUq))YnQ1K|L+J78IfSQTaeVj!b2AjnPUAp?ar> zpq^F+qid&DCKGFrJ|?>&sg1JGZr>oYAqS`}s7=A$j?4?8_Q(&RHo(}m(4R$hDuFBo zR2Hf~(AcOQ*r@lj1mP@XR;osU%{n)PGR0<#uj*|kn}USi;*GTX)G^c@+aidkp0MIA(6=CA-^K&7$h3L4mpfm84`nB z6>T|n0pDik(vI;P0XczY-ZjyJKo~ z&PSL_bv()pjk{yarM5rL=&n#j?>8sVR@7G~nMZXj49P~)cp|^UX(r1e&oEOBd6vm? z$aBn8L7r!_8}b69@4nVWCVL=%W~Kx37bbfmY5aldh@`QC<9kmcX?y^Ernac9fj)y< zRBoWp*Va`=pT{j4D?p#MEvhrnXLIX1bKgYXU@qvjmW;Ts7#a&QgrVTvSD7HpWP1LuO-qWWEG1V?XHs%-5KWKF@5yY?L>%C375PD`<`H z(H`;>W}^)=r!spN5_Kl_8RP~)J9?;7CfXtMK9+k6;luDHA^|CxNP=BAr z1TEW4RYjsqM9{L!6vm#fiOgkm zUBQ>f#4Kb!qw5U50w!pi2bh|Oe2|IR$YPAHMfi#{u^m~0sd>nfOl(7zVsy>H_YjlR z_75|f`}UP)lKSBhM)TmlN13EPDZ|trW;9>xd!ES#$U2PXZhdu`Y>0e; z(LAoN9+Px_)n_!P>!baG?1Q9z0nJhR==mV~BI!9mbCy0j4?(_-q;n56?VHXwki(F4 zj)A7*G-C1{WMii3m`#`*j%>;_9lsfq?<1Qt-2vHx$??dROw&2riqY@c`C2ng=WH7$ zKR~|DG@Y|;nVg7h$26U@?V0=(Nyh`4qx8`+Kz@d#{em8Xq97)dy{U(ymbC6S! z-IyMV?9Sv$WDiDjgub3ku0r-=G+*fJ&E#q%^$pP6p^y3lWbkUNl6AE5a@AJqZq_se{5F`E1H(KrD41Csh4 zXdcl={SEYcXTIT#<_CQvnB0jR$!M<7H;T#K$k9wMMUG)|5At26mm$Y8c@+5`qq#ue zI3}+mX$%3)tNCc$fV_sJu>v&5=A-ce@((193DAd-lNeop^?k@R)q66dc}*YnAJDv` z?;}RPC*-4k0!8(vz5zw;LHz+9^%adLpx^QI(HH{!KcQ|8WkkpqT{K(}@-bb!rB7ppw$veoEOmsu8VyX{v zH51*DYZ(1Lg>NkrJ&@}d{ceSCJrg~V8yNkbg>NGhy^xz2{mzANGZVd$TbLS%+{y%% z;TuN3i{bm02`a-jrUoIuV`4vYJEQC2z8y>)K+-t|bdB6c=M~78k#sJBrncJ2wG^k`5JOB(^<%UOg2JNnLuYFsT?31BM&m2gFM7!6Xap0bCE}w zY>GU}bRO~;lg*IF8C?(bonW##@+8v*$U-JtAWt#6PUt($WJ}~3M%N5|XPKnFJ;&(! ziSIm<>yZ~2T}$y@WO4)YXQrnje_?VX@>fRJSbV=Rxe56@)6#3ol{&caa#EM52HE7;{9TfBcP^MF04kGI;^n46qMtDzYtf z!TxERuFNWpq;h~a6p8bk(A=sY=Qi=)LgIWTH23N6#k{wXy&28t`TH<$7_u*;Yr=kd z47_)c{Ta<+`3Ep>IFi~IXimsaZ3nnFgYXXlJWg}se){=6Ap|XtgAcKu>N*)d$NIHM zs^=`M$7`^k_O%f8y^LH0%doy2as_;ii-tDVYxl>JJ^oxsjYSZUT4HABwk~Pz;pa~jUnDxBwlBTNA=jnyz$80@Duh) z?X;J9A0Q9FL9C~?IRryl8qb}Cr00P5F_Oj*#tzMi z`e{sDz%p%r5pb?bN}Q)eqHp}a1KQI21bGdvV|yCUH{nk#qka8AQju79|LL3?v6}n2IDr60X}Slx&-{pV4Md~xIhr==OVM1{W3C} z*{>mUn4x{9${l!y*;J2O%$tdPmf0JT&p~Z$-w63U^S(gVVP*ufE}(C{ zFOe@Xo9aS+fHw2yBbzd3BC;#9X$;^skJvN@dO|-eW6THo!$2%wL*jf3pnq(P+W_?$ z*awkA0Ivs5G;$P-!Ez?@T^NgHjHkdjX5T=*&+NaE_8sIT zn1bc|$d8y~AwPysa4Z)&l^H*B8nYF0IwrY=fk808~rlJVx_~0qO&wIl{mKScv`O0D(o!TY+56XihP(gxM0g z6qez+_mI>sU{kx%bG}AfL0~1LdCI^lMst^e)y%q%T*Ewid@Zv*L6qG=I|NZy;> z$db&NjV#Rs#&ob8v(e7M+RSNqVjv{|q|b6!MJxxsk}`5JR*T_fgDHf9bz-h?@? zAe%A==WdXW0p=qlwGo(U$QI0ej%>-yhsajUOhmS3<`ZNaWI$%uGghW@Zwy3p1Y~@j63H4JJW;lj;l(?Vs8g92)0TXSAQQ6iNHSYk@=KVG%6G@;xLy2F_jNGKNz}1eY`C z4stc%_|6R^l@%PS`%lclzJmLhvkG|vPU0NY$g^+`%My8kIlm!)Vb1UPRX4@#El8W$ z-yv}h68c@AtY~I`gN$YNR%9HrQP-?AW^Y6Kn7tW^{v-Cc$ePT?xXr@&B{teF3*$2j z4!#kRRqVLFa`6p4N&b`#_h=IlYDpNX>{ ziTw~~FB0R1I0upFYf`ixeV$AGPU|twh=ab*#n>Va`aE|db1)WiH!^Mp9) zgZ!J!S&00TIV+JEE5wEQ7gttoT4?-$M>& z62~cVpLstDQ8Ie@&T2 zKNL1&`eh{gw6Gnvc@^27=^n@qFa+a29XSCeVfk(37w{#PF?I`Q!E7w!ye^yrbFqxR zDx3$XhmAfcT)-TRsY3K0al(;{U@?{>k?6C+rC6q8QJv|$pf*_#=dfH1d7e34k$*5# zh{X9%JbE6+3o&?3A(aCR+NBVENetB+p#@ypb^fz%gATyYI0_kIh*87?J2Qt81jPp}L zX3#FDvY4T=XEW0TnZpdVM=mp)k$KF;xH*;2+>^)x=3*S2dVrao$OoBOk1Pg{qs%3c zPe27MKZPVXrVFQm`g0B7Z|-Y!HR^zJzf> z^p8T^+`^o`Lfk`}+(TKsJ;?jayDH?>QbmNl1o;p=gYr~G;%|n5uvZ~F6cP4HA^)md zL^yMi^@<2*k-z}~|J|!C(Te}~f0BN~R!SNEOy{1hyO(&nOUG99W7|w2!ut#QcYvgS z2SybA@P?uv2I;>NtUEO#^qg}*QmBa@|1=HmYRkI1sJGXAbi z9obMe#$TH0fIGwYlSAZiIaW@TpU4@wTmNFYQf`pn${*!Ec~qXpolCFCKjl4Ts|eh= zKTQQyfhwgQQx#NI^(_7t!7Hj6?&aTE^-=@XTllL4@8b^VpQ|rJ_r%<+wyWLhpgN(> zso!v)^IKYKqoZ|_&eS=&m@ciK)RlA%{k(3V8|jw1z3!&_>cRRQ{jUB%f2^nD?-(q? z-!WLPzrnqW_u?-JoWdPqFYBB7F77)WZpGp5)B!6W_oOXjmB+oaYgsQ?FXLXYZLChX z^Xvd?DDIU#4tHby40o8FXDzi>Tbr!!tX;UbG~H49SL+(?QYvt_(kT4Rh73E~eh`1z z;R)O^wYps!cVm6cZeh2>9a#I=gY04U82lZFkL+poY9eNywB63(MeIp=BT8K*ApUE0KHjk}@uz&*|1bVlG#<&&IGote&D z+&y%av(ee+?8Mzhk2z&pX2Vb^Sx!> z8gH|=-P`RQ^iFu^yx+V(yjx*1%!EaUC52^%<%AUrD;@S^Sf#KUVb6y(2x}D9GOT@A zx3IopgTvkldpGQZu#dy0hs_CF6!vx4`mk@pehAweb|man*u}8RVK>9>hFjs`;c?-q z;eqh{@RH$W!pnzO39l9YLio$!O~c!ScM9(rJ|KK(_{i{a;U9*77XC%}yzr&rtHU>i ze;2+h{6P5e@U!8+hF=T+J3>Ub5m6C|5g8HL5f4T@9Pva%#fa(=wIg1PcrBtuM7xNt z5q%;CMGT7=6EPv;qljq{vm+KptcX|_u{GlRh@T=3M-)a}h`1DSBjQe^jtq;8jZBI3 zN9IMAhH``%z9*WK=>_dQ?`_15pn}Js$N`RJEw*qUuMz8r3|iZB&=2 z-cfHvy&W|=YJAj`sHsu2q83Cgk6IhGC2B|1o~T1nC!@|s{T_8a>UOk>_M&5=lcRmn zxzWX=ABip-T{*gDbe-si(T$^9MR$nq9^Ef`Nc8aNvC$KwKZ%|Z{Z;hh=#|kMqQ8y) zF?wJ0(dg6BKSy7Q{xkYsj2#mZ6CaZn6O1W{DHZcrOof=LG0(=-i+LrcSn1kF_U9HkNGlYe$29%H8GoGw#V#_IT&*y=3LBgF@MC|ij}b@Haa#bHZwLS zwpeWG*e7Ev#ny;@KDI$@qu7?Q?PI&e_Kh7J`%dh;u^+@vjhz*{Aa;4|+So0zJ7V|5 z9*R8~dp`E}*z2*k<5Zj%7ZaBp=ZnjYD<1bqT-mtFaW&)W#5Ig-9M>wYLtOW`esM$M zhR2PKn;7>=+>E%d;ugoPjN1_RZQPG>`{ItqosRoC?n>OBarffw_=x!U__X+7d_jDv z_{ZWa#8-`fHoji`EAh?ZUytt`-z$D#{9Ey(;@^*-9RGRzm+|xCm&LD%-yFX^es}!A z_!IHx;(v?(BmP!`OfU)22}uc=2{{SH5=tjLnNTUAM#A$64H6n9v`lE9&@G{F!r+8= z65dVtAmQVL=?QZZ7A1V0us-3NgdY<2CLBpPm2ffPa>C7oyNOm}cw$^)YGNQUKe1$D znZ)vmRT66@zL5BGV$;MniJcOACJsm(nm96XT;hj`pCx{gI4^N&;_AdriQgseN<5Hw zJn?MeuZh1!Yf_)2K}o}s z#w1Nh`Y35y((I&#Nh^}pC2dXmKIx~V!%2ln7m_X|-AKBVtdql%W0O;o{mFUBC6XUa zE|>gt@-xYGlV3`1lH5AEV{(t={>g79k4Szmc~bJH$upDZCND`|mAo-|Tk_82{mI9Y z&m{knd^P#6wqtt1svr`wQu1H;%x;6Ft)SprhrxvDO zNWGMLBlS+2P76zmO-o7hr{$%UNP9G`T-wuV&!p8&dnv6+TI;lqX+6^Vr@fgrBJI7j zNok*^%}kq{wj^y;+QzhPX*<*QryWZ>llDv6)wI9T?x#EHk?9HP>FHVN52Qbo{&@OR z>DAJoORt~)YI^hZw&`8cd#AsV{&xE4^zrFa(x;}+N?(w^Jbi8Ymh>Izd(sc3pG-fW z{(JiM^xGLK!^?=tNY3zO9@m{G4$mI|0e%;{#`|XN$srvSNt`#zXKxR2BHFq zfs8hBXB3EgJHqgU`o&*%nOzXJ{l|+d^-3{ux{|BV3T0$V8>vOVE^Eo z_)B;11t$eR4bBYC4K4|;3T_N;3+@c=4;~Ai3H}ni8vHAGAAj*KGAkh~Ju55gfvktJ z9?yCzt6J7`S@pAC&1#<2Hmgfk@2oen-p(4GH9l)f*3_(7Sqrk3XRXcJlC>jiPu8KV zlUe7pe$Tp|bvs*Sd)YDB$=SZ_-0b4nk7Sq4uAE&nyH0k)?8e!xvO8pV&+b?B7xczv zPt5)#dq(zG*^9GRW^c&;Hv7lyec4B|PiOy}eI@(P?0Y$OPDD<8PFhYdry!?P&SN?WzPJZWjSkdHs@^5*`0GR=S0rA zoU1u^bG_We++c2r+$VD@<<`i3KDR+`quiFc?Q^^3_RSrf`%dn=xgX?yoI5>tPVOT7 z4ZrpH%W?;DPv>6By@kJ07MJJCdob^@yr=V?$*Y_9QeG4MHNTE|J@WeJy_q*6@4dW9 zd7tLZ%$u9HByUyT#=LELJM;GE9m_kDcRBB7-ramFKRiD!KQ%v)pPyeczf6Al{3`ji z@?Xe*IlpOsoBU4sJ@W_T56vH$KQ8~n{Lk{g$X}elE`NLe{`^zC#|WEMP7 zP^O@ALCu0X1q}-t7qlwqP|&AfP{FW*(FNlRrW8yqm{qW#U|GTHf=vbA73?ZFP;k89 z?EhizJ)oqhy0u}#boIc%5SuWa$S}Dp^mI>7-9=JBq5)B&f+P_X0TB!c<6s085ygN3 zBZ8O}!GK}_#Q-X=8DFy^p6Wg|aicXNPC+eYzO* z{h;3lrE**3dULaLeYt_$zPWk1YHmEYI@ioSId^RC8M#w(XXeh&y(o8i?v=TXxi{wC zntNyN{kf0k?#z8Y_vPGux$ov4%Ka?&XzowB$8+tx)_HC7I_34q3+D~UE6g+U%Jb^- zhUSgRn~*mtZ+hPBybJP{@{{=|<&VifJ%4ikx%u<*FU-Fr|BC#p^KZ!C zkiR+qzWhh>pU8hMe^34!`3Lep%KumXH~By2|DG=kS{1Y@=vdIbAXL!5prAl6C@ZKf z7*a5@V0^)u1=9-7D_Br)alwj$s|v0uSYL2k!QBO03$_(JRq$fLs|9Zr94z>_;ERHP z7yMEn3YrT&h3yKv6y_B6E*w-?Tv$?AS(qpsUO2k&w8FCs&ncW+xTtVh;pK%5g&PVt z7v5L6z3`dBmkRe5zEk)?;b(pG56wfVQRJ^SC^5Qkc*A?Gfe0%Yh z;)ja27e7<{Qt{s6cZxqK{Iik5 zI#Hdf&Qi};7ps@5tJJmXI(4IZm->MEnEIspg8GX3ruv?GSp8i6R{dH1Lv7MBv@ET& z)>G@H4b+OXs8*rXYs0itv{SXSv>DnQZK1YQyG&c7U8miw-L7rX9@4gJ&uA}cd$o78 z542CUue9&A-?Wt8Lig&~x=#=2ef2zD)#G}#Zt5rNWA!uiDf&!(zJ8IuT)$Fp)Nj;p z)$i2r*B{k)>d)&h>-+R~^^f!;`d9jQ`Y-w)x^1*FGL3AbtC3^$G6on0hGxW#DkEVG zGe#NXjfut-<6L8|vB+3vTy8WN*BiGOcNq5?4;wp-XN}#)>&AZLL*t0?wef>-%t%LD zMl+)wqTQmwXuoKFREw5IYoddrBckJ?6Qfh3v!drm7e_CRu8OXWu8VGr-W7cy`dIYI z=nK(TqHjjuiyn@C9{o1@bM%jBQ%OciR!QfQo+Z6X29^|+L`y14>Pv=|oKkXX$yp^c zO6HU-ELmD|S;?A`>q>4exxHjd$wMXEOP(otsbp`-J0%~Kd|L8V$@e9{m84=VV%}JG zED-A(%ZsV8c&s{R#!ilnjhzvj5}O&DAG;{FJa%QQF?M6@*4Uk~`(uyBcE+BMy&T&Y zdpC9{_F3#`?5EiAm>q8&ZyWCv?-38j2gD2GM!Y;;7atlQ6`v5F6rUcS9ls#HB)&4f zI(}{Zrue4#J@E(QkH=q$zZrioemMSl{M-1?@jv2Cr5UANN_&?MDlIN8DXlC`lnyT) zU3yyS*`?={&MjS3x~%l_(uUIOOK&N?qx9a=hf8;qK3lrG^!3vHr5~0aDgC!n^-orY*yL%WsA!$En8K#wrpM5#XP?8&kh%3djZv+TXH!)2eBeOvZ(*&k(1*RDMtSgXNExKV817{I&A8%ik~mr2NbB@5+BIx61#l zP%7G2bgl4L^r^_Lh*ZQXsw$EdCsmB8IK5(W#km#pDlV+Jq~eN-t1E7(*if;#;=YPU zDxRo#u3}Hc8x;pCKC1Xv#Wxi{R{UNeD_d2zsq9$Uy)snUzp|iGuPm#qtsGK0vT}Uo znU&Kj&#PQed2!{6%Bw1`sa#)qTjkxATPwF!K2`Z*<*Su%RUWMTxbln2e^>reDJq+* zJXP(gx>V&<^{yIJRa{k4Raup&8eTQJ>a?n}tInyKTeYZaS=HrL4OQ1y-BNW&)xA{@ zSM8{JwrY3P>s9-!KCC)Y^>x(`RmZB*)h(+tt2Zl;zq$Ut`bX-YsDG}0PyHM92kJkn|5yDt^*`4CUM~}^ z5^WM46WtS`ME^uVLQj+>Y7;{eBNO8jXC|g4&PyyvT%1^uxGHf?VtwMa#NCOliEW9e z5-%oRO}v#jnD{vHMdIIyUlJnGob)8yCA%bZlD(6IlEulAWMwju9G)DVJS};4@|@({ zuCOACkwCX|tu7X?8HXnL)Fk znQv-lsaazVHbWLclqShzq$wZQhBt4?> zlNvv%X(hO)Ch4M@taTni;q-~Z=>-KpQXA)*Gb}FFbK!KYChNFe9k;9Fc6Cm>h+ayQ z*W=WS8KGXxNU77#j8JE0q>gLUrx|f(jeFF!88N9=$L;F4U7gb|qUqec&S?$;()x^q zThLt0IJb*)yEr$9^LTL{FV5q|dAztgo^ubAr>-OQv=lYTv^MD;450H!#Nb5}JwZrb zdxRQj25qAnClVMcHP=h2h@7|=qh9K%P`RB-REnrX9uzdsBwy5YnvzQNjOeDbFie8x zqSE@%fOmzdn>^8+FA|m1B+o@9x`3B>VfDmW5rd0*hjfuhJ&#aNB#+ed=x%eBhgF$8 zDm745-W;MtL~|*j(LN-p0Y)cgNKymTXjhUdFOzpVNm~rgaxe1a>zU8$ndBrZYLYic zGk6lTjo3I^gYIrW4`iy$1w5XqG8gc$rpjDEi&jluw4qWj28)al;cZONKoNI5VsEU$ znV_cX?%wilCYd~?%mp-1M5QMqszz+8YE1bgPu^tip?i=?=N<~DISS_<3TH|voCYYI zflxTqMd7Rug+osi%)16to;Co((v&os1o)W=Nf%Lb`b0tdr&29qFk>2|5>O*%Fi10i zZD`hdDXms_WsG;))R@-P8TgB7t%O@-2QhBb-7P|&OmcRNaH@@6S_R!WRw zl2EEy#@Ng6Mr(sZ#*ex%+loL<1}PA{O6Gb{?167-1b zHrILMs86srJ*l~(#@v%+Sy4+}^3Wu7mQB5u*P!#lbY7UN$VjwRQ+LKg!3)!QVLC4? z!R->Z@aJ|js*jrok^ z2sLMP6wc@Nh(NnZ3ioA)gbv(O`Zgq0yRnM359#nT^Nm^GU*J~*9LJ226BjuaY!KNPg(Z2ONm{f< zmJ2dQYu8vBHI`eArBQQtllsJJnXJ^OnvAk`BMFC@;CloQ)FjOeg|q!Aob{n#VzE>u z6V4=Xk=qe^Qj;ej08L3JZ4=R5Ai=aYN$IF25gCQUFDR%plegcbt%C8U(M`7D1{(&$ zH3i(YK}?HXVY<+YU;>zJqCEL1ZH~c)Pi57t*E)=%noP(@l-MT1%~fg#0cWv@5@TwN zo;1=0ARSX8$_yQ4N<^JSYbwb!3L=5VyBUen7OT_%UDN)l)F7gk&=za1wWpezEaA;5 z;Wd=-29(fT46<=xB8RWlBx!am+IbS45lgAmE~2^6p@ipI!t*TQ9g8t%5mH5GJYCYJ z5uK?Ni4xPQwJs-<1Vm{2A!@8g5B%&xLLs0o%$($^7{ z`_vdVX)X$)c4{)llps+KyclBG-#Lg`>W;yR6ClUm1fA;YfKv$2Vkuy7?=HPZ<2 zk7zE*I%eTIlEx&_1(=q(jl=T8%6v+VSW- z3B)eBGg__2i&nY0O2UPOIdlOm;JKJCd3gIz48+Y@LmP~H3|7>JtI}O%m82(ClQ!HS z)`y*TxDJJL5rxBiD4bbi8=MKEaAu9d;UyGKFDRTzpm1h}!r^%o4k1xEdyB%M3kqiq zC}{E#GP|hpcqHhk@pxot;hgb!WN%U9@kmxsKqN=J>yW4jq~RS-!|M2)*t zatio=Zo#`rPz+d|A8~O3OO?jDCz51o zF#w6Mt%{J~fwPFgRJUvPq*TI@@PSzH2swhUsWXj9pt0kSqz0H73lMv5Np{(i>>MOH z7?33QA5z7VQ^yOdcjyA6?<@rcZ-?v45NBb(9UeqM6f{mK>cm;|Cofo7G~=u(lP{R= zJP>hh6T2Hpc0Q711VJiVNTh@|QDZ{~>*=&pX_hFQ2?1l%Fe-swpkv;3ljp_vB4lIW zm{6Yv={8J{^sGjch-f^J%HFNUyP&zIjjfnU3IXFWQE7Da$#kHLs4-F5DNC}OVsI2C zQo>t9l8H@ZYLe8VPv;(*vxG6a*4Q#eT%?h7?x7u-8kM2CdZGbaO}8_S(`d}xn#-N! zUt+&lq6sa*WH5C}y@T1DNkAlN1j7YCF5{C1!H%(BV1TNTg9zZxyTS$%xe#Zb27@2f zjd7H)*pau12E0dXN0LMkV0$Jccc!_}#DxP4<5kwI8h56Z5J5D4L}PbDC3S=mSVUaC zz>Z#$hQ&ZkYjz2fu2LhGO){KA!D^GB7iz3FNv)v9YLn=K8mmpRny4{(h`~^!T`}07 zjkwc|v05o1-qi@;U`oskq=106iGmTvKoOH0#OR{xvW80~7Z@?IR5w)RhELdUgELQ@ zMLHN=Gk-FWPP$&4>!|aTA{=^%kO0A}CB&ez5sa{+jPMpm2wOx{<|UPRLS>;>**}5q zaF_v5-zhZqhcr@~5sg_`BNj%D3F0z?>&#J~ka~v%D40XYnFA*?&B$tE0KP{C5;a~X z`|?S`hPdcV0tL4tdk&1pWHo7Yom3pm9icjteMpmc#UvhtyFmk)>JA4pcN=YpnrGS-4>Vjw7gU0D+w_mAx;G(SzoK0cwYNGC#(ce#B6?=!^$};d{i@s4@9T%u(aj zx~7d4SA?AujXn9K>k7C4-yI?Du9o;%bw{VrKHMkXQX)BOJRXOUBCadPNrxn58xXIj z&U8j35m(+=zE#Sfz|aw2MHp18Gzl=9JCJh^Af5*zO$Wb;7i}^@+^7PpX@h0TphY8c zLsDe8c#mBxgKf6K2GSrU3Wtg286iIukv>N#paq!{Ec+TcOz?u)n305`=EyK6=<*WJ z+J!Bg5sGkHO6Taf&W@ITBJ@ToKxciTGa%I|5e3js%3f#R$Yeg#-LwruD3jO};b~_| zD2OLajt-d2>?Q{ZOy+r$m=-BDr)v~MR?`jDx-KVYyi9h`Ou}4vlJ>!LrGwl&I3NVs zbas(+m%Vv?2J0__X=a>=@j03Y&IwW1aPb&JWrHFda6nuu?GO@Al2jRNSPiyR2184n z&Y(x!@ICXA!JyFK{WB=V0vDck%wT83;F!1JqE8OC8EpLwj=33()eKHc8Eg^_4#XL3 z84Y)tyj2G0fDGO-gK{~DfYSaMoQ^bDkr@%9S%jG{V)FL8^mHlDIZBh9Q=|u-1}KQL zOd1F^k^nQ}5E3;K1e4K=$$<`&1=i$vhsknla@fNp2}c~2o3k*RoZB?ng*Q3HX|gA8 za;DQHvZ^LI`|w72`#A`r^9JZ{YoL1(h}WpbX*B!3bK9_JBIiKUo)IQaAAi|Opb=x!>AW4k7U zEt3OBCM!UbfHWLd9-YJRCPQbFLue*PdQFC2CI@^?j`W)B?dk0E=yl9)lwAa_Vq$U3 z&17dzcjH{NFg!wHsB^Mj=d`KLMp5VJxX$>``;>P&(= zs>y*rlLI*>!$331JkMc3lOdbVZo1C#MxE0PIy*Ev$GlArxta_=Opd&oj6zHfz?uw3 zO!jq6#v~@k4NcO*&~;1~J{(|@PR2#%0>*|W9~Ce;dS#LcQBAf^=80f83l|wF__M6f z*xNK{ixHOLi)FgP*TMKdTW6fwxcqB*NI-W-E7_y#+H273qwCvglW zUDQ=w?1mW}mNPhQW3cHlI0#}ebq&t%84UakcKZzWYYaCA#?o)Fmt!y*G&oLTu!tJW z`UZPI201&x1+3@Y3=IQm!^I3Pu^0&(9K$piPaCc~%$UJoLu+tU*5Jsw!LbU1HIYH# z5_r+hrXt$q$Pp6GWIH09?2YiEBW^f|q#u5|LtPXO3PL!@nJ#LM!9?N6G%h+4j+)ao zYVMQ#h#N*C^579?JUrs?1Zoa@qsHxMo~XGO9T7#%v9~Ck>7sDw!jm8?gI?SxiHX=} z#YM(a9K+cf+!pkpm4@R;ZOpFGY|@go+x-AQVFQ>c&;box;L)pM1U0s zMM#@My3ib(%JgLRK0#e(Hx7?#9PLCwI+=-us4;CEAJRZCe2?Klge(^tFx!yHLXF2` zpDsc(L&DRYOT1|6iGZ3``uF!}-9Nr3{{9~O$Mx7ht{aiRpJBigadSB=#SzAz%u+~5 zkT`J+8s{RI70HSsn$Da>#uPPXDKe2T#mtceo^e#l*($7$`HUn^ixTsJE`Lo9eds49 z=k)%M@5bNXwZE@pl)tYV|7ffIa`hGtInz98SWNe?ZNT^BiPboR{NsD{#CJUN_f}!dzprb5@wGGh z-`5kdzrUOR_+F=;xQ-muKV&HO*BrpsylgTupu8h+D45I)DiNrr#b|%+16n!zg`#wk z3V2C+mBaIx7cm4MQ9_OMhjZ`&4?^2HpWK}r25=>T*dfWf8HKxtt{{=a;#vkieWYQI z&P+L^gBneN<88P|s$C;M4}k2{)C5Ph5*!{(a6mpm`-FQAU#JPjDhW5rL=!|}foP#I zc2BU4)EHAG2%zB+XLKZOohhMkW{p#7WJ5HzL=EArlKCyN?jD*fQV|R#OD2 z@rctLh4TmsXCDxAcL;)-^CSvZ3XJ3v1P_tibbI0bBfN!nJRXG|P^0~ekTZi`oSCT! zq8aYF13A6mq9ckZoMqxk+UbZZ`m{&M6KH`<7fw|X&qc^fLyd_=UK(mlEb`J&V`5PR z3^gVe0VdR#ShVjL!R>{KMPLz+FbN2V;1Ql6xl*V(U88Uoje-g3ayjiSF1pQ`f^H^} z5D4x$%f#tRXZukw$;p90&6x`dR(s??phjGW^U-{dhb1JBd%S;cVuV7!xabUvf|p65 zX5{yHJaT(bbM^=Yk4Lcx)OeZX3!%p2kz0-$FO%YLsIiu&FdS+;9tCbt`3yP-Bb)M1KJxRp(%h&JiP>QJl`bmADWt_nu#8v72&Kos|cDBYGjdt$}nBj zShdhRQFG{mf(4jnjT$om1;((S&ID1=BYZd$)`@7Qv1Z~knh3Yk%whN$CUs2j(Pv}9h2wpw1U4bV;O&a$6EgSu9p4{RWS3v zuP6R_{V#x^#TX{z7g5f7qNM3i5UHZ1)KH@(N7)&SvVx70ro%mISHesZCFKM|P8%9^ zFS4f>Wf!lG@pv5%8zte>Vq}TY&gl%tS7~2M$dv)C;u?iDkRT_niZSXdVIC`C9;I@=#+drfEKqO+|~d9~~>;v5q#MQ6Or5~b<9Opd!~d|U_x zvjT$=mEB?v@?$Q1fFdjDC@vKA2uE^}Xd@zXKo>RQGLGw_ zMibdMVhWbwh1+w8HY+xY^@1o5P!0#G=MMnMLdj{~E| zbAihYbd15BPnAA3`qb&upif6BIm0@iG5Us%+4jZU5K+-H)$o6aX(YUh*s zNASt{PW=OZINzy%_~OoY>K_Q%`R>k}z=BG#EBqXT=|st6)R;~Lvr%I@k&llW(}}P* zYD^2aPl{IIqQd|vm=*-VQRDFlbc4P;9)&|uh1wgH+V?w2T$MOdN|b1baB$$ z*=r6V927o zIafYvWUyDMGD0%kvjglj8tnL~WDGzTXRDA@boK~wBAT_~u9nZeupA>mM2{Gp)MY4khZ0%lX$)SeUE49L0w4BCp6*Uc3gKLmWE0?mBTR@UBBa4CFT8UMTPbDmk5@ zU|DgI6vy9K;bV`O66`bTaIi7t@ab6$WK#kJL@Qc)`rsvu93SIC#la9jYi+@5|{!sTg=HFf;AACdpzl=34~`@TM&cbqC-c3a)&xN zWk8$anjkl?t#j;N;{#*HiE|gcB>pX)%4$M${Zqm?kY0Dy#2LuZ(?Fc_RyicVxB?*> zmUA~n$YFYoO{~gs0{6s(#wjL^g;-Lzm7)6)qCAta4L9~f{ER+{R+^jDp`}1CkQvfB zCBXWvr+&a^#arxJT3FUyYzf(>-x2i>;>SX6QK+hWAkr&DfbY+#hUku1)6@ipF?X z?#`XIR)6-Xl^(sL?<=pAt4W2B-2tAdM4uI_qGSHG;vx zFqP9ss;gAVI)Fb}$B`2QbK(#Lyz8hl+~e)%1gh?y_j6CJv!H6sikch9;B(xXdnAx~ zS0$~6K55n(XY5qsPjIBet>6jLoBD}70*N6q+0NQE-f4|ji(oHZWb>?X-~rwiU1X)9 zv4sOA=^}$r_eiJ42Xr-8;#^(q1~b{hX?*%za}TKV;bhG{;K|BHbGemIi)!v!C`O8! z+Y6sE)!a3>0EZ7&X?%7^0)uppy(cOb9 zd<;-$&8M@<(;3R@r1_A1Azsp5-O2}ubQV#aw@T-&(s`?N-YVTa9LBq%yQhkHR}3bB z!PzB)Pf!|sl+kd1&*s z!VyXo4n0vgJBGqxeH4yxp>Px+3P)?8aOjD`QF$mFK}W&k5js;7e8eTeM_dwo$T&e! zDcs}n_}oi^D2R(Z9#IfA9*?vXYCIkRB-D63QvPa!kE0~q)QOuAA@h!Vygt$>sPX#v z0A_-Jl9k|dmpNbJ&$hErUGPeJKjc)SM>)c!=vv z-UpKjX)+;AA|xImjx=c?)QFHKtrp{vz2)Ci!?SQk(D)~&C|I+*?hWZ4Ty%CC1)*jB zr2%RVOQCRB7zOvq0esHF<04sYKHiOCxfcSeIH2LI0foahC>$cAaHxxrms>bng&za+ zK*SpOC8a|GSRlH`KjA}-*1#waKRcza`6V2vIcrD3K!OkwYP1x7rv_>?y2>e~7=y$F z?MiJ4F;Q)dYo!!9$FVGD1QZUjP&gx?a7IAkEE9z@0t#n+D4Y>cI7>m{&U5L?D22#COR{^78`^8~+-beIGV_97lY1>(FnQYa zIg=Nh*K6L4UJEXmb3sx4y!mkP;4Aj}`2AwW3+Bz5K6PQQ+C>Y`owwiu z?#_7uH+^gQyz^%447^jkON)^$#^Np5n_Ar6;>8wUx9rz)bIZ?Kb#7JIYAD`AeQB#B zc*FF7*14@~TaRpgZtF#@Z)yE->piVsZT&??3%oUYM#hSajd&aM2N|DdSQ&qMCU|c0 z?Dc%4v{V$O9p2xpDvOmJ$}@N)^T*zvc;E6|?^^Fsyh*uTW`5>LnP+9r&s>^$S?1N5 z*Ji%bMrm_On+0ty!n=<*wRyG87j1rRlWNKzp4r4mZ>2Q6A`#U_}VPA*eJGSZA ztz)2LQOEL*LpqM>cxJ~L9WU&-yyI0J*LB?3@vcsZPJ=sL-0A(!nVtJ~KELxFogeOe zxJ%D2VZ6O|W|tefZ0+(~m!n;N?ApC+RoCfVSL1!NJG*}9^ZEw(&c@qgSNrbtJ?(qL z_nA-N&9KGYYPu!6jqWzJ+XdZLbX(i)rf#?4EwC?jd$Zez-M;Ded$*?UO855Ndv@=S z_r6BES9TxLeN6XBJqmj4=s67UTOHl=aL&}67yYgM3;p{7#esW+-GVj2yMhNoZ9{WI z3qlu#4u=cF<>6byqSu&S5BJ*M>$Tp!dSBFgRqs!Ge}#8sp4#WZK9BZo*|$&MioRF( zJ&gBMUfA#D{+;^Q_dl=ywfztG|89Uj;Nk(x2kaT>9oS`H|AD6uylvno1OGkn&p}m# zmJM1p=#@eH@Rr89+)Hww%>6YlFYlzh%k!Sd`!T<7{=oc+cnjjI`RRhz1#!I5a8bd1 z1&0c=3d;-6!`ld-E_}bJRgqRSx@bkwqeagZ?JfGeC|x|TxCCzsTvhy7@qyx0q)%ix z-ukyG@=D}OwXNC*Z}K}&y;j|>exQDMB9k>?j6=Fy_-HrAFNN)m+Cj; zEqZ(K=DalCm=}ceb&4?yZ^YYVJZZdRyl4CnZ5hpp_KucC$3#z!PK_>&-WYu_`e^j| z=)2KF(O*iuC4myHWJt**yti&O-dVQ=@2Y#b+qJjhvHAipO5d0ABrE1 zA1`fP+Nm^Hnu|Bf)t8PcJ+pLH=|!cNm98z_P`agbTj}$7kKB8upW-cYzm&={rL0p~ zpsascQBg448YPrqmaln=T$-MuWT$?g2fpvTFKMoIpM5;(!!Tz-PcVNSm$_B7b&8^KF4ECn;cBdNjm(oiU33$xLe>s@ zl)b|%R~fP!{&M4@Mm!>xz9B9bhS(j-3S?ZK>f@7B8Zng?vd}N1eT7F1Z3w4x?5gG& zUMU;J3^`A{?iWi%naC1D_J=ph2dzTvgk7a%`PRsqpQTTPhl{qNQ;*`;79VZ=K2vm% zYrLsFw&|0qWqRc9d5Sn}5A%qgO14jQIralOYTNe**+q8ln@TG*R*M&M#4&Nc*dX?ax5Zq!K^~JY zNL{X$v-OZYHnmHn>@FLP14V=QF2{P^9%%Km-@xBMyPy5K{7wv%4Pu4N3oW&~ zcroDyOt>Nc!eV2jXd^rI5TSiPiSCV}D)R~XrBC$0vaMmB`{WB=Y1pPGTNDTFeoE>Y z`wX9WR*~(kGdy+=CA%V+?UQ}J?JZiJ8WL@O^^`xe?2`|2ewT~9AlG%Njh>B)xUOj< zRwftqQEHZzl}`)_Pk)cddg)8iLIiWN1DP#+b~0eKu#(u6!Z9VXj~p=Wi=&MpiE&nm zF|tJL!QU8BB33nqvi~y~0^RD@iJqdDIK>Z!?<#x9;f>*}9hjW>bAw{%LNw$7#mlMHg{KL%2co%KKCXH)r{72xbL5Z33R{K1)}u zmRHJM;yQbx-ySDFm5p}h+Hiy1EoRDE@l#w}Fs6sNV4UbUyitZSWnP2q(_hZ_%SE!} zn3#M?*p4ao$eY9gd9ih+-&!r65tmz8jo}-ESRc}>o&vEW zm}OsPX{r0&;ZGOspm3^1%`Y-TjtT|RWmZ){>FgC!P80Lw2l66WCR@uPVtuftslvDW z@f+7a78Y^uB^O>b&p&4ImOWvyL*5{FdgU;YSuOg9PW0O-+N0w-zo`8c?N4b4^D@1{ zZj|SO!w>r9B{Bl#IW!r*ICZzJIShiO2fQx@Ji5=CGg_v_J@#C`z0F;3#LBa~T2EPb ziUZsF;{efrN-V>;Jk zZ&aEVHTymD(|(7j;-o5AfN#Zn!7Ps*QnH~p0-jku>m;b$F)}5#*;AhniVH-(^vbcj z9UZV39424$h!+$wUsQ-ivce;tQRIs$zwgwBxnrl~4fw3TUuM?JR{g@F-&D^F_dWSk z=;wpF=;9aN_aP1~8pGM?dC;j(SQ&Peogrt)gJMS04rPseNlccx;`LiZt7{M4xpTu1 zaiGUl7fxC^)n78|LD4pxS|*;3X;xlP_`-(%k-w#Wy>Z(-pVN6!vskrgZy>%|q~_#I(; zfFk1yWQ$@sz%S2$J}n1#?}P>~gB^_g+)ozX6}AQ_LR>8G{3K|fXP+Y;m4~c3;Vj#f zQ{<)cZEsw{H&0dp`<>vy`Uspt;B1tu##lZ+o&bW#v}U zr9dS8SpxsJiVyZi-fsUaZU-lJ3TBhwri&C&g?V^jqI>;2U*?CJM_X#T$}9A5aJg6n zel3yJq2{4hWqOks3FbfL|I)(ygm(16$2-F}%5Gvus!S1g%OzjPb74Ko!1m*y%paNS z*>l^jJ-_?^y>n8{+VGl_PF*9%U6d(@ER|=Elvn1+$zo7naXJjPQr9nNPf+B$&HwT& zRpfi=e|hZjiuEwGn#WqGWZ4G+xx8XtFiW;MTecb@`}pNd=?5QN9Bxc+6>YrM?Q*}k z$(w*y^xduh@la#8YyD<@H;-cvM_#^@a)Xm5+FM|DkstdVhU* z*NvjxZTD}^?B$JCRLPF8B)`w~iHpR*pG4me!Z&AG$UB5e|xJ8RCqf4=Q1ljLIcY|7C!1=Zo$lnZXfvC%H{+tBDB4;&(<>W@0i?0*0x8go*jsb?6CM!gdTsWX`+PJgB zS1R|31s>}mvAAiSGSWUGuAb!C@yMZj-}Z~FPwR_|;=^TzW<2@MWnp=@B2T$Ni~!$k z^k*-{Zi0>P7gIz4sLG%JolM>qUhfq-o4)x>WaWrDStEMM_3}n|E;(}a71$5ujq5($ z`Mv+wH_jMpR-Y;Hf1`H?2Xt42|Ile>B05oe`c>?BV^vr_rpVFPL45>ncPjVT-Q`DO4u)DGew9@c|FC&01g?2tbf5pf)L_CS z`w#dK4|vLM^IG=?()&H)aRpyI`JUSX>3wYewkjV$VO|-uzPr{Z-&v=Km#t2on;h8x zymGYRrO!owzv#24q^L2B3u0A+91H&5}B+(mnd{jpE9`Ti(u zjVJ$W*+#a_hxE(V-xtGRXJ^2owEjc%M0edAWa~dKxKXhlP5m3d9+dgr8%VE6!Hng4)5Gn~ zo{PQBPJt@=xgw46(^tr4a;f-H{^-dPnMc2Mh=G}8N^b!XpKiaTFwyjfgcvjQlQkqX6WK9 zu|WxVRyYP$Zcwrs#J}ZwF;rR~%afk$AB~X#bpL-6OY&TLF;P%MP+ob{d_f9I>wR z$b(AUzRr_X&ku`=rbpoT1kx|c4+EZBAjmeRwJz|-GXU%(0^Wl@JDw#vA35~P&+(6C zXW6a1d|(!w_ny6EuPkwmXfFfu>@1NXhC@3|1?s5Jk_SEFAtlSfm9N3>SX0Dj;%f03 zkcL<%PZQH+!;Z`iUNP%QQ7BGsgo7;(G{~35a$ED;x_ntKmk02yTnNlMLd-oY^AfMT zW{R93r#H%Vnewv+@wvR(n&KDlW&oNY=pbrEQuGI-o&hj7Kz5Z$Str8?O-v4_2WEil zI{=E5KsB{T*rQ(5iENkv9agF%_`C+ZbSzjN3}kE$wC(ZVdv;A%1yb!}VD~b6zt7T? zHK_@nzMqLUqePkC>L3=2UDm1L`@GgLInrunUu{>(y8%xx3|YnfeEYoOl7!6$_SBK|$<)p@wXU*x2B_;iGzx9nz zOx${01jS&#s6P(*nz$8fcqj;zS|CjcDF|Efm~BL{FmAPN{9kJY(v;TPKCLjUM*oK)DP${g{oHQOg% zRmATO-0Q4l_X`G6&*HzZJN*P)_p7S>p6w zL2*scx>B(pN^KW2;Vj-P_E~{ctTCL@8s$4yS9`tRzDd4mcWDBWUDFg5Z`ncXmWE6r zGoUf<5%bXD-Qpg^N9N0WK*;&{Lx~!$hs9$VQYrdYD8l_E zKVo4(x*_2m1orDM+Wr8u*j={$P4BrjAz^ge^VAb>?0$Okm=R}A9(&THC-#Q2 zeHA0B04bs;e{>i=|2>Kv-vFoIFJAVGSKyWV#rUu-*N9hwVrdXSz&f0dShg&gM*$`=>a zH-sA}jGZNWUwNk-(jzPNrA9@H@n8N2ZY~zpIDCkV`lUX6->0zV_hMO%Vl+_nYksj;jDv$TzQIx6{~Z9y z4tVZQAMw2yv}23#c!_uT#HU|-^OaGqj6Xgvs! zwk%!NT$Zj#m&xT~nf-wMAmTU|2CWU22YB<*u(+w|M|s!+OWklKggGjA_~jws^{cEJ z7@C>lO7T`!pzZSir!b>g^tWJ1B3K!{l?0f>|Q^!&%)mQrteihsc?~_w=<@ znUOVvhRIyNEEw>n=yZNK>wk-AeB4cRMZ^jEX0~<9mhj!yOpnze071{gn$y-6Yl}$R z_>}mx@o8;wtj~SvgYp&ykaVy|uJwvrMci|vlC3Ogs_@u7myMJ@+24PvqbIKwpL$_O zS`LzfpqzT-$|M{x+4WW710-tni{Hc+@ql&H&G5?_!~)r0^pr2`m0S1pkbSp~f3ETU z%%cs*UV}LngT5>qv>Dr$E)dr>7bs$IhWjnsm#Pxifp(wDEr<`Dtz?U*&|3gT@7t#N zHz{HhnCw49f3s5Wi&WG5*0OZ5NCnb6u+%FR@u8LFkw+Zw?_))LWViK*%arW*f=%<` zCBpvP6_lUD{aKDpuawuxYh|gZ6w5Xz!7>TG92{F}pBVu7;jk$c}f_~?wR zrhkD**NSb;BeLwhf%In21qw>f*^nLaBWyDego72b_$Y3S4dp-A=35W+wY1_;Xz`j=d50G$tiM)zp0n}L;RF#wlUE5-gL;-cl^?C+j|9=KV#Q-+Qfiel}k>J>m~_gn+CFW309 ztyc040Q2tbNEW{pgzmx9p{JS%k$)x{_^`A zSmrshNIV@97YCHx2t@P>q^J30_rkqEV(or0V0MnczIF0VNWKHPPU^7)?gymobicuc-zjrUt4#A7fQCp*Tp zBdo~=`%F<7lI5?SvHPW*0|&Nam7PWR+2?&65(m6HVXRu+A$@+?Brk;1eD6G4x!~MUHEfr)4hm%JmJs8@ z2tY=g-m(Y^HQER}+ESk82l{?jj8TAs`$H9$;#RCt_5u)ur#wdX{aNH)9){m5(>I8N zaxIphJ@5Y~69GZ~KMO2p|JQ-img1P*&RTwYc$%#L+ib4i)5Dtgh}bUv^(2xB!`Ajd z=rrBJe%JS3gtor=aIeVN4LorW&iyl1LC%SU*rA}^2@c@H;y^(tsV=Mf-6(a z|C1zHX1o6+lx@E&UbS0UrW!g~zeu*equ+lSZ~N}^*F}d{Gp*Q<;yKY|y`IBCZ=aR0 z60nhmov;(0fMVhMi^1js=>`m~q}FtI+IzC-Sk+A{CnIrRb| zQa?iT6JXSTMdoL$EEY>d%|~Co@lg0yS*OU3>S>5`bRDzzNr23)XLw}cHc^^mh<_4T_!zA!Ze_s&)_(lG*9%c|P&oW^u6?vPaw@P7T^4kn(%d>U~;h zI#MBjp|H%XrCukL-07d83v05TUDSt z?ta(E$G`va-KU}}Ky^zeSJm427_vwrrzr3C%T2H)9S|jod^b=`o*EW|&+!~tvVHE^ zIpc@UC@vbd?a-2teEuSjJar2q5!qsk9|7ixFu`XFLn{B0r#u#xCvWo<-#+V}r*d|` z`_Ko!>>52`JsjzwlTJrKAT#eP*$%1ZeE4%+!XkOPXYaO`c7;T{H+3h~-1BEjH8+p4 zxB3PgsT5r{1w*O)ZUaB91pjva?9k7@lpKQB+O@QDKq&i(VAEd3N(NF>#2EMnF9np4 z&+aJKVOO_dgF@$fM4O$W)n3uZ4_xU-F!bVZL-SVI#%td$_RE`)ygn72{Ju5US}LCq zFWYlM;@{0D`(*uPFnYb@DSq_S75+Lxq*)oPrTuksoARZ9+ zS+^jp@C3pNUmyV6UhOpjiLaz$0avx~$*pjx6NoxqT8iDhMqK}yI29J}LPRZV<^7@T z)Lo)2^mU-y{$RlSOSgS+C0_ys#vvJG#Z#JMm86Gw_T2sS;|Kg(p1Z1HefUN3nP=0< zRhtriILkS3?ye{f%XLjbxjvQe5x3^bL5Jm7f7y_WFB%zsULNr@-tfY;_xj&{YUYT0 z!3vXiQQ&ns7+@r@W47EgIa(NGbRJ6{cL_lljbz6B;M%yBM{fA$-(G9=#h+Jod1 zL+q7ddA?Upt}^73klocQmVD$$vRvS`SBfWwSc5{@1B0`ic%6IXBI{={$Y+n(ApVqZ zSvW+nPS{o(5NbRK^`Tw&NcawKsyL;1#G8TCSMtyF`lVj`9ebMxS)~PD7_-TUV|*c> zgT9zA?|?=e44|>>Qefkpw~IURBd?#x5bK>-(VCsf(L7&~?W@Lh|a)8(b@r}6JYJvRPXmPt;|3rAB*Lud<h{tt@z*Wk6#4B3hbjb)g;CoTDB8-GzSLo@~WS>3fWkkd7 zvF7@%ZIDQ6;}P?A;50>NvDA;y_BnE?Jq*#5Y4R#O zvr<+=H!qq68oe3xAdAoyA)c{_dYl!Mv4Mb9Bjn(4)10OlTuEe9J?Ev?{FS~Bq=ux2 zishhdz%y3vvRAF}?wf@`3W6(ajE>8n0S)koFy9p|UUsa}KxM79&L`_YR)jx$)-?VqjJ(?2m3o2=oLV*CyVcekmC_ly-+5T zeTU8nFBh6b9`|{B9S(84hwxTU5qbw*#AI0#;vaCPs)!o&hCm}Y43_t;S+&Px{oiZ- z0TK6;(0%!#@Ap3zzRA8%xjxYt7}PM5 z;Gb;|THl|K72T#}HTUqPpH2Om`ZfJ*`q?Iw&CfQYY@#xSGW~2=Y|Cg4HJzVYkj8%x zo;p8uemdloP3Jdc71^JU?2Xjbhu*%Ym5h*`{PMz6!~}6w zINdIAe_o?^!*21Kv)5pPVt*hEL0HE z+u)JA5C->bKF^oFC4CDla>E)cPp%eM^pw|#2HU>|d$=0H)uV?Dh#m+%thW7Yy0#aaUHyu<2l^}s=#wf2&*{M_o7)|^<%HUc9Peb$fSb1%5H z3*uxkpx7=rT(k^mt33Fc_{2BqiW{DCcJ1#Vter0!gVtx_+MuXAkv2+NWn!1tx(xBs z+mIEp5hcCdMpA8;)lLbdf6K5w#%SgS;;IedyTwQiA~D)2cQ4_*vDsJuvz(lVu$muPK5dCw(=c#L&mnT9=h6pW zS$xDv|5X78_@QFTU_Sjw?N!MTs8lA)fEE0rDlDoqsvAbV`d-d^uf6g?W9Y+IM%CAk zJf${_Sh#%UH|5w9dqt-gUR<%_;m`--pl9QF*=CFE?w3!1&13S5Fp>>(;D62uNW?1x z8N0+QIM^oMQADZL2)6Ynj-r(_3^AwWF*zc<6!lIrhd*U2BrFW z3ZyT_aa{b}3@rDly==Se=u8(u+*G;`{2u_rCnH`k?f>SR>VxpVl*&XAa_MzYREzhmJos_WiG!~%Kfmn!Cqgo}Iomht)LZX8 zJB(0$7tig(*Vk3#oHz^%rm{~_wg=KPJXR}34sYuEKk}RrF1b>6w^X@BSRp%KLAvWU zq2qkg+#Gw3#1}Yew}mX+zyqSY6@lHtNLPyPwhDx0Ik)6=ahudFAfy~?j=&dz3r=T< z+FG)^9kHD@VibUl=FPI6wvYO(UU09Mh{jvPR;GB;_69to?W#cf5!qjnyO9nnluL0s zV^JfH1{vZTL^kD=y~=Bwc7FEwj+Iw!2)!Z}du}=>x(T_>Qvn}a$_vBwNbFxMa+@9% zyHk&fDc)?@Jo%pdQmn?X{{j;ZYPvvKQkS^A7KS7KnlQuGW_y6W*=zU1$%tBO#M_6~ zZ8#XRr&)s>=KD$&_sfxDSqO$ggmGN7mEBSv%t4Q>nn-v(^wm-{f z<;^*AV_zVjZ0QLJT&@;FKNSnaoz4iieIyr%gdE}AkX=N(LE;5*Lyp*ZOgsx+qBz|E z$PSI+e9zV#2U)DA=+0-i;-(cVq9y5?eGewmUmByZN7) z)s**rzwiBi|DUpZ_RO8z=FYw6o_o%7V&$`}ydb-4XL)&(pdGNymrvWWcx}C)g=pt^ zdb)J7{7_A$Gn?&HxjM8(s@o)RG%cm6Dw%nxy>ty{q;8i&TCt}jvdxvV*mHJRZl%9u=LL2^TcG}+&En~_i8W_GleXYzo}Cp)F*}P=E#TFQ z^hT&3NqFLak}v6IdY$OsOwzi}%%tOmPHJWVt%sfHAMxmqbyPdCSv2hAoousJ{b0Lw z+*qjPYAj>P3F|mr7WZdsO(e&6Qrl@?YLs40)hskuT$4{&l&*%0+J{dvskxcb9S;Ni^@F2_b;(u9|)4k0z z$*hEA=78h-M}M;;h?E8I`AseB6jTqOt!nU4GO&{PBl2>KZJM@QJ*0TrGUUCyBU(^* zDxT_2ho?^4GPJ$wA)-B0pSs`Oy#L^PG8@3Xma#SKrm7x6axd31jrU%@eEPtfU(SD7 zw{C;9^0cPcWT&n2EJ536TOjYS&EmCbf>u>~&a0mCbHm`9YzeLiSMIU`EsSS2K?{{{ z(wRwfUVSU5r!_Brq^%1r3ub}T)YD0dzRix3-AZG1>^$0KvOWiB2`(C%dE>I8@mecEJ|Nky4sFy@4GW&6M(it5R=vy*IrZyEh5!#;mRT$*UcB~D zE+aoQ$qOa^9V6S+QpIl|&0xj+AqaX)9iiY#dsU;a7RJEQ!^PNex+wr5Fct z7Ta{KE*+-XvP^WEMmIf`_*`1BwGA}QkD>F@SVz1gmW@-#$m?V}G5wo?jr$c!{E?=O ze;C-<3Q4X{E%{bO@XNP)WUBkfLZCRiGylV!;|uoWH(+OqkDC0=l+GE|Gy3n!ctzHr zk`PSBg}H(+SJ$bXB(o{B(A1P>LeV$FmG=e5d$`F2(eu1A& z?Nlzv-aOl2a$JzTcy*u2Ca8VSjc+v0E~s62v)})oKehO(Fq_rpS%v+~cmJ(GweLq> z6>3G2`Am0zvl`r(Ea78W_0#kglbPvhQgD)6Ok%7M-(Jox$^Kfne2v;m z+XbP8TIkym=_9`#!M-V7oE}2(2R0;w4Wh=fLne~Kx-`l=H{ZsyzC7DU)uy*i-9S^d z_k%mko#r;0YOOTGx|3|`LlU_zV|K8&;m7MTCaHr-#?%}+JbS8JNoZt%-Nc@wb+G3! zvXi%vuI%B1oS?_^A6=x;%J`q^R4x};PvwK?3}n0^#M}DQF&e3B@SvX1`Cv>Q5n9+C8 z%}muT@{cqaevud=Ym?r)Hj84z)hJtC^}V3YwkPo(j;sH}={Fq> zdy;~pRGV(I=k^bru3qEE9=|s378#OdldPunp#k1UU>}$pY4HVhvz)+dUs9b(zoLb! zXL)v9H;s>Hz3IhJFVcE5Ual|Kr+H{RyGWiVWUsB&_praSuqEUu5a&oTeMJiDr17Bv zWIW>Wh@}VFNF@2uk1SK$&856sap-yDI$O6=Z zEwY-)>g#VF5)%J{21+|mI3e%0^hbZLc zlPS?5!c$wCiFWi!ygJL{KP{bR8+6^KZldL)cGjiuQo8Uh37nC)vQ5vv9{FY{bX;z0 zqXhG8okT+4b6ejDCi^5u3=JUH$B*BAjQWYzheDOA28TW+u}$BKUJ>M@N>`p`JJQry zw%`dSa}e8ORoap;8Y{>pBtDJ|?__^TInEQqgSNnQ3?mn#WuSPbdQ{&9Q+FICo2zZM zBJ^Cz!eEsBnxOsSO4LZA%q-HVBOflY2@+pga+{#fn;S`HNX?}49yeOJS*^EJt>(IU zihZ4WMfQ^91)7(7*|v^uk080kLb7TNG9B8{Au!(LA%s6;=4Px)04XxRVb|r!X&X;qzmUM_v^HC(T!AUk-RyHj8yCo9WJ(qpS*}{ zj}#XYZs_^z`Xsrm{F_|h!46o>yhfwEmqXycp)WVuvhH>|wbv^P6@Z=l4x3460ArO`Ic^o*^6-ZK~UG6@5M3<pkafEldIxD2MX!nO)8m$4(K-sURjb8&kY(ot zLzJiKPm(8)Ig@Dum7$Flv?zNrNh~xiL;Z^M`q$}|qcgOqTdW=JbN70%Tc)XfdQT<6 z93BpLNs;+c`jeuE@ySq(rk)29pQJtz%(M?{r7p_w2uh;uPPJaFet=>AuejJB$#p$4 zVs5Eqlr0(T1BBXBATSy0Fyg-W4NB@~K9q53G)0);xFP;V3(i9#7DGz*26 zqtI@+lz>Y#T&lyR23(Thk_wmpa2W@eEV!(I3njP+m*;SK4_8mP7J+LZTqEFG39eP( zngG{EaBU6OIdI(t*Zpuk4A*1e1HcD?{{nmz_!{7oz^8ye1^xo~E8uTJC=MYMLU{;P zAtXR(1fdm#b`Uy27yw}igi#PCLdbwH7s6r)1rXLkxCG%AghvowK=>6VSD5@^3WKQv zOjTh@fT(_EMq!L$mdopAGoTNK=4;8q82P2tuaZr$NF7;dBBHU)0ka9aYm z<#5{oH%h!0ZinIa4sLe1`@=m5?o;9ZJ=}kWSQuge#Bhj_5aS@$gV+dS0mNS*euM`H z4-a@);1LXuvhb)1j~ejk0goB*m=BLt@YoKIL-2SF&ro=#z_T|z$G|feo>$;`8=g<$ z`39aEyxigC2d|RwstB({c(sC8XLt>O*VpjMfY(xZ?S|Jmcs+ub4d$XSSAw}F%ynQ+ zhB+1H{xA=RIUVLqnCHQ~0_M#y?}hmTya8`Fc>BUT5Z-0rT?yV*;2jI^M(}P8@2>D3 z1n)8M&VcuPc&~)_UU;8__jPzbg!ixTR^bEqc)-U8KK}421)mi7bc9bY_zZ#1Ncg0~ zX9j%c!e=Xd_QK}}_?&~!75LnP&vW?v4j&DLO(-0J!qF()7KMAG@JJL+N8uSLJRgPk zqwrxAK8?cXQ1~hezeeFVDEtnEWfXBi5ib-eh9V&-QUOJpp-3+jS&bqaP-F{=>_L(5 zQREDYTt$(`DDo?c$nXt^Zyorygl}8;c7bmn_EZbl?2+Jv0uE6pFmOtPp!p{P~ zVEC1VUsd=e!Y>7W9pTp-eqX_F9Q>xkZz24a!EZDCzJuQx_}zrxQ~13{u_zR4jAG4D ztRsqbMX>=WHU!0nq1XfzJBnf_QS35`-9_=rC_WCwzeVx&D82*5_oDbw6u*Gt?@-)< z67DGBixO6psE87YC~*S*mEhkH{>kv~4FA6HUj+X(@ZS#q@8EwD{+Ho@AO63>{~ZEG zA>btfej~3(NZyeAA%#FH52-q&x{!uJS_$bEr2CK_LwXMBEhG(A0oKB>`okIqYdKhB zU`>Q|39M^j-3#kcST7(j2!Rm@j6z^-1U5xrI|Oz`V1ERDgTQnI<{)rA0`DUz6hRdc zG!#MKAn02J%|K8Vf)*lZ4T5$c=n#U=Am|2y?jYz1f__CXkKh0V2O&5N!D$HYjo`ru z9);jZ2+lBM`D4AzKjg5g`gfT@Y$PXfi^(BXlf6a}l};p$8Fq0iib$ z`Wm4OVI0Cd5N1JG5W->*mVmG%gpEYlw+NeyuvG}#gRrXzyN9qB2>S!2EGX3)rFx>& z&nWc*rBsCT2zN(#G{S2lyf(t?BfL4nQxV=B;lmI<9^umwo{#Vq2;YS8JqSOE@E;L= z2jM>>{5OQ#P}&`(i=ebWN{69z1(dFa(zQ{#2})<9^g@(giPD=;dN)cRLFr>C{TO8m zp-fMd8H6$;QD!>I%)}R7_~J`^@dRHy!xz8f3l$Nrh%h6fI3grO1S2905s8Qxj))zI zxPr2=C|eI@lTo$}%63B8-Y7c+Wxqk$ohbV~%2h?V`}zu5-W}zOqx?3MKZ5cXQT_qS z|Aq=c1#eVnj0#_(LSIxEg$ffWFNN z$kvE#kI4Rr9E8aAh}@0Hd#D_T%41M@Gb-B=1w^?c$_G*Yhzdnic|^5CR2M|`K-2(4 z4Mo&wL}ef<2T`jKwFOc85p@(%=MZ%jQTGw`6w$7TE{*6)h>k^cZA3RgbbCa1L3B?< z_e1p8h#raPbVO$$dNHC45WNY}-y`}IqAw%*I-+kQ`aPm$RH=h1O;M#as&qt^UZ^q@ zRSHmLHL6@fm0wY{1gcg=)nTZ56;&Ui>MK3IwIyP#4JV3 z1H^nl%pa&GqFPZ@3qrL@s1}E6^-!%5sx?Ek`KV?`^&Y4`2-QcT`Xp4JhU!_Uz8}?( zAT|iG{SiADv7-?CEn;UNHW#r=5xW+#+Yq}Su}2Ym60tub_6}lyM(hj3zC)}XaVEqS zMqB{mY9X#6;+i6^E#kT$t{>t?Bklm=jv?*>;_f5vIpW?S&VhIV@ji(6M|>FKD-PLBYq>|cO(7?;!mT7D{2%&4S&?IqDD#7D2p0H zQDZY|Y)4Ih)NF*BEm5-rYIa7=>8N=EwOmnaENXp=S_e?;JZk-cgce8`kA!td*olNg zNH~Rr%SgC`ghxntiG;UEbU~sSiM~i|j>L2%W+HJO5|<%yJrZ{yaX%7&K;juB-a+D1 zB)&xLW~jX%wa=pV71Va1jtO-NqmDo7grQDH)aivf!%=4x>L{o?1aArnnrP4v4O*f>8XELLgRjwG92$I!1~bqg8x7{8!6Gzxjt0M@ zfr2C;$sI}FNGgt`l1NHNQU;Rpk+c>`+mOW25NK#ZLkk)Ppe%qc6~?5*k%OqgrS*0ga}k(OfiIj7F=`XbT$cN25b%bP|m& zq0v<|u7Jjs(Krr`N1^c(H2xKhWi%;-CZ1^GhbF;jQU*;bqe&c^)IyVnXwni*I-p5U zG}(wId(h+uG&zr^9GdcInt-Og&~zS}o<-AZX!-z6U!dtbG}VyIBY6Olha!16k{2O) z6OwNr`7V;5pjlfq>wsq6(Ci$VS3&bcG*3qJ4rty7&4;7;L^RJu^EGI`1I7 z#vg53qRnEod4jg?Xge6~B($rJb~VwiKH4=wyQOGf9_=I1zAD-$pnYSsZ-e$-(0&ox zuR;4qX#WwrNx&x_)ka`iRcaZuTsSIE8_%Z`u z&c>Iy_%a_~E=LCsbnr%p&ggI#9owN}7j*20j>FJ#JUUKC$82<5h%|Skc_FPB(n=yN z0%_4mtBJHEq@^IOE7FD{Z4A<;AZ-rP79edU(l#S)FVZd{?K#rkBJCqO0iE2@$q${r zMW?Cgl!Z5neM(Ip>U-OzOqx?VuHLg*%-n;G5w&@B+%N~2pvbgPDLiRjh{-BQr43%U(P zw~^>J0o|sfTNb+IquVlc4?y=B=sp|WbI^SWy01m|?dbj;x*tdPi|Bp}-Cv-)4Lw}Y zqbPcWqenILXoMae&|@HaOh%8z=&=Po4xq<*^tgc@Kci<8^t_Co*UmqtRNAF8nN7&rg}hhk6>3>t$$`!P5egVQni8HOZc$UO|LiJ?95 zRR?_a6TS|`*UvDlBZghV@H7nn9^W*;H}5cFFhv$J;t8I*b5kY17q)F>@$r04PzNdfizCQ zI4_JVhH-%yR|@0GV_Y=G#bI1+jBAK-DHzut9vrag!JA>AByyBq%TDJ3Z!pB`fj8jM*1nFUq<>J zq(4UbYkXS|-+sVE5fh7GVmVAqz{Dg>Y>tVknAjZ?`(WZgO#B8D7h&QmOx%r$k1)v- zll(9#2$Lc(sR||~U{XU&8i+|FFljm_?ZTu7nDhdZe#0aiCc9v=J0=HUa$QVrg~{D8 zxj!Zk$K(l^JO`7PVe$q{-iFEFVe$`{d;ycMVe&mpeuc>lQ(Q2`2UDz=5`ig^m{J{6 z>S0O>rhJJh-7#edretBt0!+DvDK<>yFjd4)53_q> z_7lu0ia8ZAXAI^nM^+57x+7}{vPL57TV%~Z)?8#QM%F51Z9&#vWc`4wGswDzth>m1 zitM7uwjw(m*%go-gX~0PH$iqAWTzp!H?oHydnB^IMfMD2=OB9#vd>~}2{PPC)KX`6rNn z4+~PUU=S9J#exM`umuZ_V!?eZY=ebAV$mEd`VosGuy{R|h*&ZeOXgrnK9(%Uk_}k0 z6H5+a$#E<>izQdF%Y3jb8q1nt*;p)_h-I6xY&(`+!?MRH2tz@66vUt) z76mm>kcfi1D5#HuMkr{Cg61e_iGnsLNJT+M6m&*GcNFwSK_3+ShUFZV`(U{R%S&K+ z7?#h$@_Z~`iRD|cd>@t{!}9Z3{u;|=tSE#PURV)@745KM0#>ZSifveN04q*l#U-rx zs4E3mCSc_ptbB}>zhLDDto#G3+_0($R{3L9U93vRsptK+b`1y)bT>e*PGgVhVLdIMG;!RpsoQw(bYv8El?48@v{ zSX&BfBe8ZQ){e*8$yl3-wFj~G7}h?*x@fF#g7tl{elFJU$NJ~kV8Mnl*l-0KBe1bM zHXg>tXV_%IrsCLC3Y(I!sT($p!=}a9bQqg%V{;K~PQvD7Y;J|kso2~ZoBLz)2yC8& z&9kw2DK>A!=DpZ_9Gfp=^D}IIhb_PsFKqG0mWtRChb;}Tr6sm>!j}HnG7?*+U~3_4 z^~P2STgzZ;BW!JhtzEFSAGQw1)(O~}fvxkftroU5!nRh})*0LSW7{{_HWAxqW7|S( zTZ3)eu*fAPArejAQcC5yZ zo!Id`cAUqK+t~3GJKkc413N|R^ux|j?5v2L@z|M!ovpF63w92`&QaJo6+3gVvj96c zVdp;VJb|5;vGYE5zQoRt*u`O&7k2q$S842u!me7_)daiRV^O~kI5*p-c48?kFE zc3s2n;@CY0yLVwvW$dYnJvFhXHufZ8Pb=)%fjvjDHw1gvV()j@dl!43VP8+|+kySb z*xv>F2Vnn1?4O1GyKq3lfh-*O1>beY!6+PDhl87O@Bna$?-TKTGkpIQzQ2MW67a(a{BQ<8e8f=>M?G=07>*|6Xey58 z;OI&mU5}$XaC8rjeutw+aP&Bip25)zIC>LDAK~b09Q_@~OgL5_$NJ#dP#hbLV-s;~ z4H=f>*l`@MhZB`?;u20g#EG{!IRz(Y<76IA7U1L+oZ@iG2dB#5R85?kgHtJCmR zIL+g<4^BtpbQ_$`!Rfm={S2pVI0Kw<$C<)7Qvzo~ai%)Xbi$d*I5P`p@^EG;&aA|l zb2#$>XI*hN31^4l?0THtkF%$7_5se7#kmbQw+rVE;@laWyM}WQaJ~}Ge}nUra6Sv? zx8wXioIir|H*o$fE_B0%LAWp+7jEOiJzV$|7rWx(OF8<*zc(sKM*6+h0! zWj9>T#N~asY{wM=SG;f~09V3rB@0(_ab*>*?8TMSxbhNLTj1&vTz!LUHF0eku3g3T z!nj@>*URF1G_Fs_^*y-$1lM2Vh6OhQaicVDl*f&#xX~Fm`rt+eZp_Awceo+rW+B{+ zz|F64a|~`y#H|S2T8vv8acehjoy4unxOE4&-Eq4dZs+0lAGlK(cZ%aq2=0`}om#k) zggY&8r!DU6#+~E1a|U;A7wB(E=~N#ETwyu^cZp;l*pbV0c*# zFI(YdAG{oamoxBk30`i+FFyEX8h**bt1s{>7OxWVsv};F#;eJAbr-Lj;q?)`{sX^m z#&6B=+e-YV;!P6XWaG_FyxEU82l3`S-q`VbE&Sdezo+B(eEfa@zhB4i3f^*f8;-XX z@U|-6*23F{csmhq=i==eyxoVl=kWFc-hRM4cf6~JclGhE9p3f9yF++i3-8z9{UdxZ z;e#7KRK|yi_^=xv4&cKBd@O~JY`L%>3B_v2m_tIM>FU>r~El4d?op<7;z#KF8nVgw~vJmNP|h zroo))8t2xMb34kp2XO95oO>J2y*KARmvcYHxj*8>YMeNf6K`@J9On_rdE|2*Z#d5m zoaaW)^JmVhCFiw|GkbF8=A3yBXFkb!r*Pi)IG@^_Pb1D}H0Se>^LfD)j^GOS;0pKS z3Qyw-ALNSob49-4id^Mf`A+40vpC-cobL+GcO&P!i}O9q z`JUo@f8=~`bH0x`-?v;*jw>p1MSZ!V5?8boSF{3Gv<6qS30JfgSM*!1XeL*5DOYqY zS9BX!bU#=0C|C3xSM(uQ^f_mV;4H&A%PG#!jq|I^`7Px9HgkT*Ilo7o-&?Mj2Un~f zSF9aZYzS8@ohx>iD?W!S{(viSlJg(H`G3XvkKz1haQ;`gfQ?+hHZI^C7jTCQ_=%HR zaneT4+Jmzm=Bz((fuUSrG8cHB3wq22yK}*Px#06$$q=q&3RiL{S8^6tavoRmCRg$) zSMog<;>v}Dav=#^NPRA3Di@N&g%ofhTe;96F0?ckT8;}%BS#8ZFw==axwop>q5zdWqwVcEkl%}hcFp|g+BcbHFLUP+% z)2il4wvk543kF{qD7j5qFA`fRh_PxVC6jF(T{vf*B_vfIrka+O>}1Wj?#zP!UJ~(z zXeW$MPa}&})_+a;8GD#&LX}%ZNFQtUylo4O^aR{Pd3ZYWkSPxxG2&B8{^g1~pRTX~ zD!7!@UYwc{O=ZPdlVrV=3c8kU9vTev8tsd;ipxfu56Or@6EQ_$B|20jJ3by);;4>0XmjZiuehu z=x+rWk5f|TDy6F#wX)BYT<=sgN^~4lUR5-hl3GD>ymD{jiG@{NaDSixw%LslwUSZ{&dBD~!-T4BPc(Q5O?CHl~-`?vR@ zlvVYXl&DbAUPKbtI(zC9$5C4nOF4V&Gv^mc+~DlDPaH{^NQs>N_c_rK%E;M^pA)HM z?X>qFy(w3e-dCeS>q%n9KYCSeZCr3Plf(eMcmJ#(Rh^JqnO8rs%<*m>hNY`MA?s#NuAI1 zt>h;i8$gKQWQTr?{IQMlogZ?&##Xbf>L+jrmOu`=?2FT^=!RocGd2XWSEl)Ol4p>+ zW}2FuNKV?WL4;*pK}|cOj`*)YyJorG8Bxz)d!v-5d5kD^mQo_z$!n{WrZ=2;_F#!` zT!zSB{!Az@RP)GnPPor<`BB$yPP`kijZkkMTf20hJ-0`YT#DX}M@^2ETdaDOkQ)iz z*)_F3p~=o;!W(wJIF0CdbvmEZvia<0`$R2`42N&AgKA|$)sxFuRDroPBs=U30#SA% z=Pg)}k&#c>pY@n8O~HD1us@oKW~K3OWDQ3qnv6`?^)56~7v7d^U)lN!1io{G-LxtX zSR}zF3jbzFudX4ZE6PNjC%Jo+vFcrjmRefWiLER(L?@IY$@)dPIO`d#|CU@A z$vGj`9jvs@wl%CH?jRRArQ+X~g?~pi)qNk0>?hcY7-g~3EHzrsfVFE&83bGPt9sTw zX&rHw!z}EYpl;}+S6|fDsCQ{~Xe~deFRGO{igJ7TF>$-9#VU%* zSBky9X!n>^NmNQI8|sUWNJ0X#Dm9dol;o!ZQR$|ZV|Q!i^>T(N9UY4<^LzdSVoU2y(ac?BR}&B?41x1ulluAYy2DB*k5qke}~!D zG0RGk>0o>IjEpi_8M3=8Czm8(mb7y6B@& zHcl;;qSpL3V^`{;>f~P0=6mww7v!=nHCMJp>$Y9oD#~+SIeX@u-ZRu+y~KJ(m&{NH z2diI}3A#_-uZjEB7J6dk?x#}K%!%aP6sPWGTdm~lS(Ts#l8*WCC5M_7W-gmPCmf9L?%SP?PD)k9i55 z2&?i>q?iSFi!(RfW>+`8B)d>{;Zt(u3`_oBpOTTOt(r~mWrHT~@ecYT>-=R?jTy)J zL%zg%lN9buc0yvaEs@h(R8mU@sHIvydhxYY&B$Qw$iwYW06RfmBz4(D0k)29ygG%&OG<0@6G_P%SWQ9u)lbc&%bC<~(QT}Hdk7znqFEH_ zL;q8L+V| zp{1xkmrTVdrQ|wR5;xOSqlU35r!Zg&g?>DKV z$*01LAVoV8Mu`_2O_s~ew7PV!O3wbNY@fPN?o3Oe(J5x7sx2u()E4Sflv2bN79pzP z8%5h|8;ILhpQ0rGYsqy=glGp%QW9TMITax~!u45-Kw_0Alf%vm7hAE?1}=^28^WQ<7CW*ai~kTYWZD;%&)(LqsiGpUytj%ywCRLOf-% z^r2lSwVrx`(A8iBiQ76(zNyAw>S8Ny?YbYf3Gr9O)c!&Z?UozU4&YLt7-dT@DuY- zbS7piY4;am+&79gEU|y)F3BN6<%<2(;wx0ozYypD2aK;z@byMT)P7WEu#uw{eaQL! z3$daN(oXX}YiHD`1#RGJ7)*6wU#tCA6RWe?+H)m@Uhf8?Ln4^EYR-l@yFu%(tfK0# zq01CyBuh!JZnfW(Ok*pGYbC){-Rek}+*~S&Z6tnIb%JboO_$1Bhf4g9bV*0ikFw@T zJfj~rN$`o*ry|~)@*66-xBfir)Fg?oLcBbK=Nxx>uYT^Ga^j~h(?XTssCXBW_TxmY zj&hN*^_7GpRgDV&{o$#PqC~U)LH-LQhUt_XX_M$ts*iq?1loY9+9)UPqV_^nX_<5# zPvV3szvw8E--Z)0kxbF`99|mYl95HCF6io{pFZ#5aY%UA0-GxXF2JtL#mx}>L5x7#{P7^=%;Izzr}%$m$i z-rqtjvr)Vx&uAfPrSE<#kG`vx$;&=5KAIQoj@JAN4tb{7DB;>eU6J z{6wM6linZyDRDzXpmDM7Y9XfmHBHE0*zU9ttNk@e{MFhh(b<01NY+}2YKlH>un76? z|5yYGSTvdF8T{>W#Vr-%lu_S`W0S4)9VXhF6B@>Bwp$xAz$y>vDB7Bv%zB!oBFk+` zn*{ohdr2RLlHjhBkMyq8DO(Z!DH+r%>BA2s>l0IQl_gdv#A<6T30M5czu10Lxz7gE z5K^DYT_sxzZSU;597B)_{B%E7P5W98x}vTXwAZ%vtiC9_wz0}91U8!$$iLdR8evKv zDv#uETBnPTNCG64m4ivgXpwJ~oZOzejt@__dy?*pf zo{Jv_M_P%pjnHCy>MUER@vL>Kxt#Nbm?phn6RfAu)i8|a5BrK}QSJJpw zzrU|2TWZnLPal#x!24*8ah6dZ2kUBYWV5?djt9;H7C)Kdb!9`sqD{_gb*5+@e1 z0$re%_+AT43TZqTFVoyElUw#{zbKPhtQ-M&v}u`@(>+kVZW^=i`MSyR9T&QT@q+<(n+m_%XO^rNfn096h~b7HMMJQF`WSwQtbwI4jg&GL2%MMlRZ7N=pw^PoP8b>-tH$&%T9R zyw(|6s2jSQU2ze;LKos5w9bEKvu(&&qt)(m5Js`uOHe$vTLy+`Ed+;uK>G%f9VT56ZG z_|u{mXES|{N7CHL*(~3b+_LHs{F}+vgtnRv$!!n)QtBu9CGocXKRtkh^9inP>ipgLvn<0nL z;!0rYnT&SpnS#1U?aDgJ-7|yat{D{Uq8r;o*JyGKS}d|4!b*rDWG$MyiJVLn&D`}^ zb3c|N-n%h((WM}A!=FZAPVTBd>&6rGlsiEXbZ2=^FmM84Auw>k_S)XkLhj{m%&PY0 zrw$o7eL#S^Uq@vTmRidUjA_v<$ZYE>lOI}X%Rh8;1eEwcVY|>KVvJ}~uB)g14c^75 zy8NSjlK|Kyb*K_(nW-lHs#3HzXAHZlCx<`FFk;wEqix7S1AZ%8WHEI~??@kNxa68c z4c5tZlC35!Wjfi0K;{2eh;K@ydC{%WMtW_$ zE!9{{^lS1;g2VXi6>X+%Bp)KV2U)ahtaK-}jNCM|tD4Nu>enZ;Pk{Y9(l}7Z^kvC{ zx|rl^R%IBu$GfhOIeWr?0A^>m33GIudir*t-Q=iiG2C*uZJst|Ly#Jv5tK=_`4%S1 zd-ywTw^vc!{MDEmU#L<2Xv@=|)u(-wQC6lrLC5#INI_a!82-<-jNlsS`ZTTD3HIr% zT$f_B3FOfF4L#^6p0)Tu4)XN~=tL$c4mLxZ5~$i7)h+T>M(%)pKG5d89-%S`Whm^U znRe7)`|Y+mI+9BD7E2?YEF;(Lg(Of!B|1N}MYc76y~H|Ot!~RFtzeWh`rHRGS1U`n zFT>@;K0VZ0#Xs$w-D+8L4;Po)u3!t<*i1$cGDeo#S;_S*NhXwyJyv2{=ou5Kx!7o7 zH}bYi><=etKcoD?La7|OPSZ;!i~loi1#6b{{*^NsWh)=nqu{YB3z_c=){T(Ln0o|) z!Ol`kt6wx!>vvU~bSkdOaTE=sVTSs`P4mcP`_+l^v;bOceqB!%A~Nw$5!R+WZU&kSKYHAy^sA`*lR)`;JqHrmGTP(GaC{wn7pj z=||ZC$<$8Y#*^AW$8k(k?*x%XL}8vL=Dm$z8Dj%k3>By&7A&+8a=_neVG<}j)UqmU zNgxHgcwAK=02*#JDa9ng_Q@BOP!-zCwRMepzVLu_o3an-oCFpp=ko+?VpCrkTy=pE zqw7LXkrvP7AVsiVKeNo27tOY;&Q8iP!Voiv=NPApX8KhcK22y9CrVPs8Ip!UX7#e_ zJk?={A$qzX5;gSipUJ75R&1SI!0OWiPk22mbam-JuyTCa40W|E)d_4CJwoM{hX2>C z>5B)anfbVz%-yHxp37vOlx>x1&ZA-+oAn3dtc^lK?I+&S6W(r{L*RE3xxF;Ee7U@P&sp9G#5i4X6h$LMS?p%64GwA8`npai#09B}2 zJCYWb6uF#5rD#Ce>LQ*T$c+j}gtkn(E4>Dia;UAdyg#H5-x2<2=hg<_abEgxgO+o> zS0w4fZfB1=WR^&h2{EZ3liq&nKe~~G4LxO&zDLuaj-Os|h>9C+8{F(yo!=BMHIq$N zQ-yznNuqH*!esx#Ppxv<%Bs*at)5E5kv>#X2K-2!Mr4kI1Te|Nr~*vXp!CNFJ>!rUZ4}|K_xhtSgfYV z`Zz;ks^?y!l#~Xxk#G#d!M$3a+`qB+s;M zyUl!lT*ss?C7!ceYSt@tOBcdJ+FnBQvb*Ww7*-G(I{LLoQZ;JmgR1PIv9)frM6cVM3fTQCNLhld=?PDy#Cm0nqD=P{4hBP`> z#|d3&Xq0DERq>Gf7#Hk6JN1SYm6FD9NqOp27yhUm`^5O&P!sY#iZd&F?Z3ACdWN=` zguk_1NtBlv_i6VGWnqLo&G_l~PT%1(cAWa%8Pv3nsZzzhYKax9`M*vjpR`<`W1#*k zN`#rUZbfS=eb~Gt({XwtRVL?`)M?Aeo9zw8{aJ zQpCxjTDUoDVWV1@+YO>P-Gb^;v8x)sN-fdJsw^|*hy=yA-`NYJCH`cZRZrDNE~6|H zp6Gq2hb1XkPo1YsjuZz-ZkBc8f6B*5+fv=~UqV0Cm#;;NBeiRme~$n~Wu?%uM{QF0 zliiPABVA!g!6v^^OP5hY69`+ok5BvSVx5s^8f!{_GgxxK&X11rk)@ehVx1BAMPf&oa%`h~YsM z#;N6owd>=?VoZd$Mmt*8EYLaJ|9zCx^L9RE#q+qRc%BlwNN#~&h>i?N?_*nCTeyYQ z&L!iEk}M^FK&6c^)H5k&g69d*(aLt1lv{M;yHcW={>Vaw&kWIju@RDRKh~;K8IrJR zn?dP3dcks~4{L)zU)r+FNIq2(mOM77$&#>QHbJ(_2^o4CwU%V6TgFID&vRV3o`!a7 z{J?HTYMocpI#T*bOPpR6t7sF*T?9~3KBmrO)r98$9^3?5slvHMX7V`!d9b3Ib=o_ zVSP8sYJNvCKnd{D!0uv|=tR2GC+se{irv1?`cC4v>(aT7i1QgmQSNSgDcIjRy6&_7 zqO7Cn$$v$R8mA*UdNOf6bJ@Ic>eNkvghP|vreQXPx>~5NtD%(%l58i8d`x>pLfd?1 z`5au7KwbZ1@X;VM)soaQB%~0*j!6nhJ4D$wI&%KpNB3`MH4m2fDPf{IT~HIW>3mk_ zv{@9Myr&+RN$W=;HOU%{L@eJRb%5QI<%$Q7OgS1L{~5TMO&3Rw%A7Sih^?{hUej$! z>fDwkXq_L=##1PXhHCp?+|-8zyreF(FXdBj4k83}$^Ua;=fJEvGqMO%tO&&dS2|eO zXcH@W>In1PwsDf)0UJ#Vn>U+FF&mnxkqN3bI_OB4T6nD*@@M6=PeGvns?A5yJj~`8 zphEkGkr~=w#g=l@TiM1uXjH_ z57@hZK+5!>_^BZ&YSVzOJ?7^34l?&YCsOZ{sh;p8M5kB>Nw^-aQ#9d*MRlBHvKYzC#5ccdOMin&Anik;ie^)Qok}!JE0L0FHfg8+pyB$9By85MT3+1B z&L&jx+ty$mXG(HQGoo*sT8WLt1?qD_^I~H{*q%W99mU+4mhq}a$nIIBclcY#ZlSV3 zA)m|4e7Sbh^oiR8*-cYUTGafQ0Cl>0Dn_HoT&KpF#?cGH9?&2;VSA}{A4dhSKBAyS z)9|+3w6ZTmLh=3CHd22N=TIzGI@;brsP%IRnLCwNeebez)me4`MVU;bt@<3!s~t&U~ivR(7GO@EVdpmjzAw?>(*IwS z-sE%>MILC*mQX~h9QKxHw*{GysaZZ7Oek|-XHd|H2(>!}ktEGRP4zc5H%RR&d`62? z_I$3uII`hdy~4r*emipHV!*zgLrC#hFC(Q5VfmYtkCNc)r-QPYOxiH*3a`#*DJI&v zRtu*{Zp{gM&|4isSk^9gK6VJwDhOKT=j>G}W(zP7vj$RiUZ@=@3W@z_ki6Vx&R}bK z$5W%=dW1;pLUEcOQnU_wUw5f`!1g?fva^PQicpln`^@Espk-Fabs7e9=uFKX3{;wm~mZ)VeuulKNs=iQ~R{2cCTkSr!v%w-ES$>*| z615q8cE>Mgrv_;4)P3qTZ6Kk=S=E_rl4{ncA`hC14*xLac!2D~a^{GHAItw4?)&Ru zGiMDCVnyUaJe{k#(~C-hgvZe8Ed*-yw0#yeTVQo^XqgUXEdp|LXHXy$!m_R5*q)z->v(*Q-!@<_+%1n)P-sQwwCyxDmkPW{`vC}H< zAyDadR;>somr73%_1_ozTo(K*7i=e!_j&NYs+YE zAp`2h_BWLLcREc_#u@jKTwwBJ)2*y8S!){{sbo2D0kPiacv;`mfORznawlN85YANl|=j!ywz;!vKSXS$1c7W|o{;!jf~&IcFp% zkt8`RNZ1{goIwPXAXxeqVFk%3iX;I^r@Bwg{=cVYmcQQn-S55kd*9#tL$_J2o-U-I%R;E+(ds91E} zmHNQ>Gj(*PjRU7?zM-74|KR!a2m1M{G2;jYoq#rXbBdf02Ihl>xtJ^qu+=`?=|0n1 z2v$MYxp~espnmQCl*Osis+PE+aeYzA;BX}ef0*&ai_53K6xjl(EsN9sp*=)&T`^&1 zgJ_1>Ftwkd&#eP|+<@A3EZARt;s7lZUF=$ZssYKdh7oFm0Ezc`dcJ(;K%_6;HV`0U z00L~J@?^-Bpa-w-AFuj_?wC?n0BR|p}V4t>8K^Er)5R-G3;ni6W1xED)J+etH{QQ zFZrvYjb_Z~h^75kTp=?mabi5giDzdPEjp^cso6vN%pUAT*D{5r4;_nmT2|w~tqv~) zuWDi#a)gAea8SKE#?}xjG^D^nof=NakHYXKWC?^{`JX`TP}Ewc%L}E^f6}nze9F=~_4=3L^Aj(CJY746ywdHA==0V(%yXc5ek| z5;^}r&yEMuIMUb(rH58ELX3qzIGp+npR;P!Pzt*AZq7Ad+mS11=nQ0TP<)+2L{5ZITU2QYADV@Lw>Tcq+7PQB;E1WE-u8%T{k@QY_8v3c&QrOs=;ydK2 z`lqTsZ-D9}a)&FBi3_XRnKnB^oe_=c4Kt_s05f%*uUl`YtECw=C0g{?CEHQrXGF}9 z2tGYf?$pML``G@Zyxa=z_CgYagdwSHnK7cuVyGS=hCfcXQhon)M+DS3yH18J51bC$+RZm=@NBlPD?f1JY3= z^o)07^4OhL9p|b?rdHh*nr_t%pWUp_nmuQhm-_{|@<1nTOwxY&`uK&#{Zw_%EGdb`0L2Xz?;0@PN(c0)}! zn|dQM+zaYdRx!?Rg>=`G20(5d5CodFKF{%XXfu6M%K-0d~CO6l07 zWPlAiAIFt^M8*Af8(Ai;hQZ}ZBRihWf_JE<-)@W<9}x(Dp)T0ZeSsZ8U3k3IJMCYs zbAxZG3^oJT1C4mfAYd?Gy>KB5wPDe{tLG4h_tfMmri3238tb`^^w0^1!`+3Q&zAy9pT=<_)nA)Z|r%LTHwS~oe zU;gDJfe4E=d=Gm%!zGHr08uzx0=tA&`BVzho|aNbr3AFYsrgiG)XCHzS5c`{>;jd5 zC$fsNutw;ii?S>N0O*J|kKeW)uC=FWv?=2I@-gn>@jq&j*xj#6P_@V;Q#;csy$wg| z8;zrC=_}JH;I7!NXA?i?Elv(D?nM+pFYp%a0yJxib~EMhHz%q13C=4(Ouf#Pc{nf1)Yr8M=cz}hP+v*`i$~0nhpJMM2aQyE zttv0_Qjm(Y_!p3SP=Sm>h!@jZj+ca1!jCi7)YeoAx76P>X2h#}9$^|8<5eD%n8u9K zDkX=S`oBu5vmYU=T(}tg0T%sl0J>1eWK)AS;co}iFE{(tfB)gjvJY4m!tzX@mRAuG zCQkq{!17RAplklI^B?Mi@}YS(gawQCBPLiLZgq_(c~AT1(yikVX{=1;F%J*g1!L_k z`K9|8A3QSjO|v2O6oAl!03&Zf3%Kr0>?v$o-hvFf4*%Zb&I*0=XuQ+)IWHy6ZLRGoWjQ-=(k z3H8rA3>O%vZ2z;;Hs?sr(4`vM62BJk-8izFv}FI$hBQt8fy4~t(hONZQ#_LKYh#-qU{OE?Z4hC8$!o0i#cuJC~ zH$h31Gj1IDg0!F?BEwX)ii^T}#1)~_I+WhEpyxwmEFCQJ>*ymyP~L=TDmkKsynijM zg~Wzn;K11fy__-3dT(Mspqh@<646FZ&PQLr(MDQ+)3^h9qzWGzi)xDiyOJ022jw)G zQFfL0u+L@LL(Hbl)D?=Fc25JVWt@_U)CB$Lr$vhngts6Os`khPomN4>IDLlOBN}Qo z5s$z~%jqKhM%8$|EGUbCEq@I^fuORrKDOsutrqC_pAfDN(>lb4fo3wAT77?G+LYaX z;WC!=>#(qw7fkJWM*<=k7RJ!*!E(u78s zuOZT?a#kDD0)|)4YyeHk%_knvJxroWW`K5$g}JDVBlS7+65 z10S6Z_Y0}?eyO}wYG0$yB48Ezg~UMg3kT5~{Zb`Vzi_mhg!?r*(l2DB_p1N`+ZFgr zw06r+3_gSqV0Gw=b4TW{JmIGu#*F?0g8jW5UGg{;3jAsGd`>w>Qz5U&hh0NYI;J8$ zjO2n8%Lh;L)?+c8e`|+tQ+{&%5qxoiV!Tx3Zj~bI0>bl&cF5-{y3e&Mb) z>DIU--nJhS*<3GzzIdKq`y+s;*Q2zKEh@HR&0DeE9(s>+29iGiB6-jM&jwxSlPqBs z`CI>jjP{nNkh8!(-)FoYVo)7=`d(~*Y#aXVo452ZV0l{rM(>b9TTkGbppI_#ogzM! zNDV_sk>bTxkvNqF9tZ^kRVOSH?Z^^TX)}W(DP9R=<(I8E5(6=e@tY{*AUKzvVq4wX^4-;;4I5i;5q_z=(B>`&7 z0Fk-=E37odlKmVAmcqnb(3_X<5Ueu2C}%!SKzz3NxtzHGH}=8-T0)6iREN z?!|nv0%h)kQ9xdu;|%T5lX)jKLYXZy9CZx@@rfD48GB)SGQ`h2j7cYs%sT5un9OFF zMNbAqM}sR2(t<9u36{eHR(ctxUdsa1~3o*0D zcAwTKy|}6QRCxrX^r)MJdq#gm|Lh;CYUHiSZxut#8YiMlC&pa7{KL63N1<WUNH-bjnL@QmEwjcET2L@3nz}r=< z`i3nL!=_na)~=-8U;b^dEc-ZOuq*_F8T8$2iy`h`#+feXjJ@njrZTryfl`Hn(+@-6o|E3w1#JkpM8RZ5bqCYy*-`Zo$ zr6Y*jRFqFm;kRa2f4|q{ANWGd{B>V1-R-^e{SbBrLX%)7N~OIrO1;ce)-pE~39rMC z|3AHNcvbJEUI?{53&&I%=j2)3UtN^`@)sb|bU_+7xDPk}2P}En$(UPq4CK zTnX&_O8De8r4Lkz69as7wkr&z?dUBhy<-}^?dfhnk2gWbvPm9`9C-$U>doLDIs!vDBSf7p=;Z~|EZJ}zVu3BS|sM*4Yztm5u z3X!N*OJ(vFs@zTeL>xxoTj3n@ft62H^hT@uUp6{Yk1N%O^CO(?-*%z@wHIbs6B)U& zk!pPl-^t$qSNxQ9{??AFpX2T2_rrJi!d{jhV5b&L7> zB~&Zq4>gs$AT!9!IFCT1-`9b;s~inFaAS0%=u^wS@w< zm^wY#qhH zqe(!3QAB>6s7mt8!9J^V3m{_g$GWP%S*x>YOoPbTLFW(Cx@hBYu)Aooqb|!sjjM?| zI!&>cA*ebnNL!|fs)*`jf2bh<)AY0tHBlF+UQ}gj_z+dX9;3d{aB775M8hYe-mjaU z7&aqZ3hvnI3vJNX>B9fks3@3dkl^pEsc}w~d*G4Uan#Z&WR;_~67d^nL!vfX&|dE! zbR!P2&J1q5uyw402b$A4H9yK~{*>EBMgLf2w;)Go2U zu!?c&!!)|0R)Ei>?WDdw7Z6cR>~(IKvZ<~}QqPR@NgN$I=T*Pk>Cna{X$YP=gn)NH z8hZ6#hqJ^DRHF)%@@s&e*ze)~^^h6OPFY4p!*qx;;k!m`w9I-wC+=O`H65amO4%7q zCnhG97mKs_7?ARqj^Def6wN|jVO7q0Jv?#_j7w&9b?&+82o+Na^)SR8)7hzt`t^5( zkq4ws_B9>P`#A@iQAe<`bMpl-4OHNign)ctT3s~t-Th=s_1#@elNvZ9gfQzU`$H0A+EjHC#e#;|ZRhtw;{@MO)# zlY!!Nk&AVYTiBKg#*R2A4w`!L*-n@NbA5B;VW7%G%GI5!dtJ3UJ6*M?0+cmbB2Wy3 z^E(&;qZZQKUizhm7o{GT#=^i{7e4?u%;ugqM(aZ~oLd^YNAQ8vWR;_QhvW?60qG95DISoD4 z%&6(n>@xT}K$mLMo|6$_{WD``|Dnl!l%*@@E-C^?u+Z>j2Ceb&B182A_DAhxJ||KZ z{4r0)`BWZ|q=`jT%DQE0n95WtI&?97(oU0$@HEfE_!<2MBr+Euk>oH)1PzVidI(+j zOo2pt>DKV{kb;HzA0Y+*UwD%w)m85^1snMqu#vfe`pJNe6hyarQAuA{S_1v{57DNv zTMsF3cg5YsZup0|RY3L=ij%5<$(6ygrCbZEQk*-~fwx;7U@$C4Bk`if!Q5ge>7Scg zee^OXy)^A7I#h?;$88^=yJ-jDw=jq%V_`G(c~ry+uVpO}`}=Y{UzZan^6z{+C9s11R=_|0I$c=!xL0W}Z z=cj2a9im(`B~GH6>Ylq@U?$kX^& zSQe0{_#qXB43Nmh{1as^gL|1;*9uOABc1nuxuFB5))sD<7ELb;xURk$PM9geUDn5` zaC`-$M$|^@Xjz|}3`i$@F#oWIm-U4{!6~?4uD6P!+&x?b56lx*D-=sMqqZeD0fIkW z*7vz-JbOcKU=I|3m4#waJ<4-f=}Tets6Tc6*VwmZU|5xxogp2|X~ z*$8z;OzU`^5wFl|QU&eF?)?m}^{MQ$*?ob?SX#Q*U=?cC{%8H2-& z8UMUtyGlA?25{4gcrE-9L~3%WA9i)OJSFfN#cBM*YZa&HA+`x~IFX9_SBqSrZaOU6 z88oyUfN4p5(1Xuo1U`~8_@_Ra7Z79BS2XmlU$hGyW=rInXaMz84DM?|e&}(5@x_79 z?maW=AUWY!S<(Ig-V7=;-qb6@vAE2A3_G_q!L)rq#>=&Bpec&-@Jz_Y`Jq@jhOGq* z2jneG)48cA;J3z^+V7g2uFKwOYh*urjRwQC={p`$@ts2Xre}^mD5IGp*hvif$7NW5hRbOH!mU zU6(6hU02HGq}`2tOuFo8Z4r;{&YIi|znsu*jmKdUsddjsClyV>8y8blf4A!J6)!vf~!MCsMJ=BG6tP#cd`L{<(JF@mxpE#tnTbbkl7f{Ap& zc(Q=9FaP5s2dvRm)dQ-E;J&3NaQ3N%XE{)zY4nSx9!`YLuBu*kRlAWvJHRhu!_bke zET-4_sW@g@UDYWar(lxp;S{CBT>~y!uV@9zpl6w2%+iPM zx?#Q0KmV`Fgqt=U`{Wp*{M$0aHFKw1e2u4)973#fo~*gVL!nN+R}YGQ!O!gJ{Fl&#UHW_jNUroPyB1`A+Ku!uZP1u85p`LQM3I za$03&0w5#1JMwlX2(`FYaI70@Or^=ctb(wH_8YPvuLp#)IB!P~+@3VKa6mRx z^dBR25n~~C_W96Y-TppGxg)2r>o4dVd%=k#6U__2<=jPc5P}#FIz0d}7RFaP?F6M) zNq&GJ*ELeQ^I87M8{`X`fNE5<6mKJN@Zl8xlNQLuUVbG$N5o?EYea*!0a;z=_ohNz^Rs!+9$T^7LZMzkKnmuZ81&nwsR?+EQ4g3iok$lF2sO=cG#d0n^#$9HtzU7^aN z6}1D1?Ox{w0`|`H&46?-7T=Jy{6J~(`lmdZ8gM;-^5{{)kzT%s-M|dG z8KCC|hGBL%7dG;XjD~E-M>!<>1^Af(_(LICOgw~vq}t~{P(go72)!K#(_n8Xn^=k9 z=ajQ7hI4NZoi=FtJvbi6QtUm@Vy^V_4+eLv$29@p%?u%C5N&~W96q*}#a()r7JPMz zvilnU$hp_*F%MHtxM7E1+o7++_B+$^2VNRa`2Y;= zfDKJ<$ge4ZxqL$tucktOc#xiZL^Z%_I{{*wl^qku>f_-Wk#4r zE56`{SGeg{vG4Gh$9*1jx!W!lj6?-DL5EfguIXhs7vxij z4Lk?TFM|TEJ!JT(SP}Faf8-RqGnQ4PxUi{hj}M=bmrbo`d^lHvU2uEpa58j35hf&a zt*78N2t>FI;!lkGBPGmjkZf4TWCJ&s5e+mx`X06s5`nv8@ky$>@1d4*k-9&y!5{bk zo329D($v&Xy%Da$wSsLJ84=k^Wk|zrRW;HXEV}LBMW5Tu(kap>j^yw$)A>`RYj1Me zpiHEP={fSC>AX}je7EU2%}^wA`)@89Zf5SE5N;}RS2DNx;&6VrlVy3UQsm0W&B30p z@)-iz;tG)y<-tH$C7i_VMM-R2)Dw!_9vD8tyh;Dgh&;aZd+&v_aHvG_P^|q5D2wzI z^f@oS@@=)Am=4n|bMbMWEu#VO60xGRRl``ZP%8=?iFY9Ry&$#S3eCGs1ByZ`+x&F^ z&I|gFRFTSf=pLViy+QbkrQs|3g7O&3&Q<{aunB-h=7c!V8B7ZSsv1yx!p7u$PGza| z(*m5IqnbiS=<0_l4w}b)J}M(J{_d+*+v&pp{M5c)$=TOBi+L$0z!s~;w_+XtK*=(% zjD>BiEPuvvzq3ibfQK62wiKqJDjwd1ue_Ep{pYMzZmM6=;P^Uc|G0bZDwO~Xwitjk zPxvwJstnZa)v8^;PuZWIrIG=}kXEe@6<4e&?))^&z_Rae%{fv6rGkYjV-#`gvPWM` z3drI*pI$-dpm~1f6@@{{c+i&*CZ6fXXvm4b$V{O)2YnWV*F{-bkjmihPvh=QsHWcp z4KIb#+-ZH4<(3m;>Q1WZ#J|{#YNw zla8E%6!fw8^363n&ji}hDlKX3_&FnH&73pS%jKp+@w%l~fbZ1Ts7p0o1e7s&b)9&a z!1I)fSMO3b1gB!W%2ND5rAn(*sE(;^DXGo^@Tiw67f!vh&nJY7jkhmWb+Y?47Ew39 zww4;eEI-!Z2Xg>gr272a1CN$^!1r9N=6^oo+3;gsliS25x9nRvp*#)dgcz7e3P2lN zjmmovuD&3gj@DoH^IO|AF8x*cdz9Tn-Cp5yXh~E2Vwr`2=ZVn6DsWCk3=zx>m7GY4 zMAPwEybq~UrlVxM%A&f+Dy>osf7aq9)k!*vymH|bob3)KgfC4sGoO1i-=K_`9sV7e zZqzmFKtNa3d9JZfoC!}eNRcl*y{Oc@@U(&y>*47{mCF{MN7UK(!t;l!HPTAxY0guUxiQPC^PLLm86Jis?w1}6W%f-s=v$ zt(3q;amkREK#~GXU~2FgP#S(gBPI9WB{5y586i&&- zO3SM97FhM-eJUZVizD%oVrQ*-08k?@R7o5v89vJ`ta{}lsYlc%A$;~X`<*v0Lls`G zen#Gf`U(3%yQ<-GAJhsTXuGlpgq!+;ibN8LWEBgiKL6Rd0pjCG_jke6rC+S*2gd4P z;)JA0-Z~?{rp!G9auCS0G@4Zk4oES)*jv8tq>&8*kN6ffI(U58d9D$=s|;2NyPgKN zSNg#&q^;FyQmDAbjW1H(64c!5Y6NOA)3}7)Wi)#~hTaGsXCH%9gTU#+8O}ksljGHo)c(o6N&P7Xo?hilqYpMJ z&{4I*^gGAoD!{NueJ{MB?K-EX09BKl)_b4aS+gEcoO4Ff(068a^KypvTPb@mV2!7_ zhHKm=XnZ&MFsQUg@jj#wMq%LpitcC}Rgvf2_`F7g19d)stp{n6mj4cAZUrK5Fusff z7N=8Svmu&rOYxSR0}JaXkhI76)AGVgX+C{ph@sNIOR5aSVaZ#?xRYN5bOF-=O_ecF z4fLXV)=;;slR_)-y$|q;wzP=87ycl+l0r=iz@F)Q?Vx9LH*`do{ULk(Aj?9iuM$lI zQ?6s}909tX3*49o28I|sxjvlD`tpQYK-f$U`d#2+|FHnJJ`4C4F(fof=U=G?yx_im zow{_#9e*$SQJdCt$h79(Djj!Fwt)4%00ddp-1TRv9PUTEfV-AVyYQ*6v7XLls)XxTgk2qDlml|*?zicgau-dBeh6HE9 zaKo{_8f@x(ub)AKX%A4=jJ)EoF8=xso>)S}ctpP-AEr~XrWY$h3uu1U2117n{^nFU z;K!0Y^J&;QEK6A_7le_)G2DPnNEyqZhH!w4ycZPhzt;7Oyx5ysLF4Z3@2&ux5ruk| z%=1Is&4gY3zAhk@`ob=vnhuDAP!;TlfAJB~+#?$BXV8pJ-S3AnG9Wh@a!OaoA%|rH zk8Dmm`G`pDigymZteeL6Ag^){S(5??o5Bo??dFgHkf*%A501m#gS0k<){qzKruVd`$!OCc>$kCV`7LHM|=ABZKYms`SsCYq8A z!>g9cNx!L^;nnG2c+m=HhwqISM1N8lZf0mfGTP+Q)dCYz}NF8 zRmW)+!*bTZt|DK$!H3_9a?reBAo-8s^mZ-S_UpnxC2rfPnyjbG%%K|cEvtqm8|vat z+Hr2ruN$&!5W7-}#qxr=)RA-08Setn0_@ATxl9dD^LK}JZar$}vD9t993{=~0)aW` zDH7ZrYH`*SuH^08J0*w};n*zxnxBWpc{rybkJ27KB>IWIu#_DVgG2{jP3t8XF1bn^ zw~F^q(szk$kY3^my3!vPP|0NgS!QsAI-Brb!xxkdTh3JhS~VA6cMnWX?)<8u`*An8|;y4*8bdr)e!~W1*0=8Y))$&{R+Jg z^*kUuC=Fx>yQb_Qih;Zoy2za-_t*Q#;3z&ij8CzrLM%IV@kR7K%DtZ_pA?6aytK8#~)3s|DHjM|UgKww-N5T81mPb}H>eO-$ zpl&|bWkAOE(jXmnh3bI4^hgdQL#>t>eDC#J!{y<#7_e*W*e1`XjUGD09q3*D>6TwC zv<7K1NtYGmeT}n<`(c-=F@WBm^3gWjLY&U`VWO@FM+@vFGlUz-%5y+UHs_&EYb6w# z({x$eS|zGl^EBm-auhYSq9FX!gKsJnEi4l#A>3a%U1V3+%+uvJ7Azpnw4u=99o1cH zjzH6!0l^E7L-(`y$QzPQEf2Dck)djujGfeyfj{+j!hMJ%Kw2qsSVdG)B65`&LEzge zq;!FpkgaLzSHbX;`a?Y_210qpYmx+cP%-0pQfgDKJ`DcOr>U76#molI#$pcAbDgNc* zo;)7PsAzD9#6Uf^6#t^}EsPJi*nJ@yQ3Yrdv@f;z)2kf4rRmIuu^gRJv3Xu^zYa^6 z4hf9qJKDt5?`OjW?;$Au`qPXL11qUbF{)IPawmS2xMtdiAWX^`BN|ytG}#y=g}A9@ zVz4Hg>7s6EiRNk`KBkFqErmk;s?IybFwxptLN|O^;g*@nX6F zHhl~MNQwCdR=2()ubdfv;qYe}W4AD)#sks9FZ6<&d;dT=JYtStuVIJ|6)QdsY!HJq;WD`;_#wME#ZZ&qJMJ^JZ-keUe6|NZgQB>VS*#Cb zwlF!2bW%qN|A0$k5}G+L*NgMmjGJ1O&>1)Mvy}g@Mw|t^6D?S<8s|qje3!XM!=#i~ zfNv;+8#V%rhw4z}eV|L@6!-z=iM(FX4Ga5i(H|DiUHCY=$wIuA=gDkv5}l^oog@bC zv?5qH)?ll>Cin#Uv1wjPd;}_t)o5&0usFBnM6aujeKcA?ag!lbTL(Kt3jFX7&kY2* z14)oxVqyI$R|`Adk7EF$c2QeeIGa{GM7toYw4>z^Z+Y5f<%E499)l8!PqZ_K znnREon}q8dvR;6jmBUQBAx30|3AY4&LnAz*GvBA-a*Cfz2-uS`j62%Z?5u8pL8$xY zmnhfHOVuI57XBh2{6A>)Lks?pda(4$p5RoxCVR_%v>k$GFBtz<0GD|1TtLR11tPP5 zLMcx0a@+jS5OodEgmrmnA@nFGpZ$LCL|!hJ;s>Xq3|-Ykf{Tc$H}SAN(Ki z@;CEbnG1;TN-JBwL?5kee7L-iD%^2?N2M?;l(Qa!hXpQ5<8{$-0~Wo>DfBuBMu?@r zI*99qKZy~u3`!XDxXelpz{IZ4q{qCLl4O}p4w}G~c%mUePraKzn2Skcg_EKO$0%HL zv-O7q;8XbnoaIRe;I*+?B_8B85zL=mvD7NMf*$j5Zi%^t0xJfdiA1Rq*& zQ(qR1Fi1Y*`}3dNMilcI)Hy~prUyV{O{H_7zz9CRO*sKircBMa#;kxSnh0RaO3(lY zWqGg6%)9tq=~)$6#^*HXz8}y;eKC)imvOnYdRN~&eb+*ImVbH~g8aBRsv7|=jBEPUJx>y`m(=uqz8t)dv z=@88od6NUeH5bZ*U2=jqv?r|{xRsyMSD;Oa99M}tv5^SEoFs-+Uy(;_9EuW zbzUp`7YcAcy$S=ZwL(uG92_*zGdN}NT%e2_B6qY#U+S{oGYAE%MLjQ=o?D-Uv|BKM zo$N!ceI0gJ;(A`l1;t*_^hN192N{bkK~v%P%bmfjvcCc>Gvdb?Ze` zIMdV@!vbgYvu0TR-Jp${2l?{=*r*F*e~%b&y}3FNE)||^S-!>pK4sMM!}LKfJwYl zjq~wa0qV{l(G94M5I4!7!|h;lA1Ir8*y>gOR&nD1+-T_E>;OT+C;#u;q>&8sW)=-2Ax(EfzGy(%;pX4l+D1UFq|e=jvUf1LdQ^6 zWYh(CSD~~``71zMX*iG7SEa08P+9Qg1WyT*dRsR7VLsK){a+hxPx8`c{v>xganyYbM zYp$#tnhOO&hz_Kc6?Ij7hK2Mo;xl}%i4}UNvt3pbsd#x&Pt7dZL8#~Ed^!~u=QOpo zC@OIrs&h&8+tfjgj^hyIN6u4m{Km5wPTlmcxw_I_52s@~O$^zZXs%O|Woxumr&;O0 zC#v7a(CcLVYpSl{sx&WGcLSoQkEIJ7K=ZT|y}V)+0*KWV(H{q7bG)|?I72&Z z*11x_vt+=71mF^x7yf(}5}ix2Xd+@jZZ}u767jVq%2-`4wGt6#B9w@U zyBpMflOo4ZX^hI!0;^%~P-$?LTcu%I>&6uU$E=7?|7kQOsAv8?P13F3qj^$1L_)kS z#49tS_M4euCt1soYx^|dKV%m9$Rlsi1({onukQz`z*?GQh(1`b=%T<1yezaq+(AIZ zp`^uq!wC-TqB;o&>i$HQ*yF$iT@VPB*9MQh1moHm`pZL4!GSoMMqcvMS|GdKqJ+p~ z%)*Ai!^L^rAn2~@oBFrmyMQr=k2T#?e{J36v6m@{&DjljjFvKHOv)I9bF2g{^hsL6 zH9_Pp!E-=jSg!US z5l0Qd1HXM6L_O@3E`;y(N1mn2jy3tJjFR^}@^?y=5HbKfm<9D)q9IxyrH?4}OL`=m z%#9fgwP0ol;+6V3V3Y^bYj4C7$gzo=IB-9mL=Ct^t(HaiJNQRg0=Hop+~*2ML&5&o zgKc$g;K}-3N8_ex0NlFNy`g*gb+F@=VNV^7?-`gv{h)u^t8@M9fERR4p~nurO_M4afM!x8|kEv2jP$0 zhUpn_yv>wBqk%9WsG|KNzg?ySru`eRaIV6h;-OU_7`SVQ^C{5%w2^7vCXJJ3Hx5Aa zU5URkIQM9F598<|4!#F^!R?f5GiCYMk=Djo(YgI%7+4PiWKfW&K)RTaLbbUJ{Q{Le znJ4ex3RED23O1mwUOSuo+6~9eWUI3V;sa+Zs_GRk8XGnS>@Y+_SStUOZVdQP4#Rdf zp8w@eSv_afY7gGJG5`3nxyQYr$}Pa(%3Q%fydm?Z)Q9pc)ysJcoV{KcnvWs0(hX$D z*s#@rMxMpQHQGPO;E@fn)f>#?y5e;-5Bg1d%Bk)oqg=|s#znjhn{WRKGsVS|ThFEJ zPx*4p*MqT5p9mNzVi3FeFp%iHUEANV+-8pQVwdAD$8S{)0NDb77&fIf?6x{JcyR@j zZk{J~xR!s2A$z8QpXxXm0Yz4gdx1cr1xD<(`_K$#|FZ$t^`~_g)$MMEs0&0)8Tiv? zEH=DnHNVTQNL|9Z0dTKEAM?zhz?bcy!VJj8(C#fZ=qE)a(pF~m!h;-6*Y@|i$bubt zTly(rPnQX4(?QD8t~=-Q%fGC8G67R+KhxM34HEBUu?GHOFJy_kFi^lA_|%Xk%0c)2 zB1L}WU?ALRvJnJWE(0|DwSIMk&I8AI4g)3O757TvBMzPnRG8ia*u5`(x|wBvS`+sn zpRD*kqA~2oPNA_V{tq9>6F!qBMTa9mKxWE@&1^4-eAx;DIHT@J8)`Rni;>35a^G`& zkf%DZOo`U~KApnQ(EQkoOySnX+z}&EMtDb#3*tO+$Al{df+#m|T&_V2}yxS(hXGyCp}dhYyooC0-IL0I|y|U{EF7?WPVNP!^2m z3LY+8q9_lW?w5IjZm|c;@g9U>vaY(J`yD0cqqInIQ|a-)!V}NKc?*}~{9|B4swaL< zZvZpk671EM>7wE~;B_X^84n!;y9x861W|cqUHuN5)P;8U9-o3!!rqI`$z11e5JhwP@Hd*y`e3oh{`~pX zd$Dl6n9s%Z&u*^#`6l)BRUh5BXTt!9yXI4KJ=7;u3UY@6n~uf>at`?B>_YF2b-uJa zyhpw9#9-OSj;l#%uy8lf?wlsqVaf(+KS)KmC=c;q?k@;LZ%@n$0en*BrupH?ë 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 Z4)6Z6Xp%P-{R7NjGO@orpUJK5{{f-JOD+Ha literal 0 HcmV?d00001 diff --git a/src/Avalonia.Themes.Fluent.Inter/Assets/Inter-ExtraLight.otf b/src/Avalonia.Themes.Fluent.Inter/Assets/Inter-ExtraLight.otf new file mode 100644 index 0000000000000000000000000000000000000000..6dc068dc90b394ad7d20e4e3156ec9d23fcc2a17 GIT binary patch literal 264196 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%0DaHsxqnqRlTbESLIY4Q&m;fST(F_RMn|fXI4$C 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 literal 0 HcmV?d00001 diff --git a/src/Avalonia.Themes.Fluent.Inter/Assets/Inter-Light.otf b/src/Avalonia.Themes.Fluent.Inter/Assets/Inter-Light.otf new file mode 100644 index 0000000000000000000000000000000000000000..2a83ae168def2d07982cd5f15e40bf2711ab0ea5 GIT binary patch literal 265000 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

-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 J>wTt%eg>tMGE@Kn literal 0 HcmV?d00001 diff --git a/src/Avalonia.Themes.Fluent.Inter/Assets/Inter-SemiBold.otf b/src/Avalonia.Themes.Fluent.Inter/Assets/Inter-SemiBold.otf new file mode 100644 index 0000000000000000000000000000000000000000..daf4c4413f7b682ee421fbde5097c7963e2fcdc4 GIT binary patch literal 270760 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�)R7q*RfL1#IqVC8%FR@DjH#uJX6-ep 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

*5n8MtI&ymd+E0vfV` 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

jPwbayvZ-hFOhDO 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 - avares://Avalonia.Themes.Fluent.Fonts/Assets#Inter, $Default + avares://Avalonia.Themes.Fluent.Inter/Assets#Inter, $Default 14 From 7ead728d244d100c450403bd22e0e695b2f946db Mon Sep 17 00:00:00 2001 From: Benedikt Stebner Date: Fri, 10 Feb 2023 10:29:38 +0100 Subject: [PATCH 032/122] Throw exception if no fallback is present and a font asset could not be found --- src/Skia/Avalonia.Skia/FontManagerImpl.cs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/Skia/Avalonia.Skia/FontManagerImpl.cs b/src/Skia/Avalonia.Skia/FontManagerImpl.cs index db4c511acb..f6a4307ece 100644 --- a/src/Skia/Avalonia.Skia/FontManagerImpl.cs +++ b/src/Skia/Avalonia.Skia/FontManagerImpl.cs @@ -111,6 +111,12 @@ namespace Avalonia.Skia var fontCollection = SKTypefaceCollectionCache.GetOrAddTypefaceCollection(typeface.FontFamily); skTypeface = fontCollection.Get(typeface); + + if (skTypeface is null && !typeface.FontFamily.FamilyNames.HasFallbacks) + { + throw new InvalidOperationException( + $"Could not create glyph typeface for: {typeface.FontFamily.Name}."); + } } if (skTypeface is null) From 35e6156c20a006c8201b3b427466e4492c3988bd Mon Sep 17 00:00:00 2001 From: Giuseppe Lippolis Date: Fri, 3 Feb 2023 22:01:57 +0100 Subject: [PATCH 033/122] fix: Sourcelink Avalonia.Build.Tasks --- nukebuild/BuildTasksPatcher.cs | 104 +++++++++++++++++++++++++++++---- 1 file changed, 93 insertions(+), 11 deletions(-) diff --git a/nukebuild/BuildTasksPatcher.cs b/nukebuild/BuildTasksPatcher.cs index 5fd331035a..f2dd217657 100644 --- a/nukebuild/BuildTasksPatcher.cs +++ b/nukebuild/BuildTasksPatcher.cs @@ -4,9 +4,58 @@ using System.IO.Compression; using System.Linq; using ILRepacking; using Mono.Cecil; +using Mono.Cecil.Cil; public class BuildTasksPatcher { + ///

+ /// This helper class, avoid argument null exception + /// when cecil write AssemblyNameDefinition on MemoryStream. + /// + private class Wrapper : ISymbolWriterProvider + { + readonly ISymbolWriterProvider _provider; + readonly string _filename; + + public Wrapper(ISymbolWriterProvider provider, string filename) + { + _provider = provider; + _filename = filename; + } + + public ISymbolWriter GetSymbolWriter(ModuleDefinition module, string fileName) => + _provider.GetSymbolWriter(module, string.IsNullOrWhiteSpace(fileName) ? _filename : fileName); + + public ISymbolWriter GetSymbolWriter(ModuleDefinition module, Stream symbolStream) => + _provider.GetSymbolWriter(module, symbolStream); + } + + private static string GetSourceLinkInfo(string path) + { + try + { + using (var asm = AssemblyDefinition.ReadAssembly(path, + new ReaderParameters + { + ReadWrite = true, + InMemory = true, + ReadSymbols = true, + SymbolReaderProvider = new DefaultSymbolReaderProvider(false), + })) + { + if (asm.MainModule.CustomDebugInformations?.OfType()?.FirstOrDefault() is { } sli) + { + return sli.Content; + } + } + } + catch + { + + } + return null; + } + public static void PatchBuildTasksInPackage(string packagePath) { using (var archive = new ZipArchive(File.Open(packagePath, FileMode.Open, FileAccess.ReadWrite), @@ -19,7 +68,7 @@ public class BuildTasksPatcher { var tempDir = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString()); Directory.CreateDirectory(tempDir); - var temp = Path.Combine(tempDir, Guid.NewGuid() + ".dll"); + var temp = Path.Combine(tempDir, entry.Name); var output = temp + ".output"; File.Copy(typeof(Microsoft.Build.Framework.ITask).Assembly.GetModules()[0].FullyQualifiedName, Path.Combine(tempDir, "Microsoft.Build.Framework.dll")); @@ -27,41 +76,74 @@ public class BuildTasksPatcher try { entry.ExtractToFile(temp, true); + // Get Original SourceLinkInfo Content + var sourceLinkInfoContent = GetSourceLinkInfo(temp); var repack = new ILRepacking.ILRepack(new RepackOptions() { Internalize = true, InputAssemblies = new[] { - temp, typeof(Mono.Cecil.AssemblyDefinition).Assembly.GetModules()[0] - .FullyQualifiedName, + temp, + typeof(Mono.Cecil.AssemblyDefinition).Assembly.GetModules()[0].FullyQualifiedName, typeof(Mono.Cecil.Rocks.MethodBodyRocks).Assembly.GetModules()[0].FullyQualifiedName, typeof(Mono.Cecil.Pdb.PdbReaderProvider).Assembly.GetModules()[0].FullyQualifiedName, - typeof(Mono.Cecil.Mdb.MdbReaderProvider).Assembly.GetModules()[0].FullyQualifiedName - + typeof(Mono.Cecil.Mdb.MdbReaderProvider).Assembly.GetModules()[0].FullyQualifiedName, }, - SearchDirectories = new string[0], + SearchDirectories = Array.Empty(), + DebugInfo = true, // Allowed read debug info OutputFile = output }); repack.Repack(); - // 'hurr-durr assembly with the same name is already loaded' prevention using (var asm = AssemblyDefinition.ReadAssembly(output, - new ReaderParameters { ReadWrite = true, InMemory = true, })) + new ReaderParameters + { + ReadWrite = true, + InMemory = true, + ReadSymbols = true, + SymbolReaderProvider = new DefaultSymbolReaderProvider(false), + })) { asm.Name = new AssemblyNameDefinition( "Avalonia.Build.Tasks." + Guid.NewGuid().ToString().Replace("-", ""), new Version(0, 0, 0)); - asm.Write(patched); + + var mainModule = asm.MainModule; + + // If we have SourceLink info copy to patched assembly. + if (!string.IsNullOrEmpty(sourceLinkInfoContent)) + { + mainModule.CustomDebugInformations.Add(new SourceLinkDebugInformation(sourceLinkInfoContent)); + } + + // Try to get SymbolWriter if it has it + var reader = mainModule.SymbolReader; + var hasDebugInfo = reader is not null; + var proivder = reader?.GetWriterProvider() is ISymbolWriterProvider p + ? new Wrapper(p, "Avalonia.Build.Tasks.dll") + : default(ISymbolWriterProvider); + + var parameters = new WriterParameters + { +#if ISNETFULLFRAMEWORK + StrongNameKeyPair = signingStep.KeyPair, +#endif + WriteSymbols = hasDebugInfo, + SymbolWriterProvider = proivder, + DeterministicMvid = hasDebugInfo, + }; + asm.Write(patched, parameters); patched.Position = 0; } + } finally { try { - if(Directory.Exists(tempDir)) + if (Directory.Exists(tempDir)) Directory.Delete(tempDir, true); } catch @@ -79,4 +161,4 @@ public class BuildTasksPatcher } } } -} \ No newline at end of file +} From c01edba86e35c8fafdeb187cd8bbe008876e3bcd Mon Sep 17 00:00:00 2001 From: Max Katz Date: Sun, 12 Feb 2023 11:12:19 -0500 Subject: [PATCH 034/122] Rename Avalonia.Themes.Fluent.Inter to Avalonia.Fonts.Inter --- Avalonia.sln | 15 ++++++++++----- samples/ControlCatalog/ControlCatalog.csproj | 2 +- .../Assets/Inter-Bold.otf | Bin .../Assets/Inter-ExtraLight.otf | Bin .../Assets/Inter-Light.otf | Bin .../Assets/Inter-Medium.otf | Bin .../Assets/Inter-Regular.otf | Bin .../Assets/Inter-SemiBold.otf | Bin .../Assets/Inter-Thin.otf | Bin .../Avalonia.Fonts.Inter.csproj} | 1 + .../Properties/AssemblyInfo.cs | 2 +- src/Avalonia.Themes.Fluent/Accents/Base.xaml | 2 +- 12 files changed, 14 insertions(+), 8 deletions(-) rename src/{Avalonia.Themes.Fluent.Inter => Avalonia.Fonts.Inter}/Assets/Inter-Bold.otf (100%) rename src/{Avalonia.Themes.Fluent.Inter => Avalonia.Fonts.Inter}/Assets/Inter-ExtraLight.otf (100%) rename src/{Avalonia.Themes.Fluent.Inter => Avalonia.Fonts.Inter}/Assets/Inter-Light.otf (100%) rename src/{Avalonia.Themes.Fluent.Inter => Avalonia.Fonts.Inter}/Assets/Inter-Medium.otf (100%) rename src/{Avalonia.Themes.Fluent.Inter => Avalonia.Fonts.Inter}/Assets/Inter-Regular.otf (100%) rename src/{Avalonia.Themes.Fluent.Inter => Avalonia.Fonts.Inter}/Assets/Inter-SemiBold.otf (100%) rename src/{Avalonia.Themes.Fluent.Inter => Avalonia.Fonts.Inter}/Assets/Inter-Thin.otf (100%) rename src/{Avalonia.Themes.Fluent.Inter/Avalonia.Themes.Fluent.Inter.csproj => Avalonia.Fonts.Inter/Avalonia.Fonts.Inter.csproj} (88%) rename src/{Avalonia.Themes.Fluent.Inter => Avalonia.Fonts.Inter}/Properties/AssemblyInfo.cs (75%) diff --git a/Avalonia.sln b/Avalonia.sln index 52abe0e718..14e167f2fc 100644 --- a/Avalonia.sln +++ b/Avalonia.sln @@ -237,7 +237,9 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Controls.ItemsRepe EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Controls.ItemsRepeater.UnitTests", "tests\Avalonia.Controls.ItemsRepeater.UnitTests\Avalonia.Controls.ItemsRepeater.UnitTests.csproj", "{F4E36AA8-814E-4704-BC07-291F70F45193}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Themes.Fluent.Inter", "src\Avalonia.Themes.Fluent.Inter\Avalonia.Themes.Fluent.Inter.csproj", "{5E19C5EF-19D7-4E70-9050-48DAE7FF5FA4}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Themes", "Themes", "{5D6AECCA-3700-4F9A-8A52-5DD56CA41CDC}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Fonts.Inter", "src\Avalonia.Fonts.Inter\Avalonia.Fonts.Inter.csproj", "{13F1135D-BA1A-435C-9C5B-A368D1D63DE4}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -562,10 +564,10 @@ Global {F4E36AA8-814E-4704-BC07-291F70F45193}.Debug|Any CPU.Build.0 = Debug|Any CPU {F4E36AA8-814E-4704-BC07-291F70F45193}.Release|Any CPU.ActiveCfg = Release|Any CPU {F4E36AA8-814E-4704-BC07-291F70F45193}.Release|Any CPU.Build.0 = Release|Any CPU - {5E19C5EF-19D7-4E70-9050-48DAE7FF5FA4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5E19C5EF-19D7-4E70-9050-48DAE7FF5FA4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5E19C5EF-19D7-4E70-9050-48DAE7FF5FA4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5E19C5EF-19D7-4E70-9050-48DAE7FF5FA4}.Release|Any CPU.Build.0 = Release|Any CPU + {13F1135D-BA1A-435C-9C5B-A368D1D63DE4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {13F1135D-BA1A-435C-9C5B-A368D1D63DE4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {13F1135D-BA1A-435C-9C5B-A368D1D63DE4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {13F1135D-BA1A-435C-9C5B-A368D1D63DE4}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -632,6 +634,9 @@ Global {75C47156-C5D8-44BC-A5A7-E8657C2248D6} = {9B9E3891-2366-4253-A952-D08BCEB71098} {C810060E-3809-4B74-A125-F11533AF9C1B} = {9B9E3891-2366-4253-A952-D08BCEB71098} {F4E36AA8-814E-4704-BC07-291F70F45193} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B} + {C42D2FC1-A531-4ED4-84B9-89AEC7C962FC} = {5D6AECCA-3700-4F9A-8A52-5DD56CA41CDC} + {3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F} = {5D6AECCA-3700-4F9A-8A52-5DD56CA41CDC} + {13F1135D-BA1A-435C-9C5B-A368D1D63DE4} = {5D6AECCA-3700-4F9A-8A52-5DD56CA41CDC} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {87366D66-1391-4D90-8999-95A620AD786A} diff --git a/samples/ControlCatalog/ControlCatalog.csproj b/samples/ControlCatalog/ControlCatalog.csproj index c0a49908fc..0e84b3d182 100644 --- a/samples/ControlCatalog/ControlCatalog.csproj +++ b/samples/ControlCatalog/ControlCatalog.csproj @@ -29,7 +29,7 @@ - + diff --git a/src/Avalonia.Themes.Fluent.Inter/Assets/Inter-Bold.otf b/src/Avalonia.Fonts.Inter/Assets/Inter-Bold.otf similarity index 100% rename from src/Avalonia.Themes.Fluent.Inter/Assets/Inter-Bold.otf rename to src/Avalonia.Fonts.Inter/Assets/Inter-Bold.otf diff --git a/src/Avalonia.Themes.Fluent.Inter/Assets/Inter-ExtraLight.otf b/src/Avalonia.Fonts.Inter/Assets/Inter-ExtraLight.otf similarity index 100% rename from src/Avalonia.Themes.Fluent.Inter/Assets/Inter-ExtraLight.otf rename to src/Avalonia.Fonts.Inter/Assets/Inter-ExtraLight.otf diff --git a/src/Avalonia.Themes.Fluent.Inter/Assets/Inter-Light.otf b/src/Avalonia.Fonts.Inter/Assets/Inter-Light.otf similarity index 100% rename from src/Avalonia.Themes.Fluent.Inter/Assets/Inter-Light.otf rename to src/Avalonia.Fonts.Inter/Assets/Inter-Light.otf diff --git a/src/Avalonia.Themes.Fluent.Inter/Assets/Inter-Medium.otf b/src/Avalonia.Fonts.Inter/Assets/Inter-Medium.otf similarity index 100% rename from src/Avalonia.Themes.Fluent.Inter/Assets/Inter-Medium.otf rename to src/Avalonia.Fonts.Inter/Assets/Inter-Medium.otf diff --git a/src/Avalonia.Themes.Fluent.Inter/Assets/Inter-Regular.otf b/src/Avalonia.Fonts.Inter/Assets/Inter-Regular.otf similarity index 100% rename from src/Avalonia.Themes.Fluent.Inter/Assets/Inter-Regular.otf rename to src/Avalonia.Fonts.Inter/Assets/Inter-Regular.otf diff --git a/src/Avalonia.Themes.Fluent.Inter/Assets/Inter-SemiBold.otf b/src/Avalonia.Fonts.Inter/Assets/Inter-SemiBold.otf similarity index 100% rename from src/Avalonia.Themes.Fluent.Inter/Assets/Inter-SemiBold.otf rename to src/Avalonia.Fonts.Inter/Assets/Inter-SemiBold.otf diff --git a/src/Avalonia.Themes.Fluent.Inter/Assets/Inter-Thin.otf b/src/Avalonia.Fonts.Inter/Assets/Inter-Thin.otf similarity index 100% rename from src/Avalonia.Themes.Fluent.Inter/Assets/Inter-Thin.otf rename to src/Avalonia.Fonts.Inter/Assets/Inter-Thin.otf diff --git a/src/Avalonia.Themes.Fluent.Inter/Avalonia.Themes.Fluent.Inter.csproj b/src/Avalonia.Fonts.Inter/Avalonia.Fonts.Inter.csproj similarity index 88% rename from src/Avalonia.Themes.Fluent.Inter/Avalonia.Themes.Fluent.Inter.csproj rename to src/Avalonia.Fonts.Inter/Avalonia.Fonts.Inter.csproj index c9deb02b2a..c81a13558c 100644 --- a/src/Avalonia.Themes.Fluent.Inter/Avalonia.Themes.Fluent.Inter.csproj +++ b/src/Avalonia.Fonts.Inter/Avalonia.Fonts.Inter.csproj @@ -1,6 +1,7 @@  net6.0;netstandard2.0 + Avalonia.Fonts.Inter diff --git a/src/Avalonia.Themes.Fluent.Inter/Properties/AssemblyInfo.cs b/src/Avalonia.Fonts.Inter/Properties/AssemblyInfo.cs similarity index 75% rename from src/Avalonia.Themes.Fluent.Inter/Properties/AssemblyInfo.cs rename to src/Avalonia.Fonts.Inter/Properties/AssemblyInfo.cs index 42cf64e430..53047b1f70 100644 --- a/src/Avalonia.Themes.Fluent.Inter/Properties/AssemblyInfo.cs +++ b/src/Avalonia.Fonts.Inter/Properties/AssemblyInfo.cs @@ -1,3 +1,3 @@ using Avalonia.Metadata; -[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Themes.Fluent.Inter")] +[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Fonts.Inter")] diff --git a/src/Avalonia.Themes.Fluent/Accents/Base.xaml b/src/Avalonia.Themes.Fluent/Accents/Base.xaml index 579b712746..82e48851b5 100644 --- a/src/Avalonia.Themes.Fluent/Accents/Base.xaml +++ b/src/Avalonia.Themes.Fluent/Accents/Base.xaml @@ -3,7 +3,7 @@ xmlns:sys="using:System" xmlns:converters="using:Avalonia.Controls.Converters"> - avares://Avalonia.Themes.Fluent.Inter/Assets#Inter, $Default + avares://Avalonia.Fonts.Inter/Assets#Inter, $Default 14 From 8c28e1b08f9108aa24ad69c83271e056af699371 Mon Sep 17 00:00:00 2001 From: Max Katz Date: Sun, 12 Feb 2023 11:12:31 -0500 Subject: [PATCH 035/122] Add missing FontFamily to the EmbeddableControlRoot --- src/Avalonia.Themes.Fluent/Controls/EmbeddableControlRoot.xaml | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Avalonia.Themes.Fluent/Controls/EmbeddableControlRoot.xaml b/src/Avalonia.Themes.Fluent/Controls/EmbeddableControlRoot.xaml index 67e70d154f..6a2651e3f5 100644 --- a/src/Avalonia.Themes.Fluent/Controls/EmbeddableControlRoot.xaml +++ b/src/Avalonia.Themes.Fluent/Controls/EmbeddableControlRoot.xaml @@ -4,6 +4,7 @@ + From 669c342e9f6b42cfcf01a53ca6ec44c0840a94f4 Mon Sep 17 00:00:00 2001 From: Max Katz Date: Sun, 12 Feb 2023 11:13:11 -0500 Subject: [PATCH 036/122] Use Inter in simple theme as well, if referenced --- Avalonia.sln | 5 ----- src/Avalonia.Themes.Simple/Accents/Base.xaml | 1 + .../Controls/EmbeddableControlRoot.xaml | 1 + src/Avalonia.Themes.Simple/Controls/OverlayPopupHost.xaml | 4 +--- src/Avalonia.Themes.Simple/Controls/PopupRoot.xaml | 4 +--- src/Avalonia.Themes.Simple/Controls/Window.xaml | 1 + 6 files changed, 5 insertions(+), 11 deletions(-) diff --git a/Avalonia.sln b/Avalonia.sln index 14e167f2fc..7d9c5243e1 100644 --- a/Avalonia.sln +++ b/Avalonia.sln @@ -237,8 +237,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Controls.ItemsRepe EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Controls.ItemsRepeater.UnitTests", "tests\Avalonia.Controls.ItemsRepeater.UnitTests\Avalonia.Controls.ItemsRepeater.UnitTests.csproj", "{F4E36AA8-814E-4704-BC07-291F70F45193}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Themes", "Themes", "{5D6AECCA-3700-4F9A-8A52-5DD56CA41CDC}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Fonts.Inter", "src\Avalonia.Fonts.Inter\Avalonia.Fonts.Inter.csproj", "{13F1135D-BA1A-435C-9C5B-A368D1D63DE4}" EndProject Global @@ -634,9 +632,6 @@ Global {75C47156-C5D8-44BC-A5A7-E8657C2248D6} = {9B9E3891-2366-4253-A952-D08BCEB71098} {C810060E-3809-4B74-A125-F11533AF9C1B} = {9B9E3891-2366-4253-A952-D08BCEB71098} {F4E36AA8-814E-4704-BC07-291F70F45193} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B} - {C42D2FC1-A531-4ED4-84B9-89AEC7C962FC} = {5D6AECCA-3700-4F9A-8A52-5DD56CA41CDC} - {3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F} = {5D6AECCA-3700-4F9A-8A52-5DD56CA41CDC} - {13F1135D-BA1A-435C-9C5B-A368D1D63DE4} = {5D6AECCA-3700-4F9A-8A52-5DD56CA41CDC} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {87366D66-1391-4D90-8999-95A620AD786A} diff --git a/src/Avalonia.Themes.Simple/Accents/Base.xaml b/src/Avalonia.Themes.Simple/Accents/Base.xaml index 0c1354e475..92067ba07c 100644 --- a/src/Avalonia.Themes.Simple/Accents/Base.xaml +++ b/src/Avalonia.Themes.Simple/Accents/Base.xaml @@ -71,6 +71,7 @@ + avares://Avalonia.Fonts.Inter/Assets#Inter, $Default #CC119EDA #99119EDA #66119EDA diff --git a/src/Avalonia.Themes.Simple/Controls/EmbeddableControlRoot.xaml b/src/Avalonia.Themes.Simple/Controls/EmbeddableControlRoot.xaml index 3d52464858..3ea1515cc3 100644 --- a/src/Avalonia.Themes.Simple/Controls/EmbeddableControlRoot.xaml +++ b/src/Avalonia.Themes.Simple/Controls/EmbeddableControlRoot.xaml @@ -5,6 +5,7 @@ + diff --git a/src/Avalonia.Themes.Simple/Controls/OverlayPopupHost.xaml b/src/Avalonia.Themes.Simple/Controls/OverlayPopupHost.xaml index d1f5585c02..4c7864473b 100644 --- a/src/Avalonia.Themes.Simple/Controls/OverlayPopupHost.xaml +++ b/src/Avalonia.Themes.Simple/Controls/OverlayPopupHost.xaml @@ -4,9 +4,7 @@ TargetType="OverlayPopupHost"> - - - + diff --git a/src/Avalonia.Themes.Simple/Controls/PopupRoot.xaml b/src/Avalonia.Themes.Simple/Controls/PopupRoot.xaml index a5593e3a68..33c8d0764e 100644 --- a/src/Avalonia.Themes.Simple/Controls/PopupRoot.xaml +++ b/src/Avalonia.Themes.Simple/Controls/PopupRoot.xaml @@ -6,9 +6,7 @@ - - - + diff --git a/src/Avalonia.Themes.Simple/Controls/Window.xaml b/src/Avalonia.Themes.Simple/Controls/Window.xaml index 00b108343e..0a0363c2d0 100644 --- a/src/Avalonia.Themes.Simple/Controls/Window.xaml +++ b/src/Avalonia.Themes.Simple/Controls/Window.xaml @@ -2,6 +2,7 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> + From d5a5efa90cdbc804ffb80a177de3add165399baf Mon Sep 17 00:00:00 2001 From: Max Katz Date: Sun, 12 Feb 2023 11:31:50 -0500 Subject: [PATCH 037/122] Fix tests after style changes --- tests/Avalonia.Markup.Xaml.UnitTests/Xaml/BasicTests.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/BasicTests.cs b/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/BasicTests.cs index c8be1c6d19..1b795a304c 100644 --- a/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/BasicTests.cs +++ b/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/BasicTests.cs @@ -702,9 +702,10 @@ namespace Avalonia.Markup.Xaml.UnitTests.Xaml // EndInit should be second-to-last operation, as last operation will be // caused by styling being applied on EndInit. - Assert.Equal("EndInit 0", tracker.Order[tracker.Order.Count - 2]); + Assert.Equal("EndInit 0", tracker.Order[tracker.Order.Count - 3]); // Caused by styling. + Assert.Equal("Property FontFamily Changed", tracker.Order[tracker.Order.Count - 2]); Assert.Equal("Property Foreground Changed", tracker.Order[tracker.Order.Count - 1]); } } From 3ace482c198a56f558cb1369b5885508d2c839da Mon Sep 17 00:00:00 2001 From: Max Katz Date: Tue, 14 Feb 2023 20:32:12 -0500 Subject: [PATCH 038/122] Fix wrong property names and documentation --- src/Avalonia.Base/Styling/ThemeVariant.cs | 2 +- src/Avalonia.Controls/Application.cs | 2 +- src/Avalonia.Controls/Control.cs | 1 + src/Avalonia.Controls/ThemeVariantScope.cs | 8 ++++---- 4 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/Avalonia.Base/Styling/ThemeVariant.cs b/src/Avalonia.Base/Styling/ThemeVariant.cs index 8218533f4f..5a6a8785a5 100644 --- a/src/Avalonia.Base/Styling/ThemeVariant.cs +++ b/src/Avalonia.Base/Styling/ThemeVariant.cs @@ -6,7 +6,7 @@ using Avalonia.Platform; namespace Avalonia.Styling; /// -/// Specifies a UI theme variant that should be used for the +/// Specifies a UI theme variant that should be used for the Control and Application types. /// [TypeConverter(typeof(ThemeVariantTypeConverter))] public sealed record ThemeVariant diff --git a/src/Avalonia.Controls/Application.cs b/src/Avalonia.Controls/Application.cs index 8456a9a3a9..6d9a6bd493 100644 --- a/src/Avalonia.Controls/Application.cs +++ b/src/Avalonia.Controls/Application.cs @@ -95,7 +95,7 @@ namespace Avalonia set => SetValue(RequestedThemeVariantProperty, value); } - /// + /// public ThemeVariant ActualThemeVariant => GetValue(ActualThemeVariantProperty); /// diff --git a/src/Avalonia.Controls/Control.cs b/src/Avalonia.Controls/Control.cs index 775fc8e243..c9e8f0d045 100644 --- a/src/Avalonia.Controls/Control.cs +++ b/src/Avalonia.Controls/Control.cs @@ -162,6 +162,7 @@ namespace Avalonia.Controls set => SetValue(TagProperty, value); } + /// public ThemeVariant ActualThemeVariant => GetValue(ThemeVariantScope.ActualThemeVariantProperty); public event EventHandler? ActualThemeVariantChanged; diff --git a/src/Avalonia.Controls/ThemeVariantScope.cs b/src/Avalonia.Controls/ThemeVariantScope.cs index 2aac1d3e2f..ff950d3985 100644 --- a/src/Avalonia.Controls/ThemeVariantScope.cs +++ b/src/Avalonia.Controls/ThemeVariantScope.cs @@ -8,11 +8,11 @@ namespace Avalonia.Controls public class ThemeVariantScope : Decorator { /// - /// Defines the property. + /// Defines the property. /// public static readonly StyledProperty ActualThemeVariantProperty = AvaloniaProperty.Register( - nameof(ThemeVariant), + nameof(ActualThemeVariant), inherits: true, defaultValue: ThemeVariant.Light); @@ -21,9 +21,9 @@ namespace Avalonia.Controls /// public static readonly StyledProperty RequestedThemeVariantProperty = AvaloniaProperty.Register( - nameof(ThemeVariant), + nameof(RequestedThemeVariant), defaultValue: ThemeVariant.Default); - + /// /// Gets or sets the UI theme variant that is used by the control (and its child elements) for resource determination. /// The UI theme you specify with ThemeVariant can override the app-level ThemeVariant. From af70f74c88163b9e0d5446163685ec9f0b748e7d Mon Sep 17 00:00:00 2001 From: Max Katz Date: Tue, 14 Feb 2023 23:03:11 -0500 Subject: [PATCH 039/122] Workaround for the inherited default value bug --- src/Avalonia.Controls/ThemeVariantScope.cs | 3 +- .../Xaml/ThemeDictionariesTests.cs | 73 ++++++++++++++++++- 2 files changed, 73 insertions(+), 3 deletions(-) diff --git a/src/Avalonia.Controls/ThemeVariantScope.cs b/src/Avalonia.Controls/ThemeVariantScope.cs index ff950d3985..b29f1ee56e 100644 --- a/src/Avalonia.Controls/ThemeVariantScope.cs +++ b/src/Avalonia.Controls/ThemeVariantScope.cs @@ -13,8 +13,7 @@ namespace Avalonia.Controls public static readonly StyledProperty ActualThemeVariantProperty = AvaloniaProperty.Register( nameof(ActualThemeVariant), - inherits: true, - defaultValue: ThemeVariant.Light); + inherits: true); /// /// Defines the property. diff --git a/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/ThemeDictionariesTests.cs b/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/ThemeDictionariesTests.cs index 20d76a3cc7..3ac4677694 100644 --- a/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/ThemeDictionariesTests.cs +++ b/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/ThemeDictionariesTests.cs @@ -1,8 +1,12 @@ -using Avalonia.Controls; +using System.Linq; +using Avalonia.Controls; +using Avalonia.Controls.Presenters; +using Avalonia.Controls.Primitives; using Avalonia.Markup.Data; using Avalonia.Markup.Xaml.MarkupExtensions; using Avalonia.Media; using Avalonia.Styling; +using Avalonia.UnitTests; using Moq; using Xunit; @@ -444,4 +448,71 @@ public class ThemeDictionariesTests : XamlTestBase Assert.Equal(Colors.Black, ((ISolidColorBrush)border.Background)!.Color); } + + [Fact] + public void Theme_Switch_Works_In_Nested_Scope() + { + using (UnitTestApplication.Start(TestServices.StyledWindow)) + { + var window = (Window)AvaloniaRuntimeXamlLoader.Load(@" + + + + +"); + window.ApplyTemplate(); + + var scope = window.FindControl("Scope")!; + var text = window.FindControl("Text")!; + + Assert.Equal(ThemeVariant.Dark, text.ActualThemeVariant); + Assert.Equal(Color.Parse("#dedede"), ((ISolidColorBrush)text.Foreground!).Color); + + scope.RequestedThemeVariant = ThemeVariant.Light; + Assert.Equal(ThemeVariant.Light, text.ActualThemeVariant); + Assert.Equal(Colors.Black, ((ISolidColorBrush)text.Foreground!).Color); + } + } + + [Fact] + public void Theme_Switch_Works_In_With_Popup() + { + using (UnitTestApplication.Start(TestServices.StyledWindow)) + { + using (UnitTestApplication.Start(TestServices.StyledWindow)) + { + var window = (Window)AvaloniaRuntimeXamlLoader.Load(@" + + + + + + + +"); + window.Show(); + + var scope = window.FindControl("Scope")!; + var popup = window.FindControl("Popup")!; + + popup.IsOpen = true; + + var border = (Border)popup.Child!; + + Assert.Equal(ThemeVariant.Dark, popup.ActualThemeVariant); + Assert.Equal(ThemeVariant.Dark, border.ActualThemeVariant); + Assert.Equal(Color.Parse("#282828"), ((ISolidColorBrush)border.Background!).Color); + + scope.RequestedThemeVariant = ThemeVariant.Light; + + Assert.Equal(ThemeVariant.Light, popup.ActualThemeVariant); + Assert.Equal(ThemeVariant.Light, border.ActualThemeVariant); + Assert.Equal(Colors.White, ((ISolidColorBrush)border.Background!).Color); + } + } + } } From 9933fd04ce136e0376b78b57355556267b28493e Mon Sep 17 00:00:00 2001 From: Max Katz Date: Tue, 14 Feb 2023 23:47:55 -0500 Subject: [PATCH 040/122] Bind target theme variant to the popup root --- src/Avalonia.Controls/Primitives/Popup.cs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/Avalonia.Controls/Primitives/Popup.cs b/src/Avalonia.Controls/Primitives/Popup.cs index d6cd71aedc..142db71761 100644 --- a/src/Avalonia.Controls/Primitives/Popup.cs +++ b/src/Avalonia.Controls/Primitives/Popup.cs @@ -387,6 +387,15 @@ namespace Avalonia.Controls.Primitives popupHost.Transform = null; } + if (popupHost is PopupRoot topLevelPopup) + { + topLevelPopup + .Bind( + ThemeVariantScope.ActualThemeVariantProperty, + placementTarget.GetBindingObservable(ThemeVariantScope.ActualThemeVariantProperty)) + .DisposeWith(handlerCleanup); + } + UpdateHostPosition(popupHost, placementTarget); SubscribeToEventHandler>(popupHost, RootTemplateApplied, From 5d0d3ba5bbe791590215a88d8e05b83ab68f9ae4 Mon Sep 17 00:00:00 2001 From: Max Katz Date: Wed, 15 Feb 2023 00:05:03 -0500 Subject: [PATCH 041/122] Simplify simple themes of ported control --- .../Controls/SplitButton.xaml | 104 +++++++----------- .../Controls/SplitView.xaml | 6 +- .../Controls/ToggleSwitch.xaml | 91 +++++---------- 3 files changed, 73 insertions(+), 128 deletions(-) diff --git a/src/Avalonia.Themes.Simple/Controls/SplitButton.xaml b/src/Avalonia.Themes.Simple/Controls/SplitButton.xaml index 3c621a981d..2a7dc081f0 100644 --- a/src/Avalonia.Themes.Simple/Controls/SplitButton.xaml +++ b/src/Avalonia.Themes.Simple/Controls/SplitButton.xaml @@ -2,8 +2,7 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:converters="using:Avalonia.Controls.Converters"> - + @@ -26,37 +25,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -75,66 +44,75 @@ - - - + + + diff --git a/src/Avalonia.Themes.Simple/Controls/SplitView.xaml b/src/Avalonia.Themes.Simple/Controls/SplitView.xaml index d6f293a730..f839e9a598 100644 --- a/src/Avalonia.Themes.Simple/Controls/SplitView.xaml +++ b/src/Avalonia.Themes.Simple/Controls/SplitView.xaml @@ -17,8 +17,6 @@ 320 48 - 00:00:00.2 00:00:00.1 0.1,0.9,0.2,1.0 @@ -240,7 +238,9 @@ From 104023bfc88a9e7ee6e7033c4181494f302b6e61 Mon Sep 17 00:00:00 2001 From: Max Katz Date: Sat, 18 Feb 2023 00:27:21 -0500 Subject: [PATCH 042/122] Remove specific data type methods from the IDataObject, add new Files format --- .../ControlCatalog/Pages/DialogsPage.xaml.cs | 41 ++++++++------- .../ControlCatalog/Pages/DragAndDropPage.xaml | 3 +- .../Pages/DragAndDropPage.xaml.cs | 48 +++++++++++++++--- src/Avalonia.Base/Input/DataFormats.cs | 10 +++- src/Avalonia.Base/Input/DataObject.cs | 25 ++++------ .../Input/DataObjectExtensions.cs | 50 +++++++++++++++++++ src/Avalonia.Base/Input/IDataObject.cs | 17 ++----- .../Platform/Storage/FileIO/BclStorageFile.cs | 5 -- .../Storage/FileIO/BclStorageFolder.cs | 9 ---- .../Storage/FileIO/StorageProviderHelpers.cs | 17 +++++++ .../Platform/Storage/PickerOptions.cs | 2 + .../Storage/StorageProviderExtensions.cs | 12 +++++ src/Avalonia.Native/ClipboardImpl.cs | 41 +++++++++------ .../Avalonia.Win32/ClipboardFormats.cs | 3 ++ src/Windows/Avalonia.Win32/DataObject.cs | 15 ++---- src/Windows/Avalonia.Win32/OleDataObject.cs | 18 +++---- 16 files changed, 213 insertions(+), 103 deletions(-) create mode 100644 src/Avalonia.Base/Input/DataObjectExtensions.cs diff --git a/samples/ControlCatalog/Pages/DialogsPage.xaml.cs b/samples/ControlCatalog/Pages/DialogsPage.xaml.cs index e24860e3e1..e5f29abb68 100644 --- a/samples/ControlCatalog/Pages/DialogsPage.xaml.cs +++ b/samples/ControlCatalog/Pages/DialogsPage.xaml.cs @@ -306,25 +306,8 @@ namespace ControlCatalog.Pages resultText += @$" Content: "; -#if NET6_0_OR_GREATER - await using var stream = await file.OpenReadAsync(); -#else - using var stream = await file.OpenReadAsync(); -#endif - using var reader = new System.IO.StreamReader(stream); - // 4GB file test, shouldn't load more than 10000 chars into a memory. - const int length = 10000; - var buffer = ArrayPool.Shared.Rent(length); - try - { - var charsRead = await reader.ReadAsync(buffer, 0, length); - resultText += new string(buffer, 0, charsRead); - } - finally - { - ArrayPool.Shared.Return(buffer); - } + resultText += await ReadTextFromFile(file, 10000); } openedFileContent.Text = resultText; @@ -354,6 +337,28 @@ namespace ControlCatalog.Pages } } + public static async Task ReadTextFromFile(IStorageFile file, int length) + { +#if NET6_0_OR_GREATER + await using var stream = await file.OpenReadAsync(); +#else + using var stream = await file.OpenReadAsync(); +#endif + using var reader = new System.IO.StreamReader(stream); + + // 4GB file test, shouldn't load more than 10000 chars into a memory. + var buffer = ArrayPool.Shared.Rent(length); + try + { + var charsRead = await reader.ReadAsync(buffer, 0, length); + return new string(buffer, 0, charsRead); + } + finally + { + ArrayPool.Shared.Return(buffer); + } + } + protected override void OnAttachedToVisualTree(VisualTreeAttachmentEventArgs e) { base.OnAttachedToVisualTree(e); diff --git a/samples/ControlCatalog/Pages/DragAndDropPage.xaml b/samples/ControlCatalog/Pages/DragAndDropPage.xaml index 3f8a023060..390fa32b9c 100644 --- a/samples/ControlCatalog/Pages/DragAndDropPage.xaml +++ b/samples/ControlCatalog/Pages/DragAndDropPage.xaml @@ -25,7 +25,6 @@ BorderThickness="2"> Drag Me (custom) - + + diff --git a/samples/ControlCatalog/Pages/DragAndDropPage.xaml.cs b/samples/ControlCatalog/Pages/DragAndDropPage.xaml.cs index e384db88b3..26430b4b61 100644 --- a/samples/ControlCatalog/Pages/DragAndDropPage.xaml.cs +++ b/samples/ControlCatalog/Pages/DragAndDropPage.xaml.cs @@ -1,27 +1,29 @@ using System; +using System.IO; using System.Linq; using System.Reflection; using Avalonia.Controls; using Avalonia.Input; using Avalonia.Markup.Xaml; +using Avalonia.Platform.Storage; namespace ControlCatalog.Pages { public class DragAndDropPage : UserControl { - TextBlock _DropState; + private readonly TextBlock _dropState; private const string CustomFormat = "application/xxx-avalonia-controlcatalog-custom"; public DragAndDropPage() { this.InitializeComponent(); - _DropState = this.Get("DropState"); + _dropState = this.Get("DropState"); int textCount = 0; SetupDnd("Text", d => d.Set(DataFormats.Text, $"Text was dragged {++textCount} times"), DragDropEffects.Copy | DragDropEffects.Move | DragDropEffects.Link); SetupDnd("Custom", d => d.Set(CustomFormat, "Test123"), DragDropEffects.Move); - SetupDnd("Files", d => d.Set(DataFormats.FileNames, new[] { Assembly.GetEntryAssembly()?.GetModules().FirstOrDefault()?.FullyQualifiedName }), DragDropEffects.Copy); + SetupDnd("Files", d => d.Set(DataFormats.Files, new[] { Assembly.GetEntryAssembly()?.GetModules().FirstOrDefault()?.FullyQualifiedName }), DragDropEffects.Copy); } void SetupDnd(string suffix, Action factory, DragDropEffects effects) @@ -68,12 +70,12 @@ namespace ControlCatalog.Pages // Only allow if the dragged data contains text or filenames. if (!e.Data.Contains(DataFormats.Text) - && !e.Data.Contains(DataFormats.FileNames) + && !e.Data.Contains(DataFormats.Files) && !e.Data.Contains(CustomFormat)) e.DragEffects = DragDropEffects.None; } - void Drop(object? sender, DragEventArgs e) + async void Drop(object? sender, DragEventArgs e) { if (e.Source is Control c && c.Name == "MoveTarget") { @@ -85,11 +87,41 @@ namespace ControlCatalog.Pages } if (e.Data.Contains(DataFormats.Text)) - _DropState.Text = e.Data.GetText(); + { + _dropState.Text = e.Data.GetText(); + } + else if (e.Data.Contains(DataFormats.Files)) + { + var files = e.Data.GetFiles() ?? Array.Empty(); + var contentStr = ""; + + foreach (var item in files) + { + if (item is IStorageFile file) + { + var content = await DialogsPage.ReadTextFromFile(file, 1000); + contentStr += $"File {item.Name}:{Environment.NewLine}{content}{Environment.NewLine}{Environment.NewLine}"; + } + else if (item is IStorageFolder folder) + { + var items = await folder.GetItemsAsync(); + contentStr += $"Folder {item.Name}: items {items.Count}{Environment.NewLine}{Environment.NewLine}"; + } + } + + _dropState.Text = contentStr; + } +#pragma warning disable CS0618 // Type or member is obsolete else if (e.Data.Contains(DataFormats.FileNames)) - _DropState.Text = string.Join(Environment.NewLine, e.Data.GetFileNames() ?? Array.Empty()); + { + var files = e.Data.GetFileNames(); + _dropState.Text = string.Join(Environment.NewLine, files ?? Array.Empty()); + } +#pragma warning restore CS0618 // Type or member is obsolete else if (e.Data.Contains(CustomFormat)) - _DropState.Text = "Custom: " + e.Data.Get(CustomFormat); + { + _dropState.Text = "Custom: " + e.Data.Get(CustomFormat); + } } dragMe.PointerPressed += DoDrag; diff --git a/src/Avalonia.Base/Input/DataFormats.cs b/src/Avalonia.Base/Input/DataFormats.cs index cf5a6592e1..35d50e669a 100644 --- a/src/Avalonia.Base/Input/DataFormats.cs +++ b/src/Avalonia.Base/Input/DataFormats.cs @@ -1,4 +1,6 @@ -namespace Avalonia.Input +using System; + +namespace Avalonia.Input { public static class DataFormats { @@ -7,9 +9,15 @@ /// public static readonly string Text = nameof(Text); + /// + /// Dataformat for one or more files. + /// + public static readonly string Files = nameof(Files); + /// /// Dataformat for one or more filenames /// + [Obsolete("Use DataFormats.Files, this format is supported only on desktop platforms.")] public static readonly string FileNames = nameof(FileNames); } } diff --git a/src/Avalonia.Base/Input/DataObject.cs b/src/Avalonia.Base/Input/DataObject.cs index 688f5f9cc8..93a6baa03c 100644 --- a/src/Avalonia.Base/Input/DataObject.cs +++ b/src/Avalonia.Base/Input/DataObject.cs @@ -2,37 +2,34 @@ namespace Avalonia.Input { + /// + /// Specific and mutable implementation of the IDataObject interface. + /// public class DataObject : IDataObject { - private readonly Dictionary _items = new Dictionary(); + private readonly Dictionary _items = new(); + /// public bool Contains(string dataFormat) { return _items.ContainsKey(dataFormat); } + /// public object? Get(string dataFormat) { - if (_items.ContainsKey(dataFormat)) - return _items[dataFormat]; - return null; + return _items.TryGetValue(dataFormat, out var item) ? item : null; } + /// public IEnumerable GetDataFormats() { return _items.Keys; } - public IEnumerable? GetFileNames() - { - return Get(DataFormats.FileNames) as IEnumerable; - } - - public string? GetText() - { - return Get(DataFormats.Text) as string; - } - + /// + /// Sets a value to the internal store of the data object with as a key. + /// public void Set(string dataFormat, object value) { _items[dataFormat] = value; diff --git a/src/Avalonia.Base/Input/DataObjectExtensions.cs b/src/Avalonia.Base/Input/DataObjectExtensions.cs new file mode 100644 index 0000000000..807c242914 --- /dev/null +++ b/src/Avalonia.Base/Input/DataObjectExtensions.cs @@ -0,0 +1,50 @@ +using System.Collections.Generic; +using System.Linq; +using Avalonia.Platform.Storage; + +namespace Avalonia.Input +{ + public static class DataObjectExtensions + { + /// + /// Returns a list of files if the DataObject contains files or filenames. + /// . + /// + /// + /// Collection of storage items - files or folders. If format isn't avaialble, returns null. + /// + public static IEnumerable? GetFiles(this IDataObject dataObject) + { + return dataObject.Get(DataFormats.Files) as IEnumerable; + } + + /// + /// Returns a list of filenames if the DataObject contains filenames. + /// + /// + /// + /// Collection of file names. If format isn't avaialble, returns null. + /// + [System.Obsolete("Use GetFiles, this method is supported only on desktop platforms.")] + public static IEnumerable? GetFileNames(this IDataObject dataObject) + { + return (dataObject.Get(DataFormats.FileNames) as IEnumerable) + ?? dataObject.GetFiles()? + .Select(f => f.TryGetLocalPath()) + .Where(p => !string.IsNullOrEmpty(p)) + .OfType(); + } + + /// + /// Returns the dragged text if the DataObject contains any text. + /// + /// + /// + /// A text string. If format isn't avaialble, returns null. + /// + public static string? GetText(this IDataObject dataObject) + { + return dataObject.Get(DataFormats.Text) as string; + } + } +} diff --git a/src/Avalonia.Base/Input/IDataObject.cs b/src/Avalonia.Base/Input/IDataObject.cs index 1db008aa3a..b6fcd8c7db 100644 --- a/src/Avalonia.Base/Input/IDataObject.cs +++ b/src/Avalonia.Base/Input/IDataObject.cs @@ -1,4 +1,6 @@ using System.Collections.Generic; +using System.Linq; +using Avalonia.Platform.Storage; namespace Avalonia.Input { @@ -19,21 +21,12 @@ namespace Avalonia.Input /// bool Contains(string dataFormat); - /// - /// Returns the dragged text if the DataObject contains any text. - /// - /// - string? GetText(); - - /// - /// Returns a list of filenames if the DataObject contains filenames. - /// - /// - IEnumerable? GetFileNames(); - /// /// Tries to get the data of the given DataFormat. /// + /// + /// Object data. If format isn't avaialble, returns null. + /// object? Get(string dataFormat); } } diff --git a/src/Avalonia.Base/Platform/Storage/FileIO/BclStorageFile.cs b/src/Avalonia.Base/Platform/Storage/FileIO/BclStorageFile.cs index 5bf9ff9d9a..543fb0ab74 100644 --- a/src/Avalonia.Base/Platform/Storage/FileIO/BclStorageFile.cs +++ b/src/Avalonia.Base/Platform/Storage/FileIO/BclStorageFile.cs @@ -7,11 +7,6 @@ namespace Avalonia.Platform.Storage.FileIO; internal class BclStorageFile : IStorageBookmarkFile { - public BclStorageFile(string fileName) - { - FileInfo = new FileInfo(fileName); - } - public BclStorageFile(FileInfo fileInfo) { FileInfo = fileInfo ?? throw new ArgumentNullException(nameof(fileInfo)); diff --git a/src/Avalonia.Base/Platform/Storage/FileIO/BclStorageFolder.cs b/src/Avalonia.Base/Platform/Storage/FileIO/BclStorageFolder.cs index 1e21c197bb..d8e3d91f75 100644 --- a/src/Avalonia.Base/Platform/Storage/FileIO/BclStorageFolder.cs +++ b/src/Avalonia.Base/Platform/Storage/FileIO/BclStorageFolder.cs @@ -9,15 +9,6 @@ namespace Avalonia.Platform.Storage.FileIO; internal class BclStorageFolder : IStorageBookmarkFolder { - public BclStorageFolder(string path) - { - DirectoryInfo = new DirectoryInfo(path); - if (!DirectoryInfo.Exists) - { - throw new ArgumentException("Directory must exist"); - } - } - public BclStorageFolder(DirectoryInfo directoryInfo) { DirectoryInfo = directoryInfo ?? throw new ArgumentNullException(nameof(directoryInfo)); diff --git a/src/Avalonia.Base/Platform/Storage/FileIO/StorageProviderHelpers.cs b/src/Avalonia.Base/Platform/Storage/FileIO/StorageProviderHelpers.cs index 55e84ee937..a8cbffb417 100644 --- a/src/Avalonia.Base/Platform/Storage/FileIO/StorageProviderHelpers.cs +++ b/src/Avalonia.Base/Platform/Storage/FileIO/StorageProviderHelpers.cs @@ -7,6 +7,23 @@ namespace Avalonia.Platform.Storage.FileIO; internal static class StorageProviderHelpers { + public static IStorageItem? TryCreateBclStorageItem(string path) + { + var directory = new DirectoryInfo(path); + if (directory.Exists) + { + return new BclStorageFolder(directory); + } + + var file = new FileInfo(path); + if (file.Exists) + { + return new BclStorageFile(file); + } + + return null; + } + public static Uri FilePathToUri(string path) { var uriPath = new StringBuilder(path) diff --git a/src/Avalonia.Base/Platform/Storage/PickerOptions.cs b/src/Avalonia.Base/Platform/Storage/PickerOptions.cs index 6f97916a26..ed061aa2d5 100644 --- a/src/Avalonia.Base/Platform/Storage/PickerOptions.cs +++ b/src/Avalonia.Base/Platform/Storage/PickerOptions.cs @@ -12,6 +12,8 @@ public class PickerOptions /// /// Gets or sets the initial location where the file open picker looks for files to present to the user. + /// Can be obtained from previously picked folder or using + /// or . /// public IStorageFolder? SuggestedStartLocation { get; set; } } diff --git a/src/Avalonia.Base/Platform/Storage/StorageProviderExtensions.cs b/src/Avalonia.Base/Platform/Storage/StorageProviderExtensions.cs index 6f8b945cd6..1febb4506a 100644 --- a/src/Avalonia.Base/Platform/Storage/StorageProviderExtensions.cs +++ b/src/Avalonia.Base/Platform/Storage/StorageProviderExtensions.cs @@ -11,12 +11,24 @@ public static class StorageProviderExtensions /// public static Task TryGetFileFromPathAsync(this IStorageProvider provider, string filePath) { + // We can avoid double escaping of the path by checking for BclStorageProvider. + if (provider is BclStorageProvider) + { + return Task.FromResult(StorageProviderHelpers.TryCreateBclStorageItem(filePath) as IStorageFile); + } + return provider.TryGetFileFromPathAsync(StorageProviderHelpers.FilePathToUri(filePath)); } /// public static Task TryGetFolderFromPathAsync(this IStorageProvider provider, string folderPath) { + // We can avoid double escaping of the path by checking for BclStorageProvider. + if (provider is BclStorageProvider) + { + return Task.FromResult(StorageProviderHelpers.TryCreateBclStorageItem(folderPath) as IStorageFolder); + } + return provider.TryGetFolderFromPathAsync(StorageProviderHelpers.FilePathToUri(folderPath)); } diff --git a/src/Avalonia.Native/ClipboardImpl.cs b/src/Avalonia.Native/ClipboardImpl.cs index 9f1c8883aa..5a6b0df801 100644 --- a/src/Avalonia.Native/ClipboardImpl.cs +++ b/src/Avalonia.Native/ClipboardImpl.cs @@ -2,11 +2,11 @@ using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; -using System.Runtime.InteropServices; using Avalonia.Input; using Avalonia.Input.Platform; using Avalonia.Native.Interop; -using Avalonia.Platform.Interop; +using Avalonia.Platform.Storage; +using Avalonia.Platform.Storage.FileIO; namespace Avalonia.Native { @@ -56,8 +56,13 @@ namespace Avalonia.Native { if(fmt.String == NSPasteboardTypeString) rv.Add(DataFormats.Text); - if(fmt.String == NSFilenamesPboardType) - rv.Add(DataFormats.FileNames); + if (fmt.String == NSFilenamesPboardType) + { +#pragma warning disable CS0618 // Type or member is obsolete + rv.Add(DataFormats.FileNames); +#pragma warning restore CS0618 // Type or member is obsolete + rv.Add(DataFormats.Files); + } } } } @@ -74,7 +79,13 @@ namespace Avalonia.Native public IEnumerable GetFileNames() { using (var strings = _native.GetStrings(NSFilenamesPboardType)) - return strings.ToStringArray(); + return strings?.ToStringArray(); + } + + public IEnumerable GetFiles() + { + return GetFileNames()?.Select(f => StorageProviderHelpers.TryCreateBclStorageItem(f)!) + .Where(f => f is not null); } public unsafe Task SetDataObjectAsync(IDataObject data) @@ -102,8 +113,12 @@ namespace Avalonia.Native { if (format == DataFormats.Text) return await GetTextAsync(); +#pragma warning disable CS0618 // Type or member is obsolete if (format == DataFormats.FileNames) return GetFileNames(); +#pragma warning restore CS0618 // Type or member is obsolete + if (format == DataFormats.Files) + return GetFiles(); using (var n = _native.GetBytes(format)) return n.Bytes; } @@ -131,20 +146,16 @@ namespace Avalonia.Native public bool Contains(string dataFormat) => Formats.Contains(dataFormat); - public string GetText() - { - // bad idea in general, but API is synchronous anyway - return _clipboard.GetTextAsync().Result; - } - - public IEnumerable GetFileNames() => _clipboard.GetFileNames(); - public object Get(string dataFormat) { if (dataFormat == DataFormats.Text) - return GetText(); + return _clipboard.GetTextAsync().Result; + if (dataFormat == DataFormats.Files) + return _clipboard.GetFiles(); +#pragma warning disable CS0618 if (dataFormat == DataFormats.FileNames) - return GetFileNames(); +#pragma warning restore CS0618 + return _clipboard.GetFileNames(); return null; } } diff --git a/src/Windows/Avalonia.Win32/ClipboardFormats.cs b/src/Windows/Avalonia.Win32/ClipboardFormats.cs index 5fc4f21b2e..00fdeb2a1d 100644 --- a/src/Windows/Avalonia.Win32/ClipboardFormats.cs +++ b/src/Windows/Avalonia.Win32/ClipboardFormats.cs @@ -29,7 +29,10 @@ namespace Avalonia.Win32 private static readonly List s_formatList = new() { new ClipboardFormat(DataFormats.Text, (ushort)UnmanagedMethods.ClipboardFormat.CF_UNICODETEXT, (ushort)UnmanagedMethods.ClipboardFormat.CF_TEXT), + new ClipboardFormat(DataFormats.Files, (ushort)UnmanagedMethods.ClipboardFormat.CF_HDROP), +#pragma warning disable CS0618 // Type or member is obsolete new ClipboardFormat(DataFormats.FileNames, (ushort)UnmanagedMethods.ClipboardFormat.CF_HDROP), +#pragma warning restore CS0618 // Type or member is obsolete }; diff --git a/src/Windows/Avalonia.Win32/DataObject.cs b/src/Windows/Avalonia.Win32/DataObject.cs index 272300cbf3..a215a0a322 100644 --- a/src/Windows/Avalonia.Win32/DataObject.cs +++ b/src/Windows/Avalonia.Win32/DataObject.cs @@ -10,6 +10,7 @@ using System.Runtime.InteropServices.ComTypes; using System.Runtime.Serialization.Formatters.Binary; using Avalonia.Input; using Avalonia.MicroCom; +using Avalonia.Platform.Storage; using Avalonia.Win32.Interop; using FORMATETC = Avalonia.Win32.Interop.FORMATETC; @@ -124,16 +125,6 @@ namespace Avalonia.Win32 return _wrapped.GetDataFormats(); } - IEnumerable? IDataObject.GetFileNames() - { - return _wrapped.GetFileNames(); - } - - string? IDataObject.GetText() - { - return _wrapped.GetText(); - } - object? IDataObject.Get(string dataFormat) { return _wrapped.Get(dataFormat); @@ -260,8 +251,12 @@ namespace Avalonia.Win32 object data = _wrapped.Get(dataFormat)!; if (dataFormat == DataFormats.Text || data is string) return WriteStringToHGlobal(ref hGlobal, Convert.ToString(data) ?? string.Empty); +#pragma warning disable CS0618 // Type or member is obsolete if (dataFormat == DataFormats.FileNames && data is IEnumerable files) return WriteFileListToHGlobal(ref hGlobal, files); +#pragma warning restore CS0618 // Type or member is obsolete + if (dataFormat == DataFormats.Files && data is IEnumerable items) + return WriteFileListToHGlobal(ref hGlobal, items.Select(f => f.TryGetLocalPath()).Where(f => f is not null)!); if (data is Stream stream) { var length = (int)(stream.Length - stream.Position); diff --git a/src/Windows/Avalonia.Win32/OleDataObject.cs b/src/Windows/Avalonia.Win32/OleDataObject.cs index 247d0340c3..824303b7fa 100644 --- a/src/Windows/Avalonia.Win32/OleDataObject.cs +++ b/src/Windows/Avalonia.Win32/OleDataObject.cs @@ -8,6 +8,7 @@ using System.Runtime.InteropServices; using System.Runtime.InteropServices.ComTypes; using System.Runtime.Serialization.Formatters.Binary; using Avalonia.Input; +using Avalonia.Platform.Storage.FileIO; using Avalonia.Utilities; using Avalonia.Win32.Interop; using MicroCom.Runtime; @@ -34,16 +35,6 @@ namespace Avalonia.Win32 return GetDataFormatsCore().Distinct(); } - public string? GetText() - { - return (string?)GetDataFromOleHGLOBAL(DataFormats.Text, DVASPECT.DVASPECT_CONTENT); - } - - public IEnumerable? GetFileNames() - { - return (IEnumerable?)GetDataFromOleHGLOBAL(DataFormats.FileNames, DVASPECT.DVASPECT_CONTENT); - } - public object? Get(string dataFormat) { return GetDataFromOleHGLOBAL(dataFormat, DVASPECT.DVASPECT_CONTENT); @@ -67,8 +58,15 @@ namespace Avalonia.Win32 { if (format == DataFormats.Text) return ReadStringFromHGlobal(medium.unionmember); +#pragma warning disable CS0618 if (format == DataFormats.FileNames) +#pragma warning restore CS0618 return ReadFileNamesFromHGlobal(medium.unionmember); + if (format == DataFormats.Files) + return ReadFileNamesFromHGlobal(medium.unionmember) + .Select(f => StorageProviderHelpers.TryCreateBclStorageItem(f)!) + // ReSharper disable once ConditionIsAlwaysTrueOrFalseAccordingToNullableAPIContract + .Where(f => f is not null); byte[] data = ReadBytesFromHGlobal(medium.unionmember); From dcb73b9fefee2fa5a6509fe1764590a175a6aa36 Mon Sep 17 00:00:00 2001 From: Max Katz Date: Sat, 18 Feb 2023 00:27:40 -0500 Subject: [PATCH 043/122] Browser drag n drop target support --- src/Browser/Avalonia.Browser/AvaloniaView.cs | 55 +++++++++++ .../Avalonia.Browser/BrowserDataObject.cs | 91 +++++++++++++++++++ .../Avalonia.Browser/BrowserTopLevelImpl.cs | 9 ++ src/Browser/Avalonia.Browser/ClipboardImpl.cs | 2 +- .../Interop/AvaloniaModule.cs | 21 +++-- .../Interop/GeneralHelpers.cs | 22 +++++ .../Avalonia.Browser/Interop/InputHelper.cs | 5 +- .../Avalonia.Browser/Interop/StorageHelper.cs | 3 + .../Storage/BrowserStorageProvider.cs | 16 ++-- .../webapp/modules/avalonia.ts | 4 +- .../webapp/modules/avalonia/generalHelpers.ts | 19 ++++ .../webapp/modules/avalonia/input.ts | 22 +++++ .../webapp/modules/storage/storageItem.ts | 42 ++++++++- .../webapp/modules/storage/storageProvider.ts | 8 +- 14 files changed, 289 insertions(+), 30 deletions(-) create mode 100644 src/Browser/Avalonia.Browser/BrowserDataObject.cs create mode 100644 src/Browser/Avalonia.Browser/Interop/GeneralHelpers.cs create mode 100644 src/Browser/Avalonia.Browser/webapp/modules/avalonia/generalHelpers.ts diff --git a/src/Browser/Avalonia.Browser/AvaloniaView.cs b/src/Browser/Avalonia.Browser/AvaloniaView.cs index 3bb7260e55..76947c949c 100644 --- a/src/Browser/Avalonia.Browser/AvaloniaView.cs +++ b/src/Browser/Avalonia.Browser/AvaloniaView.cs @@ -106,6 +106,8 @@ namespace Avalonia.Browser InputHelper.SubscribePointerEvents(_containerElement, OnPointerMove, OnPointerDown, OnPointerUp, OnPointerCancel, OnWheel); + InputHelper.SubscribeDropEvents(_containerElement, OnDragEvent); + var skiaOptions = AvaloniaLocator.Current.GetService(); _dpi = DomHelper.ObserveDpi(OnDpiChanged); @@ -293,6 +295,59 @@ namespace Avalonia.Browser return modifiers; } + public bool OnDragEvent(JSObject args) + { + var eventType = args?.GetPropertyAsString("type") switch + { + "dragenter" => RawDragEventType.DragEnter, + "dragover" => RawDragEventType.DragOver, + "dragleave" => RawDragEventType.DragLeave, + "drop" => RawDragEventType.Drop, + _ => (RawDragEventType)(int)-1 + }; + var dataObject = args?.GetPropertyAsJSObject("dataTransfer"); + if (args is null || eventType < 0 || dataObject is null) + { + return false; + } + + // If file is dropped, we need storage js to be referenced. + // TODO: restructure JS files, so it's not needed. + _ = AvaloniaModule.ImportStorage(); + + var position = new Point(args.GetPropertyAsDouble("offsetX"), args.GetPropertyAsDouble("offsetY")); + var modifiers = GetModifiers(args); + + var effectAllowedStr = dataObject.GetPropertyAsString("effectAllowed") ?? "none"; + var effectAllowed = DragDropEffects.None; + if (effectAllowedStr.Contains("copy", StringComparison.OrdinalIgnoreCase)) + { + effectAllowed |= DragDropEffects.Copy; + } + if (effectAllowedStr.Contains("link", StringComparison.OrdinalIgnoreCase)) + { + effectAllowed |= DragDropEffects.Link; + } + if (effectAllowedStr.Contains("move", StringComparison.OrdinalIgnoreCase)) + { + effectAllowed |= DragDropEffects.Move; + } + if (effectAllowedStr.Equals("all", StringComparison.OrdinalIgnoreCase)) + { + effectAllowed |= DragDropEffects.Move | DragDropEffects.Copy | DragDropEffects.Link; + } + if (effectAllowed == DragDropEffects.None) + { + return false; + } + + var dropEffect = _topLevelImpl.RawDragEvent(eventType, position, modifiers, new BrowserDataObject(dataObject), effectAllowed); + dataObject.SetProperty("dropEffect", dropEffect.ToString().ToLowerInvariant()); + + return eventType is RawDragEventType.Drop or RawDragEventType.DragOver + && dropEffect != DragDropEffects.None; + } + private bool OnKeyDown (string code, string key, int modifier) { var handled = _topLevelImpl.RawKeyboardEvent(RawKeyEventType.KeyDown, code, key, (RawInputModifiers)modifier); diff --git a/src/Browser/Avalonia.Browser/BrowserDataObject.cs b/src/Browser/Avalonia.Browser/BrowserDataObject.cs new file mode 100644 index 0000000000..f1e30ee3fe --- /dev/null +++ b/src/Browser/Avalonia.Browser/BrowserDataObject.cs @@ -0,0 +1,91 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.InteropServices.JavaScript; +using Avalonia.Browser.Interop; +using Avalonia.Browser.Storage; +using Avalonia.Input; +using Avalonia.Platform.Storage; + +namespace Avalonia.Browser; + +internal class BrowserDataObject : IDataObject +{ + private readonly JSObject _dataObject; + + public BrowserDataObject(JSObject dataObject) + { + _dataObject = dataObject; + } + + public IEnumerable GetDataFormats() + { + var types = new HashSet(_dataObject.GetPropertyAsStringArray("types")); + var dataFormats = new HashSet(types.Count); + + foreach (var type in types) + { + if (type.StartsWith("text/", StringComparison.Ordinal)) + { + dataFormats.Add(DataFormats.Text); + } + else if (type.Equals("Files", StringComparison.Ordinal)) + { + dataFormats.Add(DataFormats.Files); + } + dataFormats.Add(type); + } + + // If drag'n'drop an image from the another web page, if won't add "Files" to the supported types, but only a "text/uri-list". + // With "text/uri-list" browser can add actual file as well. + var filesCount = _dataObject.GetPropertyAsJSObject("files")?.GetPropertyAsInt32("count"); + if (filesCount > 0) + { + dataFormats.Add(DataFormats.Files); + } + + return dataFormats; + } + + public bool Contains(string dataFormat) + { + return GetDataFormats().Contains(dataFormat); + } + + public object? Get(string dataFormat) + { + if (dataFormat == DataFormats.Files) + { + var files = _dataObject.GetPropertyAsJSObject("files"); + if (files is not null) + { + return StorageHelper.FilesToItemsArray(files) + .Select(reference => reference.GetPropertyAsString("kind") switch + { + "directory" => (IStorageItem)new JSStorageFolder(reference), + "file" => new JSStorageFile(reference), + _ => null + }) + .Where(i => i is not null) + .ToArray()!; + } + + return null; + } + + if (dataFormat == DataFormats.Text) + { + if (_dataObject.CallMethodString("getData", "text/plain") is { Length :> 0 } textData) + { + return textData; + } + } + + if (_dataObject.CallMethodString("getData", dataFormat) is { Length: > 0 } data) + { + return data; + } + + return null; + } +} diff --git a/src/Browser/Avalonia.Browser/BrowserTopLevelImpl.cs b/src/Browser/Avalonia.Browser/BrowserTopLevelImpl.cs index f1cd441f45..1bf4636f61 100644 --- a/src/Browser/Avalonia.Browser/BrowserTopLevelImpl.cs +++ b/src/Browser/Avalonia.Browser/BrowserTopLevelImpl.cs @@ -164,6 +164,15 @@ namespace Avalonia.Browser return false; } + + public DragDropEffects RawDragEvent(RawDragEventType eventType, Point position, RawInputModifiers modifiers, BrowserDataObject dataObject, DragDropEffects dropEffect) + { + var device = AvaloniaLocator.Current.GetRequiredService(); + var eventArgs = new RawDragEvent(device, eventType, _inputRoot!, position, dataObject, dropEffect, modifiers); + Console.WriteLine($"{eventArgs.Location} {eventArgs.Effects} {eventArgs.Type} {eventArgs.KeyModifiers}"); + Input?.Invoke(eventArgs); + return eventArgs.Effects; + } public void Dispose() { diff --git a/src/Browser/Avalonia.Browser/ClipboardImpl.cs b/src/Browser/Avalonia.Browser/ClipboardImpl.cs index b94fe2df9e..c4f5e90777 100644 --- a/src/Browser/Avalonia.Browser/ClipboardImpl.cs +++ b/src/Browser/Avalonia.Browser/ClipboardImpl.cs @@ -24,6 +24,6 @@ namespace Avalonia.Browser public Task GetFormatsAsync() => Task.FromResult(Array.Empty()); - public Task GetDataAsync(string format) => Task.FromResult(new()); + public Task GetDataAsync(string format) => Task.FromResult(null); } } diff --git a/src/Browser/Avalonia.Browser/Interop/AvaloniaModule.cs b/src/Browser/Avalonia.Browser/Interop/AvaloniaModule.cs index f1936a8d97..394f191dab 100644 --- a/src/Browser/Avalonia.Browser/Interop/AvaloniaModule.cs +++ b/src/Browser/Avalonia.Browser/Interop/AvaloniaModule.cs @@ -1,24 +1,29 @@ -using System.Runtime.InteropServices.JavaScript; +using System; +using System.Runtime.InteropServices.JavaScript; using System.Threading.Tasks; namespace Avalonia.Browser.Interop; internal static partial class AvaloniaModule { - public const string MainModuleName = "avalonia"; - public const string StorageModuleName = "storage"; - - public static Task ImportMain() + private static readonly Lazy s_importMain = new(() => { var options = AvaloniaLocator.Current.GetService() ?? new BrowserPlatformOptions(); return JSHost.ImportAsync(MainModuleName, options.FrameworkAssetPathResolver!("avalonia.js")); - } + }); - public static Task ImportStorage() + private static readonly Lazy s_importStorage = new(() => { var options = AvaloniaLocator.Current.GetService() ?? new BrowserPlatformOptions(); return JSHost.ImportAsync(StorageModuleName, options.FrameworkAssetPathResolver!("storage.js")); - } + }); + + public const string MainModuleName = "avalonia"; + public const string StorageModuleName = "storage"; + + public static Task ImportMain() => s_importMain.Value; + + public static Task ImportStorage() => s_importStorage.Value; [JSImport("Caniuse.isMobile", AvaloniaModule.MainModuleName)] public static partial bool IsMobile(); diff --git a/src/Browser/Avalonia.Browser/Interop/GeneralHelpers.cs b/src/Browser/Avalonia.Browser/Interop/GeneralHelpers.cs new file mode 100644 index 0000000000..6e3b41c05b --- /dev/null +++ b/src/Browser/Avalonia.Browser/Interop/GeneralHelpers.cs @@ -0,0 +1,22 @@ +using System.Runtime.InteropServices.JavaScript; + +namespace Avalonia.Browser.Interop; + +internal static partial class GeneralHelpers +{ + [JSImport("GeneralHelpers.itemsArrayAt", AvaloniaModule.MainModuleName)] + public static partial JSObject[] ItemsArrayAt(JSObject jsObject, string key); + public static JSObject[] GetPropertyAsJSObjectArray(this JSObject jsObject, string key) => ItemsArrayAt(jsObject, key); + + [JSImport("GeneralHelpers.itemsArrayAt", AvaloniaModule.MainModuleName)] + public static partial string[] ItemsArrayAtAsStrings(JSObject jsObject, string key); + public static string[] GetPropertyAsStringArray(this JSObject jsObject, string key) => ItemsArrayAtAsStrings(jsObject, key); + + [JSImport("GeneralHelpers.callMethod", AvaloniaModule.MainModuleName)] + public static partial string IntCallMethodString(JSObject jsObject, string name); + [JSImport("GeneralHelpers.callMethod", AvaloniaModule.MainModuleName)] + public static partial string IntCallMethodStringString(JSObject jsObject, string name, string arg1); + + public static string CallMethodString(this JSObject jsObject, string name) => IntCallMethodString(jsObject, name); + public static string CallMethodString(this JSObject jsObject, string name, string arg1) => IntCallMethodStringString(jsObject, name, arg1); +} diff --git a/src/Browser/Avalonia.Browser/Interop/InputHelper.cs b/src/Browser/Avalonia.Browser/Interop/InputHelper.cs index a816e39da8..a978c18f9b 100644 --- a/src/Browser/Avalonia.Browser/Interop/InputHelper.cs +++ b/src/Browser/Avalonia.Browser/Interop/InputHelper.cs @@ -43,13 +43,16 @@ internal static partial class InputHelper [JSMarshalAs>] Func wheel); - [JSImport("InputHelper.subscribeInputEvents", AvaloniaModule.MainModuleName)] public static partial void SubscribeInputEvents( JSObject htmlElement, [JSMarshalAs>] Func input); + [JSImport("InputHelper.subscribeDropEvents", AvaloniaModule.MainModuleName)] + public static partial void SubscribeDropEvents(JSObject containerElement, + [JSMarshalAs>] Func dragEvent); + [JSImport("InputHelper.getCoalescedEvents", AvaloniaModule.MainModuleName)] [return: JSMarshalAs>] public static partial JSObject[] GetCoalescedEvents(JSObject pointerEvent); diff --git a/src/Browser/Avalonia.Browser/Interop/StorageHelper.cs b/src/Browser/Avalonia.Browser/Interop/StorageHelper.cs index 11beba6f2c..2d96ee8d1f 100644 --- a/src/Browser/Avalonia.Browser/Interop/StorageHelper.cs +++ b/src/Browser/Avalonia.Browser/Interop/StorageHelper.cs @@ -46,6 +46,9 @@ internal static partial class StorageHelper [JSImport("StorageItems.itemsArray", AvaloniaModule.StorageModuleName)] public static partial JSObject[] ItemsArray(JSObject item); + + [JSImport("StorageItems.filesToItemsArray", AvaloniaModule.StorageModuleName)] + public static partial JSObject[] FilesToItemsArray(JSObject item); [JSImport("StorageProvider.createAcceptType", AvaloniaModule.StorageModuleName)] public static partial JSObject CreateAcceptType(string description, string[] mimeTypes, string[]? extensions); diff --git a/src/Browser/Avalonia.Browser/Storage/BrowserStorageProvider.cs b/src/Browser/Avalonia.Browser/Storage/BrowserStorageProvider.cs index 5b76d53a9d..fc32b3b4f7 100644 --- a/src/Browser/Avalonia.Browser/Storage/BrowserStorageProvider.cs +++ b/src/Browser/Avalonia.Browser/Storage/BrowserStorageProvider.cs @@ -1,10 +1,8 @@ using System; using System.Collections.Generic; -using System.Diagnostics.CodeAnalysis; using System.IO; using System.Linq; using System.Runtime.InteropServices.JavaScript; -using System.Runtime.Versioning; using System.Threading.Tasks; using Avalonia.Browser.Interop; using Avalonia.Platform.Storage; @@ -18,15 +16,13 @@ internal class BrowserStorageProvider : IStorageProvider internal const string PickerCancelMessage = "The user aborted a request"; internal const string NoPermissionsMessage = "Permissions denied"; - private readonly Lazy _lazyModule = new(() => AvaloniaModule.ImportStorage()); - public bool CanOpen => true; public bool CanSave => StorageHelper.HasNativeFilePicker(); public bool CanPickFolder => true; public async Task> OpenFilePickerAsync(FilePickerOpenOptions options) { - await _lazyModule.Value; + await AvaloniaModule.ImportStorage(); var startIn = (options.SuggestedStartLocation as JSStorageItem)?.FileHandle; var (types, excludeAll) = ConvertFileTypes(options.FileTypeFilter); @@ -60,7 +56,7 @@ internal class BrowserStorageProvider : IStorageProvider public async Task SaveFilePickerAsync(FilePickerSaveOptions options) { - await _lazyModule.Value; + await AvaloniaModule.ImportStorage(); var startIn = (options.SuggestedStartLocation as JSStorageItem)?.FileHandle; var (types, excludeAll) = ConvertFileTypes(options.FileTypeChoices); @@ -88,7 +84,7 @@ internal class BrowserStorageProvider : IStorageProvider public async Task> OpenFolderPickerAsync(FolderPickerOpenOptions options) { - await _lazyModule.Value; + await AvaloniaModule.ImportStorage(); var startIn = (options.SuggestedStartLocation as JSStorageItem)?.FileHandle; try @@ -104,14 +100,14 @@ internal class BrowserStorageProvider : IStorageProvider public async Task OpenFileBookmarkAsync(string bookmark) { - await _lazyModule.Value; + await AvaloniaModule.ImportStorage(); var item = await StorageHelper.OpenBookmark(bookmark); return item is not null ? new JSStorageFile(item) : null; } public async Task OpenFolderBookmarkAsync(string bookmark) { - await _lazyModule.Value; + await AvaloniaModule.ImportStorage(); var item = await StorageHelper.OpenBookmark(bookmark); return item is not null ? new JSStorageFolder(item) : null; } @@ -128,7 +124,7 @@ internal class BrowserStorageProvider : IStorageProvider public async Task TryGetWellKnownFolderAsync(WellKnownFolder wellKnownFolder) { - await _lazyModule.Value; + await AvaloniaModule.ImportStorage(); var directory = StorageHelper.CreateWellKnownDirectory(wellKnownFolder switch { WellKnownFolder.Desktop => "desktop", diff --git a/src/Browser/Avalonia.Browser/webapp/modules/avalonia.ts b/src/Browser/Avalonia.Browser/webapp/modules/avalonia.ts index 3fb4124c96..80faca7a50 100644 --- a/src/Browser/Avalonia.Browser/webapp/modules/avalonia.ts +++ b/src/Browser/Avalonia.Browser/webapp/modules/avalonia.ts @@ -5,6 +5,7 @@ import { Caniuse } from "./avalonia/caniuse"; import { StreamHelper } from "./avalonia/stream"; import { NativeControlHost } from "./avalonia/nativeControlHost"; import { NavigationHelper } from "./avalonia/navigationHelper"; +import { GeneralHelpers } from "./avalonia/generalHelpers"; export { Caniuse, @@ -15,5 +16,6 @@ export { AvaloniaDOM, StreamHelper, NativeControlHost, - NavigationHelper + NavigationHelper, + GeneralHelpers }; diff --git a/src/Browser/Avalonia.Browser/webapp/modules/avalonia/generalHelpers.ts b/src/Browser/Avalonia.Browser/webapp/modules/avalonia/generalHelpers.ts new file mode 100644 index 0000000000..fa001006ab --- /dev/null +++ b/src/Browser/Avalonia.Browser/webapp/modules/avalonia/generalHelpers.ts @@ -0,0 +1,19 @@ +export class GeneralHelpers { + public static itemsArrayAt(instance: any, key: string): any[] { + const items = instance[key]; + if (!items) { + return []; + } + + const retItems = []; + for (let i = 0; i < items.length; i++) { + retItems[i] = items[i]; + } + return retItems; + } + + public static callMethod(instance: any, name: string /*, args */): any { + const args = Array.prototype.slice.call(arguments, 2); + return instance[name].apply(instance, args); + } +} diff --git a/src/Browser/Avalonia.Browser/webapp/modules/avalonia/input.ts b/src/Browser/Avalonia.Browser/webapp/modules/avalonia/input.ts index 0f0e5eb512..fb94352192 100644 --- a/src/Browser/Avalonia.Browser/webapp/modules/avalonia/input.ts +++ b/src/Browser/Avalonia.Browser/webapp/modules/avalonia/input.ts @@ -174,6 +174,28 @@ export class InputHelper { }; } + public static subscribeDropEvents( + element: HTMLInputElement, + dragEvent: (args: any) => boolean + ) { + const dragHandler = (args: Event) => { + if (dragEvent(args as any)) { + args.preventDefault(); + } + }; + element.addEventListener("dragover", dragHandler); + element.addEventListener("dragenter", dragHandler); + element.addEventListener("dragleave", dragHandler); + element.addEventListener("drop", dragHandler); + + return () => { + element.removeEventListener("dragover", dragHandler); + element.removeEventListener("dragenter", dragHandler); + element.removeEventListener("dragleave", dragHandler); + element.removeEventListener("drop", dragHandler); + }; + } + public static getCoalescedEvents(pointerEvent: PointerEvent): PointerEvent[] { return pointerEvent.getCoalescedEvents(); } diff --git a/src/Browser/Avalonia.Browser/webapp/modules/storage/storageItem.ts b/src/Browser/Avalonia.Browser/webapp/modules/storage/storageItem.ts index 8f47e61100..f444717094 100644 --- a/src/Browser/Avalonia.Browser/webapp/modules/storage/storageItem.ts +++ b/src/Browser/Avalonia.Browser/webapp/modules/storage/storageItem.ts @@ -3,8 +3,9 @@ import { FileSystemFileHandle, FileSystemDirectoryHandle, FileSystemWritableFile import { Caniuse } from "../avalonia"; export class StorageItem { - constructor( + private constructor( public handle?: FileSystemFileHandle | FileSystemDirectoryHandle, + private readonly file?: File, private readonly bookmarkId?: string, public wellKnownType?: WellKnownDirectory ) { @@ -14,6 +15,9 @@ export class StorageItem { if (this.handle) { return this.handle.name; } + if (this.file) { + return this.file.name; + } return this.wellKnownType ?? ""; } @@ -21,14 +25,29 @@ export class StorageItem { if (this.handle) { return this.handle.kind; } + if (this.file) { + return "file"; + } return "directory"; } + public static createFromHandle(handle: FileSystemFileHandle | FileSystemDirectoryHandle, bookmarkId?: string) { + return new StorageItem(handle, undefined, bookmarkId, undefined); + } + + public static createFromFile(file: File) { + return new StorageItem(undefined, file, undefined, undefined); + } + public static createWellKnownDirectory(type: WellKnownDirectory) { - return new StorageItem(undefined, undefined, type); + return new StorageItem(undefined, undefined, undefined, type); } public static async openRead(item: StorageItem): Promise { + if (item.file) { + return item.file; + } + if (!item.handle || item.kind !== "file") { throw new Error("StorageItem is not a file"); } @@ -41,7 +60,7 @@ export class StorageItem { public static async openWrite(item: StorageItem): Promise { if (!item.handle || item.kind !== "file") { - throw new Error("StorageItem is not a file"); + throw new Error("StorageItem is not a writeable file"); } await item.verityPermissions("readwrite"); @@ -52,8 +71,9 @@ export class StorageItem { public static async getProperties(item: StorageItem): Promise<{ Size: number; LastModified: number; Type: string } | null> { // getFile can fail with an exception depending if we use polyfill with a save file dialog or not. try { - const file = item.handle instanceof FileSystemFileHandle && - await item.handle.getFile(); + const file = item.handle && "getFile" in item.handle + ? await item.handle.getFile() + : item.file; if (!file) { return null; @@ -144,4 +164,16 @@ export class StorageItems { public static itemsArray(instance: StorageItems): StorageItem[] { return instance.items; } + + public static filesToItemsArray(files: File[]): StorageItem[] { + if (!files) { + return []; + } + + const retItems = []; + for (let i = 0; i < files.length; i++) { + retItems[i] = StorageItem.createFromFile(files[i]); + } + return retItems; + } } diff --git a/src/Browser/Avalonia.Browser/webapp/modules/storage/storageProvider.ts b/src/Browser/Avalonia.Browser/webapp/modules/storage/storageProvider.ts index 750c38b8ea..7a29992674 100644 --- a/src/Browser/Avalonia.Browser/webapp/modules/storage/storageProvider.ts +++ b/src/Browser/Avalonia.Browser/webapp/modules/storage/storageProvider.ts @@ -19,7 +19,7 @@ export class StorageProvider { }; const handle = await showDirectoryPicker(options as any); - return new StorageItem(handle); + return StorageItem.createFromHandle(handle); } public static async openFileDialog( @@ -33,7 +33,7 @@ export class StorageProvider { }; const handles = await showOpenFilePicker(options); - return new StorageItems(handles.map((handle: FileSystemFileHandle) => new StorageItem(handle))); + return new StorageItems(handles.map((handle: FileSystemFileHandle) => StorageItem.createFromHandle(handle))); } public static async saveFileDialog( @@ -48,14 +48,14 @@ export class StorageProvider { // Always prefer native save file picker, as polyfill solutions are not reliable. const handle = await (globalThis as any).showSaveFilePicker(options); - return new StorageItem(handle); + return StorageItem.createFromHandle(handle); } public static async openBookmark(key: string): Promise { const connection = await avaloniaDb.connect(); try { const handle = await connection.get(fileBookmarksStore, key); - return handle && new StorageItem(handle, key); + return handle && StorageItem.createFromHandle(handle, key); } finally { connection.close(); } From b360902d3fd461f048c973525c9abc015ae85432 Mon Sep 17 00:00:00 2001 From: Max Katz Date: Sat, 18 Feb 2023 01:33:57 -0500 Subject: [PATCH 044/122] Typo --- src/Avalonia.Base/Input/DataObjectExtensions.cs | 6 +++--- src/Avalonia.Base/Input/IDataObject.cs | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Avalonia.Base/Input/DataObjectExtensions.cs b/src/Avalonia.Base/Input/DataObjectExtensions.cs index 807c242914..6af531b0d8 100644 --- a/src/Avalonia.Base/Input/DataObjectExtensions.cs +++ b/src/Avalonia.Base/Input/DataObjectExtensions.cs @@ -11,7 +11,7 @@ namespace Avalonia.Input /// . /// /// - /// Collection of storage items - files or folders. If format isn't avaialble, returns null. + /// Collection of storage items - files or folders. If format isn't available, returns null. /// public static IEnumerable? GetFiles(this IDataObject dataObject) { @@ -23,7 +23,7 @@ namespace Avalonia.Input /// /// /// - /// Collection of file names. If format isn't avaialble, returns null. + /// Collection of file names. If format isn't available, returns null. /// [System.Obsolete("Use GetFiles, this method is supported only on desktop platforms.")] public static IEnumerable? GetFileNames(this IDataObject dataObject) @@ -40,7 +40,7 @@ namespace Avalonia.Input /// /// /// - /// A text string. If format isn't avaialble, returns null. + /// A text string. If format isn't available, returns null. /// public static string? GetText(this IDataObject dataObject) { diff --git a/src/Avalonia.Base/Input/IDataObject.cs b/src/Avalonia.Base/Input/IDataObject.cs index b6fcd8c7db..6ccd0a8499 100644 --- a/src/Avalonia.Base/Input/IDataObject.cs +++ b/src/Avalonia.Base/Input/IDataObject.cs @@ -25,7 +25,7 @@ namespace Avalonia.Input /// Tries to get the data of the given DataFormat. /// /// - /// Object data. If format isn't avaialble, returns null. + /// Object data. If format isn't available, returns null. /// object? Get(string dataFormat); } From cc1cf2003a62fc6653a392f094b978a162e9e79b Mon Sep 17 00:00:00 2001 From: robloo Date: Sat, 18 Feb 2023 20:29:22 -0500 Subject: [PATCH 045/122] Separate out SplitView types and move to SplitView directory --- .../{ => SplitView}/SplitView.cs | 62 ------------------- .../SplitView/SplitViewDisplayMode.cs | 29 +++++++++ .../SplitViewPaneClosingEventArgs.cs | 0 .../SplitView/SplitViewPanePlacement.cs | 18 ++++++ .../SplitView/SplitViewTemplateSettings.cs | 32 ++++++++++ 5 files changed, 79 insertions(+), 62 deletions(-) rename src/Avalonia.Controls/{ => SplitView}/SplitView.cs (89%) create mode 100644 src/Avalonia.Controls/SplitView/SplitViewDisplayMode.cs rename src/Avalonia.Controls/{ => SplitView}/SplitViewPaneClosingEventArgs.cs (100%) create mode 100644 src/Avalonia.Controls/SplitView/SplitViewPanePlacement.cs create mode 100644 src/Avalonia.Controls/SplitView/SplitViewTemplateSettings.cs diff --git a/src/Avalonia.Controls/SplitView.cs b/src/Avalonia.Controls/SplitView/SplitView.cs similarity index 89% rename from src/Avalonia.Controls/SplitView.cs rename to src/Avalonia.Controls/SplitView/SplitView.cs index b45e0f2adb..35faf8605d 100644 --- a/src/Avalonia.Controls/SplitView.cs +++ b/src/Avalonia.Controls/SplitView/SplitView.cs @@ -11,68 +11,6 @@ using Avalonia.Metadata; namespace Avalonia.Controls { - /// - /// Defines constants for how the SplitView Pane should display - /// - public enum SplitViewDisplayMode - { - /// - /// Pane is displayed next to content, and does not auto collapse - /// when tapped outside - /// - Inline, - /// - /// Pane is displayed next to content. When collapsed, pane is still - /// visible according to CompactPaneLength. Pane does not auto collapse - /// when tapped outside - /// - CompactInline, - /// - /// Pane is displayed above content. Pane collapses when tapped outside - /// - Overlay, - /// - /// Pane is displayed above content. When collapsed, pane is still - /// visible according to CompactPaneLength. Pane collapses when tapped outside - /// - CompactOverlay - } - - /// - /// Defines constants for where the Pane should appear - /// - public enum SplitViewPanePlacement - { - Left, - Right - } - - public class SplitViewTemplateSettings : AvaloniaObject - { - internal SplitViewTemplateSettings() { } - - public static readonly StyledProperty ClosedPaneWidthProperty = - AvaloniaProperty.Register(nameof(ClosedPaneWidth), - 0d); - - public static readonly StyledProperty PaneColumnGridLengthProperty = - AvaloniaProperty.Register( - nameof(PaneColumnGridLength)); - - public double ClosedPaneWidth - { - get => GetValue(ClosedPaneWidthProperty); - internal set => SetValue(ClosedPaneWidthProperty, value); - } - - public GridLength PaneColumnGridLength - { - get => GetValue(PaneColumnGridLengthProperty); - internal set => SetValue(PaneColumnGridLengthProperty, value); - } - } - /// /// A control with two views: A collapsible pane and an area for content /// diff --git a/src/Avalonia.Controls/SplitView/SplitViewDisplayMode.cs b/src/Avalonia.Controls/SplitView/SplitViewDisplayMode.cs new file mode 100644 index 0000000000..6333f96f86 --- /dev/null +++ b/src/Avalonia.Controls/SplitView/SplitViewDisplayMode.cs @@ -0,0 +1,29 @@ +namespace Avalonia.Controls +{ + /// + /// Defines constants for how the SplitView Pane should display + /// + public enum SplitViewDisplayMode + { + /// + /// Pane is displayed next to content, and does not auto collapse + /// when tapped outside + /// + Inline, + /// + /// Pane is displayed next to content. When collapsed, pane is still + /// visible according to CompactPaneLength. Pane does not auto collapse + /// when tapped outside + /// + CompactInline, + /// + /// Pane is displayed above content. Pane collapses when tapped outside + /// + Overlay, + /// + /// Pane is displayed above content. When collapsed, pane is still + /// visible according to CompactPaneLength. Pane collapses when tapped outside + /// + CompactOverlay + } +} diff --git a/src/Avalonia.Controls/SplitViewPaneClosingEventArgs.cs b/src/Avalonia.Controls/SplitView/SplitViewPaneClosingEventArgs.cs similarity index 100% rename from src/Avalonia.Controls/SplitViewPaneClosingEventArgs.cs rename to src/Avalonia.Controls/SplitView/SplitViewPaneClosingEventArgs.cs diff --git a/src/Avalonia.Controls/SplitView/SplitViewPanePlacement.cs b/src/Avalonia.Controls/SplitView/SplitViewPanePlacement.cs new file mode 100644 index 0000000000..62c5387192 --- /dev/null +++ b/src/Avalonia.Controls/SplitView/SplitViewPanePlacement.cs @@ -0,0 +1,18 @@ +namespace Avalonia.Controls +{ + /// + /// Defines constants for where the Pane should appear + /// + public enum SplitViewPanePlacement + { + /// + /// The pane is shown to the left of content. + /// + Left, + + /// + /// The pane is shown to the right of content. + /// + Right + } +} diff --git a/src/Avalonia.Controls/SplitView/SplitViewTemplateSettings.cs b/src/Avalonia.Controls/SplitView/SplitViewTemplateSettings.cs new file mode 100644 index 0000000000..f2cbf55986 --- /dev/null +++ b/src/Avalonia.Controls/SplitView/SplitViewTemplateSettings.cs @@ -0,0 +1,32 @@ +namespace Avalonia.Controls.Primitives +{ + /// + /// Provides calculated values for use with the 's control theme or template. + /// This class is NOT intended for general use. + /// + public class SplitViewTemplateSettings : AvaloniaObject + { + internal SplitViewTemplateSettings() { } + + public static readonly StyledProperty ClosedPaneWidthProperty = + AvaloniaProperty.Register(nameof(ClosedPaneWidth), + 0d); + + public static readonly StyledProperty PaneColumnGridLengthProperty = + AvaloniaProperty.Register( + nameof(PaneColumnGridLength)); + + public double ClosedPaneWidth + { + get => GetValue(ClosedPaneWidthProperty); + internal set => SetValue(ClosedPaneWidthProperty, value); + } + + public GridLength PaneColumnGridLength + { + get => GetValue(PaneColumnGridLengthProperty); + internal set => SetValue(PaneColumnGridLengthProperty, value); + } + } +} From 11f09232d3bf7b376f0ff7091365800f6266df7e Mon Sep 17 00:00:00 2001 From: robloo Date: Sat, 18 Feb 2023 20:59:36 -0500 Subject: [PATCH 046/122] Use OnPropertyChanged override method for all SplitView change handling --- src/Avalonia.Controls/SplitView/SplitView.cs | 135 +++++++++---------- 1 file changed, 65 insertions(+), 70 deletions(-) diff --git a/src/Avalonia.Controls/SplitView/SplitView.cs b/src/Avalonia.Controls/SplitView/SplitView.cs index 35faf8605d..da8190d764 100644 --- a/src/Avalonia.Controls/SplitView/SplitView.cs +++ b/src/Avalonia.Controls/SplitView/SplitView.cs @@ -110,12 +110,6 @@ namespace Avalonia.Controls static SplitView() { - UseLightDismissOverlayModeProperty.Changed.AddClassHandler((x, v) => x.OnUseLightDismissChanged(v)); - CompactPaneLengthProperty.Changed.AddClassHandler((x, v) => x.OnCompactPaneLengthChanged(v)); - PanePlacementProperty.Changed.AddClassHandler((x, v) => x.OnPanePlacementChanged(v)); - DisplayModeProperty.Changed.AddClassHandler((x, v) => x.OnDisplayModeChanged(v)); - - PaneProperty.Changed.AddClassHandler((x, e) => x.OnPaneChanged(e)); } /// @@ -273,7 +267,40 @@ namespace Avalonia.Controls { base.OnPropertyChanged(change); - if (change.Property == IsPaneOpenProperty) + if (change.Property == CompactPaneLengthProperty) + { + var newLen = change.GetNewValue(); + var displayMode = DisplayMode; + if (displayMode == SplitViewDisplayMode.CompactInline) + { + TemplateSettings.ClosedPaneWidth = newLen; + } + else if (displayMode == SplitViewDisplayMode.CompactOverlay) + { + TemplateSettings.ClosedPaneWidth = newLen; + TemplateSettings.PaneColumnGridLength = new GridLength(newLen, GridUnitType.Pixel); + } + } + else if (change.Property == DisplayModeProperty) + { + var oldState = GetPseudoClass(change.GetOldValue()); + var newState = GetPseudoClass(change.GetNewValue()); + + PseudoClasses.Remove($":{oldState}"); + PseudoClasses.Add($":{newState}"); + + var (closedPaneWidth, paneColumnGridLength) = change.GetNewValue() switch + { + SplitViewDisplayMode.Overlay => (0, new GridLength(0, GridUnitType.Pixel)), + SplitViewDisplayMode.CompactOverlay => (CompactPaneLength, new GridLength(CompactPaneLength, GridUnitType.Pixel)), + SplitViewDisplayMode.Inline => (0, new GridLength(0, GridUnitType.Auto)), + SplitViewDisplayMode.CompactInline => (CompactPaneLength, new GridLength(0, GridUnitType.Auto)), + _ => throw new NotImplementedException(), + }; + TemplateSettings.ClosedPaneWidth = closedPaneWidth; + TemplateSettings.PaneColumnGridLength = paneColumnGridLength; + } + else if (change.Property == IsPaneOpenProperty) { bool isPaneOpen = change.GetNewValue(); @@ -290,6 +317,30 @@ namespace Avalonia.Controls OnPaneClosed(EventArgs.Empty); } } + else if (change.Property == PaneProperty) + { + if (change.OldValue is ILogical oldChild) + { + LogicalChildren.Remove(oldChild); + } + + if (change.NewValue is ILogical newChild) + { + LogicalChildren.Add(newChild); + } + } + else if (change.Property == PanePlacementProperty) + { + var oldState = GetPseudoClass(change.GetOldValue()); + var newState = GetPseudoClass(change.GetNewValue()); + PseudoClasses.Remove($":{oldState}"); + PseudoClasses.Add($":{newState}"); + } + else if (change.Property == UseLightDismissOverlayModeProperty) + { + var mode = change.GetNewValue(); + PseudoClasses.Set(":lightdismiss", mode); + } } private void PointerPressedOutside(object? sender, PointerPressedEventArgs e) @@ -325,7 +376,7 @@ namespace Avalonia.Controls } if (closePane) { - IsPaneOpen = false; + SetCurrentValue(IsPaneOpenProperty, false); e.Handled = true; } } @@ -355,21 +406,9 @@ namespace Avalonia.Controls PaneClosed?.Invoke(this, args); } - private void OnCompactPaneLengthChanged(AvaloniaPropertyChangedEventArgs e) - { - var newLen = (double)e.NewValue!; - var displayMode = DisplayMode; - if (displayMode == SplitViewDisplayMode.CompactInline) - { - TemplateSettings.ClosedPaneWidth = newLen; - } - else if (displayMode == SplitViewDisplayMode.CompactOverlay) - { - TemplateSettings.ClosedPaneWidth = newLen; - TemplateSettings.PaneColumnGridLength = new GridLength(newLen, GridUnitType.Pixel); - } - } - + /// + /// Gets the appropriate PseudoClass for the given . + /// private static string GetPseudoClass(SplitViewDisplayMode mode) { return mode switch @@ -382,6 +421,9 @@ namespace Avalonia.Controls }; } + /// + /// Gets the appropriate PseudoClass for the given . + /// private static string GetPseudoClass(SplitViewPanePlacement placement) { return placement switch @@ -392,53 +434,6 @@ namespace Avalonia.Controls }; } - private void OnPanePlacementChanged(AvaloniaPropertyChangedEventArgs e) - { - var oldState = GetPseudoClass(e.GetOldValue()); - var newState = GetPseudoClass(e.GetNewValue()); - PseudoClasses.Remove($":{oldState}"); - PseudoClasses.Add($":{newState}"); - } - - private void OnDisplayModeChanged(AvaloniaPropertyChangedEventArgs e) - { - var oldState = GetPseudoClass(e.GetOldValue()); - var newState = GetPseudoClass(e.GetNewValue()); - - PseudoClasses.Remove($":{oldState}"); - PseudoClasses.Add($":{newState}"); - - var (closedPaneWidth, paneColumnGridLength) = e.GetNewValue() switch - { - SplitViewDisplayMode.Overlay => (0, new GridLength(0, GridUnitType.Pixel)), - SplitViewDisplayMode.CompactOverlay => (CompactPaneLength, new GridLength(CompactPaneLength, GridUnitType.Pixel)), - SplitViewDisplayMode.Inline => (0, new GridLength(0, GridUnitType.Auto)), - SplitViewDisplayMode.CompactInline => (CompactPaneLength, new GridLength(0, GridUnitType.Auto)), - _ => throw new NotImplementedException(), - }; - TemplateSettings.ClosedPaneWidth = closedPaneWidth; - TemplateSettings.PaneColumnGridLength = paneColumnGridLength; - } - - private void OnUseLightDismissChanged(AvaloniaPropertyChangedEventArgs e) - { - var mode = (bool)e.NewValue!; - PseudoClasses.Set(":lightdismiss", mode); - } - - private void OnPaneChanged(AvaloniaPropertyChangedEventArgs e) - { - if (e.OldValue is ILogical oldChild) - { - LogicalChildren.Remove(oldChild); - } - - if (e.NewValue is ILogical newChild) - { - LogicalChildren.Add(newChild); - } - } - /// /// Called when the property has to be coerced. /// From 1018a7779565d185aa2f1c12775ede2f9ba0c8c3 Mon Sep 17 00:00:00 2001 From: robloo Date: Sat, 18 Feb 2023 21:25:19 -0500 Subject: [PATCH 047/122] Switch to routed events in SplitView and support cancellation in opening/closing --- src/Avalonia.Controls/SplitView/SplitView.cs | 109 +++++++++++++++---- 1 file changed, 85 insertions(+), 24 deletions(-) diff --git a/src/Avalonia.Controls/SplitView/SplitView.cs b/src/Avalonia.Controls/SplitView/SplitView.cs index da8190d764..1099a40f08 100644 --- a/src/Avalonia.Controls/SplitView/SplitView.cs +++ b/src/Avalonia.Controls/SplitView/SplitView.cs @@ -97,6 +97,38 @@ namespace Avalonia.Controls public static readonly StyledProperty TemplateSettingsProperty = AvaloniaProperty.Register(nameof(TemplateSettings)); + /// + /// Defines the event. + /// + public static readonly RoutedEvent PaneClosedEvent = + RoutedEvent.Register( + nameof(PaneClosed), + RoutingStrategies.Bubble); + + /// + /// Defines the event. + /// + public static readonly RoutedEvent PaneClosingEvent = + RoutedEvent.Register( + nameof(PaneClosing), + RoutingStrategies.Bubble); + + /// + /// Defines the event. + /// + public static readonly RoutedEvent PaneOpenedEvent = + RoutedEvent.Register( + nameof(PaneOpened), + RoutingStrategies.Bubble); + + /// + /// Defines the event. + /// + public static readonly RoutedEvent PaneOpeningEvent = + RoutedEvent.Register( + nameof(PaneOpening), + RoutingStrategies.Bubble); + private Panel? _pane; private IDisposable? _pointerDisposable; @@ -208,24 +240,48 @@ namespace Avalonia.Controls } /// - /// Fired when the pane is closed + /// Fired when the pane is closed. /// - public event EventHandler? PaneClosed; + public event EventHandler? PaneClosed + { + add => AddHandler(PaneClosedEvent, value); + remove => RemoveHandler(PaneClosedEvent, value); + } /// - /// Fired when the pane is closing + /// Fired when the pane is closing. /// - public event EventHandler? PaneClosing; + /// + /// The event args property may be set to true to cancel the event + /// and keep the pane open. + /// + public event EventHandler? PaneClosing + { + add => AddHandler(PaneClosingEvent, value); + remove => RemoveHandler(PaneClosingEvent, value); + } /// - /// Fired when the pane is opened + /// Fired when the pane is opened. /// - public event EventHandler? PaneOpened; + public event EventHandler? PaneOpened + { + add => AddHandler(PaneOpenedEvent, value); + remove => RemoveHandler(PaneOpenedEvent, value); + } /// - /// Fired when the pane is opening + /// Fired when the pane is opening. /// - public event EventHandler? PaneOpening; + /// + /// The event args property may be set to true to cancel the event + /// and keep the pane closed. + /// + public event EventHandler? PaneOpening + { + add => AddHandler(PaneOpeningEvent, value); + remove => RemoveHandler(PaneOpeningEvent, value); + } protected override bool RegisterContentPresenter(IContentPresenter presenter) { @@ -308,13 +364,15 @@ namespace Avalonia.Controls { PseudoClasses.Add(":open"); PseudoClasses.Remove(":closed"); - OnPaneOpened(EventArgs.Empty); + + OnPaneOpened(new RoutedEventArgs(PaneOpenedEvent, this)); } else { PseudoClasses.Add(":closed"); PseudoClasses.Remove(":open"); - OnPaneClosed(EventArgs.Empty); + + OnPaneClosed(new RoutedEventArgs(PaneClosedEvent, this)); } } else if (change.Property == PaneProperty) @@ -386,24 +444,24 @@ namespace Avalonia.Controls return (DisplayMode == SplitViewDisplayMode.CompactOverlay || DisplayMode == SplitViewDisplayMode.Overlay); } - protected virtual void OnPaneOpening(EventArgs args) + protected virtual void OnPaneOpening(CancelRoutedEventArgs args) { - PaneOpening?.Invoke(this, args); + RaiseEvent(args); } - protected virtual void OnPaneOpened(EventArgs args) + protected virtual void OnPaneOpened(RoutedEventArgs args) { - PaneOpened?.Invoke(this, args); + RaiseEvent(args); } - protected virtual void OnPaneClosing(SplitViewPaneClosingEventArgs args) + protected virtual void OnPaneClosing(CancelRoutedEventArgs args) { - PaneClosing?.Invoke(this, args); + RaiseEvent(args); } - protected virtual void OnPaneClosed(EventArgs args) + protected virtual void OnPaneClosed(RoutedEventArgs args) { - PaneClosed?.Invoke(this, args); + RaiseEvent(args); } /// @@ -440,19 +498,22 @@ namespace Avalonia.Controls /// The value to coerce. protected virtual bool OnCoerceIsPaneOpen(bool value) { + CancelRoutedEventArgs eventArgs; + if (value) { - OnPaneOpening(EventArgs.Empty); + eventArgs = new CancelRoutedEventArgs(PaneOpeningEvent, this); + OnPaneOpening(eventArgs); } else { - var eventArgs = new SplitViewPaneClosingEventArgs(false); + eventArgs = new CancelRoutedEventArgs(PaneClosingEvent, this); OnPaneClosing(eventArgs); + } - if (eventArgs.Cancel) - { - return !value; - } + if (eventArgs.Cancel) + { + return !value; } return value; From 937b07f339fb1d801e071ac8d3f7bd1a464a1bd4 Mon Sep 17 00:00:00 2001 From: robloo Date: Sat, 18 Feb 2023 21:26:34 -0500 Subject: [PATCH 048/122] Remove SplitViewPaneClosingEventArgs --- .../SplitView/SplitViewPaneClosingEventArgs.cs | 14 -------------- 1 file changed, 14 deletions(-) delete mode 100644 src/Avalonia.Controls/SplitView/SplitViewPaneClosingEventArgs.cs diff --git a/src/Avalonia.Controls/SplitView/SplitViewPaneClosingEventArgs.cs b/src/Avalonia.Controls/SplitView/SplitViewPaneClosingEventArgs.cs deleted file mode 100644 index 46fb2d161b..0000000000 --- a/src/Avalonia.Controls/SplitView/SplitViewPaneClosingEventArgs.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; - -namespace Avalonia.Controls -{ - public class SplitViewPaneClosingEventArgs : EventArgs - { - public bool Cancel { get; set; } - - public SplitViewPaneClosingEventArgs(bool cancel) - { - Cancel = cancel; - } - } -} From afbb04b5ffe4fe133de16f63dfcd14323656833a Mon Sep 17 00:00:00 2001 From: robloo Date: Sat, 18 Feb 2023 21:26:49 -0500 Subject: [PATCH 049/122] Fix eventArgs type in Expander --- src/Avalonia.Controls/Expander.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Avalonia.Controls/Expander.cs b/src/Avalonia.Controls/Expander.cs index 2ad6a58d38..668de5bca9 100644 --- a/src/Avalonia.Controls/Expander.cs +++ b/src/Avalonia.Controls/Expander.cs @@ -191,7 +191,7 @@ namespace Avalonia.Controls /// /// Invoked just before the event. /// - protected virtual void OnCollapsing(RoutedEventArgs eventArgs) + protected virtual void OnCollapsing(CancelRoutedEventArgs eventArgs) { RaiseEvent(eventArgs); } @@ -207,7 +207,7 @@ namespace Avalonia.Controls /// /// Invoked just before the event. /// - protected virtual void OnExpanding(RoutedEventArgs eventArgs) + protected virtual void OnExpanding(CancelRoutedEventArgs eventArgs) { RaiseEvent(eventArgs); } From bdebcca9da6d9aebe7146f77df38e5958faf2042 Mon Sep 17 00:00:00 2001 From: affederaffe <68356204+affederaffe@users.noreply.github.com> Date: Sun, 19 Feb 2023 12:47:24 +0100 Subject: [PATCH 050/122] Use Tmds.DBus.Protocol package --- .gitmodules | 3 --- Avalonia.Desktop.slnf | 1 - Avalonia.sln | 8 +----- .../Avalonia.FreeDesktop.csproj | 26 +++++++++++++++++-- .../DBusIme/DBusTextInputMethodBase.cs | 1 + .../DBusIme/Fcitx/FcitxICWrapper.cs | 1 + .../DBusIme/Fcitx/FcitxX11TextInputMethod.cs | 1 + src/Avalonia.FreeDesktop/DBusInterfaces.cs | 19 -------------- src/Avalonia.FreeDesktop/DBusTrayIconImpl.cs | 1 + src/Linux/Tmds.DBus | 1 - src/tools/Tmds.DBus.SourceGenerator | 2 +- 11 files changed, 30 insertions(+), 34 deletions(-) delete mode 100644 src/Avalonia.FreeDesktop/DBusInterfaces.cs delete mode 160000 src/Linux/Tmds.DBus diff --git a/.gitmodules b/.gitmodules index 2b899e8f5a..c2b5fc3f26 100644 --- a/.gitmodules +++ b/.gitmodules @@ -7,9 +7,6 @@ [submodule "nukebuild/il-repack"] path = nukebuild/il-repack url = https://github.com/Gillibald/il-repack -[submodule "Tmds.DBus"] - path = src/Linux/Tmds.DBus - url = https://github.com/affederaffe/Tmds.DBus [submodule "src/tools/Tmds.DBus.SourceGenerator"] path = src/tools/Tmds.DBus.SourceGenerator url = https://github.com/affederaffe/Tmds.DBus.SourceGenerator diff --git a/Avalonia.Desktop.slnf b/Avalonia.Desktop.slnf index c272cb11dd..364529b38d 100644 --- a/Avalonia.Desktop.slnf +++ b/Avalonia.Desktop.slnf @@ -33,7 +33,6 @@ "src\\Avalonia.Themes.Simple\\Avalonia.Themes.Simple.csproj", "src\\Avalonia.X11\\Avalonia.X11.csproj", "src\\Linux\\Avalonia.LinuxFramebuffer\\Avalonia.LinuxFramebuffer.csproj", - "src\\Linux\\Tmds.DBus\\src\\Tmds.DBus.Protocol\\Tmds.DBus.Protocol.csproj", "src\\Markup\\Avalonia.Markup.Xaml.Loader\\Avalonia.Markup.Xaml.Loader.csproj", "src\\Markup\\Avalonia.Markup.Xaml\\Avalonia.Markup.Xaml.csproj", "src\\Markup\\Avalonia.Markup\\Avalonia.Markup.csproj", diff --git a/Avalonia.sln b/Avalonia.sln index 9b20f5e03a..5a13bd43ad 100644 --- a/Avalonia.sln +++ b/Avalonia.sln @@ -231,9 +231,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ControlCatalog.Browser.Blaz EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ReactiveUIDemo", "samples\ReactiveUIDemo\ReactiveUIDemo.csproj", "{75C47156-C5D8-44BC-A5A7-E8657C2248D6}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tmds.DBus.Protocol", "src\Linux\Tmds.DBus\src\Tmds.DBus.Protocol\Tmds.DBus.Protocol.csproj", "{29E25263-3CC3-4D55-A042-00BA136867D4}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tmds.DBus.SourceGenerator", "src\tools\Tmds.DBus.SourceGenerator\Tmds.DBus.SourceGenerator\Tmds.DBus.SourceGenerator.csproj", "{5E9C0032-E460-4BC1-BCC7-6448F34DD679}" +EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GpuInterop", "samples\GpuInterop\GpuInterop.csproj", "{C810060E-3809-4B74-A125-F11533AF9C1B}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Controls.ItemsRepeater", "src\Avalonia.Controls.ItemsRepeater\Avalonia.Controls.ItemsRepeater.csproj", "{EE0F0DD4-A70D-472B-BD5D-B7D32D0E9386}" @@ -551,10 +550,6 @@ Global {75C47156-C5D8-44BC-A5A7-E8657C2248D6}.Debug|Any CPU.Build.0 = Debug|Any CPU {75C47156-C5D8-44BC-A5A7-E8657C2248D6}.Release|Any CPU.ActiveCfg = Release|Any CPU {75C47156-C5D8-44BC-A5A7-E8657C2248D6}.Release|Any CPU.Build.0 = Release|Any CPU - {29E25263-3CC3-4D55-A042-00BA136867D4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {29E25263-3CC3-4D55-A042-00BA136867D4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {29E25263-3CC3-4D55-A042-00BA136867D4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {29E25263-3CC3-4D55-A042-00BA136867D4}.Release|Any CPU.Build.0 = Release|Any CPU {5E9C0032-E460-4BC1-BCC7-6448F34DD679}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {5E9C0032-E460-4BC1-BCC7-6448F34DD679}.Debug|Any CPU.Build.0 = Debug|Any CPU {5E9C0032-E460-4BC1-BCC7-6448F34DD679}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -635,7 +630,6 @@ Global {15B93A4C-1B46-43F6-B534-7B25B6E99932} = {9B9E3891-2366-4253-A952-D08BCEB71098} {90B08091-9BBD-4362-B712-E9F2CC62B218} = {9B9E3891-2366-4253-A952-D08BCEB71098} {75C47156-C5D8-44BC-A5A7-E8657C2248D6} = {9B9E3891-2366-4253-A952-D08BCEB71098} - {29E25263-3CC3-4D55-A042-00BA136867D4} = {86C53C40-57AA-45B8-AD42-FAE0EFDF0F2B} {5E9C0032-E460-4BC1-BCC7-6448F34DD679} = {4ED8B739-6F4E-4CD4-B993-545E6B5CE637} {C810060E-3809-4B74-A125-F11533AF9C1B} = {9B9E3891-2366-4253-A952-D08BCEB71098} {F4E36AA8-814E-4704-BC07-291F70F45193} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B} diff --git a/src/Avalonia.FreeDesktop/Avalonia.FreeDesktop.csproj b/src/Avalonia.FreeDesktop/Avalonia.FreeDesktop.csproj index c0f82a6e67..c9ef74617d 100644 --- a/src/Avalonia.FreeDesktop/Avalonia.FreeDesktop.csproj +++ b/src/Avalonia.FreeDesktop/Avalonia.FreeDesktop.csproj @@ -11,11 +11,17 @@ + + + + + + + + - - @@ -23,4 +29,20 @@ + + + + + + + + + + + + + + + + diff --git a/src/Avalonia.FreeDesktop/DBusIme/DBusTextInputMethodBase.cs b/src/Avalonia.FreeDesktop/DBusIme/DBusTextInputMethodBase.cs index 7f99d8190b..d3c14f285d 100644 --- a/src/Avalonia.FreeDesktop/DBusIme/DBusTextInputMethodBase.cs +++ b/src/Avalonia.FreeDesktop/DBusIme/DBusTextInputMethodBase.cs @@ -6,6 +6,7 @@ using Avalonia.Input.Raw; using Avalonia.Input.TextInput; using Avalonia.Logging; using Tmds.DBus.Protocol; +using Tmds.DBus.SourceGenerator; namespace Avalonia.FreeDesktop.DBusIme { diff --git a/src/Avalonia.FreeDesktop/DBusIme/Fcitx/FcitxICWrapper.cs b/src/Avalonia.FreeDesktop/DBusIme/Fcitx/FcitxICWrapper.cs index b651f126fb..00d05e59a3 100644 --- a/src/Avalonia.FreeDesktop/DBusIme/Fcitx/FcitxICWrapper.cs +++ b/src/Avalonia.FreeDesktop/DBusIme/Fcitx/FcitxICWrapper.cs @@ -1,5 +1,6 @@ using System; using System.Threading.Tasks; +using Tmds.DBus.SourceGenerator; namespace Avalonia.FreeDesktop.DBusIme.Fcitx { diff --git a/src/Avalonia.FreeDesktop/DBusIme/Fcitx/FcitxX11TextInputMethod.cs b/src/Avalonia.FreeDesktop/DBusIme/Fcitx/FcitxX11TextInputMethod.cs index be88b94707..1cf3507cc2 100644 --- a/src/Avalonia.FreeDesktop/DBusIme/Fcitx/FcitxX11TextInputMethod.cs +++ b/src/Avalonia.FreeDesktop/DBusIme/Fcitx/FcitxX11TextInputMethod.cs @@ -5,6 +5,7 @@ using Avalonia.Input; using Avalonia.Input.Raw; using Avalonia.Input.TextInput; using Tmds.DBus.Protocol; +using Tmds.DBus.SourceGenerator; namespace Avalonia.FreeDesktop.DBusIme.Fcitx { diff --git a/src/Avalonia.FreeDesktop/DBusInterfaces.cs b/src/Avalonia.FreeDesktop/DBusInterfaces.cs deleted file mode 100644 index fb2f0ca2f3..0000000000 --- a/src/Avalonia.FreeDesktop/DBusInterfaces.cs +++ /dev/null @@ -1,19 +0,0 @@ -using Tmds.DBus.SourceGenerator; - -namespace Avalonia.FreeDesktop -{ - [DBusInterface("./DBusXml/DBus.xml")] - [DBusInterface("./DBusXml/StatusNotifierWatcher.xml")] - [DBusInterface("./DBusXml/com.canonical.AppMenu.Registrar.xml")] - [DBusInterface("./DBusXml/org.fcitx.Fcitx.InputContext.xml")] - [DBusInterface("./DBusXml/org.fcitx.Fcitx.InputMethod.xml")] - [DBusInterface("./DBusXml/org.fcitx.Fcitx.InputContext1.xml")] - [DBusInterface("./DBusXml/org.fcitx.Fcitx.InputMethod1.xml")] - [DBusInterface("./DBusXml/org.freedesktop.IBus.Portal.xml")] - [DBusInterface("./DBusXml/org.freedesktop.portal.FileChooser.xml")] - [DBusInterface("./DBusXml/org.freedesktop.portal.Request.xml")] - [DBusInterface("./DBusXml/org.freedesktop.portal.Settings.xml")] - [DBusHandler("./DBusXml/DBusMenu.xml")] - [DBusHandler("./DBusXml/StatusNotifierItem.xml")] - internal class DBusInterfaces { } -} diff --git a/src/Avalonia.FreeDesktop/DBusTrayIconImpl.cs b/src/Avalonia.FreeDesktop/DBusTrayIconImpl.cs index 521fe68e90..afbee77067 100644 --- a/src/Avalonia.FreeDesktop/DBusTrayIconImpl.cs +++ b/src/Avalonia.FreeDesktop/DBusTrayIconImpl.cs @@ -4,6 +4,7 @@ using Avalonia.Controls.Platform; using Avalonia.Logging; using Avalonia.Platform; using Tmds.DBus.Protocol; +using Tmds.DBus.SourceGenerator; namespace Avalonia.FreeDesktop { diff --git a/src/Linux/Tmds.DBus b/src/Linux/Tmds.DBus deleted file mode 160000 index e86bcf1bc2..0000000000 --- a/src/Linux/Tmds.DBus +++ /dev/null @@ -1 +0,0 @@ -Subproject commit e86bcf1bc2d86338ab61663a4ae48dbc0bd7e02d diff --git a/src/tools/Tmds.DBus.SourceGenerator b/src/tools/Tmds.DBus.SourceGenerator index 309159609e..3e76fbf5be 160000 --- a/src/tools/Tmds.DBus.SourceGenerator +++ b/src/tools/Tmds.DBus.SourceGenerator @@ -1 +1 @@ -Subproject commit 309159609e09f3f0ae77f0abd761360049761700 +Subproject commit 3e76fbf5be03b8e1360e74b8878c541d9de808cd From 1ecdf3252064fafddf6bb82da477cb7cb1e0ea73 Mon Sep 17 00:00:00 2001 From: Benedikt Stebner Date: Mon, 20 Feb 2023 10:34:21 +0100 Subject: [PATCH 051/122] Remove trailing whitespace for right aligned text Fix justification for non wrapped text Fix text trimming for RTL flow direction --- src/Avalonia.Base/Media/FormattedText.cs | 2 +- .../Media/TextCollapsingCreateInfo.cs | 4 +- .../TextFormatting/InterWordJustification.cs | 13 +- .../Media/TextFormatting/ShapedTextRun.cs | 21 +- .../TextCollapsingProperties.cs | 9 +- .../TextFormatting/TextEllipsisHelper.cs | 191 +++++++++++++----- .../Media/TextFormatting/TextLayout.cs | 25 +-- .../TextLeadingPrefixCharacterEllipsis.cs | 7 +- .../Media/TextFormatting/TextLineImpl.cs | 47 +++-- .../TextTrailingCharacterEllipsis.cs | 7 +- .../TextTrailingWordEllipsis.cs | 7 +- .../Media/TextLeadingPrefixTrimming.cs | 2 +- .../Media/TextTrailingTrimming.cs | 4 +- .../TextFormatting/TextFormatterTests.cs | 2 +- .../Media/TextFormatting/TextLineTests.cs | 2 +- 15 files changed, 231 insertions(+), 112 deletions(-) diff --git a/src/Avalonia.Base/Media/FormattedText.cs b/src/Avalonia.Base/Media/FormattedText.cs index 3b63a98720..d4640390d7 100644 --- a/src/Avalonia.Base/Media/FormattedText.cs +++ b/src/Avalonia.Base/Media/FormattedText.cs @@ -877,7 +877,7 @@ namespace Avalonia.Media var lastRunProps = (GenericTextRunProperties)thatFormatRider.CurrentElement!; - TextCollapsingProperties collapsingProperties = _that._trimming.CreateCollapsingProperties(new TextCollapsingCreateInfo(maxLineLength, lastRunProps)); + TextCollapsingProperties collapsingProperties = _that._trimming.CreateCollapsingProperties(new TextCollapsingCreateInfo(maxLineLength, lastRunProps, paraProps.FlowDirection)); var collapsedLine = line.Collapse(collapsingProperties); diff --git a/src/Avalonia.Base/Media/TextCollapsingCreateInfo.cs b/src/Avalonia.Base/Media/TextCollapsingCreateInfo.cs index 40ba613717..9b7bf3f74c 100644 --- a/src/Avalonia.Base/Media/TextCollapsingCreateInfo.cs +++ b/src/Avalonia.Base/Media/TextCollapsingCreateInfo.cs @@ -6,11 +6,13 @@ namespace Avalonia.Media { public readonly double Width; public readonly TextRunProperties TextRunProperties; + public readonly FlowDirection FlowDirection; - public TextCollapsingCreateInfo(double width, TextRunProperties textRunProperties) + public TextCollapsingCreateInfo(double width, TextRunProperties textRunProperties, FlowDirection flowDirection) { Width = width; TextRunProperties = textRunProperties; + FlowDirection = flowDirection; } } } diff --git a/src/Avalonia.Base/Media/TextFormatting/InterWordJustification.cs b/src/Avalonia.Base/Media/TextFormatting/InterWordJustification.cs index 0d85f3e7c5..c1b9b77401 100644 --- a/src/Avalonia.Base/Media/TextFormatting/InterWordJustification.cs +++ b/src/Avalonia.Base/Media/TextFormatting/InterWordJustification.cs @@ -27,16 +27,6 @@ namespace Avalonia.Media.TextFormatting return; } - if (lineImpl.NewLineLength > 0) - { - return; - } - - if (lineImpl.TextLineBreak is { TextEndOfLine: not null, IsSplit: false }) - { - return; - } - var breakOportunities = new Queue(); var currentPosition = textLine.FirstTextSourceIndex; @@ -97,7 +87,8 @@ namespace Avalonia.Media.TextFormatting continue; } - var glyphIndex = glyphRun.FindGlyphIndex(characterIndex); + var offset = Math.Max(0, currentPosition - glyphRun.Metrics.FirstCluster); + var glyphIndex = glyphRun.FindGlyphIndex(characterIndex - offset); var glyphInfo = shapedBuffer.GlyphInfos[glyphIndex]; shapedBuffer.GlyphInfos[glyphIndex] = new GlyphInfo(glyphInfo.GlyphIndex, diff --git a/src/Avalonia.Base/Media/TextFormatting/ShapedTextRun.cs b/src/Avalonia.Base/Media/TextFormatting/ShapedTextRun.cs index 7f23ac98b4..568148e15c 100644 --- a/src/Avalonia.Base/Media/TextFormatting/ShapedTextRun.cs +++ b/src/Avalonia.Base/Media/TextFormatting/ShapedTextRun.cs @@ -148,33 +148,38 @@ namespace Avalonia.Media.TextFormatting internal SplitResult Split(int length) { - if (IsReversed) + var isReversed = IsReversed; + + if (isReversed) { Reverse(); - } + length = Length - length; + } #if DEBUG - if(length == 0) + if (length == 0) { throw new ArgumentOutOfRangeException(nameof(length), "length must be greater than zero."); } -#endif - +#endif var splitBuffer = ShapedBuffer.Split(length); var first = new ShapedTextRun(splitBuffer.First, Properties); - #if DEBUG +#if DEBUG if (first.Length != length) { throw new InvalidOperationException("Split length mismatch."); } - #endif - var second = new ShapedTextRun(splitBuffer.Second!, Properties); + if (isReversed) + { + return new SplitResult(second, first); + } + return new SplitResult(first, second); } diff --git a/src/Avalonia.Base/Media/TextFormatting/TextCollapsingProperties.cs b/src/Avalonia.Base/Media/TextFormatting/TextCollapsingProperties.cs index 72882df0b5..7cdf81ecc9 100644 --- a/src/Avalonia.Base/Media/TextFormatting/TextCollapsingProperties.cs +++ b/src/Avalonia.Base/Media/TextFormatting/TextCollapsingProperties.cs @@ -1,4 +1,6 @@ -namespace Avalonia.Media.TextFormatting +using System.Collections.Generic; + +namespace Avalonia.Media.TextFormatting { /// /// Properties of text collapsing. @@ -15,6 +17,11 @@ /// public abstract TextRun Symbol { get; } + /// + /// Gets the flow direction that is used for collapsing. + /// + public abstract FlowDirection FlowDirection { get; } + /// /// Collapses given text line. /// diff --git a/src/Avalonia.Base/Media/TextFormatting/TextEllipsisHelper.cs b/src/Avalonia.Base/Media/TextFormatting/TextEllipsisHelper.cs index 4c93a1d851..6422f23dcd 100644 --- a/src/Avalonia.Base/Media/TextFormatting/TextEllipsisHelper.cs +++ b/src/Avalonia.Base/Media/TextFormatting/TextEllipsisHelper.cs @@ -1,5 +1,4 @@ using System; -using System.Collections.Generic; using Avalonia.Media.TextFormatting.Unicode; namespace Avalonia.Media.TextFormatting @@ -28,97 +27,191 @@ namespace Avalonia.Media.TextFormatting var availableWidth = properties.Width - shapedSymbol.Size.Width; - while (runIndex < textRuns.Count) + if(properties.FlowDirection== FlowDirection.LeftToRight) { - var currentRun = textRuns[runIndex]; - - switch (currentRun) + while (runIndex < textRuns.Count) { - case ShapedTextRun shapedRun: - { - currentWidth += shapedRun.Size.Width; + var currentRun = textRuns[runIndex]; - if (currentWidth > availableWidth) + switch (currentRun) + { + case ShapedTextRun shapedRun: { - if (shapedRun.TryMeasureCharacters(availableWidth, out var measuredLength)) + currentWidth += shapedRun.Size.Width; + + if (currentWidth > availableWidth) { - if (isWordEllipsis && measuredLength < textLine.Length) + if (shapedRun.TryMeasureCharacters(availableWidth, out var measuredLength)) { - var currentBreakPosition = 0; - - var lineBreaker = new LineBreakEnumerator(currentRun.Text.Span); - - while (currentBreakPosition < measuredLength && lineBreaker.MoveNext(out var lineBreak)) + if (isWordEllipsis && measuredLength < textLine.Length) { - var nextBreakPosition = lineBreak.PositionMeasure; + var currentBreakPosition = 0; - if (nextBreakPosition == 0) - { - break; - } + var lineBreaker = new LineBreakEnumerator(currentRun.Text.Span); - if (nextBreakPosition >= measuredLength) + while (currentBreakPosition < measuredLength && lineBreaker.MoveNext(out var lineBreak)) { - break; + var nextBreakPosition = lineBreak.PositionMeasure; + + if (nextBreakPosition == 0) + { + break; + } + + if (nextBreakPosition >= measuredLength) + { + break; + } + + currentBreakPosition = nextBreakPosition; } - currentBreakPosition = nextBreakPosition; + measuredLength = currentBreakPosition; } - - measuredLength = currentBreakPosition; } + + collapsedLength += measuredLength; + + return CreateCollapsedRuns(textLine, collapsedLength, FlowDirection.LeftToRight, shapedSymbol); } - collapsedLength += measuredLength; + availableWidth -= shapedRun.Size.Width; - return CreateCollapsedRuns(textRuns, collapsedLength, shapedSymbol); + break; } - availableWidth -= shapedRun.Size.Width; + case DrawableTextRun drawableRun: + { + //The whole run needs to fit into available space + if (currentWidth + drawableRun.Size.Width > availableWidth) + { + return CreateCollapsedRuns(textLine, collapsedLength, FlowDirection.LeftToRight, shapedSymbol); + } - break; - } + availableWidth -= drawableRun.Size.Width; - case DrawableTextRun drawableRun: - { - //The whole run needs to fit into available space - if (currentWidth + drawableRun.Size.Width > availableWidth) - { - return CreateCollapsedRuns(textRuns, collapsedLength, shapedSymbol); + break; } + } - availableWidth -= drawableRun.Size.Width; + collapsedLength += currentRun.Length; - break; - } + runIndex++; } + } + else + { + runIndex = textRuns.Count - 1; + + while (runIndex >= 0) + { + var currentRun = textRuns[runIndex]; - collapsedLength += currentRun.Length; + switch (currentRun) + { + case ShapedTextRun shapedRun: + { + currentWidth += shapedRun.Size.Width; - runIndex++; - } + if (currentWidth > availableWidth) + { + if (shapedRun.TryMeasureCharacters(availableWidth, out var measuredLength)) + { + if (isWordEllipsis && measuredLength < textLine.Length) + { + var currentBreakPosition = 0; + + var lineBreaker = new LineBreakEnumerator(currentRun.Text.Span); + + while (currentBreakPosition < measuredLength && lineBreaker.MoveNext(out var lineBreak)) + { + var nextBreakPosition = lineBreak.PositionMeasure; + + if (nextBreakPosition == 0) + { + break; + } + + if (nextBreakPosition >= measuredLength) + { + break; + } + currentBreakPosition = nextBreakPosition; + } + + measuredLength = currentBreakPosition; + } + } + + collapsedLength += measuredLength; + + return CreateCollapsedRuns(textLine, collapsedLength, FlowDirection.RightToLeft, shapedSymbol); + } + + availableWidth -= shapedRun.Size.Width; + + break; + } + + case DrawableTextRun drawableRun: + { + //The whole run needs to fit into available space + if (currentWidth + drawableRun.Size.Width > availableWidth) + { + return CreateCollapsedRuns(textLine, collapsedLength, FlowDirection.RightToLeft, shapedSymbol); + } + + availableWidth -= drawableRun.Size.Width; + + break; + } + } + + collapsedLength += currentRun.Length; + + runIndex--; + } + } + return null; } - private static TextRun[] CreateCollapsedRuns(IReadOnlyList textRuns, int collapsedLength, - TextRun shapedSymbol) + private static TextRun[] CreateCollapsedRuns(TextLine textLine, int collapsedLength, + FlowDirection flowDirection, TextRun shapedSymbol) { + var textRuns = textLine.TextRuns; + if (collapsedLength <= 0) { return new[] { shapedSymbol }; } + if(flowDirection == FlowDirection.RightToLeft) + { + collapsedLength = textLine.Length - collapsedLength; + } + var objectPool = FormattingObjectPool.Instance; var (preSplitRuns, postSplitRuns) = TextFormatterImpl.SplitTextRuns(textRuns, collapsedLength, objectPool); try { - var collapsedRuns = new TextRun[preSplitRuns.Count + 1]; - preSplitRuns.CopyTo(collapsedRuns); - collapsedRuns[collapsedRuns.Length - 1] = shapedSymbol; - return collapsedRuns; + if (flowDirection == FlowDirection.RightToLeft) + { + var collapsedRuns = new TextRun[postSplitRuns!.Count + 1]; + postSplitRuns.CopyTo(collapsedRuns, 1); + collapsedRuns[0] = shapedSymbol; + return collapsedRuns; + } + else + { + var collapsedRuns = new TextRun[preSplitRuns!.Count + 1]; + preSplitRuns.CopyTo(collapsedRuns); + collapsedRuns[collapsedRuns.Length - 1] = shapedSymbol; + return collapsedRuns; + } } finally { diff --git a/src/Avalonia.Base/Media/TextFormatting/TextLayout.cs b/src/Avalonia.Base/Media/TextFormatting/TextLayout.cs index 4dbc472133..a382416b8a 100644 --- a/src/Avalonia.Base/Media/TextFormatting/TextLayout.cs +++ b/src/Avalonia.Base/Media/TextFormatting/TextLayout.cs @@ -352,7 +352,7 @@ namespace Avalonia.Media.TextFormatting var lastTrailingIndex = 0; - if(_paragraphProperties.FlowDirection== FlowDirection.LeftToRight) + if (_paragraphProperties.FlowDirection == FlowDirection.LeftToRight) { lastTrailingIndex = textLine.FirstTextSourceIndex + textLine.Length; @@ -377,7 +377,7 @@ namespace Avalonia.Media.TextFormatting { lastTrailingIndex += textEndOfLine.Length; } - } + } var textPosition = characterHit.FirstCharacterIndex + characterHit.TrailingLength; @@ -553,26 +553,18 @@ namespace Avalonia.Media.TextFormatting if (_paragraphProperties.TextAlignment == TextAlignment.Justify) { - var whitespaceWidth = 0d; + var justificationWidth = MaxWidth; - for (var i = 0; i < textLines.Count; i++) + if (_paragraphProperties.TextWrapping != TextWrapping.NoWrap) { - var line = textLines[i]; - var lineWhitespaceWidth = line.Width - line.WidthIncludingTrailingWhitespace; - - if (lineWhitespaceWidth > whitespaceWidth) - { - whitespaceWidth = lineWhitespaceWidth; - } + justificationWidth = width; } - var justificationWidth = width - whitespaceWidth; - if (justificationWidth > 0) { var justificationProperties = new InterWordJustification(justificationWidth); - for (var i = 0; i < textLines.Count - 1; i++) + for (var i = 0; i < textLines.Count; i++) { var line = textLines[i]; @@ -597,12 +589,13 @@ namespace Avalonia.Media.TextFormatting /// The . private TextCollapsingProperties? GetCollapsingProperties(double width) { - if(_textTrimming == TextTrimming.None) + if (_textTrimming == TextTrimming.None) { return null; } - return _textTrimming.CreateCollapsingProperties(new TextCollapsingCreateInfo(width, _paragraphProperties.DefaultTextRunProperties)); + return _textTrimming.CreateCollapsingProperties( + new TextCollapsingCreateInfo(width, _paragraphProperties.DefaultTextRunProperties, _paragraphProperties.FlowDirection)); } public void Dispose() diff --git a/src/Avalonia.Base/Media/TextFormatting/TextLeadingPrefixCharacterEllipsis.cs b/src/Avalonia.Base/Media/TextFormatting/TextLeadingPrefixCharacterEllipsis.cs index 2e85b1e187..a21a5d45e9 100644 --- a/src/Avalonia.Base/Media/TextFormatting/TextLeadingPrefixCharacterEllipsis.cs +++ b/src/Avalonia.Base/Media/TextFormatting/TextLeadingPrefixCharacterEllipsis.cs @@ -19,11 +19,13 @@ namespace Avalonia.Media.TextFormatting /// Length of leading prefix. /// width in which collapsing is constrained to /// text run properties of ellipsis symbol + /// the flow direction of the collapes line. public TextLeadingPrefixCharacterEllipsis( string ellipsis, int prefixLength, double width, - TextRunProperties textRunProperties) + TextRunProperties textRunProperties, + FlowDirection flowDirection) { if (_prefixLength < 0) { @@ -33,6 +35,7 @@ namespace Avalonia.Media.TextFormatting _prefixLength = prefixLength; Width = width; Symbol = new TextCharacters(ellipsis, textRunProperties); + FlowDirection = flowDirection; } /// @@ -41,6 +44,8 @@ namespace Avalonia.Media.TextFormatting /// public override TextRun Symbol { get; } + public override FlowDirection FlowDirection { get; } + /// public override TextRun[]? Collapse(TextLine textLine) { diff --git a/src/Avalonia.Base/Media/TextFormatting/TextLineImpl.cs b/src/Avalonia.Base/Media/TextFormatting/TextLineImpl.cs index 187b3154ad..b3321d4d9f 100644 --- a/src/Avalonia.Base/Media/TextFormatting/TextLineImpl.cs +++ b/src/Avalonia.Base/Media/TextFormatting/TextLineImpl.cs @@ -658,7 +658,7 @@ namespace Avalonia.Media.TextFormatting currentX += drawableTextRun.Size.Width; } - if(lastRunIndex - 1 < 0) + if (lastRunIndex - 1 < 0) { break; } @@ -685,7 +685,7 @@ namespace Avalonia.Media.TextFormatting directionalWidth -= drawableTextRun.Size.Width; } - if(firstRunIndex + 1 == _textRuns.Length) + if (firstRunIndex + 1 == _textRuns.Length) { break; } @@ -1097,7 +1097,7 @@ namespace Avalonia.Media.TextFormatting var runWidth = endX - startX; - return new TextRunBounds(new Rect(Start + startX, 0, runWidth, Height), currentPosition, characterLength, currentRun); + return new TextRunBounds(new Rect(startX, 0, runWidth, Height), currentPosition, characterLength, currentRun); } public override void Dispose() @@ -1439,13 +1439,6 @@ namespace Avalonia.Media.TextFormatting } } - if (index == lastRunIndex) - { - width = widthIncludingWhitespace + textRun.GlyphRun.Metrics.Width; - trailingWhitespaceLength = textRun.GlyphRun.Metrics.TrailingWhitespaceLength; - newLineLength += textRun.GlyphRun.Metrics.NewLineLength; - } - widthIncludingWhitespace += textRun.Size.Width; break; @@ -1455,12 +1448,6 @@ namespace Avalonia.Media.TextFormatting { widthIncludingWhitespace += drawableTextRun.Size.Width; - if (index == lastRunIndex) - { - width = widthIncludingWhitespace; - trailingWhitespaceLength = 0; - } - if (drawableTextRun.Size.Height > height) { height = drawableTextRun.Size.Height; @@ -1476,6 +1463,32 @@ namespace Avalonia.Media.TextFormatting } } + width = widthIncludingWhitespace; + + for (var i = _textRuns.Length - 1; i >= 0; i--) + { + var currentRun = _textRuns[i]; + + if(currentRun is ShapedTextRun shapedText) + { + var glyphRun = shapedText.GlyphRun; + var glyphRunMetrics = glyphRun.Metrics; + + newLineLength += glyphRunMetrics.NewLineLength; + + if (glyphRunMetrics.TrailingWhitespaceLength == 0) + { + break; + } + + trailingWhitespaceLength += glyphRunMetrics.TrailingWhitespaceLength; + + var whitespaceWidth = glyphRun.Size.Width - glyphRunMetrics.Width; + + width -= whitespaceWidth; + } + } + var start = GetParagraphOffsetX(width, widthIncludingWhitespace); if (!double.IsNaN(lineHeight) && !MathUtilities.IsZero(lineHeight)) @@ -1543,7 +1556,7 @@ namespace Avalonia.Media.TextFormatting return Math.Max(0, start); case TextAlignment.Right: - return Math.Max(0, _paragraphWidth - widthIncludingTrailingWhitespace); + return Math.Max(0, _paragraphWidth - width); default: return 0; diff --git a/src/Avalonia.Base/Media/TextFormatting/TextTrailingCharacterEllipsis.cs b/src/Avalonia.Base/Media/TextFormatting/TextTrailingCharacterEllipsis.cs index ccae99cc75..8a6607bce2 100644 --- a/src/Avalonia.Base/Media/TextFormatting/TextTrailingCharacterEllipsis.cs +++ b/src/Avalonia.Base/Media/TextFormatting/TextTrailingCharacterEllipsis.cs @@ -12,10 +12,13 @@ /// Text used as collapsing symbol. /// Width in which collapsing is constrained to. /// Text run properties of ellipsis symbol. - public TextTrailingCharacterEllipsis(string ellipsis, double width, TextRunProperties textRunProperties) + /// The flow direction of the collapsed line. + public TextTrailingCharacterEllipsis(string ellipsis, double width, + TextRunProperties textRunProperties, FlowDirection flowDirection) { Width = width; Symbol = new TextCharacters(ellipsis, textRunProperties); + FlowDirection = flowDirection; } /// @@ -24,6 +27,8 @@ /// public override TextRun Symbol { get; } + public override FlowDirection FlowDirection { get; } + /// public override TextRun[]? Collapse(TextLine textLine) { diff --git a/src/Avalonia.Base/Media/TextFormatting/TextTrailingWordEllipsis.cs b/src/Avalonia.Base/Media/TextFormatting/TextTrailingWordEllipsis.cs index c622c76a60..5252766382 100644 --- a/src/Avalonia.Base/Media/TextFormatting/TextTrailingWordEllipsis.cs +++ b/src/Avalonia.Base/Media/TextFormatting/TextTrailingWordEllipsis.cs @@ -12,14 +12,17 @@ /// Text used as collapsing symbol. /// width in which collapsing is constrained to. /// text run properties of ellipsis symbol. + /// flow direction of the collapsed line. public TextTrailingWordEllipsis( string ellipsis, double width, - TextRunProperties textRunProperties + TextRunProperties textRunProperties, + FlowDirection flowDirection ) { Width = width; Symbol = new TextCharacters(ellipsis, textRunProperties); + FlowDirection = flowDirection; } /// @@ -28,6 +31,8 @@ /// public override TextRun Symbol { get; } + public override FlowDirection FlowDirection { get; } + /// public override TextRun[]? Collapse(TextLine textLine) { diff --git a/src/Avalonia.Base/Media/TextLeadingPrefixTrimming.cs b/src/Avalonia.Base/Media/TextLeadingPrefixTrimming.cs index 7ba25eb005..19e6a70357 100644 --- a/src/Avalonia.Base/Media/TextLeadingPrefixTrimming.cs +++ b/src/Avalonia.Base/Media/TextLeadingPrefixTrimming.cs @@ -15,7 +15,7 @@ namespace Avalonia.Media public override TextCollapsingProperties CreateCollapsingProperties(TextCollapsingCreateInfo createInfo) { - return new TextLeadingPrefixCharacterEllipsis(_ellipsis, _prefixLength, createInfo.Width, createInfo.TextRunProperties); + return new TextLeadingPrefixCharacterEllipsis(_ellipsis, _prefixLength, createInfo.Width, createInfo.TextRunProperties, createInfo.FlowDirection); } public override string ToString() diff --git a/src/Avalonia.Base/Media/TextTrailingTrimming.cs b/src/Avalonia.Base/Media/TextTrailingTrimming.cs index 2edbaabbc6..8a3c5aa397 100644 --- a/src/Avalonia.Base/Media/TextTrailingTrimming.cs +++ b/src/Avalonia.Base/Media/TextTrailingTrimming.cs @@ -17,10 +17,10 @@ namespace Avalonia.Media { if (_isWordBased) { - return new TextTrailingWordEllipsis(_ellipsis, createInfo.Width, createInfo.TextRunProperties); + return new TextTrailingWordEllipsis(_ellipsis, createInfo.Width, createInfo.TextRunProperties, createInfo.FlowDirection); } - return new TextTrailingCharacterEllipsis(_ellipsis, createInfo.Width, createInfo.TextRunProperties); + return new TextTrailingCharacterEllipsis(_ellipsis, createInfo.Width, createInfo.TextRunProperties, createInfo.FlowDirection); } public override string ToString() diff --git a/tests/Avalonia.Skia.UnitTests/Media/TextFormatting/TextFormatterTests.cs b/tests/Avalonia.Skia.UnitTests/Media/TextFormatting/TextFormatterTests.cs index 8a2d4ecc6b..dc8744b292 100644 --- a/tests/Avalonia.Skia.UnitTests/Media/TextFormatting/TextFormatterTests.cs +++ b/tests/Avalonia.Skia.UnitTests/Media/TextFormatting/TextFormatterTests.cs @@ -457,7 +457,7 @@ namespace Avalonia.Skia.UnitTests.Media.TextFormatting if (textLine.Width > 300 || currentHeight + textLine.Height > 240) { - textLine = textLine.Collapse(new TextTrailingWordEllipsis(TextTrimming.DefaultEllipsisChar, 300, defaultProperties)); + textLine = textLine.Collapse(new TextTrailingWordEllipsis(TextTrimming.DefaultEllipsisChar, 300, defaultProperties, FlowDirection.LeftToRight)); } currentHeight += textLine.Height; diff --git a/tests/Avalonia.Skia.UnitTests/Media/TextFormatting/TextLineTests.cs b/tests/Avalonia.Skia.UnitTests/Media/TextFormatting/TextLineTests.cs index 70e74cdf83..bd64d72a4d 100644 --- a/tests/Avalonia.Skia.UnitTests/Media/TextFormatting/TextLineTests.cs +++ b/tests/Avalonia.Skia.UnitTests/Media/TextFormatting/TextLineTests.cs @@ -407,7 +407,7 @@ namespace Avalonia.Skia.UnitTests.Media.TextFormatting Assert.False(textLine.HasCollapsed); - TextCollapsingProperties collapsingProperties = trimming.CreateCollapsingProperties(new TextCollapsingCreateInfo(width, defaultProperties)); + TextCollapsingProperties collapsingProperties = trimming.CreateCollapsingProperties(new TextCollapsingCreateInfo(width, defaultProperties, FlowDirection.LeftToRight)); var collapsedLine = textLine.Collapse(collapsingProperties); From 79d0e9c5b416320fef0c0185888df9c1e8c08ff6 Mon Sep 17 00:00:00 2001 From: Stan Wijckmans Date: Mon, 20 Feb 2023 13:56:46 +0100 Subject: [PATCH 052/122] Make RequestPlatformInhibition public. --- src/Avalonia.Controls/TopLevel.cs | 50 +++++++++++++++---------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/src/Avalonia.Controls/TopLevel.cs b/src/Avalonia.Controls/TopLevel.cs index ed11dec1d0..eea175eb3c 100644 --- a/src/Avalonia.Controls/TopLevel.cs +++ b/src/Avalonia.Controls/TopLevel.cs @@ -405,7 +405,31 @@ namespace Avalonia.Controls { return visual?.VisualRoot as TopLevel; } - + + /// + /// Requests a to be inhibited. + /// The behavior remains inhibited until the return value is disposed. + /// The available set of s depends on the platform. + /// If a behavior is inhibited on a platform where this type is not supported the request will have no effect. + /// + public async Task RequestPlatformInhibition(PlatformInhibitionType type, string reason) + { + var platformBehaviorInhibition = PlatformImpl?.TryGetFeature(); + if (platformBehaviorInhibition == null) + { + return Disposable.Create(() => { }); + } + + switch (type) + { + case PlatformInhibitionType.AppSleep: + await platformBehaviorInhibition.SetInhibitAppSleep(true, reason); + return Disposable.Create(() => platformBehaviorInhibition.SetInhibitAppSleep(false, reason).Wait()); + default: + return Disposable.Create(() => { }); + } + } + protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) { base.OnPropertyChanged(change); @@ -571,30 +595,6 @@ namespace Avalonia.Controls /// The event args. protected virtual void OnClosed(EventArgs e) => Closed?.Invoke(this, e); - /// - /// Requests a to be inhibited. - /// The behavior remains inhibited until the return value is disposed. - /// The available set of s depends on the platform. - /// If a behavior is inhibited on a platform where this type is not supported the request will have no effect. - /// - protected async Task RequestPlatformInhibition(PlatformInhibitionType type, string reason) - { - var platformBehaviorInhibition = PlatformImpl?.TryGetFeature(); - if (platformBehaviorInhibition == null) - { - return Disposable.Create(() => { }); - } - - switch (type) - { - case PlatformInhibitionType.AppSleep: - await platformBehaviorInhibition.SetInhibitAppSleep(true, reason); - return Disposable.Create(() => platformBehaviorInhibition.SetInhibitAppSleep(false, reason).Wait()); - default: - return Disposable.Create(() => { }); - } - } - /// /// Tries to get a service from an , logging a /// warning if not found. From 688dbc4fdc24e19ccad196c9cf21a9b69d43b6ec Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Thu, 16 Feb 2023 18:56:23 +0100 Subject: [PATCH 053/122] Moved EnableDataValdiation to AvaloniaPropertyMetadata Support data validation in StyledProperty bindings Co-Authored-By: Tom Edwards <109803929+tomenscape@users.noreply.github.com> --- src/Avalonia.Base/AvaloniaObject.cs | 11 +++++--- src/Avalonia.Base/AvaloniaObjectExtensions.cs | 4 +-- src/Avalonia.Base/AvaloniaProperty.cs | 13 ++++++--- src/Avalonia.Base/AvaloniaPropertyMetadata.cs | 18 ++++++++++++- src/Avalonia.Base/DirectPropertyMetadata`1.cs | 27 +++---------------- src/Avalonia.Base/StyledElement.cs | 1 + src/Avalonia.Base/StyledPropertyMetadata`1.cs | 6 +++-- .../AvaloniaPropertyTests.cs | 1 + 8 files changed, 44 insertions(+), 37 deletions(-) diff --git a/src/Avalonia.Base/AvaloniaObject.cs b/src/Avalonia.Base/AvaloniaObject.cs index d89d6f3690..bf1624eab3 100644 --- a/src/Avalonia.Base/AvaloniaObject.cs +++ b/src/Avalonia.Base/AvaloniaObject.cs @@ -776,11 +776,16 @@ namespace Avalonia break; } - var metadata = property.GetMetadata(GetType()); + UpdateDataValidationCore(property, value.Type, value.Error); + } - if (metadata.EnableDataValidation == true) + internal void UpdateDataValidationCore(AvaloniaProperty property, + BindingValueType state, + Exception? error) + { + if (property.GetMetadata(GetType()) is { EnableDataValidation: true }) { - UpdateDataValidation(property, value.Type, value.Error); + UpdateDataValidation(property, state, error); } } diff --git a/src/Avalonia.Base/AvaloniaObjectExtensions.cs b/src/Avalonia.Base/AvaloniaObjectExtensions.cs index 6231483ff8..9fbf680a5c 100644 --- a/src/Avalonia.Base/AvaloniaObjectExtensions.cs +++ b/src/Avalonia.Base/AvaloniaObjectExtensions.cs @@ -199,13 +199,11 @@ namespace Avalonia property = property ?? throw new ArgumentNullException(nameof(property)); binding = binding ?? throw new ArgumentNullException(nameof(binding)); - var metadata = property.GetMetadata(target.GetType()) as IDirectPropertyMetadata; - var result = binding.Initiate( target, property, anchor, - metadata?.EnableDataValidation ?? false); + property.GetMetadata(target.GetType()).EnableDataValidation ?? false); if (result != null) { diff --git a/src/Avalonia.Base/AvaloniaProperty.cs b/src/Avalonia.Base/AvaloniaProperty.cs index 45ab293a89..24244c5068 100644 --- a/src/Avalonia.Base/AvaloniaProperty.cs +++ b/src/Avalonia.Base/AvaloniaProperty.cs @@ -227,6 +227,7 @@ namespace Avalonia /// The default binding mode for the property. /// A value validation callback. /// A value coercion callback. + /// Whether the property is interested in data validation. /// A public static StyledProperty Register( string name, @@ -234,7 +235,8 @@ namespace Avalonia bool inherits = false, BindingMode defaultBindingMode = BindingMode.OneWay, Func? validate = null, - Func? coerce = null) + Func? coerce = null, + bool enableDataValidation = false) where TOwner : AvaloniaObject { _ = name ?? throw new ArgumentNullException(nameof(name)); @@ -242,7 +244,8 @@ namespace Avalonia var metadata = new StyledPropertyMetadata( defaultValue, defaultBindingMode: defaultBindingMode, - coerce: coerce); + coerce: coerce, + enableDataValidation: enableDataValidation); var result = new StyledProperty( name, @@ -253,7 +256,7 @@ namespace Avalonia AvaloniaPropertyRegistry.Instance.Register(typeof(TOwner), result); return result; } - + /// /// /// A method that gets called before and after the property starts being notified on an @@ -267,6 +270,7 @@ namespace Avalonia BindingMode defaultBindingMode, Func? validate, Func? coerce, + bool enableDataValidation, Action? notifying) where TOwner : AvaloniaObject { @@ -275,7 +279,8 @@ namespace Avalonia var metadata = new StyledPropertyMetadata( defaultValue, defaultBindingMode: defaultBindingMode, - coerce: coerce); + coerce: coerce, + enableDataValidation: enableDataValidation); var result = new StyledProperty( name, diff --git a/src/Avalonia.Base/AvaloniaPropertyMetadata.cs b/src/Avalonia.Base/AvaloniaPropertyMetadata.cs index 2963567b14..62bb65351f 100644 --- a/src/Avalonia.Base/AvaloniaPropertyMetadata.cs +++ b/src/Avalonia.Base/AvaloniaPropertyMetadata.cs @@ -13,10 +13,13 @@ namespace Avalonia /// Initializes a new instance of the class. /// /// The default binding mode. + /// Whether the property is interested in data validation. public AvaloniaPropertyMetadata( - BindingMode defaultBindingMode = BindingMode.Default) + BindingMode defaultBindingMode = BindingMode.Default, + bool? enableDataValidation = null) { _defaultBindingMode = defaultBindingMode; + EnableDataValidation = enableDataValidation; } /// @@ -31,6 +34,17 @@ namespace Avalonia } } + /// + /// Gets a value indicating whether the property is interested in data validation. + /// + /// + /// Data validation is validation performed at the target of a binding, for example in a + /// view model using the INotifyDataErrorInfo interface. Only certain properties on a + /// control (such as a TextBox's Text property) will be interested in receiving data + /// validation messages so this feature must be explicitly enabled by setting this flag. + /// + public bool? EnableDataValidation { get; private set; } + /// /// Merges the metadata with the base metadata. /// @@ -44,6 +58,8 @@ namespace Avalonia { _defaultBindingMode = baseMetadata.DefaultBindingMode; } + + EnableDataValidation ??= baseMetadata.EnableDataValidation; } } } diff --git a/src/Avalonia.Base/DirectPropertyMetadata`1.cs b/src/Avalonia.Base/DirectPropertyMetadata`1.cs index fe1cdd0e65..451ff6ce00 100644 --- a/src/Avalonia.Base/DirectPropertyMetadata`1.cs +++ b/src/Avalonia.Base/DirectPropertyMetadata`1.cs @@ -21,10 +21,9 @@ namespace Avalonia TValue unsetValue = default!, BindingMode defaultBindingMode = BindingMode.Default, bool? enableDataValidation = null) - : base(defaultBindingMode) + : base(defaultBindingMode, enableDataValidation) { UnsetValue = unsetValue; - EnableDataValidation = enableDataValidation; } /// @@ -32,16 +31,6 @@ namespace Avalonia /// public TValue UnsetValue { get; private set; } - /// - /// Gets a value indicating whether the property is interested in data validation. - /// - /// - /// Data validation is validation performed at the target of a binding, for example in a - /// view model using the INotifyDataErrorInfo interface. Only certain properties on a - /// control (such as a TextBox's Text property) will be interested in receiving data - /// validation messages so this feature must be explicitly enabled by setting this flag. - /// - public bool? EnableDataValidation { get; private set; } /// object? IDirectPropertyMetadata.UnsetValue => UnsetValue; @@ -51,19 +40,9 @@ namespace Avalonia { base.Merge(baseMetadata, property); - var src = baseMetadata as DirectPropertyMetadata; - - if (src != null) + if (baseMetadata is DirectPropertyMetadata src) { - if (UnsetValue == null) - { - UnsetValue = src.UnsetValue; - } - - if (EnableDataValidation == null) - { - EnableDataValidation = src.EnableDataValidation; - } + UnsetValue ??= src.UnsetValue; } } } diff --git a/src/Avalonia.Base/StyledElement.cs b/src/Avalonia.Base/StyledElement.cs index 5b8dac2f53..10a0c5da0e 100644 --- a/src/Avalonia.Base/StyledElement.cs +++ b/src/Avalonia.Base/StyledElement.cs @@ -46,6 +46,7 @@ namespace Avalonia defaultBindingMode: BindingMode.OneWay, validate: null, coerce: null, + enableDataValidation: false, notifying: DataContextNotifying); /// diff --git a/src/Avalonia.Base/StyledPropertyMetadata`1.cs b/src/Avalonia.Base/StyledPropertyMetadata`1.cs index c71973fde8..6f10de3651 100644 --- a/src/Avalonia.Base/StyledPropertyMetadata`1.cs +++ b/src/Avalonia.Base/StyledPropertyMetadata`1.cs @@ -16,11 +16,13 @@ namespace Avalonia /// The default value of the property. /// The default binding mode. /// A value coercion callback. + /// Whether the property is interested in data validation. public StyledPropertyMetadata( Optional defaultValue = default, BindingMode defaultBindingMode = BindingMode.Default, - Func? coerce = null) - : base(defaultBindingMode) + Func? coerce = null, + bool enableDataValidation = false) + : base(defaultBindingMode, enableDataValidation) { _defaultValue = defaultValue; CoerceValue = coerce; diff --git a/tests/Avalonia.Base.UnitTests/AvaloniaPropertyTests.cs b/tests/Avalonia.Base.UnitTests/AvaloniaPropertyTests.cs index 7e932373c2..181596a681 100644 --- a/tests/Avalonia.Base.UnitTests/AvaloniaPropertyTests.cs +++ b/tests/Avalonia.Base.UnitTests/AvaloniaPropertyTests.cs @@ -198,6 +198,7 @@ namespace Avalonia.Base.UnitTests defaultBindingMode: BindingMode.OneWay, validate: null, coerce: null, + enableDataValidation: false, notifying: FooNotifying); public int NotifyCount { get; private set; } From eabc9493fae49de2aa02fc8d3658a2914da18871 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Thu, 16 Feb 2023 23:22:46 +0100 Subject: [PATCH 054/122] Added tests for styled property data validation. --- .../AvaloniaObjectTests_DataValidation.cs | 258 +++++++++------ .../Data/BindingTests_DataValidation.cs | 293 +++++++++++++++--- 2 files changed, 420 insertions(+), 131 deletions(-) diff --git a/tests/Avalonia.Base.UnitTests/AvaloniaObjectTests_DataValidation.cs b/tests/Avalonia.Base.UnitTests/AvaloniaObjectTests_DataValidation.cs index d48e58136a..71eb521f9d 100644 --- a/tests/Avalonia.Base.UnitTests/AvaloniaObjectTests_DataValidation.cs +++ b/tests/Avalonia.Base.UnitTests/AvaloniaObjectTests_DataValidation.cs @@ -1,115 +1,170 @@ using System; using System.Collections.Generic; -using System.Linq; using System.Reactive.Subjects; using Avalonia.Data; using Avalonia.UnitTests; using Xunit; +#nullable enable + namespace Avalonia.Base.UnitTests { public class AvaloniaObjectTests_DataValidation { - [Fact] - public void Binding_Non_Validated_Styled_Property_Does_Not_Call_UpdateDataValidation() + public abstract class TestBase + where T : AvaloniaProperty { - var target = new Class1(); - var source = new Subject>(); + [Fact] + public void Binding_Non_Validated_Property_Does_Not_Call_UpdateDataValidation() + { + var target = new Class1(); + var source = new Subject>(); + var property = GetNonValidatedProperty(); - target.Bind(Class1.NonValidatedProperty, source); - source.OnNext(6); - source.OnNext(BindingValue.BindingError(new Exception())); - source.OnNext(BindingValue.DataValidationError(new Exception())); - source.OnNext(6); + target.Bind(property, source); + source.OnNext(6); + source.OnNext(BindingValue.BindingError(new Exception())); + source.OnNext(BindingValue.DataValidationError(new Exception())); + source.OnNext(6); - Assert.Empty(target.Notifications); - } + Assert.Empty(target.Notifications); + } - [Fact] - public void Binding_Non_Validated_Direct_Property_Does_Not_Call_UpdateDataValidation() - { - var target = new Class1(); - var source = new Subject>(); + [Fact] + public void Binding_Validated_Property_Calls_UpdateDataValidation() + { + var target = new Class1(); + var source = new Subject>(); + var property = GetProperty(); + var error1 = new Exception(); + var error2 = new Exception(); - target.Bind(Class1.NonValidatedDirectProperty, source); - source.OnNext(6); - source.OnNext(BindingValue.BindingError(new Exception())); - source.OnNext(BindingValue.DataValidationError(new Exception())); - source.OnNext(6); + target.Bind(property, source); + source.OnNext(6); + source.OnNext(BindingValue.DataValidationError(error1)); + source.OnNext(BindingValue.BindingError(error2)); + source.OnNext(7); - Assert.Empty(target.Notifications); - } + Assert.Equal(new Notification[] + { + new(BindingValueType.Value, 6, null), + new(BindingValueType.DataValidationError, 6, error1), + new(BindingValueType.BindingError, 0, error2), + new(BindingValueType.Value, 7, null), + }, target.Notifications); + } - [Fact] - public void Binding_Validated_Direct_Property_Calls_UpdateDataValidation() - { - var target = new Class1(); - var source = new Subject>(); - - target.Bind(Class1.ValidatedDirectIntProperty, source); - source.OnNext(6); - source.OnNext(BindingValue.BindingError(new Exception())); - source.OnNext(BindingValue.DataValidationError(new Exception())); - source.OnNext(7); - - var result = target.Notifications; - Assert.Equal(4, result.Count); - Assert.Equal(BindingValueType.Value, result[0].type); - Assert.Equal(6, result[0].value); - Assert.Equal(BindingValueType.BindingError, result[1].type); - Assert.Equal(BindingValueType.DataValidationError, result[2].type); - Assert.Equal(BindingValueType.Value, result[3].type); - Assert.Equal(7, result[3].value); + [Fact] + public void Binding_Validated_Property_Calls_UpdateDataValidation_Untyped() + { + var target = new Class1(); + var source = new Subject(); + var property = GetProperty(); + var error1 = new Exception(); + var error2 = new Exception(); + + target.Bind(property, source); + source.OnNext(6); + source.OnNext(new BindingNotification(error1, BindingErrorType.DataValidationError)); + source.OnNext(new BindingNotification(error2, BindingErrorType.Error)); + source.OnNext(7); + + Assert.Equal(new Notification[] + { + new(BindingValueType.Value, 6, null), + new(BindingValueType.DataValidationError, 6, error1), + new(BindingValueType.BindingError, 0, error2), + new(BindingValueType.Value, 7, null), + }, target.Notifications); + } + + [Fact] + public void Binding_Overridden_Validated_Property_Calls_UpdateDataValidation() + { + var target = new Class2(); + var source = new Subject>(); + var property = GetNonValidatedProperty(); + + // Class2 overrides the non-validated property metadata to enable data validation. + target.Bind(property, source); + source.OnNext(1); + + Assert.Equal(1, target.Notifications.Count); + } + + protected abstract T GetProperty(); + protected abstract T GetNonValidatedProperty(); } - [Fact] - public void Binding_Overridden_Validated_Direct_Property_Calls_UpdateDataValidation() + public class DirectPropertyTests : TestBase> { - var target = new Class2(); - var source = new Subject>(); + [Fact] + public void Bound_Validated_String_Property_Can_Be_Set_To_Null() + { + var source = new ViewModel + { + StringValue = "foo", + }; + + var target = new Class1 + { + [!Class1.ValidatedDirectStringProperty] = new Binding + { + Path = nameof(ViewModel.StringValue), + Source = source, + }, + }; - // Class2 overrides `NonValidatedDirectProperty`'s metadata to enable data validation. - target.Bind(Class1.NonValidatedDirectProperty, source); - source.OnNext(1); + Assert.Equal("foo", target.ValidatedDirectString); - Assert.Equal(1, target.Notifications.Count); + source.StringValue = null; + + Assert.Null(target.ValidatedDirectString); + } + + protected override DirectPropertyBase GetProperty() => Class1.ValidatedDirectIntProperty; + protected override DirectPropertyBase GetNonValidatedProperty() => Class1.NonValidatedDirectIntProperty; } - [Fact] - public void Bound_Validated_Direct_String_Property_Can_Be_Set_To_Null() + public class StyledPropertyTests : TestBase> { - var source = new ViewModel + [Fact] + public void Bound_Validated_String_Property_Can_Be_Set_To_Null() { - StringValue = "foo", - }; + var source = new ViewModel + { + StringValue = "foo", + }; - var target = new Class1 - { - [!Class1.ValidatedDirectStringProperty] = new Binding + var target = new Class1 { - Path = nameof(ViewModel.StringValue), - Source = source, - }, - }; + [!Class1.ValidatedDirectStringProperty] = new Binding + { + Path = nameof(ViewModel.StringValue), + Source = source, + }, + }; + + Assert.Equal("foo", target.ValidatedDirectString); - Assert.Equal("foo", target.ValidatedDirectString); + source.StringValue = null; - source.StringValue = null; + Assert.Null(target.ValidatedDirectString); + } - Assert.Null(target.ValidatedDirectString); + protected override StyledProperty GetProperty() => Class1.ValidatedStyledIntProperty; + protected override StyledProperty GetNonValidatedProperty() => Class1.NonValidatedStyledIntProperty; } + private record class Notification(BindingValueType type, object? value, Exception? error); + private class Class1 : AvaloniaObject { - public static readonly StyledProperty NonValidatedProperty = - AvaloniaProperty.Register( - nameof(NonValidated)); - - public static readonly DirectProperty NonValidatedDirectProperty = + public static readonly DirectProperty NonValidatedDirectIntProperty = AvaloniaProperty.RegisterDirect( - nameof(NonValidatedDirect), - o => o.NonValidatedDirect, - (o, v) => o.NonValidatedDirect = v); + nameof(NonValidatedDirectInt), + o => o.NonValidatedDirectInt, + (o, v) => o.NonValidatedDirectInt = v); public static readonly DirectProperty ValidatedDirectIntProperty = AvaloniaProperty.RegisterDirect( @@ -118,27 +173,30 @@ namespace Avalonia.Base.UnitTests (o, v) => o.ValidatedDirectInt = v, enableDataValidation: true); - public static readonly DirectProperty ValidatedDirectStringProperty = - AvaloniaProperty.RegisterDirect( + public static readonly DirectProperty ValidatedDirectStringProperty = + AvaloniaProperty.RegisterDirect( nameof(ValidatedDirectString), o => o.ValidatedDirectString, (o, v) => o.ValidatedDirectString = v, enableDataValidation: true); + public static readonly StyledProperty NonValidatedStyledIntProperty = + AvaloniaProperty.Register( + nameof(NonValidatedStyledInt)); + + public static readonly StyledProperty ValidatedStyledIntProperty = + AvaloniaProperty.Register( + nameof(ValidatedStyledInt), + enableDataValidation: true); + private int _nonValidatedDirect; private int _directInt; - private string _directString; - - public int NonValidated - { - get { return GetValue(NonValidatedProperty); } - set { SetValue(NonValidatedProperty, value); } - } + private string? _directString; - public int NonValidatedDirect + public int NonValidatedDirectInt { get { return _directInt; } - set { SetAndRaise(NonValidatedDirectProperty, ref _nonValidatedDirect, value); } + set { SetAndRaise(NonValidatedDirectIntProperty, ref _nonValidatedDirect, value); } } public int ValidatedDirectInt @@ -147,20 +205,32 @@ namespace Avalonia.Base.UnitTests set { SetAndRaise(ValidatedDirectIntProperty, ref _directInt, value); } } - public string ValidatedDirectString + public string? ValidatedDirectString { get { return _directString; } set { SetAndRaise(ValidatedDirectStringProperty, ref _directString, value); } } - public List<(BindingValueType type, object value)> Notifications { get; } = new(); + public int NonValidatedStyledInt + { + get { return GetValue(NonValidatedStyledIntProperty); } + set { SetValue(NonValidatedStyledIntProperty, value); } + } + + public int ValidatedStyledInt + { + get => GetValue(ValidatedStyledIntProperty); + set => SetValue(ValidatedStyledIntProperty, value); + } + + public List Notifications { get; } = new(); protected override void UpdateDataValidation( AvaloniaProperty property, BindingValueType state, - Exception error) + Exception? error) { - Notifications.Add((state, GetValue(property))); + Notifications.Add(new(state, GetValue(property), error)); } } @@ -168,16 +238,18 @@ namespace Avalonia.Base.UnitTests { static Class2() { - NonValidatedDirectProperty.OverrideMetadata( + NonValidatedDirectIntProperty.OverrideMetadata( new DirectPropertyMetadata(enableDataValidation: true)); + NonValidatedStyledIntProperty.OverrideMetadata( + new StyledPropertyMetadata(enableDataValidation: true)); } } public class ViewModel : NotifyingBase { - private string _stringValue; + private string? _stringValue; - public string StringValue + public string? StringValue { get { return _stringValue; } set { _stringValue = value; RaisePropertyChanged(); } diff --git a/tests/Avalonia.Markup.UnitTests/Data/BindingTests_DataValidation.cs b/tests/Avalonia.Markup.UnitTests/Data/BindingTests_DataValidation.cs index 505eddb146..de2d01a2ac 100644 --- a/tests/Avalonia.Markup.UnitTests/Data/BindingTests_DataValidation.cs +++ b/tests/Avalonia.Markup.UnitTests/Data/BindingTests_DataValidation.cs @@ -1,72 +1,289 @@ using System; -using System.Reactive.Linq; +using System.Collections; +using System.ComponentModel; using Avalonia.Controls; using Avalonia.Data; -using Avalonia.Data.Core; -using Avalonia.Markup.Data; +using Avalonia.Styling; +using Avalonia.UnitTests; using Xunit; +#nullable enable + namespace Avalonia.Markup.UnitTests.Data { public class BindingTests_DataValidation { - [Fact] - public void Initiate_Should_Not_Enable_Data_Validation_With_BindingPriority_LocalValue() + public abstract class TestBase + where T : AvaloniaProperty { - var textBlock = new TextBlock + [Fact] + public void Setter_Exception_Causes_DataValidation_Error() + { + var (target, property) = CreateTarget(); + var binding = new Binding(nameof(ExceptionValidatingModel.Value)) + { + Mode = BindingMode.TwoWay + }; + + target.DataContext = new ExceptionValidatingModel(); + target.Bind(property, binding); + + Assert.Equal(20, target.GetValue(property)); + + target.SetValue(property, 200); + + Assert.Equal(200, target.GetValue(property)); + Assert.IsType(target.DataValidationError); + + target.SetValue(property, 10); + + Assert.Equal(10, target.GetValue(property)); + Assert.Null(target.DataValidationError); + } + + [Fact] + public void Indei_Error_Causes_DataValidation_Error() { - DataContext = new Class1(), - }; + var (target, property) = CreateTarget(); + var binding = new Binding(nameof(IndeiValidatingModel.Value)) + { + Mode = BindingMode.TwoWay + }; + + target.DataContext = new IndeiValidatingModel(); + target.Bind(property, binding); + + Assert.Equal(20, target.GetValue(property)); + + target.SetValue(property, 200); + + Assert.Equal(200, target.GetValue(property)); + Assert.IsType(target.DataValidationError); + Assert.Equal("Invalid value.", target.DataValidationError?.Message); + + target.SetValue(property, 10); - var target = new Binding(nameof(Class1.Foo)); - var instanced = target.Initiate(textBlock, TextBlock.TextProperty, enableDataValidation: false); - var subject = (BindingExpression)instanced.Source; - object result = null; + Assert.Equal(10, target.GetValue(property)); + Assert.Null(target.DataValidationError); + } - subject.Subscribe(x => result = x); + private protected abstract (DataValidationTestControl, T) CreateTarget(); + } - Assert.IsType(result); + public class DirectPropertyTests : TestBase> + { + private protected override (DataValidationTestControl, DirectPropertyBase) CreateTarget() + { + return (new ValidatedDirectPropertyClass(), ValidatedDirectPropertyClass.ValueProperty); + } } - [Fact] - public void Initiate_Should_Enable_Data_Validation_With_BindingPriority_LocalValue() + public class StyledPropertyTests : TestBase> { - var textBlock = new TextBlock + [Fact] + public void Style_Binding_Supports_Indei_Data_Validation() + { + var (target, property) = CreateTarget(); + var binding = new Binding(nameof(IndeiValidatingModel.Value)) + { + Mode = BindingMode.TwoWay + }; + + var root = new TestRoot + { + DataContext = new IndeiValidatingModel(), + Styles = + { + new Style(x => x.Is()) + { + Setters = + { + new Setter(property, binding) + } + } + }, + Child = target, + }; + + root.LayoutManager.ExecuteInitialLayoutPass(); + + Assert.Equal(20, target.GetValue(property)); + + target.SetValue(property, 200); + + Assert.Equal(200, target.GetValue(property)); + Assert.IsType(target.DataValidationError); + Assert.Equal("Invalid value.", target.DataValidationError?.Message); + + target.SetValue(property, 10); + + Assert.Equal(10, target.GetValue(property)); + Assert.Null(target.DataValidationError); + } + + [Fact] + public void Style_With_Activator_Binding_Supports_Indei_Data_Validation() + { + var (target, property) = CreateTarget(); + var binding = new Binding(nameof(IndeiValidatingModel.Value)) + { + Mode = BindingMode.TwoWay + }; + + var model = new IndeiValidatingModel + { + Value = 200, + }; + + var root = new TestRoot + { + DataContext = model, + Styles = + { + new Style(x => x.Is().Class("foo")) + { + Setters = + { + new Setter(property, binding) + } + } + }, + Child = target, + }; + + root.LayoutManager.ExecuteInitialLayoutPass(); + target.Classes.Add("foo"); + + Assert.Equal(200, target.GetValue(property)); + Assert.IsType(target.DataValidationError); + Assert.Equal("Invalid value.", target.DataValidationError?.Message); + + target.Classes.Remove("foo"); + Assert.Equal(0, target.GetValue(property)); + Assert.Null(target.DataValidationError); + + target.Classes.Add("foo"); + Assert.IsType(target.DataValidationError); + Assert.Equal("Invalid value.", target.DataValidationError?.Message); + + target.SetValue(property, 10); + + Assert.Equal(10, target.GetValue(property)); + Assert.Null(target.DataValidationError); + } + + private protected override (DataValidationTestControl, StyledProperty) CreateTarget() { - DataContext = new Class1(), - }; + return (new ValidatedStyledPropertyClass(), ValidatedStyledPropertyClass.ValueProperty); + } + } - var target = new Binding(nameof(Class1.Foo)); - var instanced = target.Initiate(textBlock, TextBlock.TextProperty, enableDataValidation: true); - var subject = (BindingExpression)instanced.Source; - object result = null; + internal class DataValidationTestControl : Control + { + public Exception? DataValidationError { get; protected set; } + } - subject.Subscribe(x => result = x); + private class ValidatedStyledPropertyClass : DataValidationTestControl + { + public static readonly StyledProperty ValueProperty = + AvaloniaProperty.Register( + "Value", + enableDataValidation: true); + + public int Value + { + get => GetValue(ValueProperty); + set => SetValue(ValueProperty, value); + } - Assert.Equal(new BindingNotification("foo"), result); + protected override void UpdateDataValidation(AvaloniaProperty property, BindingValueType state, Exception? error) + { + if (property == ValueProperty) + { + DataValidationError = state.HasAnyFlag(BindingValueType.DataValidationError) ? error : null; + } + } } - [Fact] - public void Initiate_Should_Not_Enable_Data_Validation_With_BindingPriority_TemplatedParent() + private class ValidatedDirectPropertyClass : DataValidationTestControl { - var textBlock = new TextBlock + public static readonly DirectProperty ValueProperty = + AvaloniaProperty.RegisterDirect( + "Value", + o => o.Value, + (o, v) => o.Value = v, + enableDataValidation: true); + + private int _value; + + public int Value { - DataContext = new Class1(), - }; + get => _value; + set => SetAndRaise(ValueProperty, ref _value, value); + } - var target = new Binding(nameof(Class1.Foo)) { Priority = BindingPriority.Template }; - var instanced = target.Initiate(textBlock, TextBlock.TextProperty, enableDataValidation: true); - var subject = (BindingExpression)instanced.Source; - object result = null; + protected override void UpdateDataValidation(AvaloniaProperty property, BindingValueType state, Exception? error) + { + if (property == ValueProperty) + { + DataValidationError = state.HasAnyFlag(BindingValueType.DataValidationError) ? error : null; + } + } + } - subject.Subscribe(x => result = x); + private class ExceptionValidatingModel + { + public const int MaxValue = 100; + private int _value = 20; - Assert.IsType(result); + public int Value + { + get => _value; + set + { + if (value > MaxValue) + throw new ArgumentOutOfRangeException(nameof(value)); + _value = value; + } + } } - private class Class1 + private class IndeiValidatingModel : INotifyDataErrorInfo { - public string Foo { get; set; } = "foo"; + public const int MaxValue = 100; + private bool _hasErrors; + private int _value = 20; + + public int Value + { + get => _value; + set + { + _value = value; + HasErrors = value > MaxValue; + } + } + + public bool HasErrors + { + get => _hasErrors; + private set + { + if (_hasErrors != value) + { + _hasErrors = value; + ErrorsChanged?.Invoke(this, new DataErrorsChangedEventArgs(nameof(Value))); + } + } + } + + public event EventHandler? ErrorsChanged; + + public IEnumerable GetErrors(string? propertyName) + { + if (propertyName == nameof(Value) && _value > MaxValue) + yield return "Invalid value."; + } } } } From d787a72f7f66621e0bc9a793fd1f5bc34291645b Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Fri, 17 Feb 2023 11:29:31 +0100 Subject: [PATCH 055/122] Initial impl of data validation for styled properties. Currently only local value bindings implemented. --- src/Avalonia.Base/AvaloniaObject.cs | 16 ++++---- .../LocalValueBindingObserver.cs | 29 +++++++++------ .../LocalValueUntypedBindingObserver.cs | 37 +++++++++---------- src/Avalonia.Base/PropertyStore/ValueStore.cs | 28 ++++++++------ .../AvaloniaObjectTests_Binding.cs | 7 ++-- 5 files changed, 62 insertions(+), 55 deletions(-) diff --git a/src/Avalonia.Base/AvaloniaObject.cs b/src/Avalonia.Base/AvaloniaObject.cs index bf1624eab3..f3a046ef80 100644 --- a/src/Avalonia.Base/AvaloniaObject.cs +++ b/src/Avalonia.Base/AvaloniaObject.cs @@ -776,19 +776,19 @@ namespace Avalonia break; } - UpdateDataValidationCore(property, value.Type, value.Error); - } + var metadata = property.GetMetadata(GetType()); - internal void UpdateDataValidationCore(AvaloniaProperty property, - BindingValueType state, - Exception? error) - { - if (property.GetMetadata(GetType()) is { EnableDataValidation: true }) + if (metadata.EnableDataValidation == true) { - UpdateDataValidation(property, state, error); + UpdateDataValidation(property, value.Type, value.Error); } } + internal void OnUpdateDataValidation(AvaloniaProperty property, BindingValueType state, Exception? error) + { + UpdateDataValidation(property, state, error); + } + /// /// Gets a description of an observable that van be used in logs. /// diff --git a/src/Avalonia.Base/PropertyStore/LocalValueBindingObserver.cs b/src/Avalonia.Base/PropertyStore/LocalValueBindingObserver.cs index 5908d9e535..24eb00b2fe 100644 --- a/src/Avalonia.Base/PropertyStore/LocalValueBindingObserver.cs +++ b/src/Avalonia.Base/PropertyStore/LocalValueBindingObserver.cs @@ -9,6 +9,7 @@ namespace Avalonia.PropertyStore IDisposable { private readonly ValueStore _owner; + private readonly bool _hasDataValidation; private IDisposable? _subscription; private T? _defaultValue; private bool _isDefaultValueInitialized; @@ -17,6 +18,7 @@ namespace Avalonia.PropertyStore { _owner = owner; Property = property; + _hasDataValidation = property.GetMetadata(owner.Owner.GetType()).EnableDataValidation ?? false; } public StyledProperty Property { get;} @@ -51,7 +53,10 @@ namespace Avalonia.PropertyStore if (property.ValidateValue?.Invoke(value) == false) value = instance.GetCachedDefaultValue(); - owner.SetValue(property, value, BindingPriority.LocalValue); + owner.SetLocalValue(property, value); + + if (instance._hasDataValidation) + owner.Owner.OnUpdateDataValidation(property, BindingValueType.Value, null); } if (Dispatcher.UIThread.CheckAccess()) @@ -74,23 +79,23 @@ namespace Avalonia.PropertyStore { var owner = instance._owner; var property = instance.Property; + var originalType = value.Type; LoggingUtils.LogIfNecessary(owner.Owner, property, value); + // Revert to the default value if the binding value fails validation, or if + // there was no value (though not if there was a data validation error). + if ((value.HasValue && property.ValidateValue?.Invoke(value.Value) == false) || + (!value.HasValue && value.Type != BindingValueType.DataValidationError)) + value = value.WithValue(instance.GetCachedDefaultValue()); + if (value.HasValue) - { - var effectiveValue = value.Value; - if (property.ValidateValue?.Invoke(effectiveValue) == false) - effectiveValue = instance.GetCachedDefaultValue(); - owner.SetValue(property, effectiveValue, BindingPriority.LocalValue); - } - else - { - owner.SetValue(property, instance.GetCachedDefaultValue(), BindingPriority.LocalValue); - } + owner.SetLocalValue(property, value.Value); + if (instance._hasDataValidation) + owner.Owner.OnUpdateDataValidation(property, originalType, value.Error); } - if (value.Type is BindingValueType.DoNothing or BindingValueType.DataValidationError) + if (value.Type is BindingValueType.DoNothing) return; if (Dispatcher.UIThread.CheckAccess()) diff --git a/src/Avalonia.Base/PropertyStore/LocalValueUntypedBindingObserver.cs b/src/Avalonia.Base/PropertyStore/LocalValueUntypedBindingObserver.cs index 46e6ed810a..cda11faa1a 100644 --- a/src/Avalonia.Base/PropertyStore/LocalValueUntypedBindingObserver.cs +++ b/src/Avalonia.Base/PropertyStore/LocalValueUntypedBindingObserver.cs @@ -1,4 +1,5 @@ using System; +using System.Diagnostics.CodeAnalysis; using Avalonia.Data; using Avalonia.Threading; @@ -8,6 +9,7 @@ namespace Avalonia.PropertyStore IDisposable { private readonly ValueStore _owner; + private readonly bool _hasDataValidation; private IDisposable? _subscription; private T? _defaultValue; private bool _isDefaultValueInitialized; @@ -16,6 +18,7 @@ namespace Avalonia.PropertyStore { _owner = owner; Property = property; + _hasDataValidation = property.GetMetadata(owner.Owner.GetType()).EnableDataValidation ?? false; } public StyledProperty Property { get; } @@ -35,32 +38,28 @@ namespace Avalonia.PropertyStore public void OnCompleted() => _owner.OnLocalValueBindingCompleted(Property, this); public void OnError(Exception error) => OnCompleted(); + [UnconditionalSuppressMessage("Trimming", "IL2026", Justification = TrimmingMessages.ImplicitTypeConvertionSupressWarningMessage)] public void OnNext(object? value) { - static void Execute(LocalValueUntypedBindingObserver instance, object? value) + static void Execute(LocalValueUntypedBindingObserver instance, object? untypedValue) { var owner = instance._owner; var property = instance.Property; + var value = BindingValue.FromUntyped(untypedValue, property.PropertyType); + var originalType = value.Type; - if (value is BindingNotification n) - { - value = n.Value; - LoggingUtils.LogIfNecessary(owner.Owner, property, n); - } + LoggingUtils.LogIfNecessary(owner.Owner, property, value); - if (value == AvaloniaProperty.UnsetValue) - { - owner.SetValue(property, instance.GetCachedDefaultValue(), BindingPriority.LocalValue); - } - else if (UntypedValueUtils.TryConvertAndValidate(property, value, out var typedValue)) - { - owner.SetValue(property, typedValue, BindingPriority.LocalValue); - } - else - { - owner.SetValue(property, instance.GetCachedDefaultValue(), BindingPriority.LocalValue); - LoggingUtils.LogInvalidValue(owner.Owner, property, typeof(T), value); - } + // Revert to the default value if the binding value fails validation, or if + // there was no value (though not if there was a data validation error). + if ((value.HasValue && property.ValidateValue?.Invoke(value.Value) == false) || + (!value.HasValue && value.Type != BindingValueType.DataValidationError)) + value = value.WithValue(instance.GetCachedDefaultValue()); + + if (value.HasValue) + owner.SetLocalValue(property, value.Value); + if (instance._hasDataValidation) + owner.Owner.OnUpdateDataValidation(property, originalType, value.Error); } if (value == BindingOperations.DoNothing) diff --git a/src/Avalonia.Base/PropertyStore/ValueStore.cs b/src/Avalonia.Base/PropertyStore/ValueStore.cs index ec6ed392c1..9efc91d44d 100644 --- a/src/Avalonia.Base/PropertyStore/ValueStore.cs +++ b/src/Avalonia.Base/PropertyStore/ValueStore.cs @@ -193,18 +193,7 @@ namespace Avalonia.PropertyStore } else { - if (TryGetEffectiveValue(property, out var existing)) - { - var effective = (EffectiveValue)existing; - effective.SetLocalValueAndRaise(this, property, value); - } - else - { - var effectiveValue = CreateEffectiveValue(property); - AddEffectiveValue(property, effectiveValue); - effectiveValue.SetLocalValueAndRaise(this, property, value); - } - + SetLocalValue(property, value); return null; } } @@ -223,6 +212,21 @@ namespace Avalonia.PropertyStore } } + public void SetLocalValue(StyledProperty property, T value) + { + if (TryGetEffectiveValue(property, out var existing)) + { + var effective = (EffectiveValue)existing; + effective.SetLocalValueAndRaise(this, property, value); + } + else + { + var effectiveValue = CreateEffectiveValue(property); + AddEffectiveValue(property, effectiveValue); + effectiveValue.SetLocalValueAndRaise(this, property, value); + } + } + public object? GetValue(AvaloniaProperty property) { if (_effectiveValues.TryGetValue(property, out var v)) diff --git a/tests/Avalonia.Base.UnitTests/AvaloniaObjectTests_Binding.cs b/tests/Avalonia.Base.UnitTests/AvaloniaObjectTests_Binding.cs index b6036bba8f..9f74d2fc08 100644 --- a/tests/Avalonia.Base.UnitTests/AvaloniaObjectTests_Binding.cs +++ b/tests/Avalonia.Base.UnitTests/AvaloniaObjectTests_Binding.cs @@ -888,7 +888,8 @@ namespace Avalonia.Base.UnitTests var target = new Class1(); var source = new Subject(); var called = false; - var expectedMessageTemplate = "Error in binding to {Target}.{Property}: expected {ExpectedType}, got {Value} ({ValueType})"; + var expectedMessageTemplate = "Error in binding to {Target}.{Property}: {Message}"; + var message = "Unable to convert object 'foo' of type 'System.String' to type 'System.Double'."; LogCallback checkLogMessage = (level, area, src, mt, pv) => { @@ -898,9 +899,7 @@ namespace Avalonia.Base.UnitTests src == target && pv[0].GetType() == typeof(Class1) && (AvaloniaProperty)pv[1] == Class1.QuxProperty && - (Type)pv[2] == typeof(double) && - (string)pv[3] == "foo" && - (Type)pv[4] == typeof(string)) + (string)pv[2] == message) { called = true; } From 98fa10416f33509c8ef4a2007d67ad336eb4b1a8 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Fri, 17 Feb 2023 11:38:49 +0100 Subject: [PATCH 056/122] Use same logic for typed and untyped observers. However we still need to split the observers into two classes because otherwise we can't implement both `IObservable` and `IObservable` on the same object. --- .../LocalValueBindingObserver.cs | 119 ++---------------- ...er.cs => LocalValueBindingObserverBase.cs} | 57 +++++++-- src/Avalonia.Base/PropertyStore/ValueStore.cs | 2 +- 3 files changed, 55 insertions(+), 123 deletions(-) rename src/Avalonia.Base/PropertyStore/{LocalValueUntypedBindingObserver.cs => LocalValueBindingObserverBase.cs} (60%) diff --git a/src/Avalonia.Base/PropertyStore/LocalValueBindingObserver.cs b/src/Avalonia.Base/PropertyStore/LocalValueBindingObserver.cs index 24eb00b2fe..9e9b4a3190 100644 --- a/src/Avalonia.Base/PropertyStore/LocalValueBindingObserver.cs +++ b/src/Avalonia.Base/PropertyStore/LocalValueBindingObserver.cs @@ -1,126 +1,25 @@ using System; +using System.Diagnostics.CodeAnalysis; using Avalonia.Data; -using Avalonia.Threading; namespace Avalonia.PropertyStore { - internal class LocalValueBindingObserver : IObserver, - IObserver>, - IDisposable + internal class LocalValueBindingObserver : LocalValueBindingObserverBase, + IObserver { - private readonly ValueStore _owner; - private readonly bool _hasDataValidation; - private IDisposable? _subscription; - private T? _defaultValue; - private bool _isDefaultValueInitialized; - public LocalValueBindingObserver(ValueStore owner, StyledProperty property) + : base(owner, property) { - _owner = owner; - Property = property; - _hasDataValidation = property.GetMetadata(owner.Owner.GetType()).EnableDataValidation ?? false; - } - - public StyledProperty Property { get;} - - public void Start(IObservable source) - { - _subscription = source.Subscribe(this); - } - - public void Start(IObservable> source) - { - _subscription = source.Subscribe(this); - } - - public void Dispose() - { - _subscription?.Dispose(); - _subscription = null; - _owner.OnLocalValueBindingCompleted(Property, this); } - public void OnCompleted() => _owner.OnLocalValueBindingCompleted(Property, this); - public void OnError(Exception error) => OnCompleted(); + public void Start(IObservable source) => _subscription = source.Subscribe(this); - public void OnNext(T value) + [UnconditionalSuppressMessage("Trimming", "IL2026", Justification = TrimmingMessages.ImplicitTypeConvertionSupressWarningMessage)] + public void OnNext(object? value) { - static void Execute(LocalValueBindingObserver instance, T value) - { - var owner = instance._owner; - var property = instance.Property; - - if (property.ValidateValue?.Invoke(value) == false) - value = instance.GetCachedDefaultValue(); - - owner.SetLocalValue(property, value); - - if (instance._hasDataValidation) - owner.Owner.OnUpdateDataValidation(property, BindingValueType.Value, null); - } - - if (Dispatcher.UIThread.CheckAccess()) - { - Execute(this, value); - } - else - { - // To avoid allocating closure in the outer scope we need to capture variables - // locally. This allows us to skip most of the allocations when on UI thread. - var instance = this; - var newValue = value; - Dispatcher.UIThread.Post(() => Execute(instance, newValue)); - } - } - - public void OnNext(BindingValue value) - { - static void Execute(LocalValueBindingObserver instance, BindingValue value) - { - var owner = instance._owner; - var property = instance.Property; - var originalType = value.Type; - - LoggingUtils.LogIfNecessary(owner.Owner, property, value); - - // Revert to the default value if the binding value fails validation, or if - // there was no value (though not if there was a data validation error). - if ((value.HasValue && property.ValidateValue?.Invoke(value.Value) == false) || - (!value.HasValue && value.Type != BindingValueType.DataValidationError)) - value = value.WithValue(instance.GetCachedDefaultValue()); - - if (value.HasValue) - owner.SetLocalValue(property, value.Value); - if (instance._hasDataValidation) - owner.Owner.OnUpdateDataValidation(property, originalType, value.Error); - } - - if (value.Type is BindingValueType.DoNothing) + if (value == BindingOperations.DoNothing) return; - - if (Dispatcher.UIThread.CheckAccess()) - { - Execute(this, value); - } - else - { - // To avoid allocating closure in the outer scope we need to capture variables - // locally. This allows us to skip most of the allocations when on UI thread. - var instance = this; - var newValue = value; - Dispatcher.UIThread.Post(() => Execute(instance, newValue)); - } - } - - private T GetCachedDefaultValue() - { - if (!_isDefaultValueInitialized) - { - _defaultValue = Property.GetDefaultValue(_owner.Owner.GetType()); - _isDefaultValueInitialized = true; - } - - return _defaultValue!; + base.OnNext(BindingValue.FromUntyped(value, Property.PropertyType)); } } } diff --git a/src/Avalonia.Base/PropertyStore/LocalValueUntypedBindingObserver.cs b/src/Avalonia.Base/PropertyStore/LocalValueBindingObserverBase.cs similarity index 60% rename from src/Avalonia.Base/PropertyStore/LocalValueUntypedBindingObserver.cs rename to src/Avalonia.Base/PropertyStore/LocalValueBindingObserverBase.cs index cda11faa1a..85de33d9e0 100644 --- a/src/Avalonia.Base/PropertyStore/LocalValueUntypedBindingObserver.cs +++ b/src/Avalonia.Base/PropertyStore/LocalValueBindingObserverBase.cs @@ -1,29 +1,34 @@ using System; -using System.Diagnostics.CodeAnalysis; using Avalonia.Data; using Avalonia.Threading; namespace Avalonia.PropertyStore { - internal class LocalValueUntypedBindingObserver : IObserver, + internal class LocalValueBindingObserverBase : IObserver, + IObserver>, IDisposable { private readonly ValueStore _owner; private readonly bool _hasDataValidation; - private IDisposable? _subscription; + protected IDisposable? _subscription; private T? _defaultValue; private bool _isDefaultValueInitialized; - public LocalValueUntypedBindingObserver(ValueStore owner, StyledProperty property) + protected LocalValueBindingObserverBase(ValueStore owner, StyledProperty property) { _owner = owner; Property = property; _hasDataValidation = property.GetMetadata(owner.Owner.GetType()).EnableDataValidation ?? false; } - public StyledProperty Property { get; } + public StyledProperty Property { get;} - public void Start(IObservable source) + public void Start(IObservable source) + { + _subscription = source.Subscribe(this); + } + + public void Start(IObservable> source) { _subscription = source.Subscribe(this); } @@ -38,14 +43,42 @@ namespace Avalonia.PropertyStore public void OnCompleted() => _owner.OnLocalValueBindingCompleted(Property, this); public void OnError(Exception error) => OnCompleted(); - [UnconditionalSuppressMessage("Trimming", "IL2026", Justification = TrimmingMessages.ImplicitTypeConvertionSupressWarningMessage)] - public void OnNext(object? value) + public void OnNext(T value) + { + static void Execute(LocalValueBindingObserverBase instance, T value) + { + var owner = instance._owner; + var property = instance.Property; + + if (property.ValidateValue?.Invoke(value) == false) + value = instance.GetCachedDefaultValue(); + + owner.SetLocalValue(property, value); + + if (instance._hasDataValidation) + owner.Owner.OnUpdateDataValidation(property, BindingValueType.Value, null); + } + + if (Dispatcher.UIThread.CheckAccess()) + { + Execute(this, value); + } + else + { + // To avoid allocating closure in the outer scope we need to capture variables + // locally. This allows us to skip most of the allocations when on UI thread. + var instance = this; + var newValue = value; + Dispatcher.UIThread.Post(() => Execute(instance, newValue)); + } + } + + public void OnNext(BindingValue value) { - static void Execute(LocalValueUntypedBindingObserver instance, object? untypedValue) + static void Execute(LocalValueBindingObserverBase instance, BindingValue value) { var owner = instance._owner; var property = instance.Property; - var value = BindingValue.FromUntyped(untypedValue, property.PropertyType); var originalType = value.Type; LoggingUtils.LogIfNecessary(owner.Owner, property, value); @@ -62,14 +95,14 @@ namespace Avalonia.PropertyStore owner.Owner.OnUpdateDataValidation(property, originalType, value.Error); } - if (value == BindingOperations.DoNothing) + if (value.Type is BindingValueType.DoNothing) return; if (Dispatcher.UIThread.CheckAccess()) { Execute(this, value); } - else if (value != BindingOperations.DoNothing) + else { // To avoid allocating closure in the outer scope we need to capture variables // locally. This allows us to skip most of the allocations when on UI thread. diff --git a/src/Avalonia.Base/PropertyStore/ValueStore.cs b/src/Avalonia.Base/PropertyStore/ValueStore.cs index 9efc91d44d..0a5084466f 100644 --- a/src/Avalonia.Base/PropertyStore/ValueStore.cs +++ b/src/Avalonia.Base/PropertyStore/ValueStore.cs @@ -104,7 +104,7 @@ namespace Avalonia.PropertyStore { if (priority == BindingPriority.LocalValue) { - var observer = new LocalValueUntypedBindingObserver(this, property); + var observer = new LocalValueBindingObserver(this, property); DisposeExistingLocalValueBinding(property); _localValueBindings ??= new(); _localValueBindings[property.Id] = observer; From 172a75e438cc27cca4194863e0e2817732beb735 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Fri, 17 Feb 2023 12:13:00 +0100 Subject: [PATCH 057/122] Support data validation on style bindings. --- .../PropertyStore/BindingEntryBase.cs | 28 +++++++++++++++---- .../PropertyStore/ImmediateValueFrame.cs | 6 ++-- .../SourceUntypedBindingEntry.cs | 3 +- .../PropertyStore/TypedBindingEntry.cs | 6 ++-- .../PropertyStore/UntypedBindingEntry.cs | 3 +- .../Styling/PropertySetterBindingInstance.cs | 2 +- src/Avalonia.Base/Styling/Setter.cs | 3 +- 7 files changed, 37 insertions(+), 14 deletions(-) diff --git a/src/Avalonia.Base/PropertyStore/BindingEntryBase.cs b/src/Avalonia.Base/PropertyStore/BindingEntryBase.cs index e1ff0970c2..4a00abf1ce 100644 --- a/src/Avalonia.Base/PropertyStore/BindingEntryBase.cs +++ b/src/Avalonia.Base/PropertyStore/BindingEntryBase.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using Avalonia.Reactive; using Avalonia.Data; using Avalonia.Threading; +using static Avalonia.Rendering.Composition.Animations.PropertySetSnapshot; namespace Avalonia.PropertyStore { @@ -13,6 +14,7 @@ namespace Avalonia.PropertyStore { private static readonly IDisposable s_creating = Disposable.Empty; private static readonly IDisposable s_creatingQuiet = Disposable.Create(() => { }); + private readonly bool _hasDataValidation; private IDisposable? _subscription; private bool _hasValue; private TValue? _value; @@ -20,6 +22,7 @@ namespace Avalonia.PropertyStore private bool _isDefaultValueInitialized; protected BindingEntryBase( + AvaloniaObject target, ValueFrame frame, AvaloniaProperty property, IObservable> source) @@ -27,9 +30,11 @@ namespace Avalonia.PropertyStore Frame = frame; Source = source; Property = property; + _hasDataValidation = property.GetMetadata(target.GetType()).EnableDataValidation ?? false; } protected BindingEntryBase( + AvaloniaObject target, ValueFrame frame, AvaloniaProperty property, IObservable source) @@ -37,6 +42,7 @@ namespace Avalonia.PropertyStore Frame = frame; Source = source; Property = property; + _hasDataValidation = property.GetMetadata(target.GetType()).EnableDataValidation ?? false; } public bool HasValue @@ -79,6 +85,9 @@ namespace Avalonia.PropertyStore { _subscription?.Dispose(); _subscription = null; + + if (_hasDataValidation) + Frame.Owner?.Owner.OnUpdateDataValidation(Property, BindingValueType.UnsetValue, null); } object? IValueEntry.GetValue() @@ -111,20 +120,29 @@ namespace Avalonia.PropertyStore { static void Execute(BindingEntryBase instance, BindingValue value) { - if (instance.Frame.Owner is null) + if (instance.Frame.Owner is not { } valueStore) return; - LoggingUtils.LogIfNecessary(instance.Frame.Owner.Owner, instance.Property, value); + var owner = valueStore.Owner; + var property = instance.Property; + var originalType = value.Type; + + LoggingUtils.LogIfNecessary(owner, property, value); - var effectiveValue = value.HasValue ? value.Value : instance.GetCachedDefaultValue(); + if (!value.HasValue && value.Type != BindingValueType.DataValidationError) + value = value.WithValue(instance.GetCachedDefaultValue()); - if (!instance._hasValue || !EqualityComparer.Default.Equals(instance._value, effectiveValue)) + if (value.HasValue && + (!instance._hasValue || !EqualityComparer.Default.Equals(instance._value, value.Value))) { - instance._value = effectiveValue; + instance._value = value.Value; instance._hasValue = true; if (instance._subscription is not null && instance._subscription != s_creatingQuiet) instance.Frame.Owner?.OnBindingValueChanged(instance, instance.Frame.Priority); } + + if (instance._hasDataValidation) + owner.OnUpdateDataValidation(property, originalType, value.Error); } if (value.Type == BindingValueType.DoNothing) diff --git a/src/Avalonia.Base/PropertyStore/ImmediateValueFrame.cs b/src/Avalonia.Base/PropertyStore/ImmediateValueFrame.cs index 7e9f3ab312..222d857aa3 100644 --- a/src/Avalonia.Base/PropertyStore/ImmediateValueFrame.cs +++ b/src/Avalonia.Base/PropertyStore/ImmediateValueFrame.cs @@ -18,7 +18,7 @@ namespace Avalonia.PropertyStore StyledProperty property, IObservable> source) { - var e = new TypedBindingEntry(this, property, source); + var e = new TypedBindingEntry(Owner!.Owner, this, property, source); Add(e); return e; } @@ -27,7 +27,7 @@ namespace Avalonia.PropertyStore StyledProperty property, IObservable source) { - var e = new TypedBindingEntry(this, property, source); + var e = new TypedBindingEntry(Owner!.Owner, this, property, source); Add(e); return e; } @@ -36,7 +36,7 @@ namespace Avalonia.PropertyStore StyledProperty property, IObservable source) { - var e = new SourceUntypedBindingEntry(this, property, source); + var e = new SourceUntypedBindingEntry(Owner!.Owner, this, property, source); Add(e); return e; } diff --git a/src/Avalonia.Base/PropertyStore/SourceUntypedBindingEntry.cs b/src/Avalonia.Base/PropertyStore/SourceUntypedBindingEntry.cs index b82714817b..99c6a3ee9d 100644 --- a/src/Avalonia.Base/PropertyStore/SourceUntypedBindingEntry.cs +++ b/src/Avalonia.Base/PropertyStore/SourceUntypedBindingEntry.cs @@ -12,10 +12,11 @@ namespace Avalonia.PropertyStore private readonly Func? _validate; public SourceUntypedBindingEntry( + AvaloniaObject target, ValueFrame frame, StyledProperty property, IObservable source) - : base(frame, property, source) + : base(target, frame, property, source) { _validate = property.ValidateValue; } diff --git a/src/Avalonia.Base/PropertyStore/TypedBindingEntry.cs b/src/Avalonia.Base/PropertyStore/TypedBindingEntry.cs index 550f5c0001..c209138605 100644 --- a/src/Avalonia.Base/PropertyStore/TypedBindingEntry.cs +++ b/src/Avalonia.Base/PropertyStore/TypedBindingEntry.cs @@ -10,18 +10,20 @@ namespace Avalonia.PropertyStore internal sealed class TypedBindingEntry : BindingEntryBase { public TypedBindingEntry( + AvaloniaObject target, ValueFrame frame, StyledProperty property, IObservable source) - : base(frame, property, source) + : base(target, frame, property, source) { } public TypedBindingEntry( + AvaloniaObject target, ValueFrame frame, StyledProperty property, IObservable> source) - : base(frame, property, source) + : base(target, frame, property, source) { } diff --git a/src/Avalonia.Base/PropertyStore/UntypedBindingEntry.cs b/src/Avalonia.Base/PropertyStore/UntypedBindingEntry.cs index a77d7fddb6..e3a7607479 100644 --- a/src/Avalonia.Base/PropertyStore/UntypedBindingEntry.cs +++ b/src/Avalonia.Base/PropertyStore/UntypedBindingEntry.cs @@ -12,10 +12,11 @@ namespace Avalonia.PropertyStore private readonly Func? _validate; public UntypedBindingEntry( + AvaloniaObject target, ValueFrame frame, AvaloniaProperty property, IObservable source) - : base(frame, property, source) + : base(target, frame, property, source) { _validate = ((IStyledPropertyAccessor)property).ValidateValue; } diff --git a/src/Avalonia.Base/Styling/PropertySetterBindingInstance.cs b/src/Avalonia.Base/Styling/PropertySetterBindingInstance.cs index 826b45582d..be5a999771 100644 --- a/src/Avalonia.Base/Styling/PropertySetterBindingInstance.cs +++ b/src/Avalonia.Base/Styling/PropertySetterBindingInstance.cs @@ -15,7 +15,7 @@ namespace Avalonia.Styling AvaloniaProperty property, BindingMode mode, IObservable source) - : base(instance, property, source) + : base(target, instance, property, source) { _target = target; _mode = mode; diff --git a/src/Avalonia.Base/Styling/Setter.cs b/src/Avalonia.Base/Styling/Setter.cs index 093597c6a0..5586132301 100644 --- a/src/Avalonia.Base/Styling/Setter.cs +++ b/src/Avalonia.Base/Styling/Setter.cs @@ -99,7 +99,8 @@ namespace Avalonia.Styling { if (!Property!.IsDirect) { - var i = binding.Initiate(target, Property)!; + var hasDataValidation = Property.GetMetadata(target.GetType()).EnableDataValidation ?? false; + var i = binding.Initiate(target, Property, enableDataValidation: hasDataValidation)!; var mode = i.Mode; if (mode == BindingMode.Default) From 23267b7967f73135419a9fbbc18b554aafca214a Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Fri, 17 Feb 2023 12:35:59 +0100 Subject: [PATCH 058/122] Added additional failing tests. --- .../Data/BindingTests_DataValidation.cs | 104 ++++++++++++++++-- 1 file changed, 97 insertions(+), 7 deletions(-) diff --git a/tests/Avalonia.Markup.UnitTests/Data/BindingTests_DataValidation.cs b/tests/Avalonia.Markup.UnitTests/Data/BindingTests_DataValidation.cs index de2d01a2ac..b76c86e814 100644 --- a/tests/Avalonia.Markup.UnitTests/Data/BindingTests_DataValidation.cs +++ b/tests/Avalonia.Markup.UnitTests/Data/BindingTests_DataValidation.cs @@ -59,7 +59,7 @@ namespace Avalonia.Markup.UnitTests.Data Assert.Equal(200, target.GetValue(property)); Assert.IsType(target.DataValidationError); - Assert.Equal("Invalid value.", target.DataValidationError?.Message); + Assert.Equal("Invalid value: 200.", target.DataValidationError?.Message); target.SetValue(property, 10); @@ -81,7 +81,7 @@ namespace Avalonia.Markup.UnitTests.Data public class StyledPropertyTests : TestBase> { [Fact] - public void Style_Binding_Supports_Indei_Data_Validation() + public void Style_Binding_Supports_Data_Validation() { var (target, property) = CreateTarget(); var binding = new Binding(nameof(IndeiValidatingModel.Value)) @@ -113,7 +113,7 @@ namespace Avalonia.Markup.UnitTests.Data Assert.Equal(200, target.GetValue(property)); Assert.IsType(target.DataValidationError); - Assert.Equal("Invalid value.", target.DataValidationError?.Message); + Assert.Equal("Invalid value: 200.", target.DataValidationError?.Message); target.SetValue(property, 10); @@ -122,7 +122,7 @@ namespace Avalonia.Markup.UnitTests.Data } [Fact] - public void Style_With_Activator_Binding_Supports_Indei_Data_Validation() + public void Style_With_Activator_Binding_Supports_Data_Validation() { var (target, property) = CreateTarget(); var binding = new Binding(nameof(IndeiValidatingModel.Value)) @@ -156,7 +156,7 @@ namespace Avalonia.Markup.UnitTests.Data Assert.Equal(200, target.GetValue(property)); Assert.IsType(target.DataValidationError); - Assert.Equal("Invalid value.", target.DataValidationError?.Message); + Assert.Equal("Invalid value: 200.", target.DataValidationError?.Message); target.Classes.Remove("foo"); Assert.Equal(0, target.GetValue(property)); @@ -164,7 +164,7 @@ namespace Avalonia.Markup.UnitTests.Data target.Classes.Add("foo"); Assert.IsType(target.DataValidationError); - Assert.Equal("Invalid value.", target.DataValidationError?.Message); + Assert.Equal("Invalid value: 200.", target.DataValidationError?.Message); target.SetValue(property, 10); @@ -172,6 +172,96 @@ namespace Avalonia.Markup.UnitTests.Data Assert.Null(target.DataValidationError); } + [Fact] + public void Data_Validation_Can_Switch_Between_Style_And_LocalValue_Binding() + { + var (target, property) = CreateTarget(); + var model1 = new IndeiValidatingModel { Value = 200 }; + var model2 = new IndeiValidatingModel { Value = 300 }; + var binding1 = new Binding(nameof(IndeiValidatingModel.Value)); + var binding2 = new Binding(nameof(IndeiValidatingModel.Value)) { Source = model2 }; + + var root = new TestRoot + { + DataContext = model1, + Styles = + { + new Style(x => x.Is()) + { + Setters = + { + new Setter(property, binding1) + } + } + }, + Child = target, + }; + + root.LayoutManager.ExecuteInitialLayoutPass(); + + Assert.Equal(200, target.GetValue(property)); + Assert.IsType(target.DataValidationError); + Assert.Equal("Invalid value: 200.", target.DataValidationError?.Message); + + var sub = target.Bind(property, binding2); + Assert.Equal(300, target.GetValue(property)); + Assert.Equal("Invalid value: 300.", target.DataValidationError?.Message); + + sub.Dispose(); + Assert.Equal(200, target.GetValue(property)); + Assert.IsType(target.DataValidationError); + Assert.Equal("Invalid value: 200.", target.DataValidationError?.Message); + } + + + [Fact] + public void Data_Validation_Can_Switch_Between_Style_And_StyleTrigger_Binding() + { + var (target, property) = CreateTarget(); + var model1 = new IndeiValidatingModel { Value = 200 }; + var model2 = new IndeiValidatingModel { Value = 300 }; + var binding1 = new Binding(nameof(IndeiValidatingModel.Value)); + var binding2 = new Binding(nameof(IndeiValidatingModel.Value)) { Source = model2 }; + + var root = new TestRoot + { + DataContext = model1, + Styles = + { + new Style(x => x.Is()) + { + Setters = + { + new Setter(property, binding1) + } + }, + new Style(x => x.Is().Class("foo")) + { + Setters = + { + new Setter(property, binding2) + } + }, + }, + Child = target, + }; + + root.LayoutManager.ExecuteInitialLayoutPass(); + + Assert.Equal(200, target.GetValue(property)); + Assert.IsType(target.DataValidationError); + Assert.Equal("Invalid value: 200.", target.DataValidationError?.Message); + + target.Classes.Add("foo"); + Assert.Equal(300, target.GetValue(property)); + Assert.Equal("Invalid value: 300.", target.DataValidationError?.Message); + + target.Classes.Remove("foo"); + Assert.Equal(200, target.GetValue(property)); + Assert.IsType(target.DataValidationError); + Assert.Equal("Invalid value: 200.", target.DataValidationError?.Message); + } + private protected override (DataValidationTestControl, StyledProperty) CreateTarget() { return (new ValidatedStyledPropertyClass(), ValidatedStyledPropertyClass.ValueProperty); @@ -282,7 +372,7 @@ namespace Avalonia.Markup.UnitTests.Data public IEnumerable GetErrors(string? propertyName) { if (propertyName == nameof(Value) && _value > MaxValue) - yield return "Invalid value."; + yield return $"Invalid value: {_value}."; } } } From 7b2a659725f15fdf23eea73e384017ddadf89e10 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Mon, 20 Feb 2023 11:52:58 +0100 Subject: [PATCH 059/122] Added IValueEntry.GetDataValidationState. Implemented only on `BindingEntryBase` as only bindings can supply data validation state. --- .../PropertyStore/BindingEntryBase.cs | 67 +++++++++++++------ .../PropertyStore/IValueEntry.cs | 11 +++ .../PropertyStore/ImmediateValueEntry.cs | 8 +++ .../Styling/PropertySetterTemplateInstance.cs | 8 +++ src/Avalonia.Base/Styling/Setter.cs | 7 ++ 5 files changed, 82 insertions(+), 19 deletions(-) diff --git a/src/Avalonia.Base/PropertyStore/BindingEntryBase.cs b/src/Avalonia.Base/PropertyStore/BindingEntryBase.cs index 4a00abf1ce..2fe3844a74 100644 --- a/src/Avalonia.Base/PropertyStore/BindingEntryBase.cs +++ b/src/Avalonia.Base/PropertyStore/BindingEntryBase.cs @@ -14,23 +14,18 @@ namespace Avalonia.PropertyStore { private static readonly IDisposable s_creating = Disposable.Empty; private static readonly IDisposable s_creatingQuiet = Disposable.Create(() => { }); - private readonly bool _hasDataValidation; private IDisposable? _subscription; private bool _hasValue; private TValue? _value; - private TValue? _defaultValue; - private bool _isDefaultValueInitialized; + private UncommonFields? _uncommon; protected BindingEntryBase( AvaloniaObject target, ValueFrame frame, AvaloniaProperty property, IObservable> source) + : this(target, frame, property, (object)source) { - Frame = frame; - Source = source; - Property = property; - _hasDataValidation = property.GetMetadata(target.GetType()).EnableDataValidation ?? false; } protected BindingEntryBase( @@ -38,11 +33,21 @@ namespace Avalonia.PropertyStore ValueFrame frame, AvaloniaProperty property, IObservable source) + : this(target, frame, property, (object)source) + { + } + + private BindingEntryBase( + AvaloniaObject target, + ValueFrame frame, + AvaloniaProperty property, + object source) { Frame = frame; - Source = source; Property = property; - _hasDataValidation = property.GetMetadata(target.GetType()).EnableDataValidation ?? false; + Source = source; + if (property.GetMetadata(target.GetType()).EnableDataValidation == true) + _uncommon = new() { _hasDataValidation = true }; } public bool HasValue @@ -74,6 +79,20 @@ namespace Avalonia.PropertyStore return _value!; } + public bool GetDataValidationState(out BindingValueType state, out Exception? error) + { + if (_uncommon?._hasDataValidation == true) + { + state = _uncommon._dataValidationState; + error = _uncommon._dataValidationError; + return true; + } + + state = BindingValueType.Value; + error = null; + return false; + } + public void Start() => Start(true); public void OnCompleted() => BindingCompleted(); @@ -85,9 +104,6 @@ namespace Avalonia.PropertyStore { _subscription?.Dispose(); _subscription = null; - - if (_hasDataValidation) - Frame.Owner?.Owner.OnUpdateDataValidation(Property, BindingValueType.UnsetValue, null); } object? IValueEntry.GetValue() @@ -132,6 +148,12 @@ namespace Avalonia.PropertyStore if (!value.HasValue && value.Type != BindingValueType.DataValidationError) value = value.WithValue(instance.GetCachedDefaultValue()); + if (instance._uncommon?._hasDataValidation == true) + { + instance._uncommon._dataValidationState = value.Type; + instance._uncommon._dataValidationError = value.Error; + } + if (value.HasValue && (!instance._hasValue || !EqualityComparer.Default.Equals(instance._value, value.Value))) { @@ -140,9 +162,6 @@ namespace Avalonia.PropertyStore if (instance._subscription is not null && instance._subscription != s_creatingQuiet) instance.Frame.Owner?.OnBindingValueChanged(instance, instance.Frame.Priority); } - - if (instance._hasDataValidation) - owner.OnUpdateDataValidation(property, originalType, value.Error); } if (value.Type == BindingValueType.DoNothing) @@ -170,13 +189,23 @@ namespace Avalonia.PropertyStore private TValue GetCachedDefaultValue() { - if (!_isDefaultValueInitialized) + if (_uncommon?._isDefaultValueInitialized != true) { - _defaultValue = GetDefaultValue(Frame.Owner!.Owner.GetType()); - _isDefaultValueInitialized = true; + _uncommon ??= new(); + _uncommon._defaultValue = GetDefaultValue(Frame.Owner!.Owner.GetType()); + _uncommon._isDefaultValueInitialized = true; } - return _defaultValue!; + return _uncommon._defaultValue!; + } + + private class UncommonFields + { + public TValue? _defaultValue; + public bool _isDefaultValueInitialized; + public bool _hasDataValidation; + public BindingValueType _dataValidationState; + public Exception? _dataValidationError; } } } diff --git a/src/Avalonia.Base/PropertyStore/IValueEntry.cs b/src/Avalonia.Base/PropertyStore/IValueEntry.cs index 271d85f8bc..5898bef491 100644 --- a/src/Avalonia.Base/PropertyStore/IValueEntry.cs +++ b/src/Avalonia.Base/PropertyStore/IValueEntry.cs @@ -1,4 +1,5 @@ using System; +using Avalonia.Data; namespace Avalonia.PropertyStore { @@ -22,6 +23,16 @@ namespace Avalonia.PropertyStore /// object? GetValue(); + /// + /// Gets the data validation state if supported. + /// + /// The binding validation state. + /// The current binding error, if any. + /// + /// True if the entry supports data validation, otherwise false. + /// + bool GetDataValidationState(out BindingValueType state, out Exception? error); + /// /// Called when the value entry is removed from the value store. /// diff --git a/src/Avalonia.Base/PropertyStore/ImmediateValueEntry.cs b/src/Avalonia.Base/PropertyStore/ImmediateValueEntry.cs index d8a353dc70..16b96eff5d 100644 --- a/src/Avalonia.Base/PropertyStore/ImmediateValueEntry.cs +++ b/src/Avalonia.Base/PropertyStore/ImmediateValueEntry.cs @@ -1,4 +1,5 @@ using System; +using Avalonia.Data; namespace Avalonia.PropertyStore { @@ -27,5 +28,12 @@ namespace Avalonia.PropertyStore object? IValueEntry.GetValue() => _value; T IValueEntry.GetValue() => _value; + + bool IValueEntry.GetDataValidationState(out BindingValueType state, out Exception? error) + { + state = BindingValueType.Value; + error = null; + return false; + } } } diff --git a/src/Avalonia.Base/Styling/PropertySetterTemplateInstance.cs b/src/Avalonia.Base/Styling/PropertySetterTemplateInstance.cs index 7a39407ba2..7604c26244 100644 --- a/src/Avalonia.Base/Styling/PropertySetterTemplateInstance.cs +++ b/src/Avalonia.Base/Styling/PropertySetterTemplateInstance.cs @@ -1,4 +1,5 @@ using System; +using Avalonia.Data; using Avalonia.PropertyStore; namespace Avalonia.Styling @@ -19,6 +20,13 @@ namespace Avalonia.Styling public object? GetValue() => _value ??= _template.Build(); + bool IValueEntry.GetDataValidationState(out BindingValueType state, out Exception? error) + { + state = BindingValueType.Value; + error = null; + return false; + } + void IValueEntry.Unsubscribe() { } } } diff --git a/src/Avalonia.Base/Styling/Setter.cs b/src/Avalonia.Base/Styling/Setter.cs index 5586132301..9b009be6d2 100644 --- a/src/Avalonia.Base/Styling/Setter.cs +++ b/src/Avalonia.Base/Styling/Setter.cs @@ -90,6 +90,13 @@ namespace Avalonia.Styling object? IValueEntry.GetValue() => Value; + bool IValueEntry.GetDataValidationState(out BindingValueType state, out Exception? error) + { + state = BindingValueType.Value; + error = null; + return false; + } + private AvaloniaProperty EnsureProperty() { return Property ?? throw new InvalidOperationException("Setter.Property must be set."); From a899185afb4bc95d18f48561b73eb38727dd4f40 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Mon, 20 Feb 2023 11:55:58 +0100 Subject: [PATCH 060/122] Update data validation from EffectiveValue. Requires `ValueEntry`/`BaseValueEntry` to be available to `EffectiveValue`. Also change the tests to only test values coming back from the model in the style binding tests, as they don't work when setting local values currently. This will be fixed later. --- .../PropertyStore/BindingEntryBase.cs | 1 - .../PropertyStore/EffectiveValue.cs | 51 ++++++++++--------- .../PropertyStore/EffectiveValue`1.cs | 26 +++++++--- src/Avalonia.Base/PropertyStore/ValueStore.cs | 7 +-- .../Data/BindingTests_DataValidation.cs | 9 ++-- 5 files changed, 54 insertions(+), 40 deletions(-) diff --git a/src/Avalonia.Base/PropertyStore/BindingEntryBase.cs b/src/Avalonia.Base/PropertyStore/BindingEntryBase.cs index 2fe3844a74..a841803ee1 100644 --- a/src/Avalonia.Base/PropertyStore/BindingEntryBase.cs +++ b/src/Avalonia.Base/PropertyStore/BindingEntryBase.cs @@ -3,7 +3,6 @@ using System.Collections.Generic; using Avalonia.Reactive; using Avalonia.Data; using Avalonia.Threading; -using static Avalonia.Rendering.Composition.Animations.PropertySetSnapshot; namespace Avalonia.PropertyStore { diff --git a/src/Avalonia.Base/PropertyStore/EffectiveValue.cs b/src/Avalonia.Base/PropertyStore/EffectiveValue.cs index 78f0ad46b7..11a4dd7893 100644 --- a/src/Avalonia.Base/PropertyStore/EffectiveValue.cs +++ b/src/Avalonia.Base/PropertyStore/EffectiveValue.cs @@ -11,9 +11,6 @@ namespace Avalonia.PropertyStore /// internal abstract class EffectiveValue { - private IValueEntry? _valueEntry; - private IValueEntry? _baseValueEntry; - /// /// Gets the current effective value as a boxed value. /// @@ -29,6 +26,16 @@ namespace Avalonia.PropertyStore /// public BindingPriority BasePriority { get; protected set; } + /// + /// Gets the active value entry for the current effective value. + /// + public IValueEntry? ValueEntry { get; private set; } + + /// + /// Gets the active value entry for the current base value. + /// + public IValueEntry? BaseValueEntry { get; private set; } + /// /// Gets a value indicating whether the was overridden by a call to /// . @@ -63,14 +70,14 @@ namespace Avalonia.PropertyStore { if (Priority == BindingPriority.Unset) { - _valueEntry?.Unsubscribe(); - _valueEntry = null; + ValueEntry?.Unsubscribe(); + ValueEntry = null; } if (BasePriority == BindingPriority.Unset) { - _baseValueEntry?.Unsubscribe(); - _baseValueEntry = null; + BaseValueEntry?.Unsubscribe(); + BaseValueEntry = null; } } @@ -135,40 +142,34 @@ namespace Avalonia.PropertyStore // value, then the current entry becomes our base entry. if (Priority > BindingPriority.LocalValue && Priority < BindingPriority.Inherited) { - Debug.Assert(_valueEntry is not null); - _baseValueEntry = _valueEntry; - _valueEntry = null; + Debug.Assert(ValueEntry is not null); + BaseValueEntry = ValueEntry; + ValueEntry = null; } - if (_valueEntry != entry) + if (ValueEntry != entry) { - _valueEntry?.Unsubscribe(); - _valueEntry = entry; + ValueEntry?.Unsubscribe(); + ValueEntry = entry; } } else if (Priority <= BindingPriority.Animation) { // We've received a non-animation value and have an active animation value, so the // new entry becomes our base entry. - if (_baseValueEntry != entry) + if (BaseValueEntry != entry) { - _baseValueEntry?.Unsubscribe(); - _baseValueEntry = entry; + BaseValueEntry?.Unsubscribe(); + BaseValueEntry = entry; } } - else if (_valueEntry != entry) + else if (ValueEntry != entry) { // Both the current value and the new value are non-animation values, so the new // entry replaces the existing entry. - _valueEntry?.Unsubscribe(); - _valueEntry = entry; + ValueEntry?.Unsubscribe(); + ValueEntry = entry; } } - - protected void UnsubscribeValueEntries() - { - _valueEntry?.Unsubscribe(); - _baseValueEntry?.Unsubscribe(); - } } } diff --git a/src/Avalonia.Base/PropertyStore/EffectiveValue`1.cs b/src/Avalonia.Base/PropertyStore/EffectiveValue`1.cs index c469034f9b..0788b39459 100644 --- a/src/Avalonia.Base/PropertyStore/EffectiveValue`1.cs +++ b/src/Avalonia.Base/PropertyStore/EffectiveValue`1.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using Avalonia.Data; +using static Avalonia.Rendering.Composition.Animations.PropertySetSnapshot; namespace Avalonia.PropertyStore { @@ -61,6 +62,12 @@ namespace Avalonia.PropertyStore UpdateValueEntry(value, priority); SetAndRaiseCore(owner, (StyledProperty)value.Property, GetValue(value), priority, false); + + if (priority > BindingPriority.LocalValue && + value.GetDataValidationState(out var state, out var error)) + { + owner.Owner.OnUpdateDataValidation(value.Property, state, error); + } } public void SetLocalValueAndRaise( @@ -128,12 +135,10 @@ namespace Avalonia.PropertyStore public override void DisposeAndRaiseUnset(ValueStore owner, AvaloniaProperty property) { - UnsubscribeValueEntries(); - DisposeAndRaiseUnset(owner, (StyledProperty)property); - } + ValueEntry?.Unsubscribe(); + BaseValueEntry?.Unsubscribe(); - public void DisposeAndRaiseUnset(ValueStore owner, StyledProperty property) - { + var p = (StyledProperty)property; BindingPriority priority; T oldValue; @@ -150,9 +155,16 @@ namespace Avalonia.PropertyStore if (!EqualityComparer.Default.Equals(oldValue, Value)) { - owner.Owner.RaisePropertyChanged(property, Value, oldValue, priority, true); + owner.Owner.RaisePropertyChanged(p, Value, oldValue, priority, true); if (property.Inherits) - owner.OnInheritedEffectiveValueDisposed(property, Value); + owner.OnInheritedEffectiveValueDisposed(p, Value); + } + + if (ValueEntry?.GetDataValidationState(out _, out _) ?? + BaseValueEntry?.GetDataValidationState(out _, out _) ?? + false) + { + owner.Owner.OnUpdateDataValidation(p, BindingValueType.UnsetValue, null); } } diff --git a/src/Avalonia.Base/PropertyStore/ValueStore.cs b/src/Avalonia.Base/PropertyStore/ValueStore.cs index 0a5084466f..0887f11ec9 100644 --- a/src/Avalonia.Base/PropertyStore/ValueStore.cs +++ b/src/Avalonia.Base/PropertyStore/ValueStore.cs @@ -838,8 +838,6 @@ namespace Avalonia.PropertyStore break; } - current?.EndReevaluation(); - if (current?.Priority == BindingPriority.Unset) { if (current.BasePriority == BindingPriority.Unset) @@ -852,6 +850,8 @@ namespace Avalonia.PropertyStore current.RemoveAnimationAndRaise(this, property); } } + + current?.EndReevaluation(); } finally { @@ -923,7 +923,6 @@ namespace Avalonia.PropertyStore for (var i = _effectiveValues.Count - 1; i >= 0; --i) { _effectiveValues.GetKeyValue(i, out var key, out var e); - e.EndReevaluation(); if (e.Priority == BindingPriority.Unset) { @@ -933,6 +932,8 @@ namespace Avalonia.PropertyStore if (i > _effectiveValues.Count) break; } + + e.EndReevaluation(); } } finally diff --git a/tests/Avalonia.Markup.UnitTests/Data/BindingTests_DataValidation.cs b/tests/Avalonia.Markup.UnitTests/Data/BindingTests_DataValidation.cs index b76c86e814..5de703deb1 100644 --- a/tests/Avalonia.Markup.UnitTests/Data/BindingTests_DataValidation.cs +++ b/tests/Avalonia.Markup.UnitTests/Data/BindingTests_DataValidation.cs @@ -89,9 +89,10 @@ namespace Avalonia.Markup.UnitTests.Data Mode = BindingMode.TwoWay }; + var model = new IndeiValidatingModel(); var root = new TestRoot { - DataContext = new IndeiValidatingModel(), + DataContext = model, Styles = { new Style(x => x.Is()) @@ -109,13 +110,13 @@ namespace Avalonia.Markup.UnitTests.Data Assert.Equal(20, target.GetValue(property)); - target.SetValue(property, 200); + model.Value = 200; Assert.Equal(200, target.GetValue(property)); Assert.IsType(target.DataValidationError); Assert.Equal("Invalid value: 200.", target.DataValidationError?.Message); - target.SetValue(property, 10); + model.Value = 10; Assert.Equal(10, target.GetValue(property)); Assert.Null(target.DataValidationError); @@ -166,7 +167,7 @@ namespace Avalonia.Markup.UnitTests.Data Assert.IsType(target.DataValidationError); Assert.Equal("Invalid value: 200.", target.DataValidationError?.Message); - target.SetValue(property, 10); + model.Value = 10; Assert.Equal(10, target.GetValue(property)); Assert.Null(target.DataValidationError); From f5caa6105188203e5ae789cd12efd7d20caa7c61 Mon Sep 17 00:00:00 2001 From: Benedikt Stebner Date: Mon, 20 Feb 2023 18:10:23 +0100 Subject: [PATCH 061/122] [SKIA] UseOpacitySaveLayer feature switch (#9964) * [SKIA] Introduce UseOpacitySaveLayer feature switch * Only maintain _currentOpacity when OpacitySaveLayer is disabled --- src/Avalonia.Base/Media/DrawingContext.cs | 5 ++- src/Avalonia.Base/Media/DrawingGroup.cs | 8 ++-- .../Media/ImmediateDrawingContext.cs | 5 ++- .../Platform/IDrawingContextImpl.cs | 2 +- .../Drawing/CompositionDrawingContext.cs | 6 +-- .../Composition/Server/DrawingContextProxy.cs | 4 +- .../Server/ServerCompositionVisual.cs | 13 +++--- .../Rendering/ImmediateRenderer.cs | 2 +- .../Rendering/SceneGraph/OpacityNode.cs | 11 +++-- .../HeadlessPlatformRenderInterface.cs | 2 +- src/Skia/Avalonia.Skia/DrawingContextImpl.cs | 45 ++++++++++++++----- src/Skia/Avalonia.Skia/SkiaOptions.cs | 8 ++++ .../Media/DrawingContextImpl.cs | 5 ++- .../NullDrawingContextImpl.cs | 2 +- .../Controls/CustomRenderTests.cs | 2 +- .../Avalonia.RenderTests/Media/BitmapTests.cs | 2 +- 16 files changed, 81 insertions(+), 41 deletions(-) diff --git a/src/Avalonia.Base/Media/DrawingContext.cs b/src/Avalonia.Base/Media/DrawingContext.cs index 622181dba0..a37fa6fd32 100644 --- a/src/Avalonia.Base/Media/DrawingContext.cs +++ b/src/Avalonia.Base/Media/DrawingContext.cs @@ -361,11 +361,12 @@ namespace Avalonia.Media /// Pushes an opacity value. /// /// The opacity. + /// The bounds. /// A disposable used to undo the opacity. - public PushedState PushOpacity(double opacity) + public PushedState PushOpacity(double opacity, Rect bounds) //TODO: Eliminate platform-specific push opacity call { - PlatformImpl.PushOpacity(opacity); + PlatformImpl.PushOpacity(opacity, bounds); return new PushedState(this, PushedState.PushedStateType.Opacity); } diff --git a/src/Avalonia.Base/Media/DrawingGroup.cs b/src/Avalonia.Base/Media/DrawingGroup.cs index b7abda2c61..7b02649b6c 100644 --- a/src/Avalonia.Base/Media/DrawingGroup.cs +++ b/src/Avalonia.Base/Media/DrawingGroup.cs @@ -74,10 +74,12 @@ namespace Avalonia.Media public override void Draw(DrawingContext context) { + var bounds = GetBounds(); + using (context.PushPreTransform(Transform?.Value ?? Matrix.Identity)) - using (context.PushOpacity(Opacity)) + using (context.PushOpacity(Opacity, bounds)) using (ClipGeometry != null ? context.PushGeometryClip(ClipGeometry) : default) - using (OpacityMask != null ? context.PushOpacityMask(OpacityMask, GetBounds()) : default) + using (OpacityMask != null ? context.PushOpacityMask(OpacityMask, bounds) : default) { foreach (var drawing in Children) { @@ -284,7 +286,7 @@ namespace Avalonia.Media throw new NotImplementedException(); } - public void PushOpacity(double opacity) + public void PushOpacity(double opacity, Rect bounds) { throw new NotImplementedException(); } diff --git a/src/Avalonia.Base/Media/ImmediateDrawingContext.cs b/src/Avalonia.Base/Media/ImmediateDrawingContext.cs index 7d9534c414..2564d89bac 100644 --- a/src/Avalonia.Base/Media/ImmediateDrawingContext.cs +++ b/src/Avalonia.Base/Media/ImmediateDrawingContext.cs @@ -281,11 +281,12 @@ namespace Avalonia.Media /// Pushes an opacity value. /// /// The opacity. + /// The bounds. /// A disposable used to undo the opacity. - public PushedState PushOpacity(double opacity) + public PushedState PushOpacity(double opacity, Rect bounds) //TODO: Eliminate platform-specific push opacity call { - PlatformImpl.PushOpacity(opacity); + PlatformImpl.PushOpacity(opacity, bounds); return new PushedState(this, PushedState.PushedStateType.Opacity); } diff --git a/src/Avalonia.Base/Platform/IDrawingContextImpl.cs b/src/Avalonia.Base/Platform/IDrawingContextImpl.cs index 8509067cd0..8962bc1586 100644 --- a/src/Avalonia.Base/Platform/IDrawingContextImpl.cs +++ b/src/Avalonia.Base/Platform/IDrawingContextImpl.cs @@ -128,7 +128,7 @@ namespace Avalonia.Platform /// Pushes an opacity value. /// /// The opacity. - void PushOpacity(double opacity); + void PushOpacity(double opacity, Rect bounds); /// /// Pops the latest pushed opacity value. diff --git a/src/Avalonia.Base/Rendering/Composition/Drawing/CompositionDrawingContext.cs b/src/Avalonia.Base/Rendering/Composition/Drawing/CompositionDrawingContext.cs index b75d080cfd..6b380608fe 100644 --- a/src/Avalonia.Base/Rendering/Composition/Drawing/CompositionDrawingContext.cs +++ b/src/Avalonia.Base/Rendering/Composition/Drawing/CompositionDrawingContext.cs @@ -313,13 +313,13 @@ internal class CompositionDrawingContext : IDrawingContextImpl, IDrawingContextW } /// - public void PushOpacity(double opacity) + public void PushOpacity(double opacity, Rect bounds) { var next = NextDrawAs(); - if (next == null || !next.Item.Equals(opacity)) + if (next == null || !next.Item.Equals(opacity, bounds)) { - Add(new OpacityNode(opacity)); + Add(new OpacityNode(opacity, bounds)); } else { diff --git a/src/Avalonia.Base/Rendering/Composition/Server/DrawingContextProxy.cs b/src/Avalonia.Base/Rendering/Composition/Server/DrawingContextProxy.cs index 50df8bd32b..08e506536f 100644 --- a/src/Avalonia.Base/Rendering/Composition/Server/DrawingContextProxy.cs +++ b/src/Avalonia.Base/Rendering/Composition/Server/DrawingContextProxy.cs @@ -111,9 +111,9 @@ internal class CompositorDrawingContextProxy : IDrawingContextImpl, IDrawingCont _impl.PopClip(); } - public void PushOpacity(double opacity) + public void PushOpacity(double opacity, Rect bounds) { - _impl.PushOpacity(opacity); + _impl.PushOpacity(opacity, bounds); } public void PopOpacity() diff --git a/src/Avalonia.Base/Rendering/Composition/Server/ServerCompositionVisual.cs b/src/Avalonia.Base/Rendering/Composition/Server/ServerCompositionVisual.cs index 98be861afa..f9492d0015 100644 --- a/src/Avalonia.Base/Rendering/Composition/Server/ServerCompositionVisual.cs +++ b/src/Avalonia.Base/Rendering/Composition/Server/ServerCompositionVisual.cs @@ -41,9 +41,9 @@ namespace Avalonia.Rendering.Composition.Server return; Root!.RenderedVisuals++; - - if (Opacity != 1) - canvas.PushOpacity(Opacity); + + var boundsRect = new Rect(new Size(Size.X, Size.Y)); + if (AdornedVisual != null) { canvas.PostTransform = Matrix.Identity; @@ -54,15 +54,16 @@ namespace Avalonia.Rendering.Composition.Server var transform = GlobalTransformMatrix; canvas.PostTransform = MatrixUtils.ToMatrix(transform); canvas.Transform = Matrix.Identity; - - var boundsRect = new Rect(new Size(Size.X, Size.Y)); + + if (Opacity != 1) + canvas.PushOpacity(Opacity, boundsRect); if (ClipToBounds && !HandlesClipToBounds) canvas.PushClip(Root!.SnapToDevicePixels(boundsRect)); if (Clip != null) canvas.PushGeometryClip(Clip); if(OpacityMaskBrush != null) canvas.PushOpacityMask(OpacityMaskBrush, boundsRect); - + RenderCore(canvas, currentTransformedClip); // Hack to force invalidation of SKMatrix diff --git a/src/Avalonia.Base/Rendering/ImmediateRenderer.cs b/src/Avalonia.Base/Rendering/ImmediateRenderer.cs index 8e5dc38317..09d2d55ce3 100644 --- a/src/Avalonia.Base/Rendering/ImmediateRenderer.cs +++ b/src/Avalonia.Base/Rendering/ImmediateRenderer.cs @@ -117,7 +117,7 @@ namespace Avalonia.Rendering } using (context.PushPostTransform(m)) - using (context.PushOpacity(opacity)) + using (context.PushOpacity(opacity, bounds)) using (clipToBounds #pragma warning disable CS0618 // Type or member is obsolete ? visual is IVisualWithRoundRectClip roundClipVisual diff --git a/src/Avalonia.Base/Rendering/SceneGraph/OpacityNode.cs b/src/Avalonia.Base/Rendering/SceneGraph/OpacityNode.cs index e41e639067..f76a055934 100644 --- a/src/Avalonia.Base/Rendering/SceneGraph/OpacityNode.cs +++ b/src/Avalonia.Base/Rendering/SceneGraph/OpacityNode.cs @@ -12,9 +12,11 @@ namespace Avalonia.Rendering.SceneGraph /// opacity push. /// /// The opacity to push. - public OpacityNode(double opacity) + /// The bounds. + public OpacityNode(double opacity, Rect bounds) { Opacity = opacity; + Bounds = bounds; } /// @@ -26,7 +28,7 @@ namespace Avalonia.Rendering.SceneGraph } /// - public Rect Bounds => default; + public Rect Bounds { get; } /// /// Gets the opacity to be pushed or null if the operation represents a pop. @@ -40,19 +42,20 @@ namespace Avalonia.Rendering.SceneGraph /// Determines if this draw operation equals another. /// /// The opacity of the other draw operation. + /// The bounds of the other draw operation. /// True if the draw operations are the same, otherwise false. /// /// The properties of the other draw operation are passed in as arguments to prevent /// allocation of a not-yet-constructed draw operation object. /// - public bool Equals(double? opacity) => Opacity == opacity; + public bool Equals(double? opacity, Rect bounds) => Opacity == opacity && Bounds == bounds; /// public void Render(IDrawingContextImpl context) { if (Opacity.HasValue) { - context.PushOpacity(Opacity.Value); + context.PushOpacity(Opacity.Value, Bounds); } else { diff --git a/src/Avalonia.Headless/HeadlessPlatformRenderInterface.cs b/src/Avalonia.Headless/HeadlessPlatformRenderInterface.cs index 68466fe381..5b84ceef7f 100644 --- a/src/Avalonia.Headless/HeadlessPlatformRenderInterface.cs +++ b/src/Avalonia.Headless/HeadlessPlatformRenderInterface.cs @@ -392,7 +392,7 @@ namespace Avalonia.Headless } - public void PushOpacity(double opacity) + public void PushOpacity(double opacity, Rect rect) { } diff --git a/src/Skia/Avalonia.Skia/DrawingContextImpl.cs b/src/Skia/Avalonia.Skia/DrawingContextImpl.cs index 82d902cbd0..969f0b5e2a 100644 --- a/src/Skia/Avalonia.Skia/DrawingContextImpl.cs +++ b/src/Skia/Avalonia.Skia/DrawingContextImpl.cs @@ -40,6 +40,7 @@ namespace Avalonia.Skia private static SKShader? s_acrylicNoiseShader; private readonly ISkiaGpuRenderSession? _session; private bool _leased; + private bool _useOpacitySaveLayer; /// /// Context create info. @@ -158,6 +159,13 @@ namespace Avalonia.Skia } Transform = Matrix.Identity; + + var options = AvaloniaLocator.Current.GetService(); + + if(options != null) + { + _useOpacitySaveLayer = options.UseOpacitySaveLayer; + } } /// @@ -188,7 +196,7 @@ namespace Avalonia.Skia var d = destRect.ToSKRect(); var paint = SKPaintCache.Shared.Get(); - paint.Color = new SKColor(255, 255, 255, (byte)(255 * opacity * _currentOpacity)); + paint.Color = new SKColor(255, 255, 255, (byte)(255 * opacity * (_useOpacitySaveLayer ? 1 : _currentOpacity))); paint.FilterQuality = bitmapInterpolationMode.ToSKFilterQuality(); paint.BlendMode = _currentBlendingMode.ToSKBlendMode(); @@ -373,7 +381,7 @@ namespace Avalonia.Skia { if (!boxShadow.IsDefault && !boxShadow.IsInset) { - using (var shadow = BoxShadowFilter.Create(_boxShadowPaint, boxShadow, _currentOpacity)) + using (var shadow = BoxShadowFilter.Create(_boxShadowPaint, boxShadow, _useOpacitySaveLayer ? 1 : _currentOpacity)) { var spread = (float)boxShadow.Spread; if (boxShadow.IsInset) @@ -430,7 +438,7 @@ namespace Avalonia.Skia { if (!boxShadow.IsDefault && boxShadow.IsInset) { - using (var shadow = BoxShadowFilter.Create(_boxShadowPaint, boxShadow, _currentOpacity)) + using (var shadow = BoxShadowFilter.Create(_boxShadowPaint, boxShadow, _useOpacitySaveLayer ? 1 : _currentOpacity)) { var spread = (float)boxShadow.Spread; var offsetX = (float)boxShadow.OffsetX; @@ -568,18 +576,35 @@ namespace Avalonia.Skia } /// - public void PushOpacity(double opacity) + public void PushOpacity(double opacity, Rect bounds) { CheckLease(); - _opacityStack.Push(_currentOpacity); - _currentOpacity *= opacity; + + if(_useOpacitySaveLayer) + { + var rect = bounds.ToSKRect(); + Canvas.SaveLayer(rect, new SKPaint { ColorF = new SKColorF(0, 0, 0, (float)opacity)}); + } + else + { + _opacityStack.Push(_currentOpacity); + _currentOpacity *= opacity; + } } /// public void PopOpacity() { CheckLease(); - _currentOpacity = _opacityStack.Pop(); + + if(_useOpacitySaveLayer) + { + Canvas.Restore(); + } + else + { + _currentOpacity = _opacityStack.Pop(); + } } /// @@ -657,7 +682,7 @@ namespace Avalonia.Skia var paint = SKPaintCache.Shared.Get(); - Canvas.SaveLayer(paint); + Canvas.SaveLayer(bounds.ToSKRect(), paint); _maskStack.Push(CreatePaint(paint, mask, bounds.Size)); } @@ -1021,8 +1046,6 @@ namespace Avalonia.Skia paint.IsAntialias = true; - double opacity = _currentOpacity; - var tintOpacity = material.BackgroundSource == AcrylicBackgroundSource.Digger ? material.TintOpacity : 1; @@ -1071,7 +1094,7 @@ namespace Avalonia.Skia paint.IsAntialias = true; - double opacity = brush.Opacity * _currentOpacity; + double opacity = brush.Opacity * (_useOpacitySaveLayer ? 1 :_currentOpacity); if (brush is ISolidColorBrush solid) { diff --git a/src/Skia/Avalonia.Skia/SkiaOptions.cs b/src/Skia/Avalonia.Skia/SkiaOptions.cs index b3c3056a58..84ad547d6c 100644 --- a/src/Skia/Avalonia.Skia/SkiaOptions.cs +++ b/src/Skia/Avalonia.Skia/SkiaOptions.cs @@ -16,5 +16,13 @@ namespace Avalonia /// Setting this to null will give you the default Skia value. /// public long? MaxGpuResourceSizeBytes { get; set; } = 1024 * 600 * 4 * 12; // ~28mb 12x 1024 x 600 textures. + + /// + /// Use Skia's SaveLayer API to handling opacity. + /// + /// + /// Enabling this might have performance implications. + /// + public bool UseOpacitySaveLayer { get; set; } = false; } } diff --git a/src/Windows/Avalonia.Direct2D1/Media/DrawingContextImpl.cs b/src/Windows/Avalonia.Direct2D1/Media/DrawingContextImpl.cs index 3506abc63b..0dd9c155bb 100644 --- a/src/Windows/Avalonia.Direct2D1/Media/DrawingContextImpl.cs +++ b/src/Windows/Avalonia.Direct2D1/Media/DrawingContextImpl.cs @@ -441,14 +441,15 @@ namespace Avalonia.Direct2D1.Media /// Pushes an opacity value. /// /// The opacity. + /// The bounds. /// A disposable used to undo the opacity. - public void PushOpacity(double opacity) + public void PushOpacity(double opacity, Rect bounds) { if (opacity < 1) { var parameters = new LayerParameters { - ContentBounds = PrimitiveExtensions.RectangleInfinite, + ContentBounds = bounds.ToDirect2D(), MaskTransform = PrimitiveExtensions.Matrix3x2Identity, Opacity = (float)opacity, }; diff --git a/tests/Avalonia.Benchmarks/NullDrawingContextImpl.cs b/tests/Avalonia.Benchmarks/NullDrawingContextImpl.cs index e83b2d7598..40d504a0ac 100644 --- a/tests/Avalonia.Benchmarks/NullDrawingContextImpl.cs +++ b/tests/Avalonia.Benchmarks/NullDrawingContextImpl.cs @@ -65,7 +65,7 @@ namespace Avalonia.Benchmarks { } - public void PushOpacity(double opacity) + public void PushOpacity(double opacity, Rect bounds) { } diff --git a/tests/Avalonia.RenderTests/Controls/CustomRenderTests.cs b/tests/Avalonia.RenderTests/Controls/CustomRenderTests.cs index 14f5b7c6c7..1199184d14 100644 --- a/tests/Avalonia.RenderTests/Controls/CustomRenderTests.cs +++ b/tests/Avalonia.RenderTests/Controls/CustomRenderTests.cs @@ -141,7 +141,7 @@ namespace Avalonia.Direct2D1.RenderTests.Controls new Rect(control.Bounds.Size), 4); - using (context.PushOpacity(0.5)) + using (context.PushOpacity(0.5, control.Bounds)) { context.FillRectangle( Brushes.Blue, diff --git a/tests/Avalonia.RenderTests/Media/BitmapTests.cs b/tests/Avalonia.RenderTests/Media/BitmapTests.cs index c63a876d81..05e160dca8 100644 --- a/tests/Avalonia.RenderTests/Media/BitmapTests.cs +++ b/tests/Avalonia.RenderTests/Media/BitmapTests.cs @@ -79,7 +79,7 @@ namespace Avalonia.Direct2D1.RenderTests.Media using (var ctx = target.CreateDrawingContext(null)) { ctx.Clear(Colors.Transparent); - ctx.PushOpacity(0.8); + ctx.PushOpacity(0.8, new Rect(0, 0, 80, 80)); ctx.DrawRectangle(Brushes.Chartreuse, null, new Rect(0, 0, 20, 100)); ctx.DrawRectangle(Brushes.Crimson, null, new Rect(20, 0, 20, 100)); ctx.DrawRectangle(Brushes.Gold,null, new Rect(40, 0, 20, 100)); From c8cbbc2c259359c1990423735022121c637543fe Mon Sep 17 00:00:00 2001 From: affederaffe <68356204+affederaffe@users.noreply.github.com> Date: Mon, 20 Feb 2023 18:30:13 +0100 Subject: [PATCH 062/122] Use SG NuGet package --- NuGet.Config | 1 - src/Avalonia.FreeDesktop/Avalonia.FreeDesktop.csproj | 6 +----- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/NuGet.Config b/NuGet.Config index 7a9dd7993c..7d2bd8abd2 100644 --- a/NuGet.Config +++ b/NuGet.Config @@ -6,6 +6,5 @@ - diff --git a/src/Avalonia.FreeDesktop/Avalonia.FreeDesktop.csproj b/src/Avalonia.FreeDesktop/Avalonia.FreeDesktop.csproj index c9ef74617d..51af5862cf 100644 --- a/src/Avalonia.FreeDesktop/Avalonia.FreeDesktop.csproj +++ b/src/Avalonia.FreeDesktop/Avalonia.FreeDesktop.csproj @@ -13,16 +13,12 @@ - - - - + - From 8bcb5250d2d08566a143ba6f379456a72fba5a0d Mon Sep 17 00:00:00 2001 From: affederaffe <68356204+affederaffe@users.noreply.github.com> Date: Mon, 20 Feb 2023 18:31:12 +0100 Subject: [PATCH 063/122] Remove git submodule --- .gitmodules | 3 --- 1 file changed, 3 deletions(-) diff --git a/.gitmodules b/.gitmodules index c2b5fc3f26..032bc879cc 100644 --- a/.gitmodules +++ b/.gitmodules @@ -7,6 +7,3 @@ [submodule "nukebuild/il-repack"] path = nukebuild/il-repack url = https://github.com/Gillibald/il-repack -[submodule "src/tools/Tmds.DBus.SourceGenerator"] - path = src/tools/Tmds.DBus.SourceGenerator - url = https://github.com/affederaffe/Tmds.DBus.SourceGenerator From f68d17dcf69ebc68ce6343851148dbadb9274372 Mon Sep 17 00:00:00 2001 From: affederaffe <68356204+affederaffe@users.noreply.github.com> Date: Mon, 20 Feb 2023 18:38:27 +0100 Subject: [PATCH 064/122] Remove git submodule the second --- src/tools/Tmds.DBus.SourceGenerator | 1 - 1 file changed, 1 deletion(-) delete mode 160000 src/tools/Tmds.DBus.SourceGenerator diff --git a/src/tools/Tmds.DBus.SourceGenerator b/src/tools/Tmds.DBus.SourceGenerator deleted file mode 160000 index 3e76fbf5be..0000000000 --- a/src/tools/Tmds.DBus.SourceGenerator +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 3e76fbf5be03b8e1360e74b8878c541d9de808cd From e77bc1960a1304558eaebe14146cd514820d798d Mon Sep 17 00:00:00 2001 From: affederaffe <68356204+affederaffe@users.noreply.github.com> Date: Tue, 21 Feb 2023 00:53:28 +0100 Subject: [PATCH 065/122] Remove submodule leftovers --- Avalonia.sln | 9 --------- 1 file changed, 9 deletions(-) diff --git a/Avalonia.sln b/Avalonia.sln index d6a1fb236c..56847bae31 100644 --- a/Avalonia.sln +++ b/Avalonia.sln @@ -231,9 +231,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ControlCatalog.Browser.Blaz EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ReactiveUIDemo", "samples\ReactiveUIDemo\ReactiveUIDemo.csproj", "{75C47156-C5D8-44BC-A5A7-E8657C2248D6}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tmds.DBus.SourceGenerator", "src\tools\Tmds.DBus.SourceGenerator\Tmds.DBus.SourceGenerator\Tmds.DBus.SourceGenerator.csproj", "{5E9C0032-E460-4BC1-BCC7-6448F34DD679}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GpuInterop", "samples\GpuInterop\GpuInterop.csproj", "{C810060E-3809-4B74-A125-F11533AF9C1B}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GpuInterop", "samples\GpuInterop\GpuInterop.csproj", "{C810060E-3809-4B74-A125-F11533AF9C1B}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Analyzers", "src\tools\PublicAnalyzers\Avalonia.Analyzers.csproj", "{C692FE73-43DB-49CE-87FC-F03ED61F25C9}" @@ -558,11 +555,6 @@ Global {75C47156-C5D8-44BC-A5A7-E8657C2248D6}.Debug|Any CPU.Build.0 = Debug|Any CPU {75C47156-C5D8-44BC-A5A7-E8657C2248D6}.Release|Any CPU.ActiveCfg = Release|Any CPU {75C47156-C5D8-44BC-A5A7-E8657C2248D6}.Release|Any CPU.Build.0 = Release|Any CPU - {5E9C0032-E460-4BC1-BCC7-6448F34DD679}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5E9C0032-E460-4BC1-BCC7-6448F34DD679}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5E9C0032-E460-4BC1-BCC7-6448F34DD679}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5E9C0032-E460-4BC1-BCC7-6448F34DD679}.Release|Any CPU.Build.0 = Release|Any CPU - {C810060E-3809-4B74-A125-F11533AF9C1B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C810060E-3809-4B74-A125-F11533AF9C1B}.Debug|Any CPU.Build.0 = Debug|Any CPU {C810060E-3809-4B74-A125-F11533AF9C1B}.Release|Any CPU.ActiveCfg = Release|Any CPU {C810060E-3809-4B74-A125-F11533AF9C1B}.Release|Any CPU.Build.0 = Release|Any CPU @@ -642,7 +634,6 @@ Global {15B93A4C-1B46-43F6-B534-7B25B6E99932} = {9B9E3891-2366-4253-A952-D08BCEB71098} {90B08091-9BBD-4362-B712-E9F2CC62B218} = {9B9E3891-2366-4253-A952-D08BCEB71098} {75C47156-C5D8-44BC-A5A7-E8657C2248D6} = {9B9E3891-2366-4253-A952-D08BCEB71098} - {5E9C0032-E460-4BC1-BCC7-6448F34DD679} = {4ED8B739-6F4E-4CD4-B993-545E6B5CE637} {C810060E-3809-4B74-A125-F11533AF9C1B} = {9B9E3891-2366-4253-A952-D08BCEB71098} {F4E36AA8-814E-4704-BC07-291F70F45193} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B} {C692FE73-43DB-49CE-87FC-F03ED61F25C9} = {4ED8B739-6F4E-4CD4-B993-545E6B5CE637} From 1b2936c0fcd1083df9b423bf34398e4d93cc5c82 Mon Sep 17 00:00:00 2001 From: Max Katz Date: Mon, 20 Feb 2023 21:56:08 -0500 Subject: [PATCH 066/122] Add DefaultFocusAdornerProperty and set for themes --- src/Avalonia.Controls/Control.cs | 2 +- .../Primitives/AdornerLayer.cs | 15 ++++++++++++ .../{FocusAdorner.xaml => AdornerLayer.xaml} | 23 ++++++++----------- .../Controls/FluentControls.xaml | 2 +- .../Controls/AdornerLayer.xaml | 13 +++++++++++ .../Controls/FocusAdorner.xaml | 11 --------- .../Controls/SimpleControls.xaml | 2 +- 7 files changed, 41 insertions(+), 27 deletions(-) rename src/Avalonia.Themes.Fluent/Controls/{FocusAdorner.xaml => AdornerLayer.xaml} (50%) create mode 100644 src/Avalonia.Themes.Simple/Controls/AdornerLayer.xaml delete mode 100644 src/Avalonia.Themes.Simple/Controls/FocusAdorner.xaml diff --git a/src/Avalonia.Controls/Control.cs b/src/Avalonia.Controls/Control.cs index ab7c9948c4..642021ad56 100644 --- a/src/Avalonia.Controls/Control.cs +++ b/src/Avalonia.Controls/Control.cs @@ -403,7 +403,7 @@ namespace Avalonia.Controls { if (_focusAdorner == null) { - var template = GetValue(FocusAdornerProperty); + var template = GetValue(FocusAdornerProperty) ?? adornerLayer.DefaultFocusAdorner; if (template != null) { diff --git a/src/Avalonia.Controls/Primitives/AdornerLayer.cs b/src/Avalonia.Controls/Primitives/AdornerLayer.cs index 611d57a980..1e07036919 100644 --- a/src/Avalonia.Controls/Primitives/AdornerLayer.cs +++ b/src/Avalonia.Controls/Primitives/AdornerLayer.cs @@ -34,6 +34,12 @@ namespace Avalonia.Controls.Primitives public static readonly AttachedProperty AdornerProperty = AvaloniaProperty.RegisterAttached("Adorner"); + /// + /// Defines the property. + /// + public static readonly StyledProperty?> DefaultFocusAdornerProperty = + AvaloniaProperty.Register?>(nameof(DefaultFocusAdorner)); + private static readonly AttachedProperty s_adornedElementInfoProperty = AvaloniaProperty.RegisterAttached("AdornedElementInfo"); @@ -86,6 +92,15 @@ namespace Avalonia.Controls.Primitives visual.SetValue(AdornerProperty, adorner); } + /// + /// Gets or sets the default control's focus adorner. + /// + public ITemplate? DefaultFocusAdorner + { + get => GetValue(DefaultFocusAdornerProperty); + set => SetValue(DefaultFocusAdornerProperty, value); + } + private static void AdornerChanged(AvaloniaPropertyChangedEventArgs e) { if (e.Sender is Visual visual) diff --git a/src/Avalonia.Themes.Fluent/Controls/FocusAdorner.xaml b/src/Avalonia.Themes.Fluent/Controls/AdornerLayer.xaml similarity index 50% rename from src/Avalonia.Themes.Fluent/Controls/FocusAdorner.xaml rename to src/Avalonia.Themes.Fluent/Controls/AdornerLayer.xaml index c3f489da80..c4b91b4822 100644 --- a/src/Avalonia.Themes.Fluent/Controls/FocusAdorner.xaml +++ b/src/Avalonia.Themes.Fluent/Controls/AdornerLayer.xaml @@ -1,14 +1,11 @@ - - - 0 - 2 - 1 - - - - - + + diff --git a/src/Avalonia.Themes.Fluent/Controls/FluentControls.xaml b/src/Avalonia.Themes.Fluent/Controls/FluentControls.xaml index 532b0cff1b..31b0a01b21 100644 --- a/src/Avalonia.Themes.Fluent/Controls/FluentControls.xaml +++ b/src/Avalonia.Themes.Fluent/Controls/FluentControls.xaml @@ -4,6 +4,7 @@ + @@ -74,6 +75,5 @@ - diff --git a/src/Avalonia.Themes.Simple/Controls/AdornerLayer.xaml b/src/Avalonia.Themes.Simple/Controls/AdornerLayer.xaml new file mode 100644 index 0000000000..1f3acb07dc --- /dev/null +++ b/src/Avalonia.Themes.Simple/Controls/AdornerLayer.xaml @@ -0,0 +1,13 @@ + + + + + + + + + diff --git a/src/Avalonia.Themes.Simple/Controls/FocusAdorner.xaml b/src/Avalonia.Themes.Simple/Controls/FocusAdorner.xaml deleted file mode 100644 index f1d5f5f2ac..0000000000 --- a/src/Avalonia.Themes.Simple/Controls/FocusAdorner.xaml +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/src/Avalonia.Themes.Simple/Controls/SimpleControls.xaml b/src/Avalonia.Themes.Simple/Controls/SimpleControls.xaml index 479db9ed09..dc533488c9 100644 --- a/src/Avalonia.Themes.Simple/Controls/SimpleControls.xaml +++ b/src/Avalonia.Themes.Simple/Controls/SimpleControls.xaml @@ -3,6 +3,7 @@ + @@ -72,6 +73,5 @@ - From cbcff7bf1d9d8bf8c3311029077b84c11fe2536a Mon Sep 17 00:00:00 2001 From: Max Katz Date: Tue, 21 Feb 2023 03:19:25 -0500 Subject: [PATCH 067/122] Use popup theme instead of target, as it is correct --- src/Avalonia.Controls/Primitives/Popup.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Avalonia.Controls/Primitives/Popup.cs b/src/Avalonia.Controls/Primitives/Popup.cs index 142db71761..9d443d9289 100644 --- a/src/Avalonia.Controls/Primitives/Popup.cs +++ b/src/Avalonia.Controls/Primitives/Popup.cs @@ -392,7 +392,7 @@ namespace Avalonia.Controls.Primitives topLevelPopup .Bind( ThemeVariantScope.ActualThemeVariantProperty, - placementTarget.GetBindingObservable(ThemeVariantScope.ActualThemeVariantProperty)) + this.GetBindingObservable(ThemeVariantScope.ActualThemeVariantProperty)) .DisposeWith(handlerCleanup); } From 74ef92a4a8f5575472d02c8ffed01774d118cd2e Mon Sep 17 00:00:00 2001 From: Max Katz Date: Tue, 21 Feb 2023 03:19:41 -0500 Subject: [PATCH 068/122] Make StyledElement use theme variants again --- src/Avalonia.Base/StyledElement.cs | 21 ++++++++++++++++++++- src/Avalonia.Base/Styling/ThemeVariant.cs | 15 +++++++++++++++ src/Avalonia.Controls/Control.cs | 18 +----------------- src/Avalonia.Controls/ThemeVariantScope.cs | 16 ++++------------ 4 files changed, 40 insertions(+), 30 deletions(-) diff --git a/src/Avalonia.Base/StyledElement.cs b/src/Avalonia.Base/StyledElement.cs index 405b874fed..94af8385a8 100644 --- a/src/Avalonia.Base/StyledElement.cs +++ b/src/Avalonia.Base/StyledElement.cs @@ -28,7 +28,7 @@ namespace Avalonia public class StyledElement : Animatable, IDataContextProvider, ILogical, - IResourceHost, + IThemeVariantHost, IStyleHost, IStyleable, ISetLogicalParent, @@ -143,6 +143,9 @@ namespace Avalonia /// public event EventHandler? ResourcesChanged; + /// + public event EventHandler? ActualThemeVariantChanged; + /// /// Gets or sets the name of the styled element. /// @@ -299,6 +302,9 @@ namespace Avalonia /// public StyledElement? Parent { get; private set; } + /// + public ThemeVariant ActualThemeVariant => GetValue(ThemeVariant.ActualThemeVariantProperty); + /// /// Gets the styled element's logical parent. /// @@ -618,7 +624,20 @@ namespace Avalonia base.OnPropertyChanged(change); if (change.Property == ThemeProperty) + { OnControlThemeChanged(); + } + else if (change.Property == ThemeVariant.RequestedThemeVariantProperty) + { + if (change.GetNewValue() is {} themeVariant && themeVariant != ThemeVariant.Default) + SetValue(ThemeVariant.ActualThemeVariantProperty, themeVariant); + else + ClearValue(ThemeVariant.ActualThemeVariantProperty); + } + else if (change.Property == ThemeVariant.ActualThemeVariantProperty) + { + ActualThemeVariantChanged?.Invoke(this, EventArgs.Empty); + } } private protected virtual void OnControlThemeChanged() diff --git a/src/Avalonia.Base/Styling/ThemeVariant.cs b/src/Avalonia.Base/Styling/ThemeVariant.cs index 5a6a8785a5..389136b0f5 100644 --- a/src/Avalonia.Base/Styling/ThemeVariant.cs +++ b/src/Avalonia.Base/Styling/ThemeVariant.cs @@ -11,6 +11,21 @@ namespace Avalonia.Styling; [TypeConverter(typeof(ThemeVariantTypeConverter))] public sealed record ThemeVariant { + /// + /// Defines the ActualThemeVariant property. + /// + internal static readonly StyledProperty ActualThemeVariantProperty = + AvaloniaProperty.Register( + "ActualThemeVariant", + inherits: true); + + /// + /// Defines the RequestedThemeVariant property. + /// + internal static readonly StyledProperty RequestedThemeVariantProperty = + AvaloniaProperty.Register( + "RequestedThemeVariant", defaultValue: Default); + /// /// Creates a new instance of the /// diff --git a/src/Avalonia.Controls/Control.cs b/src/Avalonia.Controls/Control.cs index c9e8f0d045..dbece12575 100644 --- a/src/Avalonia.Controls/Control.cs +++ b/src/Avalonia.Controls/Control.cs @@ -24,7 +24,7 @@ namespace Avalonia.Controls /// - A property to allow user-defined data to be attached to the control. /// - and other context menu related members. /// - public class Control : InputElement, IDataTemplateHost, INamed, IVisualBrushInitialize, ISetterValue, IThemeVariantHost + public class Control : InputElement, IDataTemplateHost, INamed, IVisualBrushInitialize, ISetterValue { /// /// Defines the property. @@ -162,11 +162,6 @@ namespace Avalonia.Controls set => SetValue(TagProperty, value); } - /// - public ThemeVariant ActualThemeVariant => GetValue(ThemeVariantScope.ActualThemeVariantProperty); - - public event EventHandler? ActualThemeVariantChanged; - /// /// Occurs when the user has completed a context input gesture, such as a right-click. /// @@ -531,17 +526,6 @@ namespace Avalonia.Controls RaiseEvent(sizeChangedEventArgs); } } - else if (change.Property == ThemeVariantScope.RequestedThemeVariantProperty) - { - if (change.GetNewValue() is {} themeVariant && themeVariant != ThemeVariant.Default) - SetValue(ThemeVariantScope.ActualThemeVariantProperty, themeVariant); - else - ClearValue(ThemeVariantScope.ActualThemeVariantProperty); - } - else if (change.Property == ThemeVariantScope.ActualThemeVariantProperty) - { - ActualThemeVariantChanged?.Invoke(this, EventArgs.Empty); - } } } } diff --git a/src/Avalonia.Controls/ThemeVariantScope.cs b/src/Avalonia.Controls/ThemeVariantScope.cs index b29f1ee56e..f5ad4b2f94 100644 --- a/src/Avalonia.Controls/ThemeVariantScope.cs +++ b/src/Avalonia.Controls/ThemeVariantScope.cs @@ -7,21 +7,13 @@ namespace Avalonia.Controls /// public class ThemeVariantScope : Decorator { - /// - /// Defines the property. - /// + /// public static readonly StyledProperty ActualThemeVariantProperty = - AvaloniaProperty.Register( - nameof(ActualThemeVariant), - inherits: true); + ThemeVariant.ActualThemeVariantProperty.AddOwner(); - /// - /// Defines the property. - /// + /// public static readonly StyledProperty RequestedThemeVariantProperty = - AvaloniaProperty.Register( - nameof(RequestedThemeVariant), - defaultValue: ThemeVariant.Default); + ThemeVariant.RequestedThemeVariantProperty.AddOwner(); /// /// Gets or sets the UI theme variant that is used by the control (and its child elements) for resource determination. From 40ab20146f6950e21b073b6446b8f3f6e9ad6f1c Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Tue, 21 Feb 2023 11:42:45 +0100 Subject: [PATCH 069/122] Clear data validation when binding completes. --- .../PropertyStore/DirectBindingObserver.cs | 11 ++++- .../DirectUntypedBindingObserver.cs | 5 +++ .../LocalValueBindingObserverBase.cs | 9 +++- .../AvaloniaObjectTests_DataValidation.cs | 42 +++++++++++++++++++ .../Data/BindingTests_DataValidation.cs | 24 +++++++++++ 5 files changed, 89 insertions(+), 2 deletions(-) diff --git a/src/Avalonia.Base/PropertyStore/DirectBindingObserver.cs b/src/Avalonia.Base/PropertyStore/DirectBindingObserver.cs index cbe2435953..4bf98e3f7b 100644 --- a/src/Avalonia.Base/PropertyStore/DirectBindingObserver.cs +++ b/src/Avalonia.Base/PropertyStore/DirectBindingObserver.cs @@ -9,11 +9,13 @@ namespace Avalonia.PropertyStore IDisposable { private readonly ValueStore _owner; + private readonly bool _hasDataValidation; private IDisposable? _subscription; public DirectBindingObserver(ValueStore owner, DirectPropertyBase property) { _owner = owner; + _hasDataValidation = property.GetMetadata(owner.Owner.GetType())?.EnableDataValidation ?? false; Property = property; } @@ -33,10 +35,17 @@ namespace Avalonia.PropertyStore { _subscription?.Dispose(); _subscription = null; + OnCompleted(); + } + + public void OnCompleted() + { _owner.OnLocalValueBindingCompleted(Property, this); + + if (_hasDataValidation) + _owner.Owner.OnUpdateDataValidation(Property, BindingValueType.UnsetValue, null); } - public void OnCompleted() => _owner.OnLocalValueBindingCompleted(Property, this); public void OnError(Exception error) => OnCompleted(); public void OnNext(T value) diff --git a/src/Avalonia.Base/PropertyStore/DirectUntypedBindingObserver.cs b/src/Avalonia.Base/PropertyStore/DirectUntypedBindingObserver.cs index 5d60b44bef..1cf108df9b 100644 --- a/src/Avalonia.Base/PropertyStore/DirectUntypedBindingObserver.cs +++ b/src/Avalonia.Base/PropertyStore/DirectUntypedBindingObserver.cs @@ -10,11 +10,13 @@ namespace Avalonia.PropertyStore IDisposable { private readonly ValueStore _owner; + private readonly bool _hasDataValidation; private IDisposable? _subscription; public DirectUntypedBindingObserver(ValueStore owner, DirectPropertyBase property) { _owner = owner; + _hasDataValidation = property.GetMetadata(owner.Owner.GetType())?.EnableDataValidation ?? false; Property = property; } @@ -30,6 +32,9 @@ namespace Avalonia.PropertyStore _subscription?.Dispose(); _subscription = null; _owner.OnLocalValueBindingCompleted(Property, this); + + if (_hasDataValidation) + _owner.Owner.OnUpdateDataValidation(Property, BindingValueType.UnsetValue, null); } public void OnCompleted() => _owner.OnLocalValueBindingCompleted(Property, this); diff --git a/src/Avalonia.Base/PropertyStore/LocalValueBindingObserverBase.cs b/src/Avalonia.Base/PropertyStore/LocalValueBindingObserverBase.cs index 85de33d9e0..5d920cf88d 100644 --- a/src/Avalonia.Base/PropertyStore/LocalValueBindingObserverBase.cs +++ b/src/Avalonia.Base/PropertyStore/LocalValueBindingObserverBase.cs @@ -37,10 +37,17 @@ namespace Avalonia.PropertyStore { _subscription?.Dispose(); _subscription = null; + OnCompleted(); + } + + public void OnCompleted() + { + if (_hasDataValidation) + _owner.Owner.OnUpdateDataValidation(Property, BindingValueType.UnsetValue, null); + _owner.OnLocalValueBindingCompleted(Property, this); } - public void OnCompleted() => _owner.OnLocalValueBindingCompleted(Property, this); public void OnError(Exception error) => OnCompleted(); public void OnNext(T value) diff --git a/tests/Avalonia.Base.UnitTests/AvaloniaObjectTests_DataValidation.cs b/tests/Avalonia.Base.UnitTests/AvaloniaObjectTests_DataValidation.cs index 71eb521f9d..12cd39046b 100644 --- a/tests/Avalonia.Base.UnitTests/AvaloniaObjectTests_DataValidation.cs +++ b/tests/Avalonia.Base.UnitTests/AvaloniaObjectTests_DataValidation.cs @@ -92,6 +92,48 @@ namespace Avalonia.Base.UnitTests Assert.Equal(1, target.Notifications.Count); } + [Fact] + public void Disposing_Binding_Subscription_Clears_DataValidation() + { + var target = new Class1(); + var source = new Subject>(); + var property = GetProperty(); + var error = new Exception(); + var sub = target.Bind(property, source); + + source.OnNext(6); + source.OnNext(BindingValue.DataValidationError(error)); + sub.Dispose(); + + Assert.Equal(new Notification[] + { + new(BindingValueType.Value, 6, null), + new(BindingValueType.DataValidationError, 6, error), + new(BindingValueType.UnsetValue, 6, null), + }, target.Notifications); + } + + [Fact] + public void Completing_Binding_Clears_DataValidation() + { + var target = new Class1(); + var source = new Subject>(); + var property = GetProperty(); + var error = new Exception(); + + target.Bind(property, source); + source.OnNext(6); + source.OnNext(BindingValue.DataValidationError(error)); + source.OnCompleted(); + + Assert.Equal(new Notification[] + { + new(BindingValueType.Value, 6, null), + new(BindingValueType.DataValidationError, 6, error), + new(BindingValueType.UnsetValue, 6, null), + }, target.Notifications); + } + protected abstract T GetProperty(); protected abstract T GetNonValidatedProperty(); } diff --git a/tests/Avalonia.Markup.UnitTests/Data/BindingTests_DataValidation.cs b/tests/Avalonia.Markup.UnitTests/Data/BindingTests_DataValidation.cs index 5de703deb1..35e9370c4c 100644 --- a/tests/Avalonia.Markup.UnitTests/Data/BindingTests_DataValidation.cs +++ b/tests/Avalonia.Markup.UnitTests/Data/BindingTests_DataValidation.cs @@ -67,6 +67,30 @@ namespace Avalonia.Markup.UnitTests.Data Assert.Null(target.DataValidationError); } + [Fact] + public void Disposing_Binding_Subscription_Clears_DataValidation() + { + var (target, property) = CreateTarget(); + var binding = new Binding(nameof(ExceptionValidatingModel.Value)) + { + Mode = BindingMode.TwoWay + }; + + target.DataContext = new IndeiValidatingModel + { + Value = 200, + }; + + var sub = target.Bind(property, binding); + + Assert.Equal(200, target.GetValue(property)); + Assert.IsType(target.DataValidationError); + + sub.Dispose(); + + Assert.Null(target.DataValidationError); + } + private protected abstract (DataValidationTestControl, T) CreateTarget(); } From dce799ba10c5fdb60d053927821e19e013146fe6 Mon Sep 17 00:00:00 2001 From: Daniil Pavliuchyk Date: Tue, 21 Feb 2023 17:10:50 +0200 Subject: [PATCH 070/122] RadioButtonAutomationPeer WIP --- .../Peers/RadioButtonAutomationPeer.cs | 70 +++++++++++++++++++ .../SelectionItemPatternIdentifiers.cs | 16 +++++ src/Avalonia.Controls/RadioButton.cs | 7 ++ .../Automation/AutomationNode.cs | 2 + 4 files changed, 95 insertions(+) create mode 100644 src/Avalonia.Controls/Automation/Peers/RadioButtonAutomationPeer.cs create mode 100644 src/Avalonia.Controls/Automation/SelectionItemPatternIdentifiers.cs diff --git a/src/Avalonia.Controls/Automation/Peers/RadioButtonAutomationPeer.cs b/src/Avalonia.Controls/Automation/Peers/RadioButtonAutomationPeer.cs new file mode 100644 index 0000000000..ea4e37adba --- /dev/null +++ b/src/Avalonia.Controls/Automation/Peers/RadioButtonAutomationPeer.cs @@ -0,0 +1,70 @@ +using System; +using Avalonia.Automation; +using Avalonia.Automation.Peers; +using Avalonia.Automation.Provider; + +namespace Avalonia.Controls.Automation.Peers +{ + public class RadioButtonAutomationPeer : ToggleButtonAutomationPeer, ISelectionItemProvider + { + public RadioButtonAutomationPeer(RadioButton owner) : base(owner) + { + owner.PropertyChanged += (a, e) => + { + if (e.Property == RadioButton.IsCheckedProperty) + { + RaiseToggleStatePropertyChangedEvent((bool)e.OldValue, (bool)e.NewValue); + } + + }; + } + + override protected string GetClassNameCore() + { + return "RadioButton"; + } + + override protected AutomationControlType GetAutomationControlTypeCore() + { + return AutomationControlType.RadioButton; + } + + public bool IsSelected => ((RadioButton)Owner).IsChecked == true; + + public ISelectionProvider? SelectionContainer + { + get + { + return null; + } + } + + public void AddToSelection() + { + if (((RadioButton)Owner).IsChecked != true) + throw new InvalidOperationException("Operation cannot be performed"); + } + + public void RemoveFromSelection() + { + if (((RadioButton)Owner).IsChecked == true) + throw new InvalidOperationException("Operation cannot be performed"); + } + + public void Select() + { + if (!IsEnabled()) + throw new InvalidOperationException("Element is disabled thus it cannot be selected"); + + ((RadioButton)Owner).IsChecked = true; + } + + internal virtual void RaiseToggleStatePropertyChangedEvent(bool? oldValue, bool? newValue) + { + RaisePropertyChangedEvent( + SelectionItemPatternIdentifiers.IsSelectedProperty, + oldValue == true, + newValue == true); + } + } +} diff --git a/src/Avalonia.Controls/Automation/SelectionItemPatternIdentifiers.cs b/src/Avalonia.Controls/Automation/SelectionItemPatternIdentifiers.cs new file mode 100644 index 0000000000..418ae1f1fe --- /dev/null +++ b/src/Avalonia.Controls/Automation/SelectionItemPatternIdentifiers.cs @@ -0,0 +1,16 @@ +using Avalonia.Automation.Provider; + +namespace Avalonia.Automation +{ + /// + /// Contains values used as identifiers by . + /// + public static class SelectionItemPatternIdentifiers + { + /// Indicates the element is currently selected. + public static AutomationProperty IsSelectedProperty { get; } = new AutomationProperty(); + + /// Indicates the element is currently selected. + public static AutomationProperty SelectionContainerProperty { get; } = new AutomationProperty(); + } +} diff --git a/src/Avalonia.Controls/RadioButton.cs b/src/Avalonia.Controls/RadioButton.cs index b87be34a9d..87772aced7 100644 --- a/src/Avalonia.Controls/RadioButton.cs +++ b/src/Avalonia.Controls/RadioButton.cs @@ -2,6 +2,8 @@ using System; using System.Collections.Generic; using System.Linq; using System.Runtime.CompilerServices; +using Avalonia.Automation.Peers; +using Avalonia.Controls.Automation.Peers; using Avalonia.Controls.Primitives; using Avalonia.Reactive; using Avalonia.Rendering; @@ -147,6 +149,11 @@ namespace Avalonia.Controls } } + protected override AutomationPeer OnCreateAutomationPeer() + { + return new RadioButtonAutomationPeer(this); + } + private void SetGroupName(string? newGroupName) { var oldGroupName = GroupName; diff --git a/src/Windows/Avalonia.Win32/Automation/AutomationNode.cs b/src/Windows/Avalonia.Win32/Automation/AutomationNode.cs index 48ebd4068e..3eeedc4b5d 100644 --- a/src/Windows/Avalonia.Win32/Automation/AutomationNode.cs +++ b/src/Windows/Avalonia.Win32/Automation/AutomationNode.cs @@ -41,6 +41,8 @@ namespace Avalonia.Win32.Automation { SelectionPatternIdentifiers.CanSelectMultipleProperty, UiaPropertyId.SelectionCanSelectMultiple }, { SelectionPatternIdentifiers.IsSelectionRequiredProperty, UiaPropertyId.SelectionIsSelectionRequired }, { SelectionPatternIdentifiers.SelectionProperty, UiaPropertyId.SelectionSelection }, + { SelectionItemPatternIdentifiers.IsSelectedProperty, UiaPropertyId.SelectionItemIsSelected }, + { SelectionItemPatternIdentifiers.SelectionContainerProperty, UiaPropertyId.SelectionItemSelectionContainer } }; private static ConditionalWeakTable s_nodes = new(); From 3096a2d1590ec2a3172b0b79f0faa737d225f59c Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Tue, 21 Feb 2023 23:08:29 +0100 Subject: [PATCH 071/122] Add failing integration test. For the following scenario: - Open a child window of main window - Open a modal window as a child of main window - Close main window - First child window should remain in front of main window --- .../WindowTests_MacOS.cs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/tests/Avalonia.IntegrationTests.Appium/WindowTests_MacOS.cs b/tests/Avalonia.IntegrationTests.Appium/WindowTests_MacOS.cs index 0839cbf183..55812d8df7 100644 --- a/tests/Avalonia.IntegrationTests.Appium/WindowTests_MacOS.cs +++ b/tests/Avalonia.IntegrationTests.Appium/WindowTests_MacOS.cs @@ -150,6 +150,18 @@ namespace Avalonia.IntegrationTests.Appium windowState = mainWindow.FindElementByAccessibilityId("MainWindowState"); Assert.Equal("Normal", windowState.Text); } + + [PlatformFact(TestPlatforms.MacOS)] + public void WindowOrder_Owned_Dialog_Stays_InFront_Of_Parent_After_Modal_Closed() + { + using (OpenWindow(new PixelSize(200, 300), ShowWindowMode.Owned, WindowStartupLocation.Manual)) + { + OpenWindow(null, ShowWindowMode.Modal, WindowStartupLocation.Manual).Dispose(); + + var secondaryWindowIndex = GetWindowOrder("SecondaryWindow"); + Assert.Equal(1, secondaryWindowIndex); + } + } [PlatformFact(TestPlatforms.MacOS)] public void Does_Not_Switch_Space_From_FullScreen_To_Main_Desktop_When_FullScreen_Window_Clicked() From e77c79b2aa4885ba3e8d4f96efd1e4ed6e48ad03 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Tue, 21 Feb 2023 23:11:10 +0100 Subject: [PATCH 072/122] Enforce window order after a delay. Sometimes, after `windowDidBecomeKey` is called and the window order is enforced via `BringToFront`, the window that became key is then moved to the front, breaking window order. Given that we're already invalidating the shadow by scheduling it on the dispatcher, use this opportunity to also enforce the window order again. --- native/Avalonia.Native/src/OSX/AvnWindow.mm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/native/Avalonia.Native/src/OSX/AvnWindow.mm b/native/Avalonia.Native/src/OSX/AvnWindow.mm index 23abf1d53f..3a03abf211 100644 --- a/native/Avalonia.Native/src/OSX/AvnWindow.mm +++ b/native/Avalonia.Native/src/OSX/AvnWindow.mm @@ -292,12 +292,13 @@ { if (_parent == nullptr) return; - + _parent->BringToFront(); dispatch_async(dispatch_get_main_queue(), ^{ @try { - [self invalidateShadow]; + [self invalidateShadow]; + self->_parent->BringToFront(); } @finally{ } From 5e13280b42ebeb41c64fdd38610c088203c0bb2c Mon Sep 17 00:00:00 2001 From: Daniil Pavliuchyk Date: Wed, 22 Feb 2023 13:41:19 +0200 Subject: [PATCH 073/122] Fix warning --- .../Automation/Peers/RadioButtonAutomationPeer.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Avalonia.Controls/Automation/Peers/RadioButtonAutomationPeer.cs b/src/Avalonia.Controls/Automation/Peers/RadioButtonAutomationPeer.cs index ea4e37adba..b7b7adfd52 100644 --- a/src/Avalonia.Controls/Automation/Peers/RadioButtonAutomationPeer.cs +++ b/src/Avalonia.Controls/Automation/Peers/RadioButtonAutomationPeer.cs @@ -13,7 +13,7 @@ namespace Avalonia.Controls.Automation.Peers { if (e.Property == RadioButton.IsCheckedProperty) { - RaiseToggleStatePropertyChangedEvent((bool)e.OldValue, (bool)e.NewValue); + RaiseToggleStatePropertyChangedEvent((bool?)e.OldValue, (bool?)e.NewValue); } }; From 3de50b3baa52d6c40edca1ad6037c256c98f563c Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Wed, 22 Feb 2023 13:09:17 +0000 Subject: [PATCH 074/122] if the window is closed, we cannot become the key window. --- native/Avalonia.Native/src/OSX/AvnWindow.mm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/native/Avalonia.Native/src/OSX/AvnWindow.mm b/native/Avalonia.Native/src/OSX/AvnWindow.mm index 23abf1d53f..505ff63d4b 100644 --- a/native/Avalonia.Native/src/OSX/AvnWindow.mm +++ b/native/Avalonia.Native/src/OSX/AvnWindow.mm @@ -238,7 +238,7 @@ -(BOOL)canBecomeKeyWindow { - if(_canBecomeKeyWindow) + if(_canBecomeKeyWindow && !_closed) { // If the window has a child window being shown as a dialog then don't allow it to become the key window. auto parent = dynamic_cast(_parent.getRaw()); From 8a771855db300bd73902d58d97c5822da517dc29 Mon Sep 17 00:00:00 2001 From: Daniil Pavliuchyk Date: Wed, 22 Feb 2023 15:41:30 +0200 Subject: [PATCH 075/122] Add tests --- samples/IntegrationTestApp/MainWindow.axaml | 10 ++++ .../RadioButtonTests.cs | 48 +++++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 tests/Avalonia.IntegrationTests.Appium/RadioButtonTests.cs diff --git a/samples/IntegrationTestApp/MainWindow.axaml b/samples/IntegrationTestApp/MainWindow.axaml index 353e01dca7..58e8aef1e9 100644 --- a/samples/IntegrationTestApp/MainWindow.axaml +++ b/samples/IntegrationTestApp/MainWindow.axaml @@ -56,6 +56,16 @@ + + + Sample RadioButton + + Three States: Option 1 + Three States: Option 2 + + + + Unchecked diff --git a/tests/Avalonia.IntegrationTests.Appium/RadioButtonTests.cs b/tests/Avalonia.IntegrationTests.Appium/RadioButtonTests.cs new file mode 100644 index 0000000000..5bd0a05155 --- /dev/null +++ b/tests/Avalonia.IntegrationTests.Appium/RadioButtonTests.cs @@ -0,0 +1,48 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using OpenQA.Selenium.Appium; +using Xunit; + +namespace Avalonia.IntegrationTests.Appium +{ + [Collection("Default")] + public class RadioButtonTests + { + private readonly AppiumDriver _session; + + public RadioButtonTests(TestAppFixture fixture) + { + _session = fixture.Session; + + var tabs = _session.FindElementByAccessibilityId("MainTabs"); + tabs.FindElementByName("RadioButton").Click(); + } + + + [Fact] + public void RadioButton_IsChecked_True_When_Clicked() + { + var button = _session.FindElementByAccessibilityId("BasicRadioButton"); + Assert.False(button.GetIsChecked()); + button.Click(); + Assert.True(button.GetIsChecked()); + } + + [Fact] + public void ThreeState_RadioButton_IsChecked_False_When_Other_ThreeState_RadioButton_Checked() + { + var button1 = _session.FindElementByAccessibilityId("ThreeStatesRadioButton1"); + var button2 = _session.FindElementByAccessibilityId("ThreeStatesRadioButton2"); + Assert.True(button1.GetIsChecked()); + Assert.False(button2.GetIsChecked()); + button2.Click(); + Assert.False(button1.GetIsChecked()); + Assert.True(button2.GetIsChecked()); + } + + } +} From d98467c3d87992b9d541679e3488bda282842c5e Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Wed, 22 Feb 2023 17:48:49 +0100 Subject: [PATCH 076/122] Remove TotalCountChanged. Merge it into existing `IChildIndexProvider.ChildIndexChanged` event. --- .../LogicalTree/ChildIndexChangedEventArgs.cs | 63 ++++++++++++++++--- .../LogicalTree/IChildIndexProvider.cs | 5 -- .../Styling/Activators/NthChildActivator.cs | 9 +-- .../Primitives/DataGridCellsPresenter.cs | 2 +- .../DataGridColumnHeadersPresenter.cs | 2 +- src/Avalonia.Controls/ItemsControl.cs | 11 +--- src/Avalonia.Controls/Panel.cs | 11 +--- 7 files changed, 65 insertions(+), 38 deletions(-) diff --git a/src/Avalonia.Base/LogicalTree/ChildIndexChangedEventArgs.cs b/src/Avalonia.Base/LogicalTree/ChildIndexChangedEventArgs.cs index 8f2be75e0f..6b41c1c66c 100644 --- a/src/Avalonia.Base/LogicalTree/ChildIndexChangedEventArgs.cs +++ b/src/Avalonia.Base/LogicalTree/ChildIndexChangedEventArgs.cs @@ -1,26 +1,59 @@ -#nullable enable -using System; +using System; + +#nullable enable namespace Avalonia.LogicalTree { /// - /// Event args for event. + /// Describes the action that caused a event. /// - public class ChildIndexChangedEventArgs : EventArgs + public enum ChildIndexChangedAction { - public static new ChildIndexChangedEventArgs Empty { get; } = new ChildIndexChangedEventArgs(); + /// + /// The index of a single child changed. + /// + ChildIndexChanged, - private ChildIndexChangedEventArgs() - { - Index = -1; - } + /// + /// The index of multiple children changed and all children should be re-evaluated. + /// + ChildIndexesReset, + + /// + /// The total number of children changed. + /// + TotalCountChanged, + } + /// + /// Event args for event. + /// + public class ChildIndexChangedEventArgs : EventArgs + { + /// + /// Initializes a new instance of the class with + /// an action of . + /// + /// The child whose index was changed. + /// The new index of the child. public ChildIndexChangedEventArgs(ILogical child, int index) { + Action = ChildIndexChangedAction.ChildIndexChanged; Child = child; Index = index; } + private ChildIndexChangedEventArgs(ChildIndexChangedAction action) + { + Action = action; + Index = -1; + } + + /// + /// Gets the type of change action that ocurred on the list control. + /// + public ChildIndexChangedAction Action { get; } + /// /// Gets the logical child whose index was changed or null if all children should be re-evaluated. /// @@ -30,5 +63,17 @@ namespace Avalonia.LogicalTree /// Gets the new index of or -1 if all children should be re-evaluated. /// public int Index { get; } + + /// + /// Gets an instance of the with an action of + /// . + /// + public static ChildIndexChangedEventArgs ChildIndexesReset { get; } = new(ChildIndexChangedAction.ChildIndexesReset); + + /// + /// Gets an instance of the with an action of + /// . + /// + public static ChildIndexChangedEventArgs TotalCountChanged { get; } = new(ChildIndexChangedAction.TotalCountChanged); } } diff --git a/src/Avalonia.Base/LogicalTree/IChildIndexProvider.cs b/src/Avalonia.Base/LogicalTree/IChildIndexProvider.cs index a5e191d63e..186c9527f2 100644 --- a/src/Avalonia.Base/LogicalTree/IChildIndexProvider.cs +++ b/src/Avalonia.Base/LogicalTree/IChildIndexProvider.cs @@ -28,10 +28,5 @@ namespace Avalonia.LogicalTree /// Notifies subscriber when a child's index was changed. /// event EventHandler? ChildIndexChanged; - - /// - /// Notifies subscriber when the total child count changes. - /// - event EventHandler? TotalCountChanged; } } diff --git a/src/Avalonia.Base/Styling/Activators/NthChildActivator.cs b/src/Avalonia.Base/Styling/Activators/NthChildActivator.cs index e0fa056765..8bdcec2e53 100644 --- a/src/Avalonia.Base/Styling/Activators/NthChildActivator.cs +++ b/src/Avalonia.Base/Styling/Activators/NthChildActivator.cs @@ -37,7 +37,6 @@ namespace Avalonia.Styling.Activators protected override void Initialize() { _provider.ChildIndexChanged += ChildIndexChanged; - _provider.TotalCountChanged += TotalCountChanged; } protected override void Deinitialize() @@ -48,9 +47,11 @@ namespace Avalonia.Styling.Activators private void ChildIndexChanged(object? sender, ChildIndexChangedEventArgs e) { // Run matching again if: - // 1. e.Child is null, when all children indices were changed. - // 2. Subscribed child index was changed. - if (e.Child is null || e.Child == _control) + // 1. Subscribed child index was changed + // 2. Child indexes were reset + // 3. We're a reversed (nth-last-child) selector and total count has changed + if ((e.Child == _control || e.Action == ChildIndexChangedAction.ChildIndexesReset) || + (_reversed && e.Action == ChildIndexChangedAction.TotalCountChanged)) { // We're using the _index field to pass the index of the child to EvaluateIsActive // *only* when the active state is re-evaluated via this event handler. The docs diff --git a/src/Avalonia.Controls.DataGrid/Primitives/DataGridCellsPresenter.cs b/src/Avalonia.Controls.DataGrid/Primitives/DataGridCellsPresenter.cs index 06a77f0894..f5db7c0855 100644 --- a/src/Avalonia.Controls.DataGrid/Primitives/DataGridCellsPresenter.cs +++ b/src/Avalonia.Controls.DataGrid/Primitives/DataGridCellsPresenter.cs @@ -336,7 +336,7 @@ namespace Avalonia.Controls.Primitives internal void InvalidateChildIndex() { - _childIndexChanged?.Invoke(this, ChildIndexChangedEventArgs.Empty); + _childIndexChanged?.Invoke(this, ChildIndexChangedEventArgs.ChildIndexesReset); } private bool ShouldDisplayCell(DataGridColumn column, double frozenLeftEdge, double scrollingLeftEdge) diff --git a/src/Avalonia.Controls.DataGrid/Primitives/DataGridColumnHeadersPresenter.cs b/src/Avalonia.Controls.DataGrid/Primitives/DataGridColumnHeadersPresenter.cs index f9b84793c6..fcf72385b2 100644 --- a/src/Avalonia.Controls.DataGrid/Primitives/DataGridColumnHeadersPresenter.cs +++ b/src/Avalonia.Controls.DataGrid/Primitives/DataGridColumnHeadersPresenter.cs @@ -423,7 +423,7 @@ namespace Avalonia.Controls.Primitives internal void InvalidateChildIndex() { - _childIndexChanged?.Invoke(this, ChildIndexChangedEventArgs.Empty); + _childIndexChanged?.Invoke(this, ChildIndexChangedEventArgs.ChildIndexesReset); } } } diff --git a/src/Avalonia.Controls/ItemsControl.cs b/src/Avalonia.Controls/ItemsControl.cs index 8c3c65a6a7..9483f98881 100644 --- a/src/Avalonia.Controls/ItemsControl.cs +++ b/src/Avalonia.Controls/ItemsControl.cs @@ -101,7 +101,6 @@ namespace Avalonia.Controls private int _itemCount; private ItemContainerGenerator? _itemContainerGenerator; private EventHandler? _childIndexChanged; - private EventHandler? _totalCountChanged; private IDataTemplate? _displayMemberItemTemplate; private ScrollViewer? _scrollViewer; private ItemsPresenter? _itemsPresenter; @@ -218,12 +217,6 @@ namespace Avalonia.Controls remove => _childIndexChanged -= value; } - event EventHandler? IChildIndexProvider.TotalCountChanged - { - add => _totalCountChanged += value; - remove => _totalCountChanged -= value; - } - /// public event EventHandler HorizontalSnapPointsChanged { @@ -500,7 +493,7 @@ namespace Avalonia.Controls else if (change.Property == ItemCountProperty) { UpdatePseudoClasses(change.GetNewValue()); - _totalCountChanged?.Invoke(this, EventArgs.Empty); + _childIndexChanged?.Invoke(this, ChildIndexChangedEventArgs.TotalCountChanged); } else if (change.Property == ItemContainerThemeProperty && _itemContainerGenerator is not null) { @@ -585,7 +578,7 @@ namespace Avalonia.Controls internal void RegisterItemsPresenter(ItemsPresenter presenter) { Presenter = presenter; - _childIndexChanged?.Invoke(this, ChildIndexChangedEventArgs.Empty); + _childIndexChanged?.Invoke(this, ChildIndexChangedEventArgs.ChildIndexesReset); } internal void PrepareItemContainer(Control container, object? item, int index) diff --git a/src/Avalonia.Controls/Panel.cs b/src/Avalonia.Controls/Panel.cs index 3006efb7de..10391afca2 100644 --- a/src/Avalonia.Controls/Panel.cs +++ b/src/Avalonia.Controls/Panel.cs @@ -35,7 +35,6 @@ namespace Avalonia.Controls } private EventHandler? _childIndexChanged; - private EventHandler? _totalCountChanged; /// /// Initializes a new instance of the class. @@ -67,12 +66,6 @@ namespace Avalonia.Controls remove => _childIndexChanged -= value; } - event EventHandler? IChildIndexProvider.TotalCountChanged - { - add => _totalCountChanged += value; - remove => _totalCountChanged -= value; - } - /// /// Renders the visual to a . /// @@ -161,7 +154,7 @@ namespace Avalonia.Controls throw new NotSupportedException(); } - _childIndexChanged?.Invoke(this, ChildIndexChangedEventArgs.Empty); + _childIndexChanged?.Invoke(this, ChildIndexChangedEventArgs.ChildIndexesReset); InvalidateMeasureOnChildrenChanged(); } @@ -173,7 +166,7 @@ namespace Avalonia.Controls private void ChildrenPropertyChanged(object? sender, PropertyChangedEventArgs e) { if (e.PropertyName == nameof(Children.Count) || e.PropertyName is null) - _totalCountChanged?.Invoke(this, EventArgs.Empty); + _childIndexChanged?.Invoke(this, ChildIndexChangedEventArgs.TotalCountChanged); } private static void AffectsParentArrangeInvalidate(AvaloniaPropertyChangedEventArgs e) From 87dc9bb1b4d37c9c8435c2b0e5bc48606c502d85 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Wed, 22 Feb 2023 18:23:16 +0100 Subject: [PATCH 077/122] Only subscribe to event when necessary. --- src/Avalonia.Controls/Panel.cs | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/Avalonia.Controls/Panel.cs b/src/Avalonia.Controls/Panel.cs index 10391afca2..fa18ee468c 100644 --- a/src/Avalonia.Controls/Panel.cs +++ b/src/Avalonia.Controls/Panel.cs @@ -42,7 +42,6 @@ namespace Avalonia.Controls public Panel() { Children.CollectionChanged += ChildrenChanged; - Children.PropertyChanged += ChildrenPropertyChanged; } /// @@ -62,8 +61,19 @@ namespace Avalonia.Controls event EventHandler? IChildIndexProvider.ChildIndexChanged { - add => _childIndexChanged += value; - remove => _childIndexChanged -= value; + add + { + if (_childIndexChanged is null) + Children.PropertyChanged += ChildrenPropertyChanged; + _childIndexChanged += value; + } + + remove + { + _childIndexChanged -= value; + if (_childIndexChanged is null) + Children.PropertyChanged -= ChildrenPropertyChanged; + } } /// From c837c1005165413ae49f0fde2f71d5f4ed52d223 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Wed, 22 Feb 2023 22:23:17 +0100 Subject: [PATCH 078/122] Don't call BringToFront on closed window. --- native/Avalonia.Native/src/OSX/AvnWindow.mm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/native/Avalonia.Native/src/OSX/AvnWindow.mm b/native/Avalonia.Native/src/OSX/AvnWindow.mm index 80a0d3e66f..b1fb915e04 100644 --- a/native/Avalonia.Native/src/OSX/AvnWindow.mm +++ b/native/Avalonia.Native/src/OSX/AvnWindow.mm @@ -298,7 +298,8 @@ dispatch_async(dispatch_get_main_queue(), ^{ @try { [self invalidateShadow]; - self->_parent->BringToFront(); + if (self->_parent != nullptr) + self->_parent->BringToFront(); } @finally{ } From ae1fcfed51546b0bd38d67ee9619d3f4b739131e Mon Sep 17 00:00:00 2001 From: Nikita Tsukanov Date: Thu, 23 Feb 2023 11:07:51 +0300 Subject: [PATCH 079/122] Refactored DrawingContext and VisualBrush, added DrawingBrush (#10419) Refactored DrawingContext and VisualBrush, added DrawingBrush --- samples/RenderDemo/Pages/CustomSkiaPage.cs | 20 +- .../RenderDemo/Pages/PathMeasurementPage.cs | 5 +- .../Pages/RenderTargetBitmapPage.cs | 4 +- src/Avalonia.Base/Media/DrawingBrush.cs | 66 +++ src/Avalonia.Base/Media/DrawingContext.cs | 403 +++++++++--------- src/Avalonia.Base/Media/DrawingGroup.cs | 139 ++---- src/Avalonia.Base/Media/DrawingImage.cs | 2 +- src/Avalonia.Base/Media/ISceneBrush.cs | 31 ++ src/Avalonia.Base/Media/IVisualBrush.cs | 16 - src/Avalonia.Base/Media/Imaging/Bitmap.cs | 2 +- .../Media/Imaging/RenderTargetBitmap.cs | 18 +- .../Media/ImmediateDrawingContext.cs | 6 +- .../Media/Immutable/ImmutableVisualBrush.cs | 66 --- .../Media/PlatformDrawingContext.cs | 112 +++++ src/Avalonia.Base/Media/VisualBrush.cs | 24 +- src/Avalonia.Base/Platform/IRenderTarget.cs | 6 +- .../Composition/CompositingRenderer.cs | 2 +- .../Drawing/CompositionDrawList.cs | 37 +- .../CompositionDrawListSceneBrushContent.cs | 37 ++ .../Drawing/CompositionDrawingContext.cs | 183 ++++---- .../Composition/Server/DrawingContextProxy.cs | 30 +- .../Server/ServerCompositionTarget.cs | 7 +- .../Rendering/IVisualBrushRenderer.cs | 29 -- .../Rendering/ImmediateRenderer.cs | 37 +- .../SceneGraph/BrushDrawOperation.cs | 15 +- .../Rendering/SceneGraph/ClipNode.cs | 4 +- .../SceneGraph/CustomDrawOperation.cs | 39 +- .../Rendering/SceneGraph/DrawOperation.cs | 10 + .../Rendering/SceneGraph/EllipseNode.cs | 37 +- .../SceneGraph/ExperimentalAcrylicNode.cs | 24 +- .../Rendering/SceneGraph/GeometryClipNode.cs | 4 +- .../Rendering/SceneGraph/GeometryNode.cs | 30 +- .../Rendering/SceneGraph/GlyphRunNode.cs | 33 +- .../Rendering/SceneGraph/IDrawOperation.cs | 10 +- .../Rendering/SceneGraph/ImageNode.cs | 21 +- .../Rendering/SceneGraph/LineNode.cs | 19 +- .../Rendering/SceneGraph/OpacityMaskNode.cs | 41 +- .../Rendering/SceneGraph/RectangleNode.cs | 52 +-- .../Threading/ThreadSafeObjectPool.cs | 7 +- .../ExperimentalAcrylicBorder.cs | 2 +- .../Utils/BorderRenderHelper.cs | 2 +- .../HeadlessPlatformRenderInterface.cs | 4 +- src/Avalonia.X11/X11CursorFactory.cs | 2 +- src/Avalonia.X11/X11IconLoader.cs | 2 +- src/Skia/Avalonia.Skia/DrawingContextImpl.cs | 136 ++++-- .../Avalonia.Skia/FramebufferRenderTarget.cs | 3 +- .../Avalonia.Skia/Gpu/SkiaGpuRenderTarget.cs | 3 +- .../Helpers/DrawingContextHelper.cs | 3 +- .../Helpers/ImageSavingHelper.cs | 10 + src/Skia/Avalonia.Skia/PictureRenderTarget.cs | 55 +++ src/Skia/Avalonia.Skia/SurfaceRenderTarget.cs | 3 +- .../ExternalRenderTarget.cs | 4 +- .../FramebufferShimRenderTarget.cs | 8 +- .../Media/DrawingContextImpl.cs | 32 +- .../Media/ImageBrushImpl.cs | 2 +- .../Imaging/D2DRenderTargetBitmapImpl.cs | 4 +- .../Imaging/WicRenderTargetBitmapImpl.cs | 8 +- .../Avalonia.Direct2D1/RenderTarget.cs | 4 +- .../SwapChainRenderTarget.cs | 4 +- .../RenderTests_Culling.cs | 2 +- .../SceneGraph/DrawOperationTests.cs | 4 +- .../Rendering/SceneGraph/EllipseNodeTests.cs | 4 +- .../Rendering/ShapeRendering.cs | 2 +- .../Avalonia.RenderTests/Media/BitmapTests.cs | 4 +- .../Media/TileBrushTests.cs | 94 ++++ .../MockPlatformRenderInterface.cs | 6 +- tests/Avalonia.UnitTests/TestRoot.cs | 4 +- .../DrawingBrushIsProperlyTiled.expected.png | Bin 0 -> 4340 bytes .../DrawingBrushIsProperlyTiled.expected.png | Bin 0 -> 3083 bytes ...rawingBrushIsProperlyUpscaled.expected.png | Bin 0 -> 5008 bytes 70 files changed, 1094 insertions(+), 945 deletions(-) create mode 100644 src/Avalonia.Base/Media/DrawingBrush.cs create mode 100644 src/Avalonia.Base/Media/ISceneBrush.cs delete mode 100644 src/Avalonia.Base/Media/IVisualBrush.cs delete mode 100644 src/Avalonia.Base/Media/Immutable/ImmutableVisualBrush.cs create mode 100644 src/Avalonia.Base/Media/PlatformDrawingContext.cs create mode 100644 src/Avalonia.Base/Rendering/Composition/Drawing/CompositionDrawListSceneBrushContent.cs delete mode 100644 src/Avalonia.Base/Rendering/IVisualBrushRenderer.cs create mode 100644 src/Skia/Avalonia.Skia/PictureRenderTarget.cs create mode 100644 tests/Avalonia.RenderTests/Media/TileBrushTests.cs create mode 100644 tests/TestFiles/Direct2D1/Media/DrawingBrush/DrawingBrushIsProperlyTiled.expected.png create mode 100644 tests/TestFiles/Skia/Media/DrawingBrush/DrawingBrushIsProperlyTiled.expected.png create mode 100644 tests/TestFiles/Skia/Media/DrawingBrush/DrawingBrushIsProperlyUpscaled.expected.png diff --git a/samples/RenderDemo/Pages/CustomSkiaPage.cs b/samples/RenderDemo/Pages/CustomSkiaPage.cs index bf27747154..4a3e20ff5b 100644 --- a/samples/RenderDemo/Pages/CustomSkiaPage.cs +++ b/samples/RenderDemo/Pages/CustomSkiaPage.cs @@ -1,6 +1,7 @@ using System; using System.Diagnostics; using System.Globalization; +using System.Linq; using Avalonia; using Avalonia.Controls; using Avalonia.Media; @@ -8,22 +9,27 @@ using Avalonia.Platform; using Avalonia.Rendering.SceneGraph; using Avalonia.Skia; using Avalonia.Threading; +using Avalonia.Utilities; using SkiaSharp; namespace RenderDemo.Pages { public class CustomSkiaPage : Control { + private readonly GlyphRun _noSkia; public CustomSkiaPage() { ClipToBounds = true; + var text = "Current rendering API is not Skia"; + var glyphs = text.Select(ch => Typeface.Default.GlyphTypeface.GetGlyph(ch)).ToArray(); + _noSkia = new GlyphRun(Typeface.Default.GlyphTypeface, 12, text.AsMemory(), glyphs); } class CustomDrawOp : ICustomDrawOperation { - private readonly FormattedText _noSkia; + private readonly GlyphRun _noSkia; - public CustomDrawOp(Rect bounds, FormattedText noSkia) + public CustomDrawOp(Rect bounds, GlyphRun noSkia) { _noSkia = noSkia; Bounds = bounds; @@ -42,10 +48,7 @@ namespace RenderDemo.Pages { var leaseFeature = context.GetFeature(); if (leaseFeature == null) - using (var c = new DrawingContext(context, false)) - { - c.DrawText(_noSkia, new Point()); - } + context.DrawGlyphRun(Brushes.Black, _noSkia.PlatformImpl); else { using var lease = leaseFeature.Lease(); @@ -114,10 +117,7 @@ namespace RenderDemo.Pages public override void Render(DrawingContext context) { - var noSkia = new FormattedText("Current rendering API is not Skia", CultureInfo.CurrentCulture, - FlowDirection.LeftToRight, Typeface.Default, 12, Brushes.Black); - - context.Custom(new CustomDrawOp(new Rect(0, 0, Bounds.Width, Bounds.Height), noSkia)); + context.Custom(new CustomDrawOp(new Rect(0, 0, Bounds.Width, Bounds.Height), _noSkia)); Dispatcher.UIThread.InvokeAsync(InvalidateVisual, DispatcherPriority.Background); } } diff --git a/samples/RenderDemo/Pages/PathMeasurementPage.cs b/samples/RenderDemo/Pages/PathMeasurementPage.cs index cc5125609c..2fe57165b3 100644 --- a/samples/RenderDemo/Pages/PathMeasurementPage.cs +++ b/samples/RenderDemo/Pages/PathMeasurementPage.cs @@ -37,11 +37,8 @@ namespace RenderDemo.Pages public override void Render(DrawingContext context) { - using (var ctxi = _bitmap.CreateDrawingContext(null)) - using (var bitmapCtx = new DrawingContext(ctxi, false)) + using (var bitmapCtx = _bitmap.CreateDrawingContext()) { - ctxi.Clear(default); - var basePath = new PathGeometry(); using (var basePathCtx = basePath.Open()) diff --git a/samples/RenderDemo/Pages/RenderTargetBitmapPage.cs b/samples/RenderDemo/Pages/RenderTargetBitmapPage.cs index f365b59c20..b88dded39b 100644 --- a/samples/RenderDemo/Pages/RenderTargetBitmapPage.cs +++ b/samples/RenderDemo/Pages/RenderTargetBitmapPage.cs @@ -28,13 +28,11 @@ namespace RenderDemo.Pages readonly Stopwatch _st = Stopwatch.StartNew(); public override void Render(DrawingContext context) { - using (var ctxi = _bitmap.CreateDrawingContext(null)) - using(var ctx = new DrawingContext(ctxi, false)) + using (var ctx = _bitmap.CreateDrawingContext()) using (ctx.PushPostTransform(Matrix.CreateTranslation(-100, -100) * Matrix.CreateRotation(_st.Elapsed.TotalSeconds) * Matrix.CreateTranslation(100, 100))) { - ctxi.Clear(default); ctx.FillRectangle(Brushes.Fuchsia, new Rect(50, 50, 100, 100)); } diff --git a/src/Avalonia.Base/Media/DrawingBrush.cs b/src/Avalonia.Base/Media/DrawingBrush.cs new file mode 100644 index 0000000000..2825628948 --- /dev/null +++ b/src/Avalonia.Base/Media/DrawingBrush.cs @@ -0,0 +1,66 @@ +using Avalonia.Media.Immutable; +using Avalonia.Rendering; +using Avalonia.Rendering.Composition; +using Avalonia.Rendering.Composition.Drawing; + +namespace Avalonia.Media +{ + /// + /// Paints an area with an . + /// + public class DrawingBrush : TileBrush, ISceneBrush, IAffectsRender + { + /// + /// Defines the property. + /// + public static readonly StyledProperty DrawingProperty = + AvaloniaProperty.Register(nameof(Drawing)); + + static DrawingBrush() + { + AffectsRender(DrawingProperty); + } + + /// + /// Initializes a new instance of the class. + /// + public DrawingBrush() + { + } + + /// + /// Initializes a new instance of the class. + /// + /// The visual to draw. + public DrawingBrush(Drawing visual) + { + Drawing = visual; + } + + /// + /// Gets or sets the visual to draw. + /// + public Drawing? Drawing + { + get { return GetValue(DrawingProperty); } + set { SetValue(DrawingProperty, value); } + } + + ISceneBrushContent? ISceneBrush.CreateContent() + { + if (Drawing == null) + return null; + + + var recorder = new CompositionDrawingContext(); + recorder.BeginUpdate(null); + Drawing?.Draw(recorder); + var drawList = recorder.EndUpdate(); + if (drawList == null) + return null; + + return new CompositionDrawListSceneBrushContent(new ImmutableSceneBrush(this), drawList, + drawList.CalculateBounds(), true); + } + } +} diff --git a/src/Avalonia.Base/Media/DrawingContext.cs b/src/Avalonia.Base/Media/DrawingContext.cs index a37fa6fd32..31a16dc69c 100644 --- a/src/Avalonia.Base/Media/DrawingContext.cs +++ b/src/Avalonia.Base/Media/DrawingContext.cs @@ -8,83 +8,45 @@ using Avalonia.Media.Imaging; namespace Avalonia.Media { - public sealed class DrawingContext : IDisposable + public abstract class DrawingContext : IDisposable { - private readonly bool _ownsImpl; - private int _currentLevel; + private static ThreadSafeObjectPool> StateStackPool { get; } = + ThreadSafeObjectPool>.Default; + private Stack? _states; - private static ThreadSafeObjectPool> StateStackPool { get; } = - ThreadSafeObjectPool>.Default; - - private static ThreadSafeObjectPool> TransformStackPool { get; } = - ThreadSafeObjectPool>.Default; - - private Stack? _states = StateStackPool.Get(); - - private Stack? _transformContainers = TransformStackPool.Get(); - - readonly struct TransformContainer - { - public readonly Matrix LocalTransform; - public readonly Matrix ContainerTransform; - - public TransformContainer(Matrix localTransform, Matrix containerTransform) - { - LocalTransform = localTransform; - ContainerTransform = containerTransform; - } - } - - public DrawingContext(IDrawingContextImpl impl) + internal DrawingContext() { - PlatformImpl = impl; - _ownsImpl = true; + } - - public DrawingContext(IDrawingContextImpl impl, bool ownsImpl) - { - _ownsImpl = ownsImpl; - PlatformImpl = impl; - } - - public IDrawingContextImpl PlatformImpl { get; } - - private Matrix _currentTransform = Matrix.Identity; - private Matrix _currentContainerTransform = Matrix.Identity; - - /// - /// Gets the current transform of the drawing context. - /// - public Matrix CurrentTransform + public void Dispose() { - get { return _currentTransform; } - private set + if (_states != null) { - _currentTransform = value; - var transform = _currentTransform * _currentContainerTransform; - PlatformImpl.Transform = transform; - } - } + while (_states.Count > 0) + _states.Pop().Dispose(); - //HACK: This is a temporary hack that is used in the render loop - //to update TransformedBounds property - [Obsolete("HACK for render loop, don't use")] - public Matrix CurrentContainerTransform => _currentContainerTransform; + StateStackPool.ReturnAndSetNull(ref _states); + } + DisposeCore(); + } + + protected abstract void DisposeCore(); + /// /// Draws an image. /// /// The image. /// The rect in the output to draw to. - public void DrawImage(IImage source, Rect rect) + public virtual void DrawImage(IImage source, Rect rect) { _ = source ?? throw new ArgumentNullException(nameof(source)); - DrawImage(source, new Rect(source.Size), rect); } + /// /// Draws an image. /// @@ -92,12 +54,22 @@ namespace Avalonia.Media /// The rect in the image to draw. /// The rect in the output to draw to. /// The bitmap interpolation mode. - public void DrawImage(IImage source, Rect sourceRect, Rect destRect, BitmapInterpolationMode bitmapInterpolationMode = default) + public virtual void DrawImage(IImage source, Rect sourceRect, Rect destRect, + BitmapInterpolationMode bitmapInterpolationMode = default) { _ = source ?? throw new ArgumentNullException(nameof(source)); - source.Draw(this, sourceRect, destRect, bitmapInterpolationMode); } + + /// + /// Draws a platform-specific bitmap impl. + /// + /// The bitmap image. + /// The opacity to draw with. + /// The rect in the image to draw. + /// The rect in the output to draw to. + /// The bitmap interpolation mode. + internal abstract void DrawBitmap(IRef source, double opacity, Rect sourceRect, Rect destRect, BitmapInterpolationMode bitmapInterpolationMode = BitmapInterpolationMode.Default); /// /// Draws a line. @@ -108,11 +80,11 @@ namespace Avalonia.Media public void DrawLine(IPen pen, Point p1, Point p2) { if (PenIsVisible(pen)) - { - PlatformImpl.DrawLine(pen, p1, p2); - } + DrawLineCore(pen, p1, p2); } + protected abstract void DrawLineCore(IPen pen, Point p1, Point p2); + /// /// Draws a geometry. /// @@ -121,10 +93,10 @@ namespace Avalonia.Media /// The geometry. public void DrawGeometry(IBrush? brush, IPen? pen, Geometry geometry) { - if (geometry.PlatformImpl is not null) - DrawGeometry(brush, pen, geometry.PlatformImpl); + if ((brush != null || PenIsVisible(pen)) && geometry.PlatformImpl != null) + DrawGeometryCore(brush, pen, geometry.PlatformImpl); } - + /// /// Draws a geometry. /// @@ -133,14 +105,12 @@ namespace Avalonia.Media /// The geometry. public void DrawGeometry(IBrush? brush, IPen? pen, IGeometryImpl geometry) { - _ = geometry ?? throw new ArgumentNullException(nameof(geometry)); - - if (brush != null || PenIsVisible(pen)) - { - PlatformImpl.DrawGeometry(brush, pen, geometry); - } + if ((brush != null || PenIsVisible(pen))) + DrawGeometryCore(brush, pen, geometry); } + protected abstract void DrawGeometryCore(IBrush? brush, IPen? pen, IGeometryImpl geometry); + /// /// Draws a rectangle with the specified Brush and Pen. /// @@ -158,14 +128,12 @@ namespace Avalonia.Media /// The brush and the pen can both be null. If the brush is null, then no fill is performed. /// If the pen is null, then no stoke is performed. If both the pen and the brush are null, then the drawing is not visible. /// - public void DrawRectangle(IBrush? brush, IPen? pen, Rect rect, double radiusX = 0, double radiusY = 0, + public void DrawRectangle(IBrush? brush, IPen? pen, Rect rect, + double radiusX = 0, double radiusY = 0, BoxShadows boxShadows = default) { if (brush == null && !PenIsVisible(pen)) - { return; - } - if (!MathUtilities.IsZero(radiusX)) { radiusX = Math.Min(radiusX, rect.Width / 2); @@ -175,20 +143,48 @@ namespace Avalonia.Media { radiusY = Math.Min(radiusY, rect.Height / 2); } - - PlatformImpl.DrawRectangle(brush, pen, new RoundedRect(rect, radiusX, radiusY), boxShadows); + + DrawRectangleCore(brush, pen, new RoundedRect(rect, radiusX, radiusY), boxShadows); + } + + /// + /// Draws a rectangle with the specified Brush and Pen. + /// + /// The brush used to fill the rectangle, or null for no fill. + /// The pen used to stroke the rectangle, or null for no stroke. + /// The rectangle bounds. + /// Box shadow effect parameters + /// + /// The brush and the pen can both be null. If the brush is null, then no fill is performed. + /// If the pen is null, then no stoke is performed. If both the pen and the brush are null, then the drawing is not visible. + /// + public void DrawRectangle(IBrush? brush, IPen? pen, RoundedRect rrect, BoxShadows boxShadows = default) + { + if (brush == null && !PenIsVisible(pen)) + return; + DrawRectangleCore(brush, pen, rrect, boxShadows); } + protected abstract void DrawRectangleCore(IBrush? brush, IPen? pen, RoundedRect rrect, + BoxShadows boxShadows = default); + /// /// Draws the outline of a rectangle. /// /// The pen. /// The rectangle bounds. /// The corner radius. - public void DrawRectangle(IPen pen, Rect rect, float cornerRadius = 0.0f) - { + public void DrawRectangle(IPen pen, Rect rect, float cornerRadius = 0.0f) => DrawRectangle(null, pen, rect, cornerRadius, cornerRadius); - } + + /// + /// Draws a filled rectangle. + /// + /// The brush. + /// The rectangle bounds. + /// The corner radius. + public void FillRectangle(IBrush brush, Rect rect, float cornerRadius = 0.0f) => + DrawRectangle(brush, null, rect, cornerRadius, cornerRadius); /// /// Draws an ellipse with the specified Brush and Pen. @@ -204,35 +200,50 @@ namespace Avalonia.Media /// public void DrawEllipse(IBrush? brush, IPen? pen, Point center, double radiusX, double radiusY) { - if (brush == null && !PenIsVisible(pen)) + if (brush != null || PenIsVisible(pen)) { - return; + var originX = center.X - radiusX; + var originY = center.Y - radiusY; + var width = radiusX * 2; + var height = radiusY * 2; + DrawEllipseCore(brush, pen, new Rect(originX, originY, width, height)); } - - var originX = center.X - radiusX; - var originY = center.Y - radiusY; - var width = radiusX * 2; - var height = radiusY * 2; - - PlatformImpl.DrawEllipse(brush, pen, new Rect(originX, originY, width, height)); + } + + /// + /// Draws an ellipse with the specified Brush and Pen. + /// + /// The brush used to fill the ellipse, or null for no fill. + /// The pen used to stroke the ellipse, or null for no stroke. + /// The bounding rect. + /// + /// The brush and the pen can both be null. If the brush is null, then no fill is performed. + /// If the pen is null, then no stoke is performed. If both the pen and the brush are null, then the drawing is not visible. + /// + public void DrawEllipse(IBrush? brush, IPen? pen, Rect rect) + { + if (brush != null || PenIsVisible(pen)) + DrawEllipseCore(brush, pen, rect); } + protected abstract void DrawEllipseCore(IBrush? brush, IPen? pen, Rect rect); + /// /// Draws a custom drawing operation /// /// custom operation - public void Custom(ICustomDrawOperation custom) => PlatformImpl.Custom(custom); + public abstract void Custom(ICustomDrawOperation custom); /// /// Draws text. /// /// The upper-left corner of the text. /// The text. - public void DrawText(FormattedText text, Point origin) + public virtual void DrawText(FormattedText text, Point origin) { _ = text ?? throw new ArgumentNullException(nameof(text)); - text.Draw(this, origin); + text.Draw(this, origin); } /// @@ -240,30 +251,31 @@ namespace Avalonia.Media /// /// The foreground brush. /// The glyph run. - public void DrawGlyphRun(IBrush? foreground, GlyphRun glyphRun) + public abstract void DrawGlyphRun(IBrush? foreground, GlyphRun glyphRun); + + public record struct PushedState : IDisposable { - _ = glyphRun ?? throw new ArgumentNullException(nameof(glyphRun)); + private readonly DrawingContext _context; + private readonly int _level; - if (foreground != null) + public PushedState(DrawingContext context) { - PlatformImpl.DrawGlyphRun(foreground, glyphRun.PlatformImpl); + _context = context; + _level = _context._states!.Count; } - } - /// - /// Draws a filled rectangle. - /// - /// The brush. - /// The rectangle bounds. - /// The corner radius. - public void FillRectangle(IBrush brush, Rect rect, float cornerRadius = 0.0f) - { - DrawRectangle(brush, null, rect, cornerRadius, cornerRadius); + public void Dispose() + { + if(_context?._states == null) + return; + if(_context._states.Count != _level) + throw new InvalidOperationException("Wrong Push/Pop state order"); + _context._states.Pop().Dispose(); + } } - - public readonly record struct PushedState : IDisposable + + private readonly record struct RestoreState : IDisposable { - private readonly int _level; private readonly DrawingContext _context; private readonly Matrix _matrix; private readonly PushedStateType _type; @@ -271,62 +283,56 @@ namespace Avalonia.Media public enum PushedStateType { None, - Matrix, + Transform, Opacity, Clip, - MatrixContainer, GeometryClip, OpacityMask, + BitmapBlendMode } - public PushedState(DrawingContext context, PushedStateType type, Matrix matrix = default) + public RestoreState(DrawingContext context, PushedStateType type) { - if (context._states is null) - throw new ObjectDisposedException(nameof(DrawingContext)); - _context = context; _type = type; - _matrix = matrix; - _level = context._currentLevel += 1; - context._states.Push(this); } public void Dispose() { if (_type == PushedStateType.None) return; - if (_context._states is null || _context._transformContainers is null) + if (_context._states is null) throw new ObjectDisposedException(nameof(DrawingContext)); - if (_context._currentLevel != _level) - throw new InvalidOperationException("Wrong Push/Pop state order"); - _context._currentLevel--; - _context._states.Pop(); - if (_type == PushedStateType.Matrix) - _context.CurrentTransform = _matrix; + if (_type == PushedStateType.Transform) + _context.PopTransformCore(); else if (_type == PushedStateType.Clip) - _context.PlatformImpl.PopClip(); + _context.PopClipCore(); else if (_type == PushedStateType.Opacity) - _context.PlatformImpl.PopOpacity(); + _context.PopOpacityCore(); else if (_type == PushedStateType.GeometryClip) - _context.PlatformImpl.PopGeometryClip(); + _context.PopGeometryClipCore(); else if (_type == PushedStateType.OpacityMask) - _context.PlatformImpl.PopOpacityMask(); - else if (_type == PushedStateType.MatrixContainer) - { - var cont = _context._transformContainers.Pop(); - _context._currentContainerTransform = cont.ContainerTransform; - _context.CurrentTransform = cont.LocalTransform; - } + _context.PopOpacityMaskCore(); + else if (_type == PushedStateType.BitmapBlendMode) + _context.PopBitmapBlendModeCore(); } } - + /// + /// Pushes a clip rectangle. + /// + /// The clip rectangle. + /// A disposable used to undo the clip rectangle. public PushedState PushClip(RoundedRect clip) { - PlatformImpl.PushClip(clip); - return new PushedState(this, PushedState.PushedStateType.Clip); + PushClipCore(clip); + _states ??= StateStackPool.Get(); + _states.Push(new RestoreState(this, RestoreState.PushedStateType.Clip)); + return new PushedState(this); } + protected abstract void PushClipCore(RoundedRect rect); + /// /// Pushes a clip rectangle. /// @@ -334,9 +340,13 @@ namespace Avalonia.Media /// A disposable used to undo the clip rectangle. public PushedState PushClip(Rect clip) { - PlatformImpl.PushClip(clip); - return new PushedState(this, PushedState.PushedStateType.Clip); + PushClipCore(clip); + _states ??= StateStackPool.Get(); + _states.Push(new RestoreState(this, RestoreState.PushedStateType.Clip)); + return new PushedState(this); } + + protected abstract void PushClipCore(Rect rect); /// /// Pushes a clip geometry. @@ -345,17 +355,13 @@ namespace Avalonia.Media /// A disposable used to undo the clip geometry. public PushedState PushGeometryClip(Geometry clip) { - _ = clip ?? throw new ArgumentNullException(nameof(clip)); - - // HACK: This check was added when nullable annotations pointed out that we're potentially - // pushing a null value for the clip here. Ideally we'd return an empty PushedState here but - // I don't want to make that change as part of adding nullable annotations. - if (clip.PlatformImpl is null) - throw new InvalidOperationException("Cannot push empty geometry clip."); - - PlatformImpl.PushGeometryClip(clip.PlatformImpl); - return new PushedState(this, PushedState.PushedStateType.GeometryClip); + PushGeometryClipCore(clip); + _states ??= StateStackPool.Get(); + _states.Push(new RestoreState(this, RestoreState.PushedStateType.GeometryClip)); + return new PushedState(this); } + + protected abstract void PushGeometryClipCore(Geometry clip); /// /// Pushes an opacity value. @@ -364,11 +370,13 @@ namespace Avalonia.Media /// The bounds. /// A disposable used to undo the opacity. public PushedState PushOpacity(double opacity, Rect bounds) - //TODO: Eliminate platform-specific push opacity call { - PlatformImpl.PushOpacity(opacity, bounds); - return new PushedState(this, PushedState.PushedStateType.Opacity); + PushOpacityCore(opacity, bounds); + _states ??= StateStackPool.Get(); + _states.Push(new RestoreState(this, RestoreState.PushedStateType.Opacity)); + return new PushedState(this); } + protected abstract void PushOpacityCore(double opacity, Rect bounds); /// /// Pushes an opacity mask. @@ -380,70 +388,53 @@ namespace Avalonia.Media /// A disposable to undo the opacity mask. public PushedState PushOpacityMask(IBrush mask, Rect bounds) { - PlatformImpl.PushOpacityMask(mask, bounds); - return new PushedState(this, PushedState.PushedStateType.OpacityMask); + PushOpacityMaskCore(mask, bounds); + _states ??= StateStackPool.Get(); + _states.Push(new RestoreState(this, RestoreState.PushedStateType.OpacityMask)); + return new PushedState(this); } + protected abstract void PushOpacityMaskCore(IBrush mask, Rect bounds); - /// - /// Pushes a matrix post-transformation. - /// - /// The matrix - /// A disposable used to undo the transformation. - public PushedState PushPostTransform(Matrix matrix) => PushSetTransform(CurrentTransform * matrix); - - /// - /// Pushes a matrix pre-transformation. - /// - /// The matrix - /// A disposable used to undo the transformation. - public PushedState PushPreTransform(Matrix matrix) => PushSetTransform(matrix * CurrentTransform); - - /// - /// Sets the current matrix transformation. - /// - /// The matrix - /// A disposable used to undo the transformation. - public PushedState PushSetTransform(Matrix matrix) + public PushedState PushBitmapBlendMode(BitmapBlendingMode blendingMode) { - var oldMatrix = CurrentTransform; - CurrentTransform = matrix; - - return new PushedState(this, PushedState.PushedStateType.Matrix, oldMatrix); + PushBitmapBlendMode(blendingMode); + _states ??= StateStackPool.Get(); + _states.Push(new RestoreState(this, RestoreState.PushedStateType.BitmapBlendMode)); + return new PushedState(this); } - /// - /// Pushes a new transform context. - /// - /// A disposable used to undo the transformation. - public PushedState PushTransformContainer() - { - if (_transformContainers is null) - throw new ObjectDisposedException(nameof(DrawingContext)); - _transformContainers.Push(new TransformContainer(CurrentTransform, _currentContainerTransform)); - _currentContainerTransform = CurrentTransform * _currentContainerTransform; - _currentTransform = Matrix.Identity; - return new PushedState(this, PushedState.PushedStateType.MatrixContainer); - } + protected abstract void PushBitmapBlendModeCore(BitmapBlendingMode blendingMode); /// - /// Disposes of any resources held by the . + /// Pushes a matrix transformation. /// - public void Dispose() + /// The matrix + /// A disposable used to undo the transformation. + public PushedState PushTransform(Matrix matrix) { - if (_states is null || _transformContainers is null) - throw new ObjectDisposedException(nameof(DrawingContext)); - while (_states.Count != 0) - _states.Peek().Dispose(); - StateStackPool.Return(_states); - _states = null; - if (_transformContainers.Count != 0) - throw new InvalidOperationException("Transform container stack is non-empty"); - TransformStackPool.Return(_transformContainers); - _transformContainers = null; - if (_ownsImpl) - PlatformImpl.Dispose(); + PushTransformCore(matrix); + _states ??= StateStackPool.Get(); + _states.Push(new RestoreState(this, RestoreState.PushedStateType.Transform)); + return new PushedState(this); } + [Obsolete("Use PushTransform")] + public PushedState PushPreTransform(Matrix matrix) => PushTransform(matrix); + [Obsolete("Use PushTransform")] + public PushedState PushPostTransform(Matrix matrix) => PushTransform(matrix); + [Obsolete("Use PushTransform")] + public PushedState PushTransformContainer() => PushTransform(Matrix.Identity); + + + protected abstract void PushTransformCore(Matrix matrix); + + protected abstract void PopClipCore(); + protected abstract void PopGeometryClipCore(); + protected abstract void PopOpacityCore(); + protected abstract void PopOpacityMaskCore(); + protected abstract void PopBitmapBlendModeCore(); + protected abstract void PopTransformCore(); + private static bool PenIsVisible(IPen? pen) { return pen?.Brush != null && pen.Thickness > 0; diff --git a/src/Avalonia.Base/Media/DrawingGroup.cs b/src/Avalonia.Base/Media/DrawingGroup.cs index 7b02649b6c..812d315912 100644 --- a/src/Avalonia.Base/Media/DrawingGroup.cs +++ b/src/Avalonia.Base/Media/DrawingGroup.cs @@ -67,10 +67,7 @@ namespace Avalonia.Media } } - public DrawingContext Open() - { - return new DrawingContext(new DrawingGroupDrawingContext(this)); - } + public DrawingContext Open() => new DrawingGroupDrawingContext(this); public override void Draw(DrawingContext context) { @@ -105,7 +102,7 @@ namespace Avalonia.Media return rect; } - private class DrawingGroupDrawingContext : IDrawingContextImpl + private sealed class DrawingGroupDrawingContext : DrawingContext { private readonly DrawingGroup _drawingGroup; private readonly IPlatformRenderInterface _platformRenderInterface = AvaloniaLocator.Current.GetRequiredService(); @@ -135,17 +132,7 @@ namespace Avalonia.Media _drawingGroup = drawingGroup; } - public Matrix Transform - { - get => _transform; - set - { - _transform = value; - PushTransform(new MatrixTransform(value)); - } - } - - public void DrawEllipse(IBrush? brush, IPen? pen, Rect rect) + protected override void DrawEllipseCore(IBrush? brush, IPen? pen, Rect rect) { if ((brush == null) && (pen == null)) { @@ -159,7 +146,7 @@ namespace Avalonia.Media AddNewGeometryDrawing(brush, pen, new PlatformGeometry(geometry)); } - public void DrawGeometry(IBrush? brush, IPen? pen, IGeometryImpl geometry) + protected override void DrawGeometryCore(IBrush? brush, IPen? pen, IGeometryImpl geometry) { if ((brush == null) && (pen == null)) { @@ -169,7 +156,7 @@ namespace Avalonia.Media AddNewGeometryDrawing(brush, pen, new PlatformGeometry(geometry)); } - public void DrawGlyphRun(IBrush? foreground, IRef glyphRun) + public override void DrawGlyphRun(IBrush? foreground, GlyphRun glyphRun) { if (foreground == null) { @@ -179,124 +166,70 @@ namespace Avalonia.Media GlyphRunDrawing glyphRunDrawing = new GlyphRunDrawing { Foreground = foreground, - GlyphRun = new GlyphRun(glyphRun) + GlyphRun = glyphRun }; // Add Drawing to the Drawing graph AddDrawing(glyphRunDrawing); } - public void DrawLine(IPen? pen, Point p1, Point p2) - { - if (pen == null) - { - return; - } - - // Instantiate the geometry - var geometry = _platformRenderInterface.CreateLineGeometry(p1, p2); - - // Add Drawing to the Drawing graph - AddNewGeometryDrawing(null, pen, new PlatformGeometry(geometry)); - } - - public void DrawRectangle(IBrush? brush, IPen? pen, RoundedRect rect, BoxShadows boxShadows = default) - { - if ((brush == null) && (pen == null)) - { - return; - } - - // Instantiate the geometry - var geometry = _platformRenderInterface.CreateRectangleGeometry(rect.Rect); - - // Add Drawing to the Drawing graph - AddNewGeometryDrawing(brush, pen, new PlatformGeometry(geometry)); - } - - public void Clear(Color color) + protected override void PushClipCore(RoundedRect rect) { throw new NotImplementedException(); } - public IDrawingContextLayerImpl CreateLayer(Size size) + protected override void PushClipCore(Rect rect) { throw new NotImplementedException(); } - public void Custom(ICustomDrawOperation custom) + protected override void PushGeometryClipCore(Geometry clip) { throw new NotImplementedException(); } - public object? GetFeature(Type t) => null; - - public void DrawBitmap(IRef source, double opacity, Rect sourceRect, Rect destRect, BitmapInterpolationMode bitmapInterpolationMode = BitmapInterpolationMode.Default) + protected override void PushOpacityCore(double opacity, Rect bounds) { throw new NotImplementedException(); } - public void DrawBitmap(IRef source, IBrush opacityMask, Rect opacityMaskRect, Rect destRect) + protected override void PushOpacityMaskCore(IBrush mask, Rect bounds) { throw new NotImplementedException(); } - public void PopBitmapBlendMode() + protected override void PushBitmapBlendModeCore(BitmapBlendingMode blendingMode) { throw new NotImplementedException(); } - public void PopClip() + internal override void DrawBitmap(IRef source, double opacity, Rect sourceRect, Rect destRect, + BitmapInterpolationMode bitmapInterpolationMode = BitmapInterpolationMode.Default) { throw new NotImplementedException(); } - public void PopGeometryClip() + protected override void DrawLineCore(IPen pen, Point p1, Point p2) { - throw new NotImplementedException(); - } - - public void PopOpacity() - { - throw new NotImplementedException(); - } - - public void PopOpacityMask() - { - throw new NotImplementedException(); - } - - public void PushBitmapBlendMode(BitmapBlendingMode blendingMode) - { - throw new NotImplementedException(); - } - - public void PushClip(Rect clip) - { - throw new NotImplementedException(); - } + // Instantiate the geometry + var geometry = _platformRenderInterface.CreateLineGeometry(p1, p2); - public void PushClip(RoundedRect clip) - { - throw new NotImplementedException(); + // Add Drawing to the Drawing graph + AddNewGeometryDrawing(null, pen, new PlatformGeometry(geometry)); } - public void PushGeometryClip(IGeometryImpl clip) + protected override void DrawRectangleCore(IBrush? brush, IPen? pen, RoundedRect rrect, BoxShadows boxShadows = default) { - throw new NotImplementedException(); - } + // Instantiate the geometry + var geometry = _platformRenderInterface.CreateRectangleGeometry(rrect.Rect); - public void PushOpacity(double opacity, Rect bounds) - { - throw new NotImplementedException(); + // Add Drawing to the Drawing graph + AddNewGeometryDrawing(brush, pen, new PlatformGeometry(geometry)); } - public void PushOpacityMask(IBrush mask, Rect bounds) - { - throw new NotImplementedException(); - } + public override void Custom(ICustomDrawOperation custom) => throw new NotSupportedException(); - public void Dispose() + protected override void DisposeCore() { // Dispose may be called multiple times without throwing // an exception. @@ -366,22 +299,34 @@ namespace Avalonia.Media // Restore the previous value of the current drawing group _currentDrawingGroup = _previousDrawingGroupStack.Pop(); } - + /// /// PushTransform - /// Push a Transform which will apply to all drawing operations until the corresponding /// Pop. /// - /// The Transform to push. - private void PushTransform(Transform transform) + /// The transform to push. + protected override void PushTransformCore(Matrix matrix) { // Instantiate a new drawing group and set it as the _currentDrawingGroup var drawingGroup = PushNewDrawingGroup(); // Set the transform on the new DrawingGroup - drawingGroup.Transform = transform; + drawingGroup.Transform = new MatrixTransform(matrix); } + protected override void PopClipCore() => Pop(); + + protected override void PopGeometryClipCore() => Pop(); + + protected override void PopOpacityCore() => Pop(); + + protected override void PopOpacityMaskCore() => Pop(); + + protected override void PopBitmapBlendModeCore() => Pop(); + + protected override void PopTransformCore() => Pop(); + /// /// Creates a new DrawingGroup for a Push* call by setting the /// _currentDrawingGroup to a newly instantiated DrawingGroup, diff --git a/src/Avalonia.Base/Media/DrawingImage.cs b/src/Avalonia.Base/Media/DrawingImage.cs index 1b22a1ee69..52fbd87db7 100644 --- a/src/Avalonia.Base/Media/DrawingImage.cs +++ b/src/Avalonia.Base/Media/DrawingImage.cs @@ -62,7 +62,7 @@ namespace Avalonia.Media -sourceRect.Y + destRect.Y - bounds.Y); using (context.PushClip(destRect)) - using (context.PushPreTransform(translate * scale)) + using (context.PushTransform(translate * scale)) { Drawing?.Draw(context); } diff --git a/src/Avalonia.Base/Media/ISceneBrush.cs b/src/Avalonia.Base/Media/ISceneBrush.cs new file mode 100644 index 0000000000..df72dd1ace --- /dev/null +++ b/src/Avalonia.Base/Media/ISceneBrush.cs @@ -0,0 +1,31 @@ +using System; +using Avalonia.Media.Imaging; +using Avalonia.Media.Immutable; +using Avalonia.Metadata; +using Avalonia.Platform; +using Avalonia.Rendering.Composition.Drawing; + +namespace Avalonia.Media +{ + [NotClientImplementable] + public interface ISceneBrush : ITileBrush + { + ISceneBrushContent? CreateContent(); + } + + [NotClientImplementable] + public interface ISceneBrushContent : IImmutableBrush, IDisposable + { + ITileBrush Brush { get; } + Rect Rect { get; } + void Render(IDrawingContextImpl context, Matrix? transform); + internal bool UseScalableRasterization { get; } + } + + internal class ImmutableSceneBrush : ImmutableTileBrush + { + public ImmutableSceneBrush(ITileBrush source) : base(source) + { + } + } +} diff --git a/src/Avalonia.Base/Media/IVisualBrush.cs b/src/Avalonia.Base/Media/IVisualBrush.cs deleted file mode 100644 index a7d3e4da10..0000000000 --- a/src/Avalonia.Base/Media/IVisualBrush.cs +++ /dev/null @@ -1,16 +0,0 @@ -using Avalonia.Metadata; - -namespace Avalonia.Media -{ - /// - /// Paints an area with an . - /// - [NotClientImplementable] - public interface IVisualBrush : ITileBrush - { - /// - /// Gets the visual to draw. - /// - Visual? Visual { get; } - } -} diff --git a/src/Avalonia.Base/Media/Imaging/Bitmap.cs b/src/Avalonia.Base/Media/Imaging/Bitmap.cs index 6577532891..c4720d772e 100644 --- a/src/Avalonia.Base/Media/Imaging/Bitmap.cs +++ b/src/Avalonia.Base/Media/Imaging/Bitmap.cs @@ -227,7 +227,7 @@ namespace Avalonia.Media.Imaging Rect destRect, BitmapInterpolationMode bitmapInterpolationMode) { - context.PlatformImpl.DrawBitmap( + context.DrawBitmap( PlatformImpl, 1, sourceRect, diff --git a/src/Avalonia.Base/Media/Imaging/RenderTargetBitmap.cs b/src/Avalonia.Base/Media/Imaging/RenderTargetBitmap.cs index 88e5e627ee..e77dd9d1ab 100644 --- a/src/Avalonia.Base/Media/Imaging/RenderTargetBitmap.cs +++ b/src/Avalonia.Base/Media/Imaging/RenderTargetBitmap.cs @@ -9,7 +9,7 @@ namespace Avalonia.Media.Imaging /// /// A bitmap that holds the rendering of a . /// - public class RenderTargetBitmap : Bitmap, IDisposable, IRenderTarget + public class RenderTargetBitmap : Bitmap, IDisposable { /// /// Initializes a new instance of the class. @@ -44,7 +44,11 @@ namespace Avalonia.Media.Imaging /// Renders a visual to the . /// /// The visual to render. - public void Render(Visual visual) => ImmediateRenderer.Render(visual, this); + public void Render(Visual visual) + { + using (var ctx = CreateDrawingContext()) + ImmediateRenderer.Render(visual, ctx); + } /// /// Creates a platform-specific implementation for a . @@ -58,9 +62,11 @@ namespace Avalonia.Media.Imaging return factory.CreateRenderTargetBitmap(size, dpi); } - /// - public IDrawingContextImpl CreateDrawingContext(IVisualBrushRenderer? vbr) => PlatformImpl.Item.CreateDrawingContext(vbr); - - bool IRenderTarget.IsCorrupted => false; + public DrawingContext CreateDrawingContext() + { + var platform = PlatformImpl.Item.CreateDrawingContext(); + platform.Clear(Colors.Transparent); + return new PlatformDrawingContext(platform); + } } } diff --git a/src/Avalonia.Base/Media/ImmediateDrawingContext.cs b/src/Avalonia.Base/Media/ImmediateDrawingContext.cs index 2564d89bac..58b153482d 100644 --- a/src/Avalonia.Base/Media/ImmediateDrawingContext.cs +++ b/src/Avalonia.Base/Media/ImmediateDrawingContext.cs @@ -354,12 +354,10 @@ namespace Avalonia.Media throw new ObjectDisposedException(nameof(DrawingContext)); while (_states.Count != 0) _states.Peek().Dispose(); - StateStackPool.Return(_states); - _states = null; + StateStackPool.ReturnAndSetNull(ref _states); if (_transformContainers.Count != 0) throw new InvalidOperationException("Transform container stack is non-empty"); - TransformStackPool.Return(_transformContainers); - _transformContainers = null; + TransformStackPool.ReturnAndSetNull(ref _transformContainers); if (_ownsImpl) PlatformImpl.Dispose(); } diff --git a/src/Avalonia.Base/Media/Immutable/ImmutableVisualBrush.cs b/src/Avalonia.Base/Media/Immutable/ImmutableVisualBrush.cs deleted file mode 100644 index e9086eee37..0000000000 --- a/src/Avalonia.Base/Media/Immutable/ImmutableVisualBrush.cs +++ /dev/null @@ -1,66 +0,0 @@ -using Avalonia.Media.Imaging; - -namespace Avalonia.Media.Immutable -{ - /// - /// Paints an area with an . - /// - internal class ImmutableVisualBrush : ImmutableTileBrush, IVisualBrush - { - /// - /// Initializes a new instance of the class. - /// - /// The visual to draw. - /// The horizontal alignment of a tile in the destination. - /// The vertical alignment of a tile in the destination. - /// The rectangle on the destination in which to paint a tile. - /// The opacity of the brush. - /// The transform of the brush. - /// The transform origin of the brush - /// The rectangle of the source image that will be displayed. - /// - /// How the source rectangle will be stretched to fill the destination rect. - /// - /// The tile mode. - /// Controls the quality of interpolation. - public ImmutableVisualBrush( - Visual? visual, - AlignmentX alignmentX = AlignmentX.Center, - AlignmentY alignmentY = AlignmentY.Center, - RelativeRect? destinationRect = null, - double opacity = 1, - ImmutableTransform? transform = null, - RelativePoint transformOrigin = default, - RelativeRect? sourceRect = null, - Stretch stretch = Stretch.Uniform, - TileMode tileMode = TileMode.None, - BitmapInterpolationMode bitmapInterpolationMode = BitmapInterpolationMode.Default) - : base( - alignmentX, - alignmentY, - destinationRect ?? RelativeRect.Fill, - opacity, - transform, - transformOrigin, - sourceRect ?? RelativeRect.Fill, - stretch, - tileMode, - bitmapInterpolationMode) - { - Visual = visual; - } - - /// - /// Initializes a new instance of the class. - /// - /// The brush from which this brush's properties should be copied. - public ImmutableVisualBrush(IVisualBrush source) - : base(source) - { - Visual = source.Visual; - } - - /// - public Visual? Visual { get; } - } -} diff --git a/src/Avalonia.Base/Media/PlatformDrawingContext.cs b/src/Avalonia.Base/Media/PlatformDrawingContext.cs new file mode 100644 index 0000000000..eb8a93722c --- /dev/null +++ b/src/Avalonia.Base/Media/PlatformDrawingContext.cs @@ -0,0 +1,112 @@ +using System; +using System.Collections.Generic; +using Avalonia.Media.Imaging; +using Avalonia.Media.Immutable; +using Avalonia.Platform; +using Avalonia.Rendering.SceneGraph; +using Avalonia.Threading; +using Avalonia.Utilities; + +namespace Avalonia.Media; + +internal sealed class PlatformDrawingContext : DrawingContext, IDrawingContextWithAcrylicLikeSupport +{ + private readonly IDrawingContextImpl _impl; + private readonly bool _ownsImpl; + private static ThreadSafeObjectPool> TransformStackPool { get; } = + ThreadSafeObjectPool>.Default; + + private Stack? _transforms; + + + public PlatformDrawingContext(IDrawingContextImpl impl, bool ownsImpl = true) + { + _impl = impl; + _ownsImpl = ownsImpl; + } + + protected override void DrawLineCore(IPen pen, Point p1, Point p2) => + _impl.DrawLine(pen, p1, p2); + + protected override void DrawGeometryCore(IBrush? brush, IPen? pen, IGeometryImpl geometry) => + _impl.DrawGeometry(brush, pen, geometry); + + protected override void DrawRectangleCore(IBrush? brush, IPen? pen, RoundedRect rrect, + BoxShadows boxShadows = default) => + _impl.DrawRectangle(brush, pen, rrect, boxShadows); + + protected override void DrawEllipseCore(IBrush? brush, IPen? pen, Rect rect) => _impl.DrawEllipse(brush, pen, rect); + + internal override void DrawBitmap(IRef source, double opacity, Rect sourceRect, Rect destRect, + BitmapInterpolationMode bitmapInterpolationMode = BitmapInterpolationMode.Default) => + _impl.DrawBitmap(source, opacity, sourceRect, destRect, bitmapInterpolationMode); + + public override void Custom(ICustomDrawOperation custom) => + custom.Render(_impl); + + public override void DrawGlyphRun(IBrush? foreground, GlyphRun glyphRun) + { + _ = glyphRun ?? throw new ArgumentNullException(nameof(glyphRun)); + + if (foreground != null) + _impl.DrawGlyphRun(foreground, glyphRun.PlatformImpl); + } + + protected override void PushClipCore(RoundedRect rect) => _impl.PushClip(rect); + + protected override void PushClipCore(Rect rect) => _impl.PushClip(rect); + + protected override void PushGeometryClipCore(Geometry clip) => + _impl.PushGeometryClip(clip.PlatformImpl ?? throw new ArgumentException()); + + protected override void PushOpacityCore(double opacity, Rect bounds) => + _impl.PushOpacity(opacity, bounds); + + protected override void PushOpacityMaskCore(IBrush mask, Rect bounds) => + _impl.PushOpacityMask(mask, bounds); + + protected override void PushBitmapBlendModeCore(BitmapBlendingMode blendingMode) => + _impl.PushBitmapBlendMode(blendingMode); + + protected override void PushTransformCore(Matrix matrix) + { + _transforms ??= TransformStackPool.Get(); + var current = _impl.Transform; + _transforms.Push(current); + _impl.Transform = matrix * current; + } + + protected override void PopClipCore() => _impl.PopClip(); + + protected override void PopGeometryClipCore() => _impl.PopGeometryClip(); + + protected override void PopOpacityCore() => _impl.PopOpacity(); + + protected override void PopOpacityMaskCore() => _impl.PopOpacityMask(); + + protected override void PopBitmapBlendModeCore() => _impl.PopBitmapBlendMode(); + + protected override void PopTransformCore() => + _impl.Transform = + (_transforms ?? throw new ObjectDisposedException(nameof(PlatformDrawingContext))).Pop(); + + protected override void DisposeCore() + { + if (_ownsImpl) + _impl.Dispose(); + if (_transforms != null) + { + if (_transforms.Count != 0) + throw new InvalidOperationException("Not all states are disposed"); + TransformStackPool.ReturnAndSetNull(ref _transforms); + } + } + + public void DrawRectangle(IExperimentalAcrylicMaterial material, RoundedRect rect) + { + if (_impl is IDrawingContextWithAcrylicLikeSupport idc) + idc.DrawRectangle(material, rect); + else + DrawRectangle(new ImmutableSolidColorBrush(material.FallbackColor), null, rect); + } +} diff --git a/src/Avalonia.Base/Media/VisualBrush.cs b/src/Avalonia.Base/Media/VisualBrush.cs index 2be3e9a94e..6bfe20271f 100644 --- a/src/Avalonia.Base/Media/VisualBrush.cs +++ b/src/Avalonia.Base/Media/VisualBrush.cs @@ -1,11 +1,14 @@ using Avalonia.Media.Immutable; +using Avalonia.Rendering; +using Avalonia.Rendering.Composition; +using Avalonia.Rendering.Composition.Drawing; namespace Avalonia.Media { /// /// Paints an area with an . /// - public class VisualBrush : TileBrush, IVisualBrush, IMutableBrush + public class VisualBrush : TileBrush, ISceneBrush, IAffectsRender { /// /// Defines the property. @@ -43,10 +46,23 @@ namespace Avalonia.Media set { SetValue(VisualProperty, value); } } - /// - IImmutableBrush IMutableBrush.ToImmutable() + ISceneBrushContent? ISceneBrush.CreateContent() { - return new ImmutableVisualBrush(this); + if (Visual == null) + return null; + + if (Visual is IVisualBrushInitialize initialize) + initialize.EnsureInitialized(); + + var recorder = new CompositionDrawingContext(); + recorder.BeginUpdate(null); + ImmediateRenderer.Render(recorder, Visual, Visual.Bounds); + var drawList = recorder.EndUpdate(); + if (drawList == null) + return null; + + return new CompositionDrawListSceneBrushContent(new ImmutableSceneBrush(this), drawList, + new(Visual.Bounds.Size), false); } } } diff --git a/src/Avalonia.Base/Platform/IRenderTarget.cs b/src/Avalonia.Base/Platform/IRenderTarget.cs index 73e9e58da4..31ad84341d 100644 --- a/src/Avalonia.Base/Platform/IRenderTarget.cs +++ b/src/Avalonia.Base/Platform/IRenderTarget.cs @@ -14,11 +14,7 @@ namespace Avalonia.Platform /// /// Creates an for a rendering session. /// - /// - /// A render to be used to render visual brushes. May be null if no visual brushes are - /// to be drawn. - /// - IDrawingContextImpl CreateDrawingContext(IVisualBrushRenderer? visualBrushRenderer); + IDrawingContextImpl CreateDrawingContext(); /// /// Indicates if the render target is no longer usable and needs to be recreated diff --git a/src/Avalonia.Base/Rendering/Composition/CompositingRenderer.cs b/src/Avalonia.Base/Rendering/Composition/CompositingRenderer.cs index 7fa2d4955f..01299e4ffa 100644 --- a/src/Avalonia.Base/Rendering/Composition/CompositingRenderer.cs +++ b/src/Avalonia.Base/Rendering/Composition/CompositingRenderer.cs @@ -55,7 +55,7 @@ public class CompositingRenderer : IRendererWithCompositor { _root = root; _compositor = compositor; - _recordingContext = new DrawingContext(_recorder); + _recordingContext = _recorder; CompositionTarget = compositor.CreateCompositionTarget(surfaces); CompositionTarget.Root = ((Visual)root).AttachToCompositor(compositor); _update = Update; diff --git a/src/Avalonia.Base/Rendering/Composition/Drawing/CompositionDrawList.cs b/src/Avalonia.Base/Rendering/Composition/Drawing/CompositionDrawList.cs index 10a7c3e360..5d45a725c1 100644 --- a/src/Avalonia.Base/Rendering/Composition/Drawing/CompositionDrawList.cs +++ b/src/Avalonia.Base/Rendering/Composition/Drawing/CompositionDrawList.cs @@ -1,5 +1,6 @@ using System; using Avalonia.Collections.Pooled; +using Avalonia.Platform; using Avalonia.Rendering.Composition.Server; using Avalonia.Rendering.SceneGraph; using Avalonia.Utilities; @@ -13,8 +14,6 @@ namespace Avalonia.Rendering.Composition.Drawing; /// internal class CompositionDrawList : PooledList> { - public Size? Size { get; set; } - public CompositionDrawList() { @@ -34,21 +33,47 @@ internal class CompositionDrawList : PooledList> public CompositionDrawList Clone() { - var clone = new CompositionDrawList(Count) { Size = Size }; + var clone = new CompositionDrawList(Count); foreach (var r in this) clone.Add(r.Clone()); return clone; } - public void Render(CompositorDrawingContextProxy canvas) + public void Render(IDrawingContextImpl canvas) + { + foreach (var cmd in this) + { + if (cmd.Item is IDrawOperationWithTransform hasTransform) + canvas.Transform = hasTransform.Transform; + cmd.Item.Render(canvas); + } + } + + public void Render(IDrawingContextImpl canvas, Matrix transform) { foreach (var cmd in this) { - canvas.VisualBrushDrawList = (cmd.Item as BrushDrawOperation)?.Aux as CompositionDrawList; + if (cmd.Item is IDrawOperationWithTransform hasTransform) + canvas.Transform = hasTransform.Transform * transform; cmd.Item.Render(canvas); } + } + - canvas.VisualBrushDrawList = null; + public Rect CalculateBounds() + { + var rect = default(Rect); + foreach (var cmd in this) + rect = rect.Union(cmd.Item.Bounds); + return rect; + } + + public bool HitTest(Point pt) + { + foreach (var op in this) + if (op.Item.HitTest(pt)) + return true; + return false; } } diff --git a/src/Avalonia.Base/Rendering/Composition/Drawing/CompositionDrawListSceneBrushContent.cs b/src/Avalonia.Base/Rendering/Composition/Drawing/CompositionDrawListSceneBrushContent.cs new file mode 100644 index 0000000000..85bb156475 --- /dev/null +++ b/src/Avalonia.Base/Rendering/Composition/Drawing/CompositionDrawListSceneBrushContent.cs @@ -0,0 +1,37 @@ +using Avalonia.Media; +using Avalonia.Media.Immutable; +using Avalonia.Platform; + +namespace Avalonia.Rendering.Composition.Drawing; + +internal class CompositionDrawListSceneBrushContent : ISceneBrushContent +{ + private readonly CompositionDrawList _drawList; + + public CompositionDrawListSceneBrushContent(ImmutableTileBrush brush, CompositionDrawList drawList, Rect rect, bool useScalableRasterization) + { + Brush = brush; + Rect = rect; + UseScalableRasterization = useScalableRasterization; + _drawList = drawList; + } + + public ITileBrush Brush { get; } + public Rect Rect { get; } + + public double Opacity => Brush.Opacity; + public ITransform? Transform => Brush.Transform; + public RelativePoint TransformOrigin => Brush.TransformOrigin; + + public void Dispose() => _drawList.Dispose(); + + public void Render(IDrawingContextImpl context, Matrix? transform) + { + if (transform.HasValue) + _drawList.Render(context, transform.Value); + else + _drawList.Render(context); + } + + public bool UseScalableRasterization { get; } +} \ No newline at end of file diff --git a/src/Avalonia.Base/Rendering/Composition/Drawing/CompositionDrawingContext.cs b/src/Avalonia.Base/Rendering/Composition/Drawing/CompositionDrawingContext.cs index 6b380608fe..f81cc5a1a0 100644 --- a/src/Avalonia.Base/Rendering/Composition/Drawing/CompositionDrawingContext.cs +++ b/src/Avalonia.Base/Rendering/Composition/Drawing/CompositionDrawingContext.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; using System.Numerics; using Avalonia.Media; using Avalonia.Media.Imaging; @@ -7,7 +8,7 @@ using Avalonia.Platform; using Avalonia.Rendering.Composition.Drawing; using Avalonia.Rendering.SceneGraph; using Avalonia.Utilities; -using Avalonia.VisualTree; +using Avalonia.Threading; // Special license applies License.md @@ -16,46 +17,60 @@ namespace Avalonia.Rendering.Composition; /// /// An IDrawingContextImpl implementation that builds /// -internal class CompositionDrawingContext : IDrawingContextImpl, IDrawingContextWithAcrylicLikeSupport +internal sealed class CompositionDrawingContext : DrawingContext, IDrawingContextWithAcrylicLikeSupport { private CompositionDrawListBuilder _builder = new(); private int _drawOperationIndex; + + private static ThreadSafeObjectPool> TransformStackPool { get; } = + ThreadSafeObjectPool>.Default; - /// - public Matrix Transform { get; set; } = Matrix.Identity; + private Stack? _transforms; - /// - public void Clear(Color color) - { - // Cannot clear a deferred scene. - } + private static ThreadSafeObjectPool> OpacityMaskPopStackPool { get; } = + ThreadSafeObjectPool>.Default; - /// - public void Dispose() - { - // Nothing to do here since we allocate no unmanaged resources. - } + private Stack? _needsToPopOpacityMask; + public Matrix Transform { get; set; } = Matrix.Identity; + public void BeginUpdate(CompositionDrawList? list) { _builder.Reset(list); _drawOperationIndex = 0; } - public CompositionDrawList EndUpdate() + public CompositionDrawList? EndUpdate() { + // Make sure that any pending pop operations are completed + Dispose(); + _builder.TrimTo(_drawOperationIndex); - return _builder.DrawOperations!; + return _builder.DrawOperations; } + + protected override void DisposeCore() + { + if (_transforms != null) + { + _transforms.Clear(); + TransformStackPool.ReturnAndSetNull(ref _transforms); + } - /// - public void DrawGeometry(IBrush? brush, IPen? pen, IGeometryImpl geometry) + if (_needsToPopOpacityMask != null) + { + _needsToPopOpacityMask.Clear(); + _needsToPopOpacityMask = null; + } + } + + protected override void DrawGeometryCore(IBrush? brush, IPen? pen, IGeometryImpl geometry) { var next = NextDrawAs(); if (next == null || !next.Item.Equals(Transform, brush, pen, geometry)) { - Add(new GeometryNode(Transform, brush, pen, geometry, CreateChildScene(brush))); + Add(new GeometryNode(Transform, ConvertBrush(brush), pen, geometry)); } else { @@ -63,9 +78,8 @@ internal class CompositionDrawingContext : IDrawingContextImpl, IDrawingContextW } } - /// - public void DrawBitmap(IRef source, double opacity, Rect sourceRect, Rect destRect, - BitmapInterpolationMode bitmapInterpolationMode) + internal override void DrawBitmap(IRef source, double opacity, Rect sourceRect, Rect destRect, + BitmapInterpolationMode bitmapInterpolationMode = BitmapInterpolationMode.Default) { var next = NextDrawAs(); @@ -81,14 +95,7 @@ internal class CompositionDrawingContext : IDrawingContextImpl, IDrawingContextW } /// - public void DrawBitmap(IRef source, IBrush opacityMask, Rect opacityMaskRect, Rect sourceRect) - { - // This method is currently only used to composite layers so shouldn't be called here. - throw new NotSupportedException(); - } - - /// - public void DrawLine(IPen? pen, Point p1, Point p2) + protected override void DrawLineCore(IPen? pen, Point p1, Point p2) { if (pen is null) { @@ -99,7 +106,7 @@ internal class CompositionDrawingContext : IDrawingContextImpl, IDrawingContextW if (next == null || !next.Item.Equals(Transform, pen, p1, p2)) { - Add(new LineNode(Transform, pen, p1, p2, CreateChildScene(pen.Brush))); + Add(new LineNode(Transform, pen, p1, p2)); } else { @@ -108,14 +115,14 @@ internal class CompositionDrawingContext : IDrawingContextImpl, IDrawingContextW } /// - public void DrawRectangle(IBrush? brush, IPen? pen, RoundedRect rect, + protected override void DrawRectangleCore(IBrush? brush, IPen? pen, RoundedRect rect, BoxShadows boxShadows = default) { var next = NextDrawAs(); if (next == null || !next.Item.Equals(Transform, brush, pen, rect, boxShadows)) { - Add(new RectangleNode(Transform, brush, pen, rect, boxShadows, CreateChildScene(brush))); + Add(new RectangleNode(Transform, ConvertBrush(brush), pen, rect, boxShadows)); } else { @@ -138,21 +145,21 @@ internal class CompositionDrawingContext : IDrawingContextImpl, IDrawingContextW } } - public void DrawEllipse(IBrush? brush, IPen? pen, Rect rect) + protected override void DrawEllipseCore(IBrush? brush, IPen? pen, Rect rect) { var next = NextDrawAs(); if (next == null || !next.Item.Equals(Transform, brush, pen, rect)) { - Add(new EllipseNode(Transform, brush, pen, rect, CreateChildScene(brush))); + Add(new EllipseNode(Transform, ConvertBrush(brush), pen, rect)); } else { ++_drawOperationIndex; } } - - public void Custom(ICustomDrawOperation custom) + + public override void Custom(ICustomDrawOperation custom) { var next = NextDrawAs(); if (next == null || !next.Item.Equals(Transform, custom)) @@ -161,10 +168,7 @@ internal class CompositionDrawingContext : IDrawingContextImpl, IDrawingContextW ++_drawOperationIndex; } - public object? GetFeature(Type t) => null; - - /// - public void DrawGlyphRun(IBrush? foreground, IRef glyphRun) + public override void DrawGlyphRun(IBrush? foreground, GlyphRun glyphRun) { if (foreground is null) { @@ -173,9 +177,9 @@ internal class CompositionDrawingContext : IDrawingContextImpl, IDrawingContextW var next = NextDrawAs(); - if (next == null || !next.Item.Equals(Transform, foreground, glyphRun)) + if (next == null || !next.Item.Equals(Transform, foreground, glyphRun.PlatformImpl)) { - Add(new GlyphRunNode(Transform, foreground, glyphRun, CreateChildScene(foreground))); + Add(new GlyphRunNode(Transform, ConvertBrush(foreground)!, glyphRun.PlatformImpl)); } else @@ -184,13 +188,17 @@ internal class CompositionDrawingContext : IDrawingContextImpl, IDrawingContextW } } - public IDrawingContextLayerImpl CreateLayer(Size size) + protected override void PushTransformCore(Matrix matrix) { - throw new NotSupportedException("Creating layers on a deferred drawing context not supported"); + _transforms ??= TransformStackPool.Get(); + _transforms.Push(Transform); + Transform = matrix * Transform; } + + protected override void PopTransformCore() => + Transform = (_transforms ?? throw new InvalidOperationException()).Pop(); - /// - public void PopClip() + protected override void PopClipCore() { var next = NextDrawAs(); @@ -205,7 +213,7 @@ internal class CompositionDrawingContext : IDrawingContextImpl, IDrawingContextW } /// - public void PopGeometryClip() + protected override void PopGeometryClipCore() { var next = NextDrawAs(); @@ -219,8 +227,7 @@ internal class CompositionDrawingContext : IDrawingContextImpl, IDrawingContextW } } - /// - public void PopBitmapBlendMode() + protected override void PopBitmapBlendModeCore() { var next = NextDrawAs(); @@ -234,8 +241,7 @@ internal class CompositionDrawingContext : IDrawingContextImpl, IDrawingContextW } } - /// - public void PopOpacity() + protected override void PopOpacityCore() { var next = NextDrawAs(); @@ -249,14 +255,16 @@ internal class CompositionDrawingContext : IDrawingContextImpl, IDrawingContextW } } - /// - public void PopOpacityMask() + protected override void PopOpacityMaskCore() { + if (!_needsToPopOpacityMask!.Pop()) + return; + var next = NextDrawAs(); if (next == null || !next.Item.Equals(null, null)) { - Add(new OpacityMaskNode()); + Add(new OpacityMaskPopNode()); } else { @@ -264,8 +272,8 @@ internal class CompositionDrawingContext : IDrawingContextImpl, IDrawingContextW } } - /// - public void PushClip(Rect clip) + + protected override void PushClipCore(Rect clip) { var next = NextDrawAs(); @@ -279,8 +287,7 @@ internal class CompositionDrawingContext : IDrawingContextImpl, IDrawingContextW } } - /// - public void PushClip(RoundedRect clip) + protected override void PushClipCore(RoundedRect clip) { var next = NextDrawAs(); @@ -294,26 +301,24 @@ internal class CompositionDrawingContext : IDrawingContextImpl, IDrawingContextW } } - /// - public void PushGeometryClip(IGeometryImpl? clip) + protected override void PushGeometryClipCore(Geometry clip) { - if (clip is null) + if (clip.PlatformImpl is null) return; var next = NextDrawAs(); - if (next == null || !next.Item.Equals(Transform, clip)) + if (next == null || !next.Item.Equals(Transform, clip.PlatformImpl)) { - Add(new GeometryClipNode(Transform, clip)); + Add(new GeometryClipNode(Transform, clip.PlatformImpl)); } else { ++_drawOperationIndex; } } - - /// - public void PushOpacity(double opacity, Rect bounds) + + protected override void PushOpacityCore(double opacity, Rect bounds) { var next = NextDrawAs(); @@ -327,23 +332,30 @@ internal class CompositionDrawingContext : IDrawingContextImpl, IDrawingContextW } } - /// - public void PushOpacityMask(IBrush mask, Rect bounds) + protected override void PushOpacityMaskCore(IBrush mask, Rect bounds) { var next = NextDrawAs(); + bool needsToPop = true; if (next == null || !next.Item.Equals(mask, bounds)) { - Add(new OpacityMaskNode(mask, bounds, CreateChildScene(mask))); + var immutableMask = ConvertBrush(mask); + if (immutableMask != null) + Add(new OpacityMaskNode(immutableMask, bounds)); + else + needsToPop = false; } else { ++_drawOperationIndex; } + + _needsToPopOpacityMask ??= OpacityMaskPopStackPool.Get(); + _needsToPopOpacityMask.Push(needsToPop); } /// - public void PushBitmapBlendMode(BitmapBlendingMode blendingMode) + protected override void PushBitmapBlendModeCore(BitmapBlendingMode blendingMode) { var next = NextDrawAs(); @@ -378,29 +390,12 @@ internal class CompositionDrawingContext : IDrawingContextImpl, IDrawingContextW : null; } - private static IDisposable? CreateChildScene(IBrush? brush) + private IImmutableBrush? ConvertBrush(IBrush? brush) { - if (brush is VisualBrush visualBrush) - { - var visual = visualBrush.Visual; - - if (visual != null) - { - // TODO: This is a temporary solution to make visual brush to work like it does with DeferredRenderer - // We should directly reference the corresponding CompositionVisual (which should - // be attached to the same composition target) like UWP does. - // Render-able visuals shouldn't be dangling unattached - (visual as IVisualBrushInitialize)?.EnsureInitialized(); - - var recorder = new CompositionDrawingContext(); - recorder.BeginUpdate(null); - ImmediateRenderer.Render(visual, new DrawingContext(recorder)); - var drawList = recorder.EndUpdate(); - drawList.Size = visual.Bounds.Size; - - return drawList; - } - } - return null; + if (brush is IMutableBrush mutable) + return mutable.ToImmutable(); + if (brush is ISceneBrush sceneBrush) + return sceneBrush.CreateContent(); + return (IImmutableBrush?)brush; } } diff --git a/src/Avalonia.Base/Rendering/Composition/Server/DrawingContextProxy.cs b/src/Avalonia.Base/Rendering/Composition/Server/DrawingContextProxy.cs index 08e506536f..eaa9a70ca0 100644 --- a/src/Avalonia.Base/Rendering/Composition/Server/DrawingContextProxy.cs +++ b/src/Avalonia.Base/Rendering/Composition/Server/DrawingContextProxy.cs @@ -21,19 +21,10 @@ namespace Avalonia.Rendering.Composition.Server; internal class CompositorDrawingContextProxy : IDrawingContextImpl, IDrawingContextWithAcrylicLikeSupport { private IDrawingContextImpl _impl; - private readonly VisualBrushRenderer _visualBrushRenderer; - public CompositorDrawingContextProxy(IDrawingContextImpl impl, VisualBrushRenderer visualBrushRenderer) + public CompositorDrawingContextProxy(IDrawingContextImpl impl) { _impl = impl; - _visualBrushRenderer = visualBrushRenderer; - } - - // This is a hack to make it work with the current way of handling visual brushes - public CompositionDrawList? VisualBrushDrawList - { - get => _visualBrushRenderer.VisualBrushDrawList; - set => _visualBrushRenderer.VisualBrushDrawList = value; } public Matrix PostTransform { get; set; } = Matrix.Identity; @@ -157,24 +148,7 @@ internal class CompositorDrawingContextProxy : IDrawingContextImpl, IDrawingCont } public object? GetFeature(Type t) => _impl.GetFeature(t); - - public class VisualBrushRenderer : IVisualBrushRenderer - { - public CompositionDrawList? VisualBrushDrawList { get; set; } - public Size GetRenderTargetSize(IVisualBrush brush) - { - return VisualBrushDrawList?.Size ?? default; - } - - public void RenderVisualBrush(IDrawingContextImpl context, IVisualBrush brush) - { - if (VisualBrushDrawList != null) - { - foreach (var cmd in VisualBrushDrawList) - cmd.Item.Render(context); - } - } - } + public void DrawRectangle(IExperimentalAcrylicMaterial material, RoundedRect rect) { diff --git a/src/Avalonia.Base/Rendering/Composition/Server/ServerCompositionTarget.cs b/src/Avalonia.Base/Rendering/Composition/Server/ServerCompositionTarget.cs index 63ec8d756b..977acd8470 100644 --- a/src/Avalonia.Base/Rendering/Composition/Server/ServerCompositionTarget.cs +++ b/src/Avalonia.Base/Rendering/Composition/Server/ServerCompositionTarget.cs @@ -151,7 +151,7 @@ namespace Avalonia.Rendering.Composition.Server Readback.CompleteWrite(Revision); _redrawRequested = false; - using (var targetContext = _renderTarget.CreateDrawingContext(null)) + using (var targetContext = _renderTarget.CreateDrawingContext()) { var layerSize = Size * Scaling; if (layerSize != _layerSize || _layer == null || _layer.IsCorrupted) @@ -165,12 +165,11 @@ namespace Avalonia.Rendering.Composition.Server if (!_dirtyRect.IsDefault) { - var visualBrushHelper = new CompositorDrawingContextProxy.VisualBrushRenderer(); - using (var context = _layer.CreateDrawingContext(visualBrushHelper)) + using (var context = _layer.CreateDrawingContext()) { context.PushClip(_dirtyRect); context.Clear(Colors.Transparent); - Root.Render(new CompositorDrawingContextProxy(context, visualBrushHelper), _dirtyRect); + Root.Render(new CompositorDrawingContextProxy(context), _dirtyRect); context.PopClip(); } } diff --git a/src/Avalonia.Base/Rendering/IVisualBrushRenderer.cs b/src/Avalonia.Base/Rendering/IVisualBrushRenderer.cs deleted file mode 100644 index f5312ad39b..0000000000 --- a/src/Avalonia.Base/Rendering/IVisualBrushRenderer.cs +++ /dev/null @@ -1,29 +0,0 @@ -using Avalonia.Media; -using Avalonia.Metadata; -using Avalonia.Platform; - -namespace Avalonia.Rendering -{ - /// - /// Defines a renderer used to render a visual brush to a bitmap. - /// - [Unstable] - public interface IVisualBrushRenderer - { - /// - /// Gets the size of the intermediate render target to which the visual brush should be - /// drawn. - /// - /// The visual brush. - /// The size of the intermediate render target to create. - Size GetRenderTargetSize(IVisualBrush brush); - - /// - /// Renders a visual brush to a bitmap. - /// - /// The drawing context to render to. - /// The visual brush. - /// A bitmap containing the rendered brush. - void RenderVisualBrush(IDrawingContextImpl context, IVisualBrush brush); - } -} diff --git a/src/Avalonia.Base/Rendering/ImmediateRenderer.cs b/src/Avalonia.Base/Rendering/ImmediateRenderer.cs index 09d2d55ce3..4a12e78817 100644 --- a/src/Avalonia.Base/Rendering/ImmediateRenderer.cs +++ b/src/Avalonia.Base/Rendering/ImmediateRenderer.cs @@ -14,19 +14,8 @@ namespace Avalonia.Rendering /// a simple tree traversal. /// It's currently used mostly for RenderTargetBitmap.Render and VisualBrush /// - internal class ImmediateRenderer : IVisualBrushRenderer//, IRenderer + internal class ImmediateRenderer { - /// - /// Renders a visual to a render target. - /// - /// The visual. - /// The render target. - public static void Render(Visual visual, IRenderTarget target) - { - using var context = new DrawingContext(target.CreateDrawingContext(new ImmediateRenderer())); - Render(context, visual, visual.Bounds); - } - /// /// Renders a visual to a drawing context. /// @@ -36,28 +25,6 @@ namespace Avalonia.Rendering { Render(context, visual, visual.Bounds); } - - - /// - Size IVisualBrushRenderer.GetRenderTargetSize(IVisualBrush brush) - { - (brush.Visual as IVisualBrushInitialize)?.EnsureInitialized(); - return brush.Visual?.Bounds.Size ?? default; - } - - /// - void IVisualBrushRenderer.RenderVisualBrush(IDrawingContextImpl context, IVisualBrush brush) - { - if (brush.Visual is { } visual) - { - Render(new DrawingContext(context), visual, visual.Bounds); - } - } - - internal static void Render(Visual visual, DrawingContext context, bool updateTransformedBounds) - { - Render(context, visual, visual.Bounds); - } private static Rect GetTransformedBounds(Visual visual) { @@ -75,7 +42,7 @@ namespace Avalonia.Rendering } - private static void Render(DrawingContext context, Visual visual, Rect clipRect) + public static void Render(DrawingContext context, Visual visual, Rect clipRect) { var opacity = visual.Opacity; var clipToBounds = visual.ClipToBounds; diff --git a/src/Avalonia.Base/Rendering/SceneGraph/BrushDrawOperation.cs b/src/Avalonia.Base/Rendering/SceneGraph/BrushDrawOperation.cs index e81966ce81..62fc73db44 100644 --- a/src/Avalonia.Base/Rendering/SceneGraph/BrushDrawOperation.cs +++ b/src/Avalonia.Base/Rendering/SceneGraph/BrushDrawOperation.cs @@ -8,22 +8,19 @@ namespace Avalonia.Rendering.SceneGraph /// /// Base class for draw operations that can use a brush. /// - internal abstract class BrushDrawOperation : DrawOperation + internal abstract class BrushDrawOperation : DrawOperationWithTransform { - public BrushDrawOperation(Rect bounds, Matrix transform, IDisposable? aux) + public IImmutableBrush? Brush { get; } + + public BrushDrawOperation(Rect bounds, Matrix transform, IImmutableBrush? brush) : base(bounds, transform) { - Aux = aux; + Brush = brush; } - /// - /// Auxiliary data required to draw the brush - /// - public IDisposable? Aux { get; } - public override void Dispose() { - Aux?.Dispose(); + (Brush as ISceneBrushContent)?.Dispose(); base.Dispose(); } } diff --git a/src/Avalonia.Base/Rendering/SceneGraph/ClipNode.cs b/src/Avalonia.Base/Rendering/SceneGraph/ClipNode.cs index e1bfaa4aa3..782e287989 100644 --- a/src/Avalonia.Base/Rendering/SceneGraph/ClipNode.cs +++ b/src/Avalonia.Base/Rendering/SceneGraph/ClipNode.cs @@ -5,7 +5,7 @@ namespace Avalonia.Rendering.SceneGraph /// /// A node in the scene graph which represents a clip push or pop. /// - internal class ClipNode : IDrawOperation + internal class ClipNode : IDrawOperationWithTransform { /// /// Initializes a new instance of the class that represents a @@ -70,8 +70,6 @@ namespace Avalonia.Rendering.SceneGraph /// public void Render(IDrawingContextImpl context) { - context.Transform = Transform; - if (Clip.HasValue) { context.PushClip(Clip.Value); diff --git a/src/Avalonia.Base/Rendering/SceneGraph/CustomDrawOperation.cs b/src/Avalonia.Base/Rendering/SceneGraph/CustomDrawOperation.cs index b7311936d3..ff2616bfe4 100644 --- a/src/Avalonia.Base/Rendering/SceneGraph/CustomDrawOperation.cs +++ b/src/Avalonia.Base/Rendering/SceneGraph/CustomDrawOperation.cs @@ -4,30 +4,19 @@ using Avalonia.Platform; namespace Avalonia.Rendering.SceneGraph { - internal sealed class CustomDrawOperation : DrawOperation + internal sealed class CustomDrawOperation : DrawOperationWithTransform { - public Matrix Transform { get; } public ICustomDrawOperation Custom { get; } public CustomDrawOperation(ICustomDrawOperation custom, Matrix transform) : base(custom.Bounds, transform) { - Transform = transform; Custom = custom; } - public override bool HitTest(Point p) - { - if (Transform.HasInverse) - { - return Custom.HitTest(p * Transform.Invert()); - } - - return false; - } + public override bool HitTest(Point p) => Custom.HitTest(p); public override void Render(IDrawingContextImpl context) { - context.Transform = Transform; Custom.Render(context); } @@ -37,8 +26,28 @@ namespace Avalonia.Rendering.SceneGraph Transform == transform && Custom?.Equals(custom) == true; } - public interface ICustomDrawOperation : IDrawOperation, IEquatable + public interface ICustomDrawOperation : IEquatable, IDisposable { - + /// + /// Gets the bounds of the visible content in the node in global coordinates. + /// + Rect Bounds { get; } + + /// + /// Hit test the geometry in this node. + /// + /// The point in global coordinates. + /// True if the point hits the node's geometry; otherwise false. + /// + /// This method does not recurse to childs, if you want + /// to hit test children they must be hit tested manually. + /// + bool HitTest(Point p); + + /// + /// Renders the node to a drawing context. + /// + /// The drawing context. + void Render(IDrawingContextImpl context); } } diff --git a/src/Avalonia.Base/Rendering/SceneGraph/DrawOperation.cs b/src/Avalonia.Base/Rendering/SceneGraph/DrawOperation.cs index c49e7705e0..5b93cd8cfc 100644 --- a/src/Avalonia.Base/Rendering/SceneGraph/DrawOperation.cs +++ b/src/Avalonia.Base/Rendering/SceneGraph/DrawOperation.cs @@ -28,4 +28,14 @@ namespace Avalonia.Rendering.SceneGraph { } } + + internal abstract class DrawOperationWithTransform : DrawOperation, IDrawOperationWithTransform + { + protected DrawOperationWithTransform(Rect bounds, Matrix transform) : base(bounds, transform) + { + Transform = transform; + } + + public Matrix Transform { get; } + } } diff --git a/src/Avalonia.Base/Rendering/SceneGraph/EllipseNode.cs b/src/Avalonia.Base/Rendering/SceneGraph/EllipseNode.cs index 4600653b9d..d5f0270cb2 100644 --- a/src/Avalonia.Base/Rendering/SceneGraph/EllipseNode.cs +++ b/src/Avalonia.Base/Rendering/SceneGraph/EllipseNode.cs @@ -14,33 +14,20 @@ namespace Avalonia.Rendering.SceneGraph { public EllipseNode( Matrix transform, - IBrush? brush, + IImmutableBrush? brush, IPen? pen, - Rect rect, - IDisposable? aux = null) - : base(rect.Inflate(pen?.Thickness ?? 0), transform, aux) + Rect rect) + : base(rect.Inflate(pen?.Thickness ?? 0), transform, brush) { - Transform = transform; - Brush = brush?.ToImmutable(); Pen = pen?.ToImmutable(); Rect = rect; } - /// - /// Gets the fill brush. - /// - public IBrush? Brush { get; } - /// /// Gets the stroke pen. /// public ImmutablePen? Pen { get; } - /// - /// Gets the transform with which the node will be drawn. - /// - public Matrix Transform { get; } - /// /// Gets the rect of the ellipse to draw. /// @@ -54,21 +41,10 @@ namespace Avalonia.Rendering.SceneGraph rect.Equals(Rect); } - public override void Render(IDrawingContextImpl context) - { - context.Transform = Transform; - context.DrawEllipse(Brush, Pen, Rect); - } + public override void Render(IDrawingContextImpl context) => context.DrawEllipse(Brush, Pen, Rect); public override bool HitTest(Point p) { - if (!Transform.TryInvert(out Matrix inverted)) - { - return false; - } - - p *= inverted; - var center = Rect.Center; var strokeThickness = Pen?.Thickness ?? 0; @@ -112,5 +88,10 @@ namespace Avalonia.Rendering.SceneGraph return false; } + + public override void Dispose() + { + (Brush as ISceneBrushContent)?.Dispose(); + } } } diff --git a/src/Avalonia.Base/Rendering/SceneGraph/ExperimentalAcrylicNode.cs b/src/Avalonia.Base/Rendering/SceneGraph/ExperimentalAcrylicNode.cs index 82f8fc2d56..e1f79e0e10 100644 --- a/src/Avalonia.Base/Rendering/SceneGraph/ExperimentalAcrylicNode.cs +++ b/src/Avalonia.Base/Rendering/SceneGraph/ExperimentalAcrylicNode.cs @@ -8,7 +8,7 @@ namespace Avalonia.Rendering.SceneGraph /// /// A node in the scene graph which represents a rectangle draw. /// - internal class ExperimentalAcrylicNode : DrawOperation + internal class ExperimentalAcrylicNode : DrawOperationWithTransform { /// /// Initializes a new instance of the class. @@ -22,16 +22,10 @@ namespace Avalonia.Rendering.SceneGraph RoundedRect rect) : base(rect.Rect, transform) { - Transform = transform; Material = material.ToImmutable(); Rect = rect; } - /// - /// Gets the transform with which the node will be drawn. - /// - public Matrix Transform { get; } - public IExperimentalAcrylicMaterial Material { get; } /// @@ -60,8 +54,6 @@ namespace Avalonia.Rendering.SceneGraph /// public override void Render(IDrawingContextImpl context) { - context.Transform = Transform; - if(context is IDrawingContextWithAcrylicLikeSupport idc) { idc.DrawRectangle(Material, Rect); @@ -73,18 +65,6 @@ namespace Avalonia.Rendering.SceneGraph } /// - public override bool HitTest(Point p) - { - // TODO: This doesn't respect CornerRadius yet. - if (Transform.HasInverse) - { - p *= Transform.Invert(); - - var rect = Rect.Rect; - return rect.ContainsExclusive(p); - } - - return false; - } + public override bool HitTest(Point p) => Rect.Rect.ContainsExclusive(p); } } diff --git a/src/Avalonia.Base/Rendering/SceneGraph/GeometryClipNode.cs b/src/Avalonia.Base/Rendering/SceneGraph/GeometryClipNode.cs index 842edf2bcb..8575e61de4 100644 --- a/src/Avalonia.Base/Rendering/SceneGraph/GeometryClipNode.cs +++ b/src/Avalonia.Base/Rendering/SceneGraph/GeometryClipNode.cs @@ -5,7 +5,7 @@ namespace Avalonia.Rendering.SceneGraph /// /// A node in the scene graph which represents a geometry clip push or pop. /// - internal class GeometryClipNode : IDrawOperation + internal class GeometryClipNode : IDrawOperationWithTransform { /// /// Initializes a new instance of the class that represents a @@ -58,8 +58,6 @@ namespace Avalonia.Rendering.SceneGraph /// public void Render(IDrawingContextImpl context) { - context.Transform = Transform; - if (Clip != null) { context.PushGeometryClip(Clip); diff --git a/src/Avalonia.Base/Rendering/SceneGraph/GeometryNode.cs b/src/Avalonia.Base/Rendering/SceneGraph/GeometryNode.cs index cf53b86fa7..3ab535897a 100644 --- a/src/Avalonia.Base/Rendering/SceneGraph/GeometryNode.cs +++ b/src/Avalonia.Base/Rendering/SceneGraph/GeometryNode.cs @@ -19,28 +19,15 @@ namespace Avalonia.Rendering.SceneGraph /// The geometry. /// Auxiliary data required to draw the brush. public GeometryNode(Matrix transform, - IBrush? brush, + IImmutableBrush? brush, IPen? pen, - IGeometryImpl geometry, - IDisposable? aux) - : base(geometry.GetRenderBounds(pen).CalculateBoundsWithLineCaps(pen), transform, aux) + IGeometryImpl geometry) + : base(geometry.GetRenderBounds(pen).CalculateBoundsWithLineCaps(pen), transform, brush) { - Transform = transform; - Brush = brush?.ToImmutable(); Pen = pen?.ToImmutable(); Geometry = geometry; } - /// - /// Gets the transform with which the node will be drawn. - /// - public Matrix Transform { get; } - - /// - /// Gets the fill brush. - /// - public IBrush? Brush { get; } - /// /// Gets the stroke pen. /// @@ -74,21 +61,14 @@ namespace Avalonia.Rendering.SceneGraph /// public override void Render(IDrawingContextImpl context) { - context.Transform = Transform; context.DrawGeometry(Brush, Pen, Geometry); } /// public override bool HitTest(Point p) { - if (Transform.HasInverse) - { - p *= Transform.Invert(); - return (Brush != null && Geometry.FillContains(p)) || - (Pen != null && Geometry.StrokeContains(Pen, p)); - } - - return false; + return (Brush != null && Geometry.FillContains(p)) || + (Pen != null && Geometry.StrokeContains(Pen, p)); } } } diff --git a/src/Avalonia.Base/Rendering/SceneGraph/GlyphRunNode.cs b/src/Avalonia.Base/Rendering/SceneGraph/GlyphRunNode.cs index a2d914bdd7..4d8759f545 100644 --- a/src/Avalonia.Base/Rendering/SceneGraph/GlyphRunNode.cs +++ b/src/Avalonia.Base/Rendering/SceneGraph/GlyphRunNode.cs @@ -19,37 +19,21 @@ namespace Avalonia.Rendering.SceneGraph /// Auxiliary data required to draw the brush. public GlyphRunNode( Matrix transform, - IBrush foreground, - IRef glyphRun, - IDisposable? aux = null) - : base(new Rect(glyphRun.Item.Size), transform, aux) + IImmutableBrush foreground, + IRef glyphRun) + : base(new Rect(glyphRun.Item.Size), transform, foreground) { - Transform = transform; - Foreground = foreground.ToImmutable(); GlyphRun = glyphRun.Clone(); } - - /// - /// Gets the transform with which the node will be drawn. - /// - public Matrix Transform { get; } - - /// - /// Gets the foreground brush. - /// - public IBrush Foreground { get; } - + + /// /// Gets the glyph run to draw. /// public IRef GlyphRun { get; } /// - public override void Render(IDrawingContextImpl context) - { - context.Transform = Transform; - context.DrawGlyphRun(Foreground, GlyphRun); - } + public override void Render(IDrawingContextImpl context) => context.DrawGlyphRun(Brush, GlyphRun); /// /// Determines if this draw operation equals another. @@ -65,16 +49,17 @@ namespace Avalonia.Rendering.SceneGraph internal bool Equals(Matrix transform, IBrush foreground, IRef glyphRun) { return transform == Transform && - Equals(foreground, Foreground) && + Equals(foreground, Brush) && Equals(glyphRun.Item, GlyphRun.Item); } /// - public override bool HitTest(Point p) => Bounds.ContainsExclusive(p); + public override bool HitTest(Point p) => new Rect(GlyphRun.Item.Size).ContainsExclusive(p); public override void Dispose() { GlyphRun?.Dispose(); + base.Dispose(); } } } diff --git a/src/Avalonia.Base/Rendering/SceneGraph/IDrawOperation.cs b/src/Avalonia.Base/Rendering/SceneGraph/IDrawOperation.cs index 2bfd2080c3..6a1aefe6b2 100644 --- a/src/Avalonia.Base/Rendering/SceneGraph/IDrawOperation.cs +++ b/src/Avalonia.Base/Rendering/SceneGraph/IDrawOperation.cs @@ -6,7 +6,7 @@ namespace Avalonia.Rendering.SceneGraph /// /// Represents a node in the low-level scene graph that represents geometry. /// - public interface IDrawOperation : IDisposable + internal interface IDrawOperation : IDisposable { /// /// Gets the bounds of the visible content in the node in global coordinates. @@ -30,4 +30,12 @@ namespace Avalonia.Rendering.SceneGraph /// The drawing context. void Render(IDrawingContextImpl context); } + + internal interface IDrawOperationWithTransform : IDrawOperation + { + /// + /// Gets the transform with which the node will be drawn. + /// + Matrix Transform { get; } + } } diff --git a/src/Avalonia.Base/Rendering/SceneGraph/ImageNode.cs b/src/Avalonia.Base/Rendering/SceneGraph/ImageNode.cs index 339881e675..dd9787e8d1 100644 --- a/src/Avalonia.Base/Rendering/SceneGraph/ImageNode.cs +++ b/src/Avalonia.Base/Rendering/SceneGraph/ImageNode.cs @@ -7,7 +7,7 @@ namespace Avalonia.Rendering.SceneGraph /// /// A node in the scene graph which represents an image draw. /// - internal class ImageNode : DrawOperation + internal class ImageNode : DrawOperationWithTransform { /// /// Initializes a new instance of the class. @@ -21,19 +21,13 @@ namespace Avalonia.Rendering.SceneGraph public ImageNode(Matrix transform, IRef source, double opacity, Rect sourceRect, Rect destRect, BitmapInterpolationMode bitmapInterpolationMode) : base(destRect, transform) { - Transform = transform; Source = source.Clone(); Opacity = opacity; SourceRect = sourceRect; DestRect = destRect; BitmapInterpolationMode = bitmapInterpolationMode; SourceVersion = Source.Item.Version; - } - - /// - /// Gets the transform with which the node will be drawn. - /// - public Matrix Transform { get; } + } /// /// Gets the image to draw. @@ -68,14 +62,6 @@ namespace Avalonia.Rendering.SceneGraph /// public BitmapInterpolationMode BitmapInterpolationMode { get; } - /// - /// The bitmap blending mode. - /// - /// - /// The blending mode. - /// - public BitmapBlendingMode BitmapBlendingMode { get; } - /// /// Determines if this draw operation equals another. /// @@ -104,12 +90,11 @@ namespace Avalonia.Rendering.SceneGraph /// public override void Render(IDrawingContextImpl context) { - context.Transform = Transform; context.DrawBitmap(Source, Opacity, SourceRect, DestRect, BitmapInterpolationMode); } /// - public override bool HitTest(Point p) => Bounds.ContainsExclusive(p); + public override bool HitTest(Point p) => DestRect.ContainsExclusive(p); public override void Dispose() { diff --git a/src/Avalonia.Base/Rendering/SceneGraph/LineNode.cs b/src/Avalonia.Base/Rendering/SceneGraph/LineNode.cs index 0af8ba2752..f21791d038 100644 --- a/src/Avalonia.Base/Rendering/SceneGraph/LineNode.cs +++ b/src/Avalonia.Base/Rendering/SceneGraph/LineNode.cs @@ -8,7 +8,7 @@ namespace Avalonia.Rendering.SceneGraph /// /// A node in the scene graph which represents a line draw. /// - internal class LineNode : BrushDrawOperation + internal class LineNode : DrawOperationWithTransform { /// /// Initializes a new instance of the class. @@ -22,21 +22,14 @@ namespace Avalonia.Rendering.SceneGraph Matrix transform, IPen pen, Point p1, - Point p2, - IDisposable? aux = null) - : base(LineBoundsHelper.CalculateBounds(p1, p2, pen), transform, aux) + Point p2) + : base(LineBoundsHelper.CalculateBounds(p1, p2, pen), transform) { - Transform = transform; Pen = pen.ToImmutable(); P1 = p1; P2 = p2; } - /// - /// Gets the transform with which the node will be drawn. - /// - public Matrix Transform { get; } - /// /// Gets the stroke pen. /// @@ -71,17 +64,11 @@ namespace Avalonia.Rendering.SceneGraph public override void Render(IDrawingContextImpl context) { - context.Transform = Transform; context.DrawLine(Pen, P1, P2); } public override bool HitTest(Point p) { - if (!Transform.HasInverse) - return false; - - p *= Transform.Invert(); - var halfThickness = Pen.Thickness / 2; var minX = Math.Min(P1.X, P2.X) - halfThickness; var maxX = Math.Max(P1.X, P2.X) + halfThickness; diff --git a/src/Avalonia.Base/Rendering/SceneGraph/OpacityMaskNode.cs b/src/Avalonia.Base/Rendering/SceneGraph/OpacityMaskNode.cs index 3ecc07fa54..e10d712c2d 100644 --- a/src/Avalonia.Base/Rendering/SceneGraph/OpacityMaskNode.cs +++ b/src/Avalonia.Base/Rendering/SceneGraph/OpacityMaskNode.cs @@ -18,27 +18,12 @@ namespace Avalonia.Rendering.SceneGraph /// The opacity mask to push. /// The bounds of the mask. /// Auxiliary data required to draw the brush. - public OpacityMaskNode(IBrush mask, Rect bounds, IDisposable? aux = null) - : base(default, Matrix.Identity, aux) + public OpacityMaskNode(IImmutableBrush mask, Rect bounds) + : base(default, Matrix.Identity, mask) { - Mask = mask.ToImmutable(); MaskBounds = bounds; } - /// - /// Initializes a new instance of the class that represents an - /// opacity mask pop. - /// - public OpacityMaskNode() - : base(default, Matrix.Identity, null) - { - } - - /// - /// Gets the mask to be pushed or null if the operation represents a pop. - /// - public IBrush? Mask { get; } - /// /// Gets the bounds of the opacity mask or null if the operation represents a pop. /// @@ -58,19 +43,23 @@ namespace Avalonia.Rendering.SceneGraph /// The properties of the other draw operation are passed in as arguments to prevent /// allocation of a not-yet-constructed draw operation object. /// - public bool Equals(IBrush? mask, Rect? bounds) => Mask == mask && MaskBounds == bounds; + public bool Equals(IBrush? mask, Rect? bounds) => Equals(Brush, mask) && MaskBounds == bounds; /// public override void Render(IDrawingContextImpl context) { - if (Mask != null) - { - context.PushOpacityMask(Mask, MaskBounds!.Value); - } - else - { - context.PopOpacityMask(); - } + context.PushOpacityMask(Brush!, MaskBounds!.Value); } } + + internal class OpacityMaskPopNode : DrawOperation + { + public OpacityMaskPopNode() : base(default, Matrix.Identity) + { + } + + public override bool HitTest(Point p) => false; + + public override void Render(IDrawingContextImpl context) => context.PopOpacityMask(); + } } diff --git a/src/Avalonia.Base/Rendering/SceneGraph/RectangleNode.cs b/src/Avalonia.Base/Rendering/SceneGraph/RectangleNode.cs index f2ffd7411c..cee9ce9df7 100644 --- a/src/Avalonia.Base/Rendering/SceneGraph/RectangleNode.cs +++ b/src/Avalonia.Base/Rendering/SceneGraph/RectangleNode.cs @@ -23,30 +23,17 @@ namespace Avalonia.Rendering.SceneGraph /// Auxiliary data required to draw the brush. public RectangleNode( Matrix transform, - IBrush? brush, + IImmutableBrush? brush, IPen? pen, RoundedRect rect, - BoxShadows boxShadows, - IDisposable? aux = null) - : base(boxShadows.TransformBounds(rect.Rect).Inflate((pen?.Thickness ?? 0) / 2), transform, aux) + BoxShadows boxShadows) + : base(boxShadows.TransformBounds(rect.Rect).Inflate((pen?.Thickness ?? 0) / 2), transform, brush) { - Transform = transform; - Brush = brush?.ToImmutable(); Pen = pen?.ToImmutable(); Rect = rect; BoxShadows = boxShadows; } - /// - /// Gets the transform with which the node will be drawn. - /// - public Matrix Transform { get; } - - /// - /// Gets the fill brush. - /// - public IBrush? Brush { get; } - /// /// Gets the stroke pen. /// @@ -85,35 +72,22 @@ namespace Avalonia.Rendering.SceneGraph } /// - public override void Render(IDrawingContextImpl context) - { - context.Transform = Transform; - - context.DrawRectangle(Brush, Pen, Rect, BoxShadows); - } + public override void Render(IDrawingContextImpl context) => context.DrawRectangle(Brush, Pen, Rect, BoxShadows); /// public override bool HitTest(Point p) { - // TODO: This doesn't respect CornerRadius yet. - if (Transform.HasInverse) + if (Brush != null) { - p *= Transform.Invert(); - - if (Brush != null) - { - var rect = Rect.Rect.Inflate((Pen?.Thickness / 2) ?? 0); - return rect.ContainsExclusive(p); - } - else - { - var borderRect = Rect.Rect.Inflate((Pen?.Thickness / 2) ?? 0); - var emptyRect = Rect.Rect.Deflate((Pen?.Thickness / 2) ?? 0); - return borderRect.ContainsExclusive(p) && !emptyRect.ContainsExclusive(p); - } + var rect = Rect.Rect.Inflate((Pen?.Thickness / 2) ?? 0); + return rect.ContainsExclusive(p); + } + else + { + var borderRect = Rect.Rect.Inflate((Pen?.Thickness / 2) ?? 0); + var emptyRect = Rect.Rect.Deflate((Pen?.Thickness / 2) ?? 0); + return borderRect.ContainsExclusive(p) && !emptyRect.ContainsExclusive(p); } - - return false; } } } diff --git a/src/Avalonia.Base/Threading/ThreadSafeObjectPool.cs b/src/Avalonia.Base/Threading/ThreadSafeObjectPool.cs index 827a02334a..30b7738409 100644 --- a/src/Avalonia.Base/Threading/ThreadSafeObjectPool.cs +++ b/src/Avalonia.Base/Threading/ThreadSafeObjectPool.cs @@ -2,7 +2,7 @@ using System.Collections.Generic; namespace Avalonia.Threading { - public class ThreadSafeObjectPool where T : class, new() + internal class ThreadSafeObjectPool where T : class, new() { private Stack _stack = new Stack(); public static ThreadSafeObjectPool Default { get; } = new ThreadSafeObjectPool(); @@ -17,11 +17,14 @@ namespace Avalonia.Threading } } - public void Return(T obj) + public void ReturnAndSetNull(ref T? obj) { + if (obj == null) + return; lock (_stack) { _stack.Push(obj); + obj = null; } } } diff --git a/src/Avalonia.Controls/ExperimentalAcrylicBorder.cs b/src/Avalonia.Controls/ExperimentalAcrylicBorder.cs index e1f840672d..dbffb803a3 100644 --- a/src/Avalonia.Controls/ExperimentalAcrylicBorder.cs +++ b/src/Avalonia.Controls/ExperimentalAcrylicBorder.cs @@ -82,7 +82,7 @@ namespace Avalonia.Controls public sealed override void Render(DrawingContext context) { - if (context.PlatformImpl is IDrawingContextWithAcrylicLikeSupport idc) + if (context is IDrawingContextWithAcrylicLikeSupport idc) { var cornerRadius = CornerRadius; diff --git a/src/Avalonia.Controls/Utils/BorderRenderHelper.cs b/src/Avalonia.Controls/Utils/BorderRenderHelper.cs index 6239a5120d..799cc47d0c 100644 --- a/src/Avalonia.Controls/Utils/BorderRenderHelper.cs +++ b/src/Avalonia.Controls/Utils/BorderRenderHelper.cs @@ -148,7 +148,7 @@ namespace Avalonia.Controls.Utils var rrect = new RoundedRect(rect, _cornerRadius.TopLeft, _cornerRadius.TopRight, _cornerRadius.BottomRight, _cornerRadius.BottomLeft); - context.PlatformImpl.DrawRectangle(background, pen, rrect, boxShadows); + context.DrawRectangle(background, pen, rrect, boxShadows); } } diff --git a/src/Avalonia.Headless/HeadlessPlatformRenderInterface.cs b/src/Avalonia.Headless/HeadlessPlatformRenderInterface.cs index 5b84ceef7f..31aaebcdc7 100644 --- a/src/Avalonia.Headless/HeadlessPlatformRenderInterface.cs +++ b/src/Avalonia.Headless/HeadlessPlatformRenderInterface.cs @@ -325,7 +325,7 @@ namespace Avalonia.Headless } - public IDrawingContextImpl CreateDrawingContext(IVisualBrushRenderer visualBrushRenderer) + public IDrawingContextImpl CreateDrawingContext() { return new HeadlessDrawingContextStub(); } @@ -491,7 +491,7 @@ namespace Avalonia.Headless } - public IDrawingContextImpl CreateDrawingContext(IVisualBrushRenderer visualBrushRenderer) + public IDrawingContextImpl CreateDrawingContext() { return new HeadlessDrawingContextStub(); } diff --git a/src/Avalonia.X11/X11CursorFactory.cs b/src/Avalonia.X11/X11CursorFactory.cs index 56fd2f14ef..13068832fb 100644 --- a/src/Avalonia.X11/X11CursorFactory.cs +++ b/src/Avalonia.X11/X11CursorFactory.cs @@ -115,7 +115,7 @@ namespace Avalonia.X11 using (var cpuContext = platformRenderInterface.CreateBackendContext(null)) using (var renderTarget = cpuContext.CreateRenderTarget(new[] { this })) - using (var ctx = renderTarget.CreateDrawingContext(null)) + using (var ctx = renderTarget.CreateDrawingContext()) { var r = new Rect(_pixelSize.ToSize(1)); ctx.DrawBitmap(RefCountable.CreateUnownedNotClonable(bitmap), 1, r, r); diff --git a/src/Avalonia.X11/X11IconLoader.cs b/src/Avalonia.X11/X11IconLoader.cs index 51db815b31..84a1d35712 100644 --- a/src/Avalonia.X11/X11IconLoader.cs +++ b/src/Avalonia.X11/X11IconLoader.cs @@ -43,7 +43,7 @@ namespace Avalonia.X11 _bdata = new uint[_width * _height]; using(var cpuContext = AvaloniaLocator.Current.GetRequiredService().CreateBackendContext(null)) using(var rt = cpuContext.CreateRenderTarget(new[]{this})) - using (var ctx = rt.CreateDrawingContext(null)) + using (var ctx = rt.CreateDrawingContext()) ctx.DrawBitmap(bitmap.PlatformImpl, 1, new Rect(bitmap.Size), new Rect(0, 0, _width, _height)); Data = new UIntPtr[_width * _height + 2]; diff --git a/src/Skia/Avalonia.Skia/DrawingContextImpl.cs b/src/Skia/Avalonia.Skia/DrawingContextImpl.cs index 969f0b5e2a..db7b068543 100644 --- a/src/Skia/Avalonia.Skia/DrawingContextImpl.cs +++ b/src/Skia/Avalonia.Skia/DrawingContextImpl.cs @@ -10,7 +10,9 @@ using Avalonia.Rendering.SceneGraph; using Avalonia.Rendering.Utilities; using Avalonia.Utilities; using Avalonia.Media.Imaging; +using Avalonia.Skia.Helpers; using SkiaSharp; +using ISceneBrush = Avalonia.Media.ISceneBrush; namespace Avalonia.Skia { @@ -25,7 +27,6 @@ namespace Avalonia.Skia private readonly Stack _opacityStack = new(); private readonly Stack _blendingModeStack = new(); private readonly Matrix? _postTransform; - private readonly IVisualBrushRenderer? _visualBrushRenderer; private double _currentOpacity = 1.0f; private BitmapBlendingMode _currentBlendingMode = BitmapBlendingMode.SourceOver; private readonly bool _canTextUseLcdRendering; @@ -61,12 +62,7 @@ namespace Avalonia.Skia /// Dpi of drawings. /// public Vector Dpi; - - /// - /// Visual brush renderer. - /// - public IVisualBrushRenderer? VisualBrushRenderer; - + /// /// Render text without Lcd rendering. /// @@ -141,7 +137,6 @@ namespace Avalonia.Skia ?? throw new ArgumentException("Invalid create info - no Canvas provided", nameof(createInfo)); _dpi = createInfo.Dpi; - _visualBrushRenderer = createInfo.VisualBrushRenderer; _disposables = disposables; _canTextUseLcdRendering = !createInfo.DisableTextLcdRendering; _grContext = createInfo.GrContext; @@ -908,7 +903,7 @@ namespace Avalonia.Skia paintWrapper.AddDisposable(intermediate); - using (var context = intermediate.CreateDrawingContext(null)) + using (var context = intermediate.CreateDrawingContext()) { var sourceRect = new Rect(tileBrushImage.PixelSize.ToSizeWithDpi(96)); var targetRect = new Rect(tileBrushImage.PixelSize.ToSizeWithDpi(_dpi)); @@ -970,36 +965,98 @@ namespace Avalonia.Skia } } - /// - /// Configure paint wrapper to use visual brush. - /// - /// Paint wrapper. - /// Visual brush. - /// Visual brush renderer. - /// Tile brush image. - private void ConfigureVisualBrush(ref PaintWrapper paintWrapper, IVisualBrush visualBrush, - IVisualBrushRenderer? visualBrushRenderer, ref IDrawableBitmapImpl? tileBrushImage) + private void ConfigureSceneBrushContent(ref PaintWrapper paintWrapper, ISceneBrushContent content, + Size targetSize) { - if (visualBrushRenderer == null) - { - throw new NotSupportedException("No IVisualBrushRenderer was supplied to DrawingContextImpl."); - } - - var intermediateSize = visualBrushRenderer.GetRenderTargetSize(visualBrush); + if(content.UseScalableRasterization) + ConfigureSceneBrushContentWithPicture(ref paintWrapper, content, targetSize); + else + ConfigureSceneBrushContentWithSurface(ref paintWrapper, content, targetSize); + } + + private void ConfigureSceneBrushContentWithSurface(ref PaintWrapper paintWrapper, ISceneBrushContent content, + Size targetSize) + { + var rect = content.Rect; + var intermediateSize = rect.Size; if (intermediateSize.Width >= 1 && intermediateSize.Height >= 1) { - var intermediate = CreateRenderTarget(intermediateSize, false); + using var intermediate = CreateRenderTarget(intermediateSize, false); - using (var ctx = intermediate.CreateDrawingContext(visualBrushRenderer)) + using (var ctx = intermediate.CreateDrawingContext()) { ctx.Clear(Colors.Transparent); - - visualBrushRenderer.RenderVisualBrush(ctx, visualBrush); + content.Render(ctx, rect.TopLeft == default ? null : Matrix.CreateTranslation(-rect.X, -rect.Y)); } - tileBrushImage = intermediate; - paintWrapper.AddDisposable(tileBrushImage); + ConfigureTileBrush(ref paintWrapper, targetSize, content.Brush, intermediate); + } + } + + private void ConfigureSceneBrushContentWithPicture(ref PaintWrapper paintWrapper, ISceneBrushContent content, + Size targetSize) + { + var rect = content.Rect; + var contentSize = rect.Size; + if (contentSize.Width <= 0 || contentSize.Height <= 0) + { + paintWrapper.Paint.Color = SKColor.Empty; + return; + } + + var tileBrush = content.Brush; + var transform = rect.TopLeft == default ? Matrix.Identity : Matrix.CreateTranslation(-rect.X, -rect.Y); + + var calc = new TileBrushCalculator(tileBrush, contentSize, targetSize); + transform *= calc.IntermediateTransform; + + using var pictureTarget = new PictureRenderTarget(_gpu, _grContext, _dpi); + using (var ctx = pictureTarget.CreateDrawingContext(calc.IntermediateSize)) + { + ctx.PushClip(calc.IntermediateClip); + content.Render(ctx, transform); + ctx.PopClip(); + } + + using var picture = pictureTarget.GetPicture(); + + var paintTransform = + tileBrush.TileMode != TileMode.None + ? SKMatrix.CreateTranslation(-(float)calc.DestinationRect.X, -(float)calc.DestinationRect.Y) + : SKMatrix.CreateIdentity(); + + SKShaderTileMode tileX = + tileBrush.TileMode == TileMode.None + ? SKShaderTileMode.Clamp + : tileBrush.TileMode == TileMode.FlipX || tileBrush.TileMode == TileMode.FlipXY + ? SKShaderTileMode.Mirror + : SKShaderTileMode.Repeat; + + SKShaderTileMode tileY = + tileBrush.TileMode == TileMode.None + ? SKShaderTileMode.Clamp + : tileBrush.TileMode == TileMode.FlipY || tileBrush.TileMode == TileMode.FlipXY + ? SKShaderTileMode.Mirror + : SKShaderTileMode.Repeat; + + paintTransform = SKMatrix.Concat(paintTransform, + SKMatrix.CreateScale((float)(96.0 / _dpi.X), (float)(96.0 / _dpi.Y))); + + if (tileBrush.Transform is { }) + { + var origin = tileBrush.TransformOrigin.ToPixels(targetSize); + var offset = Matrix.CreateTranslation(origin); + var brushTransform = (-offset) * tileBrush.Transform.Value * (offset); + + paintTransform = paintTransform.PreConcat(brushTransform.ToSKMatrix()); + } + + using (var shader = picture.ToShader(tileX, tileY, paintTransform, + new SKRect(0, 0, picture.CullRect.Width, picture.CullRect.Height))) + { + paintWrapper.Paint.FilterQuality = SKFilterQuality.None; + paintWrapper.Paint.Shader = shader; } } @@ -1113,12 +1170,25 @@ namespace Avalonia.Skia } var tileBrush = brush as ITileBrush; - var visualBrush = brush as IVisualBrush; var tileBrushImage = default(IDrawableBitmapImpl); - if (visualBrush != null) + if (brush is ISceneBrush sceneBrush) { - ConfigureVisualBrush(ref paintWrapper, visualBrush, _visualBrushRenderer, ref tileBrushImage); + using (var content = sceneBrush.CreateContent()) + { + if (content != null) + { + ConfigureSceneBrushContent(ref paintWrapper, content, targetSize); + return paintWrapper; + } + else + paint.Color = default; + } + } + else if (brush is ISceneBrushContent sceneBrushContent) + { + ConfigureSceneBrushContent(ref paintWrapper, sceneBrushContent, targetSize); + return paintWrapper; } else { diff --git a/src/Skia/Avalonia.Skia/FramebufferRenderTarget.cs b/src/Skia/Avalonia.Skia/FramebufferRenderTarget.cs index f1216100bc..a22b67e09e 100644 --- a/src/Skia/Avalonia.Skia/FramebufferRenderTarget.cs +++ b/src/Skia/Avalonia.Skia/FramebufferRenderTarget.cs @@ -36,7 +36,7 @@ namespace Avalonia.Skia } /// - public IDrawingContextImpl CreateDrawingContext(IVisualBrushRenderer? visualBrushRenderer) + public IDrawingContextImpl CreateDrawingContext() { var framebuffer = _platformSurface.Lock(); var framebufferImageInfo = new SKImageInfo(framebuffer.Size.Width, framebuffer.Size.Height, @@ -55,7 +55,6 @@ namespace Avalonia.Skia { Surface = _framebufferSurface, Dpi = framebuffer.Dpi, - VisualBrushRenderer = visualBrushRenderer, DisableTextLcdRendering = true }; diff --git a/src/Skia/Avalonia.Skia/Gpu/SkiaGpuRenderTarget.cs b/src/Skia/Avalonia.Skia/Gpu/SkiaGpuRenderTarget.cs index 7f9108481d..797c565ca1 100644 --- a/src/Skia/Avalonia.Skia/Gpu/SkiaGpuRenderTarget.cs +++ b/src/Skia/Avalonia.Skia/Gpu/SkiaGpuRenderTarget.cs @@ -22,7 +22,7 @@ namespace Avalonia.Skia _renderTarget.Dispose(); } - public IDrawingContextImpl CreateDrawingContext(IVisualBrushRenderer? visualBrushRenderer) + public IDrawingContextImpl CreateDrawingContext() { var session = _renderTarget.BeginRenderingSession(); @@ -31,7 +31,6 @@ namespace Avalonia.Skia GrContext = session.GrContext, Surface = session.SkSurface, Dpi = SkiaPlatform.DefaultDpi * session.ScaleFactor, - VisualBrushRenderer = visualBrushRenderer, DisableTextLcdRendering = true, Gpu = _skiaGpu, CurrentSession = session diff --git a/src/Skia/Avalonia.Skia/Helpers/DrawingContextHelper.cs b/src/Skia/Avalonia.Skia/Helpers/DrawingContextHelper.cs index 4d8afe9830..ec24f8f624 100644 --- a/src/Skia/Avalonia.Skia/Helpers/DrawingContextHelper.cs +++ b/src/Skia/Avalonia.Skia/Helpers/DrawingContextHelper.cs @@ -15,13 +15,12 @@ namespace Avalonia.Skia.Helpers /// /// /// DrawingContext - public static IDrawingContextImpl WrapSkiaCanvas(SKCanvas canvas, Vector dpi, IVisualBrushRenderer? visualBrushRenderer = null) + public static IDrawingContextImpl WrapSkiaCanvas(SKCanvas canvas, Vector dpi) { var createInfo = new DrawingContextImpl.CreateInfo { Canvas = canvas, Dpi = dpi, - VisualBrushRenderer = visualBrushRenderer, DisableTextLcdRendering = true, }; diff --git a/src/Skia/Avalonia.Skia/Helpers/ImageSavingHelper.cs b/src/Skia/Avalonia.Skia/Helpers/ImageSavingHelper.cs index 4cb1430a3b..6adfc01951 100644 --- a/src/Skia/Avalonia.Skia/Helpers/ImageSavingHelper.cs +++ b/src/Skia/Avalonia.Skia/Helpers/ImageSavingHelper.cs @@ -60,5 +60,15 @@ namespace Avalonia.Skia.Helpers } } } + + // This method is here mostly for debugging purposes + internal static void SavePicture(SKPicture picture, float scale, string path) + { + var snapshotSize = new SKSizeI((int)Math.Ceiling(picture.CullRect.Width * scale), + (int)Math.Ceiling(picture.CullRect.Height * scale)); + using var snap = + SKImage.FromPicture(picture, snapshotSize, SKMatrix.CreateScale(scale, scale)); + SaveImage(snap, path); + } } } diff --git a/src/Skia/Avalonia.Skia/PictureRenderTarget.cs b/src/Skia/Avalonia.Skia/PictureRenderTarget.cs new file mode 100644 index 0000000000..280b7c27cd --- /dev/null +++ b/src/Skia/Avalonia.Skia/PictureRenderTarget.cs @@ -0,0 +1,55 @@ +using System; +using Avalonia.Platform; +using Avalonia.Reactive; +using SkiaSharp; + +namespace Avalonia.Skia; + +internal class PictureRenderTarget : IDisposable +{ + private readonly ISkiaGpu? _gpu; + private readonly GRContext? _grContext; + private readonly Vector _dpi; + private SKPicture? _picture; + + public PictureRenderTarget(ISkiaGpu? gpu, GRContext? grContext, Vector dpi) + { + _gpu = gpu; + _grContext = grContext; + _dpi = dpi; + } + + public SKPicture GetPicture() + { + var rv = _picture ?? throw new InvalidOperationException(); + _picture = null; + return rv; + } + + public IDrawingContextImpl CreateDrawingContext(Size size) + { + var recorder = new SKPictureRecorder(); + var canvas = recorder.BeginRecording(new SKRect(0, 0, (float)(size.Width * _dpi.X / 96), + (float)(size.Height * _dpi.Y / 96))); + + canvas.RestoreToCount(-1); + canvas.ResetMatrix(); + + var createInfo = new DrawingContextImpl.CreateInfo + { + Canvas = canvas, + Dpi = _dpi, + DisableTextLcdRendering = true, + GrContext = _grContext, + Gpu = _gpu, + }; + return new DrawingContextImpl(createInfo, Disposable.Create(() => + { + _picture = recorder.EndRecording(); + canvas.Dispose(); + recorder.Dispose(); + })); + } + + public void Dispose() => _picture?.Dispose(); +} \ No newline at end of file diff --git a/src/Skia/Avalonia.Skia/SurfaceRenderTarget.cs b/src/Skia/Avalonia.Skia/SurfaceRenderTarget.cs index f88e74d738..92210c30e2 100644 --- a/src/Skia/Avalonia.Skia/SurfaceRenderTarget.cs +++ b/src/Skia/Avalonia.Skia/SurfaceRenderTarget.cs @@ -97,7 +97,7 @@ namespace Avalonia.Skia } /// - public IDrawingContextImpl CreateDrawingContext(IVisualBrushRenderer? visualBrushRenderer) + public IDrawingContextImpl CreateDrawingContext() { _canvas.RestoreToCount(-1); _canvas.ResetMatrix(); @@ -106,7 +106,6 @@ namespace Avalonia.Skia { Surface = _surface.Surface, Dpi = Dpi, - VisualBrushRenderer = visualBrushRenderer, DisableTextLcdRendering = _disableLcdRendering, GrContext = _grContext, Gpu = _gpu, diff --git a/src/Windows/Avalonia.Direct2D1/ExternalRenderTarget.cs b/src/Windows/Avalonia.Direct2D1/ExternalRenderTarget.cs index 02932c52da..10f9239b1a 100644 --- a/src/Windows/Avalonia.Direct2D1/ExternalRenderTarget.cs +++ b/src/Windows/Avalonia.Direct2D1/ExternalRenderTarget.cs @@ -21,11 +21,11 @@ namespace Avalonia.Direct2D1 _externalRenderTargetProvider.DestroyRenderTarget(); } - public IDrawingContextImpl CreateDrawingContext(IVisualBrushRenderer visualBrushRenderer) + public IDrawingContextImpl CreateDrawingContext() { var target = _externalRenderTargetProvider.GetOrCreateRenderTarget(); _externalRenderTargetProvider.BeforeDrawing(); - return new DrawingContextImpl(visualBrushRenderer, null, target, null, () => + return new DrawingContextImpl( null, target, null, () => { try { diff --git a/src/Windows/Avalonia.Direct2D1/FramebufferShimRenderTarget.cs b/src/Windows/Avalonia.Direct2D1/FramebufferShimRenderTarget.cs index 984a24fb30..0af326d6a8 100644 --- a/src/Windows/Avalonia.Direct2D1/FramebufferShimRenderTarget.cs +++ b/src/Windows/Avalonia.Direct2D1/FramebufferShimRenderTarget.cs @@ -22,7 +22,7 @@ namespace Avalonia.Direct2D1 { } - public IDrawingContextImpl CreateDrawingContext(IVisualBrushRenderer visualBrushRenderer) + public IDrawingContextImpl CreateDrawingContext() { var locked = _surface.Lock(); if (locked.Format == PixelFormat.Rgb565) @@ -32,7 +32,7 @@ namespace Avalonia.Direct2D1 } return new FramebufferShim(locked) - .CreateDrawingContext(visualBrushRenderer); + .CreateDrawingContext(); } public bool IsCorrupted => false; @@ -47,9 +47,9 @@ namespace Avalonia.Direct2D1 _target = target; } - public override IDrawingContextImpl CreateDrawingContext(IVisualBrushRenderer visualBrushRenderer) + public override IDrawingContextImpl CreateDrawingContext() { - return base.CreateDrawingContext(visualBrushRenderer, () => + return base.CreateDrawingContext(() => { using (var l = WicImpl.Lock(BitmapLockFlags.Read)) { diff --git a/src/Windows/Avalonia.Direct2D1/Media/DrawingContextImpl.cs b/src/Windows/Avalonia.Direct2D1/Media/DrawingContextImpl.cs index 0dd9c155bb..f9b5953e3f 100644 --- a/src/Windows/Avalonia.Direct2D1/Media/DrawingContextImpl.cs +++ b/src/Windows/Avalonia.Direct2D1/Media/DrawingContextImpl.cs @@ -19,7 +19,6 @@ namespace Avalonia.Direct2D1.Media /// internal class DrawingContextImpl : IDrawingContextImpl { - private readonly IVisualBrushRenderer _visualBrushRenderer; private readonly ILayerFactory _layerFactory; private readonly SharpDX.Direct2D1.RenderTarget _renderTarget; private readonly DeviceContext _deviceContext; @@ -39,13 +38,11 @@ namespace Avalonia.Direct2D1.Media /// An optional swap chain associated with this drawing context. /// An optional delegate to be called when context is disposed. public DrawingContextImpl( - IVisualBrushRenderer visualBrushRenderer, ILayerFactory layerFactory, SharpDX.Direct2D1.RenderTarget renderTarget, SharpDX.DXGI.SwapChain1 swapChain = null, Action finishedCallback = null) { - _visualBrushRenderer = visualBrushRenderer; _layerFactory = layerFactory; _renderTarget = renderTarget; _swapChain = swapChain; @@ -491,7 +488,8 @@ namespace Avalonia.Direct2D1.Media var radialGradientBrush = brush as IRadialGradientBrush; var conicGradientBrush = brush as IConicGradientBrush; var imageBrush = brush as IImageBrush; - var visualBrush = brush as IVisualBrush; + var sceneBrush = brush as ISceneBrush; + var sceneBrushContent = brush as ISceneBrushContent; if (solidColorBrush != null) { @@ -518,11 +516,13 @@ namespace Avalonia.Direct2D1.Media (BitmapImpl)imageBrush.Source.PlatformImpl.Item, destinationSize); } - else if (visualBrush != null) + else if (sceneBrush != null || sceneBrushContent != null) { - if (_visualBrushRenderer != null) + sceneBrushContent ??= sceneBrush.CreateContent(); + if (sceneBrushContent != null) { - var intermediateSize = _visualBrushRenderer.GetRenderTargetSize(visualBrush); + var rect = sceneBrushContent.Rect; + var intermediateSize = rect.Size; if (intermediateSize.Width >= 1 && intermediateSize.Height >= 1) { @@ -533,28 +533,26 @@ namespace Avalonia.Direct2D1.Media var pixelSize = PixelSize.FromSizeWithDpi(intermediateSize, dpi); using (var intermediate = new BitmapRenderTarget( - _deviceContext, - CompatibleRenderTargetOptions.None, - pixelSize.ToSizeWithDpi(dpi).ToSharpDX())) + _deviceContext, + CompatibleRenderTargetOptions.None, + pixelSize.ToSizeWithDpi(dpi).ToSharpDX())) { - using (var ctx = new RenderTarget(intermediate).CreateDrawingContext(_visualBrushRenderer)) + using (var ctx = new RenderTarget(intermediate).CreateDrawingContext()) { intermediate.Clear(null); - _visualBrushRenderer.RenderVisualBrush(ctx, visualBrush); + sceneBrushContent.Render(ctx, + rect.TopLeft == default ? null : Matrix.CreateTranslation(-rect.X, -rect.Y)); } return new ImageBrushImpl( - visualBrush, + sceneBrushContent.Brush, _deviceContext, new D2DBitmapImpl(intermediate.Bitmap), destinationSize); } + } } - else - { - throw new NotSupportedException("No IVisualBrushRenderer was supplied to DrawingContextImpl."); - } } return new SolidColorBrushImpl(null, _deviceContext); diff --git a/src/Windows/Avalonia.Direct2D1/Media/ImageBrushImpl.cs b/src/Windows/Avalonia.Direct2D1/Media/ImageBrushImpl.cs index 829b887d9d..a08c96c40c 100644 --- a/src/Windows/Avalonia.Direct2D1/Media/ImageBrushImpl.cs +++ b/src/Windows/Avalonia.Direct2D1/Media/ImageBrushImpl.cs @@ -95,7 +95,7 @@ namespace Avalonia.Direct2D1.Media CompatibleRenderTargetOptions.None, calc.IntermediateSize.ToSharpDX()); - using (var context = new RenderTarget(result).CreateDrawingContext(null)) + using (var context = new RenderTarget(result).CreateDrawingContext()) { var dpi = new Vector(target.DotsPerInch.Width, target.DotsPerInch.Height); var rect = new Rect(bitmap.PixelSize.ToSizeWithDpi(dpi)); diff --git a/src/Windows/Avalonia.Direct2D1/Media/Imaging/D2DRenderTargetBitmapImpl.cs b/src/Windows/Avalonia.Direct2D1/Media/Imaging/D2DRenderTargetBitmapImpl.cs index 2dbc1d67d1..6b1ca911fb 100644 --- a/src/Windows/Avalonia.Direct2D1/Media/Imaging/D2DRenderTargetBitmapImpl.cs +++ b/src/Windows/Avalonia.Direct2D1/Media/Imaging/D2DRenderTargetBitmapImpl.cs @@ -30,9 +30,9 @@ namespace Avalonia.Direct2D1.Media.Imaging return new D2DRenderTargetBitmapImpl(bitmapRenderTarget); } - public IDrawingContextImpl CreateDrawingContext(IVisualBrushRenderer visualBrushRenderer) + public IDrawingContextImpl CreateDrawingContext() { - return new DrawingContextImpl(visualBrushRenderer, this, _renderTarget, null, () => Version++); + return new DrawingContextImpl( this, _renderTarget, null, () => Version++); } public bool IsCorrupted => false; diff --git a/src/Windows/Avalonia.Direct2D1/Media/Imaging/WicRenderTargetBitmapImpl.cs b/src/Windows/Avalonia.Direct2D1/Media/Imaging/WicRenderTargetBitmapImpl.cs index d6b1e618e5..fa40e75fa7 100644 --- a/src/Windows/Avalonia.Direct2D1/Media/Imaging/WicRenderTargetBitmapImpl.cs +++ b/src/Windows/Avalonia.Direct2D1/Media/Imaging/WicRenderTargetBitmapImpl.cs @@ -34,14 +34,14 @@ namespace Avalonia.Direct2D1.Media base.Dispose(); } - public virtual IDrawingContextImpl CreateDrawingContext(IVisualBrushRenderer visualBrushRenderer) - => CreateDrawingContext(visualBrushRenderer, null); + public virtual IDrawingContextImpl CreateDrawingContext() + => CreateDrawingContext(null); public bool IsCorrupted => false; - public IDrawingContextImpl CreateDrawingContext(IVisualBrushRenderer visualBrushRenderer, Action finishedCallback) + public IDrawingContextImpl CreateDrawingContext(Action finishedCallback) { - return new DrawingContextImpl(visualBrushRenderer, null, _renderTarget, finishedCallback: () => + return new DrawingContextImpl(null, _renderTarget, finishedCallback: () => { Version++; finishedCallback?.Invoke(); diff --git a/src/Windows/Avalonia.Direct2D1/RenderTarget.cs b/src/Windows/Avalonia.Direct2D1/RenderTarget.cs index 8d5062336c..4392e35058 100644 --- a/src/Windows/Avalonia.Direct2D1/RenderTarget.cs +++ b/src/Windows/Avalonia.Direct2D1/RenderTarget.cs @@ -25,9 +25,9 @@ namespace Avalonia.Direct2D1 /// Creates a drawing context for a rendering session. /// /// An . - public IDrawingContextImpl CreateDrawingContext(IVisualBrushRenderer visualBrushRenderer) + public IDrawingContextImpl CreateDrawingContext() { - return new DrawingContextImpl(visualBrushRenderer, this, _renderTarget); + return new DrawingContextImpl(this, _renderTarget); } public bool IsCorrupted => false; diff --git a/src/Windows/Avalonia.Direct2D1/SwapChainRenderTarget.cs b/src/Windows/Avalonia.Direct2D1/SwapChainRenderTarget.cs index 531c4119af..385120505c 100644 --- a/src/Windows/Avalonia.Direct2D1/SwapChainRenderTarget.cs +++ b/src/Windows/Avalonia.Direct2D1/SwapChainRenderTarget.cs @@ -19,7 +19,7 @@ namespace Avalonia.Direct2D1 /// Creates a drawing context for a rendering session. /// /// An . - public IDrawingContextImpl CreateDrawingContext(IVisualBrushRenderer visualBrushRenderer) + public IDrawingContextImpl CreateDrawingContext() { var size = GetWindowSize(); var dpi = GetWindowDpi(); @@ -32,7 +32,7 @@ namespace Avalonia.Direct2D1 Resize(); } - return new DrawingContextImpl(visualBrushRenderer, this, _deviceContext, _swapChain); + return new DrawingContextImpl(this, _deviceContext, _swapChain); } public bool IsCorrupted => false; diff --git a/tests/Avalonia.Base.UnitTests/RenderTests_Culling.cs b/tests/Avalonia.Base.UnitTests/RenderTests_Culling.cs index d75bf9fe8c..f91b4b613c 100644 --- a/tests/Avalonia.Base.UnitTests/RenderTests_Culling.cs +++ b/tests/Avalonia.Base.UnitTests/RenderTests_Culling.cs @@ -181,7 +181,7 @@ namespace Avalonia.Base.UnitTests private DrawingContext CreateDrawingContext() { - return new DrawingContext(Mock.Of()); + return new PlatformDrawingContext(Mock.Of()); } private class TestControl : Control diff --git a/tests/Avalonia.Base.UnitTests/Rendering/SceneGraph/DrawOperationTests.cs b/tests/Avalonia.Base.UnitTests/Rendering/SceneGraph/DrawOperationTests.cs index c1468a28e4..9d810fa110 100644 --- a/tests/Avalonia.Base.UnitTests/Rendering/SceneGraph/DrawOperationTests.cs +++ b/tests/Avalonia.Base.UnitTests/Rendering/SceneGraph/DrawOperationTests.cs @@ -69,7 +69,7 @@ namespace Avalonia.Base.UnitTests.Rendering.SceneGraph new Matrix(), Brushes.Black, null, - geometry, default); + geometry); geometryNode.HitTest(new Point()); } @@ -77,7 +77,7 @@ namespace Avalonia.Base.UnitTests.Rendering.SceneGraph private class TestRectangleDrawOperation : RectangleNode { public TestRectangleDrawOperation(Rect bounds, Matrix transform, Pen pen) - : base(transform, pen.Brush, pen, bounds, new BoxShadows()) + : base(transform, pen.Brush?.ToImmutable(), pen, bounds, new BoxShadows()) { } diff --git a/tests/Avalonia.Base.UnitTests/Rendering/SceneGraph/EllipseNodeTests.cs b/tests/Avalonia.Base.UnitTests/Rendering/SceneGraph/EllipseNodeTests.cs index 565b217180..a2e438e3e0 100644 --- a/tests/Avalonia.Base.UnitTests/Rendering/SceneGraph/EllipseNodeTests.cs +++ b/tests/Avalonia.Base.UnitTests/Rendering/SceneGraph/EllipseNodeTests.cs @@ -18,7 +18,7 @@ namespace Avalonia.Visuals.UnitTests.Rendering.SceneGraph [InlineData(0, 101, false)] public void FillOnly_HitTest(double x, double y, bool inside) { - var ellipseNode = new EllipseNode(Matrix.Identity, Brushes.Black, null, new Rect(0,0, 100, 100), null); + var ellipseNode = new EllipseNode(Matrix.Identity, Brushes.Black, null, new Rect(0,0, 100, 100)); var point = new Point(x, y); @@ -37,7 +37,7 @@ namespace Avalonia.Visuals.UnitTests.Rendering.SceneGraph [InlineData(0, 101, false)] public void StrokeOnly_HitTest(double x, double y, bool inside) { - var ellipseNode = new EllipseNode(Matrix.Identity, null, new ImmutablePen(Brushes.Black, 2), new Rect(0, 0, 100, 100), null); + var ellipseNode = new EllipseNode(Matrix.Identity, null, new ImmutablePen(Brushes.Black, 2), new Rect(0, 0, 100, 100)); var point = new Point(x, y); diff --git a/tests/Avalonia.Benchmarks/Rendering/ShapeRendering.cs b/tests/Avalonia.Benchmarks/Rendering/ShapeRendering.cs index b0db806afa..2905b1e464 100644 --- a/tests/Avalonia.Benchmarks/Rendering/ShapeRendering.cs +++ b/tests/Avalonia.Benchmarks/Rendering/ShapeRendering.cs @@ -21,7 +21,7 @@ namespace Avalonia.Benchmarks.Rendering _lineFill = new Line { Fill = new SolidColorBrush() }; _lineFillAndStroke = new Line { Stroke = new SolidColorBrush(), Fill = new SolidColorBrush() }; - _drawingContext = new DrawingContext(new NullDrawingContextImpl(), true); + _drawingContext = new PlatformDrawingContext(new NullDrawingContextImpl(), true); AvaloniaLocator.CurrentMutable.Bind().ToConstant(new NullRenderingPlatform()); } diff --git a/tests/Avalonia.RenderTests/Media/BitmapTests.cs b/tests/Avalonia.RenderTests/Media/BitmapTests.cs index 05e160dca8..4ba0c82b87 100644 --- a/tests/Avalonia.RenderTests/Media/BitmapTests.cs +++ b/tests/Avalonia.RenderTests/Media/BitmapTests.cs @@ -76,7 +76,7 @@ namespace Avalonia.Direct2D1.RenderTests.Media var r = Avalonia.AvaloniaLocator.Current.GetRequiredService(); using(var cpuContext = r.CreateBackendContext(null)) using (var target = cpuContext.CreateRenderTarget(new object[] { fb })) - using (var ctx = target.CreateDrawingContext(null)) + using (var ctx = target.CreateDrawingContext()) { ctx.Clear(Colors.Transparent); ctx.PushOpacity(0.8, new Rect(0, 0, 80, 80)); @@ -90,7 +90,7 @@ namespace Avalonia.Direct2D1.RenderTests.Media fb.Deallocate(); using (var rtb = new RenderTargetBitmap(new PixelSize(100, 100), new Vector(96, 96))) { - using (var ctx = rtb.CreateDrawingContext(null)) + using (var ctx = rtb.CreateDrawingContext()) { ctx.DrawRectangle(Brushes.Blue, null, new Rect(0, 0, 100, 100)); ctx.DrawRectangle(Brushes.Pink, null, new Rect(0, 20, 100, 10)); diff --git a/tests/Avalonia.RenderTests/Media/TileBrushTests.cs b/tests/Avalonia.RenderTests/Media/TileBrushTests.cs new file mode 100644 index 0000000000..c171573be7 --- /dev/null +++ b/tests/Avalonia.RenderTests/Media/TileBrushTests.cs @@ -0,0 +1,94 @@ +using System.Threading.Tasks; +using Avalonia.Controls; +using Avalonia.Controls.Shapes; +using Avalonia.Media; +using Avalonia.Media.Immutable; +using Xunit; + +#if AVALONIA_SKIA +namespace Avalonia.Skia.RenderTests; +#else +namespace Avalonia.Direct2D1.RenderTests.Media; +#endif +public class DrawingBrushTests: TestBase +{ + public DrawingBrushTests() + : base(@"Media\DrawingBrush") + { + } + + [Fact] + public async Task DrawingBrushIsProperlyTiled() + { + Decorator target = new Decorator + { + Padding = new Thickness(10), + Width = 220, + Height = 220, + Child = new Rectangle + { + Fill = new DrawingBrush + { + Stretch = Stretch.None, + TileMode = TileMode.Tile, + Drawing = CreateDrawing(), + DestinationRect = new RelativeRect(0,0,0.25,0.25, RelativeUnit.Relative) + } + } + }; + + await RenderToFile(target); + CompareImages(); + } + + +#if AVALONIA_SKIA + [Fact] +#endif + public async Task DrawingBrushIsProperlyUpscaled() + { + Decorator target = new Decorator + { + Padding = new Thickness(10), + Width = 420, + Height = 420, + Child = new Rectangle + { + Fill = new DrawingBrush + { + Stretch = Stretch.Fill, + TileMode = TileMode.None, + Drawing = CreateDrawing() + } + } + }; + + await RenderToFile(target); + CompareImages(); + } + + GeometryDrawing CreateDrawing() + { + return new GeometryDrawing + { + Geometry = new GeometryGroup + { + Children = + { + new RectangleGeometry(new Rect(50, 25, 25, 25)), + new RectangleGeometry(new Rect(25, 50, 25, 25)), + } + }, + Pen = new Pen(new LinearGradientBrush() + { + GradientStops = + { + new GradientStop(Colors.Blue, 0), + new GradientStop(Colors.Black, 1), + } + }, 5), + Brush = Brushes.Yellow, + }; + } + +} diff --git a/tests/Avalonia.UnitTests/MockPlatformRenderInterface.cs b/tests/Avalonia.UnitTests/MockPlatformRenderInterface.cs index fe84659038..df128b8ae3 100644 --- a/tests/Avalonia.UnitTests/MockPlatformRenderInterface.cs +++ b/tests/Avalonia.UnitTests/MockPlatformRenderInterface.cs @@ -34,15 +34,15 @@ namespace Avalonia.UnitTests } - public IDrawingContextImpl CreateDrawingContext(IVisualBrushRenderer visualBrushRenderer) + public IDrawingContextImpl CreateDrawingContext() { var m = new Mock(); m.Setup(c => c.CreateLayer(It.IsAny())) .Returns(() => { var r = new Mock(); - r.Setup(r => r.CreateDrawingContext(It.IsAny())) - .Returns(CreateDrawingContext(null)); + r.Setup(r => r.CreateDrawingContext()) + .Returns(CreateDrawingContext()); return r.Object; } ); diff --git a/tests/Avalonia.UnitTests/TestRoot.cs b/tests/Avalonia.UnitTests/TestRoot.cs index 875c5eb944..c17eeda3e1 100644 --- a/tests/Avalonia.UnitTests/TestRoot.cs +++ b/tests/Avalonia.UnitTests/TestRoot.cs @@ -70,12 +70,12 @@ namespace Avalonia.UnitTests { var layerDc = new Mock(); var layer = new Mock(); - layer.Setup(x => x.CreateDrawingContext(It.IsAny())).Returns(layerDc.Object); + layer.Setup(x => x.CreateDrawingContext()).Returns(layerDc.Object); return layer.Object; }); var result = new Mock(); - result.Setup(x => x.CreateDrawingContext(It.IsAny())).Returns(dc.Object); + result.Setup(x => x.CreateDrawingContext()).Returns(dc.Object); return result.Object; } diff --git a/tests/TestFiles/Direct2D1/Media/DrawingBrush/DrawingBrushIsProperlyTiled.expected.png b/tests/TestFiles/Direct2D1/Media/DrawingBrush/DrawingBrushIsProperlyTiled.expected.png new file mode 100644 index 0000000000000000000000000000000000000000..78b6764360bf14d3e787e83cf37f130ad0304f83 GIT binary patch literal 4340 zcmeAS@N?(olHy`uVBq!ia0vp^cR-kf4M<8yoo@tEjKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WMyCwnCI!@7*Y}UcJ9S2xs4aw?wYXtn(m~jC{Xn6en)YThN2~h+V#ml&P}?_ zsk*#1==#;y6@N~CI+wM?f3w`%ef&Jer#L*{>+D{=wX?>NL$O7`361FJw7>H^{mJR= z-QEA|e5XB{o$?{6GP?V-*`8^We=MJz_NwAm+w~$LdGF)h)&F~RI5loZ&Ds8NYm8j= zMw9fL*BciL=k@XJ-~9*mBj;WI{rAVmZn_+_QjhwQQvO0$o*~xbx4xN*}B++9!S` z@%aubruxIZEUgni?wwE?>^}GLD~_VWPhA~(6qON5b}W@)E4^X4u5UrKSO1|CKjH$~ zfeI~7Oba^JR;idhy>f-KJCv35f}`N@U-ig1kslXZ4_4&1X0}_skqJNExNXX}MPD3c z%lcL;KbRJjqq3NLFALaAhkOe|k<4yxBdJ#%u0FB{^DHWr&ek=qeEhR>rSb#wIX`YL z=!-aVMevO@pPboi;i*=S1cKcgr2Xn@v|Sx-9HD@r+Rb#YfbUW`TTYJK0@$(x|?Y({R+zux^4B{e1&L0XmZgu6M=LOxTFD#27 z+LFCr2F}={Vc-wusvMYRq<=!pbzxuWio=r~qED^ua*}-=(5~*dZA!FQtJSrIeEwE> zJ1#1@iSJ@7UE?e}kL5?(ZD5Kz8dq|I;{)$@Q(%nmeX-%<$F}DAk`UpHn!^XbeQ;UY zXYt0hoi|T&d8<|0l0xsD?S}%~b-pb+%$C0+b77z4%O49*%IO)D9!b=<%K0Fj7queU zP3oLU<#eq_bu*R~%sumR|KZ@{Qdb1qwtK#uow9zit);fo&DAOTllOXjTVZAUEJEbf z3xih@F2|<@>Eut}c>-d(+u>=Kx_9r7EGQ3|wf6@oIjDd1S3i5@;}&4~pkg@U?c=r(j0v%5nKRp>{|Loqo?ORD>xrF=V+$p%n;vHHnZKT zBn84!Z|h?)kNJ1};}VC(+|3_vab4yEt7XpBeCztM8B{X3AJAQT!^2Iyiu2Wm;uzV+ zdj&}vm&C+VOu$*R>2AR%msx+Af{%X|4t76~Z}D-nqwL0xmC85FWo&Y;scV%UQCtSJ zW6qx+VO>oX$GCmKvKOTNx{O{!i-sI;$>j!bfuRm88MZ7Hah{k4&Hqh%9)4PM;Cw~n zN>E8*GUsqXIako94WC|4oNfADAby$C9(&QFzXL8HXM0V)*`{~BdCl*HMzM;O3VqlD zi3VU6y?!`!(^60_gJw**6^{#n5d@NHeHoW^BS=rzCmNQ6ub;jYam$8qA@K83!Qn{p zwa_8~DTBY0SpzRNo+r$8f6c!B>8TylJ}>{stG-M(N*Kbmo?fGqE0=2vEhpCgcdtG3P(a7*FPc@e?L0sCCw`GX*uML)<4Wc8b9=0I{VaR$zVT?{ zEdF}a)X_{on(2Y1!)T@-&Ge%+{b)@;bF`)(t?5Ub_weR@Gsdt1a1>!eVNA>){`>{D WEZvK~rU6GT7(8A5T-G@yGywoasCd-? literal 0 HcmV?d00001 diff --git a/tests/TestFiles/Skia/Media/DrawingBrush/DrawingBrushIsProperlyTiled.expected.png b/tests/TestFiles/Skia/Media/DrawingBrush/DrawingBrushIsProperlyTiled.expected.png new file mode 100644 index 0000000000000000000000000000000000000000..1187581a925aaf8972c82989fa757e5284c0d6b0 GIT binary patch literal 3083 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 CPGgk- literal 0 HcmV?d00001 From 05dc0a3559b6a78fcc6010df1ebfb59a4baa0756 Mon Sep 17 00:00:00 2001 From: Daniil Pavliuchyk Date: Thu, 23 Feb 2023 14:36:55 +0200 Subject: [PATCH 080/122] Fix formatting --- .../Automation/Peers/RadioButtonAutomationPeer.cs | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/src/Avalonia.Controls/Automation/Peers/RadioButtonAutomationPeer.cs b/src/Avalonia.Controls/Automation/Peers/RadioButtonAutomationPeer.cs index b7b7adfd52..b0f83c1f2a 100644 --- a/src/Avalonia.Controls/Automation/Peers/RadioButtonAutomationPeer.cs +++ b/src/Avalonia.Controls/Automation/Peers/RadioButtonAutomationPeer.cs @@ -15,7 +15,6 @@ namespace Avalonia.Controls.Automation.Peers { RaiseToggleStatePropertyChangedEvent((bool?)e.OldValue, (bool?)e.NewValue); } - }; } @@ -31,13 +30,7 @@ namespace Avalonia.Controls.Automation.Peers public bool IsSelected => ((RadioButton)Owner).IsChecked == true; - public ISelectionProvider? SelectionContainer - { - get - { - return null; - } - } + public ISelectionProvider? SelectionContainer => null; public void AddToSelection() { From ac882ad3a1021179a6280d94e2c2ba69a47e92ea Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Thu, 23 Feb 2023 14:08:11 +0100 Subject: [PATCH 081/122] Add failing integration tests for overlay popups. Integration tests for #10420: - Adds an `--overlayPopups` command-line argument to IntegrationTestApp - Renames `TestAppFixture` -> `DefaultAppFixture` - Adds additional `OverlayPopupsAppFixture` - Runs ComboBox and Menu tests in both default and overlay popups mode - VS keeps changing the `.sln` file --- Avalonia.sln | 11 +++--- samples/IntegrationTestApp/MainWindow.axaml | 1 + .../IntegrationTestApp/MainWindow.axaml.cs | 12 +++--- samples/IntegrationTestApp/Program.cs | 22 +++++++++-- .../AutomationTests.cs | 2 +- .../ButtonTests.cs | 2 +- .../CheckBoxTests.cs | 2 +- .../CollectionDefinitions.cs | 14 +++++++ .../ComboBoxTests.cs | 17 +++++++-- ...TestAppFixture.cs => DefaultAppFixture.cs} | 38 +++++++++++-------- .../DefaultCollection.cs | 9 ----- .../GestureTests.cs | 2 +- .../ListBoxTests.cs | 2 +- .../MenuTests.cs | 16 +++++++- .../NativeMenuTests.cs | 2 +- .../OverlayPopupsAppFixture.cs | 19 ++++++++++ .../SliderTests.cs | 2 +- .../WindowTests.cs | 2 +- .../WindowTests_MacOS.cs | 2 +- 19 files changed, 125 insertions(+), 52 deletions(-) create mode 100644 tests/Avalonia.IntegrationTests.Appium/CollectionDefinitions.cs rename tests/Avalonia.IntegrationTests.Appium/{TestAppFixture.cs => DefaultAppFixture.cs} (62%) delete mode 100644 tests/Avalonia.IntegrationTests.Appium/DefaultCollection.cs create mode 100644 tests/Avalonia.IntegrationTests.Appium/OverlayPopupsAppFixture.cs diff --git a/Avalonia.sln b/Avalonia.sln index 56847bae31..539c39f63d 100644 --- a/Avalonia.sln +++ b/Avalonia.sln @@ -555,9 +555,14 @@ Global {75C47156-C5D8-44BC-A5A7-E8657C2248D6}.Debug|Any CPU.Build.0 = Debug|Any CPU {75C47156-C5D8-44BC-A5A7-E8657C2248D6}.Release|Any CPU.ActiveCfg = Release|Any CPU {75C47156-C5D8-44BC-A5A7-E8657C2248D6}.Release|Any CPU.Build.0 = Release|Any CPU + {C810060E-3809-4B74-A125-F11533AF9C1B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C810060E-3809-4B74-A125-F11533AF9C1B}.Debug|Any CPU.Build.0 = Debug|Any CPU {C810060E-3809-4B74-A125-F11533AF9C1B}.Release|Any CPU.ActiveCfg = Release|Any CPU {C810060E-3809-4B74-A125-F11533AF9C1B}.Release|Any CPU.Build.0 = Release|Any CPU + {C692FE73-43DB-49CE-87FC-F03ED61F25C9}.Debug|Any CPU.ActiveCfg = Release|Any CPU + {C692FE73-43DB-49CE-87FC-F03ED61F25C9}.Debug|Any CPU.Build.0 = Release|Any CPU + {C692FE73-43DB-49CE-87FC-F03ED61F25C9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C692FE73-43DB-49CE-87FC-F03ED61F25C9}.Release|Any CPU.Build.0 = Release|Any CPU {EE0F0DD4-A70D-472B-BD5D-B7D32D0E9386}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {EE0F0DD4-A70D-472B-BD5D-B7D32D0E9386}.Debug|Any CPU.Build.0 = Debug|Any CPU {EE0F0DD4-A70D-472B-BD5D-B7D32D0E9386}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -566,10 +571,6 @@ Global {F4E36AA8-814E-4704-BC07-291F70F45193}.Debug|Any CPU.Build.0 = Debug|Any CPU {F4E36AA8-814E-4704-BC07-291F70F45193}.Release|Any CPU.ActiveCfg = Release|Any CPU {F4E36AA8-814E-4704-BC07-291F70F45193}.Release|Any CPU.Build.0 = Release|Any CPU - {C692FE73-43DB-49CE-87FC-F03ED61F25C9}.Debug|Any CPU.ActiveCfg = Release|Any CPU - {C692FE73-43DB-49CE-87FC-F03ED61F25C9}.Debug|Any CPU.Build.0 = Release|Any CPU - {C692FE73-43DB-49CE-87FC-F03ED61F25C9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C692FE73-43DB-49CE-87FC-F03ED61F25C9}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -635,8 +636,8 @@ Global {90B08091-9BBD-4362-B712-E9F2CC62B218} = {9B9E3891-2366-4253-A952-D08BCEB71098} {75C47156-C5D8-44BC-A5A7-E8657C2248D6} = {9B9E3891-2366-4253-A952-D08BCEB71098} {C810060E-3809-4B74-A125-F11533AF9C1B} = {9B9E3891-2366-4253-A952-D08BCEB71098} - {F4E36AA8-814E-4704-BC07-291F70F45193} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B} {C692FE73-43DB-49CE-87FC-F03ED61F25C9} = {4ED8B739-6F4E-4CD4-B993-545E6B5CE637} + {F4E36AA8-814E-4704-BC07-291F70F45193} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {87366D66-1391-4D90-8999-95A620AD786A} diff --git a/samples/IntegrationTestApp/MainWindow.axaml b/samples/IntegrationTestApp/MainWindow.axaml index 353e01dca7..f6abf543b9 100644 --- a/samples/IntegrationTestApp/MainWindow.axaml +++ b/samples/IntegrationTestApp/MainWindow.axaml @@ -25,6 +25,7 @@ WindowState: + diff --git a/samples/IntegrationTestApp/MainWindow.axaml.cs b/samples/IntegrationTestApp/MainWindow.axaml.cs index 087f25666b..19eb1d64b0 100644 --- a/samples/IntegrationTestApp/MainWindow.axaml.cs +++ b/samples/IntegrationTestApp/MainWindow.axaml.cs @@ -1,19 +1,17 @@ -using System; using System.Collections.Generic; using System.Linq; using Avalonia; using Avalonia.Automation; using Avalonia.Controls; using Avalonia.Controls.ApplicationLifetimes; +using Avalonia.Controls.Primitives; +using Avalonia.Controls.Primitives.PopupPositioning; using Avalonia.Input; using Avalonia.Interactivity; -using Avalonia.Media; using Avalonia.Markup.Xaml; +using Avalonia.Media; using Avalonia.VisualTree; using Microsoft.CodeAnalysis; -using Avalonia.Controls.Primitives; -using Avalonia.Threading; -using Avalonia.Controls.Primitives.PopupPositioning; namespace IntegrationTestApp { @@ -25,6 +23,10 @@ namespace IntegrationTestApp InitializeViewMenu(); InitializeGesturesTab(); this.AttachDevTools(); + + var overlayPopups = this.Get("AppOverlayPopups"); + overlayPopups.Text = Program.OverlayPopups ? "Overlay Popups" : "Native Popups"; + AddHandler(Button.ClickEvent, OnButtonClick); ListBoxItems = Enumerable.Range(0, 100).Select(x => "Item " + x).ToList(); DataContext = this; diff --git a/samples/IntegrationTestApp/Program.cs b/samples/IntegrationTestApp/Program.cs index c09b249cfa..6603450b85 100644 --- a/samples/IntegrationTestApp/Program.cs +++ b/samples/IntegrationTestApp/Program.cs @@ -1,17 +1,31 @@ using System; +using System.Linq; using Avalonia; -using Avalonia.Controls; -using Avalonia.Controls.ApplicationLifetimes; namespace IntegrationTestApp { class Program { + public static bool OverlayPopups { get; private set; } + // Initialization code. Don't use any Avalonia, third-party APIs or any // SynchronizationContext-reliant code before AppMain is called: things aren't initialized // yet and stuff might break. - public static void Main(string[] args) => BuildAvaloniaApp() - .StartWithClassicDesktopLifetime(args); + public static void Main(string[] args) + { + OverlayPopups = args.Contains("--overlayPopups"); + + BuildAvaloniaApp() + .With(new Win32PlatformOptions + { + OverlayPopups = OverlayPopups, + }) + .With(new AvaloniaNativePlatformOptions + { + OverlayPopups = OverlayPopups, + }) + .StartWithClassicDesktopLifetime(args); + } // Avalonia configuration, don't remove; also used by visual designer. public static AppBuilder BuildAvaloniaApp() diff --git a/tests/Avalonia.IntegrationTests.Appium/AutomationTests.cs b/tests/Avalonia.IntegrationTests.Appium/AutomationTests.cs index bad015506f..4d8760ad61 100644 --- a/tests/Avalonia.IntegrationTests.Appium/AutomationTests.cs +++ b/tests/Avalonia.IntegrationTests.Appium/AutomationTests.cs @@ -8,7 +8,7 @@ namespace Avalonia.IntegrationTests.Appium { private readonly AppiumDriver _session; - public AutomationTests(TestAppFixture fixture) + public AutomationTests(DefaultAppFixture fixture) { _session = fixture.Session; diff --git a/tests/Avalonia.IntegrationTests.Appium/ButtonTests.cs b/tests/Avalonia.IntegrationTests.Appium/ButtonTests.cs index 6c630ae782..c0a5414ee3 100644 --- a/tests/Avalonia.IntegrationTests.Appium/ButtonTests.cs +++ b/tests/Avalonia.IntegrationTests.Appium/ButtonTests.cs @@ -9,7 +9,7 @@ namespace Avalonia.IntegrationTests.Appium { private readonly AppiumDriver _session; - public ButtonTests(TestAppFixture fixture) + public ButtonTests(DefaultAppFixture fixture) { _session = fixture.Session; diff --git a/tests/Avalonia.IntegrationTests.Appium/CheckBoxTests.cs b/tests/Avalonia.IntegrationTests.Appium/CheckBoxTests.cs index 02e7ac60c4..6c154fa268 100644 --- a/tests/Avalonia.IntegrationTests.Appium/CheckBoxTests.cs +++ b/tests/Avalonia.IntegrationTests.Appium/CheckBoxTests.cs @@ -8,7 +8,7 @@ namespace Avalonia.IntegrationTests.Appium { private readonly AppiumDriver _session; - public CheckBoxTests(TestAppFixture fixture) + public CheckBoxTests(DefaultAppFixture fixture) { _session = fixture.Session; diff --git a/tests/Avalonia.IntegrationTests.Appium/CollectionDefinitions.cs b/tests/Avalonia.IntegrationTests.Appium/CollectionDefinitions.cs new file mode 100644 index 0000000000..1e9fa22d9e --- /dev/null +++ b/tests/Avalonia.IntegrationTests.Appium/CollectionDefinitions.cs @@ -0,0 +1,14 @@ +using Xunit; + +namespace Avalonia.IntegrationTests.Appium +{ + [CollectionDefinition("Default")] + public class DefaultCollection : ICollectionFixture + { + } + + [CollectionDefinition("OverlayPopups")] + public class OverlayPopupsCollection : ICollectionFixture + { + } +} diff --git a/tests/Avalonia.IntegrationTests.Appium/ComboBoxTests.cs b/tests/Avalonia.IntegrationTests.Appium/ComboBoxTests.cs index 8df7873582..9e35d366d2 100644 --- a/tests/Avalonia.IntegrationTests.Appium/ComboBoxTests.cs +++ b/tests/Avalonia.IntegrationTests.Appium/ComboBoxTests.cs @@ -4,12 +4,11 @@ using Xunit; namespace Avalonia.IntegrationTests.Appium { - [Collection("Default")] - public class ComboBoxTests + public abstract class ComboBoxTests { private readonly AppiumDriver _session; - public ComboBoxTests(TestAppFixture fixture) + public ComboBoxTests(DefaultAppFixture fixture) { _session = fixture.Session; @@ -153,5 +152,17 @@ namespace Avalonia.IntegrationTests.Appium Assert.Equal(string.Empty, comboBox.GetComboBoxValue()); } + + [Collection("Default")] + public class Default : ComboBoxTests + { + public Default(DefaultAppFixture fixture) : base(fixture) { } + } + + [Collection("OverlayPopups")] + public class OverlayPopups : ComboBoxTests + { + public OverlayPopups(OverlayPopupsAppFixture fixture) : base(fixture) { } + } } } diff --git a/tests/Avalonia.IntegrationTests.Appium/TestAppFixture.cs b/tests/Avalonia.IntegrationTests.Appium/DefaultAppFixture.cs similarity index 62% rename from tests/Avalonia.IntegrationTests.Appium/TestAppFixture.cs rename to tests/Avalonia.IntegrationTests.Appium/DefaultAppFixture.cs index d71f9e9bcc..bb08cc0514 100644 --- a/tests/Avalonia.IntegrationTests.Appium/TestAppFixture.cs +++ b/tests/Avalonia.IntegrationTests.Appium/DefaultAppFixture.cs @@ -9,25 +9,21 @@ using OpenQA.Selenium.Appium.Windows; namespace Avalonia.IntegrationTests.Appium { - public class TestAppFixture : IDisposable + public class DefaultAppFixture : IDisposable { private const string TestAppPath = @"..\..\..\..\..\samples\IntegrationTestApp\bin\Debug\net7.0\IntegrationTestApp.exe"; private const string TestAppBundleId = "net.avaloniaui.avalonia.integrationtestapp"; - public TestAppFixture() + public DefaultAppFixture() { - var opts = new AppiumOptions(); - var path = Path.GetFullPath(TestAppPath); + var options = new AppiumOptions(); if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) { - opts.AddAdditionalCapability(MobileCapabilityType.App, path); - opts.AddAdditionalCapability(MobileCapabilityType.PlatformName, MobilePlatform.Windows); - opts.AddAdditionalCapability(MobileCapabilityType.DeviceName, "WindowsPC"); - + ConfigureWin32Options(options); Session = new WindowsDriver( new Uri("http://127.0.0.1:4723"), - opts); + options); // https://github.com/microsoft/WinAppDriver/issues/1025 SetForegroundWindow(new IntPtr(int.Parse( @@ -36,14 +32,10 @@ namespace Avalonia.IntegrationTests.Appium } else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX)) { - opts.AddAdditionalCapability("appium:bundleId", TestAppBundleId); - opts.AddAdditionalCapability(MobileCapabilityType.PlatformName, MobilePlatform.MacOS); - opts.AddAdditionalCapability(MobileCapabilityType.AutomationName, "mac2"); - opts.AddAdditionalCapability("appium:showServerLogs", true); - + ConfigureMacOptions(options); Session = new MacDriver( new Uri("http://127.0.0.1:4723/wd/hub"), - opts); + options); } else { @@ -51,6 +43,22 @@ namespace Avalonia.IntegrationTests.Appium } } + protected virtual void ConfigureWin32Options(AppiumOptions options) + { + var path = Path.GetFullPath(TestAppPath); + options.AddAdditionalCapability(MobileCapabilityType.App, path); + options.AddAdditionalCapability(MobileCapabilityType.PlatformName, MobilePlatform.Windows); + options.AddAdditionalCapability(MobileCapabilityType.DeviceName, "WindowsPC"); + } + + protected virtual void ConfigureMacOptions(AppiumOptions options) + { + options.AddAdditionalCapability("appium:bundleId", TestAppBundleId); + options.AddAdditionalCapability(MobileCapabilityType.PlatformName, MobilePlatform.MacOS); + options.AddAdditionalCapability(MobileCapabilityType.AutomationName, "mac2"); + options.AddAdditionalCapability("appium:showServerLogs", true); + } + public AppiumDriver Session { get; } public void Dispose() diff --git a/tests/Avalonia.IntegrationTests.Appium/DefaultCollection.cs b/tests/Avalonia.IntegrationTests.Appium/DefaultCollection.cs deleted file mode 100644 index bb2dd1fbec..0000000000 --- a/tests/Avalonia.IntegrationTests.Appium/DefaultCollection.cs +++ /dev/null @@ -1,9 +0,0 @@ -using Xunit; - -namespace Avalonia.IntegrationTests.Appium -{ - [CollectionDefinition("Default")] - public class DefaultCollection : ICollectionFixture - { - } -} diff --git a/tests/Avalonia.IntegrationTests.Appium/GestureTests.cs b/tests/Avalonia.IntegrationTests.Appium/GestureTests.cs index 9745f993cb..65864cc649 100644 --- a/tests/Avalonia.IntegrationTests.Appium/GestureTests.cs +++ b/tests/Avalonia.IntegrationTests.Appium/GestureTests.cs @@ -11,7 +11,7 @@ namespace Avalonia.IntegrationTests.Appium { private readonly AppiumDriver _session; - public GestureTests(TestAppFixture fixture) + public GestureTests(DefaultAppFixture fixture) { _session = fixture.Session; diff --git a/tests/Avalonia.IntegrationTests.Appium/ListBoxTests.cs b/tests/Avalonia.IntegrationTests.Appium/ListBoxTests.cs index e2943b3349..5c81c20af1 100644 --- a/tests/Avalonia.IntegrationTests.Appium/ListBoxTests.cs +++ b/tests/Avalonia.IntegrationTests.Appium/ListBoxTests.cs @@ -11,7 +11,7 @@ namespace Avalonia.IntegrationTests.Appium { private readonly AppiumDriver _session; - public ListBoxTests(TestAppFixture fixture) + public ListBoxTests(DefaultAppFixture fixture) { _session = fixture.Session; diff --git a/tests/Avalonia.IntegrationTests.Appium/MenuTests.cs b/tests/Avalonia.IntegrationTests.Appium/MenuTests.cs index 3f1fe7de12..5f57dfbc19 100644 --- a/tests/Avalonia.IntegrationTests.Appium/MenuTests.cs +++ b/tests/Avalonia.IntegrationTests.Appium/MenuTests.cs @@ -7,11 +7,11 @@ using Xunit; namespace Avalonia.IntegrationTests.Appium { [Collection("Default")] - public class MenuTests + public abstract class MenuTests { private readonly AppiumDriver _session; - public MenuTests(TestAppFixture fixture) + public MenuTests(DefaultAppFixture fixture) { _session = fixture.Session; @@ -181,5 +181,17 @@ namespace Avalonia.IntegrationTests.Appium var tab = tabs.FindElementByName("Menu"); tab.MovePointerOver(); } + + [Collection("Default")] + public class Default : MenuTests + { + public Default(DefaultAppFixture fixture) : base(fixture) { } + } + + [Collection("OverlayPopups")] + public class OverlayPopups : MenuTests + { + public OverlayPopups(OverlayPopupsAppFixture fixture) : base(fixture) { } + } } } diff --git a/tests/Avalonia.IntegrationTests.Appium/NativeMenuTests.cs b/tests/Avalonia.IntegrationTests.Appium/NativeMenuTests.cs index 7858c4cc81..20594a9774 100644 --- a/tests/Avalonia.IntegrationTests.Appium/NativeMenuTests.cs +++ b/tests/Avalonia.IntegrationTests.Appium/NativeMenuTests.cs @@ -8,7 +8,7 @@ namespace Avalonia.IntegrationTests.Appium { private readonly AppiumDriver _session; - public NativeMenuTests(TestAppFixture fixture) + public NativeMenuTests(DefaultAppFixture fixture) { _session = fixture.Session; diff --git a/tests/Avalonia.IntegrationTests.Appium/OverlayPopupsAppFixture.cs b/tests/Avalonia.IntegrationTests.Appium/OverlayPopupsAppFixture.cs new file mode 100644 index 0000000000..1f8646888d --- /dev/null +++ b/tests/Avalonia.IntegrationTests.Appium/OverlayPopupsAppFixture.cs @@ -0,0 +1,19 @@ +using OpenQA.Selenium.Appium; + +namespace Avalonia.IntegrationTests.Appium +{ + public class OverlayPopupsAppFixture : DefaultAppFixture + { + protected override void ConfigureWin32Options(AppiumOptions options) + { + base.ConfigureWin32Options(options); + options.AddAdditionalCapability("appArguments", "--overlayPopups"); + } + + protected override void ConfigureMacOptions(AppiumOptions options) + { + base.ConfigureMacOptions(options); + options.AddAdditionalCapability("appium:arguments", new[] { "--overlayPopups" }); + } + } +} diff --git a/tests/Avalonia.IntegrationTests.Appium/SliderTests.cs b/tests/Avalonia.IntegrationTests.Appium/SliderTests.cs index 7fa5eb83ee..9371a49ade 100644 --- a/tests/Avalonia.IntegrationTests.Appium/SliderTests.cs +++ b/tests/Avalonia.IntegrationTests.Appium/SliderTests.cs @@ -10,7 +10,7 @@ namespace Avalonia.IntegrationTests.Appium { private readonly AppiumDriver _session; - public SliderTests(TestAppFixture fixture) + public SliderTests(DefaultAppFixture fixture) { _session = fixture.Session; diff --git a/tests/Avalonia.IntegrationTests.Appium/WindowTests.cs b/tests/Avalonia.IntegrationTests.Appium/WindowTests.cs index ec24caa18c..a2bfb618d6 100644 --- a/tests/Avalonia.IntegrationTests.Appium/WindowTests.cs +++ b/tests/Avalonia.IntegrationTests.Appium/WindowTests.cs @@ -19,7 +19,7 @@ namespace Avalonia.IntegrationTests.Appium { private readonly AppiumDriver _session; - public WindowTests(TestAppFixture fixture) + public WindowTests(DefaultAppFixture fixture) { _session = fixture.Session; diff --git a/tests/Avalonia.IntegrationTests.Appium/WindowTests_MacOS.cs b/tests/Avalonia.IntegrationTests.Appium/WindowTests_MacOS.cs index 55812d8df7..2eaaf2e0a8 100644 --- a/tests/Avalonia.IntegrationTests.Appium/WindowTests_MacOS.cs +++ b/tests/Avalonia.IntegrationTests.Appium/WindowTests_MacOS.cs @@ -16,7 +16,7 @@ namespace Avalonia.IntegrationTests.Appium { private readonly AppiumDriver _session; - public WindowTests_MacOS(TestAppFixture fixture) + public WindowTests_MacOS(DefaultAppFixture fixture) { var retry = 0; From 1ad8e2ead87674183cf4e06ba1e8bd879169ec97 Mon Sep 17 00:00:00 2001 From: Yoh Deadfall Date: Wed, 22 Feb 2023 19:47:09 +0000 Subject: [PATCH 082/122] Reset last used mouse buttons on pointer release --- src/Avalonia.Base/Input/MouseDevice.cs | 1 + src/Avalonia.Base/Input/PenDevice.cs | 1 + 2 files changed, 2 insertions(+) diff --git a/src/Avalonia.Base/Input/MouseDevice.cs b/src/Avalonia.Base/Input/MouseDevice.cs index e1c42c4ead..50980f1c3d 100644 --- a/src/Avalonia.Base/Input/MouseDevice.cs +++ b/src/Avalonia.Base/Input/MouseDevice.cs @@ -184,6 +184,7 @@ namespace Avalonia.Input source?.RaiseEvent(e); _pointer.Capture(null); + _lastMouseDownButton = default; return e.Handled; } diff --git a/src/Avalonia.Base/Input/PenDevice.cs b/src/Avalonia.Base/Input/PenDevice.cs index 98da83c1ce..285249a5f8 100644 --- a/src/Avalonia.Base/Input/PenDevice.cs +++ b/src/Avalonia.Base/Input/PenDevice.cs @@ -131,6 +131,7 @@ namespace Avalonia.Input source?.RaiseEvent(e); pointer.Capture(null); + _lastMouseDownButton = default; return e.Handled; } From a62096ed05432d4d439d8ce9d64740657445c8f0 Mon Sep 17 00:00:00 2001 From: Yoh Deadfall Date: Wed, 22 Feb 2023 20:12:55 +0000 Subject: [PATCH 083/122] Added test for mouse device --- .../Input/MouseDeviceTests.cs | 56 ++++++++++++++++++- .../Input/PointerTestsBase.cs | 17 ++++-- 2 files changed, 66 insertions(+), 7 deletions(-) diff --git a/tests/Avalonia.Base.UnitTests/Input/MouseDeviceTests.cs b/tests/Avalonia.Base.UnitTests/Input/MouseDeviceTests.cs index 3d7dc66cc4..1bb1b4af73 100644 --- a/tests/Avalonia.Base.UnitTests/Input/MouseDeviceTests.cs +++ b/tests/Avalonia.Base.UnitTests/Input/MouseDeviceTests.cs @@ -1,13 +1,63 @@ using Avalonia.Controls; using Avalonia.Input; +using Avalonia.Input.Raw; using Avalonia.Media; +using Avalonia.Platform; using Avalonia.UnitTests; +using Moq; using Xunit; namespace Avalonia.Base.UnitTests.Input { public class MouseDeviceTests : PointerTestsBase { + [Fact] + public void Initial_Buttons_Are_Not_Set_Without_Corresponding_Mouse_Down() + { + using var scope = AvaloniaLocator.EnterScope(); + var settingsMock = new Mock(); + var threadingMock = new Mock(); + + threadingMock.Setup(x => x.CurrentThreadIsLoopThread).Returns(true); + + AvaloniaLocator.CurrentMutable.BindToSelf(this) + .Bind().ToConstant(settingsMock.Object); + + using var app = UnitTestApplication.Start( + new TestServices( + inputManager: new InputManager(), + threadingInterface: threadingMock.Object)); + + var renderer = RendererMocks.CreateRenderer(); + var device = new MouseDevice(); + var impl = CreateTopLevelImplMock(renderer.Object); + + var control = new Control(); + var root = CreateInputRoot(impl.Object, control); + + MouseButton button = default; + + root.PointerReleased += (s, e) => button = e.InitialPressMouseButton; + + var down = CreateRawPointerArgs(device, root, RawPointerEventType.LeftButtonDown); + var up = CreateRawPointerArgs(device, root, RawPointerEventType.LeftButtonUp); + + SetHit(renderer, control); + + impl.Object.Input!(up); + + Assert.Equal(MouseButton.None, button); + + impl.Object.Input!(down); + impl.Object.Input!(up); + + Assert.Equal(MouseButton.Left, button); + + impl.Object.Input!(up); + + Assert.Equal(MouseButton.None, button); + } + [Fact] public void Capture_Is_Transferred_To_Parent_When_Control_Removed() { @@ -37,7 +87,7 @@ namespace Avalonia.Base.UnitTests.Input impl.Object.Input!(CreateRawPointerMovedArgs(device, root)); Assert.NotNull(result); - + result.Capture(control); Assert.Same(control, result.Captured); @@ -67,8 +117,8 @@ namespace Avalonia.Base.UnitTests.Input }) } }); - - + + Point? result = null; root.PointerMoved += (_, a) => { diff --git a/tests/Avalonia.Base.UnitTests/Input/PointerTestsBase.cs b/tests/Avalonia.Base.UnitTests/Input/PointerTestsBase.cs index 2d45c699f1..5915343764 100644 --- a/tests/Avalonia.Base.UnitTests/Input/PointerTestsBase.cs +++ b/tests/Avalonia.Base.UnitTests/Input/PointerTestsBase.cs @@ -55,20 +55,29 @@ public abstract class PointerTestsBase return root; } + protected static RawPointerEventArgs CreateRawPointerArgs( + IPointerDevice pointerDevice, + IInputRoot root, + RawPointerEventType type, + Point? position = default) + { + return new RawPointerEventArgs(pointerDevice, 0, root, type, position ?? default, default); + } + protected static RawPointerEventArgs CreateRawPointerMovedArgs( IPointerDevice pointerDevice, IInputRoot root, - Point? positition = null) + Point? position = null) { return new RawPointerEventArgs(pointerDevice, 0, root, RawPointerEventType.Move, - positition ?? default, default); + position ?? default, default); } protected static PointerEventArgs CreatePointerMovedArgs( - IInputRoot root, IInputElement? source, Point? positition = null) + IInputRoot root, IInputElement? source, Point? position = null) { return new PointerEventArgs(InputElement.PointerMovedEvent, source, new Mock().Object, (Visual)root, - positition ?? default, default, PointerPointProperties.None, KeyModifiers.None); + position ?? default, default, PointerPointProperties.None, KeyModifiers.None); } protected static Mock CreatePointerDeviceMock( From f87148dbbcba0f44987bc69595dcec2e8195d629 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Thu, 23 Feb 2023 14:42:45 +0100 Subject: [PATCH 084/122] Add failing unit test for #10420. --- .../Primitives/PopupTests.cs | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/tests/Avalonia.Controls.UnitTests/Primitives/PopupTests.cs b/tests/Avalonia.Controls.UnitTests/Primitives/PopupTests.cs index 4804b29fee..bc1225e0e8 100644 --- a/tests/Avalonia.Controls.UnitTests/Primitives/PopupTests.cs +++ b/tests/Avalonia.Controls.UnitTests/Primitives/PopupTests.cs @@ -18,6 +18,7 @@ using Avalonia.Input; using Avalonia.Rendering; using System.Threading.Tasks; using Avalonia.Threading; +using Avalonia.Interactivity; namespace Avalonia.Controls.UnitTests.Primitives { @@ -1048,6 +1049,30 @@ namespace Avalonia.Controls.UnitTests.Primitives } } + [Fact] + public void Events_Should_Be_Routed_To_Popup_Parent() + { + using (CreateServices()) + { + var popupContent = new Border(); + var popup = new Popup { Child = popupContent }; + var popupParent = new Border { Child = popup }; + var root = PreparedWindow(popupParent); + var raised = 0; + + root.LayoutManager.ExecuteInitialLayoutPass(); + popup.Open(); + root.LayoutManager.ExecuteLayoutPass(); + + var ev = new RoutedEventArgs(Button.ClickEvent); + + popupParent.AddHandler(Button.ClickEvent, (s, e) => ++raised); + popupContent.RaiseEvent(ev); + + Assert.Equal(1, raised); + } + } + private IDisposable CreateServices() { return UnitTestApplication.Start(TestServices.StyledWindow.With(windowingPlatform: From a7711a3b4af6f95a90d537a56d648e69ffdf1e07 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Thu, 23 Feb 2023 14:43:19 +0100 Subject: [PATCH 085/122] Route events to parent, not visual parent. Fixes #10420. --- src/Avalonia.Controls/Primitives/OverlayPopupHost.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Avalonia.Controls/Primitives/OverlayPopupHost.cs b/src/Avalonia.Controls/Primitives/OverlayPopupHost.cs index e16633483b..7ed055f2e5 100644 --- a/src/Avalonia.Controls/Primitives/OverlayPopupHost.cs +++ b/src/Avalonia.Controls/Primitives/OverlayPopupHost.cs @@ -51,7 +51,7 @@ namespace Avalonia.Controls.Primitives } /// - protected internal override Interactive? InteractiveParent => (Interactive?)VisualParent; + protected internal override Interactive? InteractiveParent => Parent as Interactive; /// public void Dispose() => Hide(); From b74d8b34ef980c569ec93028d8ffb54e4d747565 Mon Sep 17 00:00:00 2001 From: Daniil Pavliuchyk Date: Thu, 23 Feb 2023 18:05:09 +0200 Subject: [PATCH 086/122] Add ImageAutomationPeer --- .../Automation/Peers/ImageAutomationPeer.cs | 21 +++++++++++++++++++ src/Avalonia.Controls/Image.cs | 6 ++++++ 2 files changed, 27 insertions(+) create mode 100644 src/Avalonia.Controls/Automation/Peers/ImageAutomationPeer.cs diff --git a/src/Avalonia.Controls/Automation/Peers/ImageAutomationPeer.cs b/src/Avalonia.Controls/Automation/Peers/ImageAutomationPeer.cs new file mode 100644 index 0000000000..9cc0f17818 --- /dev/null +++ b/src/Avalonia.Controls/Automation/Peers/ImageAutomationPeer.cs @@ -0,0 +1,21 @@ +using Avalonia.Automation.Peers; + +namespace Avalonia.Controls.Automation.Peers +{ + public class ImageAutomationPeer : ControlAutomationPeer + { + public ImageAutomationPeer(Control owner) : base(owner) + { + } + + override protected string GetClassNameCore() + { + return "Image"; + } + + override protected AutomationControlType GetAutomationControlTypeCore() + { + return AutomationControlType.Image; + } + } +} diff --git a/src/Avalonia.Controls/Image.cs b/src/Avalonia.Controls/Image.cs index 3e76835e92..b14cc78e60 100644 --- a/src/Avalonia.Controls/Image.cs +++ b/src/Avalonia.Controls/Image.cs @@ -1,5 +1,6 @@ using Avalonia.Automation; using Avalonia.Automation.Peers; +using Avalonia.Controls.Automation.Peers; using Avalonia.Media; using Avalonia.Media.Imaging; using Avalonia.Metadata; @@ -130,5 +131,10 @@ namespace Avalonia.Controls return new Size(); } } + + protected override AutomationPeer OnCreateAutomationPeer() + { + return new ImageAutomationPeer(this); + } } } From f1759ab23eab6a6183922d4177394e3343388cd5 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Thu, 23 Feb 2023 18:38:12 +0100 Subject: [PATCH 087/122] Fix merge error. --- .../RadioButtonTests.cs | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/tests/Avalonia.IntegrationTests.Appium/RadioButtonTests.cs b/tests/Avalonia.IntegrationTests.Appium/RadioButtonTests.cs index 5bd0a05155..26a8577cb0 100644 --- a/tests/Avalonia.IntegrationTests.Appium/RadioButtonTests.cs +++ b/tests/Avalonia.IntegrationTests.Appium/RadioButtonTests.cs @@ -1,10 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading; -using System.Threading.Tasks; -using OpenQA.Selenium.Appium; +using OpenQA.Selenium.Appium; using Xunit; namespace Avalonia.IntegrationTests.Appium @@ -14,7 +8,7 @@ namespace Avalonia.IntegrationTests.Appium { private readonly AppiumDriver _session; - public RadioButtonTests(TestAppFixture fixture) + public RadioButtonTests(DefaultAppFixture fixture) { _session = fixture.Session; From 034064a45f2d7510c289c9cb6d7d87c02378be1f Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Thu, 23 Feb 2023 22:48:03 +0100 Subject: [PATCH 088/122] Use logical tree to detect if we're in a menu. Visual tree does not work when using overlay popups because the popups are displayed as visual children of the overlay layer. This is not a problem for native popups as each popup has its own `AccessKeyHandler`. --- src/Avalonia.Base/Input/AccessKeyHandler.cs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/Avalonia.Base/Input/AccessKeyHandler.cs b/src/Avalonia.Base/Input/AccessKeyHandler.cs index 59c66ed505..13ca140565 100644 --- a/src/Avalonia.Base/Input/AccessKeyHandler.cs +++ b/src/Avalonia.Base/Input/AccessKeyHandler.cs @@ -1,9 +1,8 @@ using System; using System.Collections.Generic; -using System.Globalization; using System.Linq; using Avalonia.Interactivity; -using Avalonia.VisualTree; +using Avalonia.LogicalTree; namespace Avalonia.Input { @@ -190,7 +189,7 @@ namespace Avalonia.Input // If the menu is open, only match controls in the menu's visual tree. if (menuIsOpen) { - matches = matches.Where(x => x is not null && ((Visual)MainMenu!).IsVisualAncestorOf((Visual)x)); + matches = matches.Where(x => x is not null && ((Visual)MainMenu!).IsLogicalAncestorOf((Visual)x)); } var match = matches.FirstOrDefault(); From d5a68b4b22c9719251830feb217e5b16a51f5385 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Thu, 23 Feb 2023 23:38:38 +0100 Subject: [PATCH 089/122] Ensure layout before trying to move selection. --- src/Avalonia.Controls/MenuItem.cs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/Avalonia.Controls/MenuItem.cs b/src/Avalonia.Controls/MenuItem.cs index 5588bde7c0..5c9dd4e193 100644 --- a/src/Avalonia.Controls/MenuItem.cs +++ b/src/Avalonia.Controls/MenuItem.cs @@ -309,7 +309,12 @@ namespace Avalonia.Controls protected override bool IsEnabledCore => base.IsEnabledCore && _commandCanExecute; /// - bool IMenuElement.MoveSelection(NavigationDirection direction, bool wrap) => MoveSelection(direction, wrap); + bool IMenuElement.MoveSelection(NavigationDirection direction, bool wrap) + { + if (Presenter?.Panel is null) + (VisualRoot as ILayoutRoot)?.LayoutManager.ExecuteLayoutPass(); + return MoveSelection(direction, wrap); + } /// IMenuItem? IMenuElement.SelectedItem From f745fe178833efc87829e6cd9e5459939a99e67e Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Thu, 23 Feb 2023 23:51:49 +0100 Subject: [PATCH 090/122] Use simpler event args type. The `PointerEnteredItem` and `PointerExitedItem` were using an obsolete API to create the event args. We don't need a `PointerEventArgs` anyway, just use `RoutedEventArgs`. --- src/Avalonia.Controls/MenuItem.cs | 23 +++++++---------- .../Platform/DefaultMenuInteractionHandler.cs | 4 +-- .../DefaultMenuInteractionHandlerTests.cs | 25 ++++++++----------- 3 files changed, 22 insertions(+), 30 deletions(-) diff --git a/src/Avalonia.Controls/MenuItem.cs b/src/Avalonia.Controls/MenuItem.cs index 5c9dd4e193..45fc2ed859 100644 --- a/src/Avalonia.Controls/MenuItem.cs +++ b/src/Avalonia.Controls/MenuItem.cs @@ -13,6 +13,7 @@ using Avalonia.Data; using Avalonia.Input; using Avalonia.Interactivity; using Avalonia.LogicalTree; +using Avalonia.Layout; namespace Avalonia.Controls { @@ -85,16 +86,16 @@ namespace Avalonia.Controls /// /// Defines the event. /// - public static readonly RoutedEvent PointerEnteredItemEvent = - RoutedEvent.Register( + public static readonly RoutedEvent PointerEnteredItemEvent = + RoutedEvent.Register( nameof(PointerEnteredItem), RoutingStrategies.Bubble); /// /// Defines the event. /// - public static readonly RoutedEvent PointerExitedItemEvent = - RoutedEvent.Register( + public static readonly RoutedEvent PointerExitedItemEvent = + RoutedEvent.Register( nameof(PointerExitedItem), RoutingStrategies.Bubble); @@ -184,7 +185,7 @@ namespace Avalonia.Controls /// /// A bubbling version of the event for menu items. /// - public event EventHandler? PointerEnteredItem + public event EventHandler? PointerEnteredItem { add { AddHandler(PointerEnteredItemEvent, value); } remove { RemoveHandler(PointerEnteredItemEvent, value); } @@ -196,7 +197,7 @@ namespace Avalonia.Controls /// /// A bubbling version of the event for menu items. /// - public event EventHandler? PointerExitedItem + public event EventHandler? PointerExitedItem { add { AddHandler(PointerExitedItemEvent, value); } remove { RemoveHandler(PointerExitedItemEvent, value); } @@ -442,20 +443,14 @@ namespace Avalonia.Controls protected override void OnPointerEntered(PointerEventArgs e) { base.OnPointerEntered(e); - - var point = e.GetCurrentPoint(null); - RaiseEvent(new PointerEventArgs(PointerEnteredItemEvent, this, e.Pointer, (Visual?)VisualRoot, point.Position, - e.Timestamp, point.Properties, e.KeyModifiers)); + RaiseEvent(new RoutedEventArgs(PointerEnteredItemEvent)); } /// protected override void OnPointerExited(PointerEventArgs e) { base.OnPointerExited(e); - - var point = e.GetCurrentPoint(null); - RaiseEvent(new PointerEventArgs(PointerExitedItemEvent, this, e.Pointer, (Visual?)VisualRoot, point.Position, - e.Timestamp, point.Properties, e.KeyModifiers)); + RaiseEvent(new RoutedEventArgs(PointerExitedItemEvent)); } /// diff --git a/src/Avalonia.Controls/Platform/DefaultMenuInteractionHandler.cs b/src/Avalonia.Controls/Platform/DefaultMenuInteractionHandler.cs index 4dd868253e..d2b23a7ac3 100644 --- a/src/Avalonia.Controls/Platform/DefaultMenuInteractionHandler.cs +++ b/src/Avalonia.Controls/Platform/DefaultMenuInteractionHandler.cs @@ -301,7 +301,7 @@ namespace Avalonia.Controls.Platform e.Handled = true; } - protected internal virtual void PointerEntered(object? sender, PointerEventArgs e) + protected internal virtual void PointerEntered(object? sender, RoutedEventArgs e) { var item = GetMenuItem(e.Source as Control); @@ -368,7 +368,7 @@ namespace Avalonia.Controls.Platform } } - protected internal virtual void PointerExited(object? sender, PointerEventArgs e) + protected internal virtual void PointerExited(object? sender, RoutedEventArgs e) { var item = GetMenuItem(e.Source as Control); diff --git a/tests/Avalonia.Controls.UnitTests/Platform/DefaultMenuInteractionHandlerTests.cs b/tests/Avalonia.Controls.UnitTests/Platform/DefaultMenuInteractionHandlerTests.cs index 15ff6e68e3..e5c96dcab6 100644 --- a/tests/Avalonia.Controls.UnitTests/Platform/DefaultMenuInteractionHandlerTests.cs +++ b/tests/Avalonia.Controls.UnitTests/Platform/DefaultMenuInteractionHandlerTests.cs @@ -11,9 +11,6 @@ namespace Avalonia.Controls.UnitTests.Platform { public class DefaultMenuInteractionHandlerTests { - static PointerEventArgs CreateArgs(RoutedEvent ev, object source) - => new PointerEventArgs(ev, source, new FakePointer(), (Visual)source, default, 0, PointerPointProperties.None, default); - static PointerPressedEventArgs CreatePressed(object source) => new PointerPressedEventArgs(source, new FakePointer(), (Visual)source, default,0, new PointerPointProperties (RawInputModifiers.None, PointerUpdateKind.LeftButtonPressed), default); @@ -171,7 +168,7 @@ namespace Avalonia.Controls.UnitTests.Platform var menu = new Mock(); var item = CreateMockMenuItem(isTopLevel: true, hasSubMenu: true, isSubMenuOpen: true, parent: menu.Object); var nextItem = CreateMockMenuItem(isTopLevel: true, hasSubMenu: true, parent: menu.Object); - var e = CreateArgs(MenuItem.PointerEnteredItemEvent, nextItem.Object); + var e = new RoutedEventArgs(MenuItem.PointerEnteredItemEvent, nextItem.Object); menu.SetupGet(x => x.SelectedItem).Returns(item.Object); @@ -191,7 +188,7 @@ namespace Avalonia.Controls.UnitTests.Platform var target = new DefaultMenuInteractionHandler(false); var menu = new Mock(); var item = CreateMockMenuItem(isTopLevel: true, parent: menu.Object); - var e = CreateArgs(MenuItem.PointerExitedItemEvent, item.Object); + var e = new RoutedEventArgs(MenuItem.PointerExitedItemEvent, item.Object); menu.SetupGet(x => x.SelectedItem).Returns(item.Object); target.PointerExited(item, e); @@ -206,7 +203,7 @@ namespace Avalonia.Controls.UnitTests.Platform var target = new DefaultMenuInteractionHandler(false); var menu = new Mock(); var item = CreateMockMenuItem(isTopLevel: true, parent: menu.Object); - var e = CreateArgs(MenuItem.PointerExitedItemEvent, item.Object); + var e = new RoutedEventArgs(MenuItem.PointerExitedItemEvent, item.Object); menu.SetupGet(x => x.IsOpen).Returns(true); menu.SetupGet(x => x.SelectedItem).Returns(item.Object); @@ -365,7 +362,7 @@ namespace Avalonia.Controls.UnitTests.Platform var menu = Mock.Of(); var parentItem = CreateMockMenuItem(isTopLevel: true, hasSubMenu: true, parent: menu); var item = CreateMockMenuItem(parent: parentItem.Object); - var e = CreateArgs(MenuItem.PointerEnteredItemEvent, item.Object); + var e = new RoutedEventArgs(MenuItem.PointerEnteredItemEvent, item.Object); target.PointerEntered(item.Object, e); @@ -381,7 +378,7 @@ namespace Avalonia.Controls.UnitTests.Platform var menu = Mock.Of(); var parentItem = CreateMockMenuItem(isTopLevel: true, hasSubMenu: true, parent: menu); var item = CreateMockMenuItem(hasSubMenu: true, parent: parentItem.Object); - var e = CreateArgs(MenuItem.PointerEnteredItemEvent, item.Object); + var e = new RoutedEventArgs(MenuItem.PointerEnteredItemEvent, item.Object); target.PointerEntered(item.Object, e); item.Verify(x => x.Open(), Times.Never); @@ -401,7 +398,7 @@ namespace Avalonia.Controls.UnitTests.Platform var parentItem = CreateMockMenuItem(isTopLevel: true, hasSubMenu: true, parent: menu); var item = CreateMockMenuItem(parent: parentItem.Object); var sibling = CreateMockMenuItem(hasSubMenu: true, isSubMenuOpen: true, parent: parentItem.Object); - var e = CreateArgs(MenuItem.PointerEnteredItemEvent, item.Object); + var e = new RoutedEventArgs(MenuItem.PointerEnteredItemEvent, item.Object); parentItem.SetupGet(x => x.SubItems).Returns(new[] { item.Object, sibling.Object }); @@ -421,7 +418,7 @@ namespace Avalonia.Controls.UnitTests.Platform var menu = Mock.Of(); var parentItem = CreateMockMenuItem(isTopLevel: true, hasSubMenu: true, parent: menu); var item = CreateMockMenuItem(parent: parentItem.Object); - var e = CreateArgs(MenuItem.PointerExitedItemEvent, item.Object); + var e = new RoutedEventArgs(MenuItem.PointerExitedItemEvent, item.Object); parentItem.SetupGet(x => x.SelectedItem).Returns(item.Object); target.PointerExited(item, e); @@ -438,7 +435,7 @@ namespace Avalonia.Controls.UnitTests.Platform var parentItem = CreateMockMenuItem(isTopLevel: true, hasSubMenu: true, parent: menu); var item = CreateMockMenuItem(parent: parentItem.Object); var sibling = CreateMockMenuItem(parent: parentItem.Object); - var e = CreateArgs(MenuItem.PointerExitedItemEvent, item.Object); + var e = new RoutedEventArgs(MenuItem.PointerExitedItemEvent, item.Object); parentItem.SetupGet(x => x.SelectedItem).Returns(sibling.Object); target.PointerExited(item, e); @@ -454,7 +451,7 @@ namespace Avalonia.Controls.UnitTests.Platform var menu = Mock.Of(); var parentItem = CreateMockMenuItem(isTopLevel: true, hasSubMenu: true, parent: menu); var item = CreateMockMenuItem(hasSubMenu: true, parent: parentItem.Object); - var e = CreateArgs(MenuItem.PointerExitedItemEvent, item.Object); + var e = new RoutedEventArgs(MenuItem.PointerExitedItemEvent, item.Object); item.Setup(x => x.IsPointerOverSubMenu).Returns(true); target.PointerExited(item, e); @@ -488,8 +485,8 @@ namespace Avalonia.Controls.UnitTests.Platform var parentItem = CreateMockMenuItem(isTopLevel: true, hasSubMenu: true, parent: menu); var item = CreateMockMenuItem(hasSubMenu: true, parent: parentItem.Object); var childItem = CreateMockMenuItem(parent: item.Object); - var enter = CreateArgs(MenuItem.PointerEnteredItemEvent, item.Object); - var leave = CreateArgs(MenuItem.PointerExitedItemEvent, item.Object); + var enter = new RoutedEventArgs(MenuItem.PointerEnteredItemEvent, item.Object); + var leave = new RoutedEventArgs(MenuItem.PointerExitedItemEvent, item.Object); // Pointer enters item; item is selected. target.PointerEntered(item, enter); From 550b9ed88136e4623b446cbd88795391ced34cea Mon Sep 17 00:00:00 2001 From: pr8x Date: Fri, 24 Feb 2023 11:16:17 +0100 Subject: [PATCH 091/122] Fix some issues with SimpleTheme --- src/Avalonia.Controls.DataGrid/Themes/Simple.xaml | 2 +- .../Diagnostics/Views/EventsPageView.xaml | 4 ++-- src/Avalonia.Themes.Simple/Accents/Base.xaml | 5 +++++ src/Avalonia.Themes.Simple/Controls/ComboBox.xaml | 1 + .../Controls/DataValidationErrors.xaml | 1 - 5 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/Avalonia.Controls.DataGrid/Themes/Simple.xaml b/src/Avalonia.Controls.DataGrid/Themes/Simple.xaml index 76e44e4daf..464a12770e 100644 --- a/src/Avalonia.Controls.DataGrid/Themes/Simple.xaml +++ b/src/Avalonia.Controls.DataGrid/Themes/Simple.xaml @@ -202,7 +202,7 @@ @@ -129,7 +129,7 @@ - + public static readonly StyledProperty OrientationProperty = - StackPanel.OrientationProperty.AddOwner(); + StackPanel.OrientationProperty.AddOwner(); /// /// Defines the property. diff --git a/src/Avalonia.Controls/NativeMenuItem.cs b/src/Avalonia.Controls/NativeMenuItem.cs index 526eff0f12..32fa574ee6 100644 --- a/src/Avalonia.Controls/NativeMenuItem.cs +++ b/src/Avalonia.Controls/NativeMenuItem.cs @@ -137,7 +137,7 @@ namespace Avalonia.Controls /// Defines the property. /// public static readonly StyledProperty CommandParameterProperty = - Button.CommandParameterProperty.AddOwner(); + Button.CommandParameterProperty.AddOwner(); public static readonly DirectProperty IsEnabledProperty = AvaloniaProperty.RegisterDirect(nameof(IsEnabled), o => o.IsEnabled, (o, v) => o.IsEnabled = v, true); diff --git a/src/Avalonia.Controls/Primitives/AdornerLayer.cs b/src/Avalonia.Controls/Primitives/AdornerLayer.cs index 1e07036919..37c46e1e7d 100644 --- a/src/Avalonia.Controls/Primitives/AdornerLayer.cs +++ b/src/Avalonia.Controls/Primitives/AdornerLayer.cs @@ -2,7 +2,6 @@ using System; using System.Collections.Specialized; using Avalonia.Media; using Avalonia.Reactive; -using Avalonia.Rendering; using Avalonia.VisualTree; namespace Avalonia.Controls.Primitives @@ -38,7 +37,7 @@ namespace Avalonia.Controls.Primitives /// Defines the property. /// public static readonly StyledProperty?> DefaultFocusAdornerProperty = - AvaloniaProperty.Register?>(nameof(DefaultFocusAdorner)); + AvaloniaProperty.Register?>(nameof(DefaultFocusAdorner)); private static readonly AttachedProperty s_adornedElementInfoProperty = AvaloniaProperty.RegisterAttached("AdornedElementInfo"); diff --git a/src/Avalonia.Controls/TrayIcon.cs b/src/Avalonia.Controls/TrayIcon.cs index 93b177715e..5713846b35 100644 --- a/src/Avalonia.Controls/TrayIcon.cs +++ b/src/Avalonia.Controls/TrayIcon.cs @@ -95,7 +95,7 @@ namespace Avalonia.Controls /// Defines the property. /// public static readonly StyledProperty CommandParameterProperty = - Button.CommandParameterProperty.AddOwner(); + Button.CommandParameterProperty.AddOwner(); /// /// Defines the attached property. From cb29cb5312091252911de4e3395cd0a51a256090 Mon Sep 17 00:00:00 2001 From: Giuseppe Lippolis Date: Fri, 24 Feb 2023 17:20:19 +0100 Subject: [PATCH 099/122] fix: Address Rule AVP1040 Type mismatch: CLR property type differs from the value type of {type} ```bash Avalonia.Media.IPen? Avalonia.Base (net6.0) .\src\Avalonia.Base\Media\GeometryDrawing.cs 55 Active ``` --- src/Avalonia.Base/Media/GeometryDrawing.cs | 4 ++-- src/Avalonia.Base/Media/PolyLineSegment.cs | 3 +-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/Avalonia.Base/Media/GeometryDrawing.cs b/src/Avalonia.Base/Media/GeometryDrawing.cs index ac2dce1e42..abfd2e33ac 100644 --- a/src/Avalonia.Base/Media/GeometryDrawing.cs +++ b/src/Avalonia.Base/Media/GeometryDrawing.cs @@ -27,8 +27,8 @@ namespace Avalonia.Media /// /// Defines the property. /// - public static readonly StyledProperty PenProperty = - AvaloniaProperty.Register(nameof(Pen)); + public static readonly StyledProperty PenProperty = + AvaloniaProperty.Register(nameof(Pen)); /// /// Gets or sets the that describes the shape of this . diff --git a/src/Avalonia.Base/Media/PolyLineSegment.cs b/src/Avalonia.Base/Media/PolyLineSegment.cs index 55bfb33041..5c48c11e19 100644 --- a/src/Avalonia.Base/Media/PolyLineSegment.cs +++ b/src/Avalonia.Base/Media/PolyLineSegment.cs @@ -1,5 +1,4 @@ using System.Collections.Generic; -using Avalonia.Collections; namespace Avalonia.Media { @@ -20,7 +19,7 @@ namespace Avalonia.Media /// /// The points. /// - public AvaloniaList Points + public Points Points { get => GetValue(PointsProperty); set => SetValue(PointsProperty, value); From bab5e7402708ef3e52c2bf57a193318226ad7bbd Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Fri, 24 Feb 2023 23:58:12 +0100 Subject: [PATCH 100/122] Don't think exceptions in carousel panel. `VirtualizingCarouselPanel` can't bring items into view (it can't scroll) or get a control in a direction (it only hosts one control) but we shouldn't throw `NotImplementedException` as these methods can still be called. Just make them a no-op. Fixes #10374 --- src/Avalonia.Controls/VirtualizingCarouselPanel.cs | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/src/Avalonia.Controls/VirtualizingCarouselPanel.cs b/src/Avalonia.Controls/VirtualizingCarouselPanel.cs index f655fd18d4..da0ff1eb69 100644 --- a/src/Avalonia.Controls/VirtualizingCarouselPanel.cs +++ b/src/Avalonia.Controls/VirtualizingCarouselPanel.cs @@ -80,16 +80,8 @@ namespace Avalonia.Controls remove => _scrollInvalidated -= value; } - bool ILogicalScrollable.BringIntoView(Control target, Rect targetRect) - { - throw new NotImplementedException(); - } - - Control? ILogicalScrollable.GetControlInDirection(NavigationDirection direction, Control? from) - { - throw new NotImplementedException(); - } - + bool ILogicalScrollable.BringIntoView(Control target, Rect targetRect) => false; + Control? ILogicalScrollable.GetControlInDirection(NavigationDirection direction, Control? from) => null; void ILogicalScrollable.RaiseScrollInvalidated(EventArgs e) => _scrollInvalidated?.Invoke(this, e); protected override Size MeasureOverride(Size availableSize) From 032d7d8e0547906e9d2c45733ffb0097642a6c4c Mon Sep 17 00:00:00 2001 From: Max Katz Date: Fri, 24 Feb 2023 18:36:40 -0500 Subject: [PATCH 101/122] Fix build --- src/Skia/Avalonia.Skia/FontManagerImpl.cs | 2 +- src/Skia/Avalonia.Skia/Helpers/DrawingContextHelper.cs | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/Skia/Avalonia.Skia/FontManagerImpl.cs b/src/Skia/Avalonia.Skia/FontManagerImpl.cs index a35113dc26..90a2f9169b 100644 --- a/src/Skia/Avalonia.Skia/FontManagerImpl.cs +++ b/src/Skia/Avalonia.Skia/FontManagerImpl.cs @@ -99,7 +99,7 @@ namespace Avalonia.Skia { SKTypeface? skTypeface = null; - if(typeface.FontFamily.Key is not null null) + if(typeface.FontFamily.Key is not null) { var fontCollection = SKTypefaceCollectionCache.GetOrAddTypefaceCollection(typeface.FontFamily); diff --git a/src/Skia/Avalonia.Skia/Helpers/DrawingContextHelper.cs b/src/Skia/Avalonia.Skia/Helpers/DrawingContextHelper.cs index ec24f8f624..b774ddf411 100644 --- a/src/Skia/Avalonia.Skia/Helpers/DrawingContextHelper.cs +++ b/src/Skia/Avalonia.Skia/Helpers/DrawingContextHelper.cs @@ -13,7 +13,6 @@ namespace Avalonia.Skia.Helpers /// /// /// - /// /// DrawingContext public static IDrawingContextImpl WrapSkiaCanvas(SKCanvas canvas, Vector dpi) { From 5778afd76aad5fa4c4a7c5aff7d6e16f84c3b1bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Pedro?= Date: Sat, 25 Feb 2023 02:42:07 +0000 Subject: [PATCH 102/122] Added unit test for templated parent theme changed loop. --- .../Styling/StyledElementTests_Theming.cs | 43 ++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) diff --git a/tests/Avalonia.Base.UnitTests/Styling/StyledElementTests_Theming.cs b/tests/Avalonia.Base.UnitTests/Styling/StyledElementTests_Theming.cs index 60603937d9..6ba648af78 100644 --- a/tests/Avalonia.Base.UnitTests/Styling/StyledElementTests_Theming.cs +++ b/tests/Avalonia.Base.UnitTests/Styling/StyledElementTests_Theming.cs @@ -569,6 +569,46 @@ public class StyledElementTests_Theming Assert.Equal(Brushes.Green, border.Background); } + [Fact] + public void TemplatedParent_Theme_Change_Applies_Recursively_To_VisualChildren() + { + var theme = CreateDerivedTheme(); + var target = CreateTarget(); + + Assert.Null(target.Theme); + Assert.Null(target.Template); + + var root = CreateRoot(target, theme.BasedOn); + + Assert.NotNull(target.Theme); + Assert.NotNull(target.Template); + + root.Styles.Add(new Style(x => x.OfType().Class("foo")) + { + Setters = { new Setter(StyledElement.ThemeProperty, theme) } + }); + + root.LayoutManager.ExecuteLayoutPass(); + + var border = Assert.IsType(target.VisualChild); + var inner = Assert.IsType(border.Child); + + Assert.Equal(Brushes.Red, border.Background); + Assert.Equal(Brushes.Red, inner.Background); + + Assert.Equal(null, inner.BorderBrush); + Assert.Equal(null, inner.BorderBrush); + + target.Classes.Add("foo"); + root.LayoutManager.ExecuteLayoutPass(); + + Assert.Equal(Brushes.Green, border.Background); + Assert.Equal(Brushes.Green, inner.Background); + + Assert.Equal(Brushes.Cyan, inner.BorderBrush); + Assert.Equal(Brushes.Cyan, inner.BorderBrush); + } + private static ThemedControl CreateTarget() { return new ThemedControl(); @@ -595,7 +635,8 @@ public class StyledElementTests_Theming private static ControlTheme CreateTheme(string tag = "theme") { - var template = new FuncControlTemplate((o, n) => new Border()); + var template = new FuncControlTemplate( + (o, n) => new Border() { Child = new Border() }); return new ControlTheme { From 12bf8bd1817ada201becf7d3eaf79d8dd0b8518e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Pedro?= Date: Sat, 25 Feb 2023 02:43:13 +0000 Subject: [PATCH 103/122] Fixed templated parent theme changed loop. --- src/Avalonia.Base/Visual.cs | 17 +++++++++++++++++ .../Primitives/TemplatedControl.cs | 17 ----------------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/Avalonia.Base/Visual.cs b/src/Avalonia.Base/Visual.cs index 8b0cc06136..df0c5b100f 100644 --- a/src/Avalonia.Base/Visual.cs +++ b/src/Avalonia.Base/Visual.cs @@ -732,6 +732,23 @@ namespace Avalonia } } + internal override void OnTemplatedParentControlThemeChanged() + { + base.OnTemplatedParentControlThemeChanged(); + + var count = VisualChildren.Count; + var templatedParent = TemplatedParent; + + for (var i = 0; i < count; ++i) + { + if (VisualChildren[i] is StyledElement child && + child.TemplatedParent == templatedParent) + { + child.OnTemplatedParentControlThemeChanged(); + } + } + } + /// /// Computes the value according to the /// and diff --git a/src/Avalonia.Controls/Primitives/TemplatedControl.cs b/src/Avalonia.Controls/Primitives/TemplatedControl.cs index d8874832bd..8253342782 100644 --- a/src/Avalonia.Controls/Primitives/TemplatedControl.cs +++ b/src/Avalonia.Controls/Primitives/TemplatedControl.cs @@ -405,22 +405,5 @@ namespace Avalonia.Controls.Primitives } } } - - internal override void OnTemplatedParentControlThemeChanged() - { - base.OnTemplatedParentControlThemeChanged(); - - var count = VisualChildren.Count; - var templatedParent = TemplatedParent; - - for (var i = 0; i < count; ++i) - { - if (VisualChildren[i] is TemplatedControl child && - child.TemplatedParent == templatedParent) - { - child.OnTemplatedParentControlThemeChanged(); - } - } - } } } From c315842c1e0dcd42a074800fe3cafacb05710333 Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Sat, 25 Feb 2023 09:43:49 +0000 Subject: [PATCH 104/122] xcode-select --- azure-pipelines-integrationtests.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/azure-pipelines-integrationtests.yml b/azure-pipelines-integrationtests.yml index 5735da19ab..ffd7bb09c6 100644 --- a/azure-pipelines-integrationtests.yml +++ b/azure-pipelines-integrationtests.yml @@ -25,6 +25,7 @@ jobs: - script: system_profiler SPDisplaysDataType |grep Resolution - script: | + xcode-select -s /Applications/Xcode.app/Contents/Developer pkill node appium & pkill IntegrationTestApp From c1c1a10d2fba23857a1b133132ee5504d2d9d67e Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Sat, 25 Feb 2023 09:45:46 +0000 Subject: [PATCH 105/122] sudo --- azure-pipelines-integrationtests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines-integrationtests.yml b/azure-pipelines-integrationtests.yml index ffd7bb09c6..81e1046a1e 100644 --- a/azure-pipelines-integrationtests.yml +++ b/azure-pipelines-integrationtests.yml @@ -25,7 +25,7 @@ jobs: - script: system_profiler SPDisplaysDataType |grep Resolution - script: | - xcode-select -s /Applications/Xcode.app/Contents/Developer + sudo xcode-select -s /Applications/Xcode.app/Contents/Developer pkill node appium & pkill IntegrationTestApp From b548ccb346aad761e1b40efbd38dcbf96bdd2d51 Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Sat, 25 Feb 2023 10:08:01 +0000 Subject: [PATCH 106/122] fix integration test app, missing inter font package. --- samples/IntegrationTestApp/IntegrationTestApp.csproj | 1 + 1 file changed, 1 insertion(+) diff --git a/samples/IntegrationTestApp/IntegrationTestApp.csproj b/samples/IntegrationTestApp/IntegrationTestApp.csproj index 0a761d70ba..1356eeb526 100644 --- a/samples/IntegrationTestApp/IntegrationTestApp.csproj +++ b/samples/IntegrationTestApp/IntegrationTestApp.csproj @@ -19,6 +19,7 @@ + From 4a3c82b194f782d89c44a1670dcb8e8de1dce59d Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Sat, 25 Feb 2023 11:19:46 +0000 Subject: [PATCH 107/122] remove trigger from yaml. --- azure-pipelines-integrationtests.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/azure-pipelines-integrationtests.yml b/azure-pipelines-integrationtests.yml index 81e1046a1e..df6ecbbaf7 100644 --- a/azure-pipelines-integrationtests.yml +++ b/azure-pipelines-integrationtests.yml @@ -3,9 +3,6 @@ # Add steps that build, run tests, deploy, and more: # https://aka.ms/yaml -trigger: -- master - jobs: - job: Mac pool: From 4dbd9a91c8dedcfb16465ae5a0d97c80bf26c3d7 Mon Sep 17 00:00:00 2001 From: affederaffe <68356204+affederaffe@users.noreply.github.com> Date: Sat, 25 Feb 2023 12:27:23 +0100 Subject: [PATCH 108/122] Add Avalonia.Fonts.Inter to Avalonia.Desktop.slnf --- Avalonia.Desktop.slnf | 1 + 1 file changed, 1 insertion(+) diff --git a/Avalonia.Desktop.slnf b/Avalonia.Desktop.slnf index 4a7a329fc6..477aaec6a8 100644 --- a/Avalonia.Desktop.slnf +++ b/Avalonia.Desktop.slnf @@ -21,6 +21,7 @@ "src\\Avalonia.Desktop\\Avalonia.Desktop.csproj", "src\\Avalonia.Diagnostics\\Avalonia.Diagnostics.csproj", "src\\Avalonia.Dialogs\\Avalonia.Dialogs.csproj", + "src\\Avalonia.Fonts.Inter\\Avalonia.Fonts.Inter.csproj", "src\\Avalonia.FreeDesktop\\Avalonia.FreeDesktop.csproj", "src\\Avalonia.Headless.Vnc\\Avalonia.Headless.Vnc.csproj", "src\\Avalonia.Headless\\Avalonia.Headless.csproj", From 4592470047ce8b47b8ba43c09efcc189b2cab2c8 Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Sat, 25 Feb 2023 11:27:37 +0000 Subject: [PATCH 109/122] remove header not needed. --- azure-pipelines-integrationtests.yml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/azure-pipelines-integrationtests.yml b/azure-pipelines-integrationtests.yml index df6ecbbaf7..7221fe4657 100644 --- a/azure-pipelines-integrationtests.yml +++ b/azure-pipelines-integrationtests.yml @@ -1,8 +1,3 @@ -# Starter pipeline -# Start with a minimal pipeline that you can customize to build and deploy your code. -# Add steps that build, run tests, deploy, and more: -# https://aka.ms/yaml - jobs: - job: Mac pool: From 5009fb9d9baf41bd4365df588c019fc1fa6a301d Mon Sep 17 00:00:00 2001 From: Giuseppe Lippolis Date: Sat, 25 Feb 2023 12:37:25 +0100 Subject: [PATCH 110/122] fix: CA1823 Unused field ```bash Warning CA1823 Unused field '_transform' Avalonia.Base (net6.0) .\src\Avalonia.Base\Media\DrawingGroup.cs 110 Active Warning CA1823 Unused field '_matrix' Avalonia.Base (netstandard2.0) .\src\Avalonia.Base\Media\DrawingContext.cs 280 Active ``` --- src/Avalonia.Base/Media/DrawingContext.cs | 1 - src/Avalonia.Base/Media/DrawingGroup.cs | 2 -- 2 files changed, 3 deletions(-) diff --git a/src/Avalonia.Base/Media/DrawingContext.cs b/src/Avalonia.Base/Media/DrawingContext.cs index 31a16dc69c..f2106f2f86 100644 --- a/src/Avalonia.Base/Media/DrawingContext.cs +++ b/src/Avalonia.Base/Media/DrawingContext.cs @@ -277,7 +277,6 @@ namespace Avalonia.Media private readonly record struct RestoreState : IDisposable { private readonly DrawingContext _context; - private readonly Matrix _matrix; private readonly PushedStateType _type; public enum PushedStateType diff --git a/src/Avalonia.Base/Media/DrawingGroup.cs b/src/Avalonia.Base/Media/DrawingGroup.cs index 812d315912..a41054202e 100644 --- a/src/Avalonia.Base/Media/DrawingGroup.cs +++ b/src/Avalonia.Base/Media/DrawingGroup.cs @@ -107,8 +107,6 @@ namespace Avalonia.Media private readonly DrawingGroup _drawingGroup; private readonly IPlatformRenderInterface _platformRenderInterface = AvaloniaLocator.Current.GetRequiredService(); - private Matrix _transform; - private bool _disposed; // Root drawing created by this DrawingContext. From 5f98ec831907550bd9dea20f495776207288df41 Mon Sep 17 00:00:00 2001 From: Giuseppe Lippolis Date: Fri, 24 Feb 2023 17:36:41 +0100 Subject: [PATCH 111/122] fix: Address Rule AVP1021 Name collision: {type} owns multiple Avalonia properties with the name '{PropertyName}' ```bash Warning AVP1021 Name collision: Avalonia.Controls.MaskedTextBox owns multiple Avalonia properties with the name 'PasswordChar' Avalonia.Controls.TextBox.PasswordCharProperty Avalonia.Controls.MaskedTextBox.PasswordCharProperty Avalonia.Controls (net6.0) .\src\Avalonia.Controls\MaskedTextBox.cs 134 Active Warning AVP1021 Name collision: Avalonia.Diagnostics.Controls.ThicknessEditor owns multiple Avalonia properties with the name 'Header' Avalonia.Diagnostics.Controls.ThicknessEditor.HeaderProperty Avalonia.Diagnostics.Controls.ThicknessEditor.IsPresentProperty Avalonia.Diagnostics (net6.0) .\src\Avalonia.Diagnostics\Diagnostics\Controls\ThicknessEditor.cs 53 Active ``` --- src/Avalonia.Controls/MaskedTextBox.cs | 10 +++++++++- .../Diagnostics/Controls/ThicknessEditor.cs | 2 +- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/Avalonia.Controls/MaskedTextBox.cs b/src/Avalonia.Controls/MaskedTextBox.cs index 5a3eb47ce4..f086ce0ace 100644 --- a/src/Avalonia.Controls/MaskedTextBox.cs +++ b/src/Avalonia.Controls/MaskedTextBox.cs @@ -32,7 +32,9 @@ namespace Avalonia.Controls AvaloniaProperty.Register(nameof(Mask), string.Empty); public static new readonly StyledProperty PasswordCharProperty = - AvaloniaProperty.Register(nameof(PasswordChar), '\0'); +#pragma warning disable AVP1013 // AvaloniaProperty owners should not be added superfluously + TextBox.PasswordCharProperty.AddOwner(); +#pragma warning restore AVP1013 // AvaloniaProperty owners should not be added superfluously public static readonly StyledProperty PromptCharProperty = AvaloniaProperty.Register(nameof(PromptChar), '_'); @@ -51,6 +53,12 @@ namespace Avalonia.Controls private bool _resetOnSpace = true; + static MaskedTextBox() + { + PasswordCharProperty + .OverrideDefaultValue('\0'); + } + public MaskedTextBox() { } /// diff --git a/src/Avalonia.Diagnostics/Diagnostics/Controls/ThicknessEditor.cs b/src/Avalonia.Diagnostics/Diagnostics/Controls/ThicknessEditor.cs index ec7e91c8be..c9189a886d 100644 --- a/src/Avalonia.Diagnostics/Diagnostics/Controls/ThicknessEditor.cs +++ b/src/Avalonia.Diagnostics/Diagnostics/Controls/ThicknessEditor.cs @@ -15,7 +15,7 @@ namespace Avalonia.Diagnostics.Controls (o, v) => o.Header = v); public static readonly DirectProperty IsPresentProperty = - AvaloniaProperty.RegisterDirect(nameof(Header), o => o.IsPresent, + AvaloniaProperty.RegisterDirect(nameof(IsPresent), o => o.IsPresent, (o, v) => o.IsPresent = v); public static readonly DirectProperty LeftProperty = From 0038f9ed966d17b30c1171cc0e76aa064889d37d Mon Sep 17 00:00:00 2001 From: Giuseppe Lippolis Date: Fri, 24 Feb 2023 18:32:28 +0100 Subject: [PATCH 112/122] fix: AVP1022 Bad name: An AvaloniaProperty named 'DrawOnlyPoints' is being assigned to ControlCatalog.Pages.PointerCanvas.StatusProperty --- samples/ControlCatalog/Pages/PointerCanvas.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/ControlCatalog/Pages/PointerCanvas.cs b/samples/ControlCatalog/Pages/PointerCanvas.cs index 653590fe64..32e46af9dd 100644 --- a/samples/ControlCatalog/Pages/PointerCanvas.cs +++ b/samples/ControlCatalog/Pages/PointerCanvas.cs @@ -114,7 +114,7 @@ public class PointerCanvas : Control private string? _status; public static readonly DirectProperty StatusProperty = - AvaloniaProperty.RegisterDirect(nameof(DrawOnlyPoints), c => c.Status, (c, v) => c.Status = v, + AvaloniaProperty.RegisterDirect(nameof(Status), c => c.Status, (c, v) => c.Status = v, defaultBindingMode: Avalonia.Data.BindingMode.TwoWay); public string? Status From ffe6fe8a39b0504cd2bd77eb9b1975c627406f61 Mon Sep 17 00:00:00 2001 From: affederaffe <68356204+affederaffe@users.noreply.github.com> Date: Sat, 25 Feb 2023 13:34:29 +0100 Subject: [PATCH 113/122] Fix dependency of Avalonia.Fonts.Inter --- samples/ControlCatalog/ControlCatalog.csproj | 1 - src/Avalonia.Themes.Fluent/Avalonia.Themes.Fluent.csproj | 1 + src/Avalonia.Themes.Simple/Avalonia.Themes.Simple.csproj | 1 + 3 files changed, 2 insertions(+), 1 deletion(-) diff --git a/samples/ControlCatalog/ControlCatalog.csproj b/samples/ControlCatalog/ControlCatalog.csproj index 0e84b3d182..c223bfe1a9 100644 --- a/samples/ControlCatalog/ControlCatalog.csproj +++ b/samples/ControlCatalog/ControlCatalog.csproj @@ -29,7 +29,6 @@ - diff --git a/src/Avalonia.Themes.Fluent/Avalonia.Themes.Fluent.csproj b/src/Avalonia.Themes.Fluent/Avalonia.Themes.Fluent.csproj index 8d266ce82f..66fcce2163 100644 --- a/src/Avalonia.Themes.Fluent/Avalonia.Themes.Fluent.csproj +++ b/src/Avalonia.Themes.Fluent/Avalonia.Themes.Fluent.csproj @@ -8,6 +8,7 @@ + diff --git a/src/Avalonia.Themes.Simple/Avalonia.Themes.Simple.csproj b/src/Avalonia.Themes.Simple/Avalonia.Themes.Simple.csproj index 4aa6b66743..aefa407645 100644 --- a/src/Avalonia.Themes.Simple/Avalonia.Themes.Simple.csproj +++ b/src/Avalonia.Themes.Simple/Avalonia.Themes.Simple.csproj @@ -8,6 +8,7 @@ + From dca96b5ad3a7f9acca903ca6f9a0191ba5271068 Mon Sep 17 00:00:00 2001 From: Julien Lebosquain Date: Sat, 25 Feb 2023 13:55:38 +0100 Subject: [PATCH 114/122] Avoid boxing iterators in hot paths --- .../Composition/CompositingRenderer.cs | 2 +- src/Avalonia.Base/StyledElement.cs | 21 +++++++++++++------ src/Avalonia.Base/Styling/OrSelector.cs | 13 +++++++----- 3 files changed, 24 insertions(+), 12 deletions(-) diff --git a/src/Avalonia.Base/Rendering/Composition/CompositingRenderer.cs b/src/Avalonia.Base/Rendering/Composition/CompositingRenderer.cs index 01299e4ffa..df3a70b3e6 100644 --- a/src/Avalonia.Base/Rendering/Composition/CompositingRenderer.cs +++ b/src/Avalonia.Base/Rendering/Composition/CompositingRenderer.cs @@ -225,7 +225,7 @@ public class CompositingRenderer : IRendererWithCompositor sortedChildren.Dispose(); } else - foreach (var ch in v.GetVisualChildren()) + foreach (var ch in visualChildren) { var compositionChild = ch.CompositionVisual; if (compositionChild != null) diff --git a/src/Avalonia.Base/StyledElement.cs b/src/Avalonia.Base/StyledElement.cs index 82e948eea8..cbdf3c3c1e 100644 --- a/src/Avalonia.Base/StyledElement.cs +++ b/src/Avalonia.Base/StyledElement.cs @@ -803,8 +803,11 @@ namespace Avalonia if (theme.HasChildren) { - foreach (var child in theme.Children) - ApplyStyle(child, null, type); + var children = theme.Children; + for (var i = 0; i < children.Count; i++) + { + ApplyStyle(children[i], null, type); + } } } @@ -816,8 +819,11 @@ namespace Avalonia if (host.IsStylesInitialized) { - foreach (var style in host.Styles) - ApplyStyle(style, host, FrameType.Style); + var styles = host.Styles; + for (var i = 0; i < styles.Count; ++i) + { + ApplyStyle(styles[i], host, FrameType.Style); + } } } @@ -826,8 +832,11 @@ namespace Avalonia if (style is Style s) s.TryAttach(this, host, type); - foreach (var child in style.Children) - ApplyStyle(child, host, type); + var children = style.Children; + for (var i = 0; i < children.Count; i++) + { + ApplyStyle(children[i], host, type); + } } private void ReevaluateImplicitTheme() diff --git a/src/Avalonia.Base/Styling/OrSelector.cs b/src/Avalonia.Base/Styling/OrSelector.cs index c5ef9a0b2b..3b0aa03492 100644 --- a/src/Avalonia.Base/Styling/OrSelector.cs +++ b/src/Avalonia.Base/Styling/OrSelector.cs @@ -71,9 +71,9 @@ namespace Avalonia.Styling var activators = new OrActivatorBuilder(); var neverThisInstance = false; - foreach (var selector in _selectors) + for (var i = 0; i < _selectors.Count; i++) { - var match = selector.Match(control, parent, subscribe); + var match = _selectors[i].Match(control, parent, subscribe); switch (match.Result) { @@ -108,16 +108,19 @@ namespace Avalonia.Styling internal override void ValidateNestingSelector(bool inControlTheme) { - foreach (var selector in _selectors) - selector.ValidateNestingSelector(inControlTheme); + for (var i = 0; i < _selectors.Count; i++) + { + _selectors[i].ValidateNestingSelector(inControlTheme); + } } private Type? EvaluateTargetType() { Type? result = null; - foreach (var selector in _selectors) + for (var i = 0; i < _selectors.Count; i++) { + var selector = _selectors[i]; if (selector.TargetType == null) { return null; From 765bce78d78bb4aa90d2ce264a18e7b066e3a32f Mon Sep 17 00:00:00 2001 From: Julien Lebosquain Date: Sat, 25 Feb 2023 14:25:02 +0100 Subject: [PATCH 115/122] Avoid unneeded allocations in CompiledBindingPath --- .../CompiledBindings/CompiledBindingPath.cs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/Markup/Avalonia.Markup.Xaml/MarkupExtensions/CompiledBindings/CompiledBindingPath.cs b/src/Markup/Avalonia.Markup.Xaml/MarkupExtensions/CompiledBindings/CompiledBindingPath.cs index 2b62d33349..f196231a6b 100644 --- a/src/Markup/Avalonia.Markup.Xaml/MarkupExtensions/CompiledBindings/CompiledBindingPath.cs +++ b/src/Markup/Avalonia.Markup.Xaml/MarkupExtensions/CompiledBindings/CompiledBindingPath.cs @@ -1,7 +1,6 @@ using System; using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; -using System.Linq; using System.Reflection; using Avalonia.Controls; using Avalonia.Data.Core; @@ -13,13 +12,14 @@ namespace Avalonia.Markup.Xaml.MarkupExtensions.CompiledBindings { public class CompiledBindingPath { - private readonly List _elements = new List(); + private readonly ICompiledBindingPathElement[] _elements; - public CompiledBindingPath() { } + public CompiledBindingPath() + => _elements = Array.Empty(); - internal CompiledBindingPath(IEnumerable bindingPath, object rawSource) + internal CompiledBindingPath(ICompiledBindingPathElement[] elements, object rawSource) { - _elements = new List(bindingPath); + _elements = elements; RawSource = rawSource; } @@ -78,13 +78,13 @@ namespace Avalonia.Markup.Xaml.MarkupExtensions.CompiledBindings internal IEnumerable Elements => _elements; - internal SourceMode SourceMode => _elements.OfType().Any() + internal SourceMode SourceMode => Array.Exists(_elements, e => e is IControlSourceBindingPathElement) ? SourceMode.Control : SourceMode.Data; internal object RawSource { get; } public override string ToString() - => string.Concat(_elements); + => string.Concat((IEnumerable) _elements); } public class CompiledBindingPathBuilder @@ -169,7 +169,7 @@ namespace Avalonia.Markup.Xaml.MarkupExtensions.CompiledBindings return this; } - public CompiledBindingPath Build() => new CompiledBindingPath(_elements, _rawSource); + public CompiledBindingPath Build() => new CompiledBindingPath(_elements.ToArray(), _rawSource); } public interface ICompiledBindingPathElement From 79af58b32f93312c5ba519e98f1192a8bd432796 Mon Sep 17 00:00:00 2001 From: Julien Lebosquain Date: Sat, 25 Feb 2023 15:06:30 +0100 Subject: [PATCH 116/122] Adjusted AvaloniaPropertyDictionary growth rate to reduce allocations --- .../Utilities/AvaloniaPropertyDictionary.cs | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/src/Avalonia.Base/Utilities/AvaloniaPropertyDictionary.cs b/src/Avalonia.Base/Utilities/AvaloniaPropertyDictionary.cs index 5cac2ef658..0589abb2dd 100644 --- a/src/Avalonia.Base/Utilities/AvaloniaPropertyDictionary.cs +++ b/src/Avalonia.Base/Utilities/AvaloniaPropertyDictionary.cs @@ -304,13 +304,9 @@ namespace Avalonia.Utilities { if (_entryCount == _entries!.Length) { - const double growthFactor = 1.2; - var newSize = (int)(_entryCount * growthFactor); - - if (newSize == _entryCount) - { - newSize++; - } + var newSize = _entryCount == DefaultInitialCapacity ? + DefaultInitialCapacity * 2 : + (int)(_entryCount * 1.5); var destEntries = new Entry[newSize]; From 45ba9c98dff7791f46aaea2cc3ba0b863707cbd8 Mon Sep 17 00:00:00 2001 From: Julien Lebosquain Date: Sat, 25 Feb 2023 16:21:55 +0100 Subject: [PATCH 117/122] Reduce allocations in TypeNameAndClassSelector.Classes --- .../Styling/TypeNameAndClassSelector.cs | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/Avalonia.Base/Styling/TypeNameAndClassSelector.cs b/src/Avalonia.Base/Styling/TypeNameAndClassSelector.cs index 7883fd23ab..f8670cfdb3 100644 --- a/src/Avalonia.Base/Styling/TypeNameAndClassSelector.cs +++ b/src/Avalonia.Base/Styling/TypeNameAndClassSelector.cs @@ -1,6 +1,5 @@ using System; using System.Collections.Generic; -using Avalonia.Controls; using Avalonia.Styling.Activators; using Avalonia.Utilities; @@ -15,7 +14,7 @@ namespace Avalonia.Styling internal class TypeNameAndClassSelector : Selector { private readonly Selector? _previous; - private readonly Lazy> _classes = new Lazy>(() => new List()); + private List? _classes; private Type? _targetType; private string? _selectorString; @@ -81,7 +80,7 @@ namespace Avalonia.Styling /// /// The style classes which the selector matches. /// - public IList Classes => _classes.Value; + public IList Classes => _classes ??= new(); /// public override string ToString(Style? owner) @@ -122,16 +121,16 @@ namespace Avalonia.Styling return SelectorMatch.NeverThisInstance; } - if (_classes.IsValueCreated && _classes.Value.Count > 0) + if (_classes is { Count: > 0 }) { if (subscribe) { - var observable = new StyleClassActivator((Classes)control.Classes, _classes.Value); + var observable = new StyleClassActivator(control.Classes, _classes); return new SelectorMatch(observable); } - if (!StyleClassActivator.AreClassesMatching(control.Classes, Classes)) + if (!StyleClassActivator.AreClassesMatching(control.Classes, _classes)) { return SelectorMatch.NeverThisInstance; } @@ -172,9 +171,9 @@ namespace Avalonia.Styling builder.Append(Name); } - if (_classes.IsValueCreated && _classes.Value.Count > 0) + if (_classes is { Count: > 0 }) { - foreach (var c in Classes) + foreach (var c in _classes) { if (!c.StartsWith(":")) { From b9644c3068ca90196e61f69aa851fdd9f3fc18f9 Mon Sep 17 00:00:00 2001 From: affederaffe <68356204+affederaffe@users.noreply.github.com> Date: Sun, 26 Feb 2023 02:51:39 +0100 Subject: [PATCH 119/122] Revert "Fix dependency of Avalonia.Fonts.Inter" This reverts commit ffe6fe8a39b0504cd2bd77eb9b1975c627406f61. --- samples/ControlCatalog/ControlCatalog.csproj | 1 + src/Avalonia.Themes.Fluent/Avalonia.Themes.Fluent.csproj | 1 - src/Avalonia.Themes.Simple/Avalonia.Themes.Simple.csproj | 1 - 3 files changed, 1 insertion(+), 2 deletions(-) diff --git a/samples/ControlCatalog/ControlCatalog.csproj b/samples/ControlCatalog/ControlCatalog.csproj index c223bfe1a9..0e84b3d182 100644 --- a/samples/ControlCatalog/ControlCatalog.csproj +++ b/samples/ControlCatalog/ControlCatalog.csproj @@ -29,6 +29,7 @@ + diff --git a/src/Avalonia.Themes.Fluent/Avalonia.Themes.Fluent.csproj b/src/Avalonia.Themes.Fluent/Avalonia.Themes.Fluent.csproj index 66fcce2163..8d266ce82f 100644 --- a/src/Avalonia.Themes.Fluent/Avalonia.Themes.Fluent.csproj +++ b/src/Avalonia.Themes.Fluent/Avalonia.Themes.Fluent.csproj @@ -8,7 +8,6 @@ - diff --git a/src/Avalonia.Themes.Simple/Avalonia.Themes.Simple.csproj b/src/Avalonia.Themes.Simple/Avalonia.Themes.Simple.csproj index aefa407645..4aa6b66743 100644 --- a/src/Avalonia.Themes.Simple/Avalonia.Themes.Simple.csproj +++ b/src/Avalonia.Themes.Simple/Avalonia.Themes.Simple.csproj @@ -8,7 +8,6 @@ - From 29d92f75dc2768638f6779fdfe673649d5b050e9 Mon Sep 17 00:00:00 2001 From: Max Katz Date: Sun, 26 Feb 2023 08:57:48 -0500 Subject: [PATCH 120/122] Fix Relative Source with {x:Type} bindings --- .../AvaloniaXamlIlBindingPathParser.cs | 27 ++++---- .../CompiledBindingExtensionTests.cs | 62 ++++++++++++++++++- 2 files changed, 74 insertions(+), 15 deletions(-) diff --git a/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/Transformers/AvaloniaXamlIlBindingPathParser.cs b/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/Transformers/AvaloniaXamlIlBindingPathParser.cs index 6150265cf8..736e764aa7 100644 --- a/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/Transformers/AvaloniaXamlIlBindingPathParser.cs +++ b/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/Transformers/AvaloniaXamlIlBindingPathParser.cs @@ -146,13 +146,23 @@ namespace Avalonia.Markup.Xaml.XamlIl.CompilerExtensions.Transformers .FirstOrDefault(x => x.Property.GetClrProperty().Name == "Tree") ?.Values[0] is XamlAstTextNode treeTypeValue ? treeTypeValue.Text : "Visual"; - var ancestorTypeName = relativeSourceObject.Children + var ancestorType = relativeSourceObject.Children .OfType() .FirstOrDefault(x => x.Property.GetClrProperty().Name == "AncestorType") - ?.Values[0] as XamlAstTextNode; + ?.Values[0] switch + { + XamlAstTextNode textNode => TypeReferenceResolver.ResolveType( + context, + textNode.Text, + false, + textNode, + true).GetClrType(), + XamlTypeExtensionNode typeExtensionNode => typeExtensionNode.Value.GetClrType(), + null => null, + _ => throw new XamlParseException($"Unsupported node for AncestorType property", relativeSourceObject) + }; - IXamlType ancestorType = null; - if (ancestorTypeName is null) + if (ancestorType is null) { if (treeType == "Visual") { @@ -174,15 +184,6 @@ namespace Avalonia.Markup.Xaml.XamlIl.CompilerExtensions.Transformers } } } - else - { - ancestorType = TypeReferenceResolver.ResolveType( - context, - ancestorTypeName.Text, - false, - ancestorTypeName, - true).GetClrType(); - } if (treeType == "Visual") { diff --git a/tests/Avalonia.Markup.Xaml.UnitTests/MarkupExtensions/CompiledBindingExtensionTests.cs b/tests/Avalonia.Markup.Xaml.UnitTests/MarkupExtensions/CompiledBindingExtensionTests.cs index 0b33cd9d97..27634b457b 100644 --- a/tests/Avalonia.Markup.Xaml.UnitTests/MarkupExtensions/CompiledBindingExtensionTests.cs +++ b/tests/Avalonia.Markup.Xaml.UnitTests/MarkupExtensions/CompiledBindingExtensionTests.cs @@ -847,6 +847,30 @@ namespace Avalonia.Markup.Xaml.UnitTests.MarkupExtensions Assert.Equal("test", target.Text); } } + + [Fact] + public void ResolvesRelativeSourceBindingEvenLongerForm() + { + using (UnitTestApplication.Start(TestServices.StyledWindow)) + { + var xaml = @" + + +"; + var window = (Window)AvaloniaRuntimeXamlLoader.Load(xaml); + var target = window.FindControl("text"); + + window.ApplyTemplate(); + window.Presenter.ApplyTemplate(); + target.ApplyTemplate(); + + Assert.Equal("test", target.Text); + } + } [Fact] public void ResolvesRelativeSourceBindingFromTemplate() @@ -1735,7 +1759,7 @@ namespace Avalonia.Markup.Xaml.UnitTests.MarkupExtensions "; + X='{CompiledBinding StringProperty, DataType=local:TestDataContext}' />"; var control = (AssignBindingControl)AvaloniaRuntimeXamlLoader.Load(new RuntimeXamlLoaderDocument(xaml), new RuntimeXamlLoaderConfiguration { UseCompiledBindingsByDefault = true }); var compiledPath = ((CompiledBindingExtension)control.X).Path; @@ -1745,6 +1769,33 @@ namespace Avalonia.Markup.Xaml.UnitTests.MarkupExtensions } } + [Fact] + public void Should_Bind_To_Nested_Generic_Property() + { + // See https://github.com/AvaloniaUI/Avalonia/issues/10485 + // This code works fine with SRE, and test is passing, but it fails on Cecil. + using (UnitTestApplication.Start(TestServices.StyledWindow)) + { + var xaml = @" + + +"; + var window = (Window)AvaloniaRuntimeXamlLoader.Load(xaml); + var comboBox = window.FindControl("comboBox"); + + var dataContext = new TestDataContext(); + dataContext.GenericProperty.Add(123); + dataContext.GenericProperty.CurrentItem = 123; + window.DataContext = dataContext; + + Assert.Equal(123, comboBox.SelectedItem); + } + } + static void Throws(string type, Action cb) { try @@ -1837,8 +1888,10 @@ namespace Avalonia.Markup.Xaml.UnitTests.MarkupExtensions public string ExplicitProperty => "Bye"; - public static string StaticProperty => "World"; + public static string StaticProperty => "World"; + public ListItemCollectionView GenericProperty { get; } = new(); + public class NonIntegerIndexer : NotifyingBase, INonIntegerIndexerDerived { private readonly Dictionary _storage = new Dictionary(); @@ -1858,6 +1911,11 @@ namespace Avalonia.Markup.Xaml.UnitTests.MarkupExtensions } } + public class ListItemCollectionView : List + { + public T CurrentItem { get; set; } + } + public class MethodDataContext { public void Action() { } From a9ef92bbeb54000102fef5655815e475d927b6c5 Mon Sep 17 00:00:00 2001 From: Nikita Tsukanov Date: Sun, 26 Feb 2023 23:22:52 +0600 Subject: [PATCH 121/122] Implemented BeginFigure(isFilled: false) --- .../Avalonia.Skia/CombinedGeometryImpl.cs | 43 +++++++-- src/Skia/Avalonia.Skia/DrawingContextImpl.cs | 9 +- src/Skia/Avalonia.Skia/EllipseGeometryImpl.cs | 5 +- src/Skia/Avalonia.Skia/GeometryGroupImpl.cs | 43 +++++++-- src/Skia/Avalonia.Skia/GeometryImpl.cs | 31 +++--- src/Skia/Avalonia.Skia/LineGeometryImpl.cs | 5 +- .../Avalonia.Skia/PlatformRenderInterface.cs | 4 +- .../Avalonia.Skia/RectangleGeometryImpl.cs | 5 +- src/Skia/Avalonia.Skia/StreamGeometryImpl.cs | 90 +++++++++++++----- .../Avalonia.Skia/TransformedGeometryImpl.cs | 21 +++- .../Avalonia.RenderTests/Shapes/PathTests.cs | 58 +++++++++++ ...nFigure_IsFilled_Is_Respected.expected.png | Bin 0 -> 993 bytes ...nFigure_IsFilled_Is_Respected.expected.png | Bin 0 -> 993 bytes 13 files changed, 238 insertions(+), 76 deletions(-) create mode 100644 tests/TestFiles/Direct2D1/Shapes/Path/BeginFigure_IsFilled_Is_Respected.expected.png create mode 100644 tests/TestFiles/Skia/Shapes/Path/BeginFigure_IsFilled_Is_Respected.expected.png diff --git a/src/Skia/Avalonia.Skia/CombinedGeometryImpl.cs b/src/Skia/Avalonia.Skia/CombinedGeometryImpl.cs index 170cc9d420..1a4f467f40 100644 --- a/src/Skia/Avalonia.Skia/CombinedGeometryImpl.cs +++ b/src/Skia/Avalonia.Skia/CombinedGeometryImpl.cs @@ -8,11 +8,25 @@ namespace Avalonia.Skia /// internal class CombinedGeometryImpl : GeometryImpl { - public CombinedGeometryImpl(GeometryCombineMode combineMode, Geometry g1, Geometry g2) + public CombinedGeometryImpl(SKPath? stroke, SKPath? fill) { - var path1 = (g1.PlatformImpl as GeometryImpl)?.EffectivePath; - var path2 = (g2.PlatformImpl as GeometryImpl)?.EffectivePath; + StrokePath = stroke; + FillPath = fill; + Bounds = (stroke ?? fill)?.TightBounds.ToAvaloniaRect() ?? default; + } + + public static CombinedGeometryImpl ForceCreate(GeometryCombineMode combineMode, Geometry g1, Geometry g2) + { + if (g1.PlatformImpl is GeometryImpl i1 + && g2.PlatformImpl is GeometryImpl i2 + && TryCreate(combineMode, i1, i2) is { } result) + return result; + + return new(null, null); + } + public static CombinedGeometryImpl? TryCreate(GeometryCombineMode combineMode, GeometryImpl g1, GeometryImpl g2) + { var op = combineMode switch { GeometryCombineMode.Intersect => SKPathOp.Intersect, @@ -21,13 +35,28 @@ namespace Avalonia.Skia _ => SKPathOp.Union }; - var path = path1?.Op(path2, op); + var stroke = + g1.StrokePath != null && g2.StrokePath != null + ? g1.StrokePath.Op(g2.StrokePath, op) + : null; + + SKPath? fill = null; + if (g1.FillPath != null && g2.FillPath != null) + { + // Reuse stroke if fill paths are the same + if (ReferenceEquals(g1.FillPath, g1.StrokePath) && ReferenceEquals(g2.FillPath, g2.StrokePath)) + fill = stroke; + else + fill = g1.FillPath.Op(g2.FillPath, op); + } - EffectivePath = path; - Bounds = path?.Bounds.ToAvaloniaRect() ?? default; + if (stroke == null && fill == null) + return null; + return new CombinedGeometryImpl(stroke, fill); } public override Rect Bounds { get; } - public override SKPath? EffectivePath { get; } + public override SKPath? StrokePath { get; } + public override SKPath? FillPath { get; } } } diff --git a/src/Skia/Avalonia.Skia/DrawingContextImpl.cs b/src/Skia/Avalonia.Skia/DrawingContextImpl.cs index db7b068543..af0231579c 100644 --- a/src/Skia/Avalonia.Skia/DrawingContextImpl.cs +++ b/src/Skia/Avalonia.Skia/DrawingContextImpl.cs @@ -230,20 +230,21 @@ namespace Avalonia.Skia var impl = (GeometryImpl) geometry; var size = geometry.Bounds.Size; - if (brush is not null) + if (brush is not null && impl.FillPath != null) { using (var fill = CreatePaint(_fillPaint, brush, size)) { - Canvas.DrawPath(impl.EffectivePath, fill.Paint); + Canvas.DrawPath(impl.FillPath, fill.Paint); } } if (pen is not null + && impl.StrokePath != null && TryCreatePaint(_strokePaint, pen, size.Inflate(new Thickness(pen.Thickness / 2))) is { } stroke) { using (stroke) { - Canvas.DrawPath(impl.EffectivePath, stroke.Paint); + Canvas.DrawPath(impl.StrokePath, stroke.Paint); } } } @@ -639,7 +640,7 @@ namespace Avalonia.Skia { CheckLease(); Canvas.Save(); - Canvas.ClipPath(((GeometryImpl)clip).EffectivePath, SKClipOperation.Intersect, true); + Canvas.ClipPath(((GeometryImpl)clip).FillPath, SKClipOperation.Intersect, true); } /// diff --git a/src/Skia/Avalonia.Skia/EllipseGeometryImpl.cs b/src/Skia/Avalonia.Skia/EllipseGeometryImpl.cs index ac05691c67..64976d4eea 100644 --- a/src/Skia/Avalonia.Skia/EllipseGeometryImpl.cs +++ b/src/Skia/Avalonia.Skia/EllipseGeometryImpl.cs @@ -8,14 +8,15 @@ namespace Avalonia.Skia internal class EllipseGeometryImpl : GeometryImpl { public override Rect Bounds { get; } - public override SKPath EffectivePath { get; } + public override SKPath StrokePath { get; } + public override SKPath FillPath => StrokePath; public EllipseGeometryImpl(Rect rect) { var path = new SKPath(); path.AddOval(rect.ToSKRect()); - EffectivePath = path; + StrokePath = path; Bounds = rect; } } diff --git a/src/Skia/Avalonia.Skia/GeometryGroupImpl.cs b/src/Skia/Avalonia.Skia/GeometryGroupImpl.cs index 2828f9a9c1..01be42bad0 100644 --- a/src/Skia/Avalonia.Skia/GeometryGroupImpl.cs +++ b/src/Skia/Avalonia.Skia/GeometryGroupImpl.cs @@ -11,26 +11,51 @@ namespace Avalonia.Skia { public GeometryGroupImpl(FillRule fillRule, IReadOnlyList children) { - var path = new SKPath + var fillType = fillRule == FillRule.NonZero ? SKPathFillType.Winding : SKPathFillType.EvenOdd; + var count = children.Count; + + var stroke = new SKPath { - FillType = fillRule == FillRule.NonZero ? SKPathFillType.Winding : SKPathFillType.EvenOdd, + FillType = fillType }; - - var count = children.Count; + bool requiresFillPass = false; for (var i = 0; i < count; ++i) { - if (children[i].PlatformImpl is GeometryImpl { EffectivePath: { } effectivePath }) + if (children[i].PlatformImpl is GeometryImpl geo) { - path.AddPath(effectivePath); + if (geo.StrokePath != null) + stroke.AddPath(geo.StrokePath); + if (!ReferenceEquals(geo.StrokePath, geo.FillPath)) + requiresFillPass = true; } } + + StrokePath = stroke; + + if (requiresFillPass) + { + var fill = new SKPath + { + FillType = fillType + }; + + for (var i = 0; i < count; ++i) + { + if (children[i].PlatformImpl is GeometryImpl { FillPath: { } fillPath }) + fill.AddPath(fillPath); + } + + FillPath = fill; + } + else + FillPath = stroke; - EffectivePath = path; - Bounds = path.Bounds.ToAvaloniaRect(); + Bounds = stroke.TightBounds.ToAvaloniaRect(); } public override Rect Bounds { get; } - public override SKPath EffectivePath { get; } + public override SKPath StrokePath { get; } + public override SKPath FillPath { get; } } } diff --git a/src/Skia/Avalonia.Skia/GeometryImpl.cs b/src/Skia/Avalonia.Skia/GeometryImpl.cs index 34270c2078..aee84d1346 100644 --- a/src/Skia/Avalonia.Skia/GeometryImpl.cs +++ b/src/Skia/Avalonia.Skia/GeometryImpl.cs @@ -14,7 +14,7 @@ namespace Avalonia.Skia private PathCache _pathCache; private SKPathMeasure? _cachedPathMeasure; - private SKPathMeasure CachedPathMeasure => _cachedPathMeasure ??= new SKPathMeasure(EffectivePath!); + private SKPathMeasure CachedPathMeasure => _cachedPathMeasure ??= new SKPathMeasure(StrokePath!); /// public abstract Rect Bounds { get; } @@ -24,19 +24,20 @@ namespace Avalonia.Skia { get { - if (EffectivePath is null) + if (StrokePath is null) return 0; return CachedPathMeasure.Length; } } - public abstract SKPath? EffectivePath { get; } + public abstract SKPath? StrokePath { get; } + public abstract SKPath? FillPath { get; } /// public bool FillContains(Point point) { - return PathContainsCore(EffectivePath, point); + return PathContainsCore(FillPath, point); } /// @@ -74,7 +75,7 @@ namespace Avalonia.Skia var paint = SKPaintCache.Shared.Get(); paint.IsStroke = true; paint.StrokeWidth = strokeWidth; - paint.GetFillPath(EffectivePath, strokePath); + paint.GetFillPath(StrokePath, strokePath); SKPaintCache.Shared.ReturnReset(paint); @@ -96,14 +97,10 @@ namespace Avalonia.Skia /// public IGeometryImpl? Intersect(IGeometryImpl geometry) { - if (EffectivePath is { } path - && (geometry as GeometryImpl)?.EffectivePath is { } otherPath - && path.Op(otherPath, SKPathOp.Intersect) is { } result) - { - return new StreamGeometryImpl(result); - } - - return null; + var other = geometry as GeometryImpl; + if (other == null) + return null; + return CombinedGeometryImpl.TryCreate(GeometryCombineMode.Intersect, this, other); } /// @@ -128,7 +125,7 @@ namespace Avalonia.Skia /// public bool TryGetPointAtDistance(double distance, out Point point) { - if (EffectivePath is null) + if (StrokePath is null) { point = new Point(); return false; @@ -142,7 +139,7 @@ namespace Avalonia.Skia /// public bool TryGetPointAndTangentAtDistance(double distance, out Point point, out Point tangent) { - if (EffectivePath is null) + if (StrokePath is null) { point = new Point(); tangent = new Point(); @@ -158,7 +155,7 @@ namespace Avalonia.Skia public bool TryGetSegment(double startDistance, double stopDistance, bool startOnBeginFigure, [NotNullWhen(true)] out IGeometryImpl? segmentGeometry) { - if (EffectivePath is null) + if (StrokePath is null) { segmentGeometry = null; return false; @@ -172,7 +169,7 @@ namespace Avalonia.Skia if (res) { - segmentGeometry = new StreamGeometryImpl(_skPathSegment); + segmentGeometry = new StreamGeometryImpl(_skPathSegment, null); } return res; diff --git a/src/Skia/Avalonia.Skia/LineGeometryImpl.cs b/src/Skia/Avalonia.Skia/LineGeometryImpl.cs index b102a4c119..2ac0a2e18c 100644 --- a/src/Skia/Avalonia.Skia/LineGeometryImpl.cs +++ b/src/Skia/Avalonia.Skia/LineGeometryImpl.cs @@ -9,7 +9,8 @@ namespace Avalonia.Skia internal class LineGeometryImpl : GeometryImpl { public override Rect Bounds { get; } - public override SKPath EffectivePath { get; } + public override SKPath StrokePath { get; } + public override SKPath? FillPath => null; public LineGeometryImpl(Point p1, Point p2) { @@ -17,7 +18,7 @@ namespace Avalonia.Skia path.MoveTo(p1.ToSKPoint()); path.LineTo(p2.ToSKPoint()); - EffectivePath = path; + StrokePath = path; Bounds = new Rect( new Point(Math.Min(p1.X, p2.X), Math.Min(p1.Y, p2.Y)), new Point(Math.Max(p1.X, p2.X), Math.Max(p1.Y, p2.Y))); diff --git a/src/Skia/Avalonia.Skia/PlatformRenderInterface.cs b/src/Skia/Avalonia.Skia/PlatformRenderInterface.cs index ab1c6b8816..9c4b326f14 100644 --- a/src/Skia/Avalonia.Skia/PlatformRenderInterface.cs +++ b/src/Skia/Avalonia.Skia/PlatformRenderInterface.cs @@ -65,7 +65,7 @@ namespace Avalonia.Skia public IGeometryImpl CreateCombinedGeometry(GeometryCombineMode combineMode, Geometry g1, Geometry g2) { - return new CombinedGeometryImpl(combineMode, g1, g2); + return CombinedGeometryImpl.ForceCreate(combineMode, g1, g2); } public IGeometryImpl BuildGlyphRunGeometry(GlyphRun glyphRun) @@ -104,7 +104,7 @@ namespace Avalonia.Skia SKFontCache.Shared.Return(skFont); - return new StreamGeometryImpl(path); + return new StreamGeometryImpl(path, path); } /// diff --git a/src/Skia/Avalonia.Skia/RectangleGeometryImpl.cs b/src/Skia/Avalonia.Skia/RectangleGeometryImpl.cs index 93d453e8f0..2d127e07c9 100644 --- a/src/Skia/Avalonia.Skia/RectangleGeometryImpl.cs +++ b/src/Skia/Avalonia.Skia/RectangleGeometryImpl.cs @@ -8,14 +8,15 @@ namespace Avalonia.Skia internal class RectangleGeometryImpl : GeometryImpl { public override Rect Bounds { get; } - public override SKPath EffectivePath { get; } + public override SKPath StrokePath { get; } + public override SKPath? FillPath => StrokePath; public RectangleGeometryImpl(Rect rect) { var path = new SKPath(); path.AddRect(rect.ToSKRect()); - EffectivePath = path; + StrokePath = path; Bounds = rect; } } diff --git a/src/Skia/Avalonia.Skia/StreamGeometryImpl.cs b/src/Skia/Avalonia.Skia/StreamGeometryImpl.cs index 0c3289767e..eb081c4f50 100644 --- a/src/Skia/Avalonia.Skia/StreamGeometryImpl.cs +++ b/src/Skia/Avalonia.Skia/StreamGeometryImpl.cs @@ -1,3 +1,4 @@ +using System.Diagnostics.CodeAnalysis; using Avalonia.Media; using Avalonia.Platform; using SkiaSharp; @@ -10,36 +11,39 @@ namespace Avalonia.Skia internal class StreamGeometryImpl : GeometryImpl, IStreamGeometryImpl { private Rect _bounds; - private readonly SKPath _effectivePath; + private readonly SKPath _strokePath; + private SKPath? _fillPath; /// /// Initializes a new instance of the class. /// - /// An existing Skia . + /// An existing Skia for the stroke. + /// An existing Skia for the fill, can also be null or the same as the stroke /// Precomputed path bounds. - public StreamGeometryImpl(SKPath path, Rect bounds) + public StreamGeometryImpl(SKPath stroke, SKPath? fill, Rect? bounds = null) { - _effectivePath = path; - _bounds = bounds; + _strokePath = stroke; + _fillPath = fill; + _bounds = bounds ?? stroke.TightBounds.ToAvaloniaRect(); } - /// - /// Initializes a new instance of the class. - /// - /// An existing Skia . - public StreamGeometryImpl(SKPath path) : this(path, path.TightBounds.ToAvaloniaRect()) + private StreamGeometryImpl(SKPath path) : this(path, path, default(Rect)) { + } /// /// Initializes a new instance of the class. /// - public StreamGeometryImpl() : this(CreateEmptyPath(), default) + public StreamGeometryImpl() : this(CreateEmptyPath()) { } - + /// - public override SKPath EffectivePath => _effectivePath; + public override SKPath? StrokePath => _strokePath; + + /// + public override SKPath? FillPath => _fillPath; /// public override Rect Bounds => _bounds; @@ -47,7 +51,9 @@ namespace Avalonia.Skia /// public IStreamGeometryImpl Clone() { - return new StreamGeometryImpl(_effectivePath.Clone(), Bounds); + var stroke = _strokePath.Clone(); + var fill = _fillPath == _strokePath ? stroke : _fillPath.Clone(); + return new StreamGeometryImpl(stroke, fill, Bounds); } /// @@ -74,7 +80,10 @@ namespace Avalonia.Skia private class StreamContext : IStreamGeometryContextImpl { private readonly StreamGeometryImpl _geometryImpl; - private readonly SKPath _path; + private SKPath Stroke => _geometryImpl._strokePath; + private SKPath Fill => _geometryImpl._fillPath ??= new(); + private bool _isFilled; + private bool Duplicate => _isFilled && !ReferenceEquals(_geometryImpl._fillPath, Stroke); /// /// Initializes a new instance of the class. @@ -83,52 +92,79 @@ namespace Avalonia.Skia public StreamContext(StreamGeometryImpl geometryImpl) { _geometryImpl = geometryImpl; - _path = _geometryImpl._effectivePath; } /// /// Will update bounds of passed geometry. public void Dispose() { - _geometryImpl._bounds = _path.TightBounds.ToAvaloniaRect(); + _geometryImpl._bounds = Stroke.TightBounds.ToAvaloniaRect(); _geometryImpl.InvalidateCaches(); } /// public void ArcTo(Point point, Size size, double rotationAngle, bool isLargeArc, SweepDirection sweepDirection) { - _path.ArcTo( + var arc = isLargeArc ? SKPathArcSize.Large : SKPathArcSize.Small; + var sweep = sweepDirection == SweepDirection.Clockwise + ? SKPathDirection.Clockwise + : SKPathDirection.CounterClockwise; + Stroke.ArcTo( (float)size.Width, (float)size.Height, (float)rotationAngle, - isLargeArc ? SKPathArcSize.Large : SKPathArcSize.Small, - sweepDirection == SweepDirection.Clockwise ? SKPathDirection.Clockwise : SKPathDirection.CounterClockwise, + arc, + sweep, (float)point.X, (float)point.Y); + if(Duplicate) + Fill.ArcTo( + (float)size.Width, + (float)size.Height, + (float)rotationAngle, + arc, + sweep, + (float)point.X, + (float)point.Y); } /// public void BeginFigure(Point startPoint, bool isFilled) { - _path.MoveTo((float)startPoint.X, (float)startPoint.Y); + if (!isFilled) + { + if (Stroke == Fill) + _geometryImpl._fillPath = Stroke.Clone(); + } + + _isFilled = isFilled; + Stroke.MoveTo((float)startPoint.X, (float)startPoint.Y); + if(Duplicate) + Fill.MoveTo((float)startPoint.X, (float)startPoint.Y); } /// public void CubicBezierTo(Point point1, Point point2, Point point3) { - _path.CubicTo((float)point1.X, (float)point1.Y, (float)point2.X, (float)point2.Y, (float)point3.X, (float)point3.Y); + Stroke.CubicTo((float)point1.X, (float)point1.Y, (float)point2.X, (float)point2.Y, (float)point3.X, (float)point3.Y); + if(Duplicate) + Fill.CubicTo((float)point1.X, (float)point1.Y, (float)point2.X, (float)point2.Y, (float)point3.X, (float)point3.Y); } /// public void QuadraticBezierTo(Point point1, Point point2) { - _path.QuadTo((float)point1.X, (float)point1.Y, (float)point2.X, (float)point2.Y); + Stroke.QuadTo((float)point1.X, (float)point1.Y, (float)point2.X, (float)point2.Y); + if(Duplicate) + Fill.QuadTo((float)point1.X, (float)point1.Y, (float)point2.X, (float)point2.Y); } /// public void LineTo(Point point) { - _path.LineTo((float)point.X, (float)point.Y); + Stroke.LineTo((float)point.X, (float)point.Y); + if(Duplicate) + Fill.LineTo((float)point.X, (float)point.Y); } /// @@ -136,14 +172,16 @@ namespace Avalonia.Skia { if (isClosed) { - _path.Close(); + Stroke.Close(); + if (Duplicate) + Fill.Close(); } } /// public void SetFillRule(FillRule fillRule) { - _path.FillType = fillRule == FillRule.EvenOdd ? SKPathFillType.EvenOdd : SKPathFillType.Winding; + Fill.FillType = fillRule == FillRule.EvenOdd ? SKPathFillType.EvenOdd : SKPathFillType.Winding; } } } diff --git a/src/Skia/Avalonia.Skia/TransformedGeometryImpl.cs b/src/Skia/Avalonia.Skia/TransformedGeometryImpl.cs index fb3c2e403f..2dee8c318c 100644 --- a/src/Skia/Avalonia.Skia/TransformedGeometryImpl.cs +++ b/src/Skia/Avalonia.Skia/TransformedGeometryImpl.cs @@ -17,16 +17,27 @@ namespace Avalonia.Skia { SourceGeometry = source; Transform = transform; + var matrix = transform.ToSKMatrix(); - var transformedPath = source.EffectivePath.Clone(); - transformedPath?.Transform(transform.ToSKMatrix()); - - EffectivePath = transformedPath; + var transformedPath = StrokePath = source.StrokePath.Clone(); + transformedPath?.Transform(matrix); + Bounds = transformedPath?.TightBounds.ToAvaloniaRect() ?? default; + + if (ReferenceEquals(source.StrokePath, source.FillPath)) + FillPath = transformedPath; + else if (source.FillPath != null) + { + FillPath = transformedPath = source.FillPath.Clone(); + transformedPath.Transform(matrix); + } } /// - public override SKPath? EffectivePath { get; } + public override SKPath? StrokePath { get; } + + /// + public override SKPath? FillPath { get; } /// public IGeometryImpl SourceGeometry { get; } diff --git a/tests/Avalonia.RenderTests/Shapes/PathTests.cs b/tests/Avalonia.RenderTests/Shapes/PathTests.cs index bac16cca88..bf375121de 100644 --- a/tests/Avalonia.RenderTests/Shapes/PathTests.cs +++ b/tests/Avalonia.RenderTests/Shapes/PathTests.cs @@ -376,5 +376,63 @@ namespace Avalonia.Direct2D1.RenderTests.Shapes await RenderToFile(target); CompareImages(); } + + [Fact] + public async Task BeginFigure_IsFilled_Is_Respected() + { + var target = new Border + { + Width = 200, + Height = 200, + Background = Brushes.White, + Child = new Path + { + Fill = Brushes.Black, + Stroke = Brushes.Black, + StrokeThickness = 10, + Data = new PathGeometry() + { + Figures = new() + { + new PathFigure + { + IsFilled = false, IsClosed = false, + StartPoint = new Point(170,170), + Segments = new () + { + new LineSegment + { + Point = new Point(60, 170) + }, + new LineSegment + { + Point = new Point(60, 60) + } + } + }, + new PathFigure + { + IsFilled = true, IsClosed = true, + StartPoint = new Point(60,20), + Segments = new () + { + new LineSegment + { + Point = new Point(20, 60) + }, + new LineSegment + { + Point = new Point(100, 60) + } + } + } + } + } + } + }; + + await RenderToFile(target); + CompareImages(); + } } } diff --git a/tests/TestFiles/Direct2D1/Shapes/Path/BeginFigure_IsFilled_Is_Respected.expected.png b/tests/TestFiles/Direct2D1/Shapes/Path/BeginFigure_IsFilled_Is_Respected.expected.png new file mode 100644 index 0000000000000000000000000000000000000000..d67d71c5200bc891ed02fb9dfabeedd97e58d2c5 GIT binary patch literal 993 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST_$yu@pObhHwBu4M$1`0|WC6PZ!6K ziaBrZIA%Te5^)IpeVKb}xY+v;+f~czJ?>j{=6WtIe!$DZW}l*Gs_~&Ra@tdtniu=G ziZ|#AbFefz2w){zoLP(Z#`#}=UHaDa#>Dt+{SR8#UwkEJsWsvK zF~g3Q@5?x!EHC6ydYB)~@@a(y+eCvmb`#u>17$8}K5w)EnexVLLOM|3$&E6}6RRId zxD>_g=6-S&sK;_yEbFE)poM+u=8bD)k1I?{zUitE-I*+KvM|SP!rG%iO%i6ZC&C^} zxESp}%eLt&(EKyGlN;Zt0*(EAD@LIj=(v+}%tTMbft1WY%d+V^NJ*-2;~62Kag}T2 zPUHYBnt6Ct;~6QSz~5-y2{(aCH|4KpDVhRQ`sVs+X3Hp`6TZD%+9+cRH1_xBO%8o> zK()1%o(hkC*iU?O{4%rP@#8L=gii~{>P>%IVl{Kd>8GF0%x{pdic)waaFS=9P=|$! zQFlAL65qr#PZlC?!;y`11y8=dBidoH&0MLn*B@wmnY+sQ^0;ZKmcFlQ?CyWv*%{AhzvY*` z_MvHj{=6WtIe!$DZW}l*Gs_~&Ra@tdtniu=G ziZ|#AbFefz2w){zoLP(Z#`#}=UHaDa#>Dt+{SR8#UwkEJsWsvK zF~g3Q@5?x!EHC6ydYB)~@@a(y+eCvmb`#u>17$8}K5w)EnexVLLOM|3$&E6}6RRId zxD>_g=6-S&sK;_yEbFE)poM+u=8bD)k1I?{zUitE-I*+KvM|SP!rG%iO%i6ZC&C^} zxESp}%eLt&(EKyGlN;Zt0*(EAD@LIj=(v+}%tTMbft1WY%d+V^NJ*-2;~62Kag}T2 zPUHYBnt6Ct;~6QSz~5-y2{(aCH|4KpDVhRQ`sVs+X3Hp`6TZD%+9+cRH1_xBO%8o> zK()1%o(hkC*iU?O{4%rP@#8L=gii~{>P>%IVl{Kd>8GF0%x{pdic)waaFS=9P=|$! zQFlAL65qr#PZlC?!;y`11y8=dBidoH&0MLn*B@wmnY+sQ^0;ZKmcFlQ?CyWv*%{AhzvY*` z_MvH Date: Sun, 26 Feb 2023 19:57:00 +0100 Subject: [PATCH 122/122] fix: Address review --- src/Avalonia.Controls/MaskedTextBox.cs | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/Avalonia.Controls/MaskedTextBox.cs b/src/Avalonia.Controls/MaskedTextBox.cs index f086ce0ace..d397a581dc 100644 --- a/src/Avalonia.Controls/MaskedTextBox.cs +++ b/src/Avalonia.Controls/MaskedTextBox.cs @@ -31,11 +31,6 @@ namespace Avalonia.Controls public static readonly StyledProperty MaskProperty = AvaloniaProperty.Register(nameof(Mask), string.Empty); - public static new readonly StyledProperty PasswordCharProperty = -#pragma warning disable AVP1013 // AvaloniaProperty owners should not be added superfluously - TextBox.PasswordCharProperty.AddOwner(); -#pragma warning restore AVP1013 // AvaloniaProperty owners should not be added superfluously - public static readonly StyledProperty PromptCharProperty = AvaloniaProperty.Register(nameof(PromptChar), '_');

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 diff --git a/src/Avalonia.Themes.Fluent.Fonts/Assets/Inter-Light.ttf b/src/Avalonia.Themes.Fluent.Fonts/Assets/Inter-Light.ttf deleted file mode 100644 index 9f75ff278068648359605cbb8c2af181e8fa9972..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 357740 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 &kpA-_{cNp`beBsROb<`A9=s` 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%0DSmUdGHmjrUoR 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 Q3&0uo~!ynNr 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�E_kMR+ zIJQZSSPoOdy=iy&?O~=aOw<3V{|kPraVPmJ>JOQ+G3|kb8G+xSV|_uGbbXO9?C(jK zvAW|Q zPRK$}LFH-7&qp&=s!@#C5sF&^`Vn}rwVWC}0{V_UD`4kh9;Zu(q8We#+BTL=xb7qu zjaOA?L|0ax(>X7vDu(`qn_C%qUt#ZRzrc84l}DCn=xQXP&Zf1wHY|L;62_ z>;=n;HnusgZ+Odo2c}$c>Bv(LYNgMpsDg){@tpQf(I*?vZ2ja9`+jlj!0DCS{+n%F zv;B+srMayhoOQ`}NTgO{QI{s9>yqnOj%(GRPC1r6D_w(3UW|WE(mSk6x`&gKpJzGc zWfhfG)us-y9cKFd@?O0vtao3~T_1ipe0SaL;r52Q^hS+jKs)ZHr^EX<{~X@etTNH> zq`sqH17ARmL7VIzhqkc=?yb8dIpw8~4Zd0{8LWrOas{JwB)*x~p3aO>}3(p~>}_{6v0g^xY)lJ2Bq+Slw`C_s|r>R+HVGG{MDD0HIQ%Pnsdtj8} zFT+l3W20o7rZtsv)2N=GO1`wA?s4WB>v&Ulr>OC!K4m^z8M~T$orIaB&uAV7&pWU^ z>LtRMd)=$4dtK&n-0RR8=XJxP%;Vk+JtR6lywUN?op*V>{v|0}iC_DHuJ4O}8pcBO zit1E<4(W`oLpelgu-|fVN0mIr)?qbD>iBY94lfN&l}T)BSl(9iqdJ}c#6a^Ud`D_9DJ6LFca{L z(M{WENiW-92{TDgY#t^&+PT{J0>W@i$GSYj9u4`JvV(jqVwspR6p4SPGe+Xi7(+y0_T~Gv~a9O@;BT0+KkokUYQ!J5gTyakJsV2 zpNyN~xLat(aLl>>7L03g3`aMN;ne?!Ha25866V+Xhs+ob!=%P=82`;?3`fHJrWT@x zN<67C9FvBCV>lA#ceSq>!(lwBF&y@Rk2UQJ!oVKJcVQ2c*UbAr`~UR^ILG4tnv19N z4(eKIN%vG1dPx)8w6xq-+QZ2BsMZ?46?r^HTG6A$lRDb>wpkYLu4l4$gh%xbiS9VZ zn*0B7%HTvk251o zI2U)?hA?>UzCXO5=O!OB$3IN@W9-Hx2CZ=Xk0#-7Po8X!W0a#&Jd2V8%yB#+H9CH0 za&I0Fzio1SSvZEr>xc2U87DD$i7l6LtyJ5NzJbZJ{GHLx?z}BdwV}Ruw(7Ezw&x$( z$mqV3KzYX0u8GR#_Z1hOJJw-Q##D^HfaBK zcNk}`s!nu=KR8OeeA6oC8F1gitP-AxrLThqfW6D9?$Kq4JGab3uhQ^8KrN{J5T`PRGvVVBSO1E3JH;h-^{%44(zsPqI=H5Twv}2R>1&!NUpXGYFV|Y*nQzm_n~Q#E znd+D5i~gsFC*1T?YmQMNc>8Qvv;7Q&MY7cc{;<#+IZaHY&*Yi5MV26IiDZ*1U=)dh`xCLM@2^ z(+=Y?RsYLh`BqstY==abe+cROV`a=DdiWolDAZV&-^jp=&WOceEe@5mkXkZ0(LpPjjc!y`y6Ubi|DUQ#6XWfmuI$)^JE|;A zY$<+fZ23RxiiG*+x*}ozxvn704(p1X`_FYn!u)exkuW=|E9{>hY5F=4bwgqgC_Fnk7*cqZvzn#Y6Z;dFXn z>jmy1l1>vp`xtWW81rsUgcAdQHh%rpQY~FI z3f)3Wx3orKu*n;96uZS{Y#iO#yhi=lEc9b_ez~zG{_UBvu8+>F``h`o$#!)!X4F~V z)Z&x%jdTCvZGX_nPK(8Qm+&L9crA+Nw%+}KcMf@Px>x)yX16njlZu?^q!o z%$R_G6KtHN_DJle(8ba&`r_!|oauX(;R?3en+dGoHS3xCMd z`uBTNY2M!U)`eOxyw#eVyy~wIIZxFS*w3RMqaQw!er=v9@HhN@bciPc9Ph{DDLb2I zinYz2DKKKx5XL-HtmL`LHRd>W!n5PjQ5VU~os&BFZJB>rXLRK{O_jyacexRU!|JNZ6s z%bk3mwkf|)*|Z@qY1?A$QiE-G5;kSyjId~LGHrypTG~kJtG)zv$yV(W1sEydXs;Os zz`wS#vu(@=YPh|=q>fJ(?s}BVvuI4uHtVWhq@BGnSo4rET4u^_9m0$Y=ArBm2J40b zz9|RizJ%jLjX#@n)8ml3VH~pli|{7v&{P=Ig=_i7V3a#nIO$8wGpJm5RQOZ#`v&4K z%?LB1{=ueU>YqlKbId(T;u%{XZx*H&VGi>-K4jAGjjP8fHPVj}CY;OuteiW(zNFc? z?<35KW(-ThOsJRn-ORa~w&BtGg>)W0Z#s<1JYIo3-fsHra_%J6Y&^4mHR2zik^U(= zNPjPc$u;AE63d}&A_?M^PE%8!uXq=9Xz z*kO721dp?PGs~n|-99_~cVoXnn}L3meFWN!mK>i!uTw@R&;xZaS!17xQHAEc&|C}= zV5AL;O-r*+v3?2v)_$_B4&3Z@>$a^}x6U~RX)*Ddb_JtV?1#GdCvrVy$ zzogQGyqWU?y_GW?QH#R!!kd_0`JU|w-x!;U&$Jah5AzGn+lnYne8!b9Bh=VtbwtvA zQ##Dp`pBZ#F-dH4s1^(OpP;S$Ja9LiG-Q$ z9MG&iIVG%VR9*`l({HIS6u(QwkNf-0&DsI1Ov*eL}!sr-DnigqNG`)nnW|*==hz<4h$b+RMtMiv;!tzv0IW`o7VC0h$dl{B!6rg zCi1ucQPzyd+=Il1JMfwCjV9?_7NX0IcHm%>2DSrYhvnf|9#7XHkH=Ggr|Tlda_i?y zS*FSx?Z9F6KiV&&9mr8#um}r-?zXmSQ2S-Vcqk`~&2VCy)-7Y6t8#P>Cyd>)%F3Qt zpq?i~s^~&{mOtzDXEq_rIHlXZ_;54Qg6lXB(?4}!>gibB z+^-mBDg9r<1X^E+w#~ExOH=ckQF<{7hIk}ireFS+zK~mi{IpV)iSm{$e9UJmJpip6 zn>O3R(}Kn4mR71&PHwh~31vR~VJ(=(e?FeAbF9g_eR8>VO8DQfcm$c=sZvL~$E3B!>-IExFGHF@sVr1T` zbZpuH&y$@^TA06S?q>KBY@gjWD;C&XIyeAd;&B|K^YT27?{hk4J6T1M?R)hq^ea8T zp#=6A`t6uwdk*OpPPE3M81h%481}Qy99?wC(&D^6;h^pBSy#Oo_HVGeDSwuS%xCWc zd$_7N(a~HO1Mk)lcy(0ru5z=}7cb4nXv*E_6#tx>Bie=c5)G@eeCi+ALHQIph+o2( z@;@q-4rdpyed@TsRj-X~RnsW^0%s+U*RRH$;4ZBHyq2oMTp*6)n&az>%{3d(kv@_c z2i6a~62(0{^SF1pgO&~Dx!Jj9cSmlihC9KrFeFO{TdH&PC)s*~F8nMjJmj%( zKTLJq^~tO@b?;bzX7N$XIcVD&m}0eaNOWEIWInIx-IzXaoJPHp z^x!!C631y5>>+77M$dK$X-c0vLw}WVF56u>cZzO4f53X18UHBtpXTwKFtoeGGfDr^ zJPg{d%rq=;QT0uG@kr)zv|U)jYK{-jJnmiYqE9FDd_0cl(e8;o+Qe{6f>~|0Y4(8V z@fO`v)H}Yi-*KioM^|9}xr`f&Qj>hNHHJ%J_w+O$ZC*#~XU_A{^rjd}IabE9#h4zi zU7+?%bZs4Ap&7fz_&+bsR>Vw2H@bLPZgzpWcr;GeGhN!%=IZux&N3!DO0jdOE}CXs z=5$RJzl_y2@~wEHLxB5Lbob(*8-@_AqglzEpnaEI-nKX*j7%=AYi<4UPFs4F5XQR^e}jwu*11#waZ3%pSvh zX&bD9`Fx7Dg$VcX*DV$2%0(QUj&Qz5d#tg1(^)LK2W{?*QVA$<3d zM|8Ir*6D6$&0Y;AM_;Qki(k`gUY`!{`+0MC|I=^QY+d=}*4eYSKDlyh4bp4U#r~Ma zy$fYAM#-2<=3X`l!!`h6OdGH-)W*5byN}^b)P<^4b>Td4>#UZxt;$P^(Pb;dJhQg! z0j;z;0=bRWSn^3OwJ@<=QDsF@X}i+hc5!jvb*p+etgtNf3!?RjRh=cfSZi6;u)gwu z^TwYxidlZ+_Te+eoHm*(72mp3k3-ITbx%He_Im4>(U-#jJ@-F;$#C6iC0G59y7q+I zhKF@e(h8$TzzpX-f5`URk9fi!emJZ#{W)YQRZe(QMV_iqeG%xoicsI-2dp z5<%pLulhkZv>;#OjnDZN1r^vi$#tiBjTS4HcacFofzJpY*vKyIVm5u#Zrc&)Q_efWZtivh8dw{{Hl2vw#yRFSS{mM&BL(HNtp3k z#;KZzVSSP?6ZC#NNl#5W%t)lC26c^l+G^ObPUov3JyUj+9_%ATy^?tF>^|O_VCvx% z9yfiNBaL6D(wVsrKx~3%&nTTUU0>3fdKO8i0neUMm>PHSj`PBOhYW)>w06&tG_cMG z2c*soUU#SJB~c!iG|D6IVPdOEmW<0avu8&9*?a?BDs3FMh_3sJGdtt>;8dK!tGMp1 zye{^4-kNz`uD6TM9pcQ)IJe>WY0jN;9QV--JEQ+{Rz`S?<3;J8?apbof01@x$+d41 z2KyJMG~2&8+1N^_!~Cj_XtsaRlo!{&Me+QmduXnGqtB$)zDXFYeT%~Uj{T`k_b*Oi zUd(e5%L{AY=vQd_Or98DleO=UnSRcJ#*cPhZ&?2%%ueec$0wpNJG0Ycrmux~Qtd3u znd$Ym$hoHPn6f?EUz4^28l|n7kE4Egv+1}*%jmcp=9wwR`zdd=EIeu`HT;wT?$x@1=gwuTj9fkub+g`J8z<>zL% zl{;(@YqYb(+;w!RSqZPPv81%1pxOO3Iom$J;ExrL{-y6*@khb-dHH`eyUW@qe6wZC z_UpE6+O!4fe~{_tS~#&e*21l4zEXXHRN18O#hy+y{+_?2mKi?tZ{EB4cgDRNd+B5! zI`3yFiU2N$^nz^}Hh~F`{LqT5pbpSp`Sh#+v zG_?aK8gj+3YiH~(vTW|cu?t=c-&wv~cYoa(k9F74cC{DY*`_DIb=fLCuy&&!xGGv| z`I2*3_<5MT|Bs7Nj%I&=vl?k^g`OEle9)~%|C%c;qfJumBbhN0uBYNSNoA>L9@V4G zPF{IwHg*fhR%@13%_>PU$o(}%Qjq;{LOmp-dPtdg)Nt& zqrTeIovBgXDQniQOBlAz5@wRVq;VLeeHr3;7HMy*;%dJ{pLnMn+p$~4EbX*x0TbKY zC1pp<_4W+ygR#nyF#4UcDGV5;J`y_>sFy(#T@BE)6v7H(jL95mRY$E zeLeZq(}v9*f6^#q?T&Gk<=5RCeyuz0wfhK@!3$p7|E80c7bSnQUs_&uPXCLRCReq% zmG;F9le-mZ%tI|1CaZT#Q8BO&3qQ~0B6+TcLqzE_gKRK%heTNv#;w_Dpuvf3yz09{ zVLsx{E6uL#5n#z=#x68w15X2)8_>8RVnnKd>dcB%F?Y(Vn`T|`$!FIb zabl`3KKsx_qlV(G@RecVwtK4epU)h!aZ$Qco+tSTkM~Z(^Fmy8RWlQ9I%ZjT9SW9n zU`PrNeX=~E4CDRwP#?P^?1@JOSdwfF#rWD3K7{IF7-E{LQHqsp0#T?83Lo5Az`=?9 zl47NHsVweV(iK;YS9Y$z+BL2P<$!AMeC*aN$<8i^q*?*&W2^3oMzYb{^ckn+P{O}l}qMYOpibVcJffxa3RF}?6jguy*_hQ2cG!@rt-hnzb_ z-PrtG=9TlSJQwlLbS{!G8GTY?51)Nf2~*=1?Ia$yT@q%Jp4U7K#``kUxqxpbHR;E3 z(|5+XisOJdjN>~ zZXY(qSZ-HgeLqHudldHW+}p0stt>Cq#u=;Z_x8KtI+W_+DAo0T5c}oaA0Mr=a{Kly z4_~N!=*tCFUBgZK)QhL?)6cv4+a6!v7M1h%Q3dwJNo+Cp=bn7dwpy#uOKxgCf6}qj z%aA4UL-!2$VFB`VK%#$uXTzK}tzy`NhsFi#ggotF%Zr6S=OH{^GlwO@IEHtLdLDl4 z(ea#tolCQGa&n4F0x#YrH|3SsQD~!8@ym0o&|K!0N{y;2U23&@?5lIGn?2-`cYgTu zo7rFyd&PiAH10Q9*i@U#dMv?a9uLnO#*}kCsYp z(>k>J?z?%%oqXARV{fTNo$fZZ$m;uy_2~{Ol2)VZzr}rX6IwU!3C7x7*TM52Z$;KD z6n@lJA!X8go5DT8#huW5%MY;CS7DiG)HX-k7rA?}stPked-dv7ja}x^4q8`P{9u*Nz>tdiuz7XAL>z@kCc?g`D<&VNJ-8xj z52C#Z8P57Pn?IB^{JJa~f4(a$C&YiNubM1z6QBP;+3+sQt za}4)~{183wNgCK5NE#;T1v^N?*hcXzaK7GgJlvxs@%ZbUpY)}?7TTvvGp`klN{9L0 zL035nb6+Y*#dQ2OGYa#8DF4^bHw5K1&QnoP9GROnkjK)5M6@hRc^i>@A(k!@n z%7;=<0LF)Q@3L!E`=b23oVE=`C}cJ1t2pWCy0e(w_w7&mv?`LBJ?JS@etK?Ul;uIdW8sb`m# z1lXPI#?v2DSe+~P}Ltzx`{N(_fSv-Ngza0|g%|n>2 zlM)VALa4!s);M)nwQEIX=UvNXALU*-*k@m;jS+CmudM2Ab_w^~tE*LB-cy?gBriXE z>EGWj)rFJ8C*J$%l1(=pe)FLR?LP6qxz`^ydSv_>UDAE_$s;Fsvp0k~>#||tso7tz zUhwkh_8nH`6kj&u)G^hqm+7hHeNJC=@^;KAz!sS2cQ&A{@;RS_T%oHYcXs4SrbvC| zW1^5#q_Xa#Jo^-9cG$g^%RRRK?4mQuI&%u@65@gX-HZdQOQ@_o&iKv!7sugiQ&jVP z1*hQNoq6sIeR0OQ^jA4|(hlZ3u)d(txeJ^hqVznHc^q?P$>=zC-Dafoa=z&scEB^6 zyBq9~rH+=~dOK|1!I-}@*~~g*+N49Gee|7G)9lN^i7dp2<*;bSvE3-@nd5dUUGgdV zM0;qsXWiqMn4Y&W;N1P;60fJr0duAt`^4=GWig0}JCo(2G&c-Ig~7MPnMF8Q%=fz8 zwoz%IOtC+TWty#eCVFr*6?c5xE}7Qo#$#NUgQ-*5#%HxO%VTYYSI%+tTcgv7xnLwZ z)eW_Whp&d+SnQ^!c|dqP=Kmi=`JY(b#eIY?d*{9S6zo~tfIW+CvC4XQB9`5z6*hoi z-Xhutj$C2$qObV|0InxU?O4RE$Gp&`lNs{e+4qAJc!eW7m^qxb&I$N_0JCSxY(gxx zv3}duy~}l>&I`NQYX67!e?R#*xExhWYN6Mp1ASf2Jx_=0DA zmhHlK?t!pduIi8|g2mClO^s?y(MOl(RkU^3Ip-<|vy0!X8D=}x(-~HGefY;?kB7fs zU-!}j_r2t<-`@4MEtg%k;^arin6L%cOJkLlTXFA`AeKMbCj1BobBVlUXn&vhP=VaQ!yUP6+YPs1-Z>8-J z-rOk6wHPNiVf2cOFe4g;xg2(A7N&_!UU7zI*yPkyI)gKi-?foV)~0OIB%KTJ_UIkQ z&#_?1?`(Hiv$blltygI3$i1eH?8N^Yh1p3x@(Rtkv&6IWYjJ)LVKV(coWnLkj-#G7 z%Zsw=|3*5w)~7%fvxRTryEfjLWvQ60Fs5Wi9%3;wZ-!=zV?{-U2wT8*Gq1wD^a{IP z(9x1cjPDVRwv%Avi>&1GtjDEY`Q!Sho~pGz$3CO7m+!y-Mf;QmZ%Nbg)&grraz0tG zCe^-G;~qK^=`wu@&eiJycrr6>TWZMS#A9Z<_?)JUjqm3^8DIB&je5F!WE!{pS$BwWgR{tc*TLtXwz>w&Kuqbg8kCtzt zlarg1%Z?!nvsB~1a*9sqvs&TxsZQ8kzZY%|Z)p|Y5^mEQLaaqfuCfkI79@+T{>gRL zw-&nNC}(p$^IYXc|7!;8aG3ocS)vpKnKZT5lbGI%|2d3JXgWiIwoXqEgD z`zeyASj)Cg=Q|8de7zChYWGk0BI0Y)3atUUThS6YWh~gSt%Z7!OZQ8yd_%0gx9jV( zbh`JVSs0o z&1`|?Ygp>4Mn{dNDVCfZrE>Cf@^J(b?^QY+=9)bHi3#_D_-HDRSPxynm}tC zTY@=1zJD}huUF(>>|-HKXxk>JP0h=T@t84739|#=2!}OE!?L7Vj~0Gv($FuRm*pW^ z7y32U5M=tmbUo74r)hXTT4w4e-cQ8Uq!??kFa(IirQd61GtAf>g~2l|@+$GL9yq4_)ijLzW*nDyC8F(`hUY!nCZDrmtucIomu6xK z4Zgv9G4LL?Xd{Pt#4y$}%hue~n=xRgT=Qm()Vj6Ol*P=lHR}&9TigCrgYgn?w0U<&?4kHeEQt9Nu!U%5`(%(A3UAqu@D8hql zqYR*m$_oI}53l*Te0{p_a&xD7crEK{bF{>idEDVBQoiS84ZG#?Yge2*$Zoy;C#P!r zw`VV@nJ_M~>jB06!vQDHnRD{B&g`|RieDe}U{n6M5&pP6Q zn+J}#u+O-&$6ZwPMz8vt4!mjZ@$a@QS$x{5vkz`NYD&c!^Jf$ty=eTI=O0?pqGj8% zUEDKA59!-&(cIz_ZazQR{^tIZA3k)-{@1oC!jtWhgN{88*+v$6F0PzraOng4Jv;dK8QgdqBeUd3^sf&NF^}=MK;RqUrf8 z2frvCf9?{860 z*Kfx&2iCmQZ)Ybdl_xKCZl%X_SyPcC=BfTElcp=vY5MhQU()2K)8t&>txA9Y+w>o! zEBweSWZ325beP}cpGILmZ4zdG34;{OM0IH>!xqtT&pVsLQmL{vZ8pjlYfjoYE6jK^ z)+wdOt)=|4(s54GaEw%*opaL1O>Wb1rqdAQMC;ER`;q63+A|{!-t`g>?k%&ijy;do z(JS&y#!_)&^f%>eH4g6QspF%g?IBuemxl#HGM7rg!H-B>Jl}E=h`dAq|Xg;T@UA4oI~~-t{aYG+mVVh_?_$f z)9L>-I_`ProQ%`Z)?8oz|8e#mfKgT1-|xQnW+pwE^aKc*ObSJ62$Aa0k&Y-3l+dKt zKJ}ZRRfB{;(CWyn#pd47tcuL4)pf)(n8&}(?o$kAqs%8D4Qo z9|GJbLu&l^SbP-np%S6S;ZjV4GFObCH{uM_4@`4PJlE=ZG^OSal=(-RSLy_fz?Uca zQrJm~(TS33T%!|Tz#hmvNE<=0;IQCG&@CJoh;Cv0$CpChX((2cotjOaSJ?Dqkt`Er zv0pSUU+gcctI+)$qvHOR_cHr{tNAO>%$@h~%CU>OCB%I4NlZeIvVwKnwyYnuv}31b z$!mr7^f4h;ce%rR?8@H5-l3hJ`|Rk^kH;LHI_;@(pl8M*(#iNwY75Aq*SI&z&_e_;LSB{B0*BrBi{NLzXS~J}vX8SrlXfIth z47hX82j;Tr3U@9Zfi?_u=SmoG=U%FE=SmoG=bCeskza`gKl2MolT(zHCTs)s`vS1x z?%N#bPj{}I3wQ3PRqk9l7u}n3%;_R4@GafB=C>O~rz&^uaARyRPH?x%yPn5%;BMtH zaktLL+WBt1q^~#mRWIMoNE1X13u(sSIN~UykRB+w%5bTWtJ-+53A{RrY;K_|{fSLv zW)Pc*iwTFVjM;=!hQH={kwFMoCY!Ixl~s!AGO;tRR`vNYWj7}>gXp$s+{%yU&;97x z5lcIDTsrceE!&bi5A`0_i;sEl=(5_VIQF#RU;Es+r>0FkI_Be}M?bS+$J>Z_?F+|D z&?T>hy^NxeOveq2--=LvdyP&3o=fa9cqH)5V0K9zeb?zDS*qlyRZu0b(Oiit_cc&8 zx~xY+{F(CTgl>z*uRJqv?irw}V~3?9*PEz6k;#LnH9?oWU-B5Efh^m)P}s1~8jj z-I$DC@*Px0m}wf}GWb7qG;y4ko+gy6%(UF}-1s=WeTg7bMXJnf1dkjdNHX4D7tdO6 z|JrMy`iQZ-23%Wb%5h%Fgg4PSUu+DtF|lxOO(cYpucVF85uh!2Nc;~7y++SU2(8?+ zMuc9cqlM5ck5C%a^EA$CoSqsV7Zm}7W{S)Zgtj1Az^ox~4aCZ`zW+W{5%7BMivk^2 zf8^g^vChdg1kTljV$d_ws*~;n&@=A267dxC$W6EtY&z%r?`yODNN_v!Lw`vAXB1OA z^N{;Od5EXd$+x+l0+&`Hrox>?ie)u-EU`LPVG&gavt+KCIRsSTutwF)Oo>B8m)FQ4 z{6}4-HL?gW1>D6K@y?nAuk4!ZVnANBL{3nMP~bA2WY)!~BkGu{8mdengz9r3xQFJtG?8PAu%ACOa(k7%3$1J)g7S30~m>(Dajr7 zN+VZe?3%7mrG&aUUX10*i}%K7CsHv5p|OLWRX>4VGeGb0R?W=S|51G*|k2fNP4VMPB-3) zY_F$oP_2(VfkF{{51ZSO5`0c;+L&!6_idDAK5E*YjFc zb3)81%SfOrmb+y8XvGL>Cz+Mnoz95}l?(Kzvn~6VKrtI=5A-j!`oq5}Fh1o{$Gn(7 zWFCH_VLS^S>+eKgBpcguM97=X77@(Hl03Fr4RS=)P66g@Gl}Y-U7>PB^?gj1{6D_T zD7L%0m)WW_bLM`ua@?YBiBaXJ;}d(7wY+=V*7YNocIdb?_+_RxxZJqX(@f&-lKwr* z5fGj!KZ1C*iX1T<@!`magy| zs*I$|9}ZY1hpn+U7%bS4-J3;)|6y40+O%vhU2NW_*-bNQr==#iBg2&}kwr&_e7y1r zbx>>sSQ$A2SUz9yJqmj5>dzZ*If2PVV}fzZ-eB$hOYYvbmaa8RYAXS#P zD)$7QCz=vps9<)Tj=^#S^hb~*P~tT?o&s7jZ8;(s%OPB-7vqZ8c+7kJ{^Zv`|Yj zZ)OI`ys~I6P#chWgHa2+&vki%f34P=*utVhn{b2Kf|!4#Dqq0!5O=gQ8E4+BG(&t> zxi38xR()q}7~7h|tPHk^3tR8yKrtK?R3-tqvF&6Z$_TKT{yd#+q$mPN+}A;Dau8o$(nWT!SGr+$H2MI=s`V5fMni zjZkRHu{}6z6M9o-d<_W`SmhlCmA9bUi5gz^EYs73jjD9SU1fLc9Vx=X?7#6x#0Lub zBPBfC8XQZs|Ml9RQyzHaEvLx1Ykp4J2b!F(O)_#wMEsvWEhYO%v%rM7j#+3%+8Kv~ zvkLR_LZ-tvq#7>rrDl5-^X|kYpOxiK%FS_SMWJFO%;Of1sd9P3&majAx}jI+6Y5ZZ zFXlHPm#6kRyrFKt+|)i2n>97^>M-KqA(yAI?m>S<GW&-7LX$fk$+ALiSLx`*rVG|a$M~1X>*GN66E76qP^{{Yg8Y0S& zqS~c6UC@?6w22hq;VR53B-~Kd_7MU^2LrwNLP6OLY#r@-8^!({+_Bov`NN0^W{b?= zEdK-yL96&b4gnD>1PZbmbg32!B{I@pL(p=9;Rzkg*Qw@lSk41=Q|Orv6030(rm^^& z+O;aoZ=Ri%P>;wfE(!_BJuJ`?Vdb?nADHZ(859@7<>QdEx{#DT@N^KeA|s?V)HKlh zorzDldBHG95JJrVXvOgP-4deCq5zvQ;iC(SzS=V9lPzgy5_Zg8dA|@3Z(lD;jHs*M zbXqZT(}sICZ{4yhYd|}T_}bm#QIm~zTm3)A|M%I|uaEDzYh~|ALhPP4<3aI|_}*Ao z^5nQLAAh`D2sradzIY@cH!FEkZpK6QX=Pc(I3?cJ!%-2>igBcnqj$+geE{C$DGFDr zg#Hw<4ivym<@M}pA0RI{b8@9h2m}Hyt!Yry#891&6p>Q-MILO56CN2hqm~}{schkQ zyB2+Y&(&|7ht~{UK?XJ>R_zqEzN~2R%_-}JcIa{8+(h=Xy+_!7raruEfBzNc+6YeA zA9K~wXn<}%9)AE#dbbb2d8><;Z9}DrGSoLDS~wLX5p+V}hC(p|k+Ud<7#^wOA)#t6 zbsXO6ENv+xFaobkCtYJ{?+AzmQyqOWGZm$AqXzXe^D^_YvoLbqoUEkyyeLEkCIr3L z5&fTxm1@bR(UIQs0s)yY+`1A9y~)CrpSuHZb}YK{P3yPs9kbkMGrw_xT==npy>~;s zQ#T7scMcu?vQzx?wxiKTu_*5*6ja1;Zi*E%jX~}Hd$N!5QVe4w$r!FT7g^5!EBYIw zF7HvjUv4ztnFILUEAcY60E?>9PVZD1=gRxdHXPZ1BDr^2{rL`-?Ni1Fx05}L+Q}Y_ z4YB(39WUEU#6Xh<`w%@@{liMswn6>rT`k8i4W8FYb`&|z0=-{Qf3k(h_A>pVIleD= ze7wW61N~iXWq-UGN9eC0{{!2^;sZ7@(2%Rt8Z&ID_PsggsE{$&$lQRSt!*Lg8!a0T zbO8g{&PTA3E&wnD;|6k05Dws#@^}D7wgKTg_PcmjsqA;b`@=RA8XGp0JMf2zZ$I1T z_*?kIyja;jSMdU$k-JSC!2Y(Wvi--Swn?26}C)wX*pWm{ovA@y! zY#M^^4fc|JZ?MY17_9ri7&fhtT^oPLnnG!mdH;~^s`m4216R~R@an_OZk_Da^xKO*noW#b)rmoKUgJ;*7<5B{uD(v?Xjq`QipV*+v& zVZ?>)A*B)2KrCUHIVPlbNhL)^Xh&#)a&v@oLxY@Vxy>@++QMpyY>~}cAPO?gK;Ui5 z0`s{S2<9fY2Sjjd!LqD6=B@7C;}UKz8@ueI`Q!qzxO-yUndM(^F#R94 z8eO-I>7CiV`Rt{ic?aLL;MXUgtXRdK5UV#FFH*~1JM`$8(T64;co*o9_;9p>4hV7S zbbsc6a&tksz>5=6xxfpQ-zM=wuj6vDrh5inIHqRJTrj<&ftjXFgwnD_lQvD;)X(#J z%=IF6-Fn*AxL$X#R_6b(@`(LAa@$kU=<6dOpr}c!j0oaCMps8izPr{EO}U;^YggPU z?UxmI(j_AM=tG(Jp%1v;L}i)eT|`sNyJWlVH$v@vPs;WZP-$QsB>v@E_i3DyF7i#$i;^aub8!2 z^NV-pm&dLZ$`elub#?K`|6p~Ioe%H!Ppv#SrNiY}o zejD(Knp3Cn2il>Y<#wmKhw-e!SDj$WRo3`o>HyDhsOFFiQkv5vt$_>vdqNL);AV9? zxnNTG2)wBB=?TzC@<6I*RzN&3FQ~IXt58N)^O1&&0+r9QGKr>AsSFf!h%r&{8P65D zkzrEfRX}u9AXiLFr>iX=Z+Y0!O?1R*;dIVD{W=jE$~SKOShO_Wk(fc|AeeKTgZ_)$0g*3e z1lO=C(Jk$gr*bFgDV$g%b;V6f9ep{n4~tElB4A0WGCikv$#Z0c)49E zZYTSU#%mz2IMoSZu&@9Rd5ZGhB+uCyA=(!;DB5tFIJffmhmM>VV$rnHZNfTq#?K|Q z5OTLy+$p^G++!RtZa($Ti@(laCB(hJ4)5tYy@OtibKm_L1n(i-Nh)!Y>9|AUGmn43 zaGxB~q@a>8`XNWfvq6l3Qw)=faIPKpu8lkUaa``6rH`K}UswtN-&D7u4BZVx^C-T1 zD^3E?0C*bWjeH#Z-=oa#d9*&xID}JBzrY?rm5IOT=3k&}qMv2>gsD~{=^CSyz{Qzg z$F+Q!Qt-hLB<(OQhIWy;H9U$ZA-5nYn{sR5$Gl)v2_0GO)IciS{|=&fMWyJ*HGCm z7Z4whs{%HAwH~r;*B6SDRkra+!4%qPuGfQQ*eX;+n2Z3I#^&H&2^jryK)%>I>IgoF zMOWJo{@y~#%gOR&)J{%_i4Jq3YHve6h%onE4+WOt&yi}p9aAkbI`{P=%^2JG2GoR< zD=wL0EQt5>oj`WfiaBgYMUEWlkA*miJ#;@%3@zOoc#}@7kojPP^7K^ftJJ5oY9Dw9 z&^RQs%W+C7{-`34liy6>j-nUiF}kBF5P^+v5d&#{JKlIoej5}ozsXn|^6gsv9lqZ- z!FCWdCTs_9%XS(Q_o0)<1TJP{b*otpdki$=be1sj@Et8C;;eGbF8ne%D8LpE2Cmsf z%wtozUVLRQIsjf+E!5js7e!;Co(JXTwAv|-P3875sOY)rYKn<>g zHq5BOg@Fkt+|DpRiv|<#XnzRfNMB+(PN_Ms2k;xL50dQ*)L(d%~i6NRdinaGBFFXBCdD+!2 z_){orfXh94YpkzF&!e@$@KZ_DaSU^U!}owp3eHY$m_5mSlZ;0EDp1xl_y@`2?egyt zVDapRi||}XZt9-x+x-{sy;pDjqQCu%FRHJ;$nX(fSMpkc526KHE9Fx#inNiyw;TCd z7xz3G0f@*aW-^1K!-hu6Sz^ch_?CuR0{a@B_=R2z5aVOS?u_T*>>=C@aI(D48f=QcgT{(+7{k#oO#~w82l;UA#fK{qLk*oCRB?Dc)?4AH2qo` zdO$WKYzL)ipt3wrG|6J{z=ZG!`~v~0JPAo}bfc~Kr}3+?Y!dS9JSol@b^S}lpOcJI zd#>~Fb@ch#QR2=ph#5#O3TpyM*+>+t>SefJSz>^+&B0Sp@AHca&CySG}{i5Ak%_ zXLQB3s(o;;1&_Z@-$CPJ-Xp>7xSI}PexW28>$D4?_b6rXv$P$+kSQUiTa}-9FPQH@ z1eVSTKKn=P7Pq3R5M|YvOfjv|=oPeU^i<(w5FSzJ)-Ie)G&&ns#cM_e%0=9T`|fgM zt&fo_E~s}IVUq+{sZA#g7i!U2bOLpxfMxVV$2al9+E!9 zM9|`OYh+F=w`*kn2TX$N-=@J`apMe zvf?heR%3vQcI4PV_T>mj!;u1LHQ(n*nlh4PaPSE-@gw(Qw20O%udRTG);q@A>fJH-=kiXzHAfybe(cpE*vG{2 zAJeG>YqdN{B2~UiDcP|`=BP2%p)5lrz$=pm1qlR zmFdJe=Ub)|k`dJB*iVJp;in?n^ZA?!xq$0uaeuo1`$)cEl&J$bUWoeV$#(FEDHRcX z_JeZeS3GPSG36v4J8YCToX6N}j8X^Mu(+ISG}y<8{$(9cGe-_+&e924GzWDMoCKir zqFN|KbB>@F9|bpxht{qt&nc)~Cn_)H=CCzO^!Kj}>(*M=9(P9LO#E!t3C&f%!*n<+ zKkE{cIxvafpTzHd7%uvq-URh3=Le{G5q&uS7LP$^W+5!CydN|Q)&csi_><|o4tA=O z&zB}#I%!nYUg7X{!PyZ`5V^wvB6qp?0gopW0YQT0-KG+4K)gib-LW@kUKPJ!CpxM*Ty%@Wjgt8yBM z-T=F#H^xEr^hS7OdgDIT(%V8Km20vxu5p;>WCJyFe3RbrZ4kZT{S(xm=#6FAiUT&i zQGcR0wAVmy--6yy6C53c{k$L$Zj(5SOm)5aCkK73?U?v!#=j3gyk^G z?LuWsk*E;^%HU{$UrF_2|5)UU!;jfYwl~3>0J~N=JbS?9DE67uvz2sfwlXxyz3GEk z@9wEnx93FFJ3M#$E9d49oG|NL$&jI|_2T10$B!R+`@|C`{R!&Xk}*r~^cSk%4Vk*W z#NQWaAYB{7-&C3Bi_OV^{8L%^S(lU^&JoCUgQ}uPT2EoCAX}+lW|`89eV)w4SzYjo zce!R%(+egacKh|zfx^>P$u$*CEfYu;l^ko*ab;Iseo~yHI|sA$>trvqJQM@MR?wA( zt~mrDJ4p#j{O4!jpxD|&okb7cL%B0%DEmm>OYkD>q4fi{OQzBg_|;6JT6GU0c@#)Z zN1mndkUq_<=8@^m+|I?JO9L;o#tmg4T50GZEICcgmC$GRj~whii1RR+U|&2+BUpOUp!*c*P|0V(QQ8T%M=DVVl%sHzro*3&4D`q)t(H~UEK3PW zuWnyGyBn+ED{Wd(S5ps41_=u6N7#c$cr1g2E3dG+wO1oe>Q75)G8hfj3YO|SA^7m` zX4mB)DU)cm;zhExShPyHal!t<0P(gl4^?gKr@g-vivV=UIvFOd^2XZ+A{@ccE+(zw zxf>fys|f)sjK$#Xvj_aNFikJPXV7Bl`d`84aK+X4*_1`+5juUW1@#4FZWze8dLi>0 zI-lh4g+IApD)*D;mfpUsn_}B!A?qIGdA8!5LdSux4n$=hhsP(rCC9horAVhsa9HhT zT~&Vj2DRhu`=$xcsF40vtyHYX*`IY6JU;53zC(M)a6W+h%Bt}R?-Q;f+(T9ohK>r| zNDqY?pAlR|*seIa>2>wa$g_X*-ya15<}b~4Wv}MEdKqVfe5|H}4l30pq^lfKIQ(fj zq^0`0gm$n_CbZ@{|p5Z#*m<8#WkM z4j(f78=jr?)PzY-Pr^SFo|=SxVwgy$ti@nK@NcXm@y_kUcg^-mYZvgC-+H+GmXU`DS` zmpyLyH+Gmk@u`XHM){v?uuJXJVA9hQ*AkzS>zjl7t)|+8l->)MI@Ex?Ej861G&csd z2Vu#ReqNPp531(wh*s)JF>T!B`8Dj3h+2BMQTGbvV3myu+7mi!=AMl0P+dFDARwl* zBli}59A^KC(}UVcW;ffXz=&e^CmlPtlONo@fp%wD-_mmh3e@rO+;4|jZ8Dy6ZC?YDXk`GJw)sAXsArnRy*#AkTXE*M}N?04eJNZ5l^ErAxjcZBibUI zI*=3FoGXA+@H#$k?y4}*9Z0a-v{{JnB@KQmCb8ZExR-hhyU#6FpYRRHWIB&%P#m2X zN`rwu2Zc{5lYKZvd0?(UpDoHdIgVQMIJ=Nbi^oxq);P{KrTn^mb}Pqf=!1Noa_!*< zl)s?7<8@7yIvct(tb5O@9f)Ge@Q%0L{PU5ciEcoW&RZyb=mxBvo|=-F5SQ#uhOa*~ zQekk{fkw)T__J<7E*j`z7gUSO$~$n?rda=>xO?}g{oVJjSaxsKd+_**701OF%bt45 zqyY&d_7u*b)_zslWB3efvDWXdt+>l2{kqiAS|<#oD%&f5aBk51BF{imt;I8l3=X50 z6PcD;K*iy7Igo+hjBtVqMAtb8vj-w-5ZN~jBlPSY6``70ynAx+Rn+yqjf#lW?62W5 z#dodzHu`$sUSrwSBTc_|3;|98Fd*ZcMw^Cn#H+iR?sBIB+J^EKv8zTUUjm^bx$ z-(F*0im|#T%-5K=?)AQ{ab90@2!eQ>!c(sbN!Rod2iKYZ=S$DXP?U_O8BLos%Jt%? z)Pc>fd100(I-*X)oFoq-S)huA2U&YH1u8kD*CTg4`k%{om0tGsgxzjsZdM?Qr%VQM2=3HCOgs7_&Ou`JOBmSfFO4? ztB!~@5JfX4q6C1M!V0F*WP~z?Q8M$;#8r%JRFnyn7lgul6T-=?Y)q>-`-;dMvD8e; zgh!JSoV*I@to%pSF2O0RfTt~ZE0TXyIy|Jl@g+8FP&-wF;vzmS7FiPzqX5gSj9je^ zMko=|m{!C{Yr)HCY9p<>KFx#rkYT>MKEdMEFY&5?TJj|nE!{jhN zC?Uz!9P3MOkmGiRRYI)O#l=O5l7ZY5t8^nZu6lHwP%^D}I;9Yb z5<4bz?6`zdgx!5pi}Ar|Ui*2^xnmYLXH08t=T6vXCJRfQ8=y(Yd4=*a9r49V3%DvW zsFtOL=3G)Mj6iqJlE7G&;RCEVDrJHtjgq9&Yxgd(dm|v>e;SrNAF@ETGT{;c&CJb} zWiJy#y;}oGfT|}<%MKq%VO1S{POC1{QZ;mnyPk9!>sijDJDgqXXGL;!hi4c2*TA zrTc}(Eg!oY6u1xg=&cQ%pq1<6VP7mXn_6uIcK}fV+RPzYi1e4ivjA z?rfv(I{hs40X1=19+|%*I}f-CBhS%la1%_X)nO?lM+#FZ(svNDtRyK_kQImv`8W{e zZQ=}hWG4iXej&$7dutKt%PKxqERW`>X<;5l$cMx~R<(17z&ri`R7AC-oK^9gBQX_#s}2&u+m*^MY)ONisyv zy$M;9caBWFF)q4O){O0X@l!*_YwCwu_}x?egIMPX-w=YOw$jGtCV%67hFvyrTP=*k?D3nhl)GswPIAj>1V)v{Aj8M{U%7P?J@UfCOfT!mMn zLO$pNv_XKUw$j1ZUcw{PG^A`Hv?9LDgh$RQ$sG8U9yqDV3GuPf;Z8=VY5Orvj1~w1 zT2;>*9|S`q9dz0=HTL0+*2C_esvfimkzfNp+v*eG8{_q5qIQFdNHz*R!oSILg%tor z+4=1G=`q7ST$U5N+O~Y|ZP_gnV%j$u|6Hm1$$|lz`l{;e@#qGOO};1ldF&it7I{dp zzX#v`WS?Vi2n>%H$`+w9lop|EDt&HzllCzQExZHgs^4ySw1*ReYXcVe;bBDMgY(OC zgG#r7bAz8$Y%rk1x#wf_}}Or_yc!%2lzzTw2AgP5*9#v$okuO<10Az zs3d{XR?U(Z*T&78UXl3x7w zgVXlcGrEaw#(1^E(18PoSB3#TTgX}j>cO_MKOXL66nz~Fo}}r6aD+6t@4}_4ZycoI zxYRhR1|F-#Bp_NCdkiKB0P<1nh>M$gg$2&i(}t@4{;ToRw308rs8B8~pE+|Gy!OTe zkZ$$%PkZofwT`iE_`rcfiPlC`T-5$e?=S`NY)O3n=4|2$N~RywEVap_gkl zno-G#C`hbRfFLAER8?hM1XV89KK)z5*fDp^A8^N$qFL$tD_{Jf)~Wh$O)T5};_fX| zUtM_YL#vD0-uA)7gGank_n~>8Wd*`fCTLFMj9 zl8m$uLaPrJ(-^2iP%7o4M?whmNSnq>T&Y3EW}!4{STDC$T4Fpb&CNtJ%hFsGWGluw zXk~dxiRN{=9Xve*eoyH7HjUqtV+C?N7rK%qp$lz(Y$Vl-x7Ih5*Vj_H$=5a~8{4fU zU>UIM!b*+TFYN_qZ3%>@V0mW93SP7g^K!5+9LZL7U-B|kWYQ=1D>6ZA|I0SDDrnvF z#*8NYYxT@s&~5UDo1SPI7rN}q+ZHxrOpXxEQkP}lEX2CWqFIN5p{vINaAuj#n75E7 zj%=B*1={VTtEP5Dhe1Wi?S_x=VzwhEr1DF({Y&lssUiL62*?ul_{3Y}yd~lWbNsT9 z{_9X`+3xQm9WeSsarmmfn(Z;D<7C@ocrC7ucAtOg+pG2gkNP+BG@2JYipIyf?fK=o zgU*wF7s!WjQTyIHhsejq4#XgB^H#C$Eu>PyIn1JSn85s<`H_nZm7r7UX9ufajw~^O zyd|#bo)4c{_}bJhyI*`@@x-_4pQ`o4ODoXp_uh%p7PzPJs5mAXln;U+Md+mY!K~*SHN&mb|m# z@PkvA-MjFvL3hq9n>J~U-f!Wtk#`)Kzu+-XZ1fwu<~=v|MA_&GD_-6(bj0$7W3HSa zSSx-&-J@?&UFbGnL~X!|AXT`-%GV&p&isHkV|V98j{r#u^pjmcET*-lsntpLk++Zu8tuqegZ5?6u+h z8+7%I8#t__^PQtR*Dt6)d(enUde)UM^sMt=_uV_c`>?K^8aD6IebC&ZZAWg%cq0CW zKHXal=-zi??{>Xz>e*&^F(qFYO6!XMs!!k^i&Jj&6$EM#!xJBzLlw9`s>rX=k(AOJ z4ybVWCHa*dP$@Rr>m~-5;#6yGJiJ#O@$E`){rX*F_pMSl9XaB^Z*$nw&~ee6pVOR< zaiH^hz8t4ORz7ej72Jt0F6@1fDB{hE(?|$`0LNnkJq4ei<&pbsJnR^E%n`RO86lEd7SfV_kph4nY<6k zUxEUtIo`lN&?z8BeH@RA$%)F z>#Z3ghC{4ZcLGn53hL59I#ZV;U`cVT0D0r*LHGj&)hU2UA-T^ESaKqlQxHNv=fz_v zkGa$@A%9i;tKtW38pckAKB>2_N1EH|&>Su&Mso#rg43ym>;!B;oKX@PIR&blBtp*` zV+I)o<;RXD{U<^|e*>uo}Jz8v%>jjNaz=hO% zL8BWVcu-wvlEAXQ?X&8xIUbZPd_8r zAdW%V?-G!8LGnaEk!14XH{@xmINZcRxw{uMY7hbRPl=Ut00(DVd zm*2h~__i$M+jSZ|av|HbHjW^`&@UkSI)_wBjHS158W z^{AW+_{W`~H^JSS#J;&Q&Y#sQwB2CIkP}9NG0OZ-R`5SNg~CK+-cKRExfDAI#Rdd$ z8RK6FOOQ6G{G+J6gA4cky}WF6ySe?v`|5@(dtWV@Bg7{ks&D#lnZ8oAUBGK$c-V&w zuUE*&UuC8L`2wh;7d}Jx^>di2y{A) zloBS20%M39SX2>ID_oLj`$Zoj>>yv(Vo9Q|NL3;ud`>3q(x)e&g-YXzuEtW ziOPMO#Rg*<{jWlqw8kVEn>P5ZC23=9n;@F8+vyD^&yl1tdV|US6DI}rXFZE-pE4!5 zoqXA-oqXBW1!$7$_L=R|iK&^i+Jk-E&>#LoV=yoIxCOtdHo<3YGR0M!-_BOyKxEN5 z>zE`ArNOYVZyJvY-?Zo1H%$c9T;z38ypJ3+EL?vrFs7@uY=>W4r2dwKM+?01B=CBOIb`HTanP7Pw_N z!Khk8F7Jag>ryTQ1=rib%A0G5089OmbF_znS`VE*wmMRoHl zh#WGbl&x4HbPSpw7{#poUxvhyEV^I#jOLFzcV2Y=2hWdr3jjm&tM3Drb6PIrK*B&g zM#3;rz$|0KMm~qKeXI!XA7~#fz6t72`W)H6MC~Tq5o-fn+U@HcJA?WYPm=wo3!E*i z9lNY&0QZqfuFo6c(xFlW@)5~S$Tu%|bj0H#KAuZniv(y|v3$*o+rRzqfBt0b7sGzM zdih5&#CR0y)n4Lh|A+q5f)W5UR-4k=cn;P9QH&Gmei}1OvYq_GsU3IvMf_p)#~Pg6 zE|lJ|eV^3FAY1JqUwDQaFMT2q>G76|PXrVghz+5Ddwryn0`703n3cd!okD+-2_BI9 z)&obN99KB5QK2!^Xha@F(=7CKGPaCtuyA-Fd~ie6>7tn3HM#7+?U7|FmEk>L_-MMr;#w zSyp8Xvg`pSm>*yPgk22@p8y)kN*pUq1*IdxDN2cBrJ+iN;9-5&0vW;;~ord^$FlXPk^>&e!{y=oR z5TnLiS-*S@z-SMg^#{(rQluki%^?`~rb@Clmby=C4{cqWB_%?+KE5NamLmT8i)A++HvQsbDXFsH|?n9^q{a| zrh7^DS*$-<<*ws(F)x?nPwEspzLUPS#$vyI*>CFPpnf&3lYCvD4SdhCk%VOo@E0N* z(fOe}&l!gEGtd{#=ZAQeOhHSJe}&S|$|p(BqZyF(xpA7^DE}^onVsM{5G|CD^9D~q zS6;5u1LeHP1>DTcj=eqd20&2>klN4>EVp` zDN5Cx8nVwqyU%#VC-ZIu<%E)b%IrR408bh1ANsI^wS{wQk5M0bhPVqzhhH=B)Dt;y z!j!hpf};a7ge7ubi^g@XC>$3}&b#vOthp5UyG(f-ri8`E>j;t#S3RWV6(Un432;cG z=%O(~Z|(m>4fp364~WU?-!UELTL3fJ6~05Dry?BzUM-Yw0>2Go4nlSsD5}_p0j;=9 zvfNn?I0@!cxdRCMRM=pFdWZj6ZLt3ZwTOxpyu^hGm^RGuL8tFyNaQY6hExnSX?Z9= zj)gL>B2rIg-dgO7h?2Sr)_0RzbZsawfs+yd!`XkpDXE7(?|>0b_>J&eu8vF?wlWUXegn6m*QRaOt{LJpu?F1`s&{PbDqm zRJD&gJ~t;PQ^r?P>0mf0fcuh7i*6}gUlvR|vnOpCTfctq<~Q_6@0&NLZE- z(%1Mw0{G&91#R075_u^bbGnPxL-Pwp`4~{Smxv=g4H#2M??S!|(6H!%Luu3VXmilGn?T}R2dznM(1wmT@?0x|-V^2zluRcQf0cO< z!tpYIzq8k^ck$nJ!EySP%Rga2tScWq#^7HyJRy9~I3Xny|F9;(@OTppC+#y&62tZu zRosbzThk0t_#D9(isshCQyNl!r5um&=EEaKQ&X-O>S<#aGTvNn{0ga~KxU>^6D$1$>GDssaMM0nKkR3vc>Ptn)R-D*#BhW zaWU}6pTwZ!$BlzO{b)RT{O@I#pE-7U@#4$Jp1EA6t~_#t;Krfmx{8FSNM*D{Q6`kg z1il065?IfOp#WpV3Sljh7^`D<0aZeWFGdBrlBy{^EDSzZN?2qVDzNG<9R@2#XE>pg zxTX2O$=aJ&J8Ao`KCK!jPB`LEp7bw!k#bo)jSXmu{c|bpB~0-^p=7|VaTzK|g$?3} z$G-_wJg|SF3jlkE&+u+^JHpf0$VUX?XnNk?`8?+=iog6LMi$C?tbM2B1>Dhde6ffv z6(}F9L34#21FbXyK_(NK5Qk{Z?rY3$X<`XdBE~>>bu3*A_HQsi2AYB5LDsLD(ihh? zL5D<8?nH(T!h3-rTzJ5o^qp6J5vPsD+IRjUvBjA1#v9w!j%wGPZ~K2q@Y7QV7@PvU zd;;i`a6@{P2@((w#L38TWCK^6vIg_j$|E8uTw`+ z>UisT>t@uhm6D7}l9Ju-WOo#v7a}QHPX?#fT}j@8+-ypGlwDZhMu346&kc9WmU%66 zwT%x8=QaV@uRL1*nDNK99U}aZeIE$%_XFh*y(z?dj?*U`>;Blk@3*y%6DRbwzwX=r z=X(8wG28Ld-Ups_swe#&9MA9G_dF1|59>URb*90V7@nLEPF5Z31WO4Zz#^itK}gC< zVnJ&Vz%dx5tl`8Vs`ZUzYeQu{_h@rElJyXb#%hZPXL~2fafWk?>y*YbCXq>=z-Wts%38W zF)JcC+v{7~^9cYfhPUb0j_1rM3(aR0zp@1W{tOM_YDB(d=2Q1HI zE#c7Rl%#2*(b~O-MAN^$E}9gSqK1gP_fCn<&pvCs zc zJI5J6a66s{w07AJ9a~@Ha>Zp+cDXF&@QS;G`(VsR4c3$Sf3MWO)qe+#X+W(M7!&>P z_utR$H&tri?#Dfa{&g$0Kj6QM+n=X)=c^WM;X8~wlx(Sw%r@j**?o)x= zHUyrB46sMwYL4L!YR?PbsOFLUX5#?4rYdY4RM$5c7xwSubmx*|5iaa@+7EM%V4T$O zyN#O~ez$Q%zgsx6#uqLdSBOsz;Hrkc7S4kDD$_#dHP=ID1$W_7IJ%*IwK%)l{ot3xl`*Q@h%A!E#eDt4m_|OKyOZ_LJkDUBi@+A@#4A{*W$Fj zYmGB%?vO1-rSC0U`reGeTZX8)#u*$8W%~ znSE3D0e3b3^wS%r-Pxs6t}`>HV_oANHCsL02^X6FLY=|$4X5~H{N(hPbzrWOe}Mlp zqDg4t9ZAku&^#0&co&Z|23AnyF!>jMZoZ3oZIrXu>@!}O5c)oYjFgRf3N5iuiAtv8 z^<^d!;{uZfGo_T1rrQjB0~(`_I(sQWX=ZsSA}e=`mhens_W<55$bi|G#oc1#W&d}B zNAF#`?tp03J~lgXMot4E8f1H+!mWpVl*6?LuN1v@zRRqY%jdV;urjM}BV)kSysSoz zJ$X|A6ZpRV8DNTrJlYJE8&$|*D%>cE!(-Es@7{E!)EZGXxRj*081#+uxH+x}f+52Wcp2=E z_Udm&UmY^8n(KmRtdfU(Zfz9kz+5MQWY);%(}qD_HMTq6!MbA+9WzRr|8w9j!otT5 zy`(C{GW?4)SwSAdi|Rc zD+{F+nAwYfJxOWl%a0>qL@&5#!@~e7xUmu8B#>YYlmV&{dzwJ5a8v$L`oGAqx{%S# z45nmQ_X>}|KlyHb;uB)Bh=0iNq6C%p2}z8boX{kY4Vj@oFKaz+Ed9;Gz$HHd`h z2b+P0A2bD0ovH$Cq=XcW*myu<8~w)x{NXhKSmB&R(CVrFZ|7aOFc&_^ZvP=9(A(v| z6X2~?XZmmOW9Q6y+F+hUWfWc`NNfWhlLPU=1Alh>9Xw?$e3&sGy+n!98{@gaq=v*r zfj;=bp(zftuh|0JT?-IUPx;eq(AR(ExL#>W3D)0_>D(;?4Nr6 z{8YWuRduaD+aIA$|L!~gdVoEX;Wb`!L<8Pr1v$K6GzGv|g##8`a!G?%)o2pJZvc=^ zXCo(0B6=ogLso=Ca~L@ZO4LAxj8pRRl3Ny{_#RHk7hA;FBEkRLe?*+|(Q!waOSuYPGX{St4J|2kqXH#WA5aXdHc&oFnK0zbWQ)EhT7?YwkkWCndS zCnksvvGIu>2UwAV6JC?59shs_is+(SZ%a+~|MDNPLfrl@e}!k@-7^#aHlR&`w3}UN z)^iaMN$=NJo$-zzAa7?O-eO+Qqj^|smKvcdQQ?uA^|HW`)?HAkn|hNQXw`Y33tbGV zsVhzg_?FQ7!nw%nt%YzBZ$oc`TsRk{XVuC|An&3ms_vwuA&iG=jZj$;>*4EV@-<(> zczhuBjZFN^&iZ-kOKG2{JSM`nZZ-aVEamgGM~y$WZWCdT9yuw*D~HoQPd$9{+zv{y++RGpu-&#Xo2f#tt zfq4NCqX-WplLB}?ol^$PQ=of{6@ch*0?kJWEY&guzTa3uk^ccq4)7= ze;TL=Y^3a%nVzh^h3XjHlGDn6$2mM{oOHaz{5u+egMaI{GygVW0AEKt^r$bW85LVh z*=Gw2{F0}KTW}&z9F!RxF9fp?urwYJ-oS6QMyTv#!D&YgF;^!CXFbUgPJo{5f8j!( zXQ%xsQpH6A(|;q_)pGrcb6TlCz*@gQKOs1}{ zHh3cO<^Zuc`p~Ako4J+fAJyznG2%Vh!tISZgeEQ4g@M@Ad$Hh>D6zib~9KLmQ6!N|4A(;WvZ@8z8Yv%B%#?=?kLw zh~R5R(-+WB?vT}C&&T1A8*4frH$`Kyg}fcsFi^L1#aOo@O((NDk0Z70!sO2 zq^)+10Gn#=>XYY%oh2bFE-WkqXHC9j3-PecRb9DGmzSdUq17d|E}7;_zlq=d$gKPO z>;8YJ+2Ylw_HB#*I%e5VN1hWg_iix$eER8MSBP_)cg;Pu?B#zV2fEm|al=2CK4!do zYUe5Ay@QLtq%(my3D;|YHCf43rpV|B4~Rl@Liz?wf;JstJ!U~bx~!U$MzFrshe{}d zaZ^vM1B;<&hFv`neT#g_W`2y^)Latu+^D1LCVBy;TL$#h^gxG{7m^}_l~K zN5kJa@J3&8-gw^?W}L22#LcT$P5eGqe3!YMsrC z7OvwvX`k_y{yJchZ#-An0MV7(%Z#_e=xvd!eE|g<+V#f)dw{lb$Ua4O7KGoFDM)z) z=k+p3*A5pn@3^I`?LgvA0;#ZhA#|!{^;JG^uH+mr zdNZ{tx*(qFy}{iN-0`|mzJKoLn|jXdJo%M{%^FRaGyY`RlGi7XzI~YS+K@Zv4l0^I z`?1$@y`Jo2;>K4$KPqY+`1_QXX8&W&=VdtaB5KdCyZ+jEuTk;vpPP{)Eoo}!j~5Hq zo)fQZ|8wmZKo@9r9`Kcm^H~?U*ymGlw?nCeT(8n&1z5w&f-1Os!TCT94)7KDo|s3G z9)chR&SKkw#BE$DP6Qk}%Bt%f=!omqlbM^HSI;=GA^PcS0^&X)e#>+J8>a6o`_kHn}roPW+zGZy5^S;N_EcNln@89#P z-hR-Gtrb*L5Chv9vFPb%wo}85S^nMVPbr23}`%Eq`T;45a62xuLtI0#Kh&bSB1ySanw@1 z>z|_K?!CtOm!C6!+n{}+-tq3kcOGxwJZ;v)s@I<;dhD1x|Iwk2Z%-JrOd3X39&r-)DpWQyzDx0|>{Nr8npXtRq(G@C>C*i` z<95UE|Lzy@fLlMfbML#|yIeu;$19yM|B#BGocZ7->B&J+A`g%D-?V%8KDK$`s`Ew@QmS>0Px|5Wcl_G(>*keh5hB|^)Zu=G>EV05 zpR)n()n+8WC4d%0FYq*YR;Q+jaM1&BvgAzH6ypzJEl?iT_cqIJmYc_6duIAj7pyv9 z-i2Uz`OvI7^2iEJe=C&vFl^I__R5KkFWvRe`|kT{!K`-|&Au-$E~{*$@ngLYZWwuE zyWZQo8OAFcwzpe4Zsby5yCsfg!`2#$etgF8uMuMPfA8P<9~2Ip(r)m}MJs2IsoSR3 zs=9*;@4CGI?JajaK6TVXcMjiAHe;gm@ANkj^O=M*{-iIwUVLmM3BqE<3 zxbcyz0dx}5geiqdo1>iYRILw;o;7++Yf4H$|t zjUZh&m7;XV#YDs647U{*S)6lo)x4IJU>3-PPgw%|LY>ZpyvFp0)W^413)RBA&&(2H zLHU}^&*y7xo?E#7`Hot_YtM?vhTSIjTDYUry#6;&>D??cRox<-2M-F6#1fJ0Kjl9q z+)Ex&yK60%&h0DCJv#l#vHj<-Y)SeS#+ws4A$6QH*i}9i6LAA_UPRrr-NK`+=-j);`=^ZFvU5V0nccuk=^k&5wI#wg zEKI2b9~CI`@SbCf7Z@eOA0Ll8#uV^O8dSj8`Wq1?9A6s?KZ3^eE$zlD&lo)g%pSng zP{;^foRrP1rLx!;Np3J67i<7@EtAV$Eohr?Rnxms5l}vn=83P`Hh6x?iveylW*1Xh z078R0U2_QV@`x7s4eQ^KlSPg$30C1?y7yAxl#v|oqUw0`%49jXFfTVZLGp6Q!Q@*2 zH&JK#N6+=TtIG`=ZoUn{RK4eY_X#BaFL&%dKWFf!A)f3_!^a;zA> zhj9)W5PpqR|Fwg!eF_3xVM}m0;SuC20~X;dgBP_62z8+(5gbfLfVyzKLBT!(xPT`` zc2;~tFDh?^g>$$SuMSj0uNqz)43Yefqsz;SRhfEX^|`wztQ2C+%+mSp&m$Louyp08 z3q~%RH~8wCul^bLS?t2G6X&B!%GA5nZpFntyAHW!z@!}m`fVK9Ym+x?ZP#6oAKKBS zFT%^ZwC^p?G1kEMR44PEYR~r+;v(feg_VrMI$L6$@sI&p`w9_Nk2fhC)kvmiojG0H z$o&B;EBhL90CK%tNV@6Ci7`>+F;59i5YJDqQfp0$7O!X|Ez+Js+~Eb1@Sd->UU7O} z@sioM{`R+@1WcR8PwOU4TqwliX6N`(S?0L7aI&%k6 z5IQ?6pZSVM1<>m*mN0_zwoyL2jPZl)#C|>lMe>Pb(2({=~71Vm^!e^VK)6 z0>*jEM&9+ws-+(+iul|;uXGlKvy~IqtLd|Qx9yu01I(2s%Toqh4TNaGX_I30s!wOtL`5Ia#XN7c9@-7X?OC3IS$D1{1SJi(-M8 zmV(V;@YUP?W&B6P{`AJLx6WQtjN^3Xn@Lk9P9MExj}Y6ol#~gvaN?vyQ6MtFSv)~d ztGD0WhgWmrg*QJHqNr<+;ecN##pGKE_}d5}eZu1s;^CL(!O6*~g|JYq7r04NFr1L~ zaB8pAgam0tc#xA{c@ujpU5+q^E36EUcVsYfDURUH3=3lgSBaAt7ERHj@@Go8LkTY; z_l|3P>no`8nZh4Zel}8fR6i#;Tuhr*SqY7@bBT^35CF||WTITsQA!~zIpB!EPQ)%g z{j3TkpW=A`;VR`t}>jb3r{yqhCh3{9&ks_@+IMGki-iWkN@!C5=+eJiC-zY!GPiZa0pgyHb?-gQF@!X+8+}z=|`yT7Gu;{A)0mtckjCP|o zZyD8nd`ecmg*|)i?>=($&2?HPq%?ee#e%;*J6<%UvqQ2B)s#t8riRpKlIdgUMTUzX z&n)7~H$g2f9V+3%N$qB)U|dE)J$#g4Mx_@sx3e)CefjeuD_oo$CLuh8mXpE7gi=l) z#O57X_}Hm)cTJnNS>5Izk1AkP%IV5>z0bVWs8Nr(u(u31-#53I_YEBt_876>MY0dk z8TSF5Ew4gnmHQk-EDpUxg6XVspDoI2IZlx5Ub)XMWnmQ>soZCq^3iqs>{gzvz7NaY za$Wa9cnYHY0Dgk{JgA(nz7NaCa-0Lo@1Zoycy^;MkBLJiH+*A~d=*JdnpFpC>}O#U z{pi%z*w4Z!yywiby9qLQ)p;$fqTe;gvoL$Tein8s^|SD1uh+tGCHSiJv#?yLpM_(4 zJPXsn3vmYvFZ_nVUMNn&v$>Ci2jVN#&iLmS%+2^);2h9fg?^_u%KD)1taj@={uTW+ zWjgp?6UPTI`z1r~N|v~QzLD>HxDS(J1f8K5@g{oXbG***+AxZ%iZ@Gf7tl?wAV5YI zF(Vgkew-jtopJS(v&J97Sza!j{#t7E#+kD=s?q*mHq9wruXTUVIAXjaZW8_96TL-i z<4t34i!+~``@r~jUf$^oq!1R$mWrR%c6fszR=`)=%sHtj;34qarnD1y9-!)`e1&N8 zNrWV?5OoW;ek^)6OKTQgyHCN)%>oaS_j}wBrac=TyZQip&2GcEk2s$Jt|k)CaLzQU z#=`U5%vY$7Gwf5m74s{@t3*;Cre8V6felpE!@LzS#tHoHW4!== zC%r%g%x-9Z80~{uFCg2eR77z*;dz?#OKT6q_f<5Ib85EiQ1LF$Nwm-3{y)~f11zdz z{rk)*yL4FEB8ajq&4vXKD`Ib8S8O2I5EKibV2OeS>^*kTpi!~MBx;ONqfygiEU`q5 zNxX^a?dGP)j^FQ{vkR!nz4<@SN3z16nRCv}J2P)D&TCL3mY%sD*K>_+tL|OK6B0K$O}@?gd^2TP}h z3@Z)0=D~mXf~~gHA2%+}uX}W5I-BHWtsmfSZDK-@t(;N$h1zC7PJH0YPM*B7G9oIT zDM#Ee*I9h3@*UAt^Ia>eZ-$B`j2>h!G=6 z&_co@vCGd_BPIoGC5GnUQoO^#Taqc)UpX5#f7COJo?X0l)!`FN&RhKq;*AH-O^9Hu zUC)s>-ej!V)Q@(t9!+aC@d)Y@H+2o4e|?{tcFeXwpedti(erX?W9JOS`P`+? z7w1zv2fo0yD`&!Y2{8nfGljC7Ntt}1ssbjVQbeK^P6EU|%d7-z1)~AZR!7pXiO9rI zhTSSOYkpQp&Df}Z2CWX9=fy@P5eX`NDjFvbcmqy8`58rEqk9z=HJ;XYR*R@seSi6e z72Z)NJb1fc&ei=9Jf&`jTm0d%Q#YaY(!ZgZKAS|-5OhX^&5YpoPYOY#SEZfYf zcgy5N{`0`hyxUv0-JALii_0G|Y;tVul+@I`IN95O-H%I8w!1jPzx2!HtNu7brAS6S zKhl5rmbA1j*gH5o4UiiSdHcZk!#ltQV?`V&&OU)q&jn~dD*7S7EyzMhWsb>tpTQ#w zBZ96)7)KGMgK)bW2n`BpS}Qo(r(V;cvBe7+e@;z1X`9zF)&m&;cGvY@Um;IBDc-#r z@T!Y<2S{)bgu+B8?aD~t8ECU2{jDN834U0*a|o?d3@seh^oxjJbBz@w4Jz)=`=yw=!7$aiMs}O3 zcB1KMhkhmto@>?jk?n=or(_KM*+ln6AME`Mou<@~WuNR*!R$17gef$|D%O3upeagTu{^fH7-Ph-|QF>Z-5bvtdXS;M#pLY$J zNFNXJuKIJHmo7ggUx+?}{-Y0IKPkHg>;?VTuTLZyvudq~{?juJ&O62nIO){Cs-0-R zxX*b_&F2Z)uiv+JVvYN7hI3I{;w9jfV5y$eEU_`TPNY8c0v$n+JA6xe2n2&6bQE5L z?a1FfG90~w{d@$LK|vu3NfqH9@UAcmmqk7KDa`vi#ktS^F~?YaEIJftMeLu}_4*i5~OVF44VCu-V_&&6$y3Cv@%6AadZIBnk`# z)upIm`l=^Mz*p$W@fAS_feLgFjG_U_ZVXpDfi7XqR^XWmZ3NT980GnUex5t`=RF_n z`MJ0lzcw6T>;TK$u%EI0n7}I2`ro#f{kqPJ74tb>>;GN0{kQcdK1pt&Gzj=~)24qZ z-j&w^?{C_44?~bv^HA*!a6ug@Br!NB0C9}Kjj*F2UKIEUs6pu!5TJ)E0wEyBGe!ky z5=!v*HUlM)og_l?S#yOA-JE`H#>TEn$Czu4yR-4XesJv(zeb4R=h8!I9?Id$0e&-f z4=-XNGlud{wyl079q{E%+52V|!NLg~QZZ_-Q67>gDLS!%1@v8LL5UF}xtyfr>KRJ#Vo#81AO*_Ct%1#VV|AWj2G5$VYq=LuFTSH|ZFJ}F;L-*Q@O&Xn& z^%KiV88s!id&keW$+yoH?rP9rcj4LF81B?ldj}tVXZr>=l9z4R{?5_CdrwXMgMYxk z;FqUOoHz~Hzyn#dI16IDLRJA%C;TK&cnUx1eF$%eKF%v;ykir_6dlgogxbD#7?K@Po=xzsf@MuUr}%IBI$&CZ-;w^VuLHJr zEy8~tg9FBP4aR@%>wxt?>Fa>`Q+*xqtN{lH?4KI%U-WgX!Bc%5Yf$64jHs%*Ui zW|Y5y_A~SyVl9C8byyOuq3iZFB25X5vP3uZeMfXbzi$l_akKXO9M`Mw6YZc2y?GaP zCvbufv?P#{++C2m%pPWf{1{}ZBGe$VVg%K4L*{A8hxv%qNjUZ}QcFk_#%g z|EEo+b!IWU(qmL)NWFR?k)tp^s);#PvjKnBmogKHkwca$IF14Bn}PO201Sl$IQTo+ zy~m>A>1JNwrw;IVmiy}?%KR7@Lcr-Df zH>iZX!<#oVH$xI!VdsJSmcd{7VOY=W&%J!W=sgsB?g(UAs0ebLRK^4#K^t9gEA6ZE)&!`STom_u$?WC-&}tAM_59 zf@(vo3FYJnk&sK<3BFz=89_qVtAW}h#6Yz5lnf$1Eu;==fkLpxeeM>c6Y?yWh|6|Z z-4PGzuZKg%Sz!N#UdytEz5m+X*<&X?|L$>qjCJobe0U%H)`n$er*f{QvF8?#%=L9& zGpl6JF_zq+*N|;2sbl-@fFtzkfIH>8(@2MfD|&Vg_$oSr<@EdN*Z?uKYp^3 zZnED$Udxw^QdiwrZiXQoiCHF#XJKNFM?sT7Ey$`(FR9V+SfU5G^}`hzq|#zi#&hY0 zY}E33G`&o(9q{M~?@i;y`5@Vo;xMBgWi!NKK7b(#`kLd9vV{aja%ng}rG6~n??-a! z6XBKEUl7LZ(U_Dhm@*^-<{t1d_N|Vsd_1($XpqB)c4_Brm4DlJwesH+*{^()uV)-T z#dzX(S6F#v8kboI`YJzoaF}z9QRKBVu@cDH$9DRNXCfN`(y9YbDf>U_B84L^Ex*zk-Y zgQqID<(!iRCvM}~kc`<=E)>l=m&>9$_h76~O3&1N1KM>S0Aq1N>hj))7Y(0Q%hk9# zXY9Iuy;cZ#)49`Y+1E)7qOf%^NR(MOIvHq3LbQ;N$;XQvI1wxabro14a^Bo_)6KT^ zjT>(AsPk069!go%vKR1LgBYd}g7-g#=SRXP=$wGtNkxzEqxVtGB@ufHtcK;qs*{&y zCP|IhXcTOwM;lY@DTU0E_qx8KVBly)*WAcr`N;p?hrP`I!w;=O`oae6n(Y(YId+=2 z*XPB*S4ZJJA~!Ewt??dD4_PH081RZ>e;HIw6lZ}upy-Llt3)8Bn50E7OJg7n82KOQ zZ_Q52V~M1Mb-j@ z& zLr^6h3}JIRWfqgRmoL1*O|ZE9AZQ3-C@dzhl%OTZ_Z5S8)RM9jT}b-`Est=*BK2rp zy8})p5q$s{2a0fyUe7O%G}WjXDO_}rWPlRCNn@*fQs^#{hWYtA(%{1z1aYcVWSfEi z5yczg;+j^CllGyP{4gTHC)CoXqdwppjQ2O7NKoUL&DF!M?9Gq!@9pQ}7qJdH+)m1s zfR3QAf(H<}aWP&!^-;7VZjoTDr#KRnPluG+@CG-7$kG-Nbe7f`boxuNPA71W0zc4s zz)2LVUq_0Ra&;AQILK;4L|ae<5Xpcs$&^h9p%--UVv{L9P!kQ13jeQN1a)pmv8I7_ z>q=7H$hwi15E9i%^w#qTiHM<4dv$Wasu_IL{Gs+jS!2PHAXBMH&;KFkmVIAR@_pH@ zvL8wqEBT>p+~Uri7mvF&ZgHp1i}*Y?b`?|hA7m>0SUD0oR36;VZL9buIXLG?cJ@m- ztnwShkLA3SoqZ%nz%z*_sh-#)btJ@*1S6v$)Xc~Ss8YBlWqYEnVkR^nEi!#nyT!*5 z59tfY!BucfjSiGp!5xpTBh?9y^7ajSg-RC=)MXgZcjNfBfZp zzU%!aJyfOF+8j%(5D(8p&(`;T#DI-FgGDk=C zi)EgC65fY31szrw(peL^W$CQJx75Cu&WW=+7ai$(M%8ujlQ_fr^;0ZQz=Y_JSxpD; z54=bD`%KUUK%Rix8sd1QEZPbmlg5% zbncA5XV;ITkAZR|R>!&OC`3yK{|_!mAdsixT%kRgca6>c=+9?Bp3~@bDCG~!b=+~r z0MAa?VhKNCnFomI)#&7!ajqi!1Eo&Ze<*nR$PDi9M($3X`!L~N+9n@@FYXmeczam0oaOT@-9zjyDBKDCesTw#8x)2FA( zx7oYTW$nshcaj~PDzG3~8)0*n735NqQ7Z1eiu`fy7);DT6s>>Z*DX{wabJ<#dc0F}(;E6CJ6A5IvIm zSKWh6@8~up(JVqnYx@S-Lq;(ziwGGd+EP6=B+>=vP(8bE`DvQpsMCP$E3aH-zG;Pp zY1)wr+Z7$ansddQZ&psM0ppr;L5$Ns8Qnh~nklB1?11}Uj!gZwf^W1hea8y6oafqN zYm6-&K=%Xu10)Oiq&^iFOwuy8eN|j=ty+>)%Tfz2skp@qi23Sq!I3eD|Dd?w>McP$ z2!t+uQ)IBngzjMmU&XZwc>GykkB!Ha7xWEsl6611pZ&;Z>th9zGLL`De~?2QgB9n) za0g?hJ&~!0SJeRysu>iF?OHP^nD&B#{h}#O*aYw-w8suV(e3HI@E763Ra;#T9|oUm z1={%6HRki)ol&P2@cX(rX$Dx!(C(-ek3EgAJ}IGoyE6` z4K-)<_)hpcgRv-*RD)(vwIX~&4m|@hxDcy{Ee%mf(}1Z(G7lz&T0-j94y5=_fo$#Z zo$!|Pvr?og=_7Q71bpQX&*yK(x_|+VmSyjjSsmUlypUh^ac=I%WpmC=em`McLcjbD zF1(Z#x^&D{4zswF_^d-&8~Fz72EK9p$-*{c6X0jMGN0mvYVyezu!_m%qmGtEXm3$O=K()HA{HJ z+K;D$g*dQ}SFSF&zLK{D>h3)LNcQ+66DAxPpM7LJ;L;mY`@@b$5vvXg3EyrC!Ibc! zcw@V6!hqm4!r>zG0FbGkc_4zA+FB$kz|SEfB0i#dJQNisi^!fBqcq~b{`(VV7&DQv zyJy(Vclj?PvKbpW1R`Beb~U1G;?@)FVL8~3c5HCBt|_#~*6`1ipD-RX>GIv(WQC+T z8PY1LxpWIBAnTAG$#mbyA|yIOelg9li-6dLJV!q7eu4J7+FtFE5`& z>Kgtnn|fpIgp&(v@3xeUE!oaVFQvc#K0+NRr#b4qxVe%?1unyzp8}UP~%ouTEildo@V zwWKtw*1q0XhtKQ6czrvEE5_0g`iDyF**a8rGr)|P&1%C2#7Jyw1C~hBL}Y=`Jc#2K zD{|)${|4`3RG-tO4q@G}8-B^+MMutT#P))|PoBY-`)-<+<>WQ!K=1-|O%>3g~rt}6R( zUiyLDP8ofc3<(M!g+C!9lGyGHquDqApI!&rQ$B zc`;kt{LQm7&P*(PzX)5ZoA-p6H3QdAS-v3qS&~iQ=MH^I3HFpH+3ev)@K`>Z$Jspe zf1DqqGCaf}>B(%YaZ1!5?5i8=)Q>9n{;sCIW(%SXLu?rs6vA^&9(|=P6MH6tGFekP z268@;oS2iu5L*pR1nEYyP%_PdrIFe?1G^|z>lNzl6CMheK`&=0*+f*e4l+M-Yan)5 z_Zxr*24br96rN39N*Uu_a(&61`ztH|WjMHacuAf2!+$-x<%<&6myXFD<&JL4iw75X zS4L+{QdfLbFy*(mdX*pQ+b6Pg7xtKTA!`24z9qyv7w|%Ly^2x|YN#afrQnVwcAPJ@ z>n?S@!cNS~N9vmB3V$I9M-znFF5#F!Z}eT_Kn@hGEMm-|O3ncLiH#(X#*m{v;o(Br z1%W0;uTM(H02={`9+%h<{m9N=QHz2aHFTa8^$(7~us8xlo##d$M7A-0- zfSn%qsEhiVVJT$IXhcaRC3ZJKncIYt1vHKhMi~S(it;W};&4<+Rap_X0hqek2nJ$E z+cgSI*Ok!a@E43 z3!W9;CwdsGJnSC--Sso)O%uDkcxl=P^9vS#I9<8rvM4*D>$>9J{L$A1>$l_<MdG26Y9z_}HBkKOb z4to>~Xg44Rdn+9nI2JNCW#|RZRmTT;{+SdUx4@?Em=ZNkPRO(^bz=eS2hjUp0Mn zxL|zIoV}i#e%re3kBy%D_Ikd(wR4t7<-grW_1bXBvx1FL3;}O%-Sz>UIpSRhVXXcX zoey~r#%W}mLn=Cul5xN<(1mDe%h)H#DuDk8 zn^P*!I4I*hS$)>CHnthpI$=_07dD8$ zpsBU3^0C*Io|*M`zs|fizMnbsV!oy8h$gKHQ~8gtKi4@QvJ}P}%~KVt!B+~EHYa)q zK{H>QsRlZCfFdeB>xCUc;rJnNM=sP|M4pk&OH})?AG%3!So~g5L(oko0jT;xV41uyvQQ}$o_gf1=d4!`K`P`(gNTo(f+z6Qi^1Nq(>7~_(NBKw z!^7p4)=)@v^i1f)jvP6)pa4)S|u5{KEY-`j9h33?x1BGB6qA;^Xi!$sR0-|BF63`$m4wHuCR}wwo65 zCVsTbU*?_3Ta|k{&vu=qe{|$N|6n835~Y35^j(Dy>p-|4p5$6TjFn`f&WRn6Daqi9 z@fjs5#R#5-QhK98oYM#(e~}0kCzHYVFsN3IQlTio3%^T*x4I!@4;d)*eNSM;2U3yF zVNniJ@)@-#{rNf8mA`WDK7Qojiu<{F_jwR&wRQz#%UAPra<|#1_`jLksoAIGcW1so zyZGIL)2s5PtRsbFbHMg%oQX!LgWNBIxj08MCl^l~2>9v%u^tv-X=ZXQwk zRz2n7v&f2T-LQL4_vm9?y0YL$8?52s;m=~kb(6aukLzBs2XkzP?cNY;5+wCV>X<@VNxf&y!xEGYtZEbXD87%%1dqOAGwrvkSClMS{ui2@oD zzG)hEj;Q0}d-cN-`~0uxh?vDZ$E@^9xBu;tlolhBNrMOV>D94) zo0iSvnl)|IAR>%vMd^isMS{v$7HgujE~FI@WRa-SPsrr_khh!3MRoEr z0(AoQcp7BpuE{{nK%O2jEP5!JlB=up2p}OG1yx01T`DioIJ!R77Pbb528UYe;(4_L zQFaV2q5kXqUIJt*4v)_&UFQ z??wE`uIK;V#v+Y+8ZTB+y`fi_7X8TQv*xr3RtcBa> zM#qif1!*zw_<)H3E^2|fQtbgB%6&`ue~BrgBBG#MP&a}tqSH;jhI&y!ALOH>AN=bg zDuP;=g^}MLQ3CvjZ`xX}%D(((?*Hn&Pd~j^0L@vr?TRw%tgVZ@@_n8lpExTIvhAf0 zoqHpV!MFosplTwKh@5YX3`FtLtiekVzw;9`5pB7CmSYH@g6~(GRi$V3r1d}Cdkcm2EEGFJ!F~`K4(ZHqMI|>=ZZtBsDtqpRkt^Brq&vx5SvL}7;C;OO(J3jpQ9{SaiqFDWgs59SzewnSQB=}@|{y8mLzeOBk|_7(YyzMpS9GXICg zQ!6?=&%R3FYgwx~ZqLXUR?4$%^H;vSnisP<^jZD#%P+5FIUFVcStw~a9nw-_H0Z;i7sh^r#yBBqSZ3!wxOR78Y&)z-QX5*g*@ zERnxeA4#9x{R1hLR;$UjPo_>_-zp>CD!=+5e(S>*8EyN;)n>G*Lv7&a+0^NyQ}K# z<>3SmU}q^45l{;A^MS%g98@<}1vdZqokXwjm}{4nqJ=`#FWV$<1@Pi@*wL@Ms$x2C>ebI%{^ zA@5G`P>!tLvziC8FX)3mw< zM>Wif0uL~*%HZ}%jRS=WRvCCy1A~fvsw(j8lc&hwN24N%0stfX8Bv#vRf+G2wv-{} zQl%ME!ih>Vh>-9$lW&kk>9gvq4FO+<@0=mWt$eg=UGTdz_t(G*|Bo-Nrmq+ zEUj=azEV1Et(Wazdynw{Y2f&6dCGslJ5M>e!6t$P}5*F$+!G37Frp!?28TN z&uSemn07euGyk<;uG+en|FIT{#rBrH_4Za;;Mv#L7Ogiu++$ihd(rjz?iKs|UT0lC zzRkM6?zfN6ugkyq;RpUDJQ0W{P+s?mz&}l;d5NA4pkgJ2ALR@=hOGaTez76)5kjal z&|bwFLqCJ~3u%bMI5SzKx|cKbog0+c2;GgEYOL;#jld{{joq4qjR48h-XAr~!pxz_ znrgO+Y$&=W4LckFpjs7_fl(Cv!rrjA(QdCwAfUN-b#EHhe`-eF%cSCM2nf>O}7ni>48n7v?VIQUSYev)H1zleBSvA9B(~VrJ1oj;p{7T-f zjUFr4&Hm$+FZhp9^1>JUO+o&0k;7WZGQvO1Om==Z6zviMF3kQ!W*}-YT1Z()?9jO& zovN8if*^aGU%VgjIu6+!C>9zZ#rE^hKi~TWKXBA3hH%qtOWMYaO(Sf7u!HGqM{dD~ zZGQcAeg-I0>dMnxusy+9#z|cuS!GH;>Pr$7;OC<_tKMF+=IqJb$ zoxg2$*GT4}HH{}^vjEHK<|Mmi;fM-J7%SuID)cdV$?h&P1hfnT^H88mC2+oiIDrxDgV{Q%`|VVYM=8%%~BmDFb^Yb!y+L1&T4mHEU8YGN_i>-`y47M2O<^ z(sTZZAPUlBlB{hq7~`79L!XIndbVH#gDM0~HG&=Cl?N1}r*g7}8cn|8O?~T#gs)Zc zk49LV$dy_2j8x^RJKIDooxJYg-UZ=_!Hb?8>LC-{euR* zywcWK{-}3q)V%SwPH?7ARr1mYE}mr@uBPqnlpojdR}2Lke-Au9>cFPr220)Ko`>rJ zFp&_Sp_?RRO*9$0b`-ZEF910F19znZN--D~++ zyiHc`5K=q(SX3X(5BhlUCd81CvjBcUKHekGVpG^1)+2>ayu%jWVQU5?-97p${I&Ud zUdR>>8Ne#j_)#Y=yN+tTFnh(9j9c;pQh zb+pz`Kh-+QZ@fYF7U*A`UIkAV!AMaL9f|rreluw;#?lwp8xh|VVXa$RWyVJ2k^;(+ z1o;hCf0hOE0`MartHGd)V4{Q%1mXJiyh9=NMtX;OiKIq=5glL}t`VdW7!=I6;05eB zzzkG?!CPU+xw{IU-=uz%h7IaDWG$ro#lvgWA!*ag5QIu5u$Bvh4%s2W z7?Qyn^*~IzMaPN)K_p&dTM7M%JcuW=7pHA`Z|t*Udn`{KfA^sG_Qho-{K#eeux{fP z7o0euT|RMwWgX60`fQ+wmQtRV`*QXPWiStAvs1G-;Md(l>^yH{oHJ&~OmTLyY&*4B zr3>`LRyWZQ0Qy=JO2&M>EGApOG_J2GxfF4&- zn>aIgRe{r)j8RMS5IVpkNy?J?frvVqkvr(gR*|Z~+vMhg+MQ-*)-VlAh(atICgLl! zSRzajD+3$kK6}Z#CERIhipemBoDf7JsYc$SuN2*&OHx zX9v}FC0Gk!%fX*aDWZhXnwpC*(5-8LEfq14jiWHJ2&oqwHpyKPk)I~wP-sxFB$!-` z6zCFTVsSC#R{_@9N_Z9Hi}AaAf?sau%h59H4pV?d%7=U4<4Hy0KKApe!&n z!#)Xv926@JPsE0RB0foSc4JPmvr`r(P06mo8)Atx#Kuc5Fs(^2FGD?TNCBg09N~)7 zV(eYNUU)c)X++nHtsfg66^_$kwFC!|FIISj#odTvW05f-VR3P!91A6Gf!GCa6j`$9 z^hD26!vGLPG@}*EGre{ub7v-xuvMAmM@BrK_00KPzLUSqehXZlIy^sT*tkXfojn8N zd-RBp>(S%(zSFfjCZ8%RcsX+w|KkY1!e3FWgLB69OG@tla1d+D&lz~Pm}cF(H;d_p z`D<9uac)k4kDt^~Nwd1?v4|c`!G3<|?_l z0zJqk7f;9w(iqZGMJT-*H8T4%X<+}}$=$nlY~LuMQQP?DO`;>hL+S(t`ZqK;^hSAR zWDh~=Vt5ZXV8~{UKs2!@i60^Y1Ev+TCrTr(0BgcdObCQU3XVx!5T$jk;X+xfvt3$^ zzva!yl=xkp@E2=`zIy(RcaHP-lpk-uaXfFyy7_eikJhO(<_1d&YP$4jN@VP@m=nM<<3nFBezsNX39Y-dQ3}`d_Wc(2+dX~g+^&1p&)?@?*W`1#JoJFcVp(Uic5Pjn z)V5_;>><>9fAl~@i5cvmeu=#!L4+a@oaF^+(o@(`k+0Qga584W{sRLfxue1U1Hz-o zSy0KUYzU+j;_aDAcA$n*L-;iLgoVNUDeORyNW@Mcy*mgk!dPNL98(qgW&34Z_0vLa z-UE_ymUrpcp zXMb37=z`pQ?}FrZrmgk)@i{c7bY5b-249RWq%9Bh!N{>b@B?Hnu!B+*7nV!~)&shO z#{=|VlFMvYsDb7~TLcv|8$!RCmO&~#rqRT@NL>=zpmI>Se^^+qb(q#o>`8zCbY=PtVvITeempwYn;P;6h412WL zxXhqqPk4wxBx6!tXlUi6+Dz_Fg>0xY20SK($yNB<5jji2nv+n<HvOOd;nI-|$rx{f2msL@ zVhntMn?%=-iVTN=23i}FNpNK-I8p~}8RQkPW%Lm!)y|rc3dicF5QC3>1toy}5BBWO zKTq3Qc>1JZ%dUJ@xV4mZDql*R8H=8>xp)D8S7*#loc6!5*1?%=|HSJgc(oa`)3P@l zDw;6-8NifuP~WP@wJ$Jfv+&l}O}~sBguv2>U=_Ftxw|pgW8BQ{W{B6W%+)~RHE0A# zr1&?y83Hz;agj}4-tszBCHjno&{8l9|CHM{S5$1?Qc>Z{RvM zGA}G(Bap)%_>cT5&NrkWxdOOY#ONR|HkcTeL{D;PNib?M`6}*|bpk3{EiPQHxa-Wf zvOMBL)E~dP@e7`_98AP$%&Rupn}EkisBy4Fcm=7Dpt699e+0$oL43e-p*4-NdPf?d zgNcblM6&&SSNRA7kCWZoZw33KVA_T$(^q`-%&jHMKAN7eaUs7cmzB$Iv-ggiT)blX z!gr@kI#bxc?A#*$w%ZxO@6dRjqk7L;Akdi6_zIf|ov6ra)>3ygV~#qSkbin5_KeWu zlN|_+G`|e`GZN2K@Hm=g%z)I4InXkZ_}mGZv-8JJKbAT9c+TvDbzRM;md!c~)256ONh;O;bAewWD!I9V zC&lRm3c~q=Qzo3~;1313V`+tO?COewj-IX_xWNSyi?%WgcDSzlKEtn@m~?=b6W`MxcRSWT?*8tmy=f}VFz>=FQ`5UG6uKXQ}Nfe0=U ztP=rI2#PONXxL*Eqb6{KM;fMEw>;_g1d{ zY%a##3FBUfafg#nUm#PAPmbG&aidfu#nNdbFnasIt5&~mux`z;51stn|8D58<2*6= z(nYt5RWbNoy%r7Ww6OjM2}hKNwna^x8m_|VXU>1{#OR};Ypfo=9hYpxnX3!SDj@I6 zP}&rdEYyXvN;{V{!Bx4T$={5UMcScm31L#b$dJaC#^fO&$}rVsbsfW(UYU`kdy^|LV z8o0Pma;a~Z9nAMVc)8@9$vQqQbt+iM5#wjyS+V?!lGg^T7(8fc|3S<94_FS*aN1Ld z)KudHUPAq1NKuq<2G^--YBn6uWE7|+6hf%UqPhnlOgxUXw(NCzvCT`lWh>AOuCKrK z=Wj&E2=KNAsC6M9K(b>qUw@w(f6EKD{7}+s;lN2HGp;XQczxEw z3H=xLS@^@|#XI-Uoxg9#(n+h9=jJb4={w=%jMVMfp3Xt96y&`)Zrn?`1+N4-duDG> zopEx)@zTlp>(=E@S}4CXFFR|_oUH751T&&7->4grW2kCB=uYIY@yHNN4N!zZXsO-> z0w0TcPobp7f43i49T~EjJw8FCqW1RDB{wl~GqwRmDcEI_2zmPG*SDrEsywjZgSlRJ z{Y%I1Kxvg$XQ$4^et58T;6mi1PhK!^(Bi(mO0_Rp*K+>dd!S#d&t$(+IHG_BGe(_Xc-J0f>{$2AEq_B#zg|_jyz?7MZYLtD4=_$96=E^gVeh(1$k{58 zFwsKb5*Sv<{6KDlx}z-0>3Um`iiE-{Ahd}5@=yc3Qt!ZcW8ulL)9S9K?T;6a`7>HP z*Iv&_3ZXc23jFkSC&y?y^4P~x5#9~*JzG#&II93#5$BD~jUx5+O`+kTUZP07SVM7y zjn+8(v2p08;OkTHFPDnK;(c8=&79B1+7>BgeA43grY!n#(~1Yn+5F7Ob7%FKoy7LB zt*)={Km9VMqg==?#w}ASf zu4f#A-@))g86rr~6uIliwu|iJ%NH+R)2UBwH+F_63KE3($wvWG{Jxr13DJx0q_qe2Ra z$#d>3Uv_UUlZWN;L*KJGEnAjeoAHqt6^%@>t-Srrtb1#7zN_HwauXk!&APc_-mYD9 z=kH-`58eko(Okgm0>)*~0zB}Yg<@Y$AUvzp5}6&S4}uHSHKI>oWBR@k_q-&&*A}s_ zjx{!D@P$JAF|=>TGmyG5jJ_|$_ZLL}kO2CA0MA1SM6_G_(f5^Te^IoD)~4@EfVU0< zZy7YJnZ7%CWP=7NA7eyqb|poOF7YPvmk1l;d}L%B1OAnUl_C~@!hc=2CW_* zfEe;e-)MET&md|=BiAc(lZrxUAPlk=Q8xe>GnDoa>@uduu7S2X!dk4=R70>cq8!!~ z@)DCW^uH;-CFHSQ$_V1T^gebXBZ^tY$3=tI)DH6UkiuA4jRG3v=uwlr7>P}e0rP0K z!q(;kbsN#(m}UyJu~h^|?(po*{2p`rcTG*(GbL}=(Cp!vtU<8ljie^mejA;1shqzM znbL9f^ks*Kx9&VNsaHl9znqhWLl#bJJ81Xl%x%Mlt{t4cy;D!VxyAgRo8NC|o7S}x z(wQv^Za*tDV}<-v`}!#zVl#5ux6G$~e&Es1>?+nq0ndrtOE`T(rf{4)!pAsxV2veL zXVp{lL`V4jLzwVUVw9Tdy&IlCdW~y0aA3QHfdknc<=0AA?$^I@?89urTx5wT|#MEdVf!S70rOL3`Mpq=Ov>L8$p92_jH87L%RZ|cvN){ z%8uauSHts(@lk}{5%M;4vKM{c_L<%~C8c$nK@3h$C2Hiuo7$&?+O{4zuyxx(c#S?r zLqF_m#~9n$$JqDL&&nlSuPZf>5T^s|Bvi#vxI_I5+ZE0){c%(JRI=jd>pHZ3-U{`>7CjSnU~ssiPLR$ zrVgEv3CY&6_8lm1`g`cG%T>^kkvHgP z$em5ez}5rWr&tQX#$6ru8Z^{Tp8^`f2NFjLmN;U7O5Y7oCr3p|t}EDb{&VvKdI z-cjDpd+VYx2*YpBRR5J~0v;Tc(Vu zew9I#BK$i5`$5HN-;Bbcue#0?LVF(HjH?O2UIUUA1HeuIu-J|OZx=r{7_e=Nk9@>v zTfnp@;QMmE1HSA;6?~cWCjUy_U}yvn<^YO}1I8o%nPex4^@g?`;*w9Sw>QiUGWnzV zSfw{R%{e}Tf6rdT{n9`@H(Wdyxut467wRHB z7_UH1Au}n8e7vEnm4#gmq5~UPoZmVp`TeB)4oK4V6{^cWcWw>q$@*`d$zSH1%6VHZ z@U(Op&!36s8>Og3C`0M+FoXpGo2LLhi0m=4LhrGsjRD*2V}ipcn8nMi;?^zxm9f*I zKLZcZSRKz2kqyANA_5E%y=bGj3lN8zx>r0CtT>r%O-8VXWJG|YrFgbH6AwkcUm_IO|c%}$QmNc4w&9VB3r&c}L{%m>cetD~SJf51r;rTqqtl-W`}-yH3`CcW=x|?KgjZztlPWtNr(`Ow2S~ zGK|f+_Q`>RY)T>j&!7dte!(S!`0s_en5!K=KV$qMQurP?JYELg=SaP3u7OGM{1Dp(H%4Jz_$=7#M{plELPqp4#GN_;z+EAb-@@1 zssRoQKE;%r+}Ds>l-h6Jynd-gH{KmlsLjlH7gNYBWKM%hFz5w?m`mXlcJRO_*Yd`& zOJk>AxwjvK7|kabhiH4H_NaZ`TF3U@Va!EEFqxq(jH?OAhEAa`bWwZ!BK&{|(KUqd zB)J$=mn`TYg{YgI>_+L0=? zl^Ti|f7PA0;X$`q8MA)K+TEN~r|A%qp3=u<2wzfql+Su)6HIPv_m|H=fVE{X%wV_f`ob z=6|tvy{|R}3{KseXJRFYQ6y@P6 zD{j!MK|28h82J%-!pR>hRWb@{Imuq`pdjSSmKZ@-s1Y#^aO?;%&$gnmpz6&}VA%NQ0D9^+$@p!pVd9)w*PsSY$Tu95L@7N>n3Z-)OP zSq;oa2!2oLV1LX$l{|Omf|wR<|dld zL%wmV4<7R71^lpewtj}MZ3E?fxb4Yt(}e{XJgYfw4N4%{D8_xy@cSQ5`h6>8vl1p> z!MN=;;3SqpcM>noD2qzxyf&r+pIbQaIj z@6|g0<9oHvf4=(Iy-xr9y-ujMTs;SjneN3LFky`2F7sB>l+}>1DNiouBwQ7w43cl8 zzDz<1ZcpZ^5Qf&}E!wfPSq*ZX!K+eIRt+AqYS5rn%zMyk{jVW|R}aEkS3fsMqHGyp zuwggK!U+M`hEyFC2w5gXdz$^cf=ogBy9|b>-=(YEaX3J(AA9eRo>^Hvdt_&e_v_=q z``d4jQ zXVI4SS8Y!EeIuS~yUQw&Be@=EQwGMmUVr0yyb)umZX4-nlMm}{%vD~ZG{yUj8oBB{ zb|2PvhcZBIjJDBFwn?j5BI>fPM%x&)ZP01q2K{~8&=x1!#y-{d8@r&iRo!qOIDGv+ zc9`x1ILnnK?7qN(wG#auh)2p68T=d=7daZ0^5?e>R+h+JZLi=FkKGsXf?;&0zn0M) z4|u^KbrKI5{PoVNhcM{_y!+t)dN*_jUj}>^*pw&>UzGo4mBeB=QDUl<2mI#4?F7w-~ubkpARTEjC}mh2V%?E+u425j{Ed> zR@MF(4E`Q=Oo{PfU7!ED3V8Hhj8h-aOfjCBG#)%}g0i0#{V#Z6Ehfa?o2BfRBW&;v zrE%guC0opo{637@Gwf@}b!}kP^+^3XwJX;g?Z$RbwWA-kQ$OwW6XWs`xiWOiD1utN zNW5p@bXd`*8Fy(&j_2CPQ!JiS{M2~pdZZ?<<2}XVeN39GEMybK{Qv2m!sa-W@NFAq zq1?lERJOcDUp{nNrdT1|24cPC1Zuuhfg}57- zXeKoVQ5@Z6KsV?S$w8%Qk~VeJ6=zqMcvNXaXf5y@!xlUzLMs(>ES1SJWYkJk9p-3P zn^v{sI<@Qfv5RV$EbhZ7akt{7`;;qQv?HmH^Z~mFJZsbzG{tC25(_(28^oeJDy?C7K`sQ(EqmhzRV`Z zBR63em3|lxMk^=iFqIRk&W|0Y7!%s@d|CsH3E!7t{7g!hR?45MiIDHx9woOc*xh>` z4h0wQR)vUih*Jk8z=G&{CA2{QqgSYbSnW+5VK~w-fo1xMPhzWn-Vvcai+38eXW0QUXS`dTC9VS( z;rcqdjxp_%!qi-K3e-!67mYILILwi7&}Dx6l#8|m`7HZm2fKEUpLXM??oxkPkJJi# ze>h8n?lag^@t;~z*-}1dYpYyjfA9u(SqC@P{vK~Ye82^%y}C@Dhj+M2;BSqTl>q{? zkPpCS5>Rz6(-a`cDMp~-KT1Y)0i&2Auc&OPT$Iaqu!M_eUEes*KPG(e_;aB>Lt%RH zTzE1+xlT?_l*yx(Vt_*ziwnnp_+{}^mto8+ZIhLY`V06Q=ihKWdy${5tUOJxz&oxp zS9PYc7P)D|eWVFJ54&Nn!9)i*OokRh)uud_$_Wap6v`Nvj^&8`2g19zse}I z$dFOg#g&Qjf%E6}d(TOu)Rk&8yw~uef%sJ%)=0#`F^25XsuM5g<%?J<-?50Lv9yJJ z2TL8r(&$Gj-8qlWdFM03j z(`(qkwyg&YXx(;TW#z!Otq{U7uvOcE)n_6b^A!GYIA>G_11u-33KZ9as0_GWlS@&K ziiE|II!Sq)YzMKMWzd72 z>JjB9z#?8m5I7lJ3{EaZh!Ze68(p1?&;|0KTI5E|ISgXtm*avEBPjMHXVk)hFamQ3 z@(P1{SA?8JuwzPJk^dmRHe#t7H=^t#aBD?4eHhX^SUun-3=^f$6Tn9pp29KyFoeN7 zI3fbZ9kWOxhKA}k*u~HWKL_(p)^}mw9)-PQ+K0F8EWaZ6Timz%^uEp7MzrcCzw%$& z-k!a+d%N}x!cg3N;4@`C8Eey#zVsf-&d%Q2gC!(3#HJcN;F+=>Z8|lu_J%Obq~}-( zU=xUOcM$w3GWqJjz=5#?<8LMppg1N=`gy^-R!tb5M`FU18q7W^rSGDC-Dmb`+AgAX zS4^t!qP{(5^^R#1(XzYD4$Ll3PUzAgVsOfw=Xx=g*r{Pezf?gN_DN^eT+I`-b0c0@ zrppdxIxYVUZ55(z(^G91q&L-NnhWmRjJ8sp2PoC=t8Ux!RNHk{0lXK5`?flsDId1K z@4ED^IuntMMy<@z#vE;@BpYzgRkUq;s_kvLL|v@(MBDbK+Rov0uT(Fg?YXDg-j+VX zIev&XI@n_FisOA3q-&sA9Bn($wpO3tT04)!I;cm~6=>V(xUXss&&hSM-Y=rI=t1cN>`m%Zwft9*TB!gjO|Ezw0l0 zCf4XwvzcxXp161%RPPk=>&X8@1X4u&ia8J!(&s@`N#4cg@n`7sHO)uN=?GtV(w1Uqk+f zE3O|Z(eiX#DSMB{U~sr`p1f2cKXns%nb^bo!Cw&fTqyn^4`t`<(eI1Nj4aXNlayEu@!wa$$Ro3MD;gt38faRKAl z&|%xJ6pFs~->arwm_Gf&H2vR0asW#i6yMwb($S-^@HUE$wgN7SwCB+SLj`=he56RJ zt2A0b1vW&36Q*4xA-$rL5pi`@K+#>6K?-G%!oL6tfuwWC#CC04$Hg>l(x^e*VBbi; zNF5-Q#E<}@g@z&QxVd+87R$vHNq~U-Oue z)NxXW4wE`2<#@d2K7QBOX|Lx7(EZ!CG4quIx_#R={`Hl@vqQ=*6%>3}Hgu?X&bA?P z0=f>~klrb!!^BPPh$^Dibi%kPfN{Ff?iiMg;5-ort^;ND}1? zOP$@#_x}nzC{+Im+@RAX0D;~j6P)lvBKSERk^V8<1}`=^aUd!)AvV|W z*dcT>s)%eg3SeeY%2OOd{K6rG7PjgT#>X{n92OlG-KfFiN6<~Eq5s$ML#A@*!YS+< zoC>Anf8y*7-TuVcYyC&k_({E|j}fg?|HadL)T4fL`EejlJ@EQNkEk?E0Xy^;Jwa`$z&mkGknRIJO})c|K9 z1w??V!r+$zf&ey{a;>k;F50}gc>EgMuyS^|Tsgsp@?CNO>e@VGdw`;ByV=R%!+9ry zqHY0 zD~2r_<=$Y;;mQM)yv)8s>%g2wL$i_BlHBn}fjob9oC?bCQNJ z9>HEQVvNC32&zwIh9KRZv!^psAfT|2yOQMP=4mu|i2TJR$XB5tA&HCRjO?FeKhBoz0DR>D z+k?VF*jtQ8j_^PD4<}DzmTQN;|IQ`AA9GW8V{XpK3>_kMN$lw7<*FbxL=w0L=0>9qASq2(aC`HYZP)B1QrqAQBE#SMtF6&I6J#crW1^ru>VKfdjLjNW&h*v-uLEB zIwX?@fsjcXN`MrS5C||*LlQy~N(zJ!N)n26kZ$O`_o5(G0TB@p5M6A5*s<)2QY@>$ zDyyPWl6m=m&V4g!47d)57fo85_90aL~4a1Gf!IDP^oQCAFkPjxN|XsBl|B!8Vi> z>?`Tnv$V8lPui#J_%S)ya1Q&!A}z7H!^Fr$mUFF{gw3k&s+2n`Q4)HRD zBSIK3R4lVCCtT+do(F&Di$NJKHk0o@ea*jf}j>lk+lirZOlQ_z!%A-(Ug8 zQ0(-2Qg0m~82zH_V}#Vh5?Q4X1i{nI@f^y8!)~n`D<9$ijbjuhD410cfC2VB;An0$ zV9U2}*0fzaenSqdxFJt%XR#zPmSkzxmihw>GJb>KR9(S!M;?d676MUpVg-_!sfaWb z9Xs9rvsfAAm0Dds4$38J67PHVw1#rvoK7&)te<21jonU#m5dzW7=ooGB^qa> zm+-lSFbOZ6GL#7WWzA3}_;yAjiJ=HpLUgDO>mLV{v|-2k?YuH^;+383Gee-QKAZmO zqJ^K#5Ftyb9~J|p)KNb{>Y)i%qXEo@4nRu@e`!SE3m6fUPP+?%k%yhQ$Uf7X;7$3@ z4{jJP&G=;DqEDxjgf>#Uq%?xwl`N%8$Y~Q}LM)U}H9;v1gp@61HYmsyPTqmI6*d^g zF}RpPiU8%-iKfv&Tmr9Wm{dk?h?m1wAK3cMH*eu#Cvy z^5l$|mi3x(zHdbSlg5F{PC`#@(l7aLmLW`DIE&R@%|8xu2gUuu};>dUfKY*WiLa zJh@eKzo>xr#fa;CZPLV7$7_WHW;52IRg=WPfObJGk>uscygZzG)~JwMDQ@?&{+f^v(<32gMY);!r0|riR>yq?1CT->$Uj{We+PLXE+PXj5{Z0G) z;L@Kr`>(!M_6j>O&#z$1fRU#s_iNI(BR1b??N`_-NH;)EZXA`&-A#dmHSHFe;^u@` z3hh&PrBIwA-A2JF1t$Ut0lwY_2yO;g$i$tI8JA>7yz9S zBmKMGG1i3RlsZ97N`DIh1;C2{+dz~a4DV=zuvo-*41Uf6L(0#`%LA^c$ec=<<4rK2 zgE7R#lCv;LK-dFeq2%v8B(!T2Z|~0am%n_dd0MjurqtjKhqY!dt|tuYGltlcZ@ar5 zQIz8kE*yGU(549IGD_Fydk>5nFlJd?`C4c#-8S(z-8$?^-ylf!Y&QG|6j*j|o{GAc%#PFN_DLR*HlY}_c&A7SQZW;S{VC$~h3 zGN;4Tp2Nz1bP%&A1TDz6iScyyg4isoWF<>`GF^2o>d9D_4#{aAdjt2*?zJrES+(I9 zOL`IW84e}DKUoquJ$Lq8m z%D_OO9+=%XKfiDGKnQo&wfV6F-#&ff z;(*vPHf79$r6WofF*XmqWl|E>#Z|0}1{8yh(-PP02H4`rVVMH2t4FJ&2w-mEx#;hU z!vjg~MdD@0vRn_p#~ZahS}%NucFE9T<>9UBc-(w0ewVM|BwQtA}ey+7!+&^p(N5oG)DiFB9L*2$bT&t z!u}=8g~Xr+ljanJaUe^T0fIiQ@>-=}Kp+4>?|}t||6GW~B0e6`Hg*yV{-Xx?u`f0q z9W`p<&=x&RVXk3*t(!B$rNy?V`H;od2@|{w3%N16c{^G+>>Mu#ErX@zB;&x&AnsBC zMH|RemInP*E+XzcRKSLa#e)gQ!Vv%>!=;RnCQOP9Z_+%ZIRNbd-U8kj%z|C%%)(TI zH`0O@2bAMdUysdD5rsiwp;!!T`?CFhyXt3mPb*^Xz9aKyA2~96P_fDVg||0n4*=Jo zWx>v|(OHed6BtX)S{p1$$}ws8U)a!%NA{4s$>{*lp|wUnzxj zFcIoR(c350d~0B|=w#hIPoL!MOetR72VU-T)g?9>p2Vq|W z)!J*#=S~z<55(A!f(k8KSE=hNsKn0XR0a*TT|2ve$}6w4Pgnr@;voe}Imh9b0sd$| zCFp|DzB)zIq|^@q$%<%cHbC?oBtim8q3+fwga3+`r>~D^pjTj67`DD}$VZZ{uy~U3 zEhb0*a0U-}an*Dn`xu6>91AJZmge-g;Znt|Y2(-`$Q*2tJc+e!Mjf`aLqqyp-ospa zNSRi^ih-l!HG7Zg&JyzpxR743=5aolj3^E8kQeH|*DlMm!kS7VtdGgt;9w6z7Lbj8 z`A0mM@gwbP*8HPuo#_0xT>(bct6CnC*4)?o!Q9XfS&G)lC4Aw~x_t>%yT;*A)!pEP zmn~+A1X(N<^+H96eBC}KWjyv>IOQC5gXoGm&_xAEVnkg%XZK(^1GNJO4nZs?KpVPx z0Et-F^GVv&IU6lT-K>Qlgv90No&T&ca8!EwD3go-)U1*+c9iu@w01whx+NuLkd#x_ zF*WTmYx=xtnj8DPYuD^#Et*|UPRZ_~C89yQ4Fmo2mBOqcx)B2#M7Ky33hM;Ms2d*~ zTf+_xR0YRZ*Z6>)!Eep!lv-nBh_f7=^D@lYwQ$ge*1$o->HQE6nq4GvEP4n(P|TrU zl40-Z-E?s8-u1>CyZR0s*th?{0)F|kg9ksOKTB7Zj#$Omsu86tF-+{se0E9pNBbnx zz-y_7I8((TvC{2F!!Sr|vRp)S^01g;AHGA(@RkLSqgY5)&40ldFsyJUi5YVS4G&P| z0ewiy=re#_Qly2k1K&Jz?7e|8+DN{9^deo#m@m%eOZ=|AZ^+AqMepG0qC?~xAsD$3 zHipqMERr&6a$m~URD=6c8o`>}_XVSWY2KXY1^0D7Sj~OeCAKjkM`ynawdFOquf8st z8@|-<-?46yl#`SbV9(&L4Ckge#vqu9b&K0~h++19W~UD{BnwO|-uZ`&zQxuit^E>% zn{^#TOY+Gs-Ml>4)MEpCXwZGI2HS$qzl`yRk-lj1K|4Z_mt;CKF>+lqVGui-hc^pT zJaG2|_9s?BK!CVw6WSR}5c=(p&La8#-L8*yjO#UW?uW;hE_u%DP~gnu-i$@Jo&Dk7 zh4Z%>Ts$KH2H(0_$AHEyo*Ff8N{J^d2Qf{9qud)t?Ju1MfD!6j7{AKCQs+Yc1O5=D z;DG=_Dc^~0D8#iDMeuY^hz1Z&@evTAkyoiH@*COtwk~qSQifF{PDlaX8Ry5|Tiq(m ztAQ(LjeJ^1l+0%%MjQd})~2@(hu;ooixn{Gp`+N-i;s{)i`c8z`S;Ly?0XeLA4G6* zLSx4cLDv{0iyC{Cf`siW1I$Ag#S&jQUXpFPlEI0u#$9uqDJ3|H1LHw3W?ZBShN6pFN0 zAPxErw;dlJA6ltFoNl0GL=DO}H*Gxm<<}>ke(Ll$U%+Vx-XYp@Z7Hj-{miBa*Bzn> zXWFeaCrz9jKCIME>RYEFu1;>_2NJW6n7UYS8_5SS^iQbm>y-gPxu0Wq*p?@+M?t1zC-ewl2RwvKn!HnU0m#%T6~y5z2aXvtFn{c5 z{&#lwi!Xj4n`>2e9Y=wtmye@iPvvgZ#!^ z*0f_@Vu$YOkImW2*tSUnHVj#1q*z8+j`&qM3jK&8e8C9k_>y+l0|@`Jz?r1ulsvzL z>QV9PA^=p6>QBqE;KD# zW0-u96>J;4?!@SfQ4_Ir_VKHopU7y_sasNF$^zCUu}$a45;7)tVXH>4NcasR!tqg86v}Uy=s9pccra*vAjyOVVxz!WZNicrhUdD)1$Husz?*nDIO_Xy3?7 zm-9^9(UrS)t%S?-ETf>|0MO7MZJMPX)~^1*mZaOan%I)innbEF2gW235c|WS`ym0G zj~$%T%*-yj{7@5|GgQZwH0mOiuxGQEhHTB}FUW&ZdY6pK9NKno9Pg@SH&%m6I_53U z8nBaJ?eavg_#Oj$_AIalvrpIl7#fu}zkmL+4A3ZrUy&{9WZ2u_?_}-jT^p0pzN;|X z!qKT3ix1P?xDmLExsj!@#orex@!X(L1+k#22~Y4L!B6*Bs?k|8{|M19z~7&}J>>9c zY_}6@j(QyN=-07yG*iPCW%gf^`PPnJBXG^xtM_Py4d++;{%z+qX4w9Cn|3>wckG%v zCwuYX<%M0l4H}e|T!g8_1sCkAv=2kAO`u0Z9Rxw4mzI#|0ZAJ(LkGTD!GUjrS2P?# z*i5!x3*dV+Qo#OcT)WW*hfeId9+607s`=7~FW0@zo!<@eVXq97eP$#AS}D z=6Q5#)c(N}i!z3=+)aZAZ_Z&w>A5q9JU23P)ac&5M-*pw%g^uDbwB~X`q+e?X>+~Q z`eReOj_TBDRM*t8xFUM8ch3or&0*>7+Gl3APwIuc&Xo9s?u>O$NbHVbV&2m+?=3Lz zjewpn=3PLVV_@KEWmu1xY85vv4)-jaKf3hBGJ=r>FFdqy)8M96^WKOx5+fBu;}#sT zgz9UMjg5e*`B5XLtAnuB2z>!HY>V}T}4OQ8)gWkj+sEL6T=(4gmHGg`Io9sS%Z z%FLHo>-k;Z`(f;qTj#9IKr}<-JK9-`cIs8Pqu0p>k;RnKSk?-OakRsHIeDC6o{2C% zY;8dywbUvj_PN3WW#$XoyK}o<_+jFNAKvLYUwcK>QM%N&PoMV@4$qOpZZzCIiVDjBeXTAc3bf2he}9o ziHlW1N4jxfI>Za4Afl%OHs+zW?8q^VjvT@E4csDc-%=i{w>49als(~h?k>SE_CG|L z;O#0GWm4Rb!%0A3<0NL&HEnZwxg7cP`d@xo|FgYb#b5SR4qylW$M_QB#N;pSX&b8? zSihdW<;KVdc_zL;EWZEAX?d!4TTbIk(f`|y@>=xA_v{-!8|D9Yl-HtPZlxsG z6W`;IaI$`~v_Ir1QT~h5@*em;Mb!VRqr6u81Mt1SD8J(57ggE^zRQxxm=yT04TyO{s8UYbClPrza`4o zit_tT%QwQ-R?aDo=7H1lMkt>n%FCUW&#deydoqfrsc>E{wURxhH&AYKTE4P!GtQqJ zlxvRi>ha;|g2cw(hmI*rh@HntUNb+mFlZu7&kUof7N|(aD z#@Mf541Y#v)Uy{jbjI4*3rJ@SNFZ%k=!~OTyH1bw?bNX^+x7gCW&0Q#HgPqZHJ$PJ z^p*)7yCh9o!Pv@@tOdE_jf=%t`d9wOZ=)a0NM{WDYdWI<(+_Ucut9(yd{*JD0AJl^ zteG9uon**F+{r*&5Fl-Ka)&u)z%D_vooh}4-8sK=cep(lW~Qcg#lO8ecF5Vok1kmB zY+4LxcXqpLhfq2zj(=##Vk`hZonL7f_5LHy(WKER}_Q` zYCyW8ooqmPw`U>K9fmTejo{d5@Bl+#R=7gHkN%zT2a?k2a%$+@Pr4 zq}?Yx7LSbW(7S^*Gqh0?wr9zQ=H{y>OhvFCXoJ2|{98l#We9x%PN4+k4GWc0hOr3i z%fosidfF%mjshV;k&Pm&^o543p#!-e8>(7QB-1Ml7%)v^d+BNssfkge9BYvvfH=I z%t~sXjs8LWRDkbp|==|f@6fK<>Ym503b;(lO1S}JrHtC?n9jtlM znd3-D^!=|oBIwYpDQV2DTQ-er7N_gY_28fijhRjsm`EHtVx9G^*3u9iWTE?mT|>9# zjq8)%pRpqg=Dg59z5nC6TLyQ}AJnVbopvGKID$=hC9)1_cQw=`sD%9kTC)o1^; zY-o#^6;l(eG}TkL&C5zo%F2&T5_sL?D(CTYY>#YIyMk|oklYQv7g8m6kAwDmPWl4n z-JF)su6z%2S02itELWKAa=W?e`zMe`=S@BzGjw8 zz9YV`5cRiql-FuM6W@O<%A+0Sb-q6gpAzUTYK)`2*7vcff3x_WcAY);u*Ue(QU4v$ zKLkta<#NsObw>HuqW(6H^6L7rm&eIN`8mVd`E>`>un^n8kNTBRr|x7d>>uizWST^zIOZ3_Wna|Qg1q` zKU#rQi}t~9QBHKDanty*7tp?=d@9PvJ83`0-acdt^^z#3L!G`SmmKU^8M=r*FKRC* z-^a?wtH!s`NqL;Te)Qky?xg>5_Wo1*KR9VW&fb13%3VbHV|xEM&KmSDPWG#6U*KDb zbyK}Q+SuElT6x=r{806ExO2J44cHsMpAvh7}-Q;)q!efLUD2=KioO~6({F{% zBct!izWBfX^dc!oY;;Da;ln%OuVUFP!#Zr3HKSv3F@^|D1$1;BZKq?rlqB_#`bk5j zrFOVqc&f;f2RY;7n%&h!ave$Wb?|AUENYarofUZ*fe(Vy0`zR-72n_*dR#9g zIW~^6e`vtriO=$^jS>=u3?7izH@jC__pY5fBqSvy5nVyqddPeIFdhHQlZR<-s734A zlsDGzv1stHgsd#1L-lqBCj;+PT^Tx$;G?SEy4IzDQyTxqU6 z%vE#MLrMdPbcr-snkQ}6=PO#OkNK*POku!N6v?9{_mPsfH^)_;AU`51-B^(iB{;Ls zSzD){xVT`}=sPiMK7eT$)yqr&n6B6Kc?(TRnOinv+N24Ok18HkSdiO4t9MFTN}4`* zm^~9EY=3AM{Fx^a4}JCD=JS7@U00>Yq9WRK_e2ODe7{6m|rdan8L_NhJFwN2}p z{73o!H0#)&|6!L_uYu~HYVBM_3aR|T7=m-sh};&fp#>FNhsMHa8r0BL#^fU-DtF@x z+@ZbU4Q2$)kE?1>T@47=gf!rWWn)C3pAi8gc&O%yWCFOrG-O3VG>wUlY8?ffhvrR# z;RKGD8~wJylL8_v0I9+`W_X073zRzxWx1u3PavYj$$WR3b~0@*vp&bH^7-Aa){bp@ zjhy$v@g+;26}~SSt&?=mmj`FXA*X$OWh}q(;)~=u_=)Zd)3lTB3-d&=S1}j9Fdhw~ z_Klc2-nLZaehkD-4tQTuOYU%V^VsF&WI=j2^)`MuijLQ{29Zt=+o(3GV= ziD`&PWtq7xyZ*Lvi#5{oz4lQ)kTX@%UX4<$h*Py-&gotZ|KMT_uDs;F@X!?p#7_a* zVTuC`HEP}T&EK`(w0eg=zovY^Vm0vx-?N73Ugq}SUVtc`SWd8|$`b`}r?=+5pu0t-k%5~x)7P`|7aN%7g{{CWviSK(`e1_ zR;S4B#(~%oqbvW;%5?pfl~s*-o1v|ojx$Aej2S0A`uzyZY0(?Hb4#}&@!8g``WQDV z*X001IrNqoF|(1FQVyJMP>kn+n+Q=1?#K`*;8}oq_GF$E$YdWIa!UD=KM7JxvCmh% zcr?Rm&3NfW<@!^zt-X6&XTxNLaco8#4bXQ zK%I`3s=zwcq|D4D{4uztB_yP$CnThyxBZlV@O=2%5}KT2w(Qn0xJ}bw@K4of9>RsL z9#JISk_+bm3IMO+6~J;+rgUSh+mw`^le%@A)H5k9EvaokarV{cSqZ>V8!zUi)AWC`xHZe(c%>b$N#ho5RtoMOOaEE~j!(jF|zmW{zfEl9Rf2O-k-!d#-c)BzPWl zO={oSuz-bYU&X|B?-m!`xpQ1}w{FofojYSVNb(1?X_b5f#Ci^`2Pbdg4#qK5Y!I=k z*$|48%l7uKFC%c6R#;-3j*}lo7Ec7{{=CYgQ{lm94C#d|HB(J?%g!D$eR_+S=w{?z zgm(I98Qef|Lyi*>NaHwffOsL>F*)^6K*xFpSN35*IIZ3}a7BT&pU@A)53EPYik!4d zJqBksimKlsq)5vs8JsdV&L?VMahOx|R9$6dd4h7w_8p#C)ZyjiF^IAU5Gn8`x;g3H*x8>l! zOO#((Z|z0;gX$|QE7}^`YNVSR)iLEbX~eUR1`q8Pcoq0Wc`7}_I0h>3YgY~5;f!l4 z#?cs)LZOm4>f}7TM~%#~LVZH(E4Vrk1B%l