{- |
Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License    : LGPL-2.1
Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
-}

module GI.WebKit2WebExtension.Objects.DOMElement
    ( 

-- * Exported types
    DOMElement(..)                          ,
    DOMElementK                             ,
    toDOMElement                            ,
    noDOMElement                            ,


 -- * Methods
-- ** dOMElementBlur
    dOMElementBlur                          ,


-- ** dOMElementFocus
    dOMElementFocus                         ,


-- ** dOMElementGetAttribute
    dOMElementGetAttribute                  ,


-- ** dOMElementGetAttributeNode
    dOMElementGetAttributeNode              ,


-- ** dOMElementGetAttributeNodeNs
    dOMElementGetAttributeNodeNs            ,


-- ** dOMElementGetAttributeNs
    dOMElementGetAttributeNs                ,


-- ** dOMElementGetAttributes
    dOMElementGetAttributes                 ,


-- ** dOMElementGetChildElementCount
    dOMElementGetChildElementCount          ,


-- ** dOMElementGetChildren
    dOMElementGetChildren                   ,


-- ** dOMElementGetClassName
    dOMElementGetClassName                  ,


-- ** dOMElementGetClientHeight
    dOMElementGetClientHeight               ,


-- ** dOMElementGetClientLeft
    dOMElementGetClientLeft                 ,


-- ** dOMElementGetClientTop
    dOMElementGetClientTop                  ,


-- ** dOMElementGetClientWidth
    dOMElementGetClientWidth                ,


-- ** dOMElementGetElementsByClassName
    dOMElementGetElementsByClassName        ,


-- ** dOMElementGetElementsByTagName
    dOMElementGetElementsByTagName          ,


-- ** dOMElementGetElementsByTagNameNs
    dOMElementGetElementsByTagNameNs        ,


-- ** dOMElementGetFirstElementChild
    dOMElementGetFirstElementChild          ,


-- ** dOMElementGetId
    dOMElementGetId                         ,


-- ** dOMElementGetInnerHtml
    dOMElementGetInnerHtml                  ,


-- ** dOMElementGetLastElementChild
    dOMElementGetLastElementChild           ,


-- ** dOMElementGetNextElementSibling
    dOMElementGetNextElementSibling         ,


-- ** dOMElementGetOffsetHeight
    dOMElementGetOffsetHeight               ,


-- ** dOMElementGetOffsetLeft
    dOMElementGetOffsetLeft                 ,


-- ** dOMElementGetOffsetParent
    dOMElementGetOffsetParent               ,


-- ** dOMElementGetOffsetTop
    dOMElementGetOffsetTop                  ,


-- ** dOMElementGetOffsetWidth
    dOMElementGetOffsetWidth                ,


-- ** dOMElementGetOuterHtml
    dOMElementGetOuterHtml                  ,


-- ** dOMElementGetPreviousElementSibling
    dOMElementGetPreviousElementSibling     ,


-- ** dOMElementGetScrollHeight
    dOMElementGetScrollHeight               ,


-- ** dOMElementGetScrollLeft
    dOMElementGetScrollLeft                 ,


-- ** dOMElementGetScrollTop
    dOMElementGetScrollTop                  ,


-- ** dOMElementGetScrollWidth
    dOMElementGetScrollWidth                ,


-- ** dOMElementGetStyle
    dOMElementGetStyle                      ,


-- ** dOMElementGetTagName
    dOMElementGetTagName                    ,


-- ** dOMElementHasAttribute
    dOMElementHasAttribute                  ,


-- ** dOMElementHasAttributeNs
    dOMElementHasAttributeNs                ,


-- ** dOMElementHasAttributes
    dOMElementHasAttributes                 ,


-- ** dOMElementQuerySelector
    dOMElementQuerySelector                 ,


-- ** dOMElementQuerySelectorAll
    dOMElementQuerySelectorAll              ,


-- ** dOMElementRemoveAttribute
    dOMElementRemoveAttribute               ,


-- ** dOMElementRemoveAttributeNode
    dOMElementRemoveAttributeNode           ,


-- ** dOMElementRemoveAttributeNs
    dOMElementRemoveAttributeNs             ,


-- ** dOMElementScrollByLines
    dOMElementScrollByLines                 ,


-- ** dOMElementScrollByPages
    dOMElementScrollByPages                 ,


-- ** dOMElementScrollIntoView
    dOMElementScrollIntoView                ,


-- ** dOMElementScrollIntoViewIfNeeded
    dOMElementScrollIntoViewIfNeeded        ,


-- ** dOMElementSetAttribute
    dOMElementSetAttribute                  ,


-- ** dOMElementSetAttributeNode
    dOMElementSetAttributeNode              ,


-- ** dOMElementSetAttributeNodeNs
    dOMElementSetAttributeNodeNs            ,


-- ** dOMElementSetAttributeNs
    dOMElementSetAttributeNs                ,


-- ** dOMElementSetClassName
    dOMElementSetClassName                  ,


-- ** dOMElementSetId
    dOMElementSetId                         ,


-- ** dOMElementSetInnerHtml
    dOMElementSetInnerHtml                  ,


-- ** dOMElementSetOuterHtml
    dOMElementSetOuterHtml                  ,


-- ** dOMElementSetScrollLeft
    dOMElementSetScrollLeft                 ,


-- ** dOMElementSetScrollTop
    dOMElementSetScrollTop                  ,




 -- * Properties
-- ** Attributes
    DOMElementAttributesPropertyInfo        ,
    getDOMElementAttributes                 ,


-- ** ChildElementCount
    DOMElementChildElementCountPropertyInfo ,
    getDOMElementChildElementCount          ,


-- ** Children
    DOMElementChildrenPropertyInfo          ,
    getDOMElementChildren                   ,


-- ** ClassName
    DOMElementClassNamePropertyInfo         ,
    constructDOMElementClassName            ,
    getDOMElementClassName                  ,
    setDOMElementClassName                  ,


-- ** ClientHeight
    DOMElementClientHeightPropertyInfo      ,
    getDOMElementClientHeight               ,


-- ** ClientLeft
    DOMElementClientLeftPropertyInfo        ,
    getDOMElementClientLeft                 ,


-- ** ClientTop
    DOMElementClientTopPropertyInfo         ,
    getDOMElementClientTop                  ,


-- ** ClientWidth
    DOMElementClientWidthPropertyInfo       ,
    getDOMElementClientWidth                ,


-- ** FirstElementChild
    DOMElementFirstElementChildPropertyInfo ,
    getDOMElementFirstElementChild          ,


-- ** Id
    DOMElementIdPropertyInfo                ,
    constructDOMElementId                   ,
    getDOMElementId                         ,
    setDOMElementId                         ,


-- ** InnerHtml
    DOMElementInnerHtmlPropertyInfo         ,
    constructDOMElementInnerHtml            ,
    getDOMElementInnerHtml                  ,
    setDOMElementInnerHtml                  ,


-- ** LastElementChild
    DOMElementLastElementChildPropertyInfo  ,
    getDOMElementLastElementChild           ,


-- ** NextElementSibling
    DOMElementNextElementSiblingPropertyInfo,
    getDOMElementNextElementSibling         ,


-- ** OffsetHeight
    DOMElementOffsetHeightPropertyInfo      ,
    getDOMElementOffsetHeight               ,


-- ** OffsetLeft
    DOMElementOffsetLeftPropertyInfo        ,
    getDOMElementOffsetLeft                 ,


-- ** OffsetParent
    DOMElementOffsetParentPropertyInfo      ,
    getDOMElementOffsetParent               ,


-- ** OffsetTop
    DOMElementOffsetTopPropertyInfo         ,
    getDOMElementOffsetTop                  ,


-- ** OffsetWidth
    DOMElementOffsetWidthPropertyInfo       ,
    getDOMElementOffsetWidth                ,


-- ** OuterHtml
    DOMElementOuterHtmlPropertyInfo         ,
    constructDOMElementOuterHtml            ,
    getDOMElementOuterHtml                  ,
    setDOMElementOuterHtml                  ,


-- ** PreviousElementSibling
    DOMElementPreviousElementSiblingPropertyInfo,
    getDOMElementPreviousElementSibling     ,


-- ** ScrollHeight
    DOMElementScrollHeightPropertyInfo      ,
    getDOMElementScrollHeight               ,


-- ** ScrollLeft
    DOMElementScrollLeftPropertyInfo        ,
    constructDOMElementScrollLeft           ,
    getDOMElementScrollLeft                 ,
    setDOMElementScrollLeft                 ,


-- ** ScrollTop
    DOMElementScrollTopPropertyInfo         ,
    constructDOMElementScrollTop            ,
    getDOMElementScrollTop                  ,
    setDOMElementScrollTop                  ,


-- ** ScrollWidth
    DOMElementScrollWidthPropertyInfo       ,
    getDOMElementScrollWidth                ,


-- ** Style
    DOMElementStylePropertyInfo             ,
    getDOMElementStyle                      ,


-- ** TagName
    DOMElementTagNamePropertyInfo           ,
    getDOMElementTagName                    ,


-- ** WebkitRegionOverset
    DOMElementWebkitRegionOversetPropertyInfo,
    getDOMElementWebkitRegionOverset        ,




    ) where

import Prelude ()
import Data.GI.Base.ShortPrelude

import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map

import GI.WebKit2WebExtension.Types
import GI.WebKit2WebExtension.Callbacks
import qualified GI.GObject as GObject

newtype DOMElement = DOMElement (ForeignPtr DOMElement)
foreign import ccall "webkit_dom_element_get_type"
    c_webkit_dom_element_get_type :: IO GType

type instance ParentTypes DOMElement = DOMElementParentTypes
type DOMElementParentTypes = '[DOMNode, DOMObject, GObject.Object, DOMEventTarget]

instance GObject DOMElement where
    gobjectIsInitiallyUnowned _ = False
    gobjectType _ = c_webkit_dom_element_get_type
    

class GObject o => DOMElementK o
instance (GObject o, IsDescendantOf DOMElement o) => DOMElementK o

toDOMElement :: DOMElementK o => o -> IO DOMElement
toDOMElement = unsafeCastTo DOMElement

noDOMElement :: Maybe DOMElement
noDOMElement = Nothing

-- VVV Prop "attributes"
   -- Type: TInterface "WebKit2WebExtension" "DOMNamedNodeMap"
   -- Flags: [PropertyReadable]

getDOMElementAttributes :: (MonadIO m, DOMElementK o) => o -> m DOMNamedNodeMap
getDOMElementAttributes obj = liftIO $ getObjectPropertyObject obj "attributes" DOMNamedNodeMap

data DOMElementAttributesPropertyInfo
instance AttrInfo DOMElementAttributesPropertyInfo where
    type AttrAllowedOps DOMElementAttributesPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMElementAttributesPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMElementAttributesPropertyInfo = DOMElementK
    type AttrGetType DOMElementAttributesPropertyInfo = DOMNamedNodeMap
    type AttrLabel DOMElementAttributesPropertyInfo = "DOMElement::attributes"
    attrGet _ = getDOMElementAttributes
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "child-element-count"
   -- Type: TBasicType TUInt64
   -- Flags: [PropertyReadable]

getDOMElementChildElementCount :: (MonadIO m, DOMElementK o) => o -> m Word64
getDOMElementChildElementCount obj = liftIO $ getObjectPropertyUInt64 obj "child-element-count"

data DOMElementChildElementCountPropertyInfo
instance AttrInfo DOMElementChildElementCountPropertyInfo where
    type AttrAllowedOps DOMElementChildElementCountPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMElementChildElementCountPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMElementChildElementCountPropertyInfo = DOMElementK
    type AttrGetType DOMElementChildElementCountPropertyInfo = Word64
    type AttrLabel DOMElementChildElementCountPropertyInfo = "DOMElement::child-element-count"
    attrGet _ = getDOMElementChildElementCount
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "children"
   -- Type: TInterface "WebKit2WebExtension" "DOMHTMLCollection"
   -- Flags: [PropertyReadable]

getDOMElementChildren :: (MonadIO m, DOMElementK o) => o -> m DOMHTMLCollection
getDOMElementChildren obj = liftIO $ getObjectPropertyObject obj "children" DOMHTMLCollection

data DOMElementChildrenPropertyInfo
instance AttrInfo DOMElementChildrenPropertyInfo where
    type AttrAllowedOps DOMElementChildrenPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMElementChildrenPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMElementChildrenPropertyInfo = DOMElementK
    type AttrGetType DOMElementChildrenPropertyInfo = DOMHTMLCollection
    type AttrLabel DOMElementChildrenPropertyInfo = "DOMElement::children"
    attrGet _ = getDOMElementChildren
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "class-name"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyReadable,PropertyWritable]

getDOMElementClassName :: (MonadIO m, DOMElementK o) => o -> m T.Text
getDOMElementClassName obj = liftIO $ getObjectPropertyString obj "class-name"

setDOMElementClassName :: (MonadIO m, DOMElementK o) => o -> T.Text -> m ()
setDOMElementClassName obj val = liftIO $ setObjectPropertyString obj "class-name" val

constructDOMElementClassName :: T.Text -> IO ([Char], GValue)
constructDOMElementClassName val = constructObjectPropertyString "class-name" val

data DOMElementClassNamePropertyInfo
instance AttrInfo DOMElementClassNamePropertyInfo where
    type AttrAllowedOps DOMElementClassNamePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint DOMElementClassNamePropertyInfo = (~) T.Text
    type AttrBaseTypeConstraint DOMElementClassNamePropertyInfo = DOMElementK
    type AttrGetType DOMElementClassNamePropertyInfo = T.Text
    type AttrLabel DOMElementClassNamePropertyInfo = "DOMElement::class-name"
    attrGet _ = getDOMElementClassName
    attrSet _ = setDOMElementClassName
    attrConstruct _ = constructDOMElementClassName

-- VVV Prop "client-height"
   -- Type: TBasicType TDouble
   -- Flags: [PropertyReadable]

getDOMElementClientHeight :: (MonadIO m, DOMElementK o) => o -> m Double
getDOMElementClientHeight obj = liftIO $ getObjectPropertyDouble obj "client-height"

data DOMElementClientHeightPropertyInfo
instance AttrInfo DOMElementClientHeightPropertyInfo where
    type AttrAllowedOps DOMElementClientHeightPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMElementClientHeightPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMElementClientHeightPropertyInfo = DOMElementK
    type AttrGetType DOMElementClientHeightPropertyInfo = Double
    type AttrLabel DOMElementClientHeightPropertyInfo = "DOMElement::client-height"
    attrGet _ = getDOMElementClientHeight
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "client-left"
   -- Type: TBasicType TDouble
   -- Flags: [PropertyReadable]

getDOMElementClientLeft :: (MonadIO m, DOMElementK o) => o -> m Double
getDOMElementClientLeft obj = liftIO $ getObjectPropertyDouble obj "client-left"

data DOMElementClientLeftPropertyInfo
instance AttrInfo DOMElementClientLeftPropertyInfo where
    type AttrAllowedOps DOMElementClientLeftPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMElementClientLeftPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMElementClientLeftPropertyInfo = DOMElementK
    type AttrGetType DOMElementClientLeftPropertyInfo = Double
    type AttrLabel DOMElementClientLeftPropertyInfo = "DOMElement::client-left"
    attrGet _ = getDOMElementClientLeft
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "client-top"
   -- Type: TBasicType TDouble
   -- Flags: [PropertyReadable]

getDOMElementClientTop :: (MonadIO m, DOMElementK o) => o -> m Double
getDOMElementClientTop obj = liftIO $ getObjectPropertyDouble obj "client-top"

data DOMElementClientTopPropertyInfo
instance AttrInfo DOMElementClientTopPropertyInfo where
    type AttrAllowedOps DOMElementClientTopPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMElementClientTopPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMElementClientTopPropertyInfo = DOMElementK
    type AttrGetType DOMElementClientTopPropertyInfo = Double
    type AttrLabel DOMElementClientTopPropertyInfo = "DOMElement::client-top"
    attrGet _ = getDOMElementClientTop
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "client-width"
   -- Type: TBasicType TDouble
   -- Flags: [PropertyReadable]

getDOMElementClientWidth :: (MonadIO m, DOMElementK o) => o -> m Double
getDOMElementClientWidth obj = liftIO $ getObjectPropertyDouble obj "client-width"

data DOMElementClientWidthPropertyInfo
instance AttrInfo DOMElementClientWidthPropertyInfo where
    type AttrAllowedOps DOMElementClientWidthPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMElementClientWidthPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMElementClientWidthPropertyInfo = DOMElementK
    type AttrGetType DOMElementClientWidthPropertyInfo = Double
    type AttrLabel DOMElementClientWidthPropertyInfo = "DOMElement::client-width"
    attrGet _ = getDOMElementClientWidth
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "first-element-child"
   -- Type: TInterface "WebKit2WebExtension" "DOMElement"
   -- Flags: [PropertyReadable]

getDOMElementFirstElementChild :: (MonadIO m, DOMElementK o) => o -> m DOMElement
getDOMElementFirstElementChild obj = liftIO $ getObjectPropertyObject obj "first-element-child" DOMElement

data DOMElementFirstElementChildPropertyInfo
instance AttrInfo DOMElementFirstElementChildPropertyInfo where
    type AttrAllowedOps DOMElementFirstElementChildPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMElementFirstElementChildPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMElementFirstElementChildPropertyInfo = DOMElementK
    type AttrGetType DOMElementFirstElementChildPropertyInfo = DOMElement
    type AttrLabel DOMElementFirstElementChildPropertyInfo = "DOMElement::first-element-child"
    attrGet _ = getDOMElementFirstElementChild
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "id"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyReadable,PropertyWritable]

getDOMElementId :: (MonadIO m, DOMElementK o) => o -> m T.Text
getDOMElementId obj = liftIO $ getObjectPropertyString obj "id"

setDOMElementId :: (MonadIO m, DOMElementK o) => o -> T.Text -> m ()
setDOMElementId obj val = liftIO $ setObjectPropertyString obj "id" val

constructDOMElementId :: T.Text -> IO ([Char], GValue)
constructDOMElementId val = constructObjectPropertyString "id" val

data DOMElementIdPropertyInfo
instance AttrInfo DOMElementIdPropertyInfo where
    type AttrAllowedOps DOMElementIdPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint DOMElementIdPropertyInfo = (~) T.Text
    type AttrBaseTypeConstraint DOMElementIdPropertyInfo = DOMElementK
    type AttrGetType DOMElementIdPropertyInfo = T.Text
    type AttrLabel DOMElementIdPropertyInfo = "DOMElement::id"
    attrGet _ = getDOMElementId
    attrSet _ = setDOMElementId
    attrConstruct _ = constructDOMElementId

-- VVV Prop "inner-html"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyReadable,PropertyWritable]

getDOMElementInnerHtml :: (MonadIO m, DOMElementK o) => o -> m T.Text
getDOMElementInnerHtml obj = liftIO $ getObjectPropertyString obj "inner-html"

setDOMElementInnerHtml :: (MonadIO m, DOMElementK o) => o -> T.Text -> m ()
setDOMElementInnerHtml obj val = liftIO $ setObjectPropertyString obj "inner-html" val

