{- |
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.WebKit.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          ,


-- ** dOMElementGetClassList
    dOMElementGetClassList                  ,


-- ** dOMElementGetClassName
    dOMElementGetClassName                  ,


-- ** dOMElementGetClientHeight
    dOMElementGetClientHeight               ,


-- ** dOMElementGetClientLeft
    dOMElementGetClientLeft                 ,


-- ** dOMElementGetClientTop
    dOMElementGetClientTop                  ,


-- ** dOMElementGetClientWidth
    dOMElementGetClientWidth                ,


-- ** dOMElementGetElementsByClassName
    dOMElementGetElementsByClassName        ,


-- ** dOMElementGetElementsByTagName
    dOMElementGetElementsByTagName          ,


-- ** dOMElementGetElementsByTagNameNs
    dOMElementGetElementsByTagNameNs        ,


-- ** dOMElementGetFirstElementChild
    dOMElementGetFirstElementChild          ,


-- ** dOMElementGetId
    dOMElementGetId                         ,


-- ** dOMElementGetLastElementChild
    dOMElementGetLastElementChild           ,


-- ** dOMElementGetNextElementSibling
    dOMElementGetNextElementSibling         ,


-- ** dOMElementGetOffsetHeight
    dOMElementGetOffsetHeight               ,


-- ** dOMElementGetOffsetLeft
    dOMElementGetOffsetLeft                 ,


-- ** dOMElementGetOffsetParent
    dOMElementGetOffsetParent               ,


-- ** dOMElementGetOffsetTop
    dOMElementGetOffsetTop                  ,


-- ** dOMElementGetOffsetWidth
    dOMElementGetOffsetWidth                ,


-- ** dOMElementGetPreviousElementSibling
    dOMElementGetPreviousElementSibling     ,


-- ** dOMElementGetScrollHeight
    dOMElementGetScrollHeight               ,


-- ** dOMElementGetScrollLeft
    dOMElementGetScrollLeft                 ,


-- ** dOMElementGetScrollTop
    dOMElementGetScrollTop                  ,


-- ** dOMElementGetScrollWidth
    dOMElementGetScrollWidth                ,


-- ** dOMElementGetStyle
    dOMElementGetStyle                      ,


-- ** dOMElementGetTagName
    dOMElementGetTagName                    ,


-- ** dOMElementGetWebkitRegionOverflow
    dOMElementGetWebkitRegionOverflow       ,


-- ** dOMElementGetWebkitRegionOverset
    dOMElementGetWebkitRegionOverset        ,


-- ** dOMElementHasAttribute
    dOMElementHasAttribute                  ,


-- ** dOMElementHasAttributeNs
    dOMElementHasAttributeNs                ,


-- ** dOMElementHasAttributes
    dOMElementHasAttributes                 ,


-- ** dOMElementQuerySelector
    dOMElementQuerySelector                 ,


-- ** dOMElementQuerySelectorAll
    dOMElementQuerySelectorAll              ,


-- ** dOMElementRemove
    dOMElementRemove                        ,


-- ** 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                         ,


-- ** dOMElementSetScrollLeft
    dOMElementSetScrollLeft                 ,


-- ** dOMElementSetScrollTop
    dOMElementSetScrollTop                  ,


-- ** dOMElementWebkitMatchesSelector
    dOMElementWebkitMatchesSelector         ,


-- ** dOMElementWebkitRequestFullScreen
    dOMElementWebkitRequestFullScreen       ,


-- ** dOMElementWebkitRequestFullscreen
    dOMElementWebkitRequestFullscreen       ,


-- ** dOMElementWebkitRequestPointerLock
    dOMElementWebkitRequestPointerLock      ,




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


-- ** ChildElementCount
    DOMElementChildElementCountPropertyInfo ,
    getDOMElementChildElementCount          ,


-- ** ClassList
    DOMElementClassListPropertyInfo         ,
    getDOMElementClassList                  ,


-- ** 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                         ,


-- ** LastElementChild
    DOMElementLastElementChildPropertyInfo  ,
    getDOMElementLastElementChild           ,


-- ** NextElementSibling
    DOMElementNextElementSiblingPropertyInfo,
    getDOMElementNextElementSibling         ,


-- ** OffsetHeight
    DOMElementOffsetHeightPropertyInfo      ,
    getDOMElementOffsetHeight               ,


-- ** OffsetLeft
    DOMElementOffsetLeftPropertyInfo        ,
    getDOMElementOffsetLeft                 ,


-- ** OffsetParent
    DOMElementOffsetParentPropertyInfo      ,
    getDOMElementOffsetParent               ,


-- ** OffsetTop
    DOMElementOffsetTopPropertyInfo         ,
    getDOMElementOffsetTop                  ,


-- ** OffsetWidth
    DOMElementOffsetWidthPropertyInfo       ,
    getDOMElementOffsetWidth                ,


-- ** 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.WebKit.Types
import GI.WebKit.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 "WebKit" "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 "class-list"
   -- Type: TInterface "WebKit" "DOMDOMTokenList"
   -- Flags: [PropertyReadable]

getDOMElementClassList :: (MonadIO m, DOMElementK o) => o -> m DOMDOMTokenList
getDOMElementClassList obj = liftIO $ getObjectPropertyObject obj "class-list" DOMDOMTokenList

data DOMElementClassListPropertyInfo
instance AttrInfo DOMElementClassListPropertyInfo where
    type AttrAllowedOps DOMElementClassListPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMElementClassListPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMElementClassListPropertyInfo = DOMElementK
    type AttrGetType DOMElementClassListPropertyInfo = DOMDOMTokenList
    type AttrLabel DOMElementClassListPropertyInfo = "DOMElement::class-list"
    attrGet _ = getDOMElementClassList
    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 TInt64
   -- Flags: [PropertyReadable]

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

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

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

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

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

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

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

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

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

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

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

-- VVV Prop "first-element-child"
   -- Type: TInterface "WebKit" "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 "last-element-child"
   -- Type: TInterface "WebKit" "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 "WebKit" "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 TInt64
   -- Flags: [PropertyReadable]

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

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

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

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

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

-- VVV Prop "offset-parent"
   -- Type: TInterface "WebKit" "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 TInt64
   -- Flags: [PropertyReadable]

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

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

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

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

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

-- VVV Prop "previous-element-sibling"
   -- Type: TInterface "WebKit" "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 "WebKit" "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), '("class-list", DOMElementClassListPropertyInfo), '("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), '("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), '("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 "WebKit" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit" "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 "WebKit" "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 "WebKit" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit" "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 "WebKit" "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 "WebKit" "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 "WebKit" "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 "WebKit" "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 "WebKit" "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 "WebKit" "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 "WebKit" "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 "WebKit" "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 "WebKit" "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 "WebKit" "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 "WebKit" "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 "WebKit" "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 "WebKit" "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 "WebKit" "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 "WebKit" "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 "WebKit" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "WebKit" "DOMNamedNodeMap"
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_element_get_attributes" webkit_dom_element_get_attributes :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit" "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 "WebKit" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit" "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 "WebKit" "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_class_list
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "WebKit" "DOMDOMTokenList"
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_element_get_class_list" webkit_dom_element_get_class_list :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit" "DOMElement"
    IO (Ptr DOMDOMTokenList)


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

