feat: support multiple classes, improve unit tests.

This commit is contained in:
rabbitism
2024-11-06 23:22:17 +08:00
parent 74e190b6a4
commit c57bf10511
9 changed files with 88 additions and 14 deletions

View File

@@ -216,7 +216,8 @@ public static class Dialog
}
if (!string.IsNullOrWhiteSpace(options.StyleClass))
{
window.Classes.Add(options.StyleClass);
var styles = options.StyleClass!.Split([' '], StringSplitOptions.RemoveEmptyEntries);
window.Classes.AddRange(styles);
}
}
@@ -246,7 +247,8 @@ public static class Dialog
}
if (!string.IsNullOrWhiteSpace(options.StyleClass))
{
window.Classes.Add(options.StyleClass);
var styles = options.StyleClass!.Split([' '], StringSplitOptions.RemoveEmptyEntries);
window.Classes.AddRange(styles);
}
}
}

View File

@@ -207,7 +207,8 @@ public static class OverlayDialog
control.CanResize = options.CanResize;
if (!string.IsNullOrWhiteSpace(options.StyleClass))
{
control.Classes.Add(options.StyleClass);
var styles = options.StyleClass!.Split([' '], StringSplitOptions.RemoveEmptyEntries);
control.Classes.AddRange(styles);
}
DialogControlBase.SetCanDragMove(control, options.CanDragMove);
}
@@ -237,7 +238,8 @@ public static class OverlayDialog
control.CanResize = options.CanResize;
if (!string.IsNullOrWhiteSpace(options.StyleClass))
{
control.Classes.Add(options.StyleClass);
var styles = options.StyleClass!.Split([' '], StringSplitOptions.RemoveEmptyEntries);
control.Classes.AddRange(styles);
}
DialogControlBase.SetCanDragMove(control, options.CanDragMove);
}

View File

@@ -220,7 +220,8 @@ public static class Drawer
if (!string.IsNullOrWhiteSpace(options.StyleClass))
{
drawer.Classes.Add(options.StyleClass!);
var styles = options.StyleClass!.Split([' '], StringSplitOptions.RemoveEmptyEntries);
drawer.Classes.AddRange(styles);
}
}
@@ -246,7 +247,8 @@ public static class Drawer
}
if (!string.IsNullOrWhiteSpace(options.StyleClass))
{
drawer.Classes.Add(options.StyleClass!);
var styles = options.StyleClass!.Split([' '], StringSplitOptions.RemoveEmptyEntries);
drawer.Classes.AddRange(styles);
}
}
}

View File

@@ -22,7 +22,8 @@ public static class MessageBox
};
if (!string.IsNullOrWhiteSpace(styleClass))
{
messageWindow.Classes.Add(styleClass!);
var styles = styleClass!.Split([' '], StringSplitOptions.RemoveEmptyEntries);
messageWindow.Classes.AddRange(styles);
}
var lifetime = Application.Current?.ApplicationLifetime;
if (lifetime is not IClassicDesktopStyleApplicationLifetime classLifetime) return MessageBoxResult.None;
@@ -53,7 +54,8 @@ public static class MessageBox
};
if (!string.IsNullOrWhiteSpace(styleClass))
{
messageWindow.Classes.Add(styleClass!);
var styles = styleClass!.Split([' '], StringSplitOptions.RemoveEmptyEntries);
messageWindow.Classes.AddRange(styles!);
}
var result = await messageWindow.ShowDialog<MessageBoxResult>(owner);
return result;
@@ -80,7 +82,8 @@ public static class MessageBox
};
if (!string.IsNullOrWhiteSpace(styleClass))
{
messageControl.Classes.Add(styleClass!);
var styles = styleClass!.Split([' '], StringSplitOptions.RemoveEmptyEntries);
messageControl.Classes.AddRange(styles!);
}
host.AddModalDialog(messageControl);
var result = await messageControl.ShowAsync<MessageBoxResult>();

View File

@@ -1,4 +1,5 @@
using System.Collections.Concurrent;
using System.Diagnostics;
namespace Ursa.Controls;
@@ -10,6 +11,7 @@ internal static class OverlayDialogManager
public static void RegisterHost(OverlayDialogHost host, string? id, int? hash)
{
Debug.WriteLine("Count: "+Hosts.Count);
Hosts.TryAdd(new HostKey(id, hash), host);
}

View File

@@ -15,8 +15,8 @@
<ItemGroup>
<PackageReference Include="Avalonia" Version="$(AvaloniaVersion)"/>
<PackageReference Include="Irihi.Avalonia.Shared" Version="0.2.0" />
<PackageReference Include="Irihi.Avalonia.Shared.Contracts" Version="0.2.0" />
<PackageReference Include="Irihi.Avalonia.Shared" Version="0.2.1" />
<PackageReference Include="Irihi.Avalonia.Shared.Contracts" Version="0.2.1" />
</ItemGroup>
<ItemGroup>