JSObject MediaQueryInfoType_to_js(const JSContext& js_context, const MediaQueryInfoType& config)
		{
			auto object = js_context.CreateObject();
			object.SetProperty("exact", js_context.CreateBoolean(config.exact));
			object.SetProperty("value", config.value);
			return object;
		}
			JSObject AcceptDict_to_js(const JSContext& js_context, const AcceptDict& config)
			{
				auto object = js_context.CreateObject();
				object.SetProperty("error",    config.error);
				object.SetProperty("timeout",  js_context.CreateNumber(static_cast<double>(config.timeout.count())));
				return object;
			}
コード例 #3
0
	JSObject AppModule::RectToJS(const JSContext& js_context, const Windows::Foundation::Rect& rect)
	{
		auto obj = js_context.CreateObject();
		obj.SetProperty("width", js_context.CreateNumber(rect.Width));
		obj.SetProperty("height", js_context.CreateNumber(rect.Height));
		obj.SetProperty("x", js_context.CreateNumber(rect.X));
		obj.SetProperty("y", js_context.CreateNumber(rect.Y));
		return obj;
	}
コード例 #4
0
		// TODO: implement this
		JSObject Gradient_to_js(const JSContext& js_context, const Gradient& gradient)
		{
			auto object = js_context.CreateObject();
			object.SetProperty("type", js_context.CreateNumber(static_cast<std::underlying_type<GRADIENT_TYPE>::type>(gradient.type)));
			object.SetProperty("backfillStart", js_context.CreateBoolean(gradient.backfillStart));
			object.SetProperty("backfillEnd", js_context.CreateBoolean(gradient.backfillEnd));
			object.SetProperty("endRadius", js_context.CreateNumber(gradient.endRadius));
			object.SetProperty("startRadius", js_context.CreateNumber(gradient.startRadius));
			return object;
		}
コード例 #5
0
		JSObject MapRegionTypev2_to_js(const JSContext& js_context, MapRegionTypev2 value)
		{
			auto object = js_context.CreateObject();
			object.SetProperty("bearing", js_context.CreateNumber(value.bearing));
			object.SetProperty("latitude", js_context.CreateNumber(value.latitude));
			object.SetProperty("latitudeDelta", js_context.CreateNumber(value.latitudeDelta));
			object.SetProperty("longitude", js_context.CreateNumber(value.longitude));
			object.SetProperty("longitudeDelta", js_context.CreateNumber(value.longitudeDelta));
			object.SetProperty("tilt", js_context.CreateNumber(value.tilt));
			object.SetProperty("zoom", js_context.CreateNumber(value.zoom));
			return object;
		}
		JSObject CameraMediaItemType_to_js(const JSContext& js_context, const CameraMediaItemType& config)
		{
			auto object = js_context.CreateObject();
			object.SetProperty("code", js_context.CreateNumber(config.code));
			object.SetProperty("cropRect", Titanium::UI::Dimension_to_js(js_context, config.cropRect));
			object.SetProperty("error", js_context.CreateString(config.error));
			if (config.media != nullptr) {
				object.SetProperty("media", config.media->get_object());
			}
			object.SetProperty("mediaType", js_context.CreateNumber(static_cast<std::uint32_t>(config.mediaType)));
			object.SetProperty("success", js_context.CreateBoolean(config.success));
			return object;
		}
		JSObject PushNotificationConfig_to_js(const JSContext& js_context, const PushNotificationConfig& config)
		{
			auto object = js_context.CreateObject();
			object.SetProperty("callback", config.callback);
			object.SetProperty("error",    config.error);
			object.SetProperty("success",  config.success);

			std::vector<JSValue> js_types;
			for (const auto t : config.types) {
				js_types.push_back(js_context.CreateNumber(Titanium::Network::Constants::to_underlying_type(t)));
			}
			object.SetProperty("types", js_context.CreateArray(js_types));

			return object;
		}
コード例 #8
0
ファイル: JSClass.cpp プロジェクト: infosia/Daisy
	void JSClass::ConstructorInitializeCallback(const JSContext& js_context, JSObject& this_object) const {
		if (!this_object.HasProperty("prototype")) {
			auto js_object = js_context.CreateObject();
			this_object.SetProperty("prototype", js_object);
		}

		auto proto_object = static_cast<JSObject>(this_object.GetProperty("prototype"));
		for (const auto v : prototype_functions_map__) {
			//
			// NOTE: On HAL, there's no difference between object "static" property and prototype property
			// so add it to both
			//
			this_object.SetProperty(v.first, JSObjectMakeFunctionWithCallback(js_context, v.first, v.second));
			proto_object.SetProperty(v.first, JSObjectMakeFunctionWithCallback(js_context, v.first, v.second));
		}
	}
		JSObject ShowContactsParams_to_js(const JSContext& js_context, const ShowContactsParams& dict)
		{
			auto object = js_context.CreateObject();
			object.SetProperty("animated", js_context.CreateBoolean(dict.animated));
			object.SetProperty("cancel", dict.callbacks.cancel);
			
			std::vector<JSValue> js_fields;
			for (const auto f : dict.fields) {
				js_fields.push_back(js_context.CreateString(f));
			}
			object.SetProperty("fields", js_context.CreateArray(js_fields));

			object.SetProperty("selectedPerson", dict.callbacks.selectedPerson);
			object.SetProperty("selectedProperty", dict.callbacks.selectedProperty);
			return object;
		};
コード例 #10
0
		JSObject RouteDescription_to_js(const JSContext& js_context, const RouteDescription& config)
		{
			auto object = js_context.CreateObject();

			std::vector<JSValue> js_inputs;
			for (const auto v : config.inputs) {
				js_inputs.push_back(js_context.CreateNumber(static_cast<std::uint32_t>(v)));
			}
			std::vector<JSValue> js_outputs;
			for (const auto v : config.outputs) {
				js_outputs.push_back(js_context.CreateNumber(static_cast<std::uint32_t>(v)));
			}
			object.SetProperty("inputs",  js_context.CreateArray(js_inputs));
			object.SetProperty("outputs", js_context.CreateArray(js_outputs));

			return object;
		}
コード例 #11
0
	bool Analytics::loadJS()
	{
		if (ti_analytics__.HasProperty("lastEvent") && ti_analytics__.HasProperty("featureEvent") && ti_analytics__.HasProperty("navEvent")) {
			return true;
		}

		JSContext context = get_context();
		auto export_object = context.CreateObject();
		export_object.SetProperty("global", context.get_global_object());

		context.JSEvaluateScript(analytics_js, export_object);

		if (export_object.HasProperty("exports")) {
			ti_analytics__ = static_cast<JSObject>(export_object.GetProperty("exports"));
		} else {
			return false;
		}
		return true;
	}
		JSObject Emails_to_js(const JSContext& js_context, const Emails& emails)
		{
			auto object = js_context.CreateObject();

			std::vector<JSValue> js_home;
			for (const auto email : emails.home) {
				js_home.push_back(js_context.CreateString(email));
			}
			object.SetProperty("home", js_context.CreateArray(js_home));

			std::vector<JSValue> js_work;
			for (const auto email : emails.work) {
				js_work.push_back(js_context.CreateString(email));
			}
			object.SetProperty("work", js_context.CreateArray(js_work));

			std::vector<JSValue> js_other;
			for (const auto email : emails.other) {
				js_other.push_back(js_context.CreateString(email));
			}
			object.SetProperty("other", js_context.CreateArray(js_other));
			return object;
		};