constructDOMElementInnerHtml :: T.Text -> IO ([Char], GValue)
constructDOMElementInnerHtml val = constructObjectPropertyString "inner-html" val

data DOMElementInnerHtmlPropertyInfo
instance AttrInfo DOMElementInnerHtmlPropertyInfo where
    type AttrAllowedOps DOMElementInnerHtmlPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint DOMElementInnerHtmlPropertyInfo = (~) T.Text
    type AttrBaseTypeConstraint DOMElementInnerHtmlPropertyInfo = DOMElementK
    type AttrGetType DOMElementInnerHtmlPropertyInfo = T.Text
    type AttrLabel DOMElementInnerHtmlPropertyInfo = "DOMElement::inner-html"
    attrGet _ = getDOMElementInnerHtml
    attrSet _ = setDOMElementInnerHtml
    attrConstruct _ = constructDOMElementInnerHtml

-- VVV Prop "last-element-child"
   -- Type: TInterface "WebKit2WebExtension" "DOMElement"
   -- Flags: [PropertyReadable]

getDOMElementLastElementChild :: (MonadIO m, DOMElementK o) => o -> m DOMElement
getDOMElementLastElementChild obj = liftIO $ getObjectPropertyObject obj "last-element-child" DOMElement

data DOMElementLastElementChildPropertyInfo
instance AttrInfo DOMElementLastElementChildPropertyInfo where
    type AttrAllowedOps DOMElementLastElementChildPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMElementLastElementChildPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMElementLastElementChildPropertyInfo = DOMElementK
    type AttrGetType DOMElementLastElementChildPropertyInfo = DOMElement
    type AttrLabel DOMElementLastElementChildPropertyInfo = "DOMElement::last-element-child"
    attrGet _ = getDOMElementLastElementChild
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "next-element-sibling"
   -- Type: TInterface "WebKit2WebExtension" "DOMElement"
   -- Flags: [PropertyReadable]

getDOMElementNextElementSibling :: (MonadIO m, DOMElementK o) => o -> m DOMElement
getDOMElementNextElementSibling obj = liftIO $ getObjectPropertyObject obj "next-element-sibling" DOMElement

data DOMElementNextElementSiblingPropertyInfo
instance AttrInfo DOMElementNextElementSiblingPropertyInfo where
    type AttrAllowedOps DOMElementNextElementSiblingPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMElementNextElementSiblingPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMElementNextElementSiblingPropertyInfo = DOMElementK
    type AttrGetType DOMElementNextElementSiblingPropertyInfo = DOMElement
    type AttrLabel DOMElementNextElementSiblingPropertyInfo = "DOMElement::next-element-sibling"
    attrGet _ = getDOMElementNextElementSibling
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "offset-height"
   -- Type: TBasicType TDouble
   -- Flags: [PropertyReadable]

getDOMElementOffsetHeight :: (MonadIO m, DOMElementK o) => o -> m Double
getDOMElementOffsetHeight obj = liftIO $ getObjectPropertyDouble obj "offset-height"

data DOMElementOffsetHeightPropertyInfo
instance AttrInfo DOMElementOffsetHeightPropertyInfo where
    type AttrAllowedOps DOMElementOffsetHeightPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMElementOffsetHeightPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMElementOffsetHeightPropertyInfo = DOMElementK
    type AttrGetType DOMElementOffsetHeightPropertyInfo = Double
    type AttrLabel DOMElementOffsetHeightPropertyInfo = "DOMElement::offset-height"
    attrGet _ = getDOMElementOffsetHeight
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "offset-left"
   -- Type: TBasicType TDouble
   -- Flags: [PropertyReadable]

getDOMElementOffsetLeft :: (MonadIO m, DOMElementK o) => o -> m Double
getDOMElementOffsetLeft obj = liftIO $ getObjectPropertyDouble obj "offset-left"

data DOMElementOffsetLeftPropertyInfo
instance AttrInfo DOMElementOffsetLeftPropertyInfo where
    type AttrAllowedOps DOMElementOffsetLeftPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMElementOffsetLeftPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMElementOffsetLeftPropertyInfo = DOMElementK
    type AttrGetType DOMElementOffsetLeftPropertyInfo = Double
    type AttrLabel DOMElementOffsetLeftPropertyInfo = "DOMElement::offset-left"
    attrGet _ = getDOMElementOffsetLeft
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "offset-parent"
   -- Type: TInterface "WebKit2WebExtension" "DOMElement"
   -- Flags: [PropertyReadable]

getDOMElementOffsetParent :: (MonadIO m, DOMElementK o) => o -> m DOMElement
getDOMElementOffsetParent obj = liftIO $ getObjectPropertyObject obj "offset-parent" DOMElement

data DOMElementOffsetParentPropertyInfo
instance AttrInfo DOMElementOffsetParentPropertyInfo where
    type AttrAllowedOps DOMElementOffsetParentPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMElementOffsetParentPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMElementOffsetParentPropertyInfo = DOMElementK
    type AttrGetType DOMElementOffsetParentPropertyInfo = DOMElement
    type AttrLabel DOMElementOffsetParentPropertyInfo = "DOMElement::offset-parent"
    attrGet _ = getDOMElementOffsetParent
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "offset-top"
   -- Type: TBasicType TDouble
   -- Flags: [PropertyReadable]

getDOMElementOffsetTop :: (MonadIO m, DOMElementK o) => o -> m Double
getDOMElementOffsetTop obj = liftIO $ getObjectPropertyDouble obj "offset-top"

data DOMElementOffsetTopPropertyInfo
instance AttrInfo DOMElementOffsetTopPropertyInfo where
    type AttrAllowedOps DOMElementOffsetTopPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMElementOffsetTopPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMElementOffsetTopPropertyInfo = DOMElementK
    type AttrGetType DOMElementOffsetTopPropertyInfo = Double
    type AttrLabel DOMElementOffsetTopPropertyInfo = "DOMElement::offset-top"
    attrGet _ = getDOMElementOffsetTop
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "offset-width"
   -- Type: TBasicType TDouble
   -- Flags: [PropertyReadable]

getDOMElementOffsetWidth :: (MonadIO m, DOMElementK o) => o -> m Double
getDOMElementOffsetWidth obj = liftIO $ getObjectPropertyDouble obj "offset-width"

data DOMElementOffsetWidthPropertyInfo
instance AttrInfo DOMElementOffsetWidthPropertyInfo where
    type AttrAllowedOps DOMElementOffsetWidthPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMElementOffsetWidthPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMElementOffsetWidthPropertyInfo = DOMElementK
    type AttrGetType DOMElementOffsetWidthPropertyInfo = Double
    type AttrLabel DOMElementOffsetWidthPropertyInfo = "DOMElement::offset-width"
    attrGet _ = getDOMElementOffsetWidth
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "outer-html"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyReadable,PropertyWritable]

getDOMElementOuterHtml :: (MonadIO m, DOMElementK o) => o -> m T.Text
getDOMElementOuterHtml obj = liftIO $ getObjectPropertyString obj "outer-html"

setDOMElementOuterHtml :: (MonadIO m, DOMElementK o) => o -> T.Text -> m ()
setDOMElementOuterHtml obj val = liftIO $ setObjectPropertyString obj "outer-html" val

constructDOMElementOuterHtml :: T.Text -> IO ([Char], GValue)
constructDOMElementOuterHtml val = constructObjectPropertyString "outer-html" val

data DOMElementOuterHtmlPropertyInfo
instance AttrInfo DOMElementOuterHtmlPropertyInfo where
    type AttrAllowedOps DOMElementOuterHtmlPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint DOMElementOuterHtmlPropertyInfo = (~) T.Text
    type AttrBaseTypeConstraint DOMElementOuterHtmlPropertyInfo = DOMElementK
    type AttrGetType DOMElementOuterHtmlPropertyInfo = T.Text
    type AttrLabel DOMElementOuterHtmlPropertyInfo = "DOMElement::outer-html"
    attrGet _ = getDOMElementOuterHtml
    attrSet _ = setDOMElementOuterHtml
    attrConstruct _ = constructDOMElementOuterHtml

-- VVV Prop "previous-element-sibling"
   -- Type: TInterface "WebKit2WebExtension" "DOMElement"
   -- Flags: [PropertyReadable]

getDOMElementPreviousElementSibling :: (MonadIO m, DOMElementK o) => o -> m DOMElement
getDOMElementPreviousElementSibling obj = liftIO $ getObjectPropertyObject obj "previous-element-sibling" DOMElement

data DOMElementPreviousElementSiblingPropertyInfo
instance AttrInfo DOMElementPreviousElementSiblingPropertyInfo where
    type AttrAllowedOps DOMElementPreviousElementSiblingPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMElementPreviousElementSiblingPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMElementPreviousElementSiblingPropertyInfo = DOMElementK
    type AttrGetType DOMElementPreviousElementSiblingPropertyInfo = DOMElement
    type AttrLabel DOMElementPreviousElementSiblingPropertyInfo = "DOMElement::previous-element-sibling"
    attrGet _ = getDOMElementPreviousElementSibling
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "scroll-height"
   -- Type: TBasicType TInt64
   -- Flags: [PropertyReadable]

getDOMElementScrollHeight :: (MonadIO m, DOMElementK o) => o -> m Int64
getDOMElementScrollHeight obj = liftIO $ getObjectPropertyInt64 obj "scroll-height"

data DOMElementScrollHeightPropertyInfo
instance AttrInfo DOMElementScrollHeightPropertyInfo where
    type AttrAllowedOps DOMElementScrollHeightPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMElementScrollHeightPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMElementScrollHeightPropertyInfo = DOMElementK
    type AttrGetType DOMElementScrollHeightPropertyInfo = Int64
    type AttrLabel DOMElementScrollHeightPropertyInfo = "DOMElement::scroll-height"
    attrGet _ = getDOMElementScrollHeight
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "scroll-left"
   -- Type: TBasicType TInt64
   -- Flags: [PropertyReadable,PropertyWritable]

