bool KeyedArchive::LoadFromYamlNode(const YamlNode* rootNode) { if(NULL == rootNode) { return false; } const YamlNode * archieveNode = rootNode->Get(VariantType::TYPENAME_KEYED_ARCHIVE); if(!archieveNode) { return false; } int32 count = archieveNode->GetCount(); for (int32 i = 0; i < count; ++i) { const YamlNode * node = archieveNode->Get(i); const String &variableNameToArchMap = archieveNode->GetItemKeyName(i); VariantType *value = new VariantType(node->AsVariantType()); if(value->GetType() == VariantType::TYPE_NONE) { SafeDelete(value); continue; } objectMap[variableNameToArchMap] = value; } return true; }
void KeyedArchive::SetMatrix4(const String & key, const Matrix4 &value) { DeleteKey(key); VariantType *variantValue = new VariantType(); variantValue->SetMatrix4(value); objectMap[key] = variantValue; }
void KeyedArchive::SetFloat(const String & key, float32 value) { DeleteKey(key); VariantType *variantValue = new VariantType(); variantValue->SetFloat(value); objectMap[key] = variantValue; }
void KeyedArchive::SetByteArray(const String & key, const uint8 * value, int32 arraySize) { DeleteKey(key); VariantType *variantValue = new VariantType(); variantValue->SetByteArray(value, arraySize); objectMap[key] = variantValue; }
void KeyedArchive::SetArchive(const String & key, KeyedArchive * archive) { DeleteKey(key); VariantType *variantValue = new VariantType(); variantValue->SetKeyedArchive(archive); objectMap[key] = variantValue; }
bool equals (const ValueUnion& data, const ValueUnion& otherData, const VariantType& otherType) const noexcept override { if (otherType.isDouble() || otherType.isString()) return otherType.equals (otherData, data, *this); return otherType.toInt64 (otherData) == data.int64Value; }
bool KeyedArchive::LoadFromYamlNode(YamlNode* rootNode) { if(NULL == rootNode) { return false; } Vector<YamlNode*> &rootVector = rootNode->Get(VariantType::TYPENAME_KEYED_ARCHIVE)->AsVector(); for (Vector<YamlNode*>::const_iterator it = rootVector.begin(); it != rootVector.end(); ++it) { YamlNode * node = *it; String variableNameToArchMap = node->AsString(); VariantType *value = new VariantType(node->AsVariantType()); if(value->GetType() == VariantType::TYPE_NONE) { SafeDelete(value); continue; } objectMap[variableNameToArchMap] = value; } return true; }
void KeyedArchiver::EncodeVariant(const String & key, const VariantType & value) { VariantType keyMT; keyMT.SetString(key); keyMT.Write(archive); value.Write(archive); }
bool KeyedArchive::Save(File *archive) { for (Map<String, VariantType>::iterator it = objectMap.begin(); it != objectMap.end(); ++it) { VariantType key; key.SetString(it->first); key.Write(archive); it->second.Write(archive); } return true; }
bool KeyedUnarchiver::UnarchiveFile(File *file) { while(!file->IsEof()) { VariantType key; key.Read(file); VariantType value; value.Read(file); objectMap[key.AsString()] = value; } return true; }
bool KeyedArchive::Load(File *archive) { while(!archive->IsEof()) { VariantType key; key.Read(archive); if (archive->IsEof())break; VariantType value; value.Read(archive); objectMap[key.AsString()] = value; } return true; }
DAVA::Vector<String> RecentFilesManager::GetRecentFiles() { DAVA::Vector<String> retVector; VariantType recentFilesVariant = SettingsManager::GetValue(Settings::Internal_RecentFiles); if(recentFilesVariant.GetType() == DAVA::VariantType::TYPE_KEYED_ARCHIVE) { KeyedArchive* archiveRecentFiles = recentFilesVariant.AsKeyedArchive(); DAVA::uint32 size = archiveRecentFiles->Count(); retVector.resize(size); for (DAVA::uint32 i = 0; i < size; ++i) { retVector[i] = archiveRecentFiles->GetString(Format("%d", i)); } } return retVector; }
bool KeyedArchive::Save(File *archive) { char header[2]; uint16 version = 1; header[0] = 'K'; header[1] = 'A'; archive->Write(header, 2); archive->Write(&version, 2); uint32 size = objectMap.size(); archive->Write(&size, 4); for (Map<String, VariantType*>::iterator it = objectMap.begin(); it != objectMap.end(); ++it) { VariantType key; key.SetString(it->first); key.Write(archive); it->second->Write(archive); } return true; }
bool KeyedArchive::Load(File *archive) { char header[2]; archive->Read(header, 2); if ((header[0] != 'K') || (header[1] != 'A')) { archive->Seek(0,File::SEEK_FROM_START); while(!archive->IsEof()) { VariantType key; key.Read(archive); if (archive->IsEof())break; VariantType *value = new VariantType(); value->Read(archive); objectMap[key.AsString()] = value; } return true; } uint16 version = 0; archive->Read(&version, 2); if (version != 1) { Logger::Error("[KeyedArchive] error loading keyed archive, because version is incorrect"); return false; } uint32 numberOfItems = 0; archive->Read(&numberOfItems, 4); for (uint32 item = 0; item < numberOfItems; ++item) { VariantType key; key.Read(archive); if (archive->IsEof())break; VariantType *value = new VariantType(); value->Read(archive); objectMap[key.AsString()] = value; } return true; }
YamlNode * UIStaticText::SaveToYamlNode(UIYamlLoader * loader) { YamlNode *node = UIControl::SaveToYamlNode(loader); 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("textalign", loader->GetAlignNodeValue(this->GetTextAlign())); // Draw type. Must be overriden for UITextControls. node->Set("drawType", loader->GetDrawTypeNodeValue(this->GetBackground()->GetDrawType())); 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"); } //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; }
void KeyedArchiver::EncodeBool(const String & key, bool value) { VariantType keyMT; keyMT.SetString(key); keyMT.Write(archive); VariantType valueMT; valueMT.SetBool(value); valueMT.Write(archive); }
void KeyedArchiver::EncodeInt32(const String & key, int32 value) { VariantType keyMT; keyMT.SetString(key); keyMT.Write(archive); VariantType valueMT; valueMT.SetInt32(value); valueMT.Write(archive); }
void KeyedArchiver::EncodeFloat(const String & key, float32 value) { VariantType keyMT; keyMT.SetString(key); keyMT.Write(archive); VariantType valueMT; valueMT.SetFloat(value); valueMT.Write(archive); }
void KeyedArchiver::EncodeWideString(const String & key, const WideString & value) { VariantType keyMT; keyMT.SetString(key); keyMT.Write(archive); VariantType valueMT; valueMT.SetWideString(value); valueMT.Write(archive); }
YamlNode * UITextField::SaveToYamlNode(UIYamlLoader * loader) { YamlNode *node = UIControl::SaveToYamlNode(loader); //Temp variable VariantType *nodeValue = new VariantType(); //Control Type SetPreferredNodeType(node, "UITextField"); //Text nodeValue->SetWideString(this->GetText()); node->Set("text", nodeValue); //Font //Get font name and put it here nodeValue->SetString(FontManager::Instance()->GetFontName(this->GetFont())); node->Set("font", nodeValue); //TextColor Color textColor = GetTextColor(); nodeValue->SetVector4(Vector4(textColor.r, textColor.g, textColor.b, textColor.a)); node->Set("textcolor", nodeValue); // ShadowColor Color shadowColor = GetShadowColor(); nodeValue->SetVector4(Vector4(shadowColor.r, shadowColor.g, shadowColor.b, shadowColor.a)); node->Set("shadowcolor", nodeValue); // ShadowOffset nodeValue->SetVector2(GetShadowOffset()); node->Set("shadowoffset", nodeValue); // Text align node->SetNodeToMap("textalign", loader->GetAlignNodeValue(this->GetTextAlign())); // Draw Type must be overwritten fot UITextField. UIControlBackground::eDrawType drawType = this->GetBackground()->GetDrawType(); node->Set("drawType", loader->GetDrawTypeNodeValue(drawType)); SafeDelete(nodeValue); return node; }
bool equals (const ValueUnion& data, const ValueUnion& otherData, const VariantType& otherType) const throw() { return otherType.toInt (otherData) == data.intValue; }
bool equals (const ValueUnion&, const ValueUnion&, const VariantType& otherType) const throw() { return otherType.isVoid(); }
bool equals (const ValueUnion& data, const ValueUnion& otherData, const VariantType& otherType) const throw() { return otherType.isMethod() && otherData.methodValue == data.methodValue; }
bool equals (const ValueUnion& data, const ValueUnion& otherData, const VariantType& otherType) const throw() { return otherType.toString (otherData) == *data.stringValue; }
bool equals (const ValueUnion& data, const ValueUnion& otherData, const VariantType& otherType) const throw() { return otherType.toDouble (otherData) == data.doubleValue; }
bool equals (const ValueUnion&, const ValueUnion&, const VariantType& otherType) const noexcept { return otherType.isVoid(); }
bool equals (const ValueUnion& data, const ValueUnion& otherData, const VariantType& otherType) const noexcept { const MemoryBlock* const otherBlock = otherType.toBinary (otherData); return otherBlock != nullptr && *otherBlock == *data.binaryValue; }
bool equals (const ValueUnion& data, const ValueUnion& otherData, const VariantType& otherType) const noexcept { const Array<var>* const otherArray = otherType.toArray (otherData); return otherArray != nullptr && *otherArray == *(data.arrayValue); }
bool equals (const ValueUnion& data, const ValueUnion& otherData, const VariantType& otherType) const noexcept { return otherType.toObject (otherData) == data.objectValue; }