Ejemplo n.º 1
0
        protected override float?computeDistanceToActualBaseline(TextBaseline baseline)
        {
            if (this.child != null)
            {
                return(this.child.getDistanceToActualBaseline(baseline));
            }

            return(base.computeDistanceToActualBaseline(baseline));
        }
Ejemplo n.º 2
0
        public PlaceholderSpan(
            TextBaseline baseline          = TextBaseline.alphabetic,
            TextStyle style                = null,
            PlaceholderAlignment alignment = PlaceholderAlignment.bottom

            ) : base(style: style)
        {
            this.baseline  = baseline;
            this.alignment = alignment;
        }
Ejemplo n.º 3
0
        public double computeDistanceToActualBaseline(TextBaseline baseline)
        {
            Debug.Assert(!this._needsLayout);
            switch (baseline)
            {
            case TextBaseline.alphabetic:
                return(this._paragraph.alphabeticBaseline);

            case TextBaseline.ideographic:
                return(this._paragraph.ideographicBaseline);
            }

            return(0.0);
        }
Ejemplo n.º 4
0
        public float?defaultComputeDistanceToFirstActualBaseline(TextBaseline baseline)
        {
            var child = this.firstChild;

            while (child != null)
            {
                var   childParentData = (ParentDataType)child.parentData;
                float?result          = child.getDistanceToActualBaseline(baseline);
                if (result != null)
                {
                    return(result.Value + childParentData.offset.dy);
                }

                child = childParentData.nextSibling;
            }

            return(null);
        }
Ejemplo n.º 5
0
        private float GetFontBaseline(TextBaseline baseline, SKPaint paint)
        {
            switch (baseline)
            {
            case TextBaseline.Top:     // TopTextBaseline
                return(paint.FontMetrics.Ascent);

            case TextBaseline.Middle:     // MiddleTextBaseline
                return(-paint.FontMetrics.Descent + paint.TextSize / 2);

            case TextBaseline.Bottom:     // BottomTextBaseline
                return(-paint.FontMetrics.Descent);

            default:
                break;
            }

            return(0);
        }
Ejemplo n.º 6
0
        private float GetFontBaseline(TextBaseline baseline, SKPaint paint)
        {
            switch (baseline)
            {
            case TextBaseline.Top:     // TopTextBaseline
                // https://chromium.googlesource.com/chromium/blink/+/master/Source/modules/canvas2d/CanvasRenderingContext2D.cpp#2056
                // According to http://wiki.apache.org/xmlgraphics-fop/LineLayout/AlignmentHandling
                // "FOP (Formatting Objects Processor) puts the hanging baseline at 80% of the ascender height"
                return((-paint.FontMetrics.Ascent * 4) / 5);

            case TextBaseline.Middle:     // MiddleTextBaseline
                return(-paint.FontMetrics.Descent + paint.TextSize / 2);

            case TextBaseline.Bottom:     // BottomTextBaseline
                return(-paint.FontMetrics.Descent);

            default:
                break;
            }

            return(0);
        }
Ejemplo n.º 7
0
        public override float?computeDistanceToActualBaseline(TextBaseline baseline)
        {
            float?result;

            if (child != null)
            {
                D.assert(!debugNeedsLayout);

                result = child.getDistanceToActualBaseline(baseline);
                var childParentData = (BoxParentData)child.parentData;
                if (result != null)
                {
                    result += childParentData.offset.dy;
                }
            }
            else
            {
                result = base.computeDistanceToActualBaseline(baseline);
            }

            return(result);
        }
Ejemplo n.º 8
0
 public TextStyle(Color color               = null, float?fontSize = null,
                  FontWeight fontWeight     = null, FontStyle?fontStyle       = null, float?letterSpacing = null,
                  float?wordSpacing         = null, TextBaseline?textBaseline = null, float?height        = null,
                  TextDecoration decoration = null, TextDecorationStyle?decorationStyle = null, Color decorationColor = null,
                  string fontFamily         = null,
                  Paint background          = null
                  )
 {
     this.color           = color ?? this.color;
     this.fontSize        = fontSize ?? this.fontSize;
     this.fontWeight      = fontWeight ?? this.fontWeight;
     this.fontStyle       = fontStyle ?? this.fontStyle;
     this.letterSpacing   = letterSpacing ?? this.letterSpacing;
     this.wordSpacing     = wordSpacing ?? this.wordSpacing;
     this.fontSize        = fontSize ?? this.fontSize;
     this.textBaseline    = textBaseline ?? this.textBaseline;
     this.height          = height ?? this.height;
     this.decoration      = decoration ?? this.decoration;
     this.decorationStyle = decorationStyle ?? this.decorationStyle;
     this.decorationColor = decorationColor ?? this.decorationColor;
     this.fontFamily      = fontFamily ?? this.fontFamily;
     this.background      = background ?? this.background;
 }
