1
0
mirror of https://github.com/Ylianst/MeshAgent synced 2025-12-18 09:13:14 +00:00

Added ability to close message-box on windows

This commit is contained in:
Bryan Roe
2020-04-28 14:27:42 -07:00
parent 1e10f90aec
commit c7959a8332
3 changed files with 29 additions and 6 deletions

File diff suppressed because one or more lines are too long

View File

@@ -3005,6 +3005,21 @@ duk_ret_t ILibDuktape_ScriptContainer_Exit(duk_context *ctx)
return 0; return 0;
} }
duk_ret_t ILibDuktape_ScriptContainer_Exit2(duk_context *ctx)
{
ILibDuktape_ScriptContainer_Exit(ctx);
duk_push_this(ctx);
ILibDuktape_ScriptContainer_Master *master = (ILibDuktape_ScriptContainer_Master*)Duktape_GetBufferProperty(ctx, -1, ILibDuktape_ScriptContainer_MasterPtr);
if (ILibIsChainBeingDestroyed(duk_ctx_chain(ctx)) == 0 && master->child != NULL)
{
ILibProcessPipe_Process p = (ILibProcessPipe_Process)master->child;
master->child = NULL;
ILibProcessPipe_Process_SoftKill(p);
}
return(0);
}
duk_ret_t ILibDuktape_ScriptContainer_ExecuteScript(duk_context *ctx) duk_ret_t ILibDuktape_ScriptContainer_ExecuteScript(duk_context *ctx)
{ {
return 0; return 0;
@@ -3567,6 +3582,8 @@ duk_ret_t ILibDuktape_ScriptContainer_Create(duk_context *ctx)
ILibDuktape_EventEmitter_CreateEventEx(master->emitter, "data"); ILibDuktape_EventEmitter_CreateEventEx(master->emitter, "data");
ILibDuktape_EventEmitter_CreateEventEx(master->emitter, "ready"); ILibDuktape_EventEmitter_CreateEventEx(master->emitter, "ready");
ILibDuktape_CreateProperty_InstanceMethod(ctx, "exit", ILibDuktape_ScriptContainer_Exit, DUK_VARARGS); ILibDuktape_CreateProperty_InstanceMethod(ctx, "exit", ILibDuktape_ScriptContainer_Exit, DUK_VARARGS);
ILibDuktape_CreateProperty_InstanceMethod(ctx, "exit2", ILibDuktape_ScriptContainer_Exit2, DUK_VARARGS);
ILibDuktape_CreateInstanceMethod(master->ctx, "ExecuteScript", ILibDuktape_ScriptContainer_ExecuteScript, DUK_VARARGS); ILibDuktape_CreateInstanceMethod(master->ctx, "ExecuteScript", ILibDuktape_ScriptContainer_ExecuteScript, DUK_VARARGS);
ILibDuktape_CreateInstanceMethod(master->ctx, "ExecuteString", ILibDuktape_ScriptContainer_ExecuteString, DUK_VARARGS); ILibDuktape_CreateInstanceMethod(master->ctx, "ExecuteString", ILibDuktape_ScriptContainer_ExecuteString, DUK_VARARGS);
ILibDuktape_CreateInstanceMethod(master->ctx, "send", ILibDuktape_ScriptContainer_SendToSlave, 1); ILibDuktape_CreateInstanceMethod(master->ctx, "send", ILibDuktape_ScriptContainer_SendToSlave, 1);

View File

@@ -120,6 +120,7 @@ function messageBox()
ret._container.promise = ret; ret._container.promise = ret;
ret._container.on('data', function (j) ret._container.on('data', function (j)
{ {
this.promise._container = null;
if(j == IDYES || j == IDOK) if(j == IDYES || j == IDOK)
{ {
this.promise._res(); this.promise._res();
@@ -131,10 +132,15 @@ function messageBox()
}); });
ret._container.on('exit', function () ret._container.on('exit', function ()
{ {
this.promise._container = null;
this.promise._rej('Timeout'); this.promise._rej('Timeout');
}); });
ret._container.ExecuteString(childScript); ret._container.ExecuteString(childScript);
ret._container.send({ command: 'messageBox', caption: caption, title: title, layout: layout }); ret._container.send({ command: 'messageBox', caption: caption, title: title, layout: layout });
ret.close = function ()
{
this._container.exit2();
};
return (ret); return (ret);
}; };
} }