// // AniPlainLabel.cpp // WattsenglishToyApp-mobile // // Created by Katarzyna Kalinowska-Górska on 19/11/2019. // #include #include "AniPlainLabel.h" #include "AniScalingUtils.h" #include "AniJSONParseUtils.h" AniPlainLabel* AniPlainLabel::create(const std::string& text, const std::string fontPath, int fontBaseSize) { AniPlainLabel * label = new (std::nothrow) AniPlainLabel(); if(label && label->init(text, fontPath, fontBaseSize)) { label->autorelease(); return label; } CC_SAFE_DELETE(label); return nullptr; } bool AniPlainLabel::init(const std::string& text, const std::string fontPath, int fontBaseSize){ if(!cocos2d::Label::initWithTTF(text, "fonts/ComicSansMSBold.ttf", fontBaseSize*AniScalingUtils::getScaleForFont())){ //120 return false; } return true; } void AniPlainLabel::loadPropertiesFromJSON(const rapidjson::Value& jsonValue, AniLayoutViewInterface* scene, const std::string resFolder, const std::string altResFolder) { this->loadCommonPropertiesFromJSON(jsonValue); if(AniJSONParseUtils::hasMemberColor3B(jsonValue, "colour")){ setColor(AniJSONParseUtils::getColor3B(jsonValue["colour"])); } } void AniPlainLabel::prepareSize(const rapidjson::Value& jsonValue, float& width, float& height) { width = this->getBoundingBox().size.width; height = this->getBoundingBox().size.height; // width = this->getContentSize().width; // height = this->getContentSize().height; } void AniPlainLabel::setProperty(std::string propertyName, const rapidjson::Value& newValue, ActionParseDelegate* parseDelegate) { if(propertyName == "opacity"){ auto value = newValue.GetInt(); this->setOpacity(value); } } void AniPlainLabel::callFunctionByName(std::string methodName, const rapidjson::Value* arguments, ActionParseDelegate* parseDelegate, std::function callback) { AniLayoutObject::callFunctionByName(methodName, arguments, parseDelegate); // auto scale = 1/cocos2d::Director::getInstance()->getContentScaleFactor(); // if(methodName == "setVisible"){ // if((*arguments).IsArray()){ // this->setVisible((*arguments).GetArray()[0].GetBool()); // } // } // else if(methodName == "setFlippedX"){ // if((*arguments).IsArray()){ // this->setFlippedX((*arguments).GetArray()[0].GetBool()); // } // } // else if(methodName == "setFlippedY"){ // if((*arguments).IsArray()){ // this->setFlippedY((*arguments).GetArray()[0].GetBool()); // } // } // else if (methodName == "setScale"){ // if((*arguments).IsArray()){ // this->setScale((*arguments).GetArray()[0].GetFloat(), (*arguments).GetArray()[0].GetFloat()); // } // } // else if(methodName == "setOpacity"){ // if((*arguments).IsArray()){ // this->setOpacity((*arguments).GetArray()[0].GetInt()); // } // } // else if(methodName == "setPositionX"){ // if((*arguments).IsArray()){ // this->setPositionX((*arguments).GetArray()[0].GetFloat()*scale); // } // } // else if(methodName == "setPositionY"){ // if((*arguments).IsArray()){ // this->setPositionY((*arguments).GetArray()[0].GetFloat()*scale); // } // } // else if(methodName == "setPosition"){ // if((*arguments).IsArray()){ // auto point = AniJSONParseUtils::getPoint((*arguments).GetArray()[0]); // AniMathUtils::multiplyPoint(point, scale); // this->setPosition(point); // } // } // else if(methodName == "setTextureRect"){ // if((*arguments).IsArray()){ // auto newRect = AniJSONParseUtils::getRect((*arguments).GetArray()[0]); // AniMathUtils::multiplyRectPosition(newRect, scale); // this->setTextureRect(newRect); // } // } // else if(methodName == "setContentSize"){ // if((*arguments).IsArray()){ // this->setContentSize(AniJSONParseUtils::getSize((*arguments).GetArray()[0])); // } // } // else if(methodName == "setRotation"){ // if((*arguments).IsArray()){ // this->setRotation(((*arguments).GetArray()[0]).GetFloat()); // } // } // else if(methodName == "clipSprite"){ // if((*arguments).IsArray()){ // auto by = AniJSONParseUtils::getPoint((*arguments)[0]); // auto prevTextureRect = this->getTextureRect(); // this->setTextureRect(cocos2d::Rect(prevTextureRect.origin.x - by.x, prevTextureRect.origin.y - by.y, prevTextureRect.size.width, prevTextureRect.size.height)); // } // } // else if(methodName == "stopAnimations"){ // this->stopAllActions(); // } // else if(methodName == "setPicture"){ // if((*arguments).IsArray()){ // std::string imagePath = ((*arguments).GetArray()[0]).GetString(); // auto texture = cocos2d::Director::getInstance()->getTextureCache()->addImage(imagePath); // this->setTexture(texture); // this->setTextureRect(cocos2d::Rect(cocos2d::Point::ZERO, texture->getContentSize())); // } // } }