mirror of
https://github.com/Artemis-RGB/Artemis
synced 2025-12-13 05:48:35 +00:00
40 lines
1011 B
C#
40 lines
1011 B
C#
using System;
|
|
using Avalonia.Controls;
|
|
using Avalonia.Input;
|
|
using Avalonia.Interactivity;
|
|
using Avalonia.Markup.Xaml;
|
|
using Avalonia.ReactiveUI;
|
|
using ReactiveUI;
|
|
|
|
namespace Artemis.UI.Screens.ProfileEditor.ProfileTree;
|
|
|
|
public class LayerTreeItemView : ReactiveUserControl<LayerTreeItemViewModel>
|
|
{
|
|
public LayerTreeItemView()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
private void InitializeComponent()
|
|
{
|
|
AvaloniaXamlLoader.Load(this);
|
|
this.WhenActivated(_ => ViewModel?.Rename.Subscribe(_ =>
|
|
{
|
|
this.Get<TextBox>("Input").Focus();
|
|
this.Get<TextBox>("Input").SelectAll();
|
|
}));
|
|
}
|
|
|
|
private void InputElement_OnKeyUp(object? sender, KeyEventArgs e)
|
|
{
|
|
if (e.Key == Key.Enter)
|
|
ViewModel?.SubmitRename();
|
|
else if (e.Key == Key.Escape)
|
|
ViewModel?.CancelRename();
|
|
}
|
|
|
|
private void InputElement_OnLostFocus(object? sender, RoutedEventArgs e)
|
|
{
|
|
ViewModel?.CancelRename();
|
|
}
|
|
} |