{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
module JSDOM.Generated.EventTarget
(addEventListener, removeEventListener, dispatchEvent,
dispatchEvent_, EventTarget(..), gTypeEventTarget, IsEventTarget,
toEventTarget)
where
import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, realToFrac, fmap, Show, Read, Eq, Ord, Maybe(..))
import qualified Prelude (error)
import Data.Typeable (Typeable)
import Data.Traversable (mapM)
import Language.Javascript.JSaddle (JSM(..), JSVal(..), JSString, strictEqual, toJSVal, valToStr, valToNumber, valToBool, js, jss, jsf, jsg, function, asyncFunction, new, array, jsUndefined, (!), (!!))
import Data.Int (Int64)
import Data.Word (Word, Word64)
import JSDOM.Types
import Control.Applicative ((<$>))
import Control.Monad (void)
import Control.Lens.Operators ((^.))
import JSDOM.Enums
addEventListener ::
(MonadDOM m, IsEventTarget self, ToJSString type',
IsAddEventListenerOptionsOrBool options) =>
self -> type' -> Maybe EventListener -> options -> m ()
addEventListener :: self -> type' -> Maybe EventListener -> options -> m ()
addEventListener self
self type'
type' Maybe EventListener
callback options
options
= DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
(JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void
((self -> EventTarget
forall o. IsEventTarget o => o -> EventTarget
toEventTarget self
self) EventTarget
-> Getting (JSM JSVal) EventTarget (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"addEventListener"
[type' -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal type'
type', Maybe EventListener -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe EventListener
callback, options -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal options
options]))
removeEventListener ::
(MonadDOM m, IsEventTarget self, ToJSString type',
IsEventListenerOptionsOrBool options) =>
self -> type' -> Maybe EventListener -> options -> m ()
removeEventListener :: self -> type' -> Maybe EventListener -> options -> m ()
removeEventListener self
self type'
type' Maybe EventListener
callback options
options
= DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
(JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void
((self -> EventTarget
forall o. IsEventTarget o => o -> EventTarget
toEventTarget self
self) EventTarget
-> Getting (JSM JSVal) EventTarget (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"removeEventListener"
[type' -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal type'
type', Maybe EventListener -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe EventListener
callback, options -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal options
options]))
dispatchEvent ::
(MonadDOM m, IsEventTarget self, IsEvent event) =>
self -> event -> m Bool
dispatchEvent :: self -> event -> m Bool
dispatchEvent self
self event
event
= DOM Bool -> m Bool
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
(((self -> EventTarget
forall o. IsEventTarget o => o -> EventTarget
toEventTarget self
self) EventTarget
-> Getting (JSM JSVal) EventTarget (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"dispatchEvent" [event -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal event
event]) JSM JSVal -> (JSVal -> DOM Bool) -> DOM Bool
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
JSVal -> DOM Bool
forall value. ToJSVal value => value -> DOM Bool
valToBool)
dispatchEvent_ ::
(MonadDOM m, IsEventTarget self, IsEvent event) =>
self -> event -> m ()
dispatchEvent_ :: self -> event -> m ()
dispatchEvent_ self
self event
event
= DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
(JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void
((self -> EventTarget
forall o. IsEventTarget o => o -> EventTarget
toEventTarget self
self) EventTarget
-> Getting (JSM JSVal) EventTarget (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"dispatchEvent" [event -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal event
event]))