コード例 #1
0
ファイル: KeyedArchive.cpp プロジェクト: galek/dava.framework
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
0
ファイル: KeyedArchive.cpp プロジェクト: galek/dava.framework
void KeyedArchive::SetMatrix4(const String & key, const Matrix4 &value)
{
    DeleteKey(key);
	VariantType *variantValue = new VariantType();
	variantValue->SetMatrix4(value);
	objectMap[key] = variantValue;
}
コード例 #3
0
ファイル: KeyedArchive.cpp プロジェクト: galek/dava.framework
void KeyedArchive::SetFloat(const String & key, float32 value)
{
    DeleteKey(key);
	VariantType *variantValue = new VariantType();
	variantValue->SetFloat(value);
	objectMap[key] = variantValue;
}
コード例 #4
0
void KeyedArchive::SetByteArray(const String & key, const uint8 * value, int32 arraySize)
{
    DeleteKey(key);
	VariantType *variantValue = new VariantType();
	variantValue->SetByteArray(value, arraySize);
	objectMap[key] = variantValue;
}
コード例 #5
0
void KeyedArchive::SetArchive(const String & key, KeyedArchive * archive)
{
    DeleteKey(key);
	VariantType *variantValue = new VariantType();
	variantValue->SetKeyedArchive(archive);
	objectMap[key] = variantValue;
}
コード例 #6
0
    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;
    }
コード例 #7
0
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;
}
コード例 #8
0
void KeyedArchiver::EncodeVariant(const String & key, const VariantType & value)
{
    VariantType keyMT;
    keyMT.SetString(key);
    keyMT.Write(archive);

    value.Write(archive);
}
コード例 #9
0
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;
}
コード例 #10
0
bool KeyedUnarchiver::UnarchiveFile(File *file)
{
	while(!file->IsEof())
	{
		VariantType key;
		key.Read(file);
		VariantType value;
		value.Read(file);
		objectMap[key.AsString()] = value;
	}
	return true;
}
コード例 #11
0
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;
}
コード例 #12
0
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;
}
コード例 #13
0
ファイル: KeyedArchive.cpp プロジェクト: galek/dava.framework
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;
}
コード例 #14
0
ファイル: KeyedArchive.cpp プロジェクト: galek/dava.framework
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;
}
コード例 #15
0
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;
}
コード例 #16
0
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;
}
コード例 #17
0
void KeyedArchiver::EncodeBool(const String & key, bool value)
{
    VariantType keyMT;
    keyMT.SetString(key);
    keyMT.Write(archive);

    VariantType valueMT;
    valueMT.SetBool(value);
    valueMT.Write(archive);
}
コード例 #18
0
void KeyedArchiver::EncodeInt32(const String & key, int32 value)
{
    VariantType keyMT;
    keyMT.SetString(key);
    keyMT.Write(archive);

    VariantType valueMT;
    valueMT.SetInt32(value);
    valueMT.Write(archive);
}
コード例 #19
0
void KeyedArchiver::EncodeFloat(const String & key, float32 value)
{
    VariantType keyMT;
    keyMT.SetString(key);
    keyMT.Write(archive);

    VariantType valueMT;
    valueMT.SetFloat(value);
    valueMT.Write(archive);
}
コード例 #20
0
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);
}
コード例 #21
0
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;
}
コード例 #22
0
ファイル: juce_Variant.cpp プロジェクト: Labmind/GUI
 bool equals (const ValueUnion& data, const ValueUnion& otherData, const VariantType& otherType) const throw()
 {
     return otherType.toInt (otherData) == data.intValue;
 }
コード例 #23
0
ファイル: juce_Variant.cpp プロジェクト: Labmind/GUI
 bool equals (const ValueUnion&, const ValueUnion&, const VariantType& otherType) const throw()  { return otherType.isVoid(); }
コード例 #24
0
ファイル: juce_Variant.cpp プロジェクト: Labmind/GUI
 bool equals (const ValueUnion& data, const ValueUnion& otherData, const VariantType& otherType) const throw()
 {
     return otherType.isMethod() && otherData.methodValue == data.methodValue;
 }
コード例 #25
0
ファイル: juce_Variant.cpp プロジェクト: Labmind/GUI
 bool equals (const ValueUnion& data, const ValueUnion& otherData, const VariantType& otherType) const throw()
 {
     return otherType.toString (otherData) == *data.stringValue;
 }
コード例 #26
0
ファイル: juce_Variant.cpp プロジェクト: Labmind/GUI
 bool equals (const ValueUnion& data, const ValueUnion& otherData, const VariantType& otherType) const throw()
 {
     return otherType.toDouble (otherData) == data.doubleValue;
 }
コード例 #27
0
 bool equals (const ValueUnion&, const ValueUnion&, const VariantType& otherType) const noexcept { return otherType.isVoid(); }
コード例 #28
0
 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;
 }
コード例 #29
0
 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);
 }
コード例 #30
0
 bool equals (const ValueUnion& data, const ValueUnion& otherData, const VariantType& otherType) const noexcept
 {
     return otherType.toObject (otherData) == data.objectValue;
 }