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(); } }