open GLFW module F = Fmt let pp_key : key F.t = fun ppf k -> F.pf ppf GLFW.( match k with | Unknown -> "Unknown" | Space -> "Space" | Apostrophe -> "Apostrophe" | Comma -> "Comma" | Minus -> "Minus" | Period -> "Period" | Slash -> "Slash" | Num0 -> "Num0" | Num1 -> "Num1" | Num2 -> "Num2" | Num3 -> "Num3" | Num4 -> "Num4" | Num5 -> "Num5" | Num6 -> "Num6" | Num7 -> "Num7" | Num8 -> "Num8" | Num9 -> "Num9" | Semicolon -> "Semicolon" | Equal -> "Equal" | A -> "A" | B -> "B" | C -> "C" | D -> "D" | E -> "E" | F -> "F" | G -> "G" | H -> "H" | I -> "I" | J -> "J" | K -> "K" | L -> "L" | M -> "M" | N -> "N" | O -> "O" | P -> "P" | Q -> "Q" | R -> "R" | S -> "S" | T -> "T" | U -> "U" | V -> "V" | W -> "W" | X -> "X" | Y -> "Y" | Z -> "Z" | LeftBracket -> "LeftBracket" | Backslash -> "Backslash" | RightBracket -> "RightBracket" | GraveAccent -> "GraveAccent" | World1 -> "World1" | World2 -> "World2" | Escape -> "Escape" | Enter -> "Enter" | Tab -> "Tab" | Backspace -> "Backspace" | Insert -> "Insert" | Delete -> "Delete" | Right -> "Right" | Left -> "Left" | Down -> "Down" | Up -> "Up" | PageUp -> "PageUp" | PageDown -> "PageDown" | Home -> "Home" | End -> "End" | CapsLock -> "CapsLock" | ScrollLock -> "ScrollLock" | NumLock -> "NumLock" | PrintScreen -> "PrintScreen" | Pause -> "Pause" | F1 -> "F1" | F2 -> "F2" | F3 -> "F3" | F4 -> "F4" | F5 -> "F5" | F6 -> "F6" | F7 -> "F7" | F8 -> "F8" | F9 -> "F9" | F10 -> "F10" | F11 -> "F11" | F12 -> "F12" | F13 -> "F13" | F14 -> "F14" | F15 -> "F15" | F16 -> "F16" | F17 -> "F17" | F18 -> "F18" | F19 -> "F19" | F20 -> "F20" | F21 -> "F21" | F22 -> "F22" | F23 -> "F23" | F24 -> "F24" | F25 -> "F25" | Kp0 -> "Kp0" | Kp1 -> "Kp1" | Kp2 -> "Kp2" | Kp3 -> "Kp3" | Kp4 -> "Kp4" | Kp5 -> "Kp5" | Kp6 -> "Kp6" | Kp7 -> "Kp7" | Kp8 -> "Kp8" | Kp9 -> "Kp9" | KpDecimal -> "KpDecimal" | KpDivide -> "KpDivide" | KpMultiply -> "KpMultiply" | KpSubtract -> "KpSubtract" | KpAdd -> "KpAdd" | KpEnter -> "KpEnter" | KpEqual -> "KpEqual" | LeftShift -> "LeftShift" | LeftControl -> "LeftControl" | LeftAlt -> "LeftAlt" | LeftSuper -> "LeftSuper" | RightShift -> "RightShift" | RightControl -> "RightControl" | RightAlt -> "RightAlt" | RightSuper -> "RightSuper" | Menu -> "Menu") let pp_key_action : GLFW.key_action F.t = fun ppf s -> F.pf ppf GLFW.( match s with | Release -> "Release" | Press -> "Press" | Repeat -> "Repeat") let pp_mods = F.( list (fun ppf s -> pf ppf GLFW.( match s with | Shift -> "Shift" | Control -> "Control" | Alt -> "Alt" | Super -> "Super")))