/*This file defines some things that all igui stuff can do*/ extern "C" { #include #include #include } #include #include "../guiparts.hpp" #include "iguielement.hpp" #include "../../../shared/lua_api/common.h" using namespace irr; using namespace core; extern IrrlichtDevice* device; //new({startx,starty},{endx,endy},"checkbox_name",parent) int newiguicheckbox(lua_State* L){ int parentid = lua_tointeger(L,-1); lua_pop(L,1);//{startx,starty},{endx,endy},"checkbox_name" const char* text = lua_tostring(L,-1); int tlen = strlen(text); lua_pop(L,1);//{startx,starty},{endx,endy} long startx,starty,endx,endy; popvector2i(L,&endx,&endy);//{startx,starty} popvector2i(L,&startx, &starty);// irr::gui::IGUICheckBox* cb = device->getGUIEnvironment()->addCheckBox(false,core::rect(startx,starty,endx,endy),0,-1,stringw(text).c_str()); lua_pushlightuserdata(L,cb);//*checkbox luaL_getmetatable(L,"gui.checkbox");//*checkbox,m{gui.checkbox} lua_setmetatable(L,-2);//*checkbox return 1; } static const luaL_reg iguicheckbox_m[] = { {"move", moveiguielement}, {"setText", setiguitext}, {"remove", guisethandeler}, {0,0}, }; int iguicheckbox_register(lua_State* L){// luaL_newmetatable(L,"gui.checkbox");//m{gui.checkbox} luaL_register(L,NULL,iguicheckbox_m); lua_pop(L,1);// lua_getglobal(L,"gui");//{gui} lua_pushstring(L,"newcheckbox");//{gui},new(),"newcheckbox" lua_pushcfunction(L,newiguicheckbox);//{gui},new() printf("I have registered the newcheckbox function\n"); lua_settable(L,-3);//{gui} lua_pop(L,1); return 0; }