Convert TopLevel.Ready into event

This commit is contained in:
Artyom
2020-09-23 01:19:31 +03:00
committed by BDisp
parent db32add954
commit 47a2020bf4
3 changed files with 11 additions and 12 deletions

View File

@@ -53,7 +53,7 @@ namespace Terminal.Gui {
/// Subscribe to this event to perform tasks when the <see cref="Toplevel"/> has been laid out and focus has been set.
/// changes. A Ready event handler is a good place to finalize initialization after calling `<see cref="Application.Run()"/>(topLevel)`.
/// </summary>
public Action Ready;
public event Action Ready;
/// <summary>
/// Called from <see cref="Application.RunLoop"/> after the <see cref="Toplevel"/> has entered it's first iteration of the loop.

View File

@@ -96,10 +96,14 @@ namespace UICatalog {
scenario.Init (Application.Top, _baseColorScheme);
scenario.Setup ();
scenario.Run ();
_top.Ready += () => {
static void ReadyHandler ()
{
_rightPane.SetFocus ();
_top.Ready = null;
};
_top.Ready -= ReadyHandler;
}
_top.Ready += ReadyHandler;
#if DEBUG_IDISPOSABLE
// After the scenario runs, validate all Responder-based instances

View File

@@ -966,17 +966,12 @@ namespace Terminal.Gui {
return true;
});
t.Ready = () => {
FirstDialogToplevel ();
};
t.Ready += FirstDialogToplevel;
void FirstDialogToplevel ()
{
var od = new OpenDialog {
Ready = () => {
SecoundDialogToplevel ();
}
};
var od = new OpenDialog();
od.Ready += SecoundDialogToplevel;
Application.MainLoop.AddTimeout (TimeSpan.FromMilliseconds (100), (_) => {
count1++;