#include "gui.hpp" LuaDefineType(Gui); void Gui::menu_item(const std::string &action, const std::string &label) { GuiElt elt; elt.type_ = GuiElt::TYPE_MENU_ITEM; elt.action_ = action; elt.label_ = label; elts_.push_back(elt); } bool Gui::has_action(const std::string &action) const { for (const GuiElt &elt : elts_) { if (elt.action_ == action) { return true; } } return false; } LuaDefine(gui_create, "c") { LuaRet lgui; LuaStack LS(L, lgui); LS.newpointer(lgui, new Gui, true); return LS.result(); } LuaDefine(gui_menu_item, "c") { LuaArg lgui, laction, llabel; LuaStack LS(L, lgui, laction, llabel); Gui *gui = LS.ckuserdata(lgui); std::string action = LS.ckstring(laction); std::string label = LS.ckstring(llabel); gui->menu_item(action, label); return LS.result(); }