You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
1.1 KiB
40 lines
1.1 KiB
1 year ago
|
using Avalonia.Controls;
|
||
|
using Avalonia.Input;
|
||
|
using Avalonia.Interactivity;
|
||
|
using StabilityMatrix.Avalonia.Diagnostics.ViewModels;
|
||
|
|
||
|
namespace StabilityMatrix.Avalonia.Diagnostics.Views;
|
||
|
|
||
|
public partial class LogWindow : Window
|
||
|
{
|
||
|
public LogWindow()
|
||
|
{
|
||
|
InitializeComponent();
|
||
|
}
|
||
|
|
||
|
public static IDisposable Attach(TopLevel root, IServiceProvider serviceProvider)
|
||
|
{
|
||
|
return Attach(root, serviceProvider, new KeyGesture(Key.F11));
|
||
|
}
|
||
|
|
||
|
public static IDisposable Attach(TopLevel root, IServiceProvider serviceProvider, KeyGesture gesture)
|
||
|
{
|
||
|
return (root ?? throw new ArgumentNullException(nameof(root))).AddDisposableHandler(
|
||
|
KeyDownEvent,
|
||
|
PreviewKeyDown,
|
||
|
RoutingStrategies.Tunnel);
|
||
|
|
||
|
void PreviewKeyDown(object? sender, KeyEventArgs e)
|
||
|
{
|
||
|
if (gesture.Matches(e))
|
||
|
{
|
||
|
var window = new LogWindow()
|
||
|
{
|
||
|
DataContext = LogWindowViewModel.FromServiceProvider(serviceProvider)
|
||
|
};
|
||
|
window.Show();
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|