-- method DOMElement::get_class_name
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit" "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 "WebKit" "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 "WebKit" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit" "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_client_height" webkit_dom_element_get_client_height :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit" "DOMElement"
    IO Int64


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

-- method DOMElement::get_client_left
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit" "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_client_left" webkit_dom_element_get_client_left :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit" "DOMElement"
    IO Int64


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

-- method DOMElement::get_client_top
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit" "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_client_top" webkit_dom_element_get_client_top :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit" "DOMElement"
    IO Int64


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

-- method DOMElement::get_client_width
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit" "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_client_width" webkit_dom_element_get_client_width :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit" "DOMElement"
    IO Int64


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

-- method DOMElement::get_elements_by_class_name
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit" "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 "WebKit" "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 "WebKit" "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 "WebKit" "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 "WebKit" "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 "WebKit" "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 "WebKit" "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 "WebKit" "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 "WebKit" "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 "WebKit" "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 "WebKit" "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 "WebKit" "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 "WebKit" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "WebKit" "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 "WebKit" "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 "WebKit" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit" "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 "WebKit" "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_last_element_child
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "WebKit" "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 "WebKit" "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 "WebKit" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "WebKit" "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 "WebKit" "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 "WebKit" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit" "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_offset_height" webkit_dom_element_get_offset_height :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit" "DOMElement"
    IO Int64


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

-- method DOMElement::get_offset_left
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit" "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_offset_left" webkit_dom_element_get_offset_left :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit" "DOMElement"
    IO Int64


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

-- method DOMElement::get_offset_parent
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "WebKit" "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 "WebKit" "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 "WebKit" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit" "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_offset_top" webkit_dom_element_get_offset_top :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit" "DOMElement"
    IO Int64


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

-- method DOMElement::get_offset_width
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit" "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_offset_width" webkit_dom_element_get_offset_width :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit" "DOMElement"
    IO Int64


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

-- method DOMElement::get_previous_element_sibling
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "WebKit" "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 "WebKit" "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 "WebKit" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit" "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 "WebKit" "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 "WebKit" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit" "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 "WebKit" "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 "WebKit" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit" "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 "WebKit" "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 "WebKit" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit" "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 "WebKit" "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 "WebKit" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "WebKit" "DOMCSSStyleDeclaration"
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_element_get_style" webkit_dom_element_get_style :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit" "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 "WebKit" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit" "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 "WebKit" "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::get_webkit_region_overflow
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit" "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_webkit_region_overflow" webkit_dom_element_get_webkit_region_overflow :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit" "DOMElement"
    IO CString

