diff options
| author | Alexander Pickering <alexandermpickering@gmail.com> | 2018-05-28 17:07:04 -0400 |
|---|---|---|
| committer | Alexander Pickering <alexandermpickering@gmail.com> | 2018-05-28 17:07:04 -0400 |
| commit | 06d3e8182d018ca613f177f6ff7a3bbb6494cc79 (patch) | |
| tree | 18289e9d48c03cb3910e5fbe27ffd18c6b81eb53 /src/client/lua_api/gui/iguiimage.cpp | |
| parent | 5fc253ce728c6e078886e092376c2e0f0320ebd9 (diff) | |
| download | brokengine-06d3e8182d018ca613f177f6ff7a3bbb6494cc79.tar.gz brokengine-06d3e8182d018ca613f177f6ff7a3bbb6494cc79.tar.bz2 brokengine-06d3e8182d018ca613f177f6ff7a3bbb6494cc79.zip | |
Various additions
Various additions, updates, and bugfixes while making mahjong solitare.
Diffstat (limited to 'src/client/lua_api/gui/iguiimage.cpp')
| -rw-r--r-- | src/client/lua_api/gui/iguiimage.cpp | 60 |
1 files changed, 38 insertions, 22 deletions
diff --git a/src/client/lua_api/gui/iguiimage.cpp b/src/client/lua_api/gui/iguiimage.cpp index fea283b..af1e133 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"); + 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,18 +69,33 @@ 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}, }; |
