Editor/Dialogs/ManualEntryCreatorDialog.cs
using Editor;
using Todo.List;
using Todo.Widgets;

namespace Todo.Dialogs;

public sealed class ManualEntryCreatorDialog : Dialog
{
	TextEdit MessageEdit;
	GroupControl GroupControl;

	public ManualEntryCreatorDialog( Widget parent ) : base( parent, false )
	{
		WidgetUtility.SetProperties(
			this,
			400f,
			"Create New Entry",
			"edit"
		);

		Layout = Layout.Column();
		Layout.Margin = 4;
		Layout.Spacing = 5;

		Layout.Add( new Label( "Message", this ) );
		MessageEdit = Layout.Add( new TextEdit( this ) );
		MessageEdit.PlaceholderText = "Todo Message";

		GroupControl = new GroupControl( this, TodoDock.Cookies.DefaultGroupName );

		Layout.AddStretchCell();

		WidgetButtonControls.AddWidgetButtonControls( this, CreateEntry );
	}

	protected override void OnPaint()
	{
		Paint.ClearPen();
		Paint.SetBrush( Theme.ButtonBackground );
		Paint.DrawRect( LocalRect, 6f );
	}

	protected override void OnKeyPress( KeyEvent e )
	{
		if ( e.Key == KeyCode.Escape )
		{
			Close();
		}
	}

	private void CreateEntry()
	{
		TodoEntry entry = new()
		{
			Message = MessageEdit.PlainText,
			Group = GroupControl.GetGroupName()
		};

		TodoDock.Cookies.Datas.Add( entry );

		TodoDock.Instance.SaveAndRefresh();

		Close();
	}
}