Ejemplo n.º 9
0
 internal _RenderButtonBarRow(
     List <RenderBox> children             = null,
     Axis direction                        = Axis.horizontal,
     MainAxisSize mainAxisSize             = MainAxisSize.max,
     MainAxisAlignment mainAxisAlignment   = MainAxisAlignment.start,
     CrossAxisAlignment crossAxisAlignment = CrossAxisAlignment.center,
     TextDirection textDirection           = TextDirection.ltr,
     VerticalDirection verticalDirection   = VerticalDirection.down,
     TextBaseline textBaseline             = TextBaseline.alphabetic,
     float?overflowButtonSpacing           = null
     ) : base(
         children: children,
         direction: direction,
         mainAxisSize: mainAxisSize,
         mainAxisAlignment: mainAxisAlignment,
         crossAxisAlignment: crossAxisAlignment,
         textDirection: textDirection,
         verticalDirection: verticalDirection,
         textBaseline: textBaseline
         )
 {
     D.assert(overflowButtonSpacing == null || overflowButtonSpacing >= 0);
     this.overflowButtonSpacing = overflowButtonSpacing;
 }
Ejemplo n.º 10
0
 protected override float?computeDistanceToActualBaseline(TextBaseline baseline)
 {
     return(this._baselineDistance);
 }
Ejemplo n.º 11
0
 static double _boxBaseline(RenderBox box, TextBaseline baseline)
 {
     return(box.getDistanceToBaseline(baseline) ?? 0.0);
 }
Ejemplo n.º 12
0
 public void SetTextBaseline(TextBaseline value)
 {
     this.TextBaseline = value;
     this.CallMethod <object>(TEXTBASELINE_PROPERTY, value.ToString().ToLowerInvariant());
 }
Ejemplo n.º 13
0
 public override float?computeDistanceToActualBaseline(TextBaseline baseline)
 {
     D.assert(!debugNeedsLayout);
     return(_baselineDistance);
 }
Ejemplo n.º 14
0
    internal void DrawText(string text, FontCi font, float x, float y, TextAlign align, TextBaseline baseline)
    {
        TextTexture t  = GetTextTexture(text, font);
        int         dx = 0;
        int         dy = 0;

        if (align == TextAlign.Center)
        {
            dx -= t.textwidth / 2;
        }
        if (align == TextAlign.Right)
        {
            dx -= t.textwidth;
        }
        if (baseline == TextBaseline.Middle)
        {
            dy -= t.textheight / 2;
        }
        if (baseline == TextBaseline.Bottom)
        {
            dy -= t.textheight;
        }
        Draw2dQuad(t.texture, x + dx, y + dy, t.texturewidth, t.textureheight);
    }
Ejemplo n.º 15
0
 protected override double?computeDistanceToActualBaseline(TextBaseline baseline)
 {
     return(this.defaultComputeDistanceToFirstActualBaseline(baseline));
 }
Ejemplo n.º 16
0
 protected override double?computeDistanceToActualBaseline(TextBaseline baseline)
 {
     this._layoutText(this.constraints.maxWidth);
     return(this._textPainter.computeDistanceToActualBaseline(baseline));
 }
Ejemplo n.º 17
0
 public Task SetTextBaseline(TextBaseline value) => _jsRuntime.InvokeAsync<Task>("canvasOperator.setCanvasProperty", Canvas, ContextProperties.TextBaseline, value);
Ejemplo n.º 18
0
        public GdiCanvas()
        {
            _width = 1;
            _height = 1;

            _currentPath = new GraphicsPath(FillMode.Winding);
            _stringFormat = new StringFormat();
            _stringFormat.LineAlignment = StringAlignment.Near;

            _lineWidth = 1;
            _currentX = 0;
            _currentY = 0;
            _font = new GdiFont("Arial", 10, GraphicsUnit.Pixel);
            _textAlign = TextAlign.Left;
            _textBaseline = TextBaseline.Top;

            Color = new Color(255, 255, 255);

            RecreateImage();
        }
Ejemplo n.º 19
0
 public static void SetLineAlignment(DependencyObject obj, TextBaseline value)
 {
     obj.SetValue(LineAlignmentProperty, value);
 }
Ejemplo n.º 20
0
 public AlignmentConverter(TextAlign textAlign, TextBaseline textBaseline)
 {
     _textAlign    = textAlign;
     _textBaseline = textBaseline;
 }
Ejemplo n.º 21
0
 float computeDistanceToActualBaseline(TextBaseline baseline)
 {
     return(child.computeDistanceToActualBaseline(baseline).Value +
            horizontalBorderSide.width);
 }
Ejemplo n.º 22
0
 public AlignmentConverter(TextAlign textAlign, TextBaseline textBaseline)
 {
     _textAlign = textAlign;
     _textBaseline = textBaseline;
 }
Ejemplo n.º 23
0
 internal void DrawText(string text, float fontSize, float x, float y, TextAlign align, TextBaseline baseline)
 {
     TextTexture t = GetTextTexture(text, fontSize);
     int dx = 0;
     int dy = 0;
     if (align == TextAlign.Center)
     {
         dx -= t.textwidth / 2;
     }
     if (align == TextAlign.Right)
     {
         dx -= t.textwidth;
     }
     if (baseline == TextBaseline.Middle)
     {
         dy -= t.textheight / 2;
     }
     if (baseline == TextBaseline.Bottom)
     {
         dy -= t.textheight;
     }
     Draw2dQuad(t.texture, x + dx, y + dy, t.texturewidth, t.textureheight);
 }
Ejemplo n.º 24
0
 public static void SetLineAlignment(DependencyObject obj, TextBaseline value)
 {
     obj.SetValue(LineAlignmentProperty, value);
 }