Beispiel #1
0
        void _paintThumb(
            double before,
            double inside,
            double after,
            double viewport,
            Canvas canvas,
            Size size,
            painterDelegate painter
            )
        {
            double thumbExtent = Math.Min(viewport, this.minOverscrollLength);

            if (before + inside + after > 0.0)
            {
                double fractionVisible = inside / (before + inside + after);
                thumbExtent = Math.Max(
                    thumbExtent,
                    viewport * fractionVisible - 2 * this.mainAxisMargin
                    );

                if (before != 0.0 && after != 0.0)
                {
                    thumbExtent = Math.Max(
                        this.minLength,
                        thumbExtent
                        );
                }
                else
                {
                    thumbExtent = Math.Max(
                        thumbExtent,
                        this.minLength * (((inside / viewport) - 0.8) / 0.2)
                        );
                }
            }

            double fractionPast = before / (before + after);
            double thumbOffset  = (before + after > 0.0)
                ? fractionPast * (viewport - thumbExtent - 2 * this.mainAxisMargin) + this.mainAxisMargin
                : this.mainAxisMargin;

            painter(canvas, size, thumbOffset, thumbExtent);
        }
Beispiel #2
0
        void _paintThumb(
            float before,
            float inside,
            float after,
            float viewport,
            Canvas canvas,
            Size size,
            painterDelegate painter
            )
        {
            float thumbExtent = Mathf.Min(viewport, this.minOverscrollLength);

            if (before + inside + after > 0.0)
            {
                float fractionVisible = inside / (before + inside + after);
                thumbExtent = Mathf.Max(
                    thumbExtent,
                    viewport * fractionVisible - 2 * this.mainAxisMargin
                    );

                if (before != 0.0 && after != 0.0)
                {
                    thumbExtent = Mathf.Max(
                        this.minLength,
                        thumbExtent
                        );
                }
                else
                {
                    thumbExtent = Mathf.Max(
                        thumbExtent,
                        this.minLength * (((inside / viewport) - 0.8f) / 0.2f)
                        );
                }

                float fractionPast = before / (before + after);
                float thumbOffset  = (before + after > 0.0)
                    ? fractionPast * (viewport - thumbExtent - 2 * this.mainAxisMargin) + this.mainAxisMargin
                    : this.mainAxisMargin;

                painter(canvas, size, thumbOffset, thumbExtent);
            }
        }