本文整理汇总了C++中YamlNode::AddNodeToMap方法的典型用法代码示例。如果您正苦于以下问题:C++ YamlNode::AddNodeToMap方法的具体用法?C++ YamlNode::AddNodeToMap怎么用?C++ YamlNode::AddNodeToMap使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类YamlNode
的用法示例。
在下文中一共展示了YamlNode::AddNodeToMap方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
YamlNode * UIScrollBar::SaveToYamlNode(UIYamlLoader * loader)
{
YamlNode *node = UIControl::SaveToYamlNode(loader);
//Temp variables
String stringValue;
//Control Type
SetPreferredNodeType(node, "UIScrollBar");
//Orientation
eScrollOrientation orient = this->GetOrientation();
switch(orient)
{
case ORIENTATION_VERTICAL:
stringValue = "ORIENTATION_VERTICAL";
break;
case ORIENTATION_HORIZONTAL:
stringValue = "ORIENTATION_HORIZONTAL";
break;
default:
stringValue = "ORIENTATION_VERTICAL";
break;
}
node->Set("orientation", stringValue);
// Slider have to be saved too.
YamlNode* sliderNode = slider->SaveToYamlNode(loader);
node->AddNodeToMap(UISCROLLBAR_SLIDER_NAME, sliderNode);
return node;
}
示例2: SaveToYaml
void ParticleEmitter::SaveToYaml(const String & filename)
{
YamlParser* parser = YamlParser::Create();
if (!parser)
{
Logger::Error("ParticleEmitter::SaveToYaml() - unable to create parser!");
return;
}
YamlNode* rootYamlNode = new YamlNode(YamlNode::TYPE_MAP);
YamlNode* emitterYamlNode = new YamlNode(YamlNode::TYPE_MAP);
rootYamlNode->AddNodeToMap("emitter", emitterYamlNode);
emitterYamlNode->Set("3d", this->is3D);
emitterYamlNode->Set("type", GetEmitterTypeName());
// Write the property lines.
PropertyLineYamlWriter::WritePropertyLineToYamlNode<float32>(emitterYamlNode, "emissionAngle", this->emissionAngle);
PropertyLineYamlWriter::WritePropertyLineToYamlNode<float32>(emitterYamlNode, "emissionRange", this->emissionRange);
PropertyLineYamlWriter::WritePropertyLineToYamlNode<Vector3>(emitterYamlNode, "emissionVector", this->emissionVector);
// Yuri Coder, 2013/04/12. After the coordinates inversion for the emission vector we need to introduce the
// new "emissionVectorInverted" flag to mark we don't need to invert coordinates after re-loading the YAML.
PropertyLineYamlWriter::WritePropertyValueToYamlNode<bool>(emitterYamlNode, "emissionVectorInverted", true);
PropertyLineYamlWriter::WritePropertyLineToYamlNode<float32>(emitterYamlNode, "radius", this->radius);
PropertyLineYamlWriter::WriteColorPropertyLineToYamlNode(emitterYamlNode, "colorOverLife", this->colorOverLife);
PropertyLineYamlWriter::WritePropertyLineToYamlNode<Vector3>(emitterYamlNode, "size", this->size);
PropertyLineYamlWriter::WritePropertyValueToYamlNode<float32>(emitterYamlNode, "life", this->lifeTime);
// Now write all the Layers. Note - layers are child of root node, not the emitter one.
int32 layersCount = this->layers.size();
for (int32 i = 0; i < layersCount; i ++)
{
this->layers[i]->SaveToYamlNode(rootYamlNode, i);
}
parser->SaveToYamlFile(filename, rootYamlNode, true);
parser->Release();
}
示例3: path
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
//.........这里部分代码省略.........
示例4: VariantType
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;
}
示例5: Parse
bool YamlParser::Parse(YamlDataHolder * dataHolder)
{
yaml_parser_t parser;
yaml_event_t event;
int done = 0;
/* Create the Parser object. */
yaml_parser_initialize(&parser);
yaml_parser_set_encoding(&parser, YAML_UTF8_ENCODING);
/* Set a string input. */
//yaml_parser_set_input_string(&parser, (const unsigned char*)pathName.c_str(), pathName.length());
yaml_parser_set_input(&parser, read_handler, dataHolder);
String lastMapKey;
bool isKeyPresent = false;
/* Read the event sequence. */
while (!done)
{
/* Get the next event. */
if (!yaml_parser_parse(&parser, &event))
{
Logger::Error("[YamlParser::Parse] error: type: %d %s line: %d pos: %d", parser.error, parser.problem, parser.problem_mark.line, parser.problem_mark.column);
break;
}
switch(event.type)
{
case YAML_ALIAS_EVENT:
Logger::FrameworkDebug("[YamlParser::Parse] alias: %s", event.data.alias.anchor);
break;
case YAML_SCALAR_EVENT:
{
String scalarValue = (const char*)event.data.scalar.value;
if (objectStack.empty())
{
YamlNode * node = YamlNode::CreateStringNode();
node->Set(scalarValue);
rootObject = node;
}
else
{
YamlNode * topContainer = objectStack.top();
DVASSERT(topContainer->GetType() != YamlNode::TYPE_STRING);
if (topContainer->GetType() == YamlNode::TYPE_MAP)
{
if (!isKeyPresent)
{
lastMapKey = scalarValue;
}
else
{
topContainer->Add(lastMapKey, scalarValue);
}
isKeyPresent = !isKeyPresent;
}
else if (topContainer->GetType() == YamlNode::TYPE_ARRAY)
{
topContainer->Add(scalarValue);
}
}
}
break;
case YAML_DOCUMENT_START_EVENT:
//Logger::FrameworkDebug("document start:");
break;
case YAML_DOCUMENT_END_EVENT:
//Logger::FrameworkDebug("document end:");
break;
case YAML_SEQUENCE_START_EVENT:
{
YamlNode * node = YamlNode::CreateArrayNode();
if (objectStack.empty())
{
rootObject = node;
}
else
{
YamlNode * topContainer = objectStack.top();
DVASSERT(topContainer->GetType() != YamlNode::TYPE_STRING);
if (topContainer->GetType() == YamlNode::TYPE_MAP)
{
DVASSERT(isKeyPresent);
topContainer->AddNodeToMap(lastMapKey, node);
isKeyPresent = false;
}
else if (topContainer->GetType() == YamlNode::TYPE_ARRAY)
{
topContainer->AddNodeToArray(node);
}
//.........这里部分代码省略.........
示例6: YamlNode
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;
}