add gui.alert & critical fixes

This commit is contained in:
MihailRis
2025-01-02 21:59:18 +03:00
parent b9ff1db086
commit a3d35cd10f
7 changed files with 52 additions and 25 deletions
+12
View File
@@ -780,6 +780,17 @@ static int l_gui_confirm(lua::State* L) {
return 0;
}
static int l_gui_alert(lua::State* L) {
auto message = lua::require_wstring(L, 1);
runnable onconfirm = nullptr;
if (lua::gettop(L) >= 2) {
lua::pushvalue(L, 2);
onconfirm = lua::create_runnable(L);
}
guiutil::alert(*engine, message, onconfirm);
return 0;
}
const luaL_Reg guilib[] = {
{"get_viewport", lua::wrap<l_gui_getviewport>},
{"getattr", lua::wrap<l_gui_getattr>},
@@ -790,6 +801,7 @@ const luaL_Reg guilib[] = {
{"clear_markup", lua::wrap<l_gui_clear_markup>},
{"escape_markup", lua::wrap<l_gui_escape_markup>},
{"confirm", lua::wrap<l_gui_confirm>},
{"alert", lua::wrap<l_gui_alert>},
{"__reindex", lua::wrap<l_gui_reindex>},
{NULL, NULL}
};
+4 -4
View File
@@ -241,8 +241,9 @@ runnable lua::create_runnable(State* L) {
return [=]() {
getglobal(L, LAMBDAS_TABLE);
getfield(L, *funcptr);
call_nothrow(L, 0);
pop(L);
if (call_nothrow(L, 0)) {
pop(L);
}
};
}
@@ -253,10 +254,9 @@ supplier<bool> lua::create_simple_handler(State* L) {
getfield(L, *funcptr);
if (call_nothrow(L, 0)) {
bool result = toboolean(L, -1);
pop(L, 2);
pop(L);
return result;
} else {
pop(L);
return false;
}
};