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); } } }
int KObject::GetInt(const char* name, int defaultValue) { SharedValue prop = this->Get(name); if (prop->IsInt()) { return prop->ToInt(); } else { return defaultValue; } }
bool MenuItem::IsSubMenu() { SharedValue type = this->RawGet("type"); return (type->IsInt() && type->ToInt() == SUBMENU); }
bool MenuItem::IsItem() { SharedValue type = this->RawGet("type"); return (type->IsInt() && type->ToInt() == ITEM); }
bool MenuItem::IsSeparator() { SharedValue type = this->RawGet("type"); return (type->IsInt() && type->ToInt() == SEP); }