{-# DEPRECATED dOMElementGetWebkitRegionOverflow ["(Since version 1.10)","Use webkit_dom_element_get_webkit_region_overset() instead."]#-}
dOMElementGetWebkitRegionOverflow ::
    (MonadIO m, DOMElementK a) =>
    a ->                                    -- _obj
    m T.Text
dOMElementGetWebkitRegionOverflow _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_element_get_webkit_region_overflow _obj'
    checkUnexpectedReturnNULL "webkit_dom_element_get_webkit_region_overflow" result
    result' <- cstringToText result
    freeMem result
    touchManagedPtr _obj
    return result'

-- method DOMElement::get_webkit_region_overset
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit" "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_webkit_region_overset" webkit_dom_element_get_webkit_region_overset :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit" "DOMElement"
    IO CString


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

-- method DOMElement::has_attribute
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit" "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 "WebKit" "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 "WebKit" "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 "WebKit" "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 "WebKit" "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 "WebKit" "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 "WebKit" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit" "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 "WebKit" "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 "WebKit" "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 "WebKit" "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 "WebKit" "DOMElement"
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_element_query_selector" webkit_dom_element_query_selector :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit" "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 "WebKit" "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 "WebKit" "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 "WebKit" "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 "WebKit" "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
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit" "DOMElement", 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_remove" webkit_dom_element_remove :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit" "DOMElement"
    Ptr (Ptr GError) ->                     -- error
    IO ()


dOMElementRemove ::
    (MonadIO m, DOMElementK a) =>
    a ->                                    -- _obj
    m ()
dOMElementRemove _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    onException (do
        propagateGError $ webkit_dom_element_remove _obj'
        touchManagedPtr _obj
        return ()
     ) (do
        return ()
     )

-- method DOMElement::remove_attribute
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit" "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 "WebKit" "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 "WebKit" "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 "WebKit" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "oldAttr", argType = TInterface "WebKit" "DOMAttr", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "oldAttr", argType = TInterface "WebKit" "DOMAttr", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "WebKit" "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 "WebKit" "DOMElement"
    Ptr DOMAttr ->                          -- oldAttr : TInterface "WebKit" "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 "WebKit" "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 "WebKit" "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 "WebKit" "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 "WebKit" "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 "WebKit" "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 "WebKit" "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 "WebKit" "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 "WebKit" "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 "WebKit" "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 "WebKit" "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 "WebKit" "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 "WebKit" "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 "WebKit" "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 "WebKit" "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 "WebKit" "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 "WebKit" "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 "WebKit" "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 "WebKit" "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 "WebKit" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "newAttr", argType = TInterface "WebKit" "DOMAttr", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "newAttr", argType = TInterface "WebKit" "DOMAttr", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "WebKit" "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 "WebKit" "DOMElement"
    Ptr DOMAttr ->                          -- newAttr : TInterface "WebKit" "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 "WebKit" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "newAttr", argType = TInterface "WebKit" "DOMAttr", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "newAttr", argType = TInterface "WebKit" "DOMAttr", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "WebKit" "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 "WebKit" "DOMElement"
    Ptr DOMAttr ->                          -- newAttr : TInterface "WebKit" "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 "WebKit" "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 "WebKit" "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 "WebKit" "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 "WebKit" "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 "WebKit" "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 "WebKit" "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 "WebKit" "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 "WebKit" "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 "WebKit" "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_scroll_left
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit" "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 "WebKit" "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 "WebKit" "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 "WebKit" "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 "WebKit" "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 "WebKit" "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 ()

-- method DOMElement::webkit_matches_selector
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit" "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 "WebKit" "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 : TBasicType TBoolean
-- throws : True
-- Skip return : False

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


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

-- method DOMElement::webkit_request_full_screen
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TBasicType TUInt16, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TBasicType TUInt16, 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_webkit_request_full_screen" webkit_dom_element_webkit_request_full_screen :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit" "DOMElement"
    Word16 ->                               -- flags : TBasicType TUInt16
    IO ()


dOMElementWebkitRequestFullScreen ::
    (MonadIO m, DOMElementK a) =>
    a ->                                    -- _obj
    Word16 ->                               -- flags
    m ()
dOMElementWebkitRequestFullScreen _obj flags = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    webkit_dom_element_webkit_request_full_screen _obj' flags
    touchManagedPtr _obj
    return ()

-- method DOMElement::webkit_request_fullscreen
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit" "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_webkit_request_fullscreen" webkit_dom_element_webkit_request_fullscreen :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit" "DOMElement"
    IO ()


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

-- method DOMElement::webkit_request_pointer_lock
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit" "DOMElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit" "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_webkit_request_pointer_lock" webkit_dom_element_webkit_request_pointer_lock :: 
    Ptr DOMElement ->                       -- _obj : TInterface "WebKit" "DOMElement"
    IO ()


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