{-# LANGUAGE PatternSynonyms #-} {-# LANGUAGE ForeignFunctionInterface #-} {-# LANGUAGE JavaScriptFFI #-} -- For HasCallStack compatibility {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-} module GHCJS.DOM.JSFFI.Generated.Event (js_newEvent, newEvent, js_composedPath, composedPath, composedPath_, js_stopPropagation, stopPropagation, js_stopImmediatePropagation, stopImmediatePropagation, js_preventDefault, preventDefault, js_initEvent, initEvent, pattern NONE, pattern CAPTURING_PHASE, pattern AT_TARGET, pattern BUBBLING_PHASE, js_getType, getType, js_getTarget, getTarget, getTargetUnsafe, getTargetUnchecked, js_getCurrentTarget, getCurrentTarget, getCurrentTargetUnsafe, getCurrentTargetUnchecked, js_getEventPhase, getEventPhase, js_setCancelBubble, setCancelBubble, js_getCancelBubble, getCancelBubble, js_getBubbles, getBubbles, js_getCancelable, getCancelable, js_getDefaultPrevented, getDefaultPrevented, js_getComposed, getComposed, js_getIsTrusted, getIsTrusted, js_getTimeStamp, getTimeStamp, js_getSrcElement, getSrcElement, js_setReturnValue, setReturnValue, js_getReturnValue, getReturnValue, Event(..), gTypeEvent, IsEvent, toEvent) where import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord) import qualified Prelude (error) import Data.Typeable (Typeable) import GHCJS.Types (JSVal(..), JSString) import GHCJS.Foreign (jsNull, jsUndefined) import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..)) import GHCJS.Marshal (ToJSVal(..), FromJSVal(..)) import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..)) import Control.Monad (void) import Control.Monad.IO.Class (MonadIO(..)) import Data.Int (Int64) import Data.Word (Word, Word64) import Data.Maybe (fromJust) import Data.Traversable (mapM) import GHCJS.DOM.Types import Control.Applicative ((<$>)) import GHCJS.DOM.JSFFI.Generated.Enums foreign import javascript unsafe "new window[\"Event\"]($1, $2)" js_newEvent :: JSString -> Optional EventInit -> IO Event -- | newEvent :: (MonadIO m, ToJSString type', IsEventInit eventInitDict) => type' -> Maybe eventInitDict -> m Event newEvent type' eventInitDict = liftIO (js_newEvent (toJSString type') (maybeToOptional (fmap toEventInit eventInitDict))) foreign import javascript unsafe "$1[\"composedPath\"]()" js_composedPath :: Event -> IO JSVal -- | composedPath :: (MonadIO m, IsEvent self) => self -> m [EventTarget] composedPath self = liftIO ((js_composedPath (toEvent self)) >>= fromJSValUnchecked) -- | composedPath_ :: (MonadIO m, IsEvent self) => self -> m () composedPath_ self = liftIO (void (js_composedPath (toEvent self))) foreign import javascript unsafe "$1[\"stopPropagation\"]()" js_stopPropagation :: Event -> IO () -- | stopPropagation :: (MonadIO m, IsEvent self) => self -> m () stopPropagation self = liftIO (js_stopPropagation (toEvent self)) foreign import javascript unsafe "$1[\"stopImmediatePropagation\"]()" js_stopImmediatePropagation :: Event -> IO () -- | stopImmediatePropagation :: (MonadIO m, IsEvent self) => self -> m () stopImmediatePropagation self = liftIO (js_stopImmediatePropagation (toEvent self)) foreign import javascript unsafe "$1[\"preventDefault\"]()" js_preventDefault :: Event -> IO () -- | preventDefault :: (MonadIO m, IsEvent self) => self -> m () preventDefault self = liftIO (js_preventDefault (toEvent self)) foreign import javascript unsafe "$1[\"initEvent\"]($2, $3, $4)" js_initEvent :: Event -> JSString -> Bool -> Bool -> IO () -- | initEvent :: (MonadIO m, IsEvent self, ToJSString type') => self -> type' -> Bool -> Bool -> m () initEvent self type' bubbles cancelable = liftIO (js_initEvent (toEvent self) (toJSString type') bubbles cancelable) pattern NONE = 0 pattern CAPTURING_PHASE = 1 pattern AT_TARGET = 2 pattern BUBBLING_PHASE = 3 foreign import javascript unsafe "$1[\"type\"]" js_getType :: Event -> IO JSString -- | getType :: (MonadIO m, IsEvent self, FromJSString result) => self -> m result getType self = liftIO (fromJSString <$> (js_getType (toEvent self))) foreign import javascript unsafe "$1[\"target\"]" js_getTarget :: Event -> IO (Nullable EventTarget) -- | getTarget :: (MonadIO m, IsEvent self) => self -> m (Maybe EventTarget) getTarget self = liftIO (nullableToMaybe <$> (js_getTarget (toEvent self))) -- | getTargetUnsafe :: (MonadIO m, IsEvent self, HasCallStack) => self -> m EventTarget getTargetUnsafe self = liftIO ((nullableToMaybe <$> (js_getTarget (toEvent self))) >>= maybe (Prelude.error "Nothing to return") return) -- | getTargetUnchecked :: (MonadIO m, IsEvent self) => self -> m EventTarget getTargetUnchecked self = liftIO (fromJust . nullableToMaybe <$> (js_getTarget (toEvent self))) foreign import javascript unsafe "$1[\"currentTarget\"]" js_getCurrentTarget :: Event -> IO (Nullable EventTarget) -- | getCurrentTarget :: (MonadIO m, IsEvent self) => self -> m (Maybe EventTarget) getCurrentTarget self = liftIO (nullableToMaybe <$> (js_getCurrentTarget (toEvent self))) -- | getCurrentTargetUnsafe :: (MonadIO m, IsEvent self, HasCallStack) => self -> m EventTarget getCurrentTargetUnsafe self = liftIO ((nullableToMaybe <$> (js_getCurrentTarget (toEvent self))) >>= maybe (Prelude.error "Nothing to return") return) -- | getCurrentTargetUnchecked :: (MonadIO m, IsEvent self) => self -> m EventTarget getCurrentTargetUnchecked self = liftIO (fromJust . nullableToMaybe <$> (js_getCurrentTarget (toEvent self))) foreign import javascript unsafe "$1[\"eventPhase\"]" js_getEventPhase :: Event -> IO Word -- | getEventPhase :: (MonadIO m, IsEvent self) => self -> m Word getEventPhase self = liftIO (js_getEventPhase (toEvent self)) foreign import javascript unsafe "$1[\"cancelBubble\"] = $2;" js_setCancelBubble :: Event -> Bool -> IO () -- | setCancelBubble :: (MonadIO m, IsEvent self) => self -> Bool -> m () setCancelBubble self val = liftIO (js_setCancelBubble (toEvent self) val) foreign import javascript unsafe "($1[\"cancelBubble\"] ? 1 : 0)" js_getCancelBubble :: Event -> IO Bool -- | getCancelBubble :: (MonadIO m, IsEvent self) => self -> m Bool getCancelBubble self = liftIO (js_getCancelBubble (toEvent self)) foreign import javascript unsafe "($1[\"bubbles\"] ? 1 : 0)" js_getBubbles :: Event -> IO Bool -- | getBubbles :: (MonadIO m, IsEvent self) => self -> m Bool getBubbles self = liftIO (js_getBubbles (toEvent self)) foreign import javascript unsafe "($1[\"cancelable\"] ? 1 : 0)" js_getCancelable :: Event -> IO Bool -- | getCancelable :: (MonadIO m, IsEvent self) => self -> m Bool getCancelable self = liftIO (js_getCancelable (toEvent self)) foreign import javascript unsafe "($1[\"defaultPrevented\"] ? 1 : 0)" js_getDefaultPrevented :: Event -> IO Bool -- | getDefaultPrevented :: (MonadIO m, IsEvent self) => self -> m Bool getDefaultPrevented self = liftIO (js_getDefaultPrevented (toEvent self)) foreign import javascript unsafe "($1[\"composed\"] ? 1 : 0)" js_getComposed :: Event -> IO Bool -- | getComposed :: (MonadIO m, IsEvent self) => self -> m Bool getComposed self = liftIO (js_getComposed (toEvent self)) foreign import javascript unsafe "($1[\"isTrusted\"] ? 1 : 0)" js_getIsTrusted :: Event -> IO Bool -- | getIsTrusted :: (MonadIO m, IsEvent self) => self -> m Bool getIsTrusted self = liftIO (js_getIsTrusted (toEvent self)) foreign import javascript unsafe "$1[\"timeStamp\"]" js_getTimeStamp :: Event -> IO Word -- | getTimeStamp :: (MonadIO m, IsEvent self) => self -> m Word getTimeStamp self = liftIO (js_getTimeStamp (toEvent self)) foreign import javascript unsafe "$1[\"srcElement\"]" js_getSrcElement :: Event -> IO EventTarget -- | getSrcElement :: (MonadIO m, IsEvent self) => self -> m EventTarget getSrcElement self = liftIO (js_getSrcElement (toEvent self)) foreign import javascript unsafe "$1[\"returnValue\"] = $2;" js_setReturnValue :: Event -> Bool -> IO () -- | setReturnValue :: (MonadIO m, IsEvent self) => self -> Bool -> m () setReturnValue self val = liftIO (js_setReturnValue (toEvent self) val) foreign import javascript unsafe "($1[\"returnValue\"] ? 1 : 0)" js_getReturnValue :: Event -> IO Bool -- | getReturnValue :: (MonadIO m, IsEvent self) => self -> m Bool getReturnValue self = liftIO (js_getReturnValue (toEvent self))