aboutsummaryrefslogtreecommitdiff
path: root/src/client/lua_api/gui/iguicheckbox.cpp
diff options
context:
space:
mode:
authorAlexander Pickering <alex@cogarr.net>2018-08-12 14:51:22 -0400
committerAlexander Pickering <alex@cogarr.net>2018-08-12 14:51:22 -0400
commitdc9cd82e80338a20b71db662abb6192aff118fe3 (patch)
tree5cdc862d505147c3df22714d45527da28eb6adb9 /src/client/lua_api/gui/iguicheckbox.cpp
parent2c97dada7b9c7fedc511f1ecf012346c198d92f8 (diff)
downloadbrokengine-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.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;
}