using Avalonia.Controls;
using Avalonia.Interactivity;
namespace ClawdDotNet.Desktop.Views;
///
/// Kleiner Editor für die langen Textfelder eines Agenten (Identity, Soul).
///
/// Ohne eigenes Ansichtsmodell: Der Dialog hat einen Titel, ein Textfeld und zwei
/// Schaltflächen. Ein Ansichtsmodell dafür wäre eine Datei mehr, ohne dass irgendetwas
/// prüfbar würde.
///
public partial class TextEditorWindow : Window
{
private string? _result;
public TextEditorWindow()
{
InitializeComponent();
}
///
/// Zeigt den Editor und liefert den bearbeiteten Text — oder null, wenn
/// abgebrochen wurde. Das Schließen über das Fensterkreuz gilt als Abbruch: Sonst
/// wäre ein weggeklickter Dialog dasselbe wie ein bestätigter.
///
public static async Task ShowAsync(Window owner, string title, string text)
{
var window = new TextEditorWindow { Title = title };
window.TitleText.Text = title;
window.Editor.Text = text;
await window.ShowDialog(owner);
return window._result;
}
private void OnSave(object? sender, RoutedEventArgs e)
{
_result = Editor.Text ?? "";
Close();
}
private void OnCancel(object? sender, RoutedEventArgs e)
{
_result = null;
Close();
}
}