本文整理汇总了C++中VariantType类的典型用法代码示例。如果您正苦于以下问题:C++ VariantType类的具体用法?C++ VariantType怎么用?C++ VariantType使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了VariantType类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: VariantType
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;
}
示例2: DeleteKey
void KeyedArchive::SetMatrix4(const String & key, const Matrix4 &value)
{
DeleteKey(key);
VariantType *variantValue = new VariantType();
variantValue->SetMatrix4(value);
objectMap[key] = variantValue;
}
示例3: DeleteKey
void KeyedArchive::SetByteArray(const String & key, const uint8 * value, int32 arraySize)
{
DeleteKey(key);
VariantType *variantValue = new VariantType();
variantValue->SetByteArray(value, arraySize);
objectMap[key] = variantValue;
}
示例4: equals
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;
}
示例5: VariantType
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;
}
示例6: EncodeVariant
void KeyedArchiver::EncodeVariant(const String & key, const VariantType & value)
{
VariantType keyMT;
keyMT.SetString(key);
keyMT.Write(archive);
value.Write(archive);
}
示例7: Save
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;
}
示例8: while
bool KeyedUnarchiver::UnarchiveFile(File *file)
{
while(!file->IsEof())
{
VariantType key;
key.Read(file);
VariantType value;
value.Read(file);
objectMap[key.AsString()] = value;
}
return true;
}
示例9: while
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;
}
示例10:
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;
}
示例11: Save
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;
}
示例12: while
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;
}
示例13: UIStaticText
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;
}
示例14: VariantType
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;
}
示例15: EncodeBool
void KeyedArchiver::EncodeBool(const String & key, bool value)
{
VariantType keyMT;
keyMT.SetString(key);
keyMT.Write(archive);
VariantType valueMT;
valueMT.SetBool(value);
valueMT.Write(archive);
}