diff options
Diffstat (limited to 'src/client/lua_api/gui/iguielement.cpp')
| -rw-r--r-- | src/client/lua_api/gui/iguielement.cpp | 44 |
1 files changed, 42 insertions, 2 deletions
diff --git a/src/client/lua_api/gui/iguielement.cpp b/src/client/lua_api/gui/iguielement.cpp index 81d339f..4ef5026 100644 --- a/src/client/lua_api/gui/iguielement.cpp +++ b/src/client/lua_api/gui/iguielement.cpp @@ -1,6 +1,15 @@ /*This file defines some things that all igui stuff can do*/ /*** -@module gui +All gui elements inherit from iguielement. +Some functions (like settext()) do different things for different elements. +All gui elements can call the following callbacks: + + onFocus(self) + onUnfous(self) + onHover(self) + onLeave(self) + +@classmod iguielement */ extern "C" { #include <lua.h> @@ -19,7 +28,7 @@ using namespace core; using namespace gui; /*** -Move a window (by an offset) +Move an element (by an offset) from it's current position @function guielement:move() @tparam vector2d position The offset to move this element by */ @@ -40,6 +49,24 @@ int moveiguielement(lua_State* L){ } /*** +Set the visibility of this element +@function guielement:setvisible() +@tparam boolean visible Should this element be visible? +*/ +int setvisible(lua_State *L){ + int v = lua_toboolean(L,-1); + lua_pop(L,1); + + lua_getfield(L,-1,"guielement"); + IGUIElement *el = (IGUIElement*)lua_touserdata(L,-1);//{element},ud_element + lua_pop(L,2); + + el->setVisible(v == 1); + + return 0; +} + +/*** Find the rectangle that an element occupies @function guielement:getabsrect() @treturn rect The rectangle that this element occupies @@ -60,6 +87,7 @@ int getiguiclippingrect(lua_State* L){ return 1; } + /*** Find the rectangle that an element occupies that is visible to the user @function guielement:getabsclippingrect() @@ -212,3 +240,15 @@ int guigetid(lua_State* L){ return 1; } +extern const luaL_reg iguielement_m[] = { + {"move", moveiguielement}, + {"setvisible", setvisible}, + {"setrect", setrelrect}, + {"getabsrect", getiguiclippingrect}, + {"getabsclippingrect", getiguiabsclippingrect}, + {"getrelrect", getiguirelrect}, + {"settext", setiguitext}, + {"gettext", getiguitext}, + {"remove", removeiguielement}, + {NULL, NULL} +}; |
