diff --git a/Aaru.Tui/Aaru.Tui.csproj b/Aaru.Tui/Aaru.Tui.csproj index 5f193b035..d4e43fca4 100644 --- a/Aaru.Tui/Aaru.Tui.csproj +++ b/Aaru.Tui/Aaru.Tui.csproj @@ -26,6 +26,10 @@ Code + + ImageHelpDialog.axaml + Code + diff --git a/Aaru.Tui/ViewModels/Dialogs/ImageHelpDialogViewModel.cs b/Aaru.Tui/ViewModels/Dialogs/ImageHelpDialogViewModel.cs new file mode 100644 index 000000000..43c0e4ca1 --- /dev/null +++ b/Aaru.Tui/ViewModels/Dialogs/ImageHelpDialogViewModel.cs @@ -0,0 +1,24 @@ +using System.Windows.Input; +using CommunityToolkit.Mvvm.Input; +using Iciclecreek.Avalonia.WindowManager; + +namespace Aaru.Tui.ViewModels.Dialogs; + +public sealed class ImageHelpDialogViewModel : ViewModelBase +{ + internal ManagedWindow _dialog = null!; + + + public ImageHelpDialogViewModel(ManagedWindow dialog) + { + _dialog = dialog; + OkCommand = new RelayCommand(Ok); + } + + public ICommand OkCommand { get; } + + void Ok() + { + _dialog.Close(true); + } +} \ No newline at end of file diff --git a/Aaru.Tui/ViewModels/Windows/ImageWindowViewModel.cs b/Aaru.Tui/ViewModels/Windows/ImageWindowViewModel.cs index 2e23c65a2..6a0bede6e 100644 --- a/Aaru.Tui/ViewModels/Windows/ImageWindowViewModel.cs +++ b/Aaru.Tui/ViewModels/Windows/ImageWindowViewModel.cs @@ -31,6 +31,8 @@ using System.Windows.Input; using Aaru.CommonTypes; using Aaru.CommonTypes.Interfaces; using Aaru.Tui.Models; +using Aaru.Tui.ViewModels.Dialogs; +using Aaru.Tui.Views.Dialogs; using Aaru.Tui.Views.Windows; using Avalonia; using Avalonia.Controls; @@ -91,6 +93,7 @@ public sealed partial class ImageWindowViewModel : ViewModelBase ExitCommand = new RelayCommand(Exit); BackCommand = new RelayCommand(Back); + HelpCommand = new AsyncRelayCommand(HelpAsync); SectorViewCommand = new RelayCommand(SectorView); } @@ -146,6 +149,7 @@ public sealed partial class ImageWindowViewModel : ViewModelBase } public ICommand BackCommand { get; } + public ICommand HelpCommand { get; } public ICommand ExitCommand { get; } public ICommand SectorViewCommand { get; } @@ -178,6 +182,19 @@ public sealed partial class ImageWindowViewModel : ViewModelBase _ = Task.Run(Worker); } + Task HelpAsync() + { + var dialog = new ImageHelpDialog + { + DataContext = new ImageHelpDialogViewModel(null!) + }; + + // Set the dialog reference after creation + ((ImageHelpDialogViewModel)dialog.DataContext!)._dialog = dialog; + + return dialog.ShowDialog(_view); + } + void Worker() { IsStatusVisible = true; diff --git a/Aaru.Tui/Views/Dialogs/ImageHelpDialog.axaml b/Aaru.Tui/Views/Dialogs/ImageHelpDialog.axaml new file mode 100644 index 000000000..721c4b1ab --- /dev/null +++ b/Aaru.Tui/Views/Dialogs/ImageHelpDialog.axaml @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + +