packages feed

jsaddle-dom-0.10.0.0: src/JSDOM/Generated/MouseEvent.hs

{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-- | Generated by dom-gen from pointerevents4 (webref). Do not edit.
module JSDOM.Generated.MouseEvent
       (newMouseEvent, getModifierState, getModifierState_, initMouseEvent, getScreenX, getScreenY, getClientX, getClientY, getLayerX, getLayerY, getCtrlKey, getShiftKey, getAltKey, getMetaKey, getButton, getButtons, getRelatedTarget, getRelatedTargetUnsafe, getRelatedTargetUnchecked, getPageX, getPageY, getX, getY, getOffsetX, getOffsetY, getMovementX, getMovementY, MouseEvent(..), gTypeMouseEvent, IsMouseEvent, toMouseEvent)
       where
import Prelude ((.), (==), (>>=), (<$>), (++), Bool(..), Maybe(..), IO, Int, Word, Double, Float)
import qualified Prelude as P
import Control.Monad (void)
import Control.Lens.Operators ((^.))
import Language.Javascript.JSaddle (JSM, JSVal, JSString, toJSVal, valToBool, valToNumber, js, jss, jsf, jsg, new, function, asyncFunction, jsUndefined, jsNull)
import JSDOM.Types
import qualified JSDOM.Types as Types
import JSDOM.EventTargetClosures (EventName, unsafeEventName, unsafeEventNameAsync)
import JSDOM.Generated.Enums

-- | <https://developer.mozilla.org/docs/Web/API/MouseEvent/MouseEvent MDN MouseEvent. documentation>
newMouseEvent :: (MonadDOM m, ToJSString type', IsMouseEventInit eventInitDict) => type' -> Maybe eventInitDict -> m MouseEvent
newMouseEvent type' eventInitDict = liftDOM (((new (jsg "MouseEvent") [toJSVal type', P.maybe (P.return jsUndefined) toJSVal eventInitDict]) >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/MouseEvent/getModifierState MDN MouseEvent.getModifierState documentation>
getModifierState :: (MonadDOM m, IsMouseEvent self, ToJSString keyArg) => self -> keyArg -> m Bool
getModifierState self keyArg = liftDOM ((((Types.toMouseEvent self) ^. jsf "getModifierState" [toJSVal keyArg]) >>= valToBool))

-- | <https://developer.mozilla.org/docs/Web/API/MouseEvent/getModifierState MDN MouseEvent.getModifierState documentation>
getModifierState_ :: (MonadDOM m, IsMouseEvent self, ToJSString keyArg) => self -> keyArg -> m ()
getModifierState_ self keyArg = liftDOM (void ((Types.toMouseEvent self) ^. jsf "getModifierState" [toJSVal keyArg]))

-- | <https://developer.mozilla.org/docs/Web/API/MouseEvent/initMouseEvent MDN MouseEvent.initMouseEvent documentation>
initMouseEvent :: (MonadDOM m, IsMouseEvent self, ToJSString typeArg, IsEventTarget relatedTargetArg) => self -> typeArg -> Maybe Bool -> Maybe Bool -> Maybe Window -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Bool -> Maybe Bool -> Maybe Bool -> Maybe Bool -> Maybe Int -> Maybe relatedTargetArg -> m ()
initMouseEvent self typeArg bubblesArg cancelableArg viewArg detailArg screenXArg screenYArg clientXArg clientYArg ctrlKeyArg altKeyArg shiftKeyArg metaKeyArg buttonArg relatedTargetArg = liftDOM (void ((Types.toMouseEvent self) ^. jsf "initMouseEvent" [toJSVal typeArg, P.maybe (P.return jsUndefined) toJSVal bubblesArg, P.maybe (P.return jsUndefined) toJSVal cancelableArg, toJSVal viewArg, P.maybe (P.return jsUndefined) toJSVal detailArg, P.maybe (P.return jsUndefined) toJSVal screenXArg, P.maybe (P.return jsUndefined) toJSVal screenYArg, P.maybe (P.return jsUndefined) toJSVal clientXArg, P.maybe (P.return jsUndefined) toJSVal clientYArg, P.maybe (P.return jsUndefined) toJSVal ctrlKeyArg, P.maybe (P.return jsUndefined) toJSVal altKeyArg, P.maybe (P.return jsUndefined) toJSVal shiftKeyArg, P.maybe (P.return jsUndefined) toJSVal metaKeyArg, P.maybe (P.return jsUndefined) toJSVal buttonArg, toJSVal relatedTargetArg]))

