aboutsummaryrefslogtreecommitdiff
path: root/vis-lua.c
diff options
context:
space:
mode:
authorMarc André Tanner <mat@brain-dump.org>2016-11-14 15:54:26 +0100
committerMarc André Tanner <mat@brain-dump.org>2016-11-14 15:54:26 +0100
commitb79da95d4b97125de10e3dc66a88bc475e23b4d3 (patch)
tree77064db720d7e33e3666a4bcfce177ce24d6a982 /vis-lua.c
parentb701de666e1c2b89bcff67bb309c5f8997ce5c8c (diff)
downloadvis-b79da95d4b97125de10e3dc66a88bc475e23b4d3.tar.gz
vis-b79da95d4b97125de10e3dc66a88bc475e23b4d3.tar.xz
vis-lua: add vis.ui.colors denoting the number of available colors
Diffstat (limited to 'vis-lua.c')
-rw-r--r--vis-lua.c26
1 files changed, 26 insertions, 0 deletions
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);