Editor/ShaderGraphPlus/Widgets/TextEditAreaWidget.cs
using Editor;
namespace ShaderGraphPlus;
public class TextEditAreaWidget : Widget
{
private TextEdit _textEdit;
public Action<string> ValueChanged { get; set; }
public string Value
{
get => _textEdit.PlainText;
set => _textEdit.PlainText = value;
}
public TextEditAreaWidget( Widget parent, string text = "" ) : base( parent )
{
_textEdit = new TextEdit( this );
_textEdit.PlainText = text;
_textEdit.TabSize = 32;
_textEdit.TextChanged = x => ValueChanged?.Invoke( x );
_textEdit.AcceptDrops = false;
_textEdit.SetStyles( $"font-size: 12px; font-weight: regular; color: {Theme.TextControl.Hex};" );
Layout = Layout.Row();
Layout.Spacing = 16;
Layout.Add( _textEdit );
}
public TextEditAreaWidget( Widget parent, string windowTitle, string text ) : this( parent, text )
{
Name = windowTitle;
WindowTitle = windowTitle;
}
/*
string _oldValue;
[EditorEvent.Frame]
public void Frame()
{
if ( _oldValue == textEdit.PlainText )
return;
_oldValue = textEdit.PlainText;
}
*/
}