-- | This module holds low-level implementation details of reflex-sdl2 -- that are not meant to be dealt with by the user of the library. -- None-the-less these details are exported here just in case you -- need them :) module Reflex.SDL2.Internal where import Control.Concurrent (MVar) import Data.Word (Word32) import Reflex (Event) import SDL hiding (Event) ------------------------------------------------------------------------------ -- | Holds a slot of 'Event' for each kind of SDL2 event plus a couple extras: -- -- An event for *any* SDL2 event payload. -- -- An event for reflex's post network build event. -- -- An event for each frame tick. data SystemEvents t = SystemEvents { sysPostBuildEvent :: Event t () -- ^ Fired just after the FRP network is built. , sysTicksEvent :: Event t Word32 -- ^ Fired once per frame tick, contains the number of -- milliseconds since SDL library initialization. , sysAnySDLEvent :: Event t EventPayload -- ^ Fired when SDL receives any event. , sysWindowShownEvent :: Event t WindowShownEventData , sysWindowHiddenEvent :: Event t WindowHiddenEventData , sysWindowExposedEvent :: Event t WindowExposedEventData , sysWindowMovedEvent :: Event t WindowMovedEventData , sysWindowResizedEvent :: Event t WindowResizedEventData , sysWindowSizeChangedEvent :: Event t WindowSizeChangedEventData , sysWindowMinimizedEvent :: Event t WindowMinimizedEventData , sysWindowMaximizedEvent :: Event t WindowMaximizedEventData , sysWindowRestoredEvent :: Event t WindowRestoredEventData , sysWindowGainedMouseFocusEvent :: Event t WindowGainedMouseFocusEventData , sysWindowLostMouseFocusEvent :: Event t WindowLostMouseFocusEventData , sysWindowGainedKeyboardFocusEvent :: Event t WindowGainedKeyboardFocusEventData , sysWindowLostKeyboardFocusEvent :: Event t WindowLostKeyboardFocusEventData , sysWindowClosedEvent :: Event t WindowClosedEventData , sysKeyboardEvent :: Event t KeyboardEventData , sysTextEditingEvent :: Event t TextEditingEventData , sysTextInputEvent :: Event t TextInputEventData , sysKeymapChangedEvent :: Event t () , sysMouseMotionEvent :: Event t MouseMotionEventData , sysMouseButtonEvent :: Event t MouseButtonEventData , sysMouseWheelEvent :: Event t MouseWheelEventData , sysJoyAxisEvent :: Event t JoyAxisEventData , sysJoyBallEvent :: Event t JoyBallEventData , sysJoyHatEvent :: Event t JoyHatEventData , sysJoyButtonEvent :: Event t JoyButtonEventData , sysJoyDeviceEvent :: Event t JoyDeviceEventData , sysControllerAxisEvent :: Event t ControllerAxisEventData , sysControllerButtonEvent :: Event t ControllerButtonEventData , sysControllerDeviceEvent :: Event t ControllerDeviceEventData , sysAudioDeviceEvent :: Event t AudioDeviceEventData , sysQuitEvent :: Event t () , sysUserEvent :: Event t UserEventData , sysSysWMEvent :: Event t SysWMEventData , sysTouchFingerEvent :: Event t TouchFingerEventData , sysTouchFingerMotionEvent :: Event t TouchFingerMotionEventData , sysMultiGestureEvent :: Event t MultiGestureEventData , sysDollarGestureEvent :: Event t DollarGestureEventData , sysDropEvent :: Event t DropEventData , sysClipboardUpdateEvent :: Event t () , sysUnknownEvent :: Event t UnknownEventData , sysQuitVar :: MVar () -- ^ A var to sync quitting. }