Ejemplo n.º 1
0
 public override void Paint(PaintVisitor p)
 {
     if (this.strokeColor.A > 0 &&
         this.ActualStrokeWidth > 0)
     {
         p.DrawPath(myCachedPath, this.strokeColor, this.ActualStrokeWidth);
     }
 }
Ejemplo n.º 2
0
 public void Paint(CssBox box, PaintVisitor p)
 {
     p.FillRectangle(this.Color,
                     box.LocalX + this.HBoxShadowOffset,
                     box.LocalY + this.VBoxShadowOffset,
                     box.VisualWidth,
                     box.VisualHeight);
 }
        protected override void PaintImp(PaintVisitor p)
        {
#if DEBUG
            p.dbugEnterNewContext(this, PaintVisitor.PaintVisitorContextName.Init);
#endif
            Paint(p, new RectangleF(0, 0, this.VisualWidth, this.VisualHeight));
#if DEBUG
            p.dbugExitContext();
#endif
        }
Ejemplo n.º 4
0
 public override void Paint(PaintVisitor p)
 {
     if (this.strokeColor.A > 0)
     {
         p.DrawLine(
             this.actualX1, this.actualY1,
             this.actualX2, this.actualY2,
             this.StrokeColor,
             this.ActualStrokeWidth);
     }
 }
Ejemplo n.º 5
0
 public override void Paint(PaintVisitor p)
 {
     if (fillColor.A > 0)
     {
         p.FillPath(this.myCachedPath, this.fillColor);
     }
     if (this.strokeColor.A > 0)
     {
         p.DrawPath(this.myCachedPath, this.strokeColor, this.ActualStrokeWidth);
     }
 }
        protected override void PaintImp(PaintVisitor p)
        {
#if DEBUG
            p.dbugEnterNewContext(this, PaintVisitor.PaintVisitorContextName.Init);
#endif
            Rectangle rect = new Rectangle(0, 0, renderE.Width, renderE.Height);
            this.renderE.DrawToThisCanvas(p.InnerCanvas, rect);
#if DEBUG
            p.dbugExitContext();
#endif
        }
        public override void Paint(PaintVisitor p, RectangleF r)
        {
            var updateArea = new Rectangle((int)r.Left, (int)r.Top, (int)r.Width, (int)r.Height);
            int x          = (int)updateArea.Left;
            int y          = (int)updateArea.Top;
            var canvasPage = p.InnerCanvas;

            canvasPage.OffsetCanvasOrigin(x, y);
            updateArea.Offset(-x, -y);
            externalRun.RenderElement.DrawToThisCanvas(canvasPage, updateArea);
            canvasPage.OffsetCanvasOrigin(-x, -y);
        }
Ejemplo n.º 8
0
        static void Main(string[] args)
        {
            var room = new Room()
            {
                Name = "Bliss 205"
            };
            var painter     = new PaintVisitor();
            var electrician = new ElectricianVisitor();

            room.Accept(painter);
            room.Accept(electrician);
        }
Ejemplo n.º 9
0
        public override void Paint(PaintVisitor p)
        {
            p.UseCurrentContext       = true;
            p.CurrentContextFillColor = spec.ActualColor;
            p.CurrentContextPenColor  = spec.StrokeColor;
            p.CurrentContextPenWidth  = this.ActualStrokeWidth;
            var node = this.GetFirstNode();

            while (node != null)
            {
                node.Value.Paint(p);
                node = node.Next;
            }
            p.UseCurrentContext = false;
        }
Ejemplo n.º 10
0
        public override void Paint(PaintVisitor p)
        {
            if (Vxs != null)
            {
                //1.
                //convert vxs to bitmap
                //then render with bitmap cache**
                //or
                //2. convert vxs to path data

                if (backimg == null)
                {
                    var svgPart = new SvgPart(SvgRenderVxKind.Path);
                    svgPart.FillColor = fillColor;

                    svgPart.SetVxsAsOriginal(Vxs);
                    var svgVx = new SvgRenderVx(new SvgPart[] { svgPart });

                    if (svgVx != null && !svgVx.HasBitmapSnapshot)
                    {
                        var bounds = svgVx.GetBounds();
                        //create
                        backimg = new ActualBitmap((int)bounds.Width, (int)bounds.Height);
                        AggRenderSurface renderSurface = new AggRenderSurface(backimg);
                        AggPainter       painter       = new AggPainter(renderSurface);
                        svgVx.Render(painter);
                        svgVx.SetBitmapSnapshot(backimg);
                        //***
                    }
                }


                if (backimg != null)
                {
                    p.InnerCanvas.DrawImage(backimg, new RectangleF(0, 0, backimg.Width, backimg.Height));
                    return;
                }
            }

            if (fillColor.A > 0)
            {
                p.FillPath(this.myCachedPath, this.fillColor);
            }
            if (this.strokeColor.A > 0)
            {
                p.DrawPath(this.myCachedPath, this.strokeColor, this.ActualStrokeWidth);
            }
        }
Ejemplo n.º 11
0
        static PaintVisitor GetSharedPainter(LayoutFarm.HtmlBoxes.HtmlContainer htmlCont, PixelFarm.Drawing.DrawBoard canvas)
        {
            PaintVisitor painter = null;

            if (painterStock.Count == 0)
            {
                painter = new PaintVisitor();
            }
            else
            {
                painter = painterStock.Dequeue();
            }

            painter.Bind(htmlCont, canvas);
            return(painter);
        }
