aboutsummaryrefslogtreecommitdiff
path: root/src/client/lua_api/gui
diff options
context:
space:
mode:
authorAlexander Pickering <alex@cogarr.net>2018-06-23 06:52:55 -0600
committerAlexander Pickering <alex@cogarr.net>2018-06-23 06:52:55 -0600
commite6faff1394864a1fe0d517584d1c104997dff39f (patch)
treed7956fc8aabef903f354578d69d4d7fdf64ec928 /src/client/lua_api/gui
parent1aaa348ac080c97c0aeb0a02146ae26b74add5a1 (diff)
parent9fa5dcc9310a8c6ff8c77a47a86303f7b950dcf3 (diff)
downloadbrokengine-e6faff1394864a1fe0d517584d1c104997dff39f.tar.gz
brokengine-e6faff1394864a1fe0d517584d1c104997dff39f.tar.bz2
brokengine-e6faff1394864a1fe0d517584d1c104997dff39f.zip
Merge branch 'master' of ssh://cogarr.net:43/home/git/brokengine
Diffstat (limited to 'src/client/lua_api/gui')
-rw-r--r--src/client/lua_api/gui/iguibutton.cpp136
-rw-r--r--src/client/lua_api/gui/iguibutton.hpp2
-rw-r--r--src/client/lua_api/gui/iguicheckbox.cpp14
-rw-r--r--src/client/lua_api/gui/iguielement.cpp50
-rw-r--r--src/client/lua_api/gui/iguielement.hpp1
-rw-r--r--src/client/lua_api/gui/iguiimage.cpp72
-rw-r--r--src/client/lua_api/gui/iguiwindow.cpp80
7 files changed, 183 insertions, 172 deletions
diff --git a/src/client/lua_api/gui/iguibutton.cpp b/src/client/lua_api/gui/iguibutton.cpp
index 494e9f9..8732bd6 100644
--- a/src/client/lua_api/gui/iguibutton.cpp
+++ b/src/client/lua_api/gui/iguibutton.cpp
@@ -13,10 +13,12 @@ extern "C" {
#include <irrlicht.h>
#include "../guiparts.hpp"
#include "iguielement.hpp"
-#include "../../callbackhandeler.hpp"
-#include "../../util/hashmap.h"
+#include "client/callbackhandeler.hpp"
+#include "client/util/hashmap.h"
+#include "shared/lua_api/common.h"
using namespace irr;
+using namespace core;
using namespace gui;
extern IrrlichtDevice* device;
@@ -68,97 +70,67 @@ static bool iguibuttonevent(irr::SEvent e){
return false;
}
+//gui.newbutton({x,y},{width,height},text[,parent])
static int newiguibutton(lua_State* L){
- printf("Createing gui button!\n");
- //The position of the button
- int startx = luaL_optint(L,1,0);
- int starty = luaL_optint(L,2,0);
- int endx = luaL_optint(L,3,startx+100);
- int endy = luaL_optint(L,4,starty+100);
-
- //Label and tooltip
- wchar_t* button_label;
- wchar_t* button_tooltip;
- const char* labelopt = luaL_optstring(L,5,"Button");
- const char* tooltipopt = luaL_optstring(L,6,"Tooltip");
- int bls = strlen(labelopt);
- int bts = strlen(tooltipopt);
- button_label = (wchar_t*)malloc(sizeof(wchar_t)*(bls));
- button_tooltip = (wchar_t*)malloc(sizeof(wchar_t)*(bts));
- mbstowcs(button_label,labelopt,bls+1);
- mbstowcs(button_tooltip,tooltipopt,bts+1);
- printf("Got the string options\n");
-
- //If the element has a parrent
- int parent = luaL_optint(L,7,0);
-
- //Create the button
- IGUIEnvironment* env = device->getGUIEnvironment();
- IGUIButton* nbut = (IGUIButton*) env->addButton(core::rect<s32>(startx,starty,endx,endy), guielements[parent], gui_elenum++, button_label, button_tooltip);
-
- //Register it's callback
- registerguicallback(nbut,EGET_BUTTON_CLICKED,iguibuttonevent);
- printf("Finished registering callback\n");
-
- //Create the lua representation of the button
- LIGUIElement* lbut = (LIGUIElement*)lua_newuserdata(L, sizeof(LIGUIElement));
-
- //Make it callbackable
- int tref = luaL_ref(L,LUA_REGISTRYINDEX);
- iguielements[nbut] = tref;
- lua_rawgeti(L,LUA_REGISTRYINDEX,tref);//Put it back on the stack since luaL_ref pops the object.
-
- //Set it's metatable
- luaL_getmetatable(L, "gui.iguibutton");
- lua_setmetatable(L, -2);
-
- //Create the struct
- lbut->e = nbut;
- lbut->funcmap = hashmap_new();
- lbut->type = "iguibutton";
-
- //Free up anything made in the function
- free(button_label);
- free(button_tooltip);
-
- //Put it on top and return it
- lua_rawgeti(L,LUA_REGISTRYINDEX,tref);
- return 1;
+ printf("Createing gui button!\n");
+
+ int nargs = lua_gettop(L);
+ IGUIElement* parent = NULL;
+ if(nargs == 4){
+ parent = (IGUIElement*)lua_touserdata(L,-1);
+ lua_pop(L,1);
+ }
+
+
+ const char* label_c = lua_tostring(L,-1);
+ const wchar_t* label_w = irr::core::stringw(label_c).c_str();
+ lua_pop(L,1);
+
+ long x,y,w,h;
+ popvector2i(L,&w,&h);
+ popvector2i(L,&x,&y);
+
+ rect<s32> dim = rect<s32>(x,y,x+w,y+h);
+ IGUIEnvironment* env = device->getGUIEnvironment();
+ IGUIButton* but = env->addButton(dim,parent,-2,label_w,L"");
+
+ lua_pushlightuserdata(L,but);//
+ luaL_getmetatable(L,"gui.iguibutton");
+ lua_setmetatable(L,-2);
+
+ registerguicallback(but,EGET_BUTTON_CLICKED,iguibuttonevent);
+ printf("Finished registering callback\n");
+
+ return 1;
}
static const luaL_reg iguibutton_f[] = {
- {"new", newiguibutton},
- {"gethandeler", guigethandeler},
- {"sethandeler", guisethandeler},
- {0,0},
+ {"new", newiguibutton},
+ {"gethandeler", guigethandeler},
+ {"sethandeler", guisethandeler},
+ {0,0},
};
static const luaL_reg iguibutton_m[] = {
- {"move", moveiguielement},
- {"settext", setiguitext},
- {"remove", removeiguielement},
- {0,0},
+ {"move", moveiguielement},
+ {"settext", setiguitext},
+ {"remove", removeiguielement},
+ {0,0},
};
-int iguibutton_register(lua_State* L, IrrlichtDevice* d){
- //device = d;
- tL = L;
+int iguibutton_register(lua_State* L){
+ tL = L;
- luaL_newmetatable(L, "gui.iguibutton");
+ luaL_newmetatable(L, "gui.iguibutton");//{m_iguibutton}
+ lua_newtable(L);//{m_iguibutton},{}
+ luaL_register(L,NULL,iguibutton_m);//{m_iguibutton},{}
+ lua_setfield(L,-2,"__index");//{m_iguibutton}
- luaL_register(L,"iguibutton",iguibutton_f);
+ lua_pop(L,1);
- lua_pushstring(L,"__index");
- lua_pushstring(L,"gethandeler");
- lua_gettable(L,-3);
- lua_settable(L,-4);
+ lua_getglobal(L,"gui");
+ lua_pushcfunction(L,newiguibutton);
+ lua_setfield(L,-2,"newbutton");
- lua_pushstring(L,"__newindex");
- lua_pushstring(L,"sethandeler");
- lua_gettable(L,-3);
- lua_settable(L,-4);
-
- luaL_register(L, NULL, iguibutton_m);
-
- return 1;
+ lua_pop(L,1);
}
diff --git a/src/client/lua_api/gui/iguibutton.hpp b/src/client/lua_api/gui/iguibutton.hpp
index 4059767..abccbf0 100644
--- a/src/client/lua_api/gui/iguibutton.hpp
+++ b/src/client/lua_api/gui/iguibutton.hpp
@@ -8,4 +8,4 @@ extern "C" {
}
#include <irrlicht.h>
-int iguibutton_register(lua_State* L, irr::IrrlichtDevice* d);
+int iguibutton_register(lua_State* L);
diff --git a/src/client/lua_api/gui/iguicheckbox.cpp b/src/client/lua_api/gui/iguicheckbox.cpp
index c6e5955..74dd12e 100644
--- a/src/client/lua_api/gui/iguicheckbox.cpp
+++ b/src/client/lua_api/gui/iguicheckbox.cpp
@@ -10,21 +10,26 @@ extern "C" {
#include "../../../shared/lua_api/common.h"
using namespace irr;
+using namespace gui;
using namespace core;
extern IrrlichtDevice* device;
-//new({startx,starty},{endx,endy},"checkbox_name",parent)
+//new({startx,starty},{endx,endy},"checkbox_name"[,ud_parent])
int newiguicheckbox(lua_State* L){
- int parentid = lua_tointeger(L,-1);
- lua_pop(L,1);//{startx,starty},{endx,endy},"checkbox_name"
+ 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 %s\n",par);
+ 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<int>(startx,starty,endx,endy),0,-1,stringw(text).c_str());
+ irr::gui::IGUICheckBox* cb = device->getGUIEnvironment()->addCheckBox(false,core::rect<int>(startx,starty,endx,endy),par,-1,stringw(text).c_str());
lua_pushlightuserdata(L,cb);//*checkbox
luaL_getmetatable(L,"gui.checkbox");//*checkbox,m{gui.checkbox}
lua_setmetatable(L,-2);//*checkbox
@@ -48,7 +53,6 @@ int iguicheckbox_register(lua_State* L){//
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;
diff --git a/src/client/lua_api/gui/iguielement.cpp b/src/client/lua_api/gui/iguielement.cpp
index c01fa70..436bf93 100644
--- a/src/client/lua_api/gui/iguielement.cpp
+++ b/src/client/lua_api/gui/iguielement.cpp
@@ -4,6 +4,9 @@ extern "C" {
#include <lauxlib.h>
#include <lualib.h>
}
+
+
+#include "../../../shared/lua_api/common.h"
#include <irrlicht.h>
#include "../guiparts.hpp"
@@ -22,6 +25,41 @@ static LIGUIElement* toiguielement(lua_State* L){
return toiguielement(L,1);
}
+//move({element},{x,y}) -> nil
+int moveiguielement(lua_State* L){
+ //printf("Got call to move element\n");
+ long x,y;
+ popvector2i(L,&x,&y); //{element}
+ //printf("I want to move to %d %d\n",x,y);
+ lua_getfield(L,-1,"guielement");//{element},*element
+ IGUIElement *el = (IGUIElement*)lua_touserdata(L,-1);
+ //printf("Found element to move: %p\n",el);
+ lua_pop(L,2);//
+
+ el->move(position2d<s32>(x,y));
+ el->updateAbsolutePosition();
+ return 0;
+}
+
+//getabsrect({element})-> {{sx,sy},{ex,ey}}
+int getiguiclippingrect(lua_State* L){
+ printf("Getting iguiclipping elemnt\n");
+ lua_getfield(L,-1,"guielement");
+ IGUIElement *el = (IGUIElement*)lua_touserdata(L,-1);
+ core::rect<s32> rect = el->getAbsoluteClippingRect();
+ position2d<s32> ul = rect.UpperLeftCorner;
+ position2d<s32> lr = rect.LowerRightCorner;
+ lua_newtable(L);
+ lua_pushnumber(L,1);
+ double sx,sy,ex,ey;
+ pushvector2i(L,ul.X,ul.Y);
+ lua_settable(L,-3);
+ lua_pushnumber(L,2);
+ pushvector2i(L,lr.X,lr.Y);
+ lua_settable(L,-3);
+ return 1;
+}
+/*
int moveiguielement(lua_State* L){
LIGUIElement* ele = toiguielement(L,1);
int x = luaL_optint(L,2,0);
@@ -29,6 +67,7 @@ int moveiguielement(lua_State* L){
ele->e->move(position2d<s32>(x,y));
return 0;
}
+*/
int setiguitext(lua_State* L){
LIGUIElement* ele = toiguielement(L,1);
@@ -41,12 +80,13 @@ int setiguitext(lua_State* L){
return 0;
}
+//remove({self})
int removeiguielement(lua_State* L){
- LIGUIElement* ele = toiguielement(L,1);
- ele->e->remove();
- hashmap_free(ele->funcmap);
- free(ele);
- return 0;
+ lua_getfield(L,-1,"guielement");
+ IGUIElement *ele = (IGUIElement*)lua_touserdata(L,-1);
+ ele->remove();
+ lua_pop(L,2);
+ return 0;
}
int guigethandeler(lua_State* L){
diff --git a/src/client/lua_api/gui/iguielement.hpp b/src/client/lua_api/gui/iguielement.hpp
index a036fd5..84fc2c9 100644
--- a/src/client/lua_api/gui/iguielement.hpp
+++ b/src/client/lua_api/gui/iguielement.hpp
@@ -9,6 +9,7 @@ extern "C" {
#include <irrlicht.h>
int moveiguielement(lua_State* L);
+int getiguiclippingrect(lua_State* L);
int setiguitext(lua_State* L);
int removeiguielement(lua_State* L);
int guigethandeler(lua_State* L);
diff --git a/src/client/lua_api/gui/iguiimage.cpp b/src/client/lua_api/gui/iguiimage.cpp
index fea283b..370da68 100644
--- a/src/client/lua_api/gui/iguiimage.cpp
+++ b/src/client/lua_api/gui/iguiimage.cpp
@@ -31,33 +31,34 @@ extern IGUIEnvironment* env;
//EGUI_EVENT_TYPE etype = e.GUIEvent.EventType;
//printf("Detected image event\n");
//if(etype == EGET_ELEMENT_CLOSED){
- //lua_rawgeti(tL,LUA_REGISTRYINDEX,ref);
- //printf("getting raw, the thing on the top of stack is a %s\n",luaL_typename(tL,-1));
- //LIGUIElement* tbut = checkiguiwindow(tL,-1);
- //int hashmapresponse;
- //char* hashkey = (char*)"onclose";
- //int terror = hashmap_get(tbut->funcmap,hashkey,(void**)&hashmapresponse);
- //if(terror == MAP_OK){ //Only call if we actually have that function.
- //printf("Looks like we have an onclose function, calling!\n");
- //lua_rawgeti(tL,LUA_REGISTRYINDEX,hashmapresponse); //push the function
- //lua_rawgeti(tL,LUA_REGISTRYINDEX,ref); //push the referance to iguielement
- //lua_call(tL,1,1);
- ////int b = lua_isnoneornil(tL,1);
- //int a = lua_toboolean(tL,-1);
- //printf("a:%d\n",a);
- //return a;
- //}
+ //lua_rawgeti(tL,LUA_REGISTRYINDEX,ref);
+ //printf("getting raw, the thing on the top of stack is a %s\n",luaL_typename(tL,-1));
+ //LIGUIElement* tbut = checkiguiwindow(tL,-1);
+ //int hashmapresponse;
+ //char* hashkey = (char*)"onclose";
+ //int terror = hashmap_get(tbut->funcmap,hashkey,(void**)&hashmapresponse);
+ //if(terror == MAP_OK){ //Only call if we actually have that function.
+ //printf("Looks like we have an onclose function, calling!\n");
+ //lua_rawgeti(tL,LUA_REGISTRYINDEX,hashmapresponse); //push the function
+ //lua_rawgeti(tL,LUA_REGISTRYINDEX,ref); //push the referance to iguielement
+ //lua_call(tL,1,1);
+ ////int b = lua_isnoneornil(tL,1);
+ //int a = lua_toboolean(tL,-1);
+ //printf("a:%d\n",a);
+ //return a;
+ //}
//}
//printf("Oh no! an iguiimage generated an event!");
//return false;
//}
-//new({startx,starty},alpha,itexture)
+//new({startx,starty},alpha,{itexture}) -> {guielement}
static int newiguiimage(lua_State* L){
- printf("Creating iguiimage\n");
+ //printf("Creating iguiimage\n");
+ lua_getfield(L,-1,"texture");//{startx,starty},alpha,{itexture},*itexture
video::ITexture* tex = (video::ITexture*)lua_touserdata(L,-1);
- lua_pop(L,1);
+ lua_pop(L,2);//{startx,starty},alpha,
bool usealpha = lua_toboolean(L,-1);
lua_pop(L,1);
@@ -68,34 +69,49 @@ static int newiguiimage(lua_State* L){
IGUIEnvironment* env = device->getGUIEnvironment();
IGUIImage* img = env->addImage(tex,core::position2d<s32>(sx,sy),usealpha,0,-1,L"");
img->setImage(tex);
-
+
+ lua_newtable(L);
lua_pushlightuserdata(L,img);//ud_iguiimg
+ lua_setfield(L,-2,"guielement");
luaL_getmetatable(L,"iguiimage");//ud_iguiimg,{m_iguiimg}
- lua_setmetatable(L,-1);//ud_iguiimg
+ lua_setmetatable(L,-2);//ud_iguiimg
return 1;
}
+//setcolor(self,{r,g,b,a})
+int setcolor(lua_State* L){
+ long r,g,b,a;
+ popvector4i(L,&r,&g,&b,&a);
+ lua_getfield(L,-1,"guielement");
+ IGUIImage *img = (IGUIImage*)lua_touserdata(L,-1);
+ img->setColor(video::SColor(a,r,g,b));
+ lua_pop(L,2);
+ return 0;
+}
+
static const luaL_reg iguiimage_m[] = {
- //{"move", moveiguielement},
+ {"move", moveiguielement},
+ {"getabsrect", getiguiclippingrect},
+ {"setcolor", setcolor},
//{"settext", setiguitext},
- //{"remove", removeiguielement},
+ {"remove", removeiguielement},
{0, 0},
};
void iguiimage_register(lua_State* L){
- printf("Loading iguiimage\n");
+ //printf("Loading iguiimage\n");
luaL_newmetatable(L,"iguiimage");//{m_iguiimg}
- printf("made meta table\n");
+ //printf("made meta table\n");
lua_newtable(L);//{m_iguiimg},{}
luaL_register(L,NULL,iguiimage_m);//{m_iguiimg},{iguiimg_m}
- printf("About to set field\n");
+ //printf("About to set field\n");
lua_setfield(L,-2,"__index");//{m_iguiimg}
lua_pop(L,1);//
- printf("Got half way\n");
+ //printf("Got half way\n");
lua_getglobal(L,"gui");//{gui}
lua_pushcfunction(L,newiguiimage);//{gui},newimg()
lua_setfield(L,-2,"newiguiimage");//{gui}
lua_pop(L,1);//
- printf("Finished loading iguiimage\n");
+ //printf("Finished loading iguiimage\n");
}
diff --git a/src/client/lua_api/gui/iguiwindow.cpp b/src/client/lua_api/gui/iguiwindow.cpp
index 9a42dff..150ba68 100644
--- a/src/client/lua_api/gui/iguiwindow.cpp
+++ b/src/client/lua_api/gui/iguiwindow.cpp
@@ -20,82 +20,59 @@ extern "C" {
using namespace irr;
using namespace gui;
-//IrrlichtDevice* guidevice;
-
-static LIGUIElement* checkiguiwindow(lua_State* L, int index){
- void* ud = luaL_checkudata(L,index,"gui.iguiwindow");
- luaL_argcheck(L,ud != NULL, index, "'gui.iguiwindow' expected");
- return (LIGUIElement*) ud;
-}
+static bool iguiwindowevent(irr::SEvent e){
+ int ref = iguielements[e.GUIEvent.Caller];
+ lua_rawgeti(tL,LUA_REGISTRYINDEX,ref);
+ lua_getfield(tL,-1,"close");
-static LIGUIElement* checkiguiwindow(lua_State* L){
- return checkiguiwindow(L,1);
-}
+ lua_rawgeti(tL,LUA_REGISTRYINDEX,ref);
+ lua_call(tL,1,1);
-static bool iguiwindowevent(irr::SEvent e){
- IGUIElement* caller = (IGUIElement*)e.GUIEvent.Caller;
- int ref = iguielements[caller];
- EGUI_EVENT_TYPE etype = e.GUIEvent.EventType;
- printf("Detected window event\n");
- if(etype == EGET_ELEMENT_CLOSED){
- lua_rawgeti(tL,LUA_REGISTRYINDEX,ref);
- printf("getting raw, the thing on the top of stack is a %s\n",luaL_typename(tL,-1));
- LIGUIElement* tbut = checkiguiwindow(tL,-1);
- int hashmapresponse;
- char* hashkey = (char*)"onclose";
- int terror = hashmap_get(tbut->funcmap,hashkey,(void**)&hashmapresponse);
- if(terror == MAP_OK){ //Only call if we actually have that function.
- printf("Looks like we have an onclose function, calling!\n");
- lua_rawgeti(tL,LUA_REGISTRYINDEX,hashmapresponse); //push the function
- lua_rawgeti(tL,LUA_REGISTRYINDEX,ref); //push the referance to iguielement
- lua_call(tL,1,1);
- //int b = lua_isnoneornil(tL,1);
- int a = lua_toboolean(tL,-1);
- printf("a:%d\n",a);
- return a;
- }
- }
- printf("Oh no! an iguiwindow generated an event!");
- return false;
+ int shouldclose = lua_toboolean(tL,-1);
+ return shouldclose == 1;
}
-//new({width,height},{posx,posy},"title"[,parent])
+//new({posx,posy},{width,height},"title"[,parent])
static int newiguiwindow(lua_State* L){
- printf("Creating window\n");
-
+ IGUIElement* parent = NULL;
int numargs = lua_gettop(L);
-
- int parentid = lua_tointeger(L,-1);
- lua_pop(L,1);
+ if(numargs == 4){
+ parent = (IGUIElement*)lua_touserdata(L,-1);
+ lua_pop(L,1);
+ }
const char* title_c = lua_tostring(L,-1);
const wchar_t* title_w = irr::core::stringw(title_c).c_str();
lua_pop(L,1);
//Frame position
long x,y,w,h;
- popvector2i(L,&x,&y);
popvector2i(L,&w,&h);
+ popvector2i(L,&x,&y);
- printf("I want to make a frame at (%d,%d) size (%d,%d)\n",x,y,w,h);
-
//Create the window
IGUIEnvironment* env = guidevice->getGUIEnvironment();
IGUIWindow* wi = env->addWindow(
core::rect<s32>(x,y,x+w,y+h),
false,
title_w,
- guielements[parentid],
+ parent,
-1
);
- lua_newtable(L);//{}
lua_pushlightuserdata(L,wi);
- lua_setfield(L,-2,"element");
-
- luaL_getmetatable(L,"gui.window");
- lua_setmetatable(L,-2);
+ lua_newtable(L);//{}
+ lua_pushlightuserdata(L,wi);//{},{ud_window}
+ lua_setfield(L,-2,"element");//{element=ud_window}
+
+ luaL_getmetatable(L,"gui.window");//{element=ud_window},{m_gui.window}
+ lua_setmetatable(L,-2);//{element=ud_window, __meta=gui.window}
+
+ int ref = luaL_ref(L,LUA_REGISTRYINDEX);//ref
+ lua_rawgeti(L,LUA_REGISTRYINDEX,ref);//ref,{element=ud_window, __meta=gui.window}
+ iguielements[wi] = ref;
+
registerguicallback(wi,EGET_ELEMENT_CLOSED,iguiwindowevent);
return 1;
}
@@ -105,11 +82,12 @@ static const luaL_reg iguiwindow_m[] = {
{"settext", setiguitext},
{"remove", removeiguielement},
{"getid", guigetid},
+// bool :: iguiwindow:close() -- Called when window is closed, returning
+// -- Anything but false or nil prevents close
{0, 0},
};
int iguiwindow_register(lua_State* L, IrrlichtDevice* d){
- printf("Loading window\n");
luaL_newmetatable(L,"gui.window");//m{gui.checkbox}
luaL_register(L,NULL,iguiwindow_m);
lua_pop(L,1);//