jsaddle-dom-0.10.0.0: src/JSDOM/Generated/SVGTransform.hs
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-- | Generated by dom-gen from SVG2 (webref). Do not edit.
module JSDOM.Generated.SVGTransform
(setMatrix, setRotate, setScale, setSkewX, setSkewY, setTranslate, getType, getMatrix, getAngle, pattern SVG_TRANSFORM_UNKNOWN, pattern SVG_TRANSFORM_MATRIX, pattern SVG_TRANSFORM_TRANSLATE, pattern SVG_TRANSFORM_SCALE, pattern SVG_TRANSFORM_ROTATE, pattern SVG_TRANSFORM_SKEWX, pattern SVG_TRANSFORM_SKEWY, SVGTransform(..), gTypeSVGTransform)
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/SVGTransform/setMatrix MDN SVGTransform.setMatrix documentation>
setMatrix :: (MonadDOM m, IsDOMMatrix2DInit matrix) => SVGTransform -> Maybe matrix -> m ()
setMatrix self matrix = liftDOM (void (self ^. jsf "setMatrix" [P.maybe (P.return jsUndefined) toJSVal matrix]))
-- | <https://developer.mozilla.org/docs/Web/API/SVGTransform/setRotate MDN SVGTransform.setRotate documentation>
setRotate :: (MonadDOM m) => SVGTransform -> Float -> Float -> Float -> m ()
setRotate self angle cx cy = liftDOM (void (self ^. jsf "setRotate" [toJSVal angle, toJSVal cx, toJSVal cy]))
-- | <https://developer.mozilla.org/docs/Web/API/SVGTransform/setScale MDN SVGTransform.setScale documentation>
setScale :: (MonadDOM m) => SVGTransform -> Float -> Float -> m ()
setScale self sx sy = liftDOM (void (self ^. jsf "setScale" [toJSVal sx, toJSVal sy]))
-- | <https://developer.mozilla.org/docs/Web/API/SVGTransform/setSkewX MDN SVGTransform.setSkewX documentation>
setSkewX :: (MonadDOM m) => SVGTransform -> Float -> m ()
setSkewX self angle = liftDOM (void (self ^. jsf "setSkewX" [toJSVal angle]))
-- | <https://developer.mozilla.org/docs/Web/API/SVGTransform/setSkewY MDN SVGTransform.setSkewY documentation>
setSkewY :: (MonadDOM m) => SVGTransform -> Float -> m ()
setSkewY self angle = liftDOM (void (self ^. jsf "setSkewY" [toJSVal angle]))
-- | <https://developer.mozilla.org/docs/Web/API/SVGTransform/setTranslate MDN SVGTransform.setTranslate documentation>
setTranslate :: (MonadDOM m) => SVGTransform -> Float -> Float -> m ()
setTranslate self tx ty = liftDOM (void (self ^. jsf "setTranslate" [toJSVal tx, toJSVal ty]))
-- | <https://developer.mozilla.org/docs/Web/API/SVGTransform/type MDN SVGTransform.type documentation>
getType :: (MonadDOM m) => SVGTransform -> m Word
getType self = liftDOM ((P.round <$> ((self ^. js "type") >>= valToNumber)))
-- | <https://developer.mozilla.org/docs/Web/API/SVGTransform/matrix MDN SVGTransform.matrix documentation>
getMatrix :: (MonadDOM m) => SVGTransform -> m DOMMatrix
getMatrix self = liftDOM (((self ^. js "matrix") >>= fromJSValUnchecked))
-- | <https://developer.mozilla.org/docs/Web/API/SVGTransform/angle MDN SVGTransform.angle documentation>
getAngle :: (MonadDOM m) => SVGTransform -> m Float
getAngle self = liftDOM ((P.realToFrac <$> ((self ^. js "angle") >>= valToNumber)))
pattern SVG_TRANSFORM_UNKNOWN = 0
pattern SVG_TRANSFORM_MATRIX = 1
pattern SVG_TRANSFORM_TRANSLATE = 2
pattern SVG_TRANSFORM_SCALE = 3
pattern SVG_TRANSFORM_ROTATE = 4
pattern SVG_TRANSFORM_SKEWX = 5
pattern SVG_TRANSFORM_SKEWY = 6