getDOMElementScrollLeft :: (MonadIO m, DOMElementK o) => o -> m Int64
getDOMElementScrollLeft obj = liftIO $ getObjectPropertyInt64 obj "scroll-left"

setDOMElementScrollLeft :: (MonadIO m, DOMElementK o) => o -> Int64 -> m ()
setDOMElementScrollLeft obj val = liftIO $ setObjectPropertyInt64 obj "scroll-left" val

constructDOMElementScrollLeft :: Int64 -> IO ([Char], GValue)
constructDOMElementScrollLeft val = constructObjectPropertyInt64 "scroll-left" val

data DOMElementScrollLeftPropertyInfo
instance AttrInfo DOMElementScrollLeftPropertyInfo where
    type AttrAllowedOps DOMElementScrollLeftPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint DOMElementScrollLeftPropertyInfo = (~) Int64
    type AttrBaseTypeConstraint DOMElementScrollLeftPropertyInfo = DOMElementK
    type AttrGetType DOMElementScrollLeftPropertyInfo = Int64
    type AttrLabel DOMElementScrollLeftPropertyInfo = "DOMElement::scroll-left"
    attrGet _ = getDOMElementScrollLeft
    attrSet _ = setDOMElementScrollLeft
    attrConstruct _ = constructDOMElementScrollLeft

-- VVV Prop "scroll-top"
   -- Type: TBasicType TInt64
   -- Flags: [PropertyReadable,PropertyWritable]

getDOMElementScrollTop :: (MonadIO m, DOMElementK o) => o -> m Int64
getDOMElementScrollTop obj = liftIO $ getObjectPropertyInt64 obj "scroll-top"

setDOMElementScrollTop :: (MonadIO m, DOMElementK o) => o -> Int64 -> m ()
setDOMElementScrollTop obj val = liftIO $ setObjectPropertyInt64 obj "scroll-top" val

constructDOMElementScrollTop :: Int64 -> IO ([Char], GValue)
constructDOMElementScrollTop val = constructObjectPropertyInt64 "scroll-top" val

data DOMElementScrollTopPropertyInfo
instance AttrInfo DOMElementScrollTopPropertyInfo where
    type AttrAllowedOps DOMElementScrollTopPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint DOMElementScrollTopPropertyInfo = (~) Int64
    type AttrBaseTypeConstraint DOMElementScrollTopPropertyInfo = DOMElementK
    type AttrGetType DOMElementScrollTopPropertyInfo = Int64
    type AttrLabel DOMElementScrollTopPropertyInfo = "DOMElement::scroll-top"
    attrGet _ = getDOMElementScrollTop
    attrSet _ = setDOMElementScrollTop
    attrConstruct _ = constructDOMElementScrollTop

-- VVV Prop "scroll-width"
   -- Type: TBasicType TInt64
   -- Flags: [PropertyReadable]

getDOMElementScrollWidth :: (MonadIO m, DOMElementK o) => o -> m Int64
getDOMElementScrollWidth obj = liftIO $ getObjectPropertyInt64 obj "scroll-width"

data DOMElementScrollWidthPropertyInfo
instance AttrInfo DOMElementScrollWidthPropertyInfo where
    type AttrAllowedOps DOMElementScrollWidthPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMElementScrollWidthPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMElementScrollWidthPropertyInfo = DOMElementK
    type AttrGetType DOMElementScrollWidthPropertyInfo = Int64
    type AttrLabel DOMElementScrollWidthPropertyInfo = "DOMElement::scroll-width"
    attrGet _ = getDOMElementScrollWidth
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "style"
   -- Type: TInterface "WebKit2WebExtension" "DOMCSSStyleDeclaration"
   -- Flags: [PropertyReadable]

getDOMElementStyle :: (MonadIO m, DOMElementK o) => o -> m DOMCSSStyleDeclaration
getDOMElementStyle obj = liftIO $ getObjectPropertyObject obj "style" DOMCSSStyleDeclaration

data DOMElementStylePropertyInfo
instance AttrInfo DOMElementStylePropertyInfo where
    type AttrAllowedOps DOMElementStylePropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMElementStylePropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMElementStylePropertyInfo = DOMElementK
    type AttrGetType DOMElementStylePropertyInfo = DOMCSSStyleDeclaration
    type AttrLabel DOMElementStylePropertyInfo = "DOMElement::style"
    attrGet _ = getDOMElementStyle
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "tag-name"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyReadable]

getDOMElementTagName :: (MonadIO m, DOMElementK o) => o -> m T.Text
getDOMElementTagName obj = liftIO $ getObjectPropertyString obj "tag-name"

data DOMElementTagNamePropertyInfo
instance AttrInfo DOMElementTagNamePropertyInfo where
    type AttrAllowedOps DOMElementTagNamePropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMElementTagNamePropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMElementTagNamePropertyInfo = DOMElementK
    type AttrGetType DOMElementTagNamePropertyInfo = T.Text
    type AttrLabel DOMElementTagNamePropertyInfo = "DOMElement::tag-name"
    attrGet _ = getDOMElementTagName
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "webkit-region-overset"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyReadable]

getDOMElementWebkitRegionOverset :: (MonadIO m, DOMElementK o) => o -> m T.Text
getDOMElementWebkitRegionOverset obj = liftIO $ getObjectPropertyString obj "webkit-region-overset"

data DOMElementWebkitRegionOversetPropertyInfo
instance AttrInfo DOMElementWebkitRegionOversetPropertyInfo where
    type AttrAllowedOps DOMElementWebkitRegionOversetPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMElementWebkitRegionOversetPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMElementWebkitRegionOversetPropertyInfo = DOMElementK
    type AttrGetType DOMElementWebkitRegionOversetPropertyInfo = T.Text
    type AttrLabel DOMElementWebkitRegionOversetPropertyInfo = "DOMElement::webkit-region-overset"
    attrGet _ = getDOMElementWebkitRegionOverset
    attrSet _ = undefined
    attrConstruct _ = undefined

