From ed3f75620ec3730600f5d66a9dc04421c5fedd43 Mon Sep 17 00:00:00 2001 From: Witold Filipczyk Date: Sat, 20 Aug 2022 18:37:21 +0200 Subject: [PATCH] [mujs] window.status --- src/ecmascript/mujs/window.cpp | 39 ++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/src/ecmascript/mujs/window.cpp b/src/ecmascript/mujs/window.cpp index c3cc9d00..4f68d2f1 100644 --- a/src/ecmascript/mujs/window.cpp +++ b/src/ecmascript/mujs/window.cpp @@ -426,6 +426,42 @@ static const JSCFunctionListEntry js_window_proto_funcs[] = { #endif +static void +mjs_window_get_property_status(js_State *J) +{ +#ifdef ECMASCRIPT_DEBUG + fprintf(stderr, "%s:%s\n", __FILE__, __FUNCTION__); +#endif + js_pushundefined(J); +} + +static void +mjs_window_set_property_status(js_State *J) +{ +#ifdef ECMASCRIPT_DEBUG + fprintf(stderr, "%s:%s\n", __FILE__, __FUNCTION__); +#endif + struct ecmascript_interpreter *interpreter = (struct ecmascript_interpreter *)js_getcontext(J); + struct view_state *vs = interpreter->vs; + + if (!vs) { + js_pushundefined(J); + return; + } + const char *str = js_tostring(J, 1); + + if (!str) { + js_pushnull(J); + return; + } + char *text = stracpy(str); + + mem_free_set(&vs->doc_view->session->status.window_status, text); + print_screen_status(vs->doc_view->session); + + js_pushundefined(J); +} + static void mjs_window_alert(js_State *J) { @@ -462,6 +498,9 @@ mjs_window_init(js_State *J) { addmethod(J, "window.alert", mjs_window_alert, 1); addmethod(J, "window.toString", mjs_window_toString, 0); + + addproperty(J, "status", mjs_window_get_property_status, mjs_window_set_property_status); + } js_defglobal(J, "window", JS_DONTENUM);