aboutsummaryrefslogtreecommitdiff
path: root/src/client/lua_api/gui/iguicheckbox.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/lua_api/gui/iguicheckbox.cpp')
-rw-r--r--src/client/lua_api/gui/iguicheckbox.cpp35
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;
}