{-# LANGUAGE FlexibleInstances      #-}
{-# LANGUAGE FunctionalDependencies #-}
{-# LANGUAGE MultiParamTypeClasses  #-}
{-# LANGUAGE UndecidableInstances   #-}
module Reflex.SDL2.Class where


import           Control.Concurrent        (MVar)
import           Control.Monad.Reader      (ReaderT)
import           Control.Monad.Trans       (lift)
import           Data.Word                 (Word32)
import           Reflex                    (Event, Reflex)
import           Reflex.DynamicWriter.Base (DynamicWriterT)
import           SDL                       hiding (Event)


class (Reflex t, Monad m) => HasSDL2Events t m | m -> t where
  getTicksEvent :: m (Event t Word32)
  getAnySDLEvent :: m (Event t EventPayload)
  getWindowShownEvent :: m (Event t WindowShownEventData)
  getWindowHiddenEvent :: m (Event t WindowHiddenEventData)
  getWindowExposedEvent :: m (Event t WindowExposedEventData)
  getWindowMovedEvent :: m (Event t WindowMovedEventData)
  getWindowResizedEvent :: m (Event t WindowResizedEventData)
  getWindowSizeChangedEvent :: m (Event t WindowSizeChangedEventData)
  getWindowMinimizedEvent :: m (Event t WindowMinimizedEventData)
  getWindowMaximizedEvent :: m (Event t WindowMaximizedEventData)
  getWindowRestoredEvent :: m (Event t WindowRestoredEventData)
  getWindowGainedMouseFocusEvent :: m (Event t WindowGainedMouseFocusEventData)
  getWindowLostMouseFocusEvent :: m (Event t WindowLostMouseFocusEventData)
  getWindowGainedKeyboardFocusEvent :: m (Event t WindowGainedKeyboardFocusEventData)
  getWindowLostKeyboardFocusEvent :: m (Event t WindowLostKeyboardFocusEventData)
  getWindowClosedEvent :: m (Event t WindowClosedEventData)
  getKeyboardEvent :: m (Event t KeyboardEventData)
  getTextEditingEvent :: m (Event t TextEditingEventData)
  getTextInputEvent :: m (Event t TextInputEventData)
  getKeymapChangedEvent :: m (Event t ())
  getMouseMotionEvent :: m (Event t MouseMotionEventData)
  getMouseButtonEvent :: m (Event t MouseButtonEventData)
  getMouseWheelEvent :: m (Event t MouseWheelEventData)
  getJoyAxisEvent :: m (Event t JoyAxisEventData)
  getJoyBallEvent :: m (Event t JoyBallEventData)
  getJoyHatEvent :: m (Event t JoyHatEventData)
  getJoyButtonEvent :: m (Event t JoyButtonEventData)
  getJoyDeviceEvent :: m (Event t JoyDeviceEventData)
  getControllerAxisEvent :: m (Event t ControllerAxisEventData)
  getControllerButtonEvent :: m (Event t ControllerButtonEventData)
  getControllerDeviceEvent :: m (Event t ControllerDeviceEventData)
  getAudioDeviceEvent :: m (Event t AudioDeviceEventData)
  getQuitEvent :: m (Event t ())
  getUserEvent :: m (Event t UserEventData)
  getSysWMEvent :: m (Event t SysWMEventData)
  getTouchFingerEvent :: m (Event t TouchFingerEventData)
  getMultiGestureEvent :: m (Event t MultiGestureEventData)
  getDollarGestureEvent :: m (Event t DollarGestureEventData)
  getDropEvent :: m (Event t DropEventData)
  getClipboardUpdateEvent :: m (Event t ())
  getUnknownEvent :: m (Event t UnknownEventData)
  getQuitVar :: m (MVar ())


instance HasSDL2Events t m => HasSDL2Events t (ReaderT r m) where
  getTicksEvent :: ReaderT r m (Event t Word32)
getTicksEvent = m (Event t Word32) -> ReaderT r m (Event t Word32)
forall (m :: * -> *) a. Monad m => m a -> ReaderT r m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t Word32)
forall t (m :: * -> *). HasSDL2Events t m => m (Event t Word32)
getTicksEvent
  getAnySDLEvent :: ReaderT r m (Event t EventPayload)
getAnySDLEvent = m (Event t EventPayload) -> ReaderT r m (Event t EventPayload)
forall (m :: * -> *) a. Monad m => m a -> ReaderT r m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t EventPayload)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t EventPayload)
getAnySDLEvent
  getWindowShownEvent :: ReaderT r m (Event t WindowShownEventData)
getWindowShownEvent = m (Event t WindowShownEventData)
-> ReaderT r m (Event t WindowShownEventData)
forall (m :: * -> *) a. Monad m => m a -> ReaderT r m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t WindowShownEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t WindowShownEventData)
getWindowShownEvent
  getWindowHiddenEvent :: ReaderT r m (Event t WindowHiddenEventData)
