diff options
| author | Alexander Pickering <alex@cogarr.net> | 2018-08-12 14:51:22 -0400 |
|---|---|---|
| committer | Alexander Pickering <alex@cogarr.net> | 2018-08-12 14:51:22 -0400 |
| commit | dc9cd82e80338a20b71db662abb6192aff118fe3 (patch) | |
| tree | 5cdc862d505147c3df22714d45527da28eb6adb9 /src/client/lua_api/gui/iguicheckbox.cpp | |
| parent | 2c97dada7b9c7fedc511f1ecf012346c198d92f8 (diff) | |
| download | brokengine-dc9cd82e80338a20b71db662abb6192aff118fe3.tar.gz brokengine-dc9cd82e80338a20b71db662abb6192aff118fe3.tar.bz2 brokengine-dc9cd82e80338a20b71db662abb6192aff118fe3.zip | |
Modified iguielement to export it's functions
Other gui elements can now register all the base igui functions
by registering iguielement_m from iguielement.hpp
Diffstat (limited to 'src/client/lua_api/gui/iguicheckbox.cpp')
| -rw-r--r-- | src/client/lua_api/gui/iguicheckbox.cpp | 35 |
1 files changed, 24 insertions, 11 deletions
diff --git a/src/client/lua_api/gui/iguicheckbox.cpp b/src/client/lua_api/gui/iguicheckbox.cpp index 8e1a643..c0ca740 100644 --- a/src/client/lua_api/gui/iguicheckbox.cpp +++ b/src/client/lua_api/gui/iguicheckbox.cpp @@ -1,4 +1,3 @@ -/*This file defines some things that all igui stuff can do*/ extern "C" { #include <lua.h> #include <lauxlib.h> @@ -9,30 +8,44 @@ extern "C" { #include "iguielement.hpp" #include <shared/lua_api/common.hpp> +/*** +@module gui +*/ using namespace irr; using namespace gui; using namespace core; extern IrrlichtDevice* device; +/*** +@function newcheckbox() +Creates a new checkbox +@tparam dimensions rect The rectangle to place the box at. If the box has a parent, +it is offset from the upper-left of the parent element. +@tparam parent (iguielement | nil) parent The parent element of the edit box +@tparam default_text (string | nil) default_text The default text to have in the edit box +@treturn iguieditbox The edit box element +*/ //new({startx,starty},{endx,endy},"checkbox_name"[,ud_parent]) int newiguicheckbox(lua_State* L){ - IGUIElement* par = 0; - if(lua_gettop(L) > 3){ - par = (IGUIElement*)lua_touserdata(L,-1);//{startx,starty},{endx,endy},"checkbox_name",ud_parent - printf("Checkbox's parent was %p\n",par); - lua_pop(L,1);//{startx,starty},{endx,endy},"checkbox_name" + IGUIElement* par = NULL; + int nargs = lua_gettop(L); + if(nargs == 3){ + lua_getfield(L,-1,"guielement");//{{sx,sy},{ex,ey}},"label",{parent},ud_parent + par = (IGUIElement*)lua_touserdata(L,-1); + lua_pop(L,2);//{{sx,sy},{ex,ey}},"chekboxname" } - const char* text = lua_tostring(L,-1); + const char* text = lua_tostring(L,-1);//{{sx,sy},{ex,ey}},"label" //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);// + poprecti(L,&startx,&starty,&endx,&endy); irr::gui::IGUICheckBox* cb = device->getGUIEnvironment()->addCheckBox(false,core::rect<int>(startx,starty,endx,endy),par,-1,stringw(text).c_str()); + lua_newtable(L);//{} lua_pushlightuserdata(L,cb);//*checkbox - luaL_getmetatable(L,"gui.checkbox");//*checkbox,m{gui.checkbox} - lua_setmetatable(L,-2);//*checkbox + lua_setfield(L,-2,"guielement");//{checkbox} + luaL_getmetatable(L,"gui.checkbox");//{checkbox},m{gui.checkbox} + lua_setmetatable(L,-2);//{checkbox} return 1; } |
