-- | Legacy interface for laying out paragraphs of plain text.
--
-- This interface only allows one font with a fixed line height to be used for
-- the entire paragraph. As a consequence, all lines will have the same height.
module Data.Text.ParagraphLayout.Plain
{-# DEPRECATED "Use \"Data.Text.ParagraphLayout.Rich\" instead." #-}
    ( Paragraph (Paragraph)
    , LineHeight (Absolute, Normal)
    , ParagraphOptions
    , defaultParagraphOptions
    -- ** Paragraph options
    -- | These are record selectors that can be used for reading
    -- as well as updating specific option fields.
    , paragraphFont
    , paragraphLineHeight
    , paragraphMaxWidth
    -- ** Text spans
    , Span (Span, spanUserData, spanLength, spanOptions)
    , SpanOptions
    , defaultSpanOptions
    -- ** Span options
    -- | These are record selectors that can be used for reading
    -- as well as updating specific option fields.
    , spanLanguage
    -- ** Verification
    , paragraphSpanBounds
    , paragraphSpanTexts
    , paragraphText
    -- * Output layout
    , layoutPlain
    , ParagraphLayout (ParagraphLayout, paragraphRect, spanLayouts)
    , SpanLayout (SpanLayout)
    , Fragment
        ( Fragment
        , fragmentUserData
        , fragmentLine
        , fragmentAncestorBoxes
        , fragmentRect
        , fragmentPen
        , fragmentGlyphs
        )
    , AncestorBox
        ( AncestorBox
        , boxUserData
        , boxLeftEdge
        , boxRightEdge
        , boxStartEdge
        , boxEndEdge
        )
    , BoxEdge (NoEdge, SpacedEdge)
    )
where

import Data.Text.ParagraphLayout.Internal.AncestorBox
import Data.Text.ParagraphLayout.Internal.Fragment
import Data.Text.ParagraphLayout.Internal.LineHeight
import Data.Text.ParagraphLayout.Internal.ParagraphOptions
import Data.Text.ParagraphLayout.Internal.Plain
import Data.Text.ParagraphLayout.Internal.Plain.Paragraph
import Data.Text.ParagraphLayout.Internal.Plain.ParagraphLayout
import Data.Text.ParagraphLayout.Internal.Span