Пример #1
0
        void _drawDash(Canvas canvas, Offset origin, float t, Paint paint)
        {
            D.assert(t >= 0.0f && t <= 1.0f);
            Offset start     = new Offset(CheckboxUtils._kEdgeSize * 0.2f, CheckboxUtils._kEdgeSize * 0.5f);
            Offset mid       = new Offset(CheckboxUtils._kEdgeSize * 0.5f, CheckboxUtils._kEdgeSize * 0.5f);
            Offset end       = new Offset(CheckboxUtils._kEdgeSize * 0.8f, CheckboxUtils._kEdgeSize * 0.5f);
            Offset drawStart = Offset.lerp(start, mid, 1.0f - t);
            Offset drawEnd   = Offset.lerp(mid, end, t);

            canvas.drawLine(origin + drawStart, origin + drawEnd, paint);
        }
        public override void paint(Canvas canvas, Rect rect,
            float gapStart,
            float gapExtent = 0.0f,
            float gapPercentage = 0.0f
        ) {
            if (this.borderRadius.bottomLeft != Radius.zero || this.borderRadius.bottomRight != Radius.zero) {
                canvas.clipPath(this.getOuterPath(rect));
            }

            canvas.drawLine(rect.bottomLeft, rect.bottomRight, this.borderSide.toPaint());
        }
Пример #3
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
                );
        }
Пример #4
0
        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
                );
        }
Пример #5
0
        public override void paint(
            PaintingContext context,
            Offset center,
            Animation <float> activationAnimation = null,
            Animation <float> enableAnimation     = null,
            bool isDiscrete             = false,
            TextPainter labelPainter    = null,
            RenderBox parentBox         = null,
            SliderThemeData sliderTheme = null,
            TextDirection?textDirection = null,
            float?value = null)
        {
            Canvas     canvas      = context.canvas;
            ColorTween enableColor = new ColorTween(
                begin: sliderTheme.disabledThumbColor,
                end: sliderTheme.valueIndicatorColor
                );

            Tween <float> slideUpTween = new FloatTween(
                begin: 0.0f,
                end: _slideUpHeight
                );
            float  size          = _indicatorSize * sizeTween.evaluate(enableAnimation);
            Offset slideUpOffset = new Offset(0.0f, -slideUpTween.evaluate(activationAnimation));
            Path   thumbPath     = SliderDemoUtils._upTriangle(size, center + slideUpOffset);
            Color  paintColor    = enableColor.evaluate(enableAnimation)
                                   .withAlpha((255.0f * activationAnimation.value).round());

            canvas.drawPath(
                thumbPath,
                new Paint {
                color = paintColor
            }
                );
            canvas.drawLine(
                center,
                center + slideUpOffset,
                new Paint
            {
                color       = paintColor,
                style       = PaintingStyle.stroke,
                strokeWidth = 2.0f
            });
            labelPainter.paint(canvas,
                               center + slideUpOffset + new Offset(-labelPainter.width / 2.0f, -labelPainter.height - 4.0f));
        }
Пример #6
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);
            });
        }