type instance AttributeList DOMElement = DOMElementAttributeList
type DOMElementAttributeList = ('[ '("attributes", DOMElementAttributesPropertyInfo), '("base-uri", DOMNodeBaseUriPropertyInfo), '("child-element-count", DOMElementChildElementCountPropertyInfo), '("child-nodes", DOMNodeChildNodesPropertyInfo), '("children", DOMElementChildrenPropertyInfo), '("class-name", DOMElementClassNamePropertyInfo), '("client-height", DOMElementClientHeightPropertyInfo), '("client-left", DOMElementClientLeftPropertyInfo), '("client-top", DOMElementClientTopPropertyInfo), '("client-width", DOMElementClientWidthPropertyInfo), '("core-object", DOMObjectCoreObjectPropertyInfo), '("first-child", DOMNodeFirstChildPropertyInfo), '("first-element-child", DOMElementFirstElementChildPropertyInfo), '("id", DOMElementIdPropertyInfo), '("inner-html", DOMElementInnerHtmlPropertyInfo), '("last-child", DOMNodeLastChildPropertyInfo), '("last-element-child", DOMElementLastElementChildPropertyInfo), '("local-name", DOMNodeLocalNamePropertyInfo), '("namespace-uri", DOMNodeNamespaceUriPropertyInfo), '("next-element-sibling", DOMElementNextElementSiblingPropertyInfo), '("next-sibling", DOMNodeNextSiblingPropertyInfo), '("node-name", DOMNodeNodeNamePropertyInfo), '("node-type", DOMNodeNodeTypePropertyInfo), '("node-value", DOMNodeNodeValuePropertyInfo), '("offset-height", DOMElementOffsetHeightPropertyInfo), '("offset-left", DOMElementOffsetLeftPropertyInfo), '("offset-parent", DOMElementOffsetParentPropertyInfo), '("offset-top", DOMElementOffsetTopPropertyInfo), '("offset-width", DOMElementOffsetWidthPropertyInfo), '("outer-html", DOMElementOuterHtmlPropertyInfo), '("owner-document", DOMNodeOwnerDocumentPropertyInfo), '("parent-element", DOMNodeParentElementPropertyInfo), '("parent-node", DOMNodeParentNodePropertyInfo), '("prefix", DOMNodePrefixPropertyInfo), '("previous-element-sibling", DOMElementPreviousElementSiblingPropertyInfo), '("previous-sibling", DOMNodePreviousSiblingPropertyInfo), '("scroll-height", DOMElementScrollHeightPropertyInfo), '("scroll-left", DOMElementScrollLeftPropertyInfo), '("scroll-top", DOMElementScrollTopPropertyInfo), '("scroll-width", DOMElementScrollWidthPropertyInfo), '("style", DOMElementStylePropertyInfo), '("tag-name", DOMElementTagNamePropertyInfo), '("text-content", DOMNodeTextContentPropertyInfo), '("webkit-region-overset", DOMElementWebkitRegionOversetPropertyInfo)] :: [(Symbol, *)])

type instance SignalList DOMElement = DOMElementSignalList
type DOMElementSignalList = ('[ '("notify", GObject.ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])

-- method DOMElement::blur
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_element_blur" webkit_dom_element_blur :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit2WebExtension" "DOMElement"
    IO ()


dOMElementBlur ::
    (MonadIO m, DOMElementK a) =>
    a ->                                    -- _obj
    m ()
dOMElementBlur _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    webkit_dom_element_blur _obj'
    touchManagedPtr _obj
    return ()

-- method DOMElement::focus
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_element_focus" webkit_dom_element_focus :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit2WebExtension" "DOMElement"
    IO ()


dOMElementFocus ::
    (MonadIO m, DOMElementK a) =>
    a ->                                    -- _obj
    m ()
dOMElementFocus _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    webkit_dom_element_focus _obj'
    touchManagedPtr _obj
    return ()

-- method DOMElement::get_attribute
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TUTF8
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_element_get_attribute" webkit_dom_element_get_attribute :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit2WebExtension" "DOMElement"
    CString ->                              -- name : TBasicType TUTF8
    IO CString


dOMElementGetAttribute ::
    (MonadIO m, DOMElementK a) =>
    a ->                                    -- _obj
    T.Text ->                               -- name
    m T.Text
dOMElementGetAttribute _obj name = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    name' <- textToCString name
    result <- webkit_dom_element_get_attribute _obj' name'
    checkUnexpectedReturnNULL "webkit_dom_element_get_attribute" result
    result' <- cstringToText result
    freeMem result
    touchManagedPtr _obj
    freeMem name'
    return result'

-- method DOMElement::get_attribute_node
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "WebKit2WebExtension" "DOMAttr"
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_element_get_attribute_node" webkit_dom_element_get_attribute_node :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit2WebExtension" "DOMElement"
    CString ->                              -- name : TBasicType TUTF8
    IO (Ptr DOMAttr)


dOMElementGetAttributeNode ::
    (MonadIO m, DOMElementK a) =>
    a ->                                    -- _obj
    T.Text ->                               -- name
    m DOMAttr
dOMElementGetAttributeNode _obj name = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    name' <- textToCString name
    result <- webkit_dom_element_get_attribute_node _obj' name'
    checkUnexpectedReturnNULL "webkit_dom_element_get_attribute_node" result
    result' <- (newObject DOMAttr) result
    touchManagedPtr _obj
    freeMem name'
    return result'

-- method DOMElement::get_attribute_node_ns
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "namespaceURI", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "localName", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "namespaceURI", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "localName", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "WebKit2WebExtension" "DOMAttr"
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_element_get_attribute_node_ns" webkit_dom_element_get_attribute_node_ns :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit2WebExtension" "DOMElement"
    CString ->                              -- namespaceURI : TBasicType TUTF8
    CString ->                              -- localName : TBasicType TUTF8
    IO (Ptr DOMAttr)


dOMElementGetAttributeNodeNs ::
    (MonadIO m, DOMElementK a) =>
    a ->                                    -- _obj
    T.Text ->                               -- namespaceURI
    T.Text ->                               -- localName
    m DOMAttr
dOMElementGetAttributeNodeNs _obj namespaceURI localName = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    namespaceURI' <- textToCString namespaceURI
    localName' <- textToCString localName
    result <- webkit_dom_element_get_attribute_node_ns _obj' namespaceURI' localName'
    checkUnexpectedReturnNULL "webkit_dom_element_get_attribute_node_ns" result
    result' <- (newObject DOMAttr) result
    touchManagedPtr _obj
    freeMem namespaceURI'
    freeMem localName'
    return result'

-- method DOMElement::get_attribute_ns
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "namespaceURI", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "localName", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "namespaceURI", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "localName", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TUTF8
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_element_get_attribute_ns" webkit_dom_element_get_attribute_ns :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit2WebExtension" "DOMElement"
    CString ->                              -- namespaceURI : TBasicType TUTF8
    CString ->                              -- localName : TBasicType TUTF8
    IO CString


dOMElementGetAttributeNs ::
    (MonadIO m, DOMElementK a) =>
    a ->                                    -- _obj
    T.Text ->                               -- namespaceURI
    T.Text ->                               -- localName
    m T.Text
dOMElementGetAttributeNs _obj namespaceURI localName = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    namespaceURI' <- textToCString namespaceURI
    localName' <- textToCString localName
    result <- webkit_dom_element_get_attribute_ns _obj' namespaceURI' localName'
    checkUnexpectedReturnNULL "webkit_dom_element_get_attribute_ns" result
    result' <- cstringToText result
    freeMem result
    touchManagedPtr _obj
    freeMem namespaceURI'
    freeMem localName'
    return result'

-- method DOMElement::get_attributes
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "WebKit2WebExtension" "DOMNamedNodeMap"
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_element_get_attributes" webkit_dom_element_get_attributes :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit2WebExtension" "DOMElement"
    IO (Ptr DOMNamedNodeMap)


dOMElementGetAttributes ::
    (MonadIO m, DOMElementK a) =>
    a ->                                    -- _obj
    m DOMNamedNodeMap
dOMElementGetAttributes _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_element_get_attributes _obj'
    checkUnexpectedReturnNULL "webkit_dom_element_get_attributes" result
    result' <- (wrapObject DOMNamedNodeMap) result
    touchManagedPtr _obj
    return result'

-- method DOMElement::get_child_element_count
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TUInt64
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_element_get_child_element_count" webkit_dom_element_get_child_element_count :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit2WebExtension" "DOMElement"
    IO Word64


dOMElementGetChildElementCount ::
    (MonadIO m, DOMElementK a) =>
    a ->                                    -- _obj
    m Word64
dOMElementGetChildElementCount _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_element_get_child_element_count _obj'
    touchManagedPtr _obj
    return result

-- method DOMElement::get_children
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "WebKit2WebExtension" "DOMHTMLCollection"
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_element_get_children" webkit_dom_element_get_children :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit2WebExtension" "DOMElement"
    IO (Ptr DOMHTMLCollection)


dOMElementGetChildren ::
    (MonadIO m, DOMElementK a) =>
    a ->                                    -- _obj
    m DOMHTMLCollection
dOMElementGetChildren _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_element_get_children _obj'
    checkUnexpectedReturnNULL "webkit_dom_element_get_children" result
    result' <- (wrapObject DOMHTMLCollection) result
    touchManagedPtr _obj
    return result'

-- method DOMElement::get_class_name
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TUTF8
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_element_get_class_name" webkit_dom_element_get_class_name :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit2WebExtension" "DOMElement"
    IO CString


dOMElementGetClassName ::
    (MonadIO m, DOMElementK a) =>
    a ->                                    -- _obj
    m T.Text
dOMElementGetClassName _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_element_get_class_name _obj'
    checkUnexpectedReturnNULL "webkit_dom_element_get_class_name" result
    result' <- cstringToText result
    freeMem result
    touchManagedPtr _obj
    return result'

-- method DOMElement::get_client_height
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TDouble
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_element_get_client_height" webkit_dom_element_get_client_height :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit2WebExtension" "DOMElement"
    IO CDouble


dOMElementGetClientHeight ::
    (MonadIO m, DOMElementK a) =>
    a ->                                    -- _obj
    m Double
dOMElementGetClientHeight _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_element_get_client_height _obj'
    let result' = realToFrac result
    touchManagedPtr _obj
    return result'

-- method DOMElement::get_client_left
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TDouble
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_element_get_client_left" webkit_dom_element_get_client_left :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit2WebExtension" "DOMElement"
    IO CDouble


dOMElementGetClientLeft ::
    (MonadIO m, DOMElementK a) =>
    a ->                                    -- _obj
    m Double
dOMElementGetClientLeft _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_element_get_client_left _obj'
    let result' = realToFrac result
    touchManagedPtr _obj
    return result'

-- method DOMElement::get_client_top
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TDouble
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_element_get_client_top" webkit_dom_element_get_client_top :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit2WebExtension" "DOMElement"
    IO CDouble


dOMElementGetClientTop ::
    (MonadIO m, DOMElementK a) =>
    a ->                                    -- _obj
    m Double
dOMElementGetClientTop _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_element_get_client_top _obj'
    let result' = realToFrac result
    touchManagedPtr _obj
    return result'

-- method DOMElement::get_client_width
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TDouble
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_element_get_client_width" webkit_dom_element_get_client_width :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit2WebExtension" "DOMElement"
    IO CDouble


dOMElementGetClientWidth ::
    (MonadIO m, DOMElementK a) =>
    a ->                                    -- _obj
    m Double
dOMElementGetClientWidth _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_element_get_client_width _obj'
    let result' = realToFrac result
    touchManagedPtr _obj
    return result'

-- method DOMElement::get_elements_by_class_name
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "WebKit2WebExtension" "DOMNodeList"
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_element_get_elements_by_class_name" webkit_dom_element_get_elements_by_class_name :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit2WebExtension" "DOMElement"
    CString ->                              -- name : TBasicType TUTF8
    IO (Ptr DOMNodeList)


dOMElementGetElementsByClassName ::
    (MonadIO m, DOMElementK a) =>
    a ->                                    -- _obj
    T.Text ->                               -- name
    m DOMNodeList
dOMElementGetElementsByClassName _obj name = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    name' <- textToCString name
    result <- webkit_dom_element_get_elements_by_class_name _obj' name'
    checkUnexpectedReturnNULL "webkit_dom_element_get_elements_by_class_name" result
    result' <- (wrapObject DOMNodeList) result
    touchManagedPtr _obj
    freeMem name'
    return result'

-- method DOMElement::get_elements_by_tag_name
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "WebKit2WebExtension" "DOMNodeList"
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_element_get_elements_by_tag_name" webkit_dom_element_get_elements_by_tag_name :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit2WebExtension" "DOMElement"
    CString ->                              -- name : TBasicType TUTF8
    IO (Ptr DOMNodeList)


dOMElementGetElementsByTagName ::
    (MonadIO m, DOMElementK a) =>
    a ->                                    -- _obj
    T.Text ->                               -- name
    m DOMNodeList
dOMElementGetElementsByTagName _obj name = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    name' <- textToCString name
    result <- webkit_dom_element_get_elements_by_tag_name _obj' name'
    checkUnexpectedReturnNULL "webkit_dom_element_get_elements_by_tag_name" result
    result' <- (wrapObject DOMNodeList) result
    touchManagedPtr _obj
    freeMem name'
    return result'

-- method DOMElement::get_elements_by_tag_name_ns
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "namespaceURI", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "localName", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "namespaceURI", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "localName", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "WebKit2WebExtension" "DOMNodeList"
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_element_get_elements_by_tag_name_ns" webkit_dom_element_get_elements_by_tag_name_ns :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit2WebExtension" "DOMElement"
    CString ->                              -- namespaceURI : TBasicType TUTF8
    CString ->                              -- localName : TBasicType TUTF8
    IO (Ptr DOMNodeList)


dOMElementGetElementsByTagNameNs ::
    (MonadIO m, DOMElementK a) =>
    a ->                                    -- _obj
    T.Text ->                               -- namespaceURI
    T.Text ->                               -- localName
    m DOMNodeList
dOMElementGetElementsByTagNameNs _obj namespaceURI localName = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    namespaceURI' <- textToCString namespaceURI
    localName' <- textToCString localName
    result <- webkit_dom_element_get_elements_by_tag_name_ns _obj' namespaceURI' localName'
    checkUnexpectedReturnNULL "webkit_dom_element_get_elements_by_tag_name_ns" result
    result' <- (wrapObject DOMNodeList) result
    touchManagedPtr _obj
    freeMem namespaceURI'
    freeMem localName'
    return result'

-- method DOMElement::get_first_element_child
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "WebKit2WebExtension" "DOMElement"
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_element_get_first_element_child" webkit_dom_element_get_first_element_child :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit2WebExtension" "DOMElement"
    IO (Ptr DOMElement)


dOMElementGetFirstElementChild ::
    (MonadIO m, DOMElementK a) =>
    a ->                                    -- _obj
    m DOMElement
dOMElementGetFirstElementChild _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_element_get_first_element_child _obj'
    checkUnexpectedReturnNULL "webkit_dom_element_get_first_element_child" result
    result' <- (newObject DOMElement) result
    touchManagedPtr _obj
    return result'

-- method DOMElement::get_id
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TUTF8
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_element_get_id" webkit_dom_element_get_id :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit2WebExtension" "DOMElement"
    IO CString


dOMElementGetId ::
    (MonadIO m, DOMElementK a) =>
    a ->                                    -- _obj
    m T.Text
dOMElementGetId _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_element_get_id _obj'
    checkUnexpectedReturnNULL "webkit_dom_element_get_id" result
    result' <- cstringToText result
    freeMem result
    touchManagedPtr _obj
    return result'

-- method DOMElement::get_inner_html
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TUTF8
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_element_get_inner_html" webkit_dom_element_get_inner_html :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit2WebExtension" "DOMElement"
    IO CString


dOMElementGetInnerHtml ::
    (MonadIO m, DOMElementK a) =>
    a ->                                    -- _obj
    m T.Text
dOMElementGetInnerHtml _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_element_get_inner_html _obj'
    checkUnexpectedReturnNULL "webkit_dom_element_get_inner_html" result
    result' <- cstringToText result
    freeMem result
    touchManagedPtr _obj
    return result'

-- method DOMElement::get_last_element_child
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "WebKit2WebExtension" "DOMElement"
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_element_get_last_element_child" webkit_dom_element_get_last_element_child :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit2WebExtension" "DOMElement"
    IO (Ptr DOMElement)


dOMElementGetLastElementChild ::
    (MonadIO m, DOMElementK a) =>
    a ->                                    -- _obj
    m DOMElement
dOMElementGetLastElementChild _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_element_get_last_element_child _obj'
    checkUnexpectedReturnNULL "webkit_dom_element_get_last_element_child" result
    result' <- (newObject DOMElement) result
    touchManagedPtr _obj
    return result'

-- method DOMElement::get_next_element_sibling
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "WebKit2WebExtension" "DOMElement"
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_element_get_next_element_sibling" webkit_dom_element_get_next_element_sibling :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit2WebExtension" "DOMElement"
    IO (Ptr DOMElement)


dOMElementGetNextElementSibling ::
    (MonadIO m, DOMElementK a) =>
    a ->                                    -- _obj
    m DOMElement
dOMElementGetNextElementSibling _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_element_get_next_element_sibling _obj'
    checkUnexpectedReturnNULL "webkit_dom_element_get_next_element_sibling" result
    result' <- (newObject DOMElement) result
    touchManagedPtr _obj
    return result'

-- method DOMElement::get_offset_height
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TDouble
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_element_get_offset_height" webkit_dom_element_get_offset_height :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit2WebExtension" "DOMElement"
    IO CDouble


dOMElementGetOffsetHeight ::
    (MonadIO m, DOMElementK a) =>
    a ->                                    -- _obj
    m Double
dOMElementGetOffsetHeight _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_element_get_offset_height _obj'
    let result' = realToFrac result
    touchManagedPtr _obj
    return result'

-- method DOMElement::get_offset_left
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TDouble
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_element_get_offset_left" webkit_dom_element_get_offset_left :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit2WebExtension" "DOMElement"
    IO CDouble


dOMElementGetOffsetLeft ::
    (MonadIO m, DOMElementK a) =>
    a ->                                    -- _obj
    m Double
dOMElementGetOffsetLeft _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_element_get_offset_left _obj'
    let result' = realToFrac result
    touchManagedPtr _obj
    return result'

-- method DOMElement::get_offset_parent
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "WebKit2WebExtension" "DOMElement"
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_element_get_offset_parent" webkit_dom_element_get_offset_parent :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit2WebExtension" "DOMElement"
    IO (Ptr DOMElement)


dOMElementGetOffsetParent ::
    (MonadIO m, DOMElementK a) =>
    a ->                                    -- _obj
    m DOMElement
dOMElementGetOffsetParent _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_element_get_offset_parent _obj'
    checkUnexpectedReturnNULL "webkit_dom_element_get_offset_parent" result
    result' <- (newObject DOMElement) result
    touchManagedPtr _obj
    return result'

-- method DOMElement::get_offset_top
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TDouble
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_element_get_offset_top" webkit_dom_element_get_offset_top :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit2WebExtension" "DOMElement"
    IO CDouble


dOMElementGetOffsetTop ::
    (MonadIO m, DOMElementK a) =>
    a ->                                    -- _obj
    m Double
dOMElementGetOffsetTop _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_element_get_offset_top _obj'
    let result' = realToFrac result
    touchManagedPtr _obj
    return result'

-- method DOMElement::get_offset_width
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TDouble
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_element_get_offset_width" webkit_dom_element_get_offset_width :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit2WebExtension" "DOMElement"
    IO CDouble


dOMElementGetOffsetWidth ::
    (MonadIO m, DOMElementK a) =>
    a ->                                    -- _obj
    m Double
dOMElementGetOffsetWidth _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_element_get_offset_width _obj'
    let result' = realToFrac result
    touchManagedPtr _obj
    return result'

-- method DOMElement::get_outer_html
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TUTF8
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_element_get_outer_html" webkit_dom_element_get_outer_html :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit2WebExtension" "DOMElement"
    IO CString


dOMElementGetOuterHtml ::
    (MonadIO m, DOMElementK a) =>
    a ->                                    -- _obj
    m T.Text
dOMElementGetOuterHtml _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_element_get_outer_html _obj'
    checkUnexpectedReturnNULL "webkit_dom_element_get_outer_html" result
    result' <- cstringToText result
    freeMem result
    touchManagedPtr _obj
    return result'

-- method DOMElement::get_previous_element_sibling
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "WebKit2WebExtension" "DOMElement"
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_element_get_previous_element_sibling" webkit_dom_element_get_previous_element_sibling :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit2WebExtension" "DOMElement"
    IO (Ptr DOMElement)


dOMElementGetPreviousElementSibling ::
    (MonadIO m, DOMElementK a) =>
    a ->                                    -- _obj
    m DOMElement
dOMElementGetPreviousElementSibling _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_element_get_previous_element_sibling _obj'
    checkUnexpectedReturnNULL "webkit_dom_element_get_previous_element_sibling" result
    result' <- (newObject DOMElement) result
    touchManagedPtr _obj
    return result'

-- method DOMElement::get_scroll_height
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TInt64
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_element_get_scroll_height" webkit_dom_element_get_scroll_height :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit2WebExtension" "DOMElement"
    IO Int64


dOMElementGetScrollHeight ::
    (MonadIO m, DOMElementK a) =>
    a ->                                    -- _obj
    m Int64
dOMElementGetScrollHeight _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_element_get_scroll_height _obj'
    touchManagedPtr _obj
    return result

-- method DOMElement::get_scroll_left
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TInt64
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_element_get_scroll_left" webkit_dom_element_get_scroll_left :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit2WebExtension" "DOMElement"
    IO Int64


dOMElementGetScrollLeft ::
    (MonadIO m, DOMElementK a) =>
    a ->                                    -- _obj
    m Int64
dOMElementGetScrollLeft _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_element_get_scroll_left _obj'
    touchManagedPtr _obj
    return result

-- method DOMElement::get_scroll_top
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TInt64
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_element_get_scroll_top" webkit_dom_element_get_scroll_top :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit2WebExtension" "DOMElement"
    IO Int64


dOMElementGetScrollTop ::
    (MonadIO m, DOMElementK a) =>
    a ->                                    -- _obj
    m Int64
dOMElementGetScrollTop _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_element_get_scroll_top _obj'
    touchManagedPtr _obj
    return result

-- method DOMElement::get_scroll_width
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TInt64
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_element_get_scroll_width" webkit_dom_element_get_scroll_width :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit2WebExtension" "DOMElement"
    IO Int64


dOMElementGetScrollWidth ::
    (MonadIO m, DOMElementK a) =>
    a ->                                    -- _obj
    m Int64
dOMElementGetScrollWidth _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_element_get_scroll_width _obj'
    touchManagedPtr _obj
    return result

-- method DOMElement::get_style
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "WebKit2WebExtension" "DOMCSSStyleDeclaration"
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_element_get_style" webkit_dom_element_get_style :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit2WebExtension" "DOMElement"
    IO (Ptr DOMCSSStyleDeclaration)


dOMElementGetStyle ::
    (MonadIO m, DOMElementK a) =>
    a ->                                    -- _obj
    m DOMCSSStyleDeclaration
dOMElementGetStyle _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_element_get_style _obj'
    checkUnexpectedReturnNULL "webkit_dom_element_get_style" result
    result' <- (wrapObject DOMCSSStyleDeclaration) result
    touchManagedPtr _obj
    return result'

-- method DOMElement::get_tag_name
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TUTF8
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_element_get_tag_name" webkit_dom_element_get_tag_name :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit2WebExtension" "DOMElement"
    IO CString


dOMElementGetTagName ::
    (MonadIO m, DOMElementK a) =>
    a ->                                    -- _obj
    m T.Text
dOMElementGetTagName _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_element_get_tag_name _obj'
    checkUnexpectedReturnNULL "webkit_dom_element_get_tag_name" result
    result' <- cstringToText result
    freeMem result
    touchManagedPtr _obj
    return result'

-- method DOMElement::has_attribute
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_element_has_attribute" webkit_dom_element_has_attribute :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit2WebExtension" "DOMElement"
    CString ->                              -- name : TBasicType TUTF8
    IO CInt


dOMElementHasAttribute ::
    (MonadIO m, DOMElementK a) =>
    a ->                                    -- _obj
    T.Text ->                               -- name
    m Bool
dOMElementHasAttribute _obj name = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    name' <- textToCString name
    result <- webkit_dom_element_has_attribute _obj' name'
    let result' = (/= 0) result
    touchManagedPtr _obj
    freeMem name'
    return result'

-- method DOMElement::has_attribute_ns
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "namespaceURI", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "localName", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "namespaceURI", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "localName", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_element_has_attribute_ns" webkit_dom_element_has_attribute_ns :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit2WebExtension" "DOMElement"
    CString ->                              -- namespaceURI : TBasicType TUTF8
    CString ->                              -- localName : TBasicType TUTF8
    IO CInt


dOMElementHasAttributeNs ::
    (MonadIO m, DOMElementK a) =>
    a ->                                    -- _obj
    T.Text ->                               -- namespaceURI
    T.Text ->                               -- localName
    m Bool
dOMElementHasAttributeNs _obj namespaceURI localName = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    namespaceURI' <- textToCString namespaceURI
    localName' <- textToCString localName
    result <- webkit_dom_element_has_attribute_ns _obj' namespaceURI' localName'
    let result' = (/= 0) result
    touchManagedPtr _obj
    freeMem namespaceURI'
    freeMem localName'
    return result'

-- method DOMElement::has_attributes
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_element_has_attributes" webkit_dom_element_has_attributes :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit2WebExtension" "DOMElement"
    IO CInt


dOMElementHasAttributes ::
    (MonadIO m, DOMElementK a) =>
    a ->                                    -- _obj
    m Bool
dOMElementHasAttributes _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_element_has_attributes _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

-- method DOMElement::query_selector
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "selectors", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "selectors", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "WebKit2WebExtension" "DOMElement"
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_element_query_selector" webkit_dom_element_query_selector :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit2WebExtension" "DOMElement"
    CString ->                              -- selectors : TBasicType TUTF8
    Ptr (Ptr GError) ->                     -- error
    IO (Ptr DOMElement)


dOMElementQuerySelector ::
    (MonadIO m, DOMElementK a) =>
    a ->                                    -- _obj
    T.Text ->                               -- selectors
    m DOMElement
dOMElementQuerySelector _obj selectors = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    selectors' <- textToCString selectors
    onException (do
        result <- propagateGError $ webkit_dom_element_query_selector _obj' selectors'
        checkUnexpectedReturnNULL "webkit_dom_element_query_selector" result
        result' <- (newObject DOMElement) result
        touchManagedPtr _obj
        freeMem selectors'
        return result'
     ) (do
        freeMem selectors'
     )

-- method DOMElement::query_selector_all
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "selectors", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "selectors", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "WebKit2WebExtension" "DOMNodeList"
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_element_query_selector_all" webkit_dom_element_query_selector_all :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit2WebExtension" "DOMElement"
    CString ->                              -- selectors : TBasicType TUTF8
    Ptr (Ptr GError) ->                     -- error
    IO (Ptr DOMNodeList)


dOMElementQuerySelectorAll ::
    (MonadIO m, DOMElementK a) =>
    a ->                                    -- _obj
    T.Text ->                               -- selectors
    m DOMNodeList
dOMElementQuerySelectorAll _obj selectors = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    selectors' <- textToCString selectors
    onException (do
        result <- propagateGError $ webkit_dom_element_query_selector_all _obj' selectors'
        checkUnexpectedReturnNULL "webkit_dom_element_query_selector_all" result
        result' <- (wrapObject DOMNodeList) result
        touchManagedPtr _obj
        freeMem selectors'
        return result'
     ) (do
        freeMem selectors'
     )

-- method DOMElement::remove_attribute
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_element_remove_attribute" webkit_dom_element_remove_attribute :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit2WebExtension" "DOMElement"
    CString ->                              -- name : TBasicType TUTF8
    IO ()


dOMElementRemoveAttribute ::
    (MonadIO m, DOMElementK a) =>
    a ->                                    -- _obj
    T.Text ->                               -- name
    m ()
dOMElementRemoveAttribute _obj name = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    name' <- textToCString name
    webkit_dom_element_remove_attribute _obj' name'
    touchManagedPtr _obj
    freeMem name'
    return ()

-- method DOMElement::remove_attribute_node
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "oldAttr", argType = TInterface "WebKit2WebExtension" "DOMAttr", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "oldAttr", argType = TInterface "WebKit2WebExtension" "DOMAttr", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "WebKit2WebExtension" "DOMAttr"
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_element_remove_attribute_node" webkit_dom_element_remove_attribute_node :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit2WebExtension" "DOMElement"
    Ptr DOMAttr ->                          -- oldAttr : TInterface "WebKit2WebExtension" "DOMAttr"
    Ptr (Ptr GError) ->                     -- error
    IO (Ptr DOMAttr)


dOMElementRemoveAttributeNode ::
    (MonadIO m, DOMElementK a, DOMAttrK b) =>
    a ->                                    -- _obj
    b ->                                    -- oldAttr
    m DOMAttr
dOMElementRemoveAttributeNode _obj oldAttr = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let oldAttr' = unsafeManagedPtrCastPtr oldAttr
    onException (do
        result <- propagateGError $ webkit_dom_element_remove_attribute_node _obj' oldAttr'
        checkUnexpectedReturnNULL "webkit_dom_element_remove_attribute_node" result
        result' <- (newObject DOMAttr) result
        touchManagedPtr _obj
        touchManagedPtr oldAttr
        return result'
     ) (do
        return ()
     )

-- method DOMElement::remove_attribute_ns
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "namespaceURI", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "localName", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "namespaceURI", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "localName", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_element_remove_attribute_ns" webkit_dom_element_remove_attribute_ns :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit2WebExtension" "DOMElement"
    CString ->                              -- namespaceURI : TBasicType TUTF8
    CString ->                              -- localName : TBasicType TUTF8
    IO ()


dOMElementRemoveAttributeNs ::
    (MonadIO m, DOMElementK a) =>
    a ->                                    -- _obj
    T.Text ->                               -- namespaceURI
    T.Text ->                               -- localName
    m ()
dOMElementRemoveAttributeNs _obj namespaceURI localName = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    namespaceURI' <- textToCString namespaceURI
    localName' <- textToCString localName
    webkit_dom_element_remove_attribute_ns _obj' namespaceURI' localName'
    touchManagedPtr _obj
    freeMem namespaceURI'
    freeMem localName'
    return ()

-- method DOMElement::scroll_by_lines
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "lines", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "lines", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_element_scroll_by_lines" webkit_dom_element_scroll_by_lines :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit2WebExtension" "DOMElement"
    Int64 ->                                -- lines : TBasicType TInt64
    IO ()


dOMElementScrollByLines ::
    (MonadIO m, DOMElementK a) =>
    a ->                                    -- _obj
    Int64 ->                                -- lines
    m ()
dOMElementScrollByLines _obj lines = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    webkit_dom_element_scroll_by_lines _obj' lines
    touchManagedPtr _obj
    return ()

-- method DOMElement::scroll_by_pages
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pages", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pages", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_element_scroll_by_pages" webkit_dom_element_scroll_by_pages :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit2WebExtension" "DOMElement"
    Int64 ->                                -- pages : TBasicType TInt64
    IO ()


dOMElementScrollByPages ::
    (MonadIO m, DOMElementK a) =>
    a ->                                    -- _obj
    Int64 ->                                -- pages
    m ()
dOMElementScrollByPages _obj pages = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    webkit_dom_element_scroll_by_pages _obj' pages
    touchManagedPtr _obj
    return ()

-- method DOMElement::scroll_into_view
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "alignWithTop", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "alignWithTop", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_element_scroll_into_view" webkit_dom_element_scroll_into_view :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit2WebExtension" "DOMElement"
    CInt ->                                 -- alignWithTop : TBasicType TBoolean
    IO ()


dOMElementScrollIntoView ::
    (MonadIO m, DOMElementK a) =>
    a ->                                    -- _obj
    Bool ->                                 -- alignWithTop
    m ()
dOMElementScrollIntoView _obj alignWithTop = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let alignWithTop' = (fromIntegral . fromEnum) alignWithTop
    webkit_dom_element_scroll_into_view _obj' alignWithTop'
    touchManagedPtr _obj
    return ()

-- method DOMElement::scroll_into_view_if_needed
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "centerIfNeeded", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "centerIfNeeded", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_element_scroll_into_view_if_needed" webkit_dom_element_scroll_into_view_if_needed :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit2WebExtension" "DOMElement"
    CInt ->                                 -- centerIfNeeded : TBasicType TBoolean
    IO ()


dOMElementScrollIntoViewIfNeeded ::
    (MonadIO m, DOMElementK a) =>
    a ->                                    -- _obj
    Bool ->                                 -- centerIfNeeded
    m ()
dOMElementScrollIntoViewIfNeeded _obj centerIfNeeded = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let centerIfNeeded' = (fromIntegral . fromEnum) centerIfNeeded
    webkit_dom_element_scroll_into_view_if_needed _obj' centerIfNeeded'
    touchManagedPtr _obj
    return ()

-- method DOMElement::set_attribute
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_element_set_attribute" webkit_dom_element_set_attribute :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit2WebExtension" "DOMElement"
    CString ->                              -- name : TBasicType TUTF8
    CString ->                              -- value : TBasicType TUTF8
    Ptr (Ptr GError) ->                     -- error
    IO ()


dOMElementSetAttribute ::
    (MonadIO m, DOMElementK a) =>
    a ->                                    -- _obj
    T.Text ->                               -- name
    T.Text ->                               -- value
    m ()
dOMElementSetAttribute _obj name value = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    name' <- textToCString name
    value' <- textToCString value
    onException (do
        propagateGError $ webkit_dom_element_set_attribute _obj' name' value'
        touchManagedPtr _obj
        freeMem name'
        freeMem value'
        return ()
     ) (do
        freeMem name'
        freeMem value'
     )

-- method DOMElement::set_attribute_node
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "newAttr", argType = TInterface "WebKit2WebExtension" "DOMAttr", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "newAttr", argType = TInterface "WebKit2WebExtension" "DOMAttr", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "WebKit2WebExtension" "DOMAttr"
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_element_set_attribute_node" webkit_dom_element_set_attribute_node :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit2WebExtension" "DOMElement"
    Ptr DOMAttr ->                          -- newAttr : TInterface "WebKit2WebExtension" "DOMAttr"
    Ptr (Ptr GError) ->                     -- error
    IO (Ptr DOMAttr)


dOMElementSetAttributeNode ::
    (MonadIO m, DOMElementK a, DOMAttrK b) =>
    a ->                                    -- _obj
    b ->                                    -- newAttr
    m DOMAttr
dOMElementSetAttributeNode _obj newAttr = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let newAttr' = unsafeManagedPtrCastPtr newAttr
    onException (do
        result <- propagateGError $ webkit_dom_element_set_attribute_node _obj' newAttr'
        checkUnexpectedReturnNULL "webkit_dom_element_set_attribute_node" result
        result' <- (newObject DOMAttr) result
        touchManagedPtr _obj
        touchManagedPtr newAttr
        return result'
     ) (do
        return ()
     )

-- method DOMElement::set_attribute_node_ns
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "newAttr", argType = TInterface "WebKit2WebExtension" "DOMAttr", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "newAttr", argType = TInterface "WebKit2WebExtension" "DOMAttr", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "WebKit2WebExtension" "DOMAttr"
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_element_set_attribute_node_ns" webkit_dom_element_set_attribute_node_ns :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit2WebExtension" "DOMElement"
    Ptr DOMAttr ->                          -- newAttr : TInterface "WebKit2WebExtension" "DOMAttr"
    Ptr (Ptr GError) ->                     -- error
    IO (Ptr DOMAttr)


dOMElementSetAttributeNodeNs ::
    (MonadIO m, DOMElementK a, DOMAttrK b) =>
    a ->                                    -- _obj
    b ->                                    -- newAttr
    m DOMAttr
dOMElementSetAttributeNodeNs _obj newAttr = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let newAttr' = unsafeManagedPtrCastPtr newAttr
    onException (do
        result <- propagateGError $ webkit_dom_element_set_attribute_node_ns _obj' newAttr'
        checkUnexpectedReturnNULL "webkit_dom_element_set_attribute_node_ns" result
        result' <- (newObject DOMAttr) result
        touchManagedPtr _obj
        touchManagedPtr newAttr
        return result'
     ) (do
        return ()
     )

-- method DOMElement::set_attribute_ns
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "namespaceURI", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "qualifiedName", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "namespaceURI", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "qualifiedName", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_element_set_attribute_ns" webkit_dom_element_set_attribute_ns :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit2WebExtension" "DOMElement"
    CString ->                              -- namespaceURI : TBasicType TUTF8
    CString ->                              -- qualifiedName : TBasicType TUTF8
    CString ->                              -- value : TBasicType TUTF8
    Ptr (Ptr GError) ->                     -- error
    IO ()


dOMElementSetAttributeNs ::
    (MonadIO m, DOMElementK a) =>
    a ->                                    -- _obj
    Maybe (T.Text) ->                       -- namespaceURI
    T.Text ->                               -- qualifiedName
    T.Text ->                               -- value
    m ()
dOMElementSetAttributeNs _obj namespaceURI qualifiedName value = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    maybeNamespaceURI <- case namespaceURI of
        Nothing -> return nullPtr
        Just jNamespaceURI -> do
            jNamespaceURI' <- textToCString jNamespaceURI
            return jNamespaceURI'
    qualifiedName' <- textToCString qualifiedName
    value' <- textToCString value
    onException (do
        propagateGError $ webkit_dom_element_set_attribute_ns _obj' maybeNamespaceURI qualifiedName' value'
        touchManagedPtr _obj
        freeMem maybeNamespaceURI
        freeMem qualifiedName'
        freeMem value'
        return ()
     ) (do
        freeMem maybeNamespaceURI
        freeMem qualifiedName'
        freeMem value'
     )

-- method DOMElement::set_class_name
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_element_set_class_name" webkit_dom_element_set_class_name :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit2WebExtension" "DOMElement"
    CString ->                              -- value : TBasicType TUTF8
    IO ()


dOMElementSetClassName ::
    (MonadIO m, DOMElementK a) =>
    a ->                                    -- _obj
    T.Text ->                               -- value
    m ()
dOMElementSetClassName _obj value = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    value' <- textToCString value
    webkit_dom_element_set_class_name _obj' value'
    touchManagedPtr _obj
    freeMem value'
    return ()

-- method DOMElement::set_id
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_element_set_id" webkit_dom_element_set_id :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit2WebExtension" "DOMElement"
    CString ->                              -- value : TBasicType TUTF8
    IO ()


dOMElementSetId ::
    (MonadIO m, DOMElementK a) =>
    a ->                                    -- _obj
    T.Text ->                               -- value
    m ()
dOMElementSetId _obj value = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    value' <- textToCString value
    webkit_dom_element_set_id _obj' value'
    touchManagedPtr _obj
    freeMem value'
    return ()

-- method DOMElement::set_inner_html
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_element_set_inner_html" webkit_dom_element_set_inner_html :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit2WebExtension" "DOMElement"
    CString ->                              -- value : TBasicType TUTF8
    Ptr (Ptr GError) ->                     -- error
    IO ()


dOMElementSetInnerHtml ::
    (MonadIO m, DOMElementK a) =>
    a ->                                    -- _obj
    T.Text ->                               -- value
    m ()
dOMElementSetInnerHtml _obj value = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    value' <- textToCString value
    onException (do
        propagateGError $ webkit_dom_element_set_inner_html _obj' value'
        touchManagedPtr _obj
        freeMem value'
        return ()
     ) (do
        freeMem value'
     )

-- method DOMElement::set_outer_html
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_element_set_outer_html" webkit_dom_element_set_outer_html :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit2WebExtension" "DOMElement"
    CString ->                              -- value : TBasicType TUTF8
    Ptr (Ptr GError) ->                     -- error
    IO ()


dOMElementSetOuterHtml ::
    (MonadIO m, DOMElementK a) =>
    a ->                                    -- _obj
    T.Text ->                               -- value
    m ()
dOMElementSetOuterHtml _obj value = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    value' <- textToCString value
    onException (do
        propagateGError $ webkit_dom_element_set_outer_html _obj' value'
        touchManagedPtr _obj
        freeMem value'
        return ()
     ) (do
        freeMem value'
     )

-- method DOMElement::set_scroll_left
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_element_set_scroll_left" webkit_dom_element_set_scroll_left :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit2WebExtension" "DOMElement"
    Int64 ->                                -- value : TBasicType TInt64
    IO ()


dOMElementSetScrollLeft ::
    (MonadIO m, DOMElementK a) =>
    a ->                                    -- _obj
    Int64 ->                                -- value
    m ()
dOMElementSetScrollLeft _obj value = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    webkit_dom_element_set_scroll_left _obj' value
    touchManagedPtr _obj
    return ()

-- method DOMElement::set_scroll_top
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_element_set_scroll_top" webkit_dom_element_set_scroll_top :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit2WebExtension" "DOMElement"
    Int64 ->                                -- value : TBasicType TInt64
    IO ()


dOMElementSetScrollTop ::
    (MonadIO m, DOMElementK a) =>
    a ->                                    -- _obj
    Int64 ->                                -- value
    m ()
dOMElementSetScrollTop _obj value = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    webkit_dom_element_set_scroll_top _obj' value
    touchManagedPtr _obj
    return ()