aboutsummaryrefslogtreecommitdiff
path: root/src/client/lua_api/gui
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/lua_api/gui')
-rw-r--r--src/client/lua_api/gui/iguielement.cpp10
-rw-r--r--src/client/lua_api/gui/iguielement.hpp1
-rw-r--r--src/client/lua_api/gui/iguigeneric.cpp27
-rw-r--r--src/client/lua_api/gui/iguigeneric.hpp11
-rw-r--r--src/client/lua_api/gui/iguiimage.cpp1
-rw-r--r--src/client/lua_api/gui/iguiwindow.cpp31
6 files changed, 18 insertions, 63 deletions
diff --git a/src/client/lua_api/gui/iguielement.cpp b/src/client/lua_api/gui/iguielement.cpp
index cb395af..c01fa70 100644
--- a/src/client/lua_api/gui/iguielement.cpp
+++ b/src/client/lua_api/gui/iguielement.cpp
@@ -9,6 +9,7 @@ extern "C" {
using namespace irr;
using namespace core;
+using namespace gui;
static LIGUIElement* toiguielement(lua_State* L,int index){
LIGUIElement* ret = (LIGUIElement*)lua_touserdata(L,index);
@@ -91,3 +92,12 @@ int guisethandeler(lua_State* L){
}
return 0;
}
+
+//ud_iguielement
+int guigetid(lua_State* L){
+ IGUIElement* el = (IGUIElement*)lua_touserdata(L,-1);
+ lua_pop(L,1);
+ int id = el->getID();
+ lua_pushnumber(L,id);
+ return 1;
+}
diff --git a/src/client/lua_api/gui/iguielement.hpp b/src/client/lua_api/gui/iguielement.hpp
index 5756a34..a036fd5 100644
--- a/src/client/lua_api/gui/iguielement.hpp
+++ b/src/client/lua_api/gui/iguielement.hpp
@@ -13,3 +13,4 @@ int setiguitext(lua_State* L);
int removeiguielement(lua_State* L);
int guigethandeler(lua_State* L);
int guisethandeler(lua_State* L);
+int guigetid(lua_State* L);
diff --git a/src/client/lua_api/gui/iguigeneric.cpp b/src/client/lua_api/gui/iguigeneric.cpp
deleted file mode 100644
index 7f39fdc..0000000
--- a/src/client/lua_api/gui/iguigeneric.cpp
+++ /dev/null
@@ -1,27 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <vector>
-#include <memory>
-#include <map>
-#include <string>
-#include <functional>
-extern "C" {
- #include <lua.h>
- #include <lauxlib.h>
- #include <lualib.h>
-}
-#include <irrlicht.h>
-#include "../guiparts.hpp"
-#include "iguielement.hpp"
-#include "../../callbackhandeler.hpp"
-#include "../../util/hashmap.h"
-
-using namespace irr;
-using namespace gui;
-
-extern IrrlichtDevice* device;
-
-int iguigeneric_register(lua_State* L, IrrlichtDevice* d){
-
- return 0;
-}
diff --git a/src/client/lua_api/gui/iguigeneric.hpp b/src/client/lua_api/gui/iguigeneric.hpp
deleted file mode 100644
index 287fb4e..0000000
--- a/src/client/lua_api/gui/iguigeneric.hpp
+++ /dev/null
@@ -1,11 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <vector>
-extern "C" {
- #include <lua.h>
- #include <lauxlib.h>
- #include <lualib.h>
-}
-#include <irrlicht.h>
-
-int iguigeneric_register(lua_State* L, irr::IrrlichtDevice* d);
diff --git a/src/client/lua_api/gui/iguiimage.cpp b/src/client/lua_api/gui/iguiimage.cpp
index c349c3e..fea283b 100644
--- a/src/client/lua_api/gui/iguiimage.cpp
+++ b/src/client/lua_api/gui/iguiimage.cpp
@@ -86,6 +86,7 @@ static const luaL_reg iguiimage_m[] = {
void iguiimage_register(lua_State* L){
printf("Loading iguiimage\n");
luaL_newmetatable(L,"iguiimage");//{m_iguiimg}
+ 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");
diff --git a/src/client/lua_api/gui/iguiwindow.cpp b/src/client/lua_api/gui/iguiwindow.cpp
index 038c9f7..9a42dff 100644
--- a/src/client/lua_api/gui/iguiwindow.cpp
+++ b/src/client/lua_api/gui/iguiwindow.cpp
@@ -59,9 +59,12 @@ static bool iguiwindowevent(irr::SEvent e){
return false;
}
-//new({posx,posy},{width,height}[,"title"][,parent])
+//new({width,height},{posx,posy},"title"[,parent])
static int newiguiwindow(lua_State* L){
printf("Creating window\n");
+
+ int numargs = lua_gettop(L);
+
int parentid = lua_tointeger(L,-1);
lua_pop(L,1);
@@ -97,15 +100,11 @@ static int newiguiwindow(lua_State* L){
return 1;
}
-static const luaL_reg iguiwindow_f[] = {
- {"new", newiguiwindow},
- {0,0},
-};
-
static const luaL_reg iguiwindow_m[] = {
{"move", moveiguielement},
{"settext", setiguitext},
{"remove", removeiguielement},
+ {"getid", guigetid},
{0, 0},
};
@@ -116,27 +115,9 @@ int iguiwindow_register(lua_State* L, IrrlichtDevice* d){
lua_pop(L,1);//
lua_getglobal(L,"gui");
- lua_pushstring(L,"newwindow");
lua_pushcfunction(L,newiguiwindow);
- lua_settable(L,-3);
+ lua_setfield(L,-2,"newwindow");
lua_pop(L,1);
return 0;
- //luaL_newmetatable(L, "gui.iguiwindow");
-
- //luaL_register(L,"iguiwindow",iguiwindow_f);
-
- //lua_pushstring(L,"__index");
- //lua_pushstring(L,"gethandeler");
- //lua_gettable(L,-3);
- //lua_settable(L,-4);
-
- //lua_pushstring(L,"__newindex");
- //lua_pushstring(L,"sethandeler");
- //lua_gettable(L,-3);
- //lua_settable(L,-4);
-
- //luaL_register(L, NULL, iguiwindow_m);
-
- //return 1;
}