示例#1
0
        void _paintTickMarks(
            Canvas canvas,
            Rect trackLeft,
            Rect trackRight,
            Paint leftPaint,
            Paint rightPaint)
        {
            if (this.isDiscrete)
            {
                const float tickRadius = _trackHeight / 2.0f;
                float       trackWidth = trackRight.right - trackLeft.left;
                float       dx         = (trackWidth - _trackHeight) / this.divisions.Value;

                if (dx >= 3.0 * _trackHeight)
                {
                    for (int i = 0; i <= this.divisions.Value; i += 1)
                    {
                        float  left   = trackLeft.left + i * dx;
                        Offset center = new Offset(left + tickRadius, trackLeft.top + tickRadius);
                        if (trackLeft.contains(center))
                        {
                            canvas.drawCircle(center, tickRadius, leftPaint);
                        }
                        else if (trackRight.contains(center))
                        {
                            canvas.drawCircle(center, tickRadius, rightPaint);
                        }
                    }
                }
            }
        }
        public override void paint(
            PaintingContext context,
            Offset center,
            Animation <float> activationAnimation = null,
            Animation <float> enableAnimation     = null,
            bool?isDiscrete             = null,
            TextPainter labelPainter    = null,
            RenderBox parentBox         = null,
            SliderThemeData sliderTheme = null,
            float?value = null
            )
        {
            Canvas     canvas      = context.canvas;
            FloatTween radiusTween = new FloatTween(
                begin: 0.0f,
                end: this.overlayRadius
                );

            canvas.drawCircle(
                center,
                radiusTween.evaluate(activationAnimation),
                new Paint {
                color = sliderTheme.overlayColor
            }
                );
        }
示例#3
0
        public override void paint(Canvas canvas, Size size)
        {
            Paint paint = new Paint();

            paint.color = this.color;
            float radius = size.width / 2.0f;

            canvas.drawCircle(new Offset(radius, radius), radius, paint);
            canvas.drawRect(Rect.fromLTWH(0.0f, 0.0f, radius, radius), paint);
        }
示例#4
0
        void _paintOverlay(
            Canvas canvas,
            Offset center)
        {
            Paint overlayPaint = new Paint {
                color = this._sliderTheme.overlayColor
            };
            float radius = _overlayRadiusTween.evaluate(this._overlayAnimation);

            canvas.drawCircle(center, radius, overlayPaint);
        }
示例#5
0
        public override void paint(Canvas canvas, Rect rect, TextDirection?textDirection = null)
        {
            switch (side.style)
            {
            case BorderStyle.none:
                break;

            case BorderStyle.solid:
                canvas.drawCircle(rect.center, (rect.shortestSide - side.width) / 2.0f, side.toPaint());
                break;
            }
        }
        public override void paint(Canvas canvas, Rect rect)
        {
            switch (this.side.style)
            {
            case BorderStyle.none:
                break;

            case BorderStyle.solid:
                canvas.drawCircle(rect.center, (rect.shortestSide - this.side.width) / 2.0f, this.side.toPaint());
                break;
            }
        }
示例#7
0
        protected override void paintFeature(Canvas canvas, Matrix4 transform)
        {
            Paint paint = new Paint {
                color = this.color.withAlpha(this._alpha.value)
            };
            Offset center = this._position;

            if (this._repositionToReferenceBox)
            {
                center = Offset.lerp(center, this.referenceBox.size.center(Offset.zero), this._radiusController.value);
            }

            Offset originOffset = transform.getAsTranslation();

            canvas.save();
            if (originOffset == null)
            {
                canvas.concat(transform.toMatrix3());
            }
            else
            {
                canvas.translate(originOffset.dx, originOffset.dy);
            }

            if (this._clipCallback != null)
            {
                Rect rect = this._clipCallback();
                if (this._customBorder != null)
                {
                    canvas.clipPath(this._customBorder.getOuterPath(rect));
                }
                else if (this._borderRadius != BorderRadius.zero)
                {
                    canvas.clipRRect(RRect.fromRectAndCorners(
                                         rect,
                                         topLeft: this._borderRadius.topLeft,
                                         topRight: this._borderRadius.topRight,
                                         bottomLeft: this._borderRadius.bottomLeft,
                                         bottomRight: this._borderRadius.bottomRight));
                }
                else
                {
                    canvas.clipRect(rect);
                }
            }

            canvas.drawCircle(center, this._radius.value, paint);
            canvas.restore();
        }
示例#8
0
        public override void paint(Canvas canvas, Size size)
        {
            Paint paint = new Paint {
                color       = CustomTextSelectionControlsUtils._kHandlesColor,
                strokeWidth = 2.0f
            };

            canvas.drawCircle(this.origin.translate(0.0f, 6.0f), 5.5f, paint);
            canvas.drawLine(
                this.origin,
                this.origin.translate(
                    0.0f,
                    -(size.height - 2.0f * CustomTextSelectionControlsUtils._kHandlesPadding)
                    ),
                paint
                );
        }
        public override void paint(Canvas canvas, Size size)
        {
            Paint paint = new Paint();

            paint.color       = CupertinoTextSelectionUtils._kHandlesColor;
            paint.strokeWidth = 2.0f;

            canvas.drawCircle(this.origin.translate(0.0f, 4.0f), 5.5f, paint);
            canvas.drawLine(
                this.origin,
                this.origin.translate(
                    0.0f,
                    -(size.height - 2.0f * CupertinoTextSelectionUtils._kHandlesPadding)
                    ),
                paint
                );
        }
示例#10
0
        void _drawOuterBubblesFrame(Canvas canvas)
        {
            if (this.m_CirclePaints.Count == 0)
            {
                return;
            }

            for (int i = 0; i < this.m_BubblesCount; i++)
            {
                float cX = this.m_CenterX + this.m_CurrentRadius1 *
                           Mathf.Cos(i * LikeButtonUtil.degToRad(deg: this.m_OuterBubblesPositionAngle));
                float cY = this.m_CenterY + this.m_CurrentRadius1 *
                           Mathf.Sin(i * LikeButtonUtil.degToRad(deg: this.m_OuterBubblesPositionAngle));
                canvas.drawCircle(new Offset(dx: cX, dy: cY), radius: this.m_CurrentDotSize1,
                                  this.m_CirclePaints[i % this.m_CirclePaints.Count]);
            }
        }
 public override void paint(Canvas canvas, Size size)
 {
     foreach (_Circle circle in this.circles)
     {
         Paint paint = new Paint();
         paint.color = circle.color;
         Rect rect = Rect.fromLTWH(0.0f, 0.0f, size.width, size.height);
         canvas.clipRect(rect);
         float      leftFraction = circle.horizontalLeadingOffset;
         Offset     center       = new Offset(leftFraction * size.width, size.height / 2.0f);
         FloatTween radiusTween  = new FloatTween(
             begin: 0.0f,
             end: _maxRadius(center, size)
             );
         canvas.drawCircle(
             center,
             radiusTween.evaluate(circle.animation),
             paint
             );
     }
 }
        public void paint(Canvas canvas, Size size)
        {
            if (_glowOpacity.value == 0.0f)
            {
                return;
            }

            float  baseGlowScale = size.width > size.height ? size.height / size.width : 1.0f;
            float  radius        = size.width * 3.0f / 2.0f;
            float  height        = Mathf.Min(size.height, size.width * _widthToHeightFactor);
            float  scaleY        = _glowSize.value * baseGlowScale;
            Rect   rect          = Rect.fromLTWH(0.0f, 0.0f, size.width, height);
            Offset center        = new Offset((size.width / 2.0f) * (0.5f + _displacement), height - radius);
            Paint  paint         = new Paint();

            paint.color = color.withOpacity(_glowOpacity.value);
            canvas.save();
            canvas.scale(1.0f, scaleY);
            canvas.clipRect(rect);
            canvas.drawCircle(center, radius, paint);
            canvas.restore();
        }
        void _paintBox(Canvas canvas, Rect rect, Paint paint)
        {
            switch (this._decoration.shape)
            {
            case BoxShape.circle:
                D.assert(this._decoration.borderRadius == null);
                Offset center = rect.center;
                float  radius = rect.shortestSide / 2.0f;
                canvas.drawCircle(center, radius, paint);
                break;

            case BoxShape.rectangle:
                if (this._decoration.borderRadius == null)
                {
                    canvas.drawRect(rect, paint);
                }
                else
                {
                    canvas.drawRRect(this._decoration.borderRadius.toRRect(rect), paint);
                }

                break;
            }
        }
示例#14
0
        public override void debugPaint(PaintingContext context, Offset offset)
        {
            D.assert(() => {
                if (D.debugPaintSizeEnabled)
                {
                    float strokeWidth = Mathf.Min(4.0f, geometry.paintExtent / 30.0f);
                    Paint paint       = new Paint();
                    paint.color       = new Color(0xFF33CC33);
                    paint.strokeWidth = strokeWidth;
                    paint.style       = PaintingStyle.stroke;
                    paint.maskFilter  = MaskFilter.blur(BlurStyle.solid, strokeWidth);
                    float arrowExtent = geometry.paintExtent;
                    float padding     = Mathf.Max(2.0f, strokeWidth);
                    Canvas canvas     = context.canvas;
                    canvas.drawCircle(
                        offset.translate(padding, padding),
                        padding * 0.5f,
                        paint
                        );
                    switch (constraints.axis)
                    {
                    case Axis.vertical:
                        canvas.drawLine(
                            offset,
                            offset.translate(constraints.crossAxisExtent, 0.0f),
                            paint
                            );
                        _debugDrawArrow(
                            canvas,
                            paint,
                            offset.translate(constraints.crossAxisExtent * 1.0f / 4.0f, padding),
                            offset.translate(constraints.crossAxisExtent * 1.0f / 4.0f,
                                             (arrowExtent - padding)),
                            constraints.normalizedGrowthDirection
                            );
                        _debugDrawArrow(
                            canvas,
                            paint,
                            offset.translate(constraints.crossAxisExtent * 3.0f / 4.0f, padding),
                            offset.translate(constraints.crossAxisExtent * 3.0f / 4.0f,
                                             (arrowExtent - padding)),
                            constraints.normalizedGrowthDirection
                            );
                        break;

                    case Axis.horizontal:
                        canvas.drawLine(
                            offset,
                            offset.translate(0.0f, constraints.crossAxisExtent),
                            paint
                            );
                        _debugDrawArrow(
                            canvas,
                            paint,
                            offset.translate(padding, constraints.crossAxisExtent * 1.0f / 4.0f),
                            offset.translate((arrowExtent - padding),
                                             constraints.crossAxisExtent * 1.0f / 4.0f),
                            constraints.normalizedGrowthDirection
                            );
                        _debugDrawArrow(
                            canvas,
                            paint,
                            offset.translate(padding, constraints.crossAxisExtent * 3.0f / 4.0f),
                            offset.translate((arrowExtent - padding),
                                             constraints.crossAxisExtent * 3.0f / 4.0f),
                            constraints.normalizedGrowthDirection
                            );
                        break;
                    }
                }

                return(true);
            });
        }