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.
61 lines
1.9 KiB
61 lines
1.9 KiB
using Avalonia; |
|
using Avalonia.Controls; |
|
using Avalonia.Controls.Primitives; |
|
using Avalonia.Input; |
|
using AvaloniaEdit; |
|
using AvaloniaEdit.Editing; |
|
using AvaloniaEdit.Utils; |
|
using StabilityMatrix.Avalonia.Helpers; |
|
using StabilityMatrix.Core.Attributes; |
|
|
|
namespace StabilityMatrix.Avalonia.Controls; |
|
|
|
[Transient] |
|
public class PromptCard : TemplatedControl |
|
{ |
|
/// <inheritdoc /> |
|
protected override void OnApplyTemplate(TemplateAppliedEventArgs e) |
|
{ |
|
base.OnApplyTemplate(e); |
|
|
|
InitializeEditors(e); |
|
} |
|
|
|
private static void InitializeEditors(TemplateAppliedEventArgs e) |
|
{ |
|
foreach ( |
|
var editor in new[] |
|
{ |
|
e.NameScope.Find<TextEditor>("PromptEditor"), |
|
e.NameScope.Find<TextEditor>("NegativePromptEditor") |
|
} |
|
) |
|
{ |
|
if (editor is not null) |
|
{ |
|
TextEditorConfigs.ConfigForPrompt(editor); |
|
editor.TextArea.Margin = new Thickness(0, 0, 4, 0); |
|
|
|
if (editor.TextArea.ActiveInputHandler is TextAreaInputHandler inputHandler) |
|
{ |
|
// Add some aliases for editor shortcuts |
|
inputHandler.KeyBindings.AddRange( |
|
new KeyBinding[] |
|
{ |
|
new() |
|
{ |
|
Command = ApplicationCommands.Cut, |
|
Gesture = new KeyGesture(Key.Delete, KeyModifiers.Shift) |
|
}, |
|
new() |
|
{ |
|
Command = ApplicationCommands.Paste, |
|
Gesture = new KeyGesture(Key.Insert, KeyModifiers.Shift) |
|
} |
|
} |
|
); |
|
} |
|
} |
|
} |
|
} |
|
}
|
|
|