Editor/Widgets/CodeWordControl.cs
using Editor;
using Sandbox;
using Todo.CodeImport;
using Todo.Dialogs;

namespace Todo.Widgets;

public sealed class CodeWordControl : Widget
{
	TodoCodeWord CodeWord;

	SettingsDialog SettingsWidget;

	public CodeWordControl( SettingsDialog settingsWidget, TodoCodeWord style ) : base( settingsWidget, false )
	{
		SettingsWidget = settingsWidget;

		CodeWord = style;

		MinimumHeight = Theme.RowHeight;
		Layout = Layout.Row();

		Build();
	}

	private void Build()
	{
		{
			ControlSheet sheet = new ControlSheet();
			sheet.Spacing = 1f;
			foreach ( var entry in CodeWord.GetSerialized() )
			{
				sheet.AddRow( entry );
			}
			Layout.Add( sheet );
		}

		Button deleteButton = Layout.Add( new Button.Danger( "Delete", "delete" ) );
		deleteButton.Clicked = PromptDelete;
	}

	private void PromptDelete()
	{
		Dialog.AskConfirm(Delete, $"Are you sure you want to delete {CodeWord.CodeWord}?", "Delete Code Word?", "Yes", "No" );
	}

	private void Delete()
	{
		TodoDock.Cookies.CodeWords.Remove( CodeWord );
		TodoDock.Instance.SaveAndRefresh();
		SettingsWidget.Build();
	}
}