# Interface SyTextMultiLineModelType

All Superinterfaces:
  `SyTextMultiLineModelReadableType`

public interface SyTextMultiLineModelType extends SyTextMultiLineModelReadableType
A multi-line text model.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Optional<SyTextSelection>`
  `selectionContinue(com.io7m.jtensors.core.parameterized.vectors.PVector2I<SySpaceParentRelativeType> position)`
  Continue a selection operation.
  `Optional<SyTextSelection>`
  `selectionFinish(com.io7m.jtensors.core.parameterized.vectors.PVector2I<SySpaceParentRelativeType> position)`
  Finish a selection operation.
  `Optional<SyTextSelection>`
  `selectionStart(com.io7m.jtensors.core.parameterized.vectors.PVector2I<SySpaceParentRelativeType> position)`
  Start a selection operation.
  `void`
  `setFont(SyFontType font)`
  Set the font.
  `void`
  `setPageWidth(int width)`
  Set the page width in pixels.
  `default void`
  `textSectionAppend(SyText section)`
  Append a section of text at the end of the model.
  `void`
  `textSectionDelete(SyTextID textID)`
  Delete a text section with the given ID.
  `void`
  `textSectionInsert(SyTextID textID, SyText text)`
  Insert a text section before the given text ID.
  `void`
  `textSectionReplace(SyTextID textID, SyText text)`
  Replace an existing text section.
  `void`
  `textSectionsAppend(List<SyText> sections)`
  Append sections of text at the end of the model.

  ### Methods inherited from interface SyTextMultiLineModelReadableType

  `font, inspectAt, lineAt, lineCount, lines, minimumSizeYRequired, pageWidth, textSections`

- ## Method Details

  - ### setFont

    void setFont(SyFontType font)
    Set the font.
    Parameters:
      `font` - The font

  - ### setPageWidth

    void setPageWidth(int width)
    Set the page width in pixels.
    Parameters:
      `width` - The width

  - ### textSectionReplace

    void textSectionReplace(SyTextID textID, SyText text)
    Replace an existing text section.
    Parameters:
      `textID` - The text ID
      `text` - The new text section

  - ### textSectionInsert

    void textSectionInsert(SyTextID textID, SyText text)
    Insert a text section before the given text ID.
    Parameters:
      `textID` - The text ID
      `text` - The new text section

  - ### textSectionDelete

    void textSectionDelete(SyTextID textID)
    Delete a text section with the given ID.
    Parameters:
      `textID` - The text ID

  - ### textSectionAppend

    default void textSectionAppend(SyText section)
    Append a section of text at the end of the model.
    Parameters:
      `section` - The text

  - ### textSectionsAppend

    void textSectionsAppend(List<SyText> sections)
    Append sections of text at the end of the model.
    Parameters:
      `sections` - The text sections

  - ### selectionStart

    Optional<SyTextSelection> selectionStart(com.io7m.jtensors.core.parameterized.vectors.PVector2I<SySpaceParentRelativeType> position)
    Start a selection operation.
    Parameters:
      `position` - The parent-relative position
    Returns:
      The initial selection

  - ### selectionContinue

    Optional<SyTextSelection> selectionContinue(com.io7m.jtensors.core.parameterized.vectors.PVector2I<SySpaceParentRelativeType> position)
    Continue a selection operation.
    Parameters:
      `position` - The parent-relative position
    Returns:
      The selection

  - ### selectionFinish

    Optional<SyTextSelection> selectionFinish(com.io7m.jtensors.core.parameterized.vectors.PVector2I<SySpaceParentRelativeType> position)
    Finish a selection operation.
    Parameters:
      `position` - The parent-relative position
    Returns:
      The selection