using System.Threading;
namespace Editor.Wizards;
///
/// A page inside a BaseWizard
///
public class BaseWizardPage : Widget
{
protected Layout BodyLayout;
internal CancellationTokenSource TokenSource;
///
/// Automatically proceed to the next step instead of wanting the user to press next
///
public virtual bool IsAutoStep => false;
public BaseWizardPage() : base( null )
{
Visible = false;
Layout = Layout.Column();
BodyLayout = Layout.Add( Layout.Column(), 1 );
}
public override void OnDestroyed()
{
base.OnDestroyed();
TokenSource?.Cancel();
}
public virtual async Task OpenAsync()
{
await Task.CompletedTask;
}
public virtual async Task FinishAsync()
{
await Task.CompletedTask;
return true;
}
public virtual void OnNavigateAway()
{
}
public virtual bool CanProceed()
{
return true;
}
public virtual void OnSave()
{
}
public virtual string PageTitle => "Page Title";
public virtual string PageSubtitle => "Page Subtitle";
public virtual string NextButtonText => "Next";
}