packages feed

tinytools-vty-0.1.0.0: src/Potato/Flow/Vty/Attrs.hs


module Potato.Flow.Vty.Attrs where


import           Relude

import Potato.Flow.Controller.Handler

import           Graphics.Vty


lg_default :: Attr
lg_default = Attr {
  attrStyle = SetTo defaultStyleMask
  , attrForeColor = SetTo black
  , attrBackColor = SetTo brightWhite
  , attrURL = Default
}

lg_textfield_normal :: Attr
lg_textfield_normal = lg_default `withBackColor` white

lg_textfield_modifying :: Attr
lg_textfield_modifying = lg_textfield_normal

lg_textfield_cursor :: Attr
lg_textfield_cursor = lg_default `withBackColor` black `withForeColor` white 


lg_layer_inheritselect :: Attr
lg_layer_inheritselect = lg_default `withBackColor` white

lg_layer_selected :: Attr
lg_layer_selected = lg_default `withStyle` standout


lg_manip :: Attr
lg_manip = lg_default `withStyle` blink `withBackColor` brightMagenta

lg_canvas_cursor :: Attr
lg_canvas_cursor = lg_default `withStyle` blink `withBackColor` brightMagenta

lg_canvas_default :: Attr
lg_canvas_default = lg_default

lg_canvas_oob :: Attr
lg_canvas_oob = lg_default `withBackColor` white

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

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