bool CppVariant::invokeDefault(const CppVariant* arguments, uint32_t argumentCount, CppVariant& result) const { WEBKIT_ASSERT(isObject()); NPObject* npObject = value.objectValue; NPVariant r; bool status = WebBindings::invokeDefault(0, npObject, arguments, argumentCount, &r); result.set(r); return status; }
bool CppBoundClass::setProperty(NPIdentifier ident, const NPVariant* value) { PropertyList::iterator callback = m_properties.find(ident); if (callback == m_properties.end()) return false; CppVariant cppValue; cppValue.set(*value); return (*callback).second->setValue(cppValue); }
void AccessibilityUIElement::notificationReceived(const char* notificationName) { size_t callbackCount = m_notificationCallbacks.size(); for (size_t i = 0; i < callbackCount; i++) { CppVariant notificationNameArgument; notificationNameArgument.set(notificationName); CppVariant invokeResult; m_notificationCallbacks[i].invokeDefault(¬ificationNameArgument, 1, invokeResult); } }
bool CppVariant::invoke(const string& method, const CppVariant* arguments, uint32_t argumentCount, CppVariant& result) const { WEBKIT_ASSERT(isObject()); NPIdentifier methodName = WebBindings::getStringIdentifier(method.c_str()); NPObject* npObject = value.objectValue; if (!WebBindings::hasMethod(0, npObject, methodName)) return false; NPVariant r; bool status = WebBindings::invoke(0, npObject, methodName, arguments, argumentCount, &r); result.set(r); return status; }