{-# LANGUAGE PatternSynonyms #-}
-- For HasCallStack compatibility
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
module JSDOM.Generated.VTTRegion
       (newVTTRegion, getTrack, setId, getId, setWidth, getWidth,
        setHeight, getHeight, setRegionAnchorX, getRegionAnchorX,
        setRegionAnchorY, getRegionAnchorY, setViewportAnchorX,
        getViewportAnchorX, setViewportAnchorY, getViewportAnchorY,
        setScroll, getScroll, VTTRegion(..), gTypeVTTRegion)
       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.EventTargetClosures (EventName, unsafeEventName, unsafeEventNameAsync)
import JSDOM.Enums

-- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTRegion Mozilla VTTRegion documentation> 
newVTTRegion :: (MonadDOM m) => m VTTRegion
newVTTRegion :: m VTTRegion
newVTTRegion = DOM VTTRegion -> m VTTRegion
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (JSVal -> VTTRegion
VTTRegion (JSVal -> VTTRegion) -> JSM JSVal -> DOM VTTRegion
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> 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]
"VTTRegion") ())

-- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTRegion.track Mozilla VTTRegion.track documentation> 
getTrack :: (MonadDOM m) => VTTRegion -> m TextTrack
getTrack :: VTTRegion -> m TextTrack
getTrack VTTRegion
self
  = DOM TextTrack -> m TextTrack
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((VTTRegion
self VTTRegion -> Getting (JSM JSVal) VTTRegion (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter VTTRegion (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"track") JSM JSVal -> (JSVal -> DOM TextTrack) -> DOM TextTrack
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM TextTrack
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTRegion.id Mozilla VTTRegion.id documentation> 
setId :: (MonadDOM m, ToJSString val) => VTTRegion -> val -> m ()
setId :: VTTRegion -> val -> m ()
setId VTTRegion
self val
val = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (VTTRegion
self VTTRegion -> Getting (DOM ()) VTTRegion (DOM ()) -> DOM ()
forall s a. s -> Getting a s a -> a
^. [Char]
-> JSM JSVal
-> forall o. MakeObject o => IndexPreservingGetter o (DOM ())
forall name val.
(ToJSString name, ToJSVal val) =>
name
-> val
-> forall o. MakeObject o => IndexPreservingGetter o (DOM ())
jss [Char]
"id" (val -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal val
val))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTRegion.id Mozilla VTTRegion.id documentation> 
getId :: (MonadDOM m, FromJSString result) => VTTRegion -> m result
getId :: VTTRegion -> m result
getId VTTRegion
self = DOM result -> m result
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((VTTRegion
self VTTRegion -> Getting (JSM JSVal) VTTRegion (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter VTTRegion (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"id") JSM JSVal -> (JSVal -> DOM result) -> DOM result
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM result
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTRegion.width Mozilla VTTRegion.width documentation> 
setWidth :: (MonadDOM m) => VTTRegion -> Double -> m ()
setWidth :: VTTRegion -> Double -> m ()
setWidth VTTRegion
self Double
val = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (VTTRegion
self VTTRegion -> Getting (DOM ()) VTTRegion (DOM ()) -> DOM ()
forall s a. s -> Getting a s a -> a
^. [Char]
-> JSM JSVal
-> forall o. MakeObject o => IndexPreservingGetter o (DOM ())
forall name val.
(ToJSString name, ToJSVal val) =>
name
-> val
-> forall o. MakeObject o => IndexPreservingGetter o (DOM ())
jss [Char]
"width" (Double -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Double
val))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTRegion.width Mozilla VTTRegion.width documentation> 
getWidth :: (MonadDOM m) => VTTRegion -> m Double
getWidth :: VTTRegion -> m Double
getWidth VTTRegion
self = DOM Double -> m Double
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((VTTRegion
self VTTRegion -> Getting (JSM JSVal) VTTRegion (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter VTTRegion (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"width") JSM JSVal -> (JSVal -> DOM Double) -> DOM Double
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM Double
forall value. ToJSVal value => value -> DOM Double
valToNumber)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTRegion.height Mozilla VTTRegion.height documentation> 
setHeight :: (MonadDOM m) => VTTRegion -> Int -> m ()
setHeight :: VTTRegion -> Int -> m ()
setHeight VTTRegion
self Int
val = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (VTTRegion
self VTTRegion -> Getting (DOM ()) VTTRegion (DOM ()) -> DOM ()
forall s a. s -> Getting a s a -> a
^. [Char]
-> JSM JSVal
-> forall o. MakeObject o => IndexPreservingGetter o (DOM ())
forall name val.
(ToJSString name, ToJSVal val) =>
name
-> val
-> forall o. MakeObject o => IndexPreservingGetter o (DOM ())
jss [Char]
"height" (Int -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Int
val))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTRegion.height Mozilla VTTRegion.height documentation> 
getHeight :: (MonadDOM m) => VTTRegion -> m Int
getHeight :: VTTRegion -> m Int
getHeight VTTRegion
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) -> DOM Double -> DOM Int
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ((VTTRegion
self VTTRegion -> Getting (JSM JSVal) VTTRegion (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter VTTRegion (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"height") JSM JSVal -> (JSVal -> DOM Double) -> DOM Double
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM Double
forall value. ToJSVal value => value -> DOM Double
valToNumber))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTRegion.regionAnchorX Mozilla VTTRegion.regionAnchorX documentation> 
setRegionAnchorX :: (MonadDOM m) => VTTRegion -> Double -> m ()
setRegionAnchorX :: VTTRegion -> Double -> m ()
setRegionAnchorX VTTRegion
self Double
val
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (VTTRegion
self VTTRegion -> Getting (DOM ()) VTTRegion (DOM ()) -> DOM ()
forall s a. s -> Getting a s a -> a
^. [Char]
-> JSM JSVal
-> forall o. MakeObject o => IndexPreservingGetter o (DOM ())
forall name val.
(ToJSString name, ToJSVal val) =>
name
-> val
-> forall o. MakeObject o => IndexPreservingGetter o (DOM ())
jss [Char]
"regionAnchorX" (Double -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Double
val))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTRegion.regionAnchorX Mozilla VTTRegion.regionAnchorX documentation> 
getRegionAnchorX :: (MonadDOM m) => VTTRegion -> m Double
getRegionAnchorX :: VTTRegion -> m Double
getRegionAnchorX VTTRegion
self
  = DOM Double -> m Double
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((VTTRegion
self VTTRegion -> Getting (JSM JSVal) VTTRegion (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter VTTRegion (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"regionAnchorX") JSM JSVal -> (JSVal -> DOM Double) -> DOM Double
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM Double
forall value. ToJSVal value => value -> DOM Double
valToNumber)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTRegion.regionAnchorY Mozilla VTTRegion.regionAnchorY documentation> 
setRegionAnchorY :: (MonadDOM m) => VTTRegion -> Double -> m ()
setRegionAnchorY :: VTTRegion -> Double -> m ()
setRegionAnchorY VTTRegion
self Double
val
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (VTTRegion
self VTTRegion -> Getting (DOM ()) VTTRegion (DOM ()) -> DOM ()
forall s a. s -> Getting a s a -> a
^. [Char]
-> JSM JSVal
-> forall o. MakeObject o => IndexPreservingGetter o (DOM ())
forall name val.
(ToJSString name, ToJSVal val) =>
name
-> val
-> forall o. MakeObject o => IndexPreservingGetter o (DOM ())
jss [Char]
"regionAnchorY" (Double -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Double
val))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTRegion.regionAnchorY Mozilla VTTRegion.regionAnchorY documentation> 
getRegionAnchorY :: (MonadDOM m) => VTTRegion -> m Double
getRegionAnchorY :: VTTRegion -> m Double
getRegionAnchorY VTTRegion
self
  = DOM Double -> m Double
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((VTTRegion
self VTTRegion -> Getting (JSM JSVal) VTTRegion (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter VTTRegion (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"regionAnchorY") JSM JSVal -> (JSVal -> DOM Double) -> DOM Double
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM Double
forall value. ToJSVal value => value -> DOM Double
valToNumber)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTRegion.viewportAnchorX Mozilla VTTRegion.viewportAnchorX documentation> 
setViewportAnchorX :: (MonadDOM m) => VTTRegion -> Double -> m ()
setViewportAnchorX :: VTTRegion -> Double -> m ()
setViewportAnchorX VTTRegion
self Double
val
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (VTTRegion
self VTTRegion -> Getting (DOM ()) VTTRegion (DOM ()) -> DOM ()
forall s a. s -> Getting a s a -> a
^. [Char]
-> JSM JSVal
-> forall o. MakeObject o => IndexPreservingGetter o (DOM ())
forall name val.
(ToJSString name, ToJSVal val) =>
name
-> val
-> forall o. MakeObject o => IndexPreservingGetter o (DOM ())
jss [Char]
"viewportAnchorX" (Double -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Double
val))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTRegion.viewportAnchorX Mozilla VTTRegion.viewportAnchorX documentation> 
getViewportAnchorX :: (MonadDOM m) => VTTRegion -> m Double
getViewportAnchorX :: VTTRegion -> m Double
getViewportAnchorX VTTRegion
self
  = DOM Double -> m Double
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((VTTRegion
self VTTRegion -> Getting (JSM JSVal) VTTRegion (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter VTTRegion (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"viewportAnchorX") JSM JSVal -> (JSVal -> DOM Double) -> DOM Double
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM Double
forall value. ToJSVal value => value -> DOM Double
valToNumber)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTRegion.viewportAnchorY Mozilla VTTRegion.viewportAnchorY documentation> 
setViewportAnchorY :: (MonadDOM m) => VTTRegion -> Double -> m ()
setViewportAnchorY :: VTTRegion -> Double -> m ()
setViewportAnchorY VTTRegion
self Double
val
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (VTTRegion
self VTTRegion -> Getting (DOM ()) VTTRegion (DOM ()) -> DOM ()
forall s a. s -> Getting a s a -> a
^. [Char]
-> JSM JSVal
-> forall o. MakeObject o => IndexPreservingGetter o (DOM ())
forall name val.
(ToJSString name, ToJSVal val) =>
name
-> val
-> forall o. MakeObject o => IndexPreservingGetter o (DOM ())
jss [Char]
"viewportAnchorY" (Double -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Double
val))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTRegion.viewportAnchorY Mozilla VTTRegion.viewportAnchorY documentation> 
getViewportAnchorY :: (MonadDOM m) => VTTRegion -> m Double
getViewportAnchorY :: VTTRegion -> m Double
getViewportAnchorY VTTRegion
self
  = DOM Double -> m Double
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((VTTRegion
self VTTRegion -> Getting (JSM JSVal) VTTRegion (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter VTTRegion (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"viewportAnchorY") JSM JSVal -> (JSVal -> DOM Double) -> DOM Double
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM Double
forall value. ToJSVal value => value -> DOM Double
valToNumber)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTRegion.scroll Mozilla VTTRegion.scroll documentation> 
setScroll ::
          (MonadDOM m, ToJSString val) => VTTRegion -> val -> m ()
setScroll :: VTTRegion -> val -> m ()
setScroll VTTRegion
self val
val = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (VTTRegion
self VTTRegion -> Getting (DOM ()) VTTRegion (DOM ()) -> DOM ()
forall s a. s -> Getting a s a -> a
^. [Char]
-> JSM JSVal
-> forall o. MakeObject o => IndexPreservingGetter o (DOM ())
forall name val.
(ToJSString name, ToJSVal val) =>
name
-> val
-> forall o. MakeObject o => IndexPreservingGetter o (DOM ())
jss [Char]
"scroll" (val -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal val
val))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/VTTRegion.scroll Mozilla VTTRegion.scroll documentation> 
getScroll ::
          (MonadDOM m, FromJSString result) => VTTRegion -> m result
getScroll :: VTTRegion -> m result
getScroll VTTRegion
self
  = DOM result -> m result
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((VTTRegion
self VTTRegion -> Getting (JSM JSVal) VTTRegion (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter VTTRegion (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"scroll") JSM JSVal -> (JSVal -> DOM result) -> DOM result
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM result
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)