void AppBinding::CreateProperties(const ValueList& args, SharedValue result)
	{
		AutoPtr<PropertiesBinding> properties = new PropertiesBinding();
		result->SetObject(properties);
		
		if (args.size() > 0 && args.at(0)->IsObject())
		{
			SharedKObject p = args.at(0)->ToObject();
			SharedStringList names = p->GetPropertyNames();
			for (size_t i = 0; i < names->size(); i++)
			{
				SharedValue value = p->Get(names->at(i));
				ValueList setterArgs;
				setterArgs.push_back(Value::NewString(names->at(i)));
				setterArgs.push_back(value);
				PropertiesBinding::Type type;
				
				if (value->IsList()) type = PropertiesBinding::List;
				else if (value->IsInt()) type = PropertiesBinding::Int;
				else if (value->IsDouble()) type = PropertiesBinding::Double;
				else if (value->IsBool()) type = PropertiesBinding::Bool;
				else type = PropertiesBinding::String;
				
				properties->Setter(setterArgs, type);
			}
		}
	}
Example #2
0
	int KObject::GetInt(const char* name, int defaultValue)
	{
		SharedValue prop = this->Get(name);
		if (prop->IsInt())
		{
			return prop->ToInt();
		}
		else
		{
			return defaultValue;
		}
	}
Example #3
0
	bool MenuItem::IsSubMenu()
	{
		SharedValue type = this->RawGet("type");
		return (type->IsInt() && type->ToInt() == SUBMENU);
	}
Example #4
0
	bool MenuItem::IsItem()
	{
		SharedValue type = this->RawGet("type");
		return (type->IsInt() && type->ToInt() == ITEM);
	}
Example #5
0
	bool MenuItem::IsSeparator()
	{
		SharedValue type = this->RawGet("type");
		return (type->IsInt() && type->ToInt() == SEP);
	}