{-# LANGUAGE CPP #-}
#if __GLASGOW_HASKELL__ >= 703
{-# LANGUAGE Safe #-}
#endif
-- |
-- Maintainer  : judah.jacobson@gmail.com
-- Stability   : experimental
-- Portability : portable (FFI)
module System.Console.Terminfo.Edit where

import System.Console.Terminfo.Base

-- | Clear the screen, and move the cursor to the upper left.
clearScreen :: Capability (LinesAffected -> TermOutput)
clearScreen :: Capability (LinesAffected -> TermOutput)
clearScreen = (([LinesAffected] -> LinesAffected -> TermOutput)
 -> LinesAffected -> TermOutput)
-> Capability ([LinesAffected] -> LinesAffected -> TermOutput)
-> Capability (LinesAffected -> TermOutput)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (([LinesAffected] -> LinesAffected -> TermOutput)
-> [LinesAffected] -> LinesAffected -> TermOutput
forall a b. (a -> b) -> a -> b
$ []) (Capability ([LinesAffected] -> LinesAffected -> TermOutput)
 -> Capability (LinesAffected -> TermOutput))
-> Capability ([LinesAffected] -> LinesAffected -> TermOutput)
-> Capability (LinesAffected -> TermOutput)
forall a b. (a -> b) -> a -> b
$ String
-> Capability ([LinesAffected] -> LinesAffected -> TermOutput)
tiGetOutput String
"clear" 

-- | Clear from beginning of line to cursor.
clearBOL :: TermStr s => Capability s
clearBOL :: Capability s
clearBOL = String -> Capability s
forall f. OutputCap f => String -> Capability f
tiGetOutput1 String
"el1"

-- | Clear from cursor to end of line.
clearEOL :: TermStr s => Capability s
clearEOL :: Capability s
clearEOL = String -> Capability s
forall f. OutputCap f => String -> Capability f
tiGetOutput1 String
"el"

-- | Clear display after cursor.
clearEOS :: Capability (LinesAffected -> TermOutput)
clearEOS :: Capability (LinesAffected -> TermOutput)
clearEOS = (([LinesAffected] -> LinesAffected -> TermOutput)
 -> LinesAffected -> TermOutput)
-> Capability ([LinesAffected] -> LinesAffected -> TermOutput)
-> Capability (LinesAffected -> TermOutput)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (([LinesAffected] -> LinesAffected -> TermOutput)
-> [LinesAffected] -> LinesAffected -> TermOutput
forall a b. (a -> b) -> a -> b
$ []) (Capability ([LinesAffected] -> LinesAffected -> TermOutput)
 -> Capability (LinesAffected -> TermOutput))
-> Capability ([LinesAffected] -> LinesAffected -> TermOutput)
-> Capability (LinesAffected -> TermOutput)
forall a b. (a -> b) -> a -> b
$ String
-> Capability ([LinesAffected] -> LinesAffected -> TermOutput)
tiGetOutput String
"ed"