YamlNode * GraphicsFont::SaveToYamlNode() { YamlNode *node = Font::SaveToYamlNode(); //Type node->Set("type", "GraphicsFont"); //horizontalSpacing node->Set("horizontalSpacing", this->GetHorizontalSpacing()); //Sprite Sprite *sprite = this->fontSprite; if (sprite) { //Truncate sprite ".txt" extension before save node->Set("sprite", TruncateTxtFileExtension(sprite->GetName())); } //Font Definition node->Set("definition", this->GetFontDefinitionName()); return node; }
YamlNode * UIButton::SaveToYamlNode(UIYamlLoader * loader) { YamlNode *node = UIControl::SaveToYamlNode(loader); //Temp variable VariantType *nodeValue = new VariantType(); String stringValue; //Control Type node->Set("type", "UIButton"); //Remove values of UIControl YamlNode *spriteNode = node->Get("sprite"); YamlNode *drawTypeNode = node->Get("drawType"); YamlNode *colorInheritNode = node->Get("colorInherit"); YamlNode *alignNode = node->Get("align"); YamlNode *leftRightStretchCapNode = node->Get("leftRightStretchCap"); YamlNode *topBottomStretchCapNode = node->Get("topBottomStretchCap"); if (spriteNode) { node->RemoveNodeFromMap("sprite"); } if (drawTypeNode) { node->RemoveNodeFromMap("drawType"); } if (colorInheritNode) { node->RemoveNodeFromMap("colorInherit"); } if (alignNode) { node->RemoveNodeFromMap("align"); } if (leftRightStretchCapNode) { node->RemoveNodeFromMap("leftRightStretchCap"); } if (topBottomStretchCapNode) { node->RemoveNodeFromMap("topBottomStretchCap"); } //States cycle for values for (int i = 0; i < STATE_COUNT; ++i) { //Get sprite and frame for state Sprite *stateSprite = this->GetStateSprite(stateArray[i]); int32 stateFrame = this->GetStateFrame(stateArray[i]); if (stateSprite) { //Create array yamlnode and add it to map YamlNode *spriteNode = new YamlNode(YamlNode::TYPE_ARRAY); spriteNode->AddValueToArray(TruncateTxtFileExtension(stateSprite->GetName())); spriteNode->AddValueToArray(stateFrame); node->AddNodeToMap(Format("stateSprite%s", statePostfix[i].c_str()), spriteNode); } //StateDrawType UIControlBackground::eDrawType drawType = this->GetStateDrawType(stateArray[i]); node->Set(Format("stateDrawType%s", statePostfix[i].c_str()), loader->GetDrawTypeNodeValue(drawType)); //leftRightStretchCap float32 leftStretchCap = this->GetActualBackground(stateArray[i])->GetLeftRightStretchCap(); node->Set(Format("leftRightStretchCap%s", statePostfix[i].c_str()), leftStretchCap); //topBottomStretchCap float32 topBottomStretchCap = this->GetActualBackground(stateArray[i])->GetTopBottomStretchCap(); node->Set(Format("topBottomStretchCap%s", statePostfix[i].c_str()), topBottomStretchCap); //State align node->Set(Format("stateAlign%s", statePostfix[i].c_str()), this->GetStateAlign(stateArray[i])); //State font Font *stateFont = this->GetStateTextControl(stateArray[i])->GetFont(); node->Set(Format("stateFont%s", statePostfix[i].c_str()), FontManager::Instance()->GetFontName(stateFont)); //StateText if (this->GetStateTextControl(stateArray[i])) { nodeValue->SetWideString(this->GetStateTextControl(stateArray[i])->GetText()); node->Set(Format("stateText%s", statePostfix[i].c_str()), nodeValue); } //colorInherit ???? For different states? // Yuri Coder, 2012/11/16. Temporarily commented out until clarification. //UIControlBackground::eColorInheritType colorInheritType = this->GetStateBackground(stateArray[i])->GetColorInheritType(); //node->Set(Format("stateColorInherit%s", statePostfix[i].c_str()), loader->GetColorInheritTypeNodeValue(colorInheritType)); } SafeDelete(nodeValue); return node; }
YamlNode * UIButton::SaveToYamlNode(UIYamlLoader * loader) { YamlNode *node = UIControl::SaveToYamlNode(loader); //Temp variable VariantType *nodeValue = new VariantType(); String stringValue; UIButton *baseControl = new UIButton(); //Control Type SetPreferredNodeType(node, "UIButton"); //Remove values of UIControl //UIButton has state specific properties YamlNode *spriteNode = node->Get("sprite"); YamlNode *drawTypeNode = node->Get("drawType"); YamlNode *colorInheritNode = node->Get("colorInherit"); YamlNode *alignNode = node->Get("align"); YamlNode *leftRightStretchCapNode = node->Get("leftRightStretchCap"); YamlNode *topBottomStretchCapNode = node->Get("topBottomStretchCap"); if (spriteNode) { node->RemoveNodeFromMap("sprite"); } if (drawTypeNode) { node->RemoveNodeFromMap("drawType"); } if (colorInheritNode) { node->RemoveNodeFromMap("colorInherit"); } if (alignNode) { node->RemoveNodeFromMap("align"); } if (leftRightStretchCapNode) { node->RemoveNodeFromMap("leftRightStretchCap"); } if (topBottomStretchCapNode) { node->RemoveNodeFromMap("topBottomStretchCap"); } //States cycle for values for (int i = 0; i < STATE_COUNT; ++i) { //Get sprite and frame for state Sprite *stateSprite = this->GetStateSprite(stateArray[i]); int32 stateFrame = this->GetStateFrame(stateArray[i]); if (stateSprite) { //Create array yamlnode and add it to map YamlNode *spriteNode = new YamlNode(YamlNode::TYPE_ARRAY); spriteNode->AddValueToArray(TruncateTxtFileExtension(stateSprite->GetName())); spriteNode->AddValueToArray(stateFrame); node->AddNodeToMap(Format("stateSprite%s", statePostfix[i].c_str()), spriteNode); } //StateDrawType UIControlBackground::eDrawType drawType = this->GetStateDrawType(stateArray[i]); if (baseControl->GetStateDrawType(stateArray[i]) != drawType) { node->Set(Format("stateDrawType%s", statePostfix[i].c_str()), loader->GetDrawTypeNodeValue(drawType)); } //leftRightStretchCap float32 leftStretchCap = this->GetActualBackground(stateArray[i])->GetLeftRightStretchCap(); float32 baseLeftStretchCap = baseControl->GetActualBackground(stateArray[i])->GetLeftRightStretchCap(); if (baseLeftStretchCap != leftStretchCap) { node->Set(Format("leftRightStretchCap%s", statePostfix[i].c_str()), leftStretchCap); } //topBottomStretchCap float32 topBottomStretchCap = this->GetActualBackground(stateArray[i])->GetTopBottomStretchCap(); float32 baseTopBottomStretchCap = baseControl->GetActualBackground(stateArray[i])->GetTopBottomStretchCap(); if (baseTopBottomStretchCap != topBottomStretchCap) { node->Set(Format("topBottomStretchCap%s", statePostfix[i].c_str()), topBottomStretchCap); } //State align int32 stateAlign = this->GetStateAlign(stateArray[i]); int32 baseStateAlign = baseControl->GetStateAlign(stateArray[i]); if (baseStateAlign != stateAlign) { node->AddNodeToMap(Format("stateAlign%s", statePostfix[i].c_str()), loader->GetAlignNodeValue(stateAlign)); } //State font, state text, text color, shadow color and shadow offset if (this->GetStateTextControl(stateArray[i])) { Font *stateFont = this->GetStateTextControl(stateArray[i])->GetFont(); node->Set(Format("stateFont%s", statePostfix[i].c_str()), FontManager::Instance()->GetFontName(stateFont)); nodeValue->SetWideString(this->GetStateTextControl(stateArray[i])->GetText()); node->Set(Format("stateText%s", statePostfix[i].c_str()), nodeValue); Color textColor = this->GetStateTextControl(stateArray[i])->GetTextColor(); nodeValue->SetVector4(Vector4(textColor.r, textColor.g, textColor.b, textColor.a)); node->Set(Format("stateTextcolor%s", statePostfix[i].c_str()), nodeValue); Color shadowColor = this->GetStateTextControl(stateArray[i])->GetShadowColor(); nodeValue->SetVector4(Vector4(shadowColor.r, shadowColor.g, shadowColor.b, shadowColor.a)); node->Set(Format("stateShadowcolor%s", statePostfix[i].c_str()), nodeValue); Vector2 shadowOffset = this->GetStateTextControl(stateArray[i])->GetShadowOffset(); nodeValue->SetVector2(shadowOffset); node->Set(Format("stateShadowoffset%s", statePostfix[i].c_str()), nodeValue); } //colorInherit ???? For different states? // Yuri Coder, 2012/11/16. Temporarily commented out until clarification. //UIControlBackground::eColorInheritType colorInheritType = this->GetStateBackground(stateArray[i])->GetColorInheritType(); //node->Set(Format("stateColorInherit%s", statePostfix[i].c_str()), loader->GetColorInheritTypeNodeValue(colorInheritType)); } SafeDelete(nodeValue); SafeRelease(baseControl); return node; }
YamlNode * UISlider::SaveToYamlNode(UIYamlLoader * loader) { YamlNode *node = UIControl::SaveToYamlNode(loader); // Control Type SetPreferredNodeType(node, "UISlider"); // Sprite value float32 value = this->GetValue(); node->Set("value", value); // Sprite min value value = this->GetMinValue(); node->Set("minValue", value); // Sprite max value value = this->GetMaxValue(); node->Set("maxValue", value); // Get thumb sprite and frame if (this->thumbButton != NULL) { Sprite *sprite = this->GetThumb()->GetSprite(); int32 spriteFrame = this->GetThumb()->GetFrame(); if (sprite) { //Create array yamlnode and add it to map YamlNode *spriteNode = new YamlNode(YamlNode::TYPE_ARRAY); spriteNode->AddValueToArray(TruncateTxtFileExtension(sprite->GetName())); spriteNode->AddValueToArray(spriteFrame); node->AddNodeToMap("thumbSprite", spriteNode); } } if (this->bgMin != NULL) { // Get min sprite and frame Sprite *sprite = this->GetBgMin()->GetSprite(); int32 spriteFrame = this->GetBgMin()->GetFrame(); if (sprite) { // Create array yamlnode and add it to map YamlNode *spriteNode = new YamlNode(YamlNode::TYPE_ARRAY); spriteNode->AddValueToArray(TruncateTxtFileExtension(sprite->GetName())); spriteNode->AddValueToArray(spriteFrame); node->AddNodeToMap("minSprite", spriteNode); } // Min draw type UIControlBackground::eDrawType drawType = this->GetBgMin()->GetDrawType(); node->Set("minDrawType", loader->GetDrawTypeNodeValue(drawType)); } if (this->bgMax != NULL) { // Get max sprite and frame Sprite* sprite = this->GetBgMax()->GetSprite(); int32 spriteFrame = this->GetBgMax()->GetFrame(); if (sprite) { // Create array yamlnode and add it to map YamlNode *spriteNode = new YamlNode(YamlNode::TYPE_ARRAY); spriteNode->AddValueToArray(TruncateTxtFileExtension(sprite->GetName())); spriteNode->AddValueToArray(spriteFrame); node->AddNodeToMap("maxSprite", spriteNode); } // Max draw type UIControlBackground::eDrawType drawType = this->GetBgMax()->GetDrawType(); node->Set("maxDrawType", loader->GetDrawTypeNodeValue(drawType)); } return node; }