packages feed

tart-0.1.1: programs/UI.hs

module UI
  ( drawUI
  )
where

import Brick
import Lens.Micro.Platform

import Types
import UI.Main
import UI.CharacterSelect
import UI.PaletteEntrySelect
import UI.ToolSelect
import UI.CanvasSizePrompt
import UI.AskToSave
import UI.AskForSaveFilename
import UI.TextEntry
import UI.BoxStyleSelect
import UI.StyleSelect

drawUI :: AppState -> [Widget Name]
drawUI s =
    concat $ drawMode s <$> s^.modes

drawMode :: AppState -> Mode -> [Widget Name]
drawMode s m =
    case m of
        Main                 -> drawMainUI s
        RenameLayer          -> []
        FgPaletteEntrySelect -> drawPaletteEntrySelectUI s
        BgPaletteEntrySelect -> drawPaletteEntrySelectUI s
        ToolSelect           -> drawToolSelectUI s
        CharacterSelect      -> drawCharacterSelectUI s
        CanvasSizePrompt     -> drawCanvasSizePromptUI s
        AskToSave            -> drawAskToSaveUI s
        AskForSaveFilename q -> drawAskForSaveFilenameUI q s
        TextEntry            -> drawTextEntryUI s
        BoxStyleSelect       -> drawBoxStyleSelectUI s
        StyleSelect          -> drawStyleSelectUI s