# Interface SyTextMultiLineModelReadableType

All Known Subinterfaces:
  `SyTextMultiLineModelType`

public interface SyTextMultiLineModelReadableType
A readable multi-line text model.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `SyFontType`
  `font()`
  `Optional<SyTextLocationType>`
  `inspectAt(com.io7m.jtensors.core.parameterized.vectors.PVector2I<SySpaceParentRelativeType> position)`
  Inspect the text at the given position.
  `Optional<SyTextLinePositioned>`
  `lineAt(SyTextLineNumber line)`
  `int`
  `lineCount()`
  `Stream<SyTextLinePositioned>`
  `lines()`
  `int`
  `minimumSizeYRequired()`
  Determine the minimum size required on the Y axis to display all the text at the current page width.
  `int`
  `pageWidth()`
  `SortedMap<SyTextID,SyText>`
  `textSections()`

- ## Method Details

  - ### font

    SyFontType font()
    Returns:
      The font used for the model

  - ### pageWidth

    int pageWidth()
    Returns:
      The page width for the model

  - ### textSections

    SortedMap<SyTextID,SyText> textSections()
    Returns:
      The text sections present in the model

  - ### inspectAt

    Optional<SyTextLocationType> inspectAt(com.io7m.jtensors.core.parameterized.vectors.PVector2I<SySpaceParentRelativeType> position)
    Inspect the text at the given position. The information returned includes details such as the index of the character within the string at the given location, information for rendering a caret, etc.
    Parameters:
      `position` - The position
    Returns:
      Information about text at the given position

  - ### minimumSizeYRequired

    int minimumSizeYRequired()
    Determine the minimum size required on the Y axis to display all the text at the current page width. This is effectively the number of lines multiplied by the height of each line.
    Returns:
      The minimum size required on the Y axis

  - ### lineCount

    int lineCount()
    Returns:
      The current number of lines

  - ### lineAt

    Optional<SyTextLinePositioned> lineAt(SyTextLineNumber line)
    Parameters:
      `line` - The line number
    Returns:
      The line at the given number

  - ### lines

    Stream<SyTextLinePositioned> lines()
    Returns:
      A lazy stream of the current lines