-- | General content types and operations.
module Game.LambdaHack.Client.UI.ContentClientUI
  ( CCUI(..), emptyCCUI
  ) where

import Prelude ()

import qualified Data.EnumMap.Strict as EM
import qualified Data.Map.Strict as M

import Game.LambdaHack.Client.UI.Content.Input
import Game.LambdaHack.Client.UI.Content.Screen

-- | Operations for all content types, gathered together.
data CCUI = CCUI
  { CCUI -> InputContent
coinput  :: InputContent
  , CCUI -> ScreenContent
coscreen :: ScreenContent
  }

emptyCCUI :: CCUI
emptyCCUI :: CCUI
emptyCCUI = $WCCUI :: InputContent -> ScreenContent -> CCUI
CCUI
  { coinput :: InputContent
coinput = Map KM CmdTriple
-> [(KM, CmdTriple)] -> Map HumanCmd [KM] -> InputContent
InputContent Map KM CmdTriple
forall k a. Map k a
M.empty [] Map HumanCmd [KM]
forall k a. Map k a
M.empty
  , coscreen :: ScreenContent
coscreen = $WScreenContent :: X
-> X
-> X
-> String
-> ([String], [[String]])
-> EnumMap Char Text
-> [(String, ByteString)]
-> ScreenContent
ScreenContent { rwidth :: X
rwidth = 0
                             , rheight :: X
rheight = 0
                             , rwrap :: X
rwrap = 0
                             , rwebAddress :: String
rwebAddress = ""
                             , rintroScreen :: ([String], [[String]])
rintroScreen = ([], [])
                             , rapplyVerbMap :: EnumMap Char Text
rapplyVerbMap = EnumMap Char Text
forall k a. EnumMap k a
EM.empty
                             , rFontFiles :: [(String, ByteString)]
rFontFiles = []
                             }
  }