Ejemplo n.º 12
0
 public void PaintSelection(PaintVisitor p, CssLineBox line)
 {
     if (this.Kind == SelectionSegmentKind.FullLine)
     {
         p.FillRectangle(p.CssBoxSelectionColor, //should  be configurable
                         0,
                         0,
                         line.CachedLineContentWidth,
                         line.CacheLineHeight);
     }
     else
     {
         p.FillRectangle(
             p.CssBoxSelectionColor,
             this.BeginAtPx, 0,
             this.WidthPx,
             (int)line.CacheLineHeight);
     }
 }
Ejemplo n.º 13
0
        public void PerformPaint(PaintVisitor p)
        {
            if (_rootBox == null)
            {
                return;
            }

            p.PushContaingBlock(_rootBox);
#if DEBUG
            p.dbugEnableLogRecord = false;
            p.dbugResetLogRecords();
            dbugPaintN++;
#endif
            CssBox.Paint(_rootBox, p);

            p.PopContainingBlock();
#if DEBUG
            if (p.dbugEnableLogRecord)
            {
            }
#endif
        }
Ejemplo n.º 14
0
 static void ReleaseSharedPainter(PaintVisitor p)
 {
     p.UnBind();
     painterStock.Enqueue(p);
 }
 public override void Paint(PaintVisitor p, RectangleF r)
 {
     var updateArea = new Rectangle((int)r.Left, (int)r.Top, (int)r.Width, (int)r.Height);
     int x = (int)updateArea.Left;
     int y = (int)updateArea.Top;
     var canvasPage = p.InnerCanvas;
     canvasPage.OffsetCanvasOrigin(x, y);
     updateArea.Offset(-x, -y);
     externalRun.RenderElement.DrawToThisCanvas(canvasPage, updateArea);
     canvasPage.OffsetCanvasOrigin(-x, -y);
 }
Ejemplo n.º 16
0
        public override void Paint(PaintVisitor p)
        {
            //DrawBoard g = p.InnerCanvas;
            if (fillColor.A > 0)
            {
                p.FillPath(_path, this.fillColor);
            }
            //---------------------------------------------------------
            if (this.ImageBinder != null)
            {
                //---------------------------------------------------------
                //Because we need external image resource , so ...
                //use render technique like CssBoxImage ****
                //---------------------------------------------------------

                RectangleF r           = new RectangleF(this.ActualX, this.ActualY, this.ActualWidth, this.ActualHeight);
                bool       tryLoadOnce = false;
EVAL_STATE:
                switch (this.ImageBinder.State)
                {
                case ImageBinderState.Unload:
                {
                    //async request image
                    if (!tryLoadOnce)
                    {
                        p.RequestImageAsync(_imgRun.ImageBinder, this._imgRun, this);
                        //retry again
                        tryLoadOnce = true;
                        goto EVAL_STATE;
                    }
                }
                break;

                case ImageBinderState.Loading:
                {
                    //RenderUtils.DrawImageLoadingIcon(g, r);
                }
                break;

                case ImageBinderState.Loaded:
                {
                    Image img;
                    if ((img = _imgRun.ImageBinder.Image) != null)
                    {
                        if (_imgRun.ImageRectangle == Rectangle.Empty)
                        {
                            p.DrawImage(img, r);
                        }
                        else
                        {
                            //
                            p.DrawImage(img, _imgRun.ImageRectangle);
                        }
                    }
                    else
                    {
                        RenderUtils.DrawImageLoadingIcon(p, r);
                        if (r.Width > 19 && r.Height > 19)
                        {
                            p.DrawImage(img, _imgRun.ImageRectangle);
                            p.DrawRectangle(Color.LightGray, r.X, r.Y, r.Width, r.Height);
                        }
                    }
                }
                break;

                case ImageBinderState.NoImage:
                {
                }
                break;

                case ImageBinderState.Error:
                {
                    RenderUtils.DrawImageErrorIcon(p, r);
                }
                break;
                }
            }
            //---------------------------------------------------------
            if (this.strokeColor.A > 0 &&
                this.ActualStrokeWidth > 0)
            {
                p.DrawPath(_path, strokeColor, ActualStrokeWidth);
            }
        }
        protected override void PaintImp(PaintVisitor p)
        {
#if DEBUG
            p.dbugEnterNewContext(this, PaintVisitor.PaintVisitorContextName.Init);
#endif
            Paint(p, new RectangleF(0, 0, this.VisualWidth, this.VisualHeight));
#if DEBUG
            p.dbugExitContext();
#endif
        }
Ejemplo n.º 18
0
 public virtual void Paint(PaintVisitor p)
 {
 }
        protected override void PaintImp(PaintVisitor p)
        {
#if DEBUG
            p.dbugEnterNewContext(this, PaintVisitor.PaintVisitorContextName.Init);
#endif
            Rectangle rect = new Rectangle(0, 0, renderE.Width, renderE.Height);
            this.renderE.DrawToThisCanvas(p.InnerCanvas, rect);
#if DEBUG
            p.dbugExitContext();
#endif
        }