{-# LANGUAGE PatternSynonyms #-}
-- For HasCallStack compatibility
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
module JSDOM.Generated.SVGTextPathElement
       (pattern TEXTPATH_METHODTYPE_UNKNOWN,
        pattern TEXTPATH_METHODTYPE_ALIGN,
        pattern TEXTPATH_METHODTYPE_STRETCH,
        pattern TEXTPATH_SPACINGTYPE_UNKNOWN,
        pattern TEXTPATH_SPACINGTYPE_AUTO,
        pattern TEXTPATH_SPACINGTYPE_EXACT, getStartOffset, getMethod,
        getSpacing, SVGTextPathElement(..), gTypeSVGTextPathElement)
       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
pattern $bTEXTPATH_METHODTYPE_UNKNOWN :: a
$mTEXTPATH_METHODTYPE_UNKNOWN :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
TEXTPATH_METHODTYPE_UNKNOWN = 0
pattern $bTEXTPATH_METHODTYPE_ALIGN :: a
$mTEXTPATH_METHODTYPE_ALIGN :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
TEXTPATH_METHODTYPE_ALIGN = 1
pattern $bTEXTPATH_METHODTYPE_STRETCH :: a
$mTEXTPATH_METHODTYPE_STRETCH :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
TEXTPATH_METHODTYPE_STRETCH = 2
pattern $bTEXTPATH_SPACINGTYPE_UNKNOWN :: a
$mTEXTPATH_SPACINGTYPE_UNKNOWN :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
TEXTPATH_SPACINGTYPE_UNKNOWN = 0
pattern $bTEXTPATH_SPACINGTYPE_AUTO :: a
$mTEXTPATH_SPACINGTYPE_AUTO :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
TEXTPATH_SPACINGTYPE_AUTO = 1
pattern $bTEXTPATH_SPACINGTYPE_EXACT :: a
$mTEXTPATH_SPACINGTYPE_EXACT :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
TEXTPATH_SPACINGTYPE_EXACT = 2

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

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

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