YamlNode * UIStaticText::SaveToYamlNode(UIYamlLoader * loader) { YamlNode *node = UIControl::SaveToYamlNode(loader); // Sprite node is not needed for UITextField. YamlNode *spriteNode = node->Get("sprite"); if (spriteNode) { node->RemoveNodeFromMap("sprite"); } //Temp variable VariantType *nodeValue = new VariantType(); //Control Type node->Set("type", "UIStaticText"); //Font //Get font name and put it here nodeValue->SetString(FontManager::Instance()->GetFontName(this->GetFont())); node->Set("font", nodeValue); //Text nodeValue->SetWideString(GetText()); node->Set("text", nodeValue); //Multiline node->Set("multiline", this->textBlock->GetMultiline()); //multilineBySymbol node->Set("multilineBySymbol", this->textBlock->GetMultilineBySymbol()); //fitting - STRING OF INT??? node->Set("fitting", this->textBlock->GetFittingOption()); 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 *colorNode = node->Get("color"); 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"); YamlNode *spriteModificationNode = node->Get("spriteModification"); if (colorNode) { node->RemoveNodeFromMap("color"); } 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"); } if (spriteModificationNode) { node->RemoveNodeFromMap("spriteModification"); } //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); FilePath path(stateSprite->GetRelativePathname()); path.TruncateExtension(); String pathname = path.GetFrameworkPath(); spriteNode->AddValueToArray(pathname); spriteNode->AddValueToArray(stateFrame); int32 modification = stateBacks[BackgroundIndexForState((eButtonDrawState)i)]->GetModification(); spriteNode->AddValueToArray(modification); 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); } // State background color Color color = this->GetActualBackground(stateArray[i])->GetColor(); Color baseColor = baseControl->GetActualBackground(stateArray[i])->GetColor(); if (baseColor != color) { Vector4 colorVector4(color.r, color.g, color.b, color.a); nodeValue->SetVector4(colorVector4); node->Set(Format("stateColor%s", statePostfix[i].c_str()), nodeValue); } // State color inherittype UIControlBackground::eColorInheritType colorInheritType = this->GetActualBackground(stateArray[i])->GetColorInheritType(); UIControlBackground::eColorInheritType baseColorInheritType = baseControl->GetActualBackground(stateArray[i])->GetColorInheritType(); if (baseColorInheritType != colorInheritType) { node->Set(Format("stateColorInherit%s", statePostfix[i].c_str()), loader->GetColorInheritTypeNodeValue(colorInheritType)); } } SafeDelete(nodeValue); SafeRelease(baseControl); return node; }
YamlNode * UIStaticText::SaveToYamlNode(UIYamlLoader * loader) { YamlNode *node = UIControl::SaveToYamlNode(loader); // Sprite node is not needed for UITextField. YamlNode *spriteNode = node->Get("sprite"); if (spriteNode) { node->RemoveNodeFromMap("sprite"); } UIStaticText *baseControl = new UIStaticText(); //Temp variable VariantType *nodeValue = new VariantType(); //Control Type SetPreferredNodeType(node, "UIStaticText"); //Font //Get font name and put it here nodeValue->SetString(FontManager::Instance()->GetFontName(this->GetFont())); node->Set("font", nodeValue); //TextColor nodeValue->SetVector4(Vector4(textColor.r, textColor.g, textColor.b, textColor.a)); node->Set("textcolor", nodeValue); // ShadowColor nodeValue->SetVector4(Vector4(shadowColor.r, shadowColor.g, shadowColor.b, shadowColor.a)); node->Set("shadowcolor", nodeValue); // ShadowOffset nodeValue->SetVector2(GetShadowOffset()); node->Set("shadowoffset", nodeValue); //Text nodeValue->SetWideString(GetText()); node->Set("text", nodeValue); //Multiline if (baseControl->textBlock->GetMultiline() != this->textBlock->GetMultiline()) { node->Set("multiline", this->textBlock->GetMultiline()); } //multilineBySymbol if (baseControl->textBlock->GetMultilineBySymbol() != this->textBlock->GetMultilineBySymbol()) { node->Set("multilineBySymbol", this->textBlock->GetMultilineBySymbol()); } //fitting - STRING OF INT??? if (baseControl->textBlock->GetFittingOption() != this->textBlock->GetFittingOption()) { node->Set("fitting", this->textBlock->GetFittingOption()); } // Align node->SetNodeToMap("align", loader->GetAlignNodeValue(this->GetAlign())); // Draw type. Must be overriden for UITextControls. node->Set("drawType", loader->GetDrawTypeNodeValue(this->GetBackground()->GetDrawType())); SafeDelete(nodeValue); SafeRelease(baseControl); 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; }