{-# LANGUAGE PatternSynonyms #-} module Language.Javascript.JSaddle.DOM.Generated.Selection (collapse, collapseToEnd, collapseToStart, deleteFromDocument, containsNode, selectAllChildren, extend, getRangeAt, removeAllRanges, addRange, toString, modify, setBaseAndExtent, setPosition, empty, getAnchorNode, getAnchorOffset, getFocusNode, getFocusOffset, getIsCollapsed, getRangeCount, getBaseNode, getBaseOffset, getExtentNode, getExtentOffset, getType, Selection, castToSelection, gTypeSelection) where import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, realToFrac, fmap, Show, Read, Eq, Ord, Maybe(..)) import Data.Typeable (Typeable) import Language.Javascript.JSaddle (JSM(..), JSVal(..), JSString, strictEqual, toJSVal, valToStr, valToNumber, valToBool, js, jss, jsf, jsg, function, new, array) import Data.Int (Int64) import Data.Word (Word, Word64) import Language.Javascript.JSaddle.DOM.Types import Control.Applicative ((<$>)) import Control.Monad (void) import Control.Lens.Operators ((^.)) import Language.Javascript.JSaddle.DOM.EventTargetClosures (EventName, unsafeEventName) import Language.Javascript.JSaddle.DOM.Enums -- | collapse :: (MonadDOM m, IsNode node) => Selection -> Maybe node -> Int -> m () collapse self node index = liftDOM (void (self ^. jsf "collapse" [toJSVal node, toJSVal index])) -- | collapseToEnd :: (MonadDOM m) => Selection -> m () collapseToEnd self = liftDOM (void (self ^. js "collapseToEnd")) -- | collapseToStart :: (MonadDOM m) => Selection -> m () collapseToStart self = liftDOM (void (self ^. js "collapseToStart")) -- | deleteFromDocument :: (MonadDOM m) => Selection -> m () deleteFromDocument self = liftDOM (void (self ^. js "deleteFromDocument")) -- | containsNode :: (MonadDOM m, IsNode node) => Selection -> Maybe node -> Bool -> m Bool containsNode self node allowPartial = liftDOM ((self ^. jsf "containsNode" [toJSVal node, toJSVal allowPartial]) >>= valToBool) -- | selectAllChildren :: (MonadDOM m, IsNode node) => Selection -> Maybe node -> m () selectAllChildren self node = liftDOM (void (self ^. jsf "selectAllChildren" [toJSVal node])) -- | extend :: (MonadDOM m, IsNode node) => Selection -> Maybe node -> Int -> m () extend self node offset = liftDOM (void (self ^. jsf "extend" [toJSVal node, toJSVal offset])) -- | getRangeAt :: (MonadDOM m) => Selection -> Int -> m (Maybe Range) getRangeAt self index = liftDOM ((self ^. jsf "getRangeAt" [toJSVal index]) >>= fromJSVal) -- | removeAllRanges :: (MonadDOM m) => Selection -> m () removeAllRanges self = liftDOM (void (self ^. js "removeAllRanges")) -- | addRange :: (MonadDOM m) => Selection -> Maybe Range -> m () addRange self range = liftDOM (void (self ^. jsf "addRange" [toJSVal range])) -- | toString :: (MonadDOM m, FromJSString result) => Selection -> m result toString self = liftDOM ((self ^. js "toString") >>= fromJSValUnchecked) -- | modify :: (MonadDOM m, ToJSString alter, ToJSString direction, ToJSString granularity) => Selection -> alter -> direction -> granularity -> m () modify self alter direction granularity = liftDOM (void (self ^. jsf "modify" [toJSVal alter, toJSVal direction, toJSVal granularity])) -- | setBaseAndExtent :: (MonadDOM m, IsNode baseNode, IsNode extentNode) => Selection -> Maybe baseNode -> Int -> Maybe extentNode -> Int -> m () setBaseAndExtent self baseNode baseOffset extentNode extentOffset = liftDOM (void (self ^. jsf "setBaseAndExtent" [toJSVal baseNode, toJSVal baseOffset, toJSVal extentNode, toJSVal extentOffset])) -- | setPosition :: (MonadDOM m, IsNode node) => Selection -> Maybe node -> Int -> m () setPosition self node offset = liftDOM (void (self ^. jsf "setPosition" [toJSVal node, toJSVal offset])) -- | empty :: (MonadDOM m) => Selection -> m () empty self = liftDOM (void (self ^. js "empty")) -- | getAnchorNode :: (MonadDOM m) => Selection -> m (Maybe Node) getAnchorNode self = liftDOM ((self ^. js "anchorNode") >>= fromJSVal) -- | getAnchorOffset :: (MonadDOM m) => Selection -> m Int getAnchorOffset self = liftDOM (round <$> ((self ^. js "anchorOffset") >>= valToNumber)) -- | getFocusNode :: (MonadDOM m) => Selection -> m (Maybe Node) getFocusNode self = liftDOM ((self ^. js "focusNode") >>= fromJSVal) -- | getFocusOffset :: (MonadDOM m) => Selection -> m Int getFocusOffset self = liftDOM (round <$> ((self ^. js "focusOffset") >>= valToNumber)) -- | getIsCollapsed :: (MonadDOM m) => Selection -> m Bool getIsCollapsed self = liftDOM ((self ^. js "isCollapsed") >>= valToBool) -- | getRangeCount :: (MonadDOM m) => Selection -> m Int getRangeCount self = liftDOM (round <$> ((self ^. js "rangeCount") >>= valToNumber)) -- | getBaseNode :: (MonadDOM m) => Selection -> m (Maybe Node) getBaseNode self = liftDOM ((self ^. js "baseNode") >>= fromJSVal) -- | getBaseOffset :: (MonadDOM m) => Selection -> m Int getBaseOffset self = liftDOM (round <$> ((self ^. js "baseOffset") >>= valToNumber)) -- | getExtentNode :: (MonadDOM m) => Selection -> m (Maybe Node) getExtentNode self = liftDOM ((self ^. js "extentNode") >>= fromJSVal) -- | getExtentOffset :: (MonadDOM m) => Selection -> m Int getExtentOffset self = liftDOM (round <$> ((self ^. js "extentOffset") >>= valToNumber)) -- | getType :: (MonadDOM m, FromJSString result) => Selection -> m result getType self = liftDOM ((self ^. js "type") >>= fromJSValUnchecked)