Class CodeBlockSpan

All Implemented Interfaces:
LeadingMarginSpan, ParagraphStyle, UpdateAppearance, UpdateLayout, Cloneable

public class CodeBlockSpan extends MetricAffectingSpan implements LeadingMarginSpan
  • Constructor Details

  • Method Details

    • updateDrawState

      public void updateDrawState(@NonNull TextPaint paint)
      Overrides:
      updateDrawState in class MetricAffectingSpan
    • updateMeasureState

      public void updateMeasureState(@NonNull TextPaint paint)
      Description copied from class: MetricAffectingSpan
      Classes that extend MetricAffectingSpan implement this method to update the text formatting in a way that can change the width or height of characters.
      Specified by:
      updateMeasureState in class MetricAffectingSpan
      Parameters:
      paint - the paint used for measuring the text
    • getLeadingMargin

      public int getLeadingMargin(@NonNull TextPaint paint, boolean first)
      Description copied from interface: LeadingMarginSpan
      Returns the amount by which to adjust the leading margin. Positive values move away from the leading edge of the paragraph, negative values move towards it.

      The leading margin is on the left for lines in a left-to-right paragraph, and on the right for lines in a right-to-left paragraph. The default implementation is to call LeadingMarginSpan.getLeadingMargin(boolean).

      Added by Modern UI.

      Specified by:
      getLeadingMargin in interface LeadingMarginSpan
      Parameters:
      paint - the base paint (read-only)
      first - true if the request is for the first line of a paragraph, false for subsequent lines
      Returns:
      the offset for the margin.
    • getTrailingMargin

      public int getTrailingMargin(@NonNull TextPaint paint)
      Description copied from interface: LeadingMarginSpan
      Returns the amount by which to adjust the trailing margin. Positive values move away from the trailing edge of the paragraph, negative values move towards it.

      The trailing margin is on the right for lines in a left-to-right paragraph, and on the left for lines in a right-to-left paragraph.

      Added by Modern UI.

      Specified by:
      getTrailingMargin in interface LeadingMarginSpan
      Parameters:
      paint - the base paint (read-only)
      Returns:
      the offset for the margin.
    • drawMargin

      public void drawMargin(@NonNull Canvas c, @NonNull TextPaint p, int left, int right, int dir, int top, int baseline, int bottom, @NonNull Spanned text, int start, int end, boolean first, @NonNull Layout layout)
      Description copied from interface: LeadingMarginSpan
      Called when drawing the margin.

      The default implementation is to call LeadingMarginSpan.drawLeadingMargin(icyllis.modernui.graphics.Canvas, icyllis.modernui.text.TextPaint, int, int, int, int, int, java.lang.CharSequence, int, int, boolean, icyllis.modernui.text.Layout), where x is either left or right, depending on dir. This method allows to draw the trailing margin at the same time, not just the leading margin.

      Added by Modern UI.

      Specified by:
      drawMargin in interface LeadingMarginSpan
      Parameters:
      c - the canvas
      p - the paint. This should be left unchanged on exit.
      left - the current left position of the margin
      right - the current right position of the margin
      dir - the base direction of the paragraph; if negative, the margin is to the right of the text, otherwise it is to the left.
      top - the top of the line
      baseline - the baseline of the line
      bottom - the bottom of the line
      text - the text
      start - the start of the line
      end - the end of the line
      first - true if this is the first line of its paragraph
      layout - the layout containing this line