diff --git a/Progrart/Controls/FileItem.axaml b/Progrart/Controls/FileItem.axaml
index 0fd7264..2fd42f1 100644
--- a/Progrart/Controls/FileItem.axaml
+++ b/Progrart/Controls/FileItem.axaml
@@ -34,7 +34,7 @@
-
+
diff --git a/Progrart/Controls/FileItem.axaml.cs b/Progrart/Controls/FileItem.axaml.cs
index 8b66d11..6535e61 100644
--- a/Progrart/Controls/FileItem.axaml.cs
+++ b/Progrart/Controls/FileItem.axaml.cs
@@ -282,4 +282,20 @@ public partial class FileItem : UserControl
}
}
}
+
+ private async void DeleteMenuItem_Click(object? sender, Avalonia.Interactivity.RoutedEventArgs e)
+ {
+ var content = new ConfirmationDialog("Are you sure?", "This operation cannot be undone.");
+ content.onOK = async () =>
+ {
+ if (currentItem is not null)
+ await currentItem.DeleteAsync();
+ if (this.Parent is StackPanel panel)
+ {
+ panel.Children.Remove(this);
+ }
+ return false;
+ };
+ await DialogHost.Show(content);
+ }
}
\ No newline at end of file
diff --git a/Progrart/Dialogs/CloseConfirmationDialog.axaml b/Progrart/Dialogs/CloseConfirmationDialog.axaml
index 520824e..389feaa 100644
--- a/Progrart/Dialogs/CloseConfirmationDialog.axaml
+++ b/Progrart/Dialogs/CloseConfirmationDialog.axaml
@@ -8,7 +8,7 @@
Unsaved Changes
-
+
Save all files or discard changes?
diff --git a/Progrart/Dialogs/ConfirmationDialog.axaml b/Progrart/Dialogs/ConfirmationDialog.axaml
new file mode 100644
index 0000000..e234ded
--- /dev/null
+++ b/Progrart/Dialogs/ConfirmationDialog.axaml
@@ -0,0 +1,23 @@
+
+
+
+ Title
+
+
+ Content
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Progrart/Dialogs/ConfirmationDialog.axaml.cs b/Progrart/Dialogs/ConfirmationDialog.axaml.cs
new file mode 100644
index 0000000..a3ce730
--- /dev/null
+++ b/Progrart/Dialogs/ConfirmationDialog.axaml.cs
@@ -0,0 +1,60 @@
+using Avalonia;
+using Avalonia.Controls;
+using Avalonia.Markup.Xaml;
+using DialogHostAvalonia;
+using System;
+using System.Threading.Tasks;
+
+namespace Progrart.Dialogs;
+
+public partial class ConfirmationDialog : UserControl
+{
+ public Func>? onOK = null;
+ public Func? onCancel = null;
+ public ConfirmationDialog()
+ {
+ InitializeComponent();
+ SetupEvents();
+ }
+ public ConfirmationDialog(string title,string message)
+ {
+ InitializeComponent();
+ SetupEvents();
+ this.TitleBlock.Text = title;
+ this.MessageBlock.Text = message;
+ }
+ void SetupEvents()
+ {
+ OKBtn.Click += OKBtn_Click;
+ CancelBtn.Click += CancelBtn_Click;
+ }
+ private void CancelBtn_Click(object? sender, Avalonia.Interactivity.RoutedEventArgs e)
+ {
+ Cancel();
+ }
+
+ private void Cancel()
+ {
+ if (!(onCancel?.Invoke()) ?? true)
+ {
+ DialogHost.Close(null);
+ }
+ }
+ private async Task Confirmed()
+ {
+ if (onOK is not null)
+ {
+ if (!await onOK())
+ {
+ DialogHost.Close(null);
+ }
+ }
+ else
+ DialogHost.Close(null);
+ }
+
+ private async void OKBtn_Click(object? sender, Avalonia.Interactivity.RoutedEventArgs e)
+ {
+ await Confirmed();
+ }
+}
\ No newline at end of file
diff --git a/Progrart/Views/MainView.axaml.cs b/Progrart/Views/MainView.axaml.cs
index 3074138..4f09cb0 100644
--- a/Progrart/Views/MainView.axaml.cs
+++ b/Progrart/Views/MainView.axaml.cs
@@ -88,7 +88,7 @@ public partial class MainView : UserControl
};
NewFileButton.Click += (_, _) =>
{
- MainTabHost.AddPage(new EditorPage());
+ MainTabHost.AddPage(new ProgrartEditorPage());
};
AboutItem.Click += (_, _) =>
{