예제 #1
0
        public CssBoxSvgRoot CreateSvgBox(CssBox parentBox,
                                          HtmlElement elementNode,
                                          LayoutFarm.Css.BoxSpec spec)
        {
            //TODO: review here
            //

            //create blank svg document
            VgDocument svgdoc = new VgDocument();

            svgdoc.CssActiveSheet         = new LayoutFarm.WebDom.CssActiveSheet();
            _currentDoc                   = svgdoc;
            _svgDocBuilder.ResultDocument = svgdoc;
            //
            _svgDocBuilder.OnBegin();
            CreateBoxContent(elementNode);
            _svgDocBuilder.OnEnd();

            //-----------------------------------------
            SvgRootEventPortal svgRootController = new SvgRootEventPortal(elementNode);
            CssBoxSvgRoot      svgRoot           = new CssBoxSvgRoot(
                elementNode.Spec,
                svgdoc);

            svgRoot.SetController(svgRootController);
            svgRootController.SvgRoot = svgRoot;
            parentBox.AppendChild(svgRoot);
            return(svgRoot);
        }
예제 #2
0
        public static CssBoxSvgRoot CreateSvgBox(CssBox parentBox,
                                                 HtmlElement elementNode,
                                                 Css.BoxSpec spec)
        {
            SvgFragment        fragment          = new SvgFragment();
            SvgRootEventPortal svgRootController = new SvgRootEventPortal(elementNode);
            CssBoxSvgRoot      svgRoot           = new CssBoxSvgRoot(
                elementNode.Spec,
                parentBox.RootGfx,
                fragment);

            svgRoot.SetController(svgRootController);
            svgRootController.SvgRoot = svgRoot;
            parentBox.AppendChild(svgRoot);
            CreateSvgBoxContent(fragment, elementNode);
            return(svgRoot);
        }