-- | <https://developer.mozilla.org/docs/Web/API/MouseEvent/screenX MDN MouseEvent.screenX documentation>
getScreenX :: (MonadDOM m, IsMouseEvent self) => self -> m Int
getScreenX self = liftDOM ((P.round <$> (((Types.toMouseEvent self) ^. js "screenX") >>= valToNumber)))

-- | <https://developer.mozilla.org/docs/Web/API/MouseEvent/screenY MDN MouseEvent.screenY documentation>
getScreenY :: (MonadDOM m, IsMouseEvent self) => self -> m Int
getScreenY self = liftDOM ((P.round <$> (((Types.toMouseEvent self) ^. js "screenY") >>= valToNumber)))

-- | <https://developer.mozilla.org/docs/Web/API/MouseEvent/clientX MDN MouseEvent.clientX documentation>
getClientX :: (MonadDOM m, IsMouseEvent self) => self -> m Int
getClientX self = liftDOM ((P.round <$> (((Types.toMouseEvent self) ^. js "clientX") >>= valToNumber)))

-- | <https://developer.mozilla.org/docs/Web/API/MouseEvent/clientY MDN MouseEvent.clientY documentation>
getClientY :: (MonadDOM m, IsMouseEvent self) => self -> m Int
getClientY self = liftDOM ((P.round <$> (((Types.toMouseEvent self) ^. js "clientY") >>= valToNumber)))

-- | <https://developer.mozilla.org/docs/Web/API/MouseEvent/layerX MDN MouseEvent.layerX documentation>
getLayerX :: (MonadDOM m, IsMouseEvent self) => self -> m Int
getLayerX self = liftDOM ((P.round <$> (((Types.toMouseEvent self) ^. js "layerX") >>= valToNumber)))

-- | <https://developer.mozilla.org/docs/Web/API/MouseEvent/layerY MDN MouseEvent.layerY documentation>
getLayerY :: (MonadDOM m, IsMouseEvent self) => self -> m Int
getLayerY self = liftDOM ((P.round <$> (((Types.toMouseEvent self) ^. js "layerY") >>= valToNumber)))

-- | <https://developer.mozilla.org/docs/Web/API/MouseEvent/ctrlKey MDN MouseEvent.ctrlKey documentation>
getCtrlKey :: (MonadDOM m, IsMouseEvent self) => self -> m Bool
getCtrlKey self = liftDOM ((((Types.toMouseEvent self) ^. js "ctrlKey") >>= valToBool))

-- | <https://developer.mozilla.org/docs/Web/API/MouseEvent/shiftKey MDN MouseEvent.shiftKey documentation>
getShiftKey :: (MonadDOM m, IsMouseEvent self) => self -> m Bool
getShiftKey self = liftDOM ((((Types.toMouseEvent self) ^. js "shiftKey") >>= valToBool))

-- | <https://developer.mozilla.org/docs/Web/API/MouseEvent/altKey MDN MouseEvent.altKey documentation>
getAltKey :: (MonadDOM m, IsMouseEvent self) => self -> m Bool
getAltKey self = liftDOM ((((Types.toMouseEvent self) ^. js "altKey") >>= valToBool))

-- | <https://developer.mozilla.org/docs/Web/API/MouseEvent/metaKey MDN MouseEvent.metaKey documentation>
getMetaKey :: (MonadDOM m, IsMouseEvent self) => self -> m Bool
getMetaKey self = liftDOM ((((Types.toMouseEvent self) ^. js "metaKey") >>= valToBool))

-- | <https://developer.mozilla.org/docs/Web/API/MouseEvent/button MDN MouseEvent.button documentation>
getButton :: (MonadDOM m, IsMouseEvent self) => self -> m Int
getButton self = liftDOM ((P.round <$> (((Types.toMouseEvent self) ^. js "button") >>= valToNumber)))

