From f260ea4ecfeba485c0d51a0727d779c817388b8d Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Sat, 23 Apr 2022 21:39:49 +0200 Subject: [PATCH] lua: add paintItem() for menu items menu1:setSelected{id=} Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/385a797deb262162394c2613802efc6d84e8a649 Author: Thilo Graf Date: 2022-04-23 (Sat, 23 Apr 2022) --- src/gui/lua/lua_menue.cpp | 21 +++++++++++++++++++++ src/gui/lua/lua_menue.h | 1 + 2 files changed, 22 insertions(+) diff --git a/src/gui/lua/lua_menue.cpp b/src/gui/lua/lua_menue.cpp index 9e203a4ed..cce3ee308 100644 --- a/src/gui/lua/lua_menue.cpp +++ b/src/gui/lua/lua_menue.cpp @@ -77,6 +77,7 @@ void CLuaInstMenu::MenuRegister(lua_State *L) { "setName", CLuaInstMenu::MenuSetName }, { "setSelected", CLuaInstMenu::MenuSetSelected }, { "setValue", CLuaInstMenu::MenuSetValue }, + { "paintItem", CLuaInstMenu::MenuPaintItem }, { "__gc", CLuaInstMenu::MenuDelete }, { NULL, NULL } }; @@ -612,3 +613,23 @@ int CLuaInstMenu::MenuSetValue(lua_State *L) static_cast(item)->setOption(value); return 0; } + +int CLuaInstMenu::MenuPaintItem(lua_State *L) +{ + lua_assert(lua_istable(L, 2)); + CLuaMenu *D = MenuCheck(L, 1); + if (!D) return 0; + + lua_Integer id; tableLookup(L, "item", id); + + CMenuItem* item = NULL; + for (itemmap_iterator_t it = D->itemmap.begin(); it != D->itemmap.end(); ++it) { + if (it->first == id) { + item = it->second; + break; + } + } + if (item) + item->paint(); + return 0; +} diff --git a/src/gui/lua/lua_menue.h b/src/gui/lua/lua_menue.h index 72445b832..b24fbbc06 100644 --- a/src/gui/lua/lua_menue.h +++ b/src/gui/lua/lua_menue.h @@ -129,6 +129,7 @@ class CLuaInstMenu static int MenuDelete(lua_State *L); static int MenuSetSelected(lua_State *L); static int MenuSetValue(lua_State *L); + static int MenuPaintItem(lua_State *L); }; #endif //_LUAMENUE_H