module Yavie.Keybind ( Keybind , Cmdbind , Event(..) , Key(..) , Modifier(..) , Button(..) ) where import Control.EventDriven import Yavie.Editor data Event = EvKey Key [ Modifier ] | EvMouse Int Int Button [ Modifier ] | EvResize Int Int | EvExpose | EvDeleteEditor | UnknownEvent data Key = KEsc | KFun Int | KBS | KDel | KIns | KTab | KBackTab | KEnter | KUp | KDown | KLeft | KRight | KHome | KEnd | KPageUp | KPageDown | KMenu | KPause | KPrtScr | KASCII Char | KOthers Int | KUnknown data Modifier = MShift | MCtrl | MAlt | MMeta data Button = BLeft | BMiddle | BRight type Keybind c = Event -> EventMonad Event ( Editor c ) () type Cmdbind c = String -> EventMonad Event ( Editor c ) ()