From 83a85531ae789e2f30da2379990899f815f53ff1 Mon Sep 17 00:00:00 2001 From: Alexander Date: Sun, 10 Feb 2019 18:16:04 -0500 Subject: Added new element, added server-specific code for networking Added a new element for client gui: iguicombobox Added a part of the engine specifically for the server so server is no longer just a stripped down client --- src/client/lua_api/gui/iguielement.cpp | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'src/client/lua_api/gui/iguielement.cpp') diff --git a/src/client/lua_api/gui/iguielement.cpp b/src/client/lua_api/gui/iguielement.cpp index 5c51c15..af9d234 100644 --- a/src/client/lua_api/gui/iguielement.cpp +++ b/src/client/lua_api/gui/iguielement.cpp @@ -27,6 +27,7 @@ using namespace irr; using namespace core; using namespace gui; +extern IrrlichtDevice *device; /*** Move an element (by an offset) from it's current position @function guielement:move() @@ -145,8 +146,9 @@ int setiguitext(lua_State* L){ IGUIElement* el = (IGUIElement*)lua_touserdata(L,-1);//{guielement},ud_iguielement lua_pop(L,2); int textlen = strlen(text); - wchar_t* wtext = (wchar_t*)malloc(sizeof(wchar_t)*textlen); + wchar_t* wtext = (wchar_t*)malloc(sizeof(wchar_t)*textlen + 1);//+1 for null? mbstowcs(wtext,text,textlen); + wtext[textlen] = '\0'; el->setText(wtext); free(wtext); return 0; @@ -198,6 +200,21 @@ int removeiguielement(lua_State* L){ return 0; } +/*** +Focuses a gui element. +Will cause a ELEMENT_FOCUS_LOST followed by an ELEMENT_FOCUSED event. +If either events are trapped/returned from, then the focus will not change. +@function iguielement:focus() +*/ +//focus({self}) +int focus(lua_State *L){ + lua_getfield(L,-1,"guielement"); + IGUIElement *ele = (IGUIElement*)lua_touserdata(L,-1); + device->getGUIEnvironment()->setFocus(ele); + lua_pop(L,2); + return 0; +} + class guicallback{ private: @@ -250,5 +267,6 @@ extern const luaL_reg iguielement_m[] = { {"settext", setiguitext}, {"gettext", getiguitext}, {"remove", removeiguielement}, + {"focus", focus}, {NULL, NULL} }; -- cgit v1.2.3-70-g09d2