-- | <https://developer.mozilla.org/docs/Web/API/MouseEvent/buttons MDN MouseEvent.buttons documentation>
getButtons :: (MonadDOM m, IsMouseEvent self) => self -> m Word
getButtons self = liftDOM ((P.round <$> (((Types.toMouseEvent self) ^. js "buttons") >>= valToNumber)))

-- | <https://developer.mozilla.org/docs/Web/API/MouseEvent/relatedTarget MDN MouseEvent.relatedTarget documentation>
getRelatedTarget :: (MonadDOM m, IsMouseEvent self) => self -> m (Maybe EventTarget)
getRelatedTarget self = liftDOM ((((Types.toMouseEvent self) ^. js "relatedTarget") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/MouseEvent/relatedTarget MDN MouseEvent.relatedTarget documentation>
getRelatedTargetUnsafe :: (MonadDOM m, IsMouseEvent self, HasCallStack) => self -> m EventTarget
getRelatedTargetUnsafe self = liftDOM (((((Types.toMouseEvent self) ^. js "relatedTarget") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))

-- | <https://developer.mozilla.org/docs/Web/API/MouseEvent/relatedTarget MDN MouseEvent.relatedTarget documentation>
getRelatedTargetUnchecked :: (MonadDOM m, IsMouseEvent self) => self -> m EventTarget
getRelatedTargetUnchecked self = liftDOM ((((Types.toMouseEvent self) ^. js "relatedTarget") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/MouseEvent/pageX MDN MouseEvent.pageX documentation>
getPageX :: (MonadDOM m, IsMouseEvent self) => self -> m Double
getPageX self = liftDOM ((((Types.toMouseEvent self) ^. js "pageX") >>= valToNumber))

-- | <https://developer.mozilla.org/docs/Web/API/MouseEvent/pageY MDN MouseEvent.pageY documentation>
getPageY :: (MonadDOM m, IsMouseEvent self) => self -> m Double
getPageY self = liftDOM ((((Types.toMouseEvent self) ^. js "pageY") >>= valToNumber))

-- | <https://developer.mozilla.org/docs/Web/API/MouseEvent/x MDN MouseEvent.x documentation>
getX :: (MonadDOM m, IsMouseEvent self) => self -> m Double
getX self = liftDOM ((((Types.toMouseEvent self) ^. js "x") >>= valToNumber))

-- | <https://developer.mozilla.org/docs/Web/API/MouseEvent/y MDN MouseEvent.y documentation>
getY :: (MonadDOM m, IsMouseEvent self) => self -> m Double
getY self = liftDOM ((((Types.toMouseEvent self) ^. js "y") >>= valToNumber))

-- | <https://developer.mozilla.org/docs/Web/API/MouseEvent/offsetX MDN MouseEvent.offsetX documentation>
getOffsetX :: (MonadDOM m, IsMouseEvent self) => self -> m Double
getOffsetX self = liftDOM ((((Types.toMouseEvent self) ^. js "offsetX") >>= valToNumber))

-- | <https://developer.mozilla.org/docs/Web/API/MouseEvent/offsetY MDN MouseEvent.offsetY documentation>
getOffsetY :: (MonadDOM m, IsMouseEvent self) => self -> m Double
getOffsetY self = liftDOM ((((Types.toMouseEvent self) ^. js "offsetY") >>= valToNumber))

-- | <https://developer.mozilla.org/docs/Web/API/MouseEvent/movementX MDN MouseEvent.movementX documentation>
getMovementX :: (MonadDOM m, IsMouseEvent self) => self -> m Double
getMovementX self = liftDOM ((((Types.toMouseEvent self) ^. js "movementX") >>= valToNumber))

-- | <https://developer.mozilla.org/docs/Web/API/MouseEvent/movementY MDN MouseEvent.movementY documentation>
getMovementY :: (MonadDOM m, IsMouseEvent self) => self -> m Double
getMovementY self = liftDOM ((((Types.toMouseEvent self) ^. js "movementY") >>= valToNumber))