Ejemplo n.º 1
0
        private static void InjectDictionaryConverter(IJSValueConverterService service)
        {
            service.RegisterArrayConverter <string>();

            service.RegisterProxyConverter <IDictionary <string, string> >(
                (binding, dict, node) =>
            {
                DictionaryWrapper wrapper = new DictionaryWrapper(dict);
                binding.SetFunction <IEnumerable <string> >("GetKeys", wrapper.GetKeys);
                binding.SetMethod <string, string>("SetItem", wrapper.SetItem);
                binding.SetFunction <string, string>("GetItem", wrapper.GetItem);
                binding.SetFunction <string, bool>("ContainsKey", wrapper.ContainsKey);
            }

                );
        }
Ejemplo n.º 2
0
        private void registerBasicTypes(IJSValueConverterService converter)
        {
            converter.RegisterStructConverter <PointF>(
                (jsvalue, value) =>
            {
                jsvalue.WriteProperty("X", value.X);
                jsvalue.WriteProperty("Y", value.Y);
            },
                (jsvalue) =>
            {
                return(new PointF(
                           jsvalue.ReadProperty <float>("X")
                           , jsvalue.ReadProperty <float>("Y")));
            });

            converter.RegisterStructConverter <SizeF>(
                (jsvalue, value) =>
            {
                jsvalue.WriteProperty("Width", value.Width);
                jsvalue.WriteProperty("Height", value.Height);
            },
                (jsvalue) =>
            {
                return(new SizeF(
                           jsvalue.ReadProperty <float>("Width")
                           , jsvalue.ReadProperty <float>("Height")));
            });
            converter.RegisterStructConverter <RectangleF>(
                (jsvalue, value) =>
            {
                jsvalue.WriteProperty("X", value.X);
                jsvalue.WriteProperty("Y", value.Y);
                jsvalue.WriteProperty("Width", value.Width);
                jsvalue.WriteProperty("Height", value.Height);
            },
                (jsvalue) =>
            {
                return(new RectangleF(
                           jsvalue.ReadProperty <float>("X")
                           , jsvalue.ReadProperty <float>("Y")
                           , jsvalue.ReadProperty <float>("Width")
                           , jsvalue.ReadProperty <float>("Height")));
            });
            converter.RegisterArrayConverter <PointF>();

            converter.RegisterConverter <BlendModeEnum>(
                (node, value) =>
            {
                return(node.GetService <IContextSwitchService>().With(() =>
                {
                    return API.JavaScriptValue.FromInt32((int)value);
                }));
            },
                (node, jsvalue) =>
            {
                return(node.GetService <IContextSwitchService>().With(() =>
                {
                    return (BlendModeEnum)jsvalue.ToInt32();
                }));
            }


                );
            converter.RegisterStructConverter <Effect>(
                (jsvalue, value) =>
            {
                jsvalue.WriteProperty <string>(nameof(value.Name), value.Name);
                jsvalue.WriteProperty <string>(nameof(value.ConfigJson), value.ConfigJson);
            },
                (jsvalue) =>
            {
                return(new Effect()
                {
                    Name = jsvalue.ReadProperty <string>(nameof(Effect.Name)),
                    ConfigJson = jsvalue.ReadProperty <string>(nameof(Effect.ConfigJson))
                });
            }

                );
        }