Пример #1
1
        /// <summary>
        /// This is a javascript application.
        /// </summary>
        /// <param name="page">HTML document rendered by the web server which can now be enhanced.</param>
        public Application(IApp page)
        {
            // X:\jsc.svn\examples\javascript\WebGL\WebGLSVGAnonymous\WebGLSVGAnonymous\Application.cs
            // X:\jsc.svn\examples\javascript\WebGL\WebGLVRCreativeLeadership\WebGLVRCreativeLeadership\Application.cs
            // X:\jsc.svn\examples\javascript\WebGL\WebGLSVGSprite\WebGLSVGSprite\Application.cs

            var l = new NotificationLayout().layout;

            l.AttachToDocument();


            new { }.With(
                async delegate
                {
                    var retry = new IHTMLButton { "retry" }.AttachToDocument();

                    do
                    {
                        new IHTMLHorizontalRule().AttachToDocument();

                        Task<ISVGSVGElement> n = l;

                        var svg = await n;

                        svg.AttachToDocument();

                        IHTMLImage i = svg;
                        i.AttachToDocument();

                        var c = new CanvasRenderingContext2D(svg.clientWidth, svg.clientHeight);

                        // http://www.w3schools.com/tags/canvas_fillstyle.asp
                        c.fillStyle = "red";

                        c.fillRect(0, 0, svg.clientWidth, svg.clientHeight);

                        // rather than to overload drawimage lets do an operator which is more exotic for the api
                        // at some point the canvas may implement the html drawing obseleting this workaround
                        c.drawImage(i, 0, 0, svg.clientWidth, svg.clientHeight);

                        c.canvas.AttachToDocument();
                    }
                    while (await retry.async.onclick);

                }
            );
        }
Пример #2
0
        /// <summary>
        /// This is a javascript application.
        /// </summary>
        /// <param name="page">HTML document rendered by the web server which can now be enhanced.</param>
        public Application(IApp page)
        {
            var l = new NotificationLayout().layout;

            l.AttachToDocument();

            var div0 = new IHTMLDiv().AttachToDocument();

            new { }.With(
                async delegate
                {

                    do
                    {
                        div0.Clear();

                        new IHTMLHorizontalRule().AttachToDocument();

                        Task<ISVGSVGElement> n = l;

                        var svg = await n;

                        IHTMLImage i = svg;

                        var c = new CanvasRenderingContext2D(l.clientWidth, l.clientHeight);
                        c.drawImage(i, 0, 0, l.clientWidth, l.clientHeight);
                        c.canvas.AttachTo(div0);
                    }
                    while (await l.async.onmutation);

                }
            );
        }