6 class lua_gui_resolution
: public lua_function
9 lua_gui_resolution() : lua_function("gui.resolution") {}
10 int invoke(lua_State
* LS
)
14 lua_pushnumber(LS
, lua_render_ctx
->width
);
15 lua_pushnumber(LS
, lua_render_ctx
->height
);
20 template<uint32_t lua_render_context::*gap
>
21 class lua_gui_set_gap
: public lua_function
24 lua_gui_set_gap(const std::string
& name
) : lua_function(name
) {}
25 int invoke(lua_State
* LS
)
29 uint32_t g
= get_numeric_argument
<uint32_t>(LS
, 1, fname
.c_str());
31 return 0; //Ignore ridiculous gap.
32 lua_render_ctx
->*gap
= g
;
37 lua_gui_set_gap
<&lua_render_context::left_gap
> lg("gui.left_gap");
38 lua_gui_set_gap
<&lua_render_context::right_gap
> rg("gui.right_gap");
39 lua_gui_set_gap
<&lua_render_context::top_gap
> tg("gui.top_gap");
40 lua_gui_set_gap
<&lua_render_context::bottom_gap
> bg("gui.bottom_gap");
42 function_ptr_luafun
gui_repaint("gui.repaint", [](lua_State
* LS
, const std::string
& fname
) -> int {
43 lua_requests_repaint
= true;
47 function_ptr_luafun
gui_sfupd("gui.subframe_update", [](lua_State
* LS
, const std::string
& fname
) -> int {
48 lua_requests_subframe_paint
= get_boolean_argument(LS
, 1, fname
.c_str());
52 function_ptr_luafun
gui_color("gui.color", [](lua_State
* LS
, const std::string
& fname
) -> int {
54 int64_t r
= get_numeric_argument
<uint32_t>(LS
, 1, fname
.c_str());
55 int64_t g
= get_numeric_argument
<uint32_t>(LS
, 2, fname
.c_str());
56 int64_t b
= get_numeric_argument
<uint32_t>(LS
, 3, fname
.c_str());
57 get_numeric_argument
<int64_t>(LS
, 4, a
, fname
.c_str());
59 lua_pushnumber(LS
, ((256 - a
) << 24) | (r
<< 16) | (g
<< 8) | b
);
61 lua_pushnumber(LS
, -1);
65 function_ptr_luafun
gui_status("gui.status", [](lua_State
* LS
, const std::string
& fname
) -> int {
66 std::string name
= get_string_argument(LS
, 1, fname
.c_str());
67 std::string value
= get_string_argument(LS
, 2, fname
.c_str());
68 auto& w
= window::get_emustatus();
70 w
.erase("L[" + name
+ "]");
72 w
["L[" + name
+ "]"] = value
;