jsaddle-dom-0.10.0.0: src/JSDOM/Generated/SVGLength.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.SVGLength
(convertToSpecifiedUnits, newValueSpecifiedUnits, getUnitType, setValue, getValue, setValueInSpecifiedUnits, getValueInSpecifiedUnits, setValueAsString, getValueAsString, pattern SVG_LENGTHTYPE_UNKNOWN, pattern SVG_LENGTHTYPE_NUMBER, pattern SVG_LENGTHTYPE_PERCENTAGE, pattern SVG_LENGTHTYPE_EMS, pattern SVG_LENGTHTYPE_EXS, pattern SVG_LENGTHTYPE_PX, pattern SVG_LENGTHTYPE_CM, pattern SVG_LENGTHTYPE_MM, pattern SVG_LENGTHTYPE_IN, pattern SVG_LENGTHTYPE_PT, pattern SVG_LENGTHTYPE_PC, SVGLength(..), gTypeSVGLength)
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/SVGLength/convertToSpecifiedUnits MDN SVGLength.convertToSpecifiedUnits documentation>
convertToSpecifiedUnits :: (MonadDOM m) => SVGLength -> Word -> m ()
convertToSpecifiedUnits self unitType = liftDOM (void (self ^. jsf "convertToSpecifiedUnits" [toJSVal unitType]))
-- | <https://developer.mozilla.org/docs/Web/API/SVGLength/newValueSpecifiedUnits MDN SVGLength.newValueSpecifiedUnits documentation>
newValueSpecifiedUnits :: (MonadDOM m) => SVGLength -> Word -> Float -> m ()
newValueSpecifiedUnits self unitType valueInSpecifiedUnits = liftDOM (void (self ^. jsf "newValueSpecifiedUnits" [toJSVal unitType, toJSVal valueInSpecifiedUnits]))
-- | <https://developer.mozilla.org/docs/Web/API/SVGLength/unitType MDN SVGLength.unitType documentation>
getUnitType :: (MonadDOM m) => SVGLength -> m Word
getUnitType self = liftDOM ((P.round <$> ((self ^. js "unitType") >>= valToNumber)))
-- | <https://developer.mozilla.org/docs/Web/API/SVGLength/value MDN SVGLength.value documentation>
setValue :: (MonadDOM m) => SVGLength -> Float -> m ()
setValue self val = liftDOM (void (self ^. jss "value" (toJSVal val)))
-- | <https://developer.mozilla.org/docs/Web/API/SVGLength/value MDN SVGLength.value documentation>
getValue :: (MonadDOM m) => SVGLength -> m Float
getValue self = liftDOM ((P.realToFrac <$> ((self ^. js "value") >>= valToNumber)))
-- | <https://developer.mozilla.org/docs/Web/API/SVGLength/valueInSpecifiedUnits MDN SVGLength.valueInSpecifiedUnits documentation>
setValueInSpecifiedUnits :: (MonadDOM m) => SVGLength -> Float -> m ()
setValueInSpecifiedUnits self val = liftDOM (void (self ^. jss "valueInSpecifiedUnits" (toJSVal val)))
-- | <https://developer.mozilla.org/docs/Web/API/SVGLength/valueInSpecifiedUnits MDN SVGLength.valueInSpecifiedUnits documentation>
getValueInSpecifiedUnits :: (MonadDOM m) => SVGLength -> m Float
getValueInSpecifiedUnits self = liftDOM ((P.realToFrac <$> ((self ^. js "valueInSpecifiedUnits") >>= valToNumber)))
-- | <https://developer.mozilla.org/docs/Web/API/SVGLength/valueAsString MDN SVGLength.valueAsString documentation>
setValueAsString :: (MonadDOM m, ToJSString val) => SVGLength -> val -> m ()
setValueAsString self val = liftDOM (void (self ^. jss "valueAsString" (toJSVal val)))
-- | <https://developer.mozilla.org/docs/Web/API/SVGLength/valueAsString MDN SVGLength.valueAsString documentation>
getValueAsString :: (MonadDOM m, FromJSString result) => SVGLength -> m result
getValueAsString self = liftDOM (((self ^. js "valueAsString") >>= fromJSValUnchecked))
pattern SVG_LENGTHTYPE_UNKNOWN = 0
pattern SVG_LENGTHTYPE_NUMBER = 1
pattern SVG_LENGTHTYPE_PERCENTAGE = 2
pattern SVG_LENGTHTYPE_EMS = 3
pattern SVG_LENGTHTYPE_EXS = 4
pattern SVG_LENGTHTYPE_PX = 5
pattern SVG_LENGTHTYPE_CM = 6
pattern SVG_LENGTHTYPE_MM = 7
pattern SVG_LENGTHTYPE_IN = 8
pattern SVG_LENGTHTYPE_PT = 9
pattern SVG_LENGTHTYPE_PC = 10