getWindowHiddenEvent = m (Event t WindowHiddenEventData)
-> ReaderT r m (Event t WindowHiddenEventData)
forall (m :: * -> *) a. Monad m => m a -> ReaderT r m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t WindowHiddenEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t WindowHiddenEventData)
getWindowHiddenEvent
  getWindowExposedEvent :: ReaderT r m (Event t WindowExposedEventData)
getWindowExposedEvent = m (Event t WindowExposedEventData)
-> ReaderT r m (Event t WindowExposedEventData)
forall (m :: * -> *) a. Monad m => m a -> ReaderT r m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t WindowExposedEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t WindowExposedEventData)
getWindowExposedEvent
  getWindowMovedEvent :: ReaderT r m (Event t WindowMovedEventData)
getWindowMovedEvent = m (Event t WindowMovedEventData)
-> ReaderT r m (Event t WindowMovedEventData)
forall (m :: * -> *) a. Monad m => m a -> ReaderT r m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t WindowMovedEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t WindowMovedEventData)
getWindowMovedEvent
  getWindowResizedEvent :: ReaderT r m (Event t WindowResizedEventData)
getWindowResizedEvent = m (Event t WindowResizedEventData)
-> ReaderT r m (Event t WindowResizedEventData)
forall (m :: * -> *) a. Monad m => m a -> ReaderT r m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t WindowResizedEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t WindowResizedEventData)
getWindowResizedEvent
  getWindowSizeChangedEvent :: ReaderT r m (Event t WindowSizeChangedEventData)
getWindowSizeChangedEvent = m (Event t WindowSizeChangedEventData)
-> ReaderT r m (Event t WindowSizeChangedEventData)
forall (m :: * -> *) a. Monad m => m a -> ReaderT r m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t WindowSizeChangedEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t WindowSizeChangedEventData)
getWindowSizeChangedEvent
  getWindowMinimizedEvent :: ReaderT r m (Event t WindowMinimizedEventData)
getWindowMinimizedEvent = m (Event t WindowMinimizedEventData)
-> ReaderT r m (Event t WindowMinimizedEventData)
forall (m :: * -> *) a. Monad m => m a -> ReaderT r m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t WindowMinimizedEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t WindowMinimizedEventData)
getWindowMinimizedEvent
  getWindowMaximizedEvent :: ReaderT r m (Event t WindowMaximizedEventData)
getWindowMaximizedEvent = m (Event t WindowMaximizedEventData)
-> ReaderT r m (Event t WindowMaximizedEventData)
forall (m :: * -> *) a. Monad m => m a -> ReaderT r m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t WindowMaximizedEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t WindowMaximizedEventData)
getWindowMaximizedEvent
  getWindowRestoredEvent :: ReaderT r m (Event t WindowRestoredEventData)
getWindowRestoredEvent = m (Event t WindowRestoredEventData)
-> ReaderT r m (Event t WindowRestoredEventData)
forall (m :: * -> *) a. Monad m => m a -> ReaderT r m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t WindowRestoredEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t WindowRestoredEventData)
getWindowRestoredEvent
  getWindowGainedMouseFocusEvent :: ReaderT r m (Event t WindowGainedMouseFocusEventData)
getWindowGainedMouseFocusEvent = m (Event t WindowGainedMouseFocusEventData)
-> ReaderT r m (Event t WindowGainedMouseFocusEventData)
forall (m :: * -> *) a. Monad m => m a -> ReaderT r m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t WindowGainedMouseFocusEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t WindowGainedMouseFocusEventData)
getWindowGainedMouseFocusEvent
  getWindowLostMouseFocusEvent :: ReaderT r m (Event t WindowLostMouseFocusEventData)
getWindowLostMouseFocusEvent = m (Event t WindowLostMouseFocusEventData)
-> ReaderT r m (Event t WindowLostMouseFocusEventData)
forall (m :: * -> *) a. Monad m => m a -> ReaderT r m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t WindowLostMouseFocusEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t WindowLostMouseFocusEventData)
getWindowLostMouseFocusEvent
  getWindowGainedKeyboardFocusEvent :: ReaderT r m (Event t WindowGainedKeyboardFocusEventData)
getWindowGainedKeyboardFocusEvent = m (Event t WindowGainedKeyboardFocusEventData)
-> ReaderT r m (Event t WindowGainedKeyboardFocusEventData)
forall (m :: * -> *) a. Monad m => m a -> ReaderT r m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t WindowGainedKeyboardFocusEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t WindowGainedKeyboardFocusEventData)
getWindowGainedKeyboardFocusEvent
  getWindowLostKeyboardFocusEvent :: ReaderT r m (Event t WindowLostKeyboardFocusEventData)
getWindowLostKeyboardFocusEvent = m (Event t WindowLostKeyboardFocusEventData)
-> ReaderT r m (Event t WindowLostKeyboardFocusEventData)
forall (m :: * -> *) a. Monad m => m a -> ReaderT r m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t WindowLostKeyboardFocusEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t WindowLostKeyboardFocusEventData)
getWindowLostKeyboardFocusEvent
  getWindowClosedEvent :: ReaderT r m (Event t WindowClosedEventData)
getWindowClosedEvent = m (Event t WindowClosedEventData)
-> ReaderT r m (Event t WindowClosedEventData)
forall (m :: * -> *) a. Monad m => m a -> ReaderT r m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t WindowClosedEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t WindowClosedEventData)
getWindowClosedEvent
  getKeyboardEvent :: ReaderT r m (Event t KeyboardEventData)
getKeyboardEvent = m (Event t KeyboardEventData)
-> ReaderT r m (Event t KeyboardEventData)
forall (m :: * -> *) a. Monad m => m a -> ReaderT r m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t KeyboardEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t KeyboardEventData)
getKeyboardEvent
  getTextEditingEvent :: ReaderT r m (Event t TextEditingEventData)
getTextEditingEvent = m (Event t TextEditingEventData)
-> ReaderT r m (Event t TextEditingEventData)
forall (m :: * -> *) a. Monad m => m a -> ReaderT r m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t TextEditingEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t TextEditingEventData)
getTextEditingEvent
  getTextInputEvent :: ReaderT r m (Event t TextInputEventData)
getTextInputEvent = m (Event t TextInputEventData)
-> ReaderT r m (Event t TextInputEventData)
forall (m :: * -> *) a. Monad m => m a -> ReaderT r m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t TextInputEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t TextInputEventData)
getTextInputEvent
  getKeymapChangedEvent :: ReaderT r m (Event t ())
getKeymapChangedEvent = m (Event t ()) -> ReaderT r m (Event t ())
forall (m :: * -> *) a. Monad m => m a -> ReaderT r m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t ())
forall t (m :: * -> *). HasSDL2Events t m => m (Event t ())
getKeymapChangedEvent
  getMouseMotionEvent :: ReaderT r m (Event t MouseMotionEventData)
getMouseMotionEvent = m (Event t MouseMotionEventData)
-> ReaderT r m (Event t MouseMotionEventData)
forall (m :: * -> *) a. Monad m => m a -> ReaderT r m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t MouseMotionEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t MouseMotionEventData)
getMouseMotionEvent
  getMouseButtonEvent :: ReaderT r m (Event t MouseButtonEventData)
getMouseButtonEvent = m (Event t MouseButtonEventData)
-> ReaderT r m (Event t MouseButtonEventData)
forall (m :: * -> *) a. Monad m => m a -> ReaderT r m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t MouseButtonEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t MouseButtonEventData)
getMouseButtonEvent
  getMouseWheelEvent :: ReaderT r m (Event t MouseWheelEventData)
getMouseWheelEvent = m (Event t MouseWheelEventData)
-> ReaderT r m (Event t MouseWheelEventData)
forall (m :: * -> *) a. Monad m => m a -> ReaderT r m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t MouseWheelEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t MouseWheelEventData)
getMouseWheelEvent
  getJoyAxisEvent :: ReaderT r m (Event t JoyAxisEventData)
getJoyAxisEvent = m (Event t JoyAxisEventData)
-> ReaderT r m (Event t JoyAxisEventData)
forall (m :: * -> *) a. Monad m => m a -> ReaderT r m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t JoyAxisEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t JoyAxisEventData)
getJoyAxisEvent
  getJoyBallEvent :: ReaderT r m (Event t JoyBallEventData)
getJoyBallEvent = m (Event t JoyBallEventData)
-> ReaderT r m (Event t JoyBallEventData)
forall (m :: * -> *) a. Monad m => m a -> ReaderT r m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t JoyBallEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t JoyBallEventData)
getJoyBallEvent
  getJoyHatEvent :: ReaderT r m (Event t JoyHatEventData)
getJoyHatEvent = m (Event t JoyHatEventData)
-> ReaderT r m (Event t JoyHatEventData)
forall (m :: * -> *) a. Monad m => m a -> ReaderT r m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t JoyHatEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t JoyHatEventData)
getJoyHatEvent
  getJoyButtonEvent :: ReaderT r m (Event t JoyButtonEventData)
getJoyButtonEvent = m (Event t JoyButtonEventData)
-> ReaderT r m (Event t JoyButtonEventData)
forall (m :: * -> *) a. Monad m => m a -> ReaderT r m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t JoyButtonEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t JoyButtonEventData)
getJoyButtonEvent
  getJoyDeviceEvent :: ReaderT r m (Event t JoyDeviceEventData)
getJoyDeviceEvent = m (Event t JoyDeviceEventData)
-> ReaderT r m (Event t JoyDeviceEventData)
forall (m :: * -> *) a. Monad m => m a -> ReaderT r m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t JoyDeviceEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t JoyDeviceEventData)
getJoyDeviceEvent
  getControllerAxisEvent :: ReaderT r m (Event t ControllerAxisEventData)
getControllerAxisEvent = m (Event t ControllerAxisEventData)
-> ReaderT r m (Event t ControllerAxisEventData)
forall (m :: * -> *) a. Monad m => m a -> ReaderT r m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t ControllerAxisEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t ControllerAxisEventData)
getControllerAxisEvent
  getControllerButtonEvent :: ReaderT r m (Event t ControllerButtonEventData)
getControllerButtonEvent = m (Event t ControllerButtonEventData)
-> ReaderT r m (Event t ControllerButtonEventData)
forall (m :: * -> *) a. Monad m => m a -> ReaderT r m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t ControllerButtonEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t ControllerButtonEventData)
getControllerButtonEvent
  getControllerDeviceEvent :: ReaderT r m (Event t ControllerDeviceEventData)
getControllerDeviceEvent = m (Event t ControllerDeviceEventData)
-> ReaderT r m (Event t ControllerDeviceEventData)
forall (m :: * -> *) a. Monad m => m a -> ReaderT r m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t ControllerDeviceEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t ControllerDeviceEventData)
getControllerDeviceEvent
  getAudioDeviceEvent :: ReaderT r m (Event t AudioDeviceEventData)
getAudioDeviceEvent = m (Event t AudioDeviceEventData)
-> ReaderT r m (Event t AudioDeviceEventData)
forall (m :: * -> *) a. Monad m => m a -> ReaderT r m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t AudioDeviceEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t AudioDeviceEventData)
getAudioDeviceEvent
  getQuitEvent :: ReaderT r m (Event t ())
getQuitEvent = m (Event t ()) -> ReaderT r m (Event t ())
forall (m :: * -> *) a. Monad m => m a -> ReaderT r m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t ())
forall t (m :: * -> *). HasSDL2Events t m => m (Event t ())
getQuitEvent
  getUserEvent :: ReaderT r m (Event t UserEventData)
getUserEvent = m (Event t UserEventData) -> ReaderT r m (Event t UserEventData)
forall (m :: * -> *) a. Monad m => m a -> ReaderT r m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t UserEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t UserEventData)
getUserEvent
  getSysWMEvent :: ReaderT r m (Event t SysWMEventData)
getSysWMEvent = m (Event t SysWMEventData) -> ReaderT r m (Event t SysWMEventData)
forall (m :: * -> *) a. Monad m => m a -> ReaderT r m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t SysWMEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t SysWMEventData)
getSysWMEvent
  getTouchFingerEvent :: ReaderT r m (Event t TouchFingerEventData)
getTouchFingerEvent = m (Event t TouchFingerEventData)
-> ReaderT r m (Event t TouchFingerEventData)
forall (m :: * -> *) a. Monad m => m a -> ReaderT r m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t TouchFingerEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t TouchFingerEventData)
getTouchFingerEvent
  getMultiGestureEvent :: ReaderT r m (Event t MultiGestureEventData)
getMultiGestureEvent = m (Event t MultiGestureEventData)
-> ReaderT r m (Event t MultiGestureEventData)
forall (m :: * -> *) a. Monad m => m a -> ReaderT r m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t MultiGestureEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t MultiGestureEventData)
getMultiGestureEvent
  getDollarGestureEvent :: ReaderT r m (Event t DollarGestureEventData)
getDollarGestureEvent = m (Event t DollarGestureEventData)
-> ReaderT r m (Event t DollarGestureEventData)
forall (m :: * -> *) a. Monad m => m a -> ReaderT r m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t DollarGestureEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t DollarGestureEventData)
getDollarGestureEvent
  getDropEvent :: ReaderT r m (Event t DropEventData)
getDropEvent = m (Event t DropEventData) -> ReaderT r m (Event t DropEventData)
forall (m :: * -> *) a. Monad m => m a -> ReaderT r m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t DropEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t DropEventData)
getDropEvent
  getClipboardUpdateEvent :: ReaderT r m (Event t ())
getClipboardUpdateEvent = m (Event t ()) -> ReaderT r m (Event t ())
forall (m :: * -> *) a. Monad m => m a -> ReaderT r m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t ())
forall t (m :: * -> *). HasSDL2Events t m => m (Event t ())
getClipboardUpdateEvent
  getUnknownEvent :: ReaderT r m (Event t UnknownEventData)
getUnknownEvent = m (Event t UnknownEventData)
-> ReaderT r m (Event t UnknownEventData)
forall (m :: * -> *) a. Monad m => m a -> ReaderT r m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t UnknownEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t UnknownEventData)
getUnknownEvent
  getQuitVar :: ReaderT r m (MVar ())
getQuitVar = m (MVar ()) -> ReaderT r m (MVar ())
forall (m :: * -> *) a. Monad m => m a -> ReaderT r m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (MVar ())
forall t (m :: * -> *). HasSDL2Events t m => m (MVar ())
getQuitVar


instance HasSDL2Events t m => HasSDL2Events t (DynamicWriterT t w m) where
  getTicksEvent :: DynamicWriterT t w m (Event t Word32)
getTicksEvent = m (Event t Word32) -> DynamicWriterT t w m (Event t Word32)
forall (m :: * -> *) a. Monad m => m a -> DynamicWriterT t w m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t Word32)
forall t (m :: * -> *). HasSDL2Events t m => m (Event t Word32)
getTicksEvent
  getAnySDLEvent :: DynamicWriterT t w m (Event t EventPayload)
getAnySDLEvent = m (Event t EventPayload)
-> DynamicWriterT t w m (Event t EventPayload)
forall (m :: * -> *) a. Monad m => m a -> DynamicWriterT t w m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t EventPayload)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t EventPayload)
getAnySDLEvent
  getWindowShownEvent :: DynamicWriterT t w m (Event t WindowShownEventData)
getWindowShownEvent = m (Event t WindowShownEventData)
-> DynamicWriterT t w m (Event t WindowShownEventData)
forall (m :: * -> *) a. Monad m => m a -> DynamicWriterT t w m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t WindowShownEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t WindowShownEventData)
getWindowShownEvent
  getWindowHiddenEvent :: DynamicWriterT t w m (Event t WindowHiddenEventData)
getWindowHiddenEvent = m (Event t WindowHiddenEventData)
-> DynamicWriterT t w m (Event t WindowHiddenEventData)
forall (m :: * -> *) a. Monad m => m a -> DynamicWriterT t w m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t WindowHiddenEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t WindowHiddenEventData)
getWindowHiddenEvent
  getWindowExposedEvent :: DynamicWriterT t w m (Event t WindowExposedEventData)
getWindowExposedEvent = m (Event t WindowExposedEventData)
-> DynamicWriterT t w m (Event t WindowExposedEventData)
forall (m :: * -> *) a. Monad m => m a -> DynamicWriterT t w m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t WindowExposedEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t WindowExposedEventData)
getWindowExposedEvent
  getWindowMovedEvent :: DynamicWriterT t w m (Event t WindowMovedEventData)
getWindowMovedEvent = m (Event t WindowMovedEventData)
-> DynamicWriterT t w m (Event t WindowMovedEventData)
forall (m :: * -> *) a. Monad m => m a -> DynamicWriterT t w m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t WindowMovedEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t WindowMovedEventData)
getWindowMovedEvent
  getWindowResizedEvent :: DynamicWriterT t w m (Event t WindowResizedEventData)
getWindowResizedEvent = m (Event t WindowResizedEventData)
-> DynamicWriterT t w m (Event t WindowResizedEventData)
forall (m :: * -> *) a. Monad m => m a -> DynamicWriterT t w m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t WindowResizedEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t WindowResizedEventData)
getWindowResizedEvent
  getWindowSizeChangedEvent :: DynamicWriterT t w m (Event t WindowSizeChangedEventData)
getWindowSizeChangedEvent = m (Event t WindowSizeChangedEventData)
-> DynamicWriterT t w m (Event t WindowSizeChangedEventData)
forall (m :: * -> *) a. Monad m => m a -> DynamicWriterT t w m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t WindowSizeChangedEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t WindowSizeChangedEventData)
getWindowSizeChangedEvent
  getWindowMinimizedEvent :: DynamicWriterT t w m (Event t WindowMinimizedEventData)
getWindowMinimizedEvent = m (Event t WindowMinimizedEventData)
-> DynamicWriterT t w m (Event t WindowMinimizedEventData)
forall (m :: * -> *) a. Monad m => m a -> DynamicWriterT t w m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t WindowMinimizedEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t WindowMinimizedEventData)
getWindowMinimizedEvent
  getWindowMaximizedEvent :: DynamicWriterT t w m (Event t WindowMaximizedEventData)
getWindowMaximizedEvent = m (Event t WindowMaximizedEventData)
-> DynamicWriterT t w m (Event t WindowMaximizedEventData)
forall (m :: * -> *) a. Monad m => m a -> DynamicWriterT t w m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t WindowMaximizedEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t WindowMaximizedEventData)
getWindowMaximizedEvent
  getWindowRestoredEvent :: DynamicWriterT t w m (Event t WindowRestoredEventData)
getWindowRestoredEvent = m (Event t WindowRestoredEventData)
-> DynamicWriterT t w m (Event t WindowRestoredEventData)
forall (m :: * -> *) a. Monad m => m a -> DynamicWriterT t w m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t WindowRestoredEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t WindowRestoredEventData)
getWindowRestoredEvent
  getWindowGainedMouseFocusEvent :: DynamicWriterT t w m (Event t WindowGainedMouseFocusEventData)
getWindowGainedMouseFocusEvent = m (Event t WindowGainedMouseFocusEventData)
-> DynamicWriterT t w m (Event t WindowGainedMouseFocusEventData)
forall (m :: * -> *) a. Monad m => m a -> DynamicWriterT t w m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t WindowGainedMouseFocusEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t WindowGainedMouseFocusEventData)
getWindowGainedMouseFocusEvent
  getWindowLostMouseFocusEvent :: DynamicWriterT t w m (Event t WindowLostMouseFocusEventData)
getWindowLostMouseFocusEvent = m (Event t WindowLostMouseFocusEventData)
-> DynamicWriterT t w m (Event t WindowLostMouseFocusEventData)
forall (m :: * -> *) a. Monad m => m a -> DynamicWriterT t w m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t WindowLostMouseFocusEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t WindowLostMouseFocusEventData)
getWindowLostMouseFocusEvent
  getWindowGainedKeyboardFocusEvent :: DynamicWriterT t w m (Event t WindowGainedKeyboardFocusEventData)
getWindowGainedKeyboardFocusEvent = m (Event t WindowGainedKeyboardFocusEventData)
-> DynamicWriterT
     t w m (Event t WindowGainedKeyboardFocusEventData)
forall (m :: * -> *) a. Monad m => m a -> DynamicWriterT t w m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t WindowGainedKeyboardFocusEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t WindowGainedKeyboardFocusEventData)
getWindowGainedKeyboardFocusEvent
  getWindowLostKeyboardFocusEvent :: DynamicWriterT t w m (Event t WindowLostKeyboardFocusEventData)
getWindowLostKeyboardFocusEvent = m (Event t WindowLostKeyboardFocusEventData)
-> DynamicWriterT t w m (Event t WindowLostKeyboardFocusEventData)
forall (m :: * -> *) a. Monad m => m a -> DynamicWriterT t w m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t WindowLostKeyboardFocusEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t WindowLostKeyboardFocusEventData)
getWindowLostKeyboardFocusEvent
  getWindowClosedEvent :: DynamicWriterT t w m (Event t WindowClosedEventData)
getWindowClosedEvent = m (Event t WindowClosedEventData)
-> DynamicWriterT t w m (Event t WindowClosedEventData)
forall (m :: * -> *) a. Monad m => m a -> DynamicWriterT t w m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t WindowClosedEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t WindowClosedEventData)
getWindowClosedEvent
  getKeyboardEvent :: DynamicWriterT t w m (Event t KeyboardEventData)
getKeyboardEvent = m (Event t KeyboardEventData)
-> DynamicWriterT t w m (Event t KeyboardEventData)
forall (m :: * -> *) a. Monad m => m a -> DynamicWriterT t w m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t KeyboardEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t KeyboardEventData)
getKeyboardEvent
  getTextEditingEvent :: DynamicWriterT t w m (Event t TextEditingEventData)
getTextEditingEvent = m (Event t TextEditingEventData)
-> DynamicWriterT t w m (Event t TextEditingEventData)
forall (m :: * -> *) a. Monad m => m a -> DynamicWriterT t w m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t TextEditingEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t TextEditingEventData)
getTextEditingEvent
  getTextInputEvent :: DynamicWriterT t w m (Event t TextInputEventData)
getTextInputEvent = m (Event t TextInputEventData)
-> DynamicWriterT t w m (Event t TextInputEventData)
forall (m :: * -> *) a. Monad m => m a -> DynamicWriterT t w m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t TextInputEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t TextInputEventData)
getTextInputEvent
  getKeymapChangedEvent :: DynamicWriterT t w m (Event t ())
getKeymapChangedEvent = m (Event t ()) -> DynamicWriterT t w m (Event t ())
forall (m :: * -> *) a. Monad m => m a -> DynamicWriterT t w m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t ())
forall t (m :: * -> *). HasSDL2Events t m => m (Event t ())
getKeymapChangedEvent
  getMouseMotionEvent :: DynamicWriterT t w m (Event t MouseMotionEventData)
getMouseMotionEvent = m (Event t MouseMotionEventData)
-> DynamicWriterT t w m (Event t MouseMotionEventData)
forall (m :: * -> *) a. Monad m => m a -> DynamicWriterT t w m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t MouseMotionEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t MouseMotionEventData)
getMouseMotionEvent
  getMouseButtonEvent :: DynamicWriterT t w m (Event t MouseButtonEventData)
getMouseButtonEvent = m (Event t MouseButtonEventData)
-> DynamicWriterT t w m (Event t MouseButtonEventData)
forall (m :: * -> *) a. Monad m => m a -> DynamicWriterT t w m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t MouseButtonEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t MouseButtonEventData)
getMouseButtonEvent
  getMouseWheelEvent :: DynamicWriterT t w m (Event t MouseWheelEventData)
getMouseWheelEvent = m (Event t MouseWheelEventData)
-> DynamicWriterT t w m (Event t MouseWheelEventData)
forall (m :: * -> *) a. Monad m => m a -> DynamicWriterT t w m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t MouseWheelEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t MouseWheelEventData)
getMouseWheelEvent
  getJoyAxisEvent :: DynamicWriterT t w m (Event t JoyAxisEventData)
getJoyAxisEvent = m (Event t JoyAxisEventData)
-> DynamicWriterT t w m (Event t JoyAxisEventData)
forall (m :: * -> *) a. Monad m => m a -> DynamicWriterT t w m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t JoyAxisEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t JoyAxisEventData)
getJoyAxisEvent
  getJoyBallEvent :: DynamicWriterT t w m (Event t JoyBallEventData)
getJoyBallEvent = m (Event t JoyBallEventData)
-> DynamicWriterT t w m (Event t JoyBallEventData)
forall (m :: * -> *) a. Monad m => m a -> DynamicWriterT t w m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t JoyBallEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t JoyBallEventData)
getJoyBallEvent
  getJoyHatEvent :: DynamicWriterT t w m (Event t JoyHatEventData)
getJoyHatEvent = m (Event t JoyHatEventData)
-> DynamicWriterT t w m (Event t JoyHatEventData)
forall (m :: * -> *) a. Monad m => m a -> DynamicWriterT t w m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t JoyHatEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t JoyHatEventData)
getJoyHatEvent
  getJoyButtonEvent :: DynamicWriterT t w m (Event t JoyButtonEventData)
getJoyButtonEvent = m (Event t JoyButtonEventData)
-> DynamicWriterT t w m (Event t JoyButtonEventData)
forall (m :: * -> *) a. Monad m => m a -> DynamicWriterT t w m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t JoyButtonEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t JoyButtonEventData)
getJoyButtonEvent
  getJoyDeviceEvent :: DynamicWriterT t w m (Event t JoyDeviceEventData)
getJoyDeviceEvent = m (Event t JoyDeviceEventData)
-> DynamicWriterT t w m (Event t JoyDeviceEventData)
forall (m :: * -> *) a. Monad m => m a -> DynamicWriterT t w m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t JoyDeviceEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t JoyDeviceEventData)
getJoyDeviceEvent
  getControllerAxisEvent :: DynamicWriterT t w m (Event t ControllerAxisEventData)
getControllerAxisEvent = m (Event t ControllerAxisEventData)
-> DynamicWriterT t w m (Event t ControllerAxisEventData)
forall (m :: * -> *) a. Monad m => m a -> DynamicWriterT t w m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t ControllerAxisEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t ControllerAxisEventData)
getControllerAxisEvent
  getControllerButtonEvent :: DynamicWriterT t w m (Event t ControllerButtonEventData)
getControllerButtonEvent = m (Event t ControllerButtonEventData)
-> DynamicWriterT t w m (Event t ControllerButtonEventData)
forall (m :: * -> *) a. Monad m => m a -> DynamicWriterT t w m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t ControllerButtonEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t ControllerButtonEventData)
getControllerButtonEvent
  getControllerDeviceEvent :: DynamicWriterT t w m (Event t ControllerDeviceEventData)
getControllerDeviceEvent = m (Event t ControllerDeviceEventData)
-> DynamicWriterT t w m (Event t ControllerDeviceEventData)
forall (m :: * -> *) a. Monad m => m a -> DynamicWriterT t w m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t ControllerDeviceEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t ControllerDeviceEventData)
getControllerDeviceEvent
  getAudioDeviceEvent :: DynamicWriterT t w m (Event t AudioDeviceEventData)
getAudioDeviceEvent = m (Event t AudioDeviceEventData)
-> DynamicWriterT t w m (Event t AudioDeviceEventData)
forall (m :: * -> *) a. Monad m => m a -> DynamicWriterT t w m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t AudioDeviceEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t AudioDeviceEventData)
getAudioDeviceEvent
  getQuitEvent :: DynamicWriterT t w m (Event t ())
getQuitEvent = m (Event t ()) -> DynamicWriterT t w m (Event t ())
forall (m :: * -> *) a. Monad m => m a -> DynamicWriterT t w m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t ())
forall t (m :: * -> *). HasSDL2Events t m => m (Event t ())
getQuitEvent
  getUserEvent :: DynamicWriterT t w m (Event t UserEventData)
getUserEvent = m (Event t UserEventData)
-> DynamicWriterT t w m (Event t UserEventData)
forall (m :: * -> *) a. Monad m => m a -> DynamicWriterT t w m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t UserEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t UserEventData)
getUserEvent
  getSysWMEvent :: DynamicWriterT t w m (Event t SysWMEventData)
getSysWMEvent = m (Event t SysWMEventData)
-> DynamicWriterT t w m (Event t SysWMEventData)
forall (m :: * -> *) a. Monad m => m a -> DynamicWriterT t w m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t SysWMEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t SysWMEventData)
getSysWMEvent
  getTouchFingerEvent :: DynamicWriterT t w m (Event t TouchFingerEventData)
getTouchFingerEvent = m (Event t TouchFingerEventData)
-> DynamicWriterT t w m (Event t TouchFingerEventData)
forall (m :: * -> *) a. Monad m => m a -> DynamicWriterT t w m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t TouchFingerEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t TouchFingerEventData)
getTouchFingerEvent
  getMultiGestureEvent :: DynamicWriterT t w m (Event t MultiGestureEventData)
getMultiGestureEvent = m (Event t MultiGestureEventData)
-> DynamicWriterT t w m (Event t MultiGestureEventData)
forall (m :: * -> *) a. Monad m => m a -> DynamicWriterT t w m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t MultiGestureEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t MultiGestureEventData)
getMultiGestureEvent
  getDollarGestureEvent :: DynamicWriterT t w m (Event t DollarGestureEventData)
getDollarGestureEvent = m (Event t DollarGestureEventData)
-> DynamicWriterT t w m (Event t DollarGestureEventData)
forall (m :: * -> *) a. Monad m => m a -> DynamicWriterT t w m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t DollarGestureEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t DollarGestureEventData)
getDollarGestureEvent
  getDropEvent :: DynamicWriterT t w m (Event t DropEventData)
getDropEvent = m (Event t DropEventData)
-> DynamicWriterT t w m (Event t DropEventData)
forall (m :: * -> *) a. Monad m => m a -> DynamicWriterT t w m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t DropEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t DropEventData)
getDropEvent
  getClipboardUpdateEvent :: DynamicWriterT t w m (Event t ())
getClipboardUpdateEvent = m (Event t ()) -> DynamicWriterT t w m (Event t ())
forall (m :: * -> *) a. Monad m => m a -> DynamicWriterT t w m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t ())
forall t (m :: * -> *). HasSDL2Events t m => m (Event t ())
getClipboardUpdateEvent
  getUnknownEvent :: DynamicWriterT t w m (Event t UnknownEventData)
getUnknownEvent = m (Event t UnknownEventData)
-> DynamicWriterT t w m (Event t UnknownEventData)
forall (m :: * -> *) a. Monad m => m a -> DynamicWriterT t w m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t UnknownEventData)
forall t (m :: * -> *).
HasSDL2Events t m =>
m (Event t UnknownEventData)
getUnknownEvent
  getQuitVar :: DynamicWriterT t w m (MVar ())
getQuitVar = m (MVar ()) -> DynamicWriterT t w m (MVar ())
forall (m :: * -> *) a. Monad m => m a -> DynamicWriterT t w m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (MVar ())
forall t (m :: * -> *). HasSDL2Events t m => m (MVar ())
getQuitVar