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:
File diff suppressed because one or more lines are too long
@@ -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);
|
||||||
|
|||||||
@@ -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);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user