module Affection.MessageBus.Message.KeyboardMessage where

import Affection.MessageBus.Message.Class

import qualified SDL

data KeyboardMessage
  = MsgKeyboardEvent
    { msgKbdWhen :: Double
    , msgKbdWindow :: Maybe SDL.Window
    , msgKbdKeyMotion :: SDL.InputMotion
    , msgKbdKeyRepeat :: Bool
    , msgKbdKeysym :: SDL.Keysym
    }
  | MsgKeyboardEmptyEvent
  deriving (Show)

instance Message KeyboardMessage where
  msgTime (MsgKeyboardEvent t _ _ _ _) = t