module Potato.Flow.Vty.Attrs where


import           Relude

import Potato.Flow.Controller.Handler

import           Graphics.Vty


lg_default :: Attr
lg_default :: Attr
lg_default = Attr {
  attrStyle :: MaybeDefault Style
attrStyle = forall v. v -> MaybeDefault v
SetTo Style
defaultStyleMask
  , attrForeColor :: MaybeDefault Color
attrForeColor = forall v. v -> MaybeDefault v
SetTo Color
black
  , attrBackColor :: MaybeDefault Color
attrBackColor = forall v. v -> MaybeDefault v
SetTo Color
brightWhite
  , attrURL :: MaybeDefault Text
attrURL = forall v. MaybeDefault v
Default
}

lg_textfield_normal :: Attr
lg_textfield_normal :: Attr
lg_textfield_normal = Attr
lg_default Attr -> Color -> Attr
`withBackColor` Color
white

lg_textfield_modifying :: Attr
lg_textfield_modifying :: Attr
lg_textfield_modifying = Attr
lg_textfield_normal

lg_textfield_cursor :: Attr
lg_textfield_cursor :: Attr
lg_textfield_cursor = Attr
lg_default Attr -> Color -> Attr
`withBackColor` Color
black Attr -> Color -> Attr
`withForeColor` Color
white 


lg_layer_inheritselect :: Attr
lg_layer_inheritselect :: Attr
lg_layer_inheritselect = Attr
lg_default Attr -> Color -> Attr
`withBackColor` Color
white

lg_layer_selected :: Attr
lg_layer_selected :: Attr
lg_layer_selected = Attr
lg_default Attr -> Style -> Attr
`withStyle` Style
standout


lg_manip :: Attr
lg_manip :: Attr
lg_manip = Attr
lg_default Attr -> Style -> Attr
`withStyle` Style
blink Attr -> Color -> Attr
`withBackColor` Color
brightMagenta

lg_canvas_cursor :: Attr
lg_canvas_cursor :: Attr
lg_canvas_cursor = Attr
lg_default Attr -> Style -> Attr
`withStyle` Style
blink Attr -> Color -> Attr
`withBackColor` Color
brightMagenta

lg_canvas_default :: Attr
lg_canvas_default :: Attr
lg_canvas_default = Attr
lg_default

lg_canvas_oob :: Attr
lg_canvas_oob :: Attr
lg_canvas_oob = Attr
lg_default Attr -> Color -> Attr
`withBackColor` Color
white

renderHandlerColorToVtyColor :: RenderHandleColor -> Color
renderHandlerColorToVtyColor :: RenderHandleColor -> Color
renderHandlerColorToVtyColor = \case
  RenderHandleColor
RHC_Default -> Color
brightMagenta
  RenderHandleColor
RHC_Attachment -> Color
brightBlue
  RenderHandleColor
RHC_AttachmentHighlight -> Color
brightCyan

lg_make_canvas_cursor :: RenderHandleColor -> Attr
lg_make_canvas_cursor :: RenderHandleColor -> Attr
lg_make_canvas_cursor RenderHandleColor
rhc = Attr
lg_default Attr -> Style -> Attr
`withStyle` Style
blink Attr -> Color -> Attr
`withBackColor` (RenderHandleColor -> Color
renderHandlerColorToVtyColor RenderHandleColor
rhc)