{-# 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' eventInitDict
= liftDOM
(MouseEvent <$>
new (jsg "MouseEvent") [toJSVal type', toJSVal 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 type' canBubble cancelable view detail screenX
screenY clientX clientY ctrlKey altKey shiftKey metaKey button
relatedTarget
= liftDOM
(void
((toMouseEvent self) ^. jsf "initMouseEvent"
[toJSVal type', toJSVal canBubble, toJSVal cancelable,
toJSVal view, toJSVal detail, toJSVal screenX, toJSVal screenY,
toJSVal clientX, toJSVal clientY, toJSVal ctrlKey, toJSVal altKey,
toJSVal shiftKey, toJSVal metaKey, toJSVal button,
toJSVal relatedTarget]))
pattern WEBKIT_FORCE_AT_MOUSE_DOWN = 1
pattern WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN = 2
getScreenX :: (MonadDOM m, IsMouseEvent self) => self -> m Int
getScreenX self
= liftDOM
(round <$> (((toMouseEvent self) ^. js "screenX") >>= valToNumber))
getScreenY :: (MonadDOM m, IsMouseEvent self) => self -> m Int
getScreenY self
= liftDOM
(round <$> (((toMouseEvent self) ^. js "screenY") >>= valToNumber))
getClientX :: (MonadDOM m, IsMouseEvent self) => self -> m Int
getClientX self
= liftDOM
(round <$> (((toMouseEvent self) ^. js "clientX") >>= valToNumber))
getClientY :: (MonadDOM m, IsMouseEvent self) => self -> m Int
getClientY self
= liftDOM
(round <$> (((toMouseEvent self) ^. js "clientY") >>= valToNumber))
getCtrlKey :: (MonadDOM m, IsMouseEvent self) => self -> m Bool
getCtrlKey self
= liftDOM (((toMouseEvent self) ^. js "ctrlKey") >>= valToBool)
getShiftKey :: (MonadDOM m, IsMouseEvent self) => self -> m Bool
getShiftKey self
= liftDOM (((toMouseEvent self) ^. js "shiftKey") >>= valToBool)
getAltKey :: (MonadDOM m, IsMouseEvent self) => self -> m Bool
getAltKey self
= liftDOM (((toMouseEvent self) ^. js "altKey") >>= valToBool)
getMetaKey :: (MonadDOM m, IsMouseEvent self) => self -> m Bool
getMetaKey self
= liftDOM (((toMouseEvent self) ^. js "metaKey") >>= valToBool)
getButton :: (MonadDOM m, IsMouseEvent self) => self -> m Word
getButton self
= liftDOM
(round <$> (((toMouseEvent self) ^. js "button") >>= valToNumber))
getRelatedTarget ::
(MonadDOM m, IsMouseEvent self) => self -> m (Maybe EventTarget)
getRelatedTarget self
= liftDOM
(((toMouseEvent self) ^. js "relatedTarget") >>= fromJSVal)
getRelatedTargetUnsafe ::
(MonadDOM m, IsMouseEvent self, HasCallStack) =>
self -> m EventTarget
getRelatedTargetUnsafe self
= liftDOM
((((toMouseEvent self) ^. js "relatedTarget") >>= fromJSVal) >>=
maybe (Prelude.error "Nothing to return") return)
getRelatedTargetUnchecked ::
(MonadDOM m, IsMouseEvent self) => self -> m EventTarget
getRelatedTargetUnchecked self
= liftDOM
(((toMouseEvent self) ^. js "relatedTarget") >>=
fromJSValUnchecked)
getMovementX :: (MonadDOM m, IsMouseEvent self) => self -> m Int
getMovementX self
= liftDOM
(round <$>
(((toMouseEvent self) ^. js "movementX") >>= valToNumber))
getMovementY :: (MonadDOM m, IsMouseEvent self) => self -> m Int
getMovementY self
= liftDOM
(round <$>
(((toMouseEvent self) ^. js "movementY") >>= valToNumber))
getWebkitForce ::
(MonadDOM m, IsMouseEvent self) => self -> m Double
getWebkitForce self
= liftDOM
(((toMouseEvent self) ^. js "webkitForce") >>= valToNumber)
getOffsetX :: (MonadDOM m, IsMouseEvent self) => self -> m Int
getOffsetX self
= liftDOM
(round <$> (((toMouseEvent self) ^. js "offsetX") >>= valToNumber))
getOffsetY :: (MonadDOM m, IsMouseEvent self) => self -> m Int
getOffsetY self
= liftDOM
(round <$> (((toMouseEvent self) ^. js "offsetY") >>= valToNumber))
getX :: (MonadDOM m, IsMouseEvent self) => self -> m Int
getX self
= liftDOM
(round <$> (((toMouseEvent self) ^. js "x") >>= valToNumber))
getY :: (MonadDOM m, IsMouseEvent self) => self -> m Int
getY self
= liftDOM
(round <$> (((toMouseEvent self) ^. js "y") >>= valToNumber))
getFromElement ::
(MonadDOM m, IsMouseEvent self) => self -> m (Maybe Node)
getFromElement self
= liftDOM (((toMouseEvent self) ^. js "fromElement") >>= fromJSVal)
getFromElementUnsafe ::
(MonadDOM m, IsMouseEvent self, HasCallStack) => self -> m Node
getFromElementUnsafe self
= liftDOM
((((toMouseEvent self) ^. js "fromElement") >>= fromJSVal) >>=
maybe (Prelude.error "Nothing to return") return)
getFromElementUnchecked ::
(MonadDOM m, IsMouseEvent self) => self -> m Node
getFromElementUnchecked self
= liftDOM
(((toMouseEvent self) ^. js "fromElement") >>= fromJSValUnchecked)
getToElement ::
(MonadDOM m, IsMouseEvent self) => self -> m (Maybe Node)
getToElement self
= liftDOM (((toMouseEvent self) ^. js "toElement") >>= fromJSVal)
getToElementUnsafe ::
(MonadDOM m, IsMouseEvent self, HasCallStack) => self -> m Node
getToElementUnsafe self
= liftDOM
((((toMouseEvent self) ^. js "toElement") >>= fromJSVal) >>=
maybe (Prelude.error "Nothing to return") return)
getToElementUnchecked ::
(MonadDOM m, IsMouseEvent self) => self -> m Node
getToElementUnchecked self
= liftDOM
(((toMouseEvent self) ^. js "toElement") >>= fromJSValUnchecked)
getDataTransfer ::
(MonadDOM m, IsMouseEvent self) => self -> m (Maybe DataTransfer)
getDataTransfer self
= liftDOM
(((toMouseEvent self) ^. js "dataTransfer") >>= fromJSVal)
getDataTransferUnsafe ::
(MonadDOM m, IsMouseEvent self, HasCallStack) =>
self -> m DataTransfer
getDataTransferUnsafe self
= liftDOM
((((toMouseEvent self) ^. js "dataTransfer") >>= fromJSVal) >>=
maybe (Prelude.error "Nothing to return") return)
getDataTransferUnchecked ::
(MonadDOM m, IsMouseEvent self) => self -> m DataTransfer
getDataTransferUnchecked self
= liftDOM
(((toMouseEvent self) ^. js "dataTransfer") >>= fromJSValUnchecked)