tart-0.1.2: programs/Events/CanvasSizePrompt.hs
module Events.CanvasSizePrompt
( handleCanvasSizePromptEvent
)
where
import qualified Graphics.Vty as V
import Lens.Micro.Platform
import Brick
import Brick.Focus
import Brick.Widgets.Edit
import Types
import State
handleCanvasSizePromptEvent :: AppState -> BrickEvent Name e -> EventM Name (Next AppState)
handleCanvasSizePromptEvent s (MouseDown CanvasSizeWidthEdit _ _ _) =
continue $ s & canvasSizeFocus %~ focusSetCurrent CanvasSizeWidthEdit
handleCanvasSizePromptEvent s (MouseDown CanvasSizeHeightEdit _ _ _) =
continue $ s & canvasSizeFocus %~ focusSetCurrent CanvasSizeHeightEdit
handleCanvasSizePromptEvent s (MouseDown _ _ _ _) =
continue $ popMode s
handleCanvasSizePromptEvent s (VtyEvent (V.EvKey (V.KChar '\t') [])) =
continue $ s & canvasSizeFocus %~ focusNext
handleCanvasSizePromptEvent s (VtyEvent (V.EvKey V.KBackTab [])) =
continue $ s & canvasSizeFocus %~ focusPrev
handleCanvasSizePromptEvent s (VtyEvent (V.EvKey V.KEsc [])) =
continue $ popMode s
handleCanvasSizePromptEvent s (VtyEvent (V.EvKey V.KEnter [])) =
continue =<< tryResizeCanvas s
handleCanvasSizePromptEvent s (VtyEvent e) =
case focusGetCurrent (s^.canvasSizeFocus) of
Just CanvasSizeWidthEdit ->
continue =<< handleEventLensed s canvasSizeWidthEdit handleEditorEvent e
Just CanvasSizeHeightEdit ->
continue =<< handleEventLensed s canvasSizeHeightEdit handleEditorEvent e
_ -> continue s
handleCanvasSizePromptEvent s _ =
continue s