module Graphics.Vty.Platform.Windows.Input.Terminfo.ANSIVT
( classifyTable
)
where
import Graphics.Vty.Input.Events
classifyTable :: [ClassifyMap]
classifyTable :: [ClassifyMap]
classifyTable =
[ ClassifyMap
cursorKeysMap
, ClassifyMap
numpadAndF5ToF12
, ClassifyMap
functionKeys1To4
]
cursorKeysMap :: ClassifyMap
cursorKeysMap :: ClassifyMap
cursorKeysMap =
[(String
"\ESC[" String -> String -> String
forall a. [a] -> [a] -> [a]
++ [Modifier] -> String
forall {t :: * -> *} {a}. Foldable t => t a -> String
prefix [Modifier]
mods String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
infx String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
name, Key -> [Modifier] -> Event
EvKey Key
key [Modifier]
mods)
| (String
name, Key
key) <-
[ (String
"A", Key
KUp)
, (String
"B", Key
KDown)
, (String
"C", Key
KRight)
, (String
"D", Key
KLeft)
, (String
"F", Key
KEnd)
, (String
"H", Key
KHome)
]
, (String
infx, [Modifier]
mods) <- [(String, [Modifier])]
modMap
]
where
prefix :: t a -> String
prefix t a
mods = if t a -> Bool
forall a. t a -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
null t a
mods then String
"" else String
"1"
numpadAndF5ToF12 :: ClassifyMap
numpadAndF5ToF12 :: ClassifyMap
numpadAndF5ToF12 =
[ (String
"\ESC[" String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
name String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
infx String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
"~", Key -> [Modifier] -> Event
EvKey Key
key [Modifier]
mods)
| (String
name, Key
key) <-
[ (String
"2", Key
KIns)
, (String
"3", Key
KDel)
, (String
"5", Key
KPageUp)
, (String
"6", Key
KPageDown)
, (String
"15", Int -> Key
KFun Int
5)
, (String
"17", Int -> Key
KFun Int
6)
, (String
"18", Int -> Key
KFun Int
7)
, (String
"19", Int -> Key
KFun Int
8)
, (String
"20", Int -> Key
KFun Int
9)
, (String
"21", Int -> Key
KFun Int
10)
, (String
"23", Int -> Key
KFun Int
11)
, (String
"24", Int -> Key
KFun Int
12)
]
, (String
infx, [Modifier]
mods) <- [(String, [Modifier])]
modMap
]
functionKeys1To4 :: ClassifyMap
functionKeys1To4 :: ClassifyMap
functionKeys1To4 =
[ (String
"\ESC" String -> String -> String
forall a. [a] -> [a] -> [a]
++ [Modifier] -> String
forall {t :: * -> *} {a}. Foldable t => t a -> String
prefix [Modifier]
mods String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
infx String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
name, Key -> [Modifier] -> Event
EvKey Key
key [Modifier]
mods)
| (String
name, Key
key) <-
[ (String
"P", Int -> Key
KFun Int
1),
(String
"Q", Int -> Key
KFun Int
2),
(String
"R", Int -> Key
KFun Int
3),
(String
"S", Int -> Key
KFun Int
4)
]
, (String
infx, [Modifier]
mods) <- [(String, [Modifier])]
modMap
]
where
prefix :: t a -> String
prefix t a
mods = if t a -> Bool
forall a. t a -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
null t a
mods then String
"O" else String
"[1"
modMap :: [(String, [Modifier])]
modMap :: [(String, [Modifier])]
modMap =
[ (String
"", []),
(String
";2", [Modifier
MShift]),
(String
";3", [Modifier
MMeta]),
(String
";4", [Modifier
MMeta, Modifier
MShift]),
(String
";5", [Modifier
MCtrl]),
(String
";6", [Modifier
MCtrl, Modifier
MShift]),
(String
";7", [Modifier
MMeta, Modifier
MCtrl]),
(String
";8", [Modifier
MMeta, Modifier
MCtrl, Modifier
MShift])
]