Ejemplo n.º 1
0
	TITANIUM_FUNCTION(API, log)
	{
		ENSURE_STRING_AT_INDEX(level, 0);
		ENSURE_STRING_AT_INDEX(message, 1);
		
		const auto js_context = this_object.get_context();
		GetStaticObject(js_context).GetPrivate<API>()->log(message);
		return js_context.CreateUndefined();
	}
TITANIUM_FUNCTION(Properties, setString)
{
    ENSURE_STRING_AT_INDEX(property, 0);
    ENSURE_STRING_AT_INDEX(value, 1);

    const auto js_context = this_object.get_context();
    const auto object_ptr = GetStaticObject(js_context).GetPrivate<Properties>();

    object_ptr->setString(property, value);
    return js_context.CreateUndefined();
}
Ejemplo n.º 3
0
	TITANIUM_FUNCTION(API, log)
	{
		const auto js_context = this_object.get_context();
		if (arguments.size() == 1) {
			ENSURE_STRING_AT_INDEX(message, 0);
			GetStaticObject(js_context).GetPrivate<API>()->log("info", message);
		} else if (arguments.size() == 2) {
			ENSURE_ARGUMENT_INDEX(1);
			ENSURE_STRING_AT_INDEX(level, 0);
			JOIN_ARGUMENT_STRINGS(message, 1);
			GetStaticObject(js_context).GetPrivate<API>()->log(level, message.str());
		}

		return js_context.CreateUndefined();
	}
Ejemplo n.º 4
0
	TITANIUM_FUNCTION(Module, fireEvent)
	{
		ENSURE_STRING_AT_INDEX(name, 0);
		ENSURE_OPTIONAL_OBJECT_AT_INDEX(param, 1);

		fireEvent(name, param);
		return get_context().CreateUndefined();
	}
Ejemplo n.º 5
0
	TITANIUM_FUNCTION(Module, removeEventListener)
	{
		ENSURE_STRING_AT_INDEX(name, 0);
		ENSURE_OBJECT_AT_INDEX(callback, 1);

		TITANIUM_ASSERT(callback.IsFunction());
		removeEventListener(name, callback, this_object);
		return get_context().CreateUndefined();
	}
TITANIUM_FUNCTION(Properties, hasProperty)
{
    ENSURE_STRING_AT_INDEX(property, 0);

    const auto js_context = this_object.get_context();
    const auto object_ptr = GetStaticObject(js_context).GetPrivate<Properties>();

    return js_context.CreateBoolean(object_ptr->hasProperty(property));
}
TITANIUM_FUNCTION(Properties, removeProperty)
{
    ENSURE_STRING_AT_INDEX(property, 0);

    const auto js_context = this_object.get_context();
    const auto object_ptr = GetStaticObject(js_context).GetPrivate<Properties>();

    object_ptr->removeProperty(property);
    return js_context.CreateUndefined();
}
TITANIUM_FUNCTION(Properties, getObject)
{
    ENSURE_STRING_AT_INDEX(property, 0);
    ENSURE_OPTIONAL_OBJECT_AT_INDEX(defaultValue, 1);

    const auto js_context = this_object.get_context();
    const auto object_ptr = GetStaticObject(js_context).GetPrivate<Properties>();

    return object_ptr->getObject(property, defaultValue);
}
TITANIUM_FUNCTION(Properties, getInt)
{
    ENSURE_STRING_AT_INDEX(property, 0);
    ENSURE_OPTIONAL_DOUBLE_AT_INDEX(defaultValue, 1, 0);

    const auto js_context = this_object.get_context();
    const auto object_ptr = GetStaticObject(js_context).GetPrivate<Properties>();

    return js_context.CreateNumber(object_ptr->getInt(property, defaultValue));
}
TITANIUM_FUNCTION(Properties, getBool)
{
    ENSURE_STRING_AT_INDEX(property, 0);
    ENSURE_OPTIONAL_BOOL_AT_INDEX(defaultValue, 1, false);

    const auto js_context = this_object.get_context();
    const auto object_ptr = GetStaticObject(js_context).GetPrivate<Properties>();

    return js_context.CreateBoolean(object_ptr->getBool(property, defaultValue));
}
		TITANIUM_FUNCTION(WebView, evalJS)
		{
			if (arguments.size() < 1) {
				return get_context().CreateUndefined();
			}

			ENSURE_STRING_AT_INDEX(code, 0);
			ENSURE_OPTIONAL_OBJECT_AT_INDEX(callback, 1);

			return get_context().CreateString(evalJS(code, callback));
		}
TITANIUM_FUNCTION(Properties, setList)
{
    ENSURE_STRING_AT_INDEX(property, 0);
    ENSURE_ARRAY_AT_INDEX(array, 1);

    const auto js_context = this_object.get_context();
    const auto object_ptr = GetStaticObject(js_context).GetPrivate<Properties>();

    object_ptr->setList(property, array);
    return js_context.CreateUndefined();
}
TITANIUM_FUNCTION(Properties, getList)
{
    ENSURE_STRING_AT_INDEX(property, 0);
    ENSURE_OPTIONAL_ARRAY_AT_INDEX(defaultValue, 1);

    const auto js_context = this_object.get_context();
    const auto object_ptr = GetStaticObject(js_context).GetPrivate<Properties>();

    const auto list = object_ptr->getList(property, static_cast<std::vector<JSValue>>(defaultValue));
    return js_context.CreateArray(list);
}
		TITANIUM_FUNCTION(DB, execute)
		{
			ENSURE_STRING_AT_INDEX(sql, 0);

			if (arguments.size() > 1) {
				// TODO Drop the first arg (the sql statement) and grab all the varargs
				//std::vector<JSValue> varargs = std::vector<JSValue>(arguments.begin() + 1, arguments.end()).swap(arguments);
				return execute(sql, arguments);
			} else {
				return execute(sql);
			}
		}
		TITANIUM_FUNCTION(ResultSet, fieldByName)
		{
			ENSURE_STRING_AT_INDEX(name, 0);

			if (arguments.size() > 1) {
				const auto _1 = arguments.at(1);
				TITANIUM_ASSERT(_1.IsNumber());
				const auto fieldType = Constants::to_FIELD_TYPE(static_cast<std::underlying_type<FIELD_TYPE>::type>(_1));
				return fieldByName(name, fieldType);
			}
			return fieldByName(name);
		}
TITANIUM_FUNCTION(Properties, getString)
{
    ENSURE_STRING_AT_INDEX(property, 0);

    boost::optional<std::string> defaultValue = nullptr;
    if (arguments.size() > 1) {
        const auto _1 = arguments.at(1);
        if (_1.IsString()) {
            defaultValue = static_cast<std::string>(_1);
        }
    }

    const auto js_context = this_object.get_context();
    const auto object_ptr = GetStaticObject(js_context).GetPrivate<Properties>();

    const auto result = object_ptr->getString(property, defaultValue);
    if (result) {
        return js_context.CreateString(*result);
    }
    return js_context.CreateNull();
}