static int tolua_Cocos2dx_LayoutParameter_setMargin00(lua_State* tolua_S) { #ifndef TOLUA_RELEASE tolua_Error tolua_err; if ( !tolua_isusertype(tolua_S,1,"LayoutParameter",0,&tolua_err) || !tolua_istable(tolua_S, 2, 0, &tolua_err) || !tolua_isnoobj(tolua_S,3,&tolua_err) ) goto tolua_lerror; else #endif { LayoutParameter* self = (LayoutParameter*) tolua_tousertype(tolua_S,1,0); #ifndef TOLUA_RELEASE if (!self) tolua_error(tolua_S,"invalid 'self' in function 'setMargin'", NULL); #endif Margin margin; lua_pushstring(tolua_S, "left"); lua_gettable(tolua_S,2); margin.left = lua_isnil(tolua_S,-1) ? 0 : lua_tonumber(tolua_S,-1); lua_pop(tolua_S,1); lua_pushstring(tolua_S, "top"); lua_gettable(tolua_S,2); margin.top = lua_isnil(tolua_S,-1) ? 0 : lua_tonumber(tolua_S,-1); lua_pop(tolua_S,1); lua_pushstring(tolua_S, "right"); lua_gettable(tolua_S,2); margin.right = lua_isnil(tolua_S,-1) ? 0 : lua_tonumber(tolua_S,-1); lua_pop(tolua_S,1); lua_pushstring(tolua_S, "bottom"); lua_gettable(tolua_S,2); margin.bottom = lua_isnil(tolua_S,-1) ? 0 : lua_tonumber(tolua_S,-1); lua_pop(tolua_S,1); self->setMargin(margin); } return 0; #ifndef TOLUA_RELEASE tolua_lerror: tolua_error(tolua_S,"#ferror in function 'setMargin'.",&tolua_err); return 0; #endif }
static int lua_cocos2dx_LayoutParameter_setMargin(lua_State* L) { if (nullptr == L) return 0; int argc = 0; LayoutParameter* self = nullptr; #if COCOS2D_DEBUG >= 1 tolua_Error tolua_err; if (!tolua_isusertype(L,1,"ccui.LayoutParameter",0,&tolua_err)) goto tolua_lerror; #endif self = static_cast<LayoutParameter*>(tolua_tousertype(L,1,0)); #if COCOS2D_DEBUG >= 1 if (nullptr == self) { tolua_error(L,"invalid 'self' in function 'lua_cocos2dx_LayoutParameter_setMargin'\n", NULL); return 0; } #endif argc = lua_gettop(L) - 1; if (1 == argc) { #if COCOS2D_DEBUG >= 1 if (!tolua_istable(L, 2, 0, &tolua_err)) { goto tolua_lerror; } #endif Margin margin; lua_pushstring(L, "left"); lua_gettable(L,2); margin.left = lua_isnil(L,-1) ? 0 : lua_tonumber(L,-1); lua_pop(L,1); lua_pushstring(L, "top"); lua_gettable(L,2); margin.top = lua_isnil(L,-1) ? 0 : lua_tonumber(L,-1); lua_pop(L,1); lua_pushstring(L, "right"); lua_gettable(L,2); margin.right = lua_isnil(L,-1) ? 0 : lua_tonumber(L,-1); lua_pop(L,1); lua_pushstring(L, "bottom"); lua_gettable(L,2); margin.bottom = lua_isnil(L,-1) ? 0 : lua_tonumber(L,-1); lua_pop(L,1); self->setMargin(margin); return 0; } CCLOG("'setMargin' function of LayoutParameter has wrong number of arguments: %d, was expecting %d\n", argc, 1); return 0; #if COCOS2D_DEBUG >= 1 tolua_lerror: tolua_error(L,"#ferror in function 'setMargin'.",&tolua_err); return 0; #endif }
void WidgetReader::setPropsFromJsonDictionary(Widget *widget, const rapidjson::Value &options) { bool ignoreSizeExsit = DICTOOL->checkObjectExist_json(options, P_IgnoreSize); if (ignoreSizeExsit) { widget->ignoreContentAdaptWithSize(DICTOOL->getBooleanValue_json(options, P_IgnoreSize)); } widget->setSizeType((Widget::SizeType)DICTOOL->getIntValue_json(options, P_SizeType)); widget->setPositionType((Widget::PositionType)DICTOOL->getIntValue_json(options, P_PositionType)); widget->setSizePercent(Vec2(DICTOOL->getFloatValue_json(options, P_SizePercentX), DICTOOL->getFloatValue_json(options, P_SizePercentY))); widget->setPositionPercent(Vec2(DICTOOL->getFloatValue_json(options, P_PositionPercentX), DICTOOL->getFloatValue_json(options, P_PositionPercentY))); /* adapt screen */ float w = 0, h = 0; bool adaptScrenn = DICTOOL->getBooleanValue_json(options, P_AdaptScreen); if (adaptScrenn) { Size screenSize = CCDirector::getInstance()->getWinSize(); w = screenSize.width; h = screenSize.height; } else { w = DICTOOL->getFloatValue_json(options, P_Width); h = DICTOOL->getFloatValue_json(options, P_Height); } widget->setSize(Size(w, h)); widget->setTag(DICTOOL->getIntValue_json(options, P_Tag)); widget->setActionTag(DICTOOL->getIntValue_json(options, P_ActionTag)); widget->setTouchEnabled(DICTOOL->getBooleanValue_json(options, P_TouchAble)); const char* name = DICTOOL->getStringValue_json(options, P_Name); const char* widgetName = name?name:"default"; widget->setName(widgetName); float x = DICTOOL->getFloatValue_json(options, P_X); float y = DICTOOL->getFloatValue_json(options, P_Y); widget->setPosition(Vec2(x,y)); bool sx = DICTOOL->checkObjectExist_json(options, P_ScaleX); if (sx) { widget->setScaleX(DICTOOL->getFloatValue_json(options, P_ScaleX)); } bool sy = DICTOOL->checkObjectExist_json(options, P_ScaleY); if (sy) { widget->setScaleY(DICTOOL->getFloatValue_json(options, P_ScaleY)); } bool rt = DICTOOL->checkObjectExist_json(options, P_Rotation); if (rt) { widget->setRotation(DICTOOL->getFloatValue_json(options, P_Rotation)); } bool vb = DICTOOL->checkObjectExist_json(options, P_Visbile); if (vb) { widget->setVisible(DICTOOL->getBooleanValue_json(options, P_Visbile)); } int z = DICTOOL->getIntValue_json(options, P_ZOrder); widget->setLocalZOrder(z); bool layout = DICTOOL->checkObjectExist_json(options, P_LayoutParameter); if (layout) { const rapidjson::Value& layoutParameterDic = DICTOOL->getSubDictionary_json(options, P_LayoutParameter); int paramType = DICTOOL->getIntValue_json(layoutParameterDic, P_Type); LayoutParameter* parameter = nullptr; switch (paramType) { case 0: break; case 1: { parameter = LinearLayoutParameter::create(); int gravity = DICTOOL->getIntValue_json(layoutParameterDic, P_Gravity); ((LinearLayoutParameter*)parameter)->setGravity((cocos2d::ui::LinearLayoutParameter::LinearGravity)gravity); break; } case 2: { parameter = RelativeLayoutParameter::create(); RelativeLayoutParameter* rParameter = (RelativeLayoutParameter*)parameter; const char* relativeName = DICTOOL->getStringValue_json(layoutParameterDic, P_RelativeName); rParameter->setRelativeName(relativeName); const char* relativeToName = DICTOOL->getStringValue_json(layoutParameterDic, P_RelativeToName); rParameter->setRelativeToWidgetName(relativeToName); int align = DICTOOL->getIntValue_json(layoutParameterDic, P_Align); rParameter->setAlign((cocos2d::ui::RelativeLayoutParameter::RelativeAlign)align); break; } default: break; } if (parameter) { float mgl = DICTOOL->getFloatValue_json(layoutParameterDic, P_MarginLeft); float mgt = DICTOOL->getFloatValue_json(layoutParameterDic, P_MarginTop); float mgr = DICTOOL->getFloatValue_json(layoutParameterDic, P_MarginRight); float mgb = DICTOOL->getFloatValue_json(layoutParameterDic, P_MarginDown); parameter->setMargin(Margin(mgl, mgt, mgr, mgb)); widget->setLayoutParameter(parameter); } } }