{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
module JSDOM.Generated.MouseEvent
(newMouseEvent, initMouseEvent, pattern WEBKIT_FORCE_AT_MOUSE_DOWN,
pattern WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN, getScreenX, getScreenY,
getClientX, getClientY, getCtrlKey, getShiftKey, getAltKey,
getMetaKey, getButton, getRelatedTarget, getRelatedTargetUnsafe,
getRelatedTargetUnchecked, getMovementX, getMovementY,
getWebkitForce, getOffsetX, getOffsetY, getX, getY, getFromElement,
getFromElementUnsafe, getFromElementUnchecked, getToElement,
getToElementUnsafe, getToElementUnchecked, getDataTransfer,
getDataTransferUnsafe, getDataTransferUnchecked, MouseEvent(..),
gTypeMouseEvent, IsMouseEvent, toMouseEvent)
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
newMouseEvent ::
(MonadDOM m, ToJSString type', IsMouseEventInit eventInitDict) =>
type' -> Maybe eventInitDict -> m MouseEvent
newMouseEvent :: type' -> Maybe eventInitDict -> m MouseEvent
newMouseEvent type'
type' Maybe eventInitDict
eventInitDict
= DOM MouseEvent -> m MouseEvent
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
(JSVal -> MouseEvent
MouseEvent (JSVal -> MouseEvent) -> JSM JSVal -> DOM MouseEvent
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$>
JSM JSVal -> [JSM JSVal] -> JSM JSVal
forall constructor args.
(MakeObject constructor, MakeArgs args) =>
constructor -> args -> JSM JSVal
new ([Char] -> JSM JSVal
forall a. ToJSString a => a -> JSM JSVal
jsg [Char]
"MouseEvent") [type' -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal type'
type', Maybe eventInitDict -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe eventInitDict
eventInitDict])
initMouseEvent ::
(MonadDOM m, IsMouseEvent self, ToJSString type',
ToJSVal relatedTarget) =>
self ->
Maybe type' ->
Bool ->
Bool ->
Maybe Window ->
Maybe Int ->
Maybe Int ->
Maybe Int ->
Maybe Int ->
Maybe Int ->
Bool ->
Bool ->
Bool -> Bool -> Maybe Word -> Maybe relatedTarget -> m ()
initMouseEvent :: self
-> Maybe type'
-> Bool
-> Bool
-> Maybe Window
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> Bool
-> Bool
-> Bool
-> Bool
-> Maybe Word
-> Maybe relatedTarget
-> m ()
initMouseEvent self
self Maybe type'
type' Bool
canBubble Bool
cancelable Maybe Window
view Maybe Int
detail Maybe Int
screenX
Maybe Int
screenY Maybe Int
clientX Maybe Int
clientY Bool
ctrlKey Bool
altKey Bool
shiftKey Bool
metaKey Maybe Word
button
Maybe relatedTarget
relatedTarget
= 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 -> MouseEvent
forall o. IsMouseEvent o => o -> MouseEvent
toMouseEvent self
self) MouseEvent
-> Getting (JSM JSVal) MouseEvent (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]
"initMouseEvent"
[Maybe type' -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe type'
type', Bool -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Bool
canBubble, Bool -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Bool
cancelable,
Maybe Window -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe Window
view, Maybe Int -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe Int
detail, Maybe Int -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe Int
screenX, Maybe Int -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe Int
screenY,
Maybe Int -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe Int
clientX, Maybe Int -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe Int
clientY, Bool -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Bool
ctrlKey, Bool -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Bool
altKey,
Bool -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Bool
shiftKey, Bool -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Bool
metaKey, Maybe Word -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe Word
button,
Maybe relatedTarget -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe relatedTarget
relatedTarget]))
pattern $bWEBKIT_FORCE_AT_MOUSE_DOWN :: a
$mWEBKIT_FORCE_AT_MOUSE_DOWN :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
WEBKIT_FORCE_AT_MOUSE_DOWN = 1
pattern $bWEBKIT_FORCE_AT_FORCE_MOUSE_DOWN :: a
$mWEBKIT_FORCE_AT_FORCE_MOUSE_DOWN :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN = 2
getScreenX :: (MonadDOM m, IsMouseEvent self) => self -> m Int
getScreenX :: self -> m Int
getScreenX self
self
= DOM Int -> m Int
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
(Double -> Int
forall a b. (RealFrac a, Integral b) => a -> b
round (Double -> Int) -> JSM Double -> DOM Int
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (((self -> MouseEvent
forall o. IsMouseEvent o => o -> MouseEvent
toMouseEvent self
self) MouseEvent
-> Getting (JSM JSVal) MouseEvent (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter MouseEvent (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"screenX") JSM JSVal -> (JSVal -> JSM Double) -> JSM Double
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> JSM Double
forall value. ToJSVal value => value -> JSM Double
valToNumber))
getScreenY :: (MonadDOM m, IsMouseEvent self) => self -> m Int
getScreenY :: self -> m Int
getScreenY self
self
= DOM Int -> m Int
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
(Double -> Int
forall a b. (RealFrac a, Integral b) => a -> b
round (Double -> Int) -> JSM Double -> DOM Int
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (((self -> MouseEvent
forall o. IsMouseEvent o => o -> MouseEvent
toMouseEvent self
self) MouseEvent
-> Getting (JSM JSVal) MouseEvent (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter MouseEvent (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"screenY") JSM JSVal -> (JSVal -> JSM Double) -> JSM Double
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> JSM Double
forall value. ToJSVal value => value -> JSM Double
valToNumber))
getClientX :: (MonadDOM m, IsMouseEvent self) => self -> m Int
getClientX :: self -> m Int
getClientX self
self
= DOM Int -> m Int
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
(Double -> Int
forall a b. (RealFrac a, Integral b) => a -> b
round (Double -> Int) -> JSM Double -> DOM Int
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (((self -> MouseEvent
forall o. IsMouseEvent o => o -> MouseEvent
toMouseEvent self
self) MouseEvent
-> Getting (JSM JSVal) MouseEvent (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter MouseEvent (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"clientX") JSM JSVal -> (JSVal -> JSM Double) -> JSM Double
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> JSM Double
forall value. ToJSVal value => value -> JSM Double
valToNumber))
getClientY :: (MonadDOM m, IsMouseEvent self) => self -> m Int
getClientY :: self -> m Int
getClientY self
self
= DOM Int -> m Int
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
(Double -> Int
forall a b. (RealFrac a, Integral b) => a -> b
round (Double -> Int) -> JSM Double -> DOM Int
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (((self -> MouseEvent
forall o. IsMouseEvent o => o -> MouseEvent
toMouseEvent self
self) MouseEvent
-> Getting (JSM JSVal) MouseEvent (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter MouseEvent (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"clientY") JSM JSVal -> (JSVal -> JSM Double) -> JSM Double
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> JSM Double
forall value. ToJSVal value => value -> JSM Double
valToNumber))
getCtrlKey :: (MonadDOM m, IsMouseEvent self) => self -> m Bool
getCtrlKey :: self -> m Bool
getCtrlKey self
self
= DOM Bool -> m Bool
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (((self -> MouseEvent
forall o. IsMouseEvent o => o -> MouseEvent
toMouseEvent self
self) MouseEvent
-> Getting (JSM JSVal) MouseEvent (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter MouseEvent (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"ctrlKey") 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)
getShiftKey :: (MonadDOM m, IsMouseEvent self) => self -> m Bool
getShiftKey :: self -> m Bool
getShiftKey self
self
= DOM Bool -> m Bool
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (((self -> MouseEvent
forall o. IsMouseEvent o => o -> MouseEvent
toMouseEvent self
self) MouseEvent
-> Getting (JSM JSVal) MouseEvent (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter MouseEvent (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"shiftKey") 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)
getAltKey :: (MonadDOM m, IsMouseEvent self) => self -> m Bool
getAltKey :: self -> m Bool
getAltKey self
self
= DOM Bool -> m Bool
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (((self -> MouseEvent
forall o. IsMouseEvent o => o -> MouseEvent
toMouseEvent self
self) MouseEvent
-> Getting (JSM JSVal) MouseEvent (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter MouseEvent (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"altKey") 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)
getMetaKey :: (MonadDOM m, IsMouseEvent self) => self -> m Bool
getMetaKey :: self -> m Bool
getMetaKey self
self
= DOM Bool -> m Bool
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (((self -> MouseEvent
forall o. IsMouseEvent o => o -> MouseEvent
toMouseEvent self
self) MouseEvent
-> Getting (JSM JSVal) MouseEvent (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter MouseEvent (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"metaKey") 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)
getButton :: (MonadDOM m, IsMouseEvent self) => self -> m Word
getButton :: self -> m Word
getButton self
self
= DOM Word -> m Word
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
(Double -> Word
forall a b. (RealFrac a, Integral b) => a -> b
round (Double -> Word) -> JSM Double -> DOM Word
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (((self -> MouseEvent
forall o. IsMouseEvent o => o -> MouseEvent
toMouseEvent self
self) MouseEvent
-> Getting (JSM JSVal) MouseEvent (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter MouseEvent (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"button") JSM JSVal -> (JSVal -> JSM Double) -> JSM Double
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> JSM Double
forall value. ToJSVal value => value -> JSM Double
valToNumber))
getRelatedTarget ::
(MonadDOM m, IsMouseEvent self) => self -> m (Maybe EventTarget)
getRelatedTarget :: self -> m (Maybe EventTarget)
getRelatedTarget self
self
= DOM (Maybe EventTarget) -> m (Maybe EventTarget)
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
(((self -> MouseEvent
forall o. IsMouseEvent o => o -> MouseEvent
toMouseEvent self
self) MouseEvent
-> Getting (JSM JSVal) MouseEvent (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter MouseEvent (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"relatedTarget") JSM JSVal
-> (JSVal -> DOM (Maybe EventTarget)) -> DOM (Maybe EventTarget)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM (Maybe EventTarget)
forall a. FromJSVal a => JSVal -> JSM (Maybe a)
fromJSVal)
getRelatedTargetUnsafe ::
(MonadDOM m, IsMouseEvent self, HasCallStack) =>
self -> m EventTarget
getRelatedTargetUnsafe :: self -> m EventTarget
getRelatedTargetUnsafe self
self
= DOM EventTarget -> m EventTarget
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
((((self -> MouseEvent
forall o. IsMouseEvent o => o -> MouseEvent
toMouseEvent self
self) MouseEvent
-> Getting (JSM JSVal) MouseEvent (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter MouseEvent (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"relatedTarget") JSM JSVal
-> (JSVal -> DOM (Maybe EventTarget)) -> DOM (Maybe EventTarget)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM (Maybe EventTarget)
forall a. FromJSVal a => JSVal -> JSM (Maybe a)
fromJSVal) DOM (Maybe EventTarget)
-> (Maybe EventTarget -> DOM EventTarget) -> DOM EventTarget
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
DOM EventTarget
-> (EventTarget -> DOM EventTarget)
-> Maybe EventTarget
-> DOM EventTarget
forall b a. b -> (a -> b) -> Maybe a -> b
maybe ([Char] -> DOM EventTarget
forall a. HasCallStack => [Char] -> a
Prelude.error [Char]
"Nothing to return") EventTarget -> DOM EventTarget
forall (m :: * -> *) a. Monad m => a -> m a
return)
getRelatedTargetUnchecked ::
(MonadDOM m, IsMouseEvent self) => self -> m EventTarget
getRelatedTargetUnchecked :: self -> m EventTarget
getRelatedTargetUnchecked self
self
= DOM EventTarget -> m EventTarget
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
(((self -> MouseEvent
forall o. IsMouseEvent o => o -> MouseEvent
toMouseEvent self
self) MouseEvent
-> Getting (JSM JSVal) MouseEvent (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter MouseEvent (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"relatedTarget") JSM JSVal -> (JSVal -> DOM EventTarget) -> DOM EventTarget
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
JSVal -> DOM EventTarget
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)
getMovementX :: (MonadDOM m, IsMouseEvent self) => self -> m Int
getMovementX :: self -> m Int
getMovementX self
self
= DOM Int -> m Int
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
(Double -> Int
forall a b. (RealFrac a, Integral b) => a -> b
round (Double -> Int) -> JSM Double -> DOM Int
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$>
(((self -> MouseEvent
forall o. IsMouseEvent o => o -> MouseEvent
toMouseEvent self
self) MouseEvent
-> Getting (JSM JSVal) MouseEvent (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter MouseEvent (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"movementX") JSM JSVal -> (JSVal -> JSM Double) -> JSM Double
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> JSM Double
forall value. ToJSVal value => value -> JSM Double
valToNumber))
getMovementY :: (MonadDOM m, IsMouseEvent self) => self -> m Int
getMovementY :: self -> m Int
getMovementY self
self
= DOM Int -> m Int
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
(Double -> Int
forall a b. (RealFrac a, Integral b) => a -> b
round (Double -> Int) -> JSM Double -> DOM Int
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$>
(((self -> MouseEvent
forall o. IsMouseEvent o => o -> MouseEvent
toMouseEvent self
self) MouseEvent
-> Getting (JSM JSVal) MouseEvent (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter MouseEvent (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"movementY") JSM JSVal -> (JSVal -> JSM Double) -> JSM Double
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> JSM Double
forall value. ToJSVal value => value -> JSM Double
valToNumber))
getWebkitForce ::
(MonadDOM m, IsMouseEvent self) => self -> m Double
getWebkitForce :: self -> m Double
getWebkitForce self
self
= JSM Double -> m Double
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
(((self -> MouseEvent
forall o. IsMouseEvent o => o -> MouseEvent
toMouseEvent self
self) MouseEvent
-> Getting (JSM JSVal) MouseEvent (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter MouseEvent (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"webkitForce") JSM JSVal -> (JSVal -> JSM Double) -> JSM Double
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> JSM Double
forall value. ToJSVal value => value -> JSM Double
valToNumber)
getOffsetX :: (MonadDOM m, IsMouseEvent self) => self -> m Int
getOffsetX :: self -> m Int
getOffsetX self
self
= DOM Int -> m Int
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
(Double -> Int
forall a b. (RealFrac a, Integral b) => a -> b
round (Double -> Int) -> JSM Double -> DOM Int
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (((self -> MouseEvent
forall o. IsMouseEvent o => o -> MouseEvent
toMouseEvent self
self) MouseEvent
-> Getting (JSM JSVal) MouseEvent (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter MouseEvent (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"offsetX") JSM JSVal -> (JSVal -> JSM Double) -> JSM Double
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> JSM Double
forall value. ToJSVal value => value -> JSM Double
valToNumber))
getOffsetY :: (MonadDOM m, IsMouseEvent self) => self -> m Int
getOffsetY :: self -> m Int
getOffsetY self
self
= DOM Int -> m Int
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
(Double -> Int
forall a b. (RealFrac a, Integral b) => a -> b
round (Double -> Int) -> JSM Double -> DOM Int
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (((self -> MouseEvent
forall o. IsMouseEvent o => o -> MouseEvent
toMouseEvent self
self) MouseEvent
-> Getting (JSM JSVal) MouseEvent (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter MouseEvent (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"offsetY") JSM JSVal -> (JSVal -> JSM Double) -> JSM Double
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> JSM Double
forall value. ToJSVal value => value -> JSM Double
valToNumber))
getX :: (MonadDOM m, IsMouseEvent self) => self -> m Int
getX :: self -> m Int
getX self
self
= DOM Int -> m Int
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
(Double -> Int
forall a b. (RealFrac a, Integral b) => a -> b
round (Double -> Int) -> JSM Double -> DOM Int
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (((self -> MouseEvent
forall o. IsMouseEvent o => o -> MouseEvent
toMouseEvent self
self) MouseEvent
-> Getting (JSM JSVal) MouseEvent (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter MouseEvent (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"x") JSM JSVal -> (JSVal -> JSM Double) -> JSM Double
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> JSM Double
forall value. ToJSVal value => value -> JSM Double
valToNumber))
getY :: (MonadDOM m, IsMouseEvent self) => self -> m Int
getY :: self -> m Int
getY self
self
= DOM Int -> m Int
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
(Double -> Int
forall a b. (RealFrac a, Integral b) => a -> b
round (Double -> Int) -> JSM Double -> DOM Int
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (((self -> MouseEvent
forall o. IsMouseEvent o => o -> MouseEvent
toMouseEvent self
self) MouseEvent
-> Getting (JSM JSVal) MouseEvent (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter MouseEvent (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"y") JSM JSVal -> (JSVal -> JSM Double) -> JSM Double
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> JSM Double
forall value. ToJSVal value => value -> JSM Double
valToNumber))
getFromElement ::
(MonadDOM m, IsMouseEvent self) => self -> m (Maybe Node)
getFromElement :: self -> m (Maybe Node)
getFromElement self
self
= DOM (Maybe Node) -> m (Maybe Node)
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (((self -> MouseEvent
forall o. IsMouseEvent o => o -> MouseEvent
toMouseEvent self
self) MouseEvent
-> Getting (JSM JSVal) MouseEvent (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter MouseEvent (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"fromElement") JSM JSVal -> (JSVal -> DOM (Maybe Node)) -> DOM (Maybe Node)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM (Maybe Node)
forall a. FromJSVal a => JSVal -> JSM (Maybe a)
fromJSVal)
getFromElementUnsafe ::
(MonadDOM m, IsMouseEvent self, HasCallStack) => self -> m Node
getFromElementUnsafe :: self -> m Node
getFromElementUnsafe self
self
= DOM Node -> m Node
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
((((self -> MouseEvent
forall o. IsMouseEvent o => o -> MouseEvent
toMouseEvent self
self) MouseEvent
-> Getting (JSM JSVal) MouseEvent (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter MouseEvent (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"fromElement") JSM JSVal -> (JSVal -> DOM (Maybe Node)) -> DOM (Maybe Node)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM (Maybe Node)
forall a. FromJSVal a => JSVal -> JSM (Maybe a)
fromJSVal) DOM (Maybe Node) -> (Maybe Node -> DOM Node) -> DOM Node
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
DOM Node -> (Node -> DOM Node) -> Maybe Node -> DOM Node
forall b a. b -> (a -> b) -> Maybe a -> b
maybe ([Char] -> DOM Node
forall a. HasCallStack => [Char] -> a
Prelude.error [Char]
"Nothing to return") Node -> DOM Node
forall (m :: * -> *) a. Monad m => a -> m a
return)
getFromElementUnchecked ::
(MonadDOM m, IsMouseEvent self) => self -> m Node
getFromElementUnchecked :: self -> m Node
getFromElementUnchecked self
self
= DOM Node -> m Node
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
(((self -> MouseEvent
forall o. IsMouseEvent o => o -> MouseEvent
toMouseEvent self
self) MouseEvent
-> Getting (JSM JSVal) MouseEvent (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter MouseEvent (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"fromElement") JSM JSVal -> (JSVal -> DOM Node) -> DOM Node
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM Node
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)
getToElement ::
(MonadDOM m, IsMouseEvent self) => self -> m (Maybe Node)
getToElement :: self -> m (Maybe Node)
getToElement self
self
= DOM (Maybe Node) -> m (Maybe Node)
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (((self -> MouseEvent
forall o. IsMouseEvent o => o -> MouseEvent
toMouseEvent self
self) MouseEvent
-> Getting (JSM JSVal) MouseEvent (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter MouseEvent (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"toElement") JSM JSVal -> (JSVal -> DOM (Maybe Node)) -> DOM (Maybe Node)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM (Maybe Node)
forall a. FromJSVal a => JSVal -> JSM (Maybe a)
fromJSVal)
getToElementUnsafe ::
(MonadDOM m, IsMouseEvent self, HasCallStack) => self -> m Node
getToElementUnsafe :: self -> m Node
getToElementUnsafe self
self
= DOM Node -> m Node
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
((((self -> MouseEvent
forall o. IsMouseEvent o => o -> MouseEvent
toMouseEvent self
self) MouseEvent
-> Getting (JSM JSVal) MouseEvent (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter MouseEvent (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"toElement") JSM JSVal -> (JSVal -> DOM (Maybe Node)) -> DOM (Maybe Node)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM (Maybe Node)
forall a. FromJSVal a => JSVal -> JSM (Maybe a)
fromJSVal) DOM (Maybe Node) -> (Maybe Node -> DOM Node) -> DOM Node
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
DOM Node -> (Node -> DOM Node) -> Maybe Node -> DOM Node
forall b a. b -> (a -> b) -> Maybe a -> b
maybe ([Char] -> DOM Node
forall a. HasCallStack => [Char] -> a
Prelude.error [Char]
"Nothing to return") Node -> DOM Node
forall (m :: * -> *) a. Monad m => a -> m a
return)
getToElementUnchecked ::
(MonadDOM m, IsMouseEvent self) => self -> m Node
getToElementUnchecked :: self -> m Node
getToElementUnchecked self
self
= DOM Node -> m Node
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
(((self -> MouseEvent
forall o. IsMouseEvent o => o -> MouseEvent
toMouseEvent self
self) MouseEvent
-> Getting (JSM JSVal) MouseEvent (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter MouseEvent (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"toElement") JSM JSVal -> (JSVal -> DOM Node) -> DOM Node
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM Node
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)
getDataTransfer ::
(MonadDOM m, IsMouseEvent self) => self -> m (Maybe DataTransfer)
getDataTransfer :: self -> m (Maybe DataTransfer)
getDataTransfer self
self
= DOM (Maybe DataTransfer) -> m (Maybe DataTransfer)
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
(((self -> MouseEvent
forall o. IsMouseEvent o => o -> MouseEvent
toMouseEvent self
self) MouseEvent
-> Getting (JSM JSVal) MouseEvent (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter MouseEvent (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"dataTransfer") JSM JSVal
-> (JSVal -> DOM (Maybe DataTransfer)) -> DOM (Maybe DataTransfer)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM (Maybe DataTransfer)
forall a. FromJSVal a => JSVal -> JSM (Maybe a)
fromJSVal)
getDataTransferUnsafe ::
(MonadDOM m, IsMouseEvent self, HasCallStack) =>
self -> m DataTransfer
getDataTransferUnsafe :: self -> m DataTransfer
getDataTransferUnsafe self
self
= DOM DataTransfer -> m DataTransfer
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
((((self -> MouseEvent
forall o. IsMouseEvent o => o -> MouseEvent
toMouseEvent self
self) MouseEvent
-> Getting (JSM JSVal) MouseEvent (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter MouseEvent (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"dataTransfer") JSM JSVal
-> (JSVal -> DOM (Maybe DataTransfer)) -> DOM (Maybe DataTransfer)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM (Maybe DataTransfer)
forall a. FromJSVal a => JSVal -> JSM (Maybe a)
fromJSVal) DOM (Maybe DataTransfer)
-> (Maybe DataTransfer -> DOM DataTransfer) -> DOM DataTransfer
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>=
DOM DataTransfer
-> (DataTransfer -> DOM DataTransfer)
-> Maybe DataTransfer
-> DOM DataTransfer
forall b a. b -> (a -> b) -> Maybe a -> b
maybe ([Char] -> DOM DataTransfer
forall a. HasCallStack => [Char] -> a
Prelude.error [Char]
"Nothing to return") DataTransfer -> DOM DataTransfer
forall (m :: * -> *) a. Monad m => a -> m a
return)
getDataTransferUnchecked ::
(MonadDOM m, IsMouseEvent self) => self -> m DataTransfer
getDataTransferUnchecked :: self -> m DataTransfer
getDataTransferUnchecked self
self
= DOM DataTransfer -> m DataTransfer
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
(((self -> MouseEvent
forall o. IsMouseEvent o => o -> MouseEvent
toMouseEvent self
self) MouseEvent
-> Getting (JSM JSVal) MouseEvent (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter MouseEvent (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"dataTransfer") JSM JSVal -> (JSVal -> DOM DataTransfer) -> DOM DataTransfer
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM DataTransfer
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)