Improve list demo

This commit is contained in:
Jonathan Daugherty 2015-06-28 13:15:15 -07:00
parent 371d7768eb
commit 549c4b8663

View File

@ -30,19 +30,28 @@ drawUI st = [ui]
Nothing -> "-"
Just i -> str (show (i + 1))
total = str $ show $ length $ st^.stList.listElementsL
ui = center $
borderWithLabel label $
hLimit 25 $
vLimit 15 $
renderList (st^.stList)
box = borderWithLabel label $
hLimit 25 $
vLimit 15 $
renderList (st^.stList)
ui = vCenter $ vBox [ hCenter box
, " "
, hCenter "Press +/- to add/remove list elements."
, hCenter "Press Esc to exit."
]
appEvent :: Event -> St -> EventM (Next St)
appEvent e st =
case e of
EvKey KEnter [] ->
EvKey (KChar '+') [] ->
let el = length $ st^.stList.listElementsL
in continue $ st & stList %~ (listInsert el el)
EvKey (KChar '-') [] ->
case st^.stList.listSelectedL of
Nothing -> continue st
Just i -> continue $ st & stList %~ (listRemove i)
EvKey KEsc [] -> halt st
ev -> continue $ st & stList %~ (handleEvent ev)