about summary refs log blame commit diff
path: root/src/Xanthous/Command.hs
blob: 94c8075b34eef81b451cc307494f144be1dd609e (plain) (tree)
1
2
3
4
5
6
7
8
9
10









                                                  
                   
          


                                                    
 



                                                 



                                                     


                                                         

                                           
                            
module Xanthous.Command where

import Graphics.Vty.Input (Key(..), Modifier(..))

import Xanthous.Prelude hiding (Left, Right, Down)
import Xanthous.Data (Direction(..))

data Command
  = Quit
  | Move Direction
  | PreviousMessage
  | PickUp

commandFromKey :: Key -> [Modifier] -> Maybe Command
commandFromKey (KChar 'q') [] = Just Quit

commandFromKey (KChar 'h') [] = Just $ Move Left
commandFromKey (KChar 'j') [] = Just $ Move Down
commandFromKey (KChar 'k') [] = Just $ Move Up
commandFromKey (KChar 'l') [] = Just $ Move Right
commandFromKey (KChar 'y') [] = Just $ Move UpLeft
commandFromKey (KChar 'u') [] = Just $ Move UpRight
commandFromKey (KChar 'b') [] = Just $ Move DownLeft
commandFromKey (KChar 'n') [] = Just $ Move DownRight

commandFromKey (KChar 'p') [MCtrl] = Just PreviousMessage

commandFromKey (KChar ',') [] = Just PickUp

commandFromKey _ _ = Nothing