Beispiel #1
0
void ClientObject::setProperty(const std::string& name, const Awesomium::JSValue& value)
{
	std::map<std::string, CppVariant*>::iterator i = clientProperties.find(name);

	if(i == clientProperties.end())
	{
		CppVariant* newValue = new CppVariant();

		if(value.isString())
			newValue->Set(value.toString());
		else if(value.isInteger())
			newValue->Set(value.toInteger());
		else if(value.isDouble())
			newValue->Set(value.toDouble());
		else if(value.isBoolean())
			newValue->Set(value.toBoolean());
		else
			newValue->SetNull();
		
		clientProperties[name] = newValue;

		BindProperty(name, newValue);
	}
	else
	{
		if(value.isString())
			i->second->Set(value.toString());
		else if(value.isInteger())
			i->second->Set(value.toInteger());
		else if(value.isDouble())
			i->second->Set(value.toDouble());
		else if(value.isBoolean())
			i->second->Set(value.toBoolean());
		else
			i->second->SetNull();
	}
}