extern "C" { #include #include #include } #include #include #include #include "iguiutil.hpp" using namespace irr; using namespace gui; extern IrrlichtDevice* device; #define register(l,n) lua_pushnumber(l,n);\ lua_setglobal(l,#n); static int setskincolor(lua_State* L){ irr::gui::EGUI_DEFAULT_COLOR which = (irr::gui::EGUI_DEFAULT_COLOR)luaL_optint(L,1,0); video::SColor c = video::SColor(0,0,0,0); lua_popscolor(L,2,&c); printf("Setting color %d to (%d, %d, %d, %d)\n",which,c.getRed(),c.getBlue(),c.getGreen(),c.getAlpha()); IGUIEnvironment* env = device->getGUIEnvironment(); env->getSkin()->setColor(which,c); printf("Color is now %d\n",env->getSkin()->getColor(which).getAlpha()); return 0; } int register_skin(lua_State* L){ register(L,EGDC_3D_DARK_SHADOW); register(L,EGDC_3D_SHADOW); register(L,EGDC_3D_FACE); register(L,EGDC_3D_HIGH_LIGHT); register(L,EGDC_ACTIVE_BORDER); register(L,EGDC_ACTIVE_CAPTION); register(L,EGDC_APP_WORKSPACE); register(L,EGDC_BUTTON_TEXT); register(L,EGDC_GRAY_TEXT); register(L,EGDC_HIGH_LIGHT); register(L,EGDC_HIGH_LIGHT_TEXT); register(L,EGDC_INACTIVE_BORDER); register(L,EGDC_INACTIVE_CAPTION); register(L,EGDC_TOOLTIP); register(L,EGDC_TOOLTIP_BACKGROUND); register(L,EGDC_SCROLLBAR); register(L,EGDC_WINDOW); register(L,EGDC_WINDOW_SYMBOL); register(L,EGDC_ICON); register(L,EGDC_ICON_HIGH_LIGHT); register(L,EGDC_GRAY_WINDOW_SYMBOL); register(L,EGDC_EDITABLE); register(L,EGDC_GRAY_EDITABLE); register(L,EGDC_FOCUSED_EDITABLE); lua_pushcfunction(L,setskincolor); lua_setglobal(L,"setskincolor"); return 0; }