From b79da95d4b97125de10e3dc66a88bc475e23b4d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Andr=C3=A9=20Tanner?= Date: Mon, 14 Nov 2016 15:54:26 +0100 Subject: vis-lua: add vis.ui.colors denoting the number of available colors --- vis-lua.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'vis-lua.c') diff --git a/vis-lua.c b/vis-lua.c index 12a8658..5b039ba 100644 --- a/vis-lua.c +++ b/vis-lua.c @@ -758,6 +758,11 @@ static int vis_index(lua_State *L) { lua_pushboolean(L, vis_macro_recording(vis)); return 1; } + + if (strcmp(key, "ui") == 0) { + obj_ref_new(L, vis->ui, "vis.ui"); + return 1; + } } return index_common(L); @@ -789,6 +794,21 @@ static const struct luaL_Reg vis_lua[] = { { NULL, NULL }, }; +static int ui_index(lua_State *L) { + Win *win = obj_ref_check(L, 1, "vis.ui"); + if (!win) { + lua_pushnil(L); + return 1; + } + + return index_common(L); +} + +static const struct luaL_Reg ui_funcs[] = { + { "__index", ui_index }, + { NULL, NULL }, +}; + static int window_index(lua_State *L) { Win *win = obj_ref_check(L, 1, "vis.window"); if (!win) { @@ -1462,6 +1482,12 @@ void vis_lua_init(Vis *vis) { luaL_setfuncs(L, window_cursor_funcs, 0); obj_type_new(L, "vis.window.cursors"); luaL_setfuncs(L, window_cursors_funcs, 0); + + obj_type_new(L, "vis.ui"); + luaL_setfuncs(L, ui_funcs, 0); + lua_pushunsigned(L, vis->ui->colors(vis->ui)); + lua_setfield(L, -2, "colors"); + obj_type_new(L, "vis"); luaL_setfuncs(L, vis_lua, 0); -- cgit v1.2.3