Handle<Value> TiFilesystemObject::_getFile(void* userContext, TiObject* , const Arguments& args) { // Get the paths from the arguments QString path = ""; for(int i = 0, len = args.Length(); i < len; i++) { String::Utf8Value v8UtfString(Handle<String>::Cast(args[i])); const char* cStr = *v8UtfString; path.append(cStr).append("/"); } // remove the last "/" path.remove(path.length() - 1, 1); // in case there is double slashesh, remove them // Ti.Filesyste.getFile( Ti.Filestem.resourceDirectory, '/app.js') // or // Ti.Filesyste.getFile( Ti.Filestem.resourceDirectory, 'app.js') path.replace("//", "/"); HandleScope handleScope; // Get the Filesystem object TiFilesystemObject* obj = (TiFilesystemObject*) userContext; Handle<ObjectTemplate> global = getObjectTemplateFromJsObject(args.Holder()); Handle<Object> result = global->NewInstance(); // Create a File object TiFilesystemFileObject* fileObject = new TiFilesystemFileObject(path); fileObject->setNativeObjectFactory(obj->_objectFactory); fileObject->setValue(result); // Return it setTiObjectToJsObject(result, fileObject); return handleScope.Close(result); }
string TiObject::getSTDStringFromValue(Handle<Value> value) { Handle<String> v8string = Handle<String>::Cast(value); String::Utf8Value v8UtfString(v8string); const char* cStr = *v8UtfString; return string(cStr); }
int NativeBufferObject::setValue(TiObject* obj) { Handle<Value> v8Value = obj->getValue(); if (v8Value.IsEmpty()) { return NATIVE_ERROR_INVALID_ARG; } if (v8Value->IsNumber() || v8Value->IsNumberObject()) { if (v8Value->IsInt32() || v8Value->IsUint32()) { Handle<Number> num = Handle<Number>::Cast(v8Value); int value = (int)num->Value(); internalData_ = QByteArray::number(value); } else { Handle<Number> num = Handle<Number>::Cast(v8Value); double value = (double)num->Value(); internalData_ = QByteArray::number(value); } } else if (v8Value->IsString() || v8Value->IsStringObject()) { Handle<Value> value = v8Value->ToString(); Handle<String> v8string = Handle<String>::Cast(value); String::Utf8Value v8UtfString(v8string); internalData_ = QByteArray(*v8UtfString); } return NATIVE_ERROR_OK; }