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

module GI.WebKit2WebExtension.Objects.DOMHTMLElement
    ( 

-- * Exported types
    DOMHTMLElement(..)                      ,
    DOMHTMLElementK                         ,
    toDOMHTMLElement                        ,
    noDOMHTMLElement                        ,


 -- * Methods
-- ** dOMHTMLElementClick
    dOMHTMLElementClick                     ,


-- ** dOMHTMLElementGetAccessKey
    dOMHTMLElementGetAccessKey              ,


-- ** dOMHTMLElementGetChildren
    dOMHTMLElementGetChildren               ,


-- ** dOMHTMLElementGetContentEditable
    dOMHTMLElementGetContentEditable        ,


-- ** dOMHTMLElementGetDir
    dOMHTMLElementGetDir                    ,


-- ** dOMHTMLElementGetInnerHtml
    dOMHTMLElementGetInnerHtml              ,


-- ** dOMHTMLElementGetInnerText
    dOMHTMLElementGetInnerText              ,


-- ** dOMHTMLElementGetIsContentEditable
    dOMHTMLElementGetIsContentEditable      ,


-- ** dOMHTMLElementGetLang
    dOMHTMLElementGetLang                   ,


-- ** dOMHTMLElementGetOuterHtml
    dOMHTMLElementGetOuterHtml              ,


-- ** dOMHTMLElementGetOuterText
    dOMHTMLElementGetOuterText              ,


-- ** dOMHTMLElementGetTabIndex
    dOMHTMLElementGetTabIndex               ,


-- ** dOMHTMLElementGetTitle
    dOMHTMLElementGetTitle                  ,


-- ** dOMHTMLElementSetAccessKey
    dOMHTMLElementSetAccessKey              ,


-- ** dOMHTMLElementSetContentEditable
    dOMHTMLElementSetContentEditable        ,


-- ** dOMHTMLElementSetDir
    dOMHTMLElementSetDir                    ,


-- ** dOMHTMLElementSetInnerHtml
    dOMHTMLElementSetInnerHtml              ,


-- ** dOMHTMLElementSetInnerText
    dOMHTMLElementSetInnerText              ,


-- ** dOMHTMLElementSetLang
    dOMHTMLElementSetLang                   ,


-- ** dOMHTMLElementSetOuterHtml
    dOMHTMLElementSetOuterHtml              ,


-- ** dOMHTMLElementSetOuterText
    dOMHTMLElementSetOuterText              ,


-- ** dOMHTMLElementSetTabIndex
    dOMHTMLElementSetTabIndex               ,


-- ** dOMHTMLElementSetTitle
    dOMHTMLElementSetTitle                  ,




 -- * Properties
-- ** AccessKey
    DOMHTMLElementAccessKeyPropertyInfo     ,
    constructDOMHTMLElementAccessKey        ,
    getDOMHTMLElementAccessKey              ,
    setDOMHTMLElementAccessKey              ,


-- ** ContentEditable
    DOMHTMLElementContentEditablePropertyInfo,
    constructDOMHTMLElementContentEditable  ,
    getDOMHTMLElementContentEditable        ,
    setDOMHTMLElementContentEditable        ,


-- ** Dir
    DOMHTMLElementDirPropertyInfo           ,
    constructDOMHTMLElementDir              ,
    getDOMHTMLElementDir                    ,
    setDOMHTMLElementDir                    ,


-- ** Draggable
    DOMHTMLElementDraggablePropertyInfo     ,
    constructDOMHTMLElementDraggable        ,
    getDOMHTMLElementDraggable              ,
    setDOMHTMLElementDraggable              ,


-- ** Hidden
    DOMHTMLElementHiddenPropertyInfo        ,
    constructDOMHTMLElementHidden           ,
    getDOMHTMLElementHidden                 ,
    setDOMHTMLElementHidden                 ,


-- ** InnerText
    DOMHTMLElementInnerTextPropertyInfo     ,
    constructDOMHTMLElementInnerText        ,
    getDOMHTMLElementInnerText              ,
    setDOMHTMLElementInnerText              ,


-- ** IsContentEditable
    DOMHTMLElementIsContentEditablePropertyInfo,
    getDOMHTMLElementIsContentEditable      ,


-- ** Lang
    DOMHTMLElementLangPropertyInfo          ,
    constructDOMHTMLElementLang             ,
    getDOMHTMLElementLang                   ,
    setDOMHTMLElementLang                   ,


-- ** OuterText
    DOMHTMLElementOuterTextPropertyInfo     ,
    constructDOMHTMLElementOuterText        ,
    getDOMHTMLElementOuterText              ,
    setDOMHTMLElementOuterText              ,


-- ** Spellcheck
    DOMHTMLElementSpellcheckPropertyInfo    ,
    constructDOMHTMLElementSpellcheck       ,
    getDOMHTMLElementSpellcheck             ,
    setDOMHTMLElementSpellcheck             ,


-- ** TabIndex
    DOMHTMLElementTabIndexPropertyInfo      ,
    constructDOMHTMLElementTabIndex         ,
    getDOMHTMLElementTabIndex               ,
    setDOMHTMLElementTabIndex               ,


-- ** Title
    DOMHTMLElementTitlePropertyInfo         ,
    constructDOMHTMLElementTitle            ,
    getDOMHTMLElementTitle                  ,
    setDOMHTMLElementTitle                  ,


-- ** Translate
    DOMHTMLElementTranslatePropertyInfo     ,
    constructDOMHTMLElementTranslate        ,
    getDOMHTMLElementTranslate              ,
    setDOMHTMLElementTranslate              ,


-- ** Webkitdropzone
    DOMHTMLElementWebkitdropzonePropertyInfo,
    constructDOMHTMLElementWebkitdropzone   ,
    getDOMHTMLElementWebkitdropzone         ,
    setDOMHTMLElementWebkitdropzone         ,




    ) where

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

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

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

newtype DOMHTMLElement = DOMHTMLElement (ForeignPtr DOMHTMLElement)
foreign import ccall "webkit_dom_html_element_get_type"
    c_webkit_dom_html_element_get_type :: IO GType

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

instance GObject DOMHTMLElement where
    gobjectIsInitiallyUnowned _ = False
    gobjectType _ = c_webkit_dom_html_element_get_type
    

class GObject o => DOMHTMLElementK o
instance (GObject o, IsDescendantOf DOMHTMLElement o) => DOMHTMLElementK o

toDOMHTMLElement :: DOMHTMLElementK o => o -> IO DOMHTMLElement
toDOMHTMLElement = unsafeCastTo DOMHTMLElement

noDOMHTMLElement :: Maybe DOMHTMLElement
noDOMHTMLElement = Nothing

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

getDOMHTMLElementAccessKey :: (MonadIO m, DOMHTMLElementK o) => o -> m T.Text
getDOMHTMLElementAccessKey obj = liftIO $ getObjectPropertyString obj "access-key"

setDOMHTMLElementAccessKey :: (MonadIO m, DOMHTMLElementK o) => o -> T.Text -> m ()
setDOMHTMLElementAccessKey obj val = liftIO $ setObjectPropertyString obj "access-key" val

constructDOMHTMLElementAccessKey :: T.Text -> IO ([Char], GValue)
constructDOMHTMLElementAccessKey val = constructObjectPropertyString "access-key" val

data DOMHTMLElementAccessKeyPropertyInfo
instance AttrInfo DOMHTMLElementAccessKeyPropertyInfo where
    type AttrAllowedOps DOMHTMLElementAccessKeyPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint DOMHTMLElementAccessKeyPropertyInfo = (~) T.Text
    type AttrBaseTypeConstraint DOMHTMLElementAccessKeyPropertyInfo = DOMHTMLElementK
    type AttrGetType DOMHTMLElementAccessKeyPropertyInfo = T.Text
    type AttrLabel DOMHTMLElementAccessKeyPropertyInfo = "DOMHTMLElement::access-key"
    attrGet _ = getDOMHTMLElementAccessKey
    attrSet _ = setDOMHTMLElementAccessKey
    attrConstruct _ = constructDOMHTMLElementAccessKey

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

getDOMHTMLElementContentEditable :: (MonadIO m, DOMHTMLElementK o) => o -> m T.Text
getDOMHTMLElementContentEditable obj = liftIO $ getObjectPropertyString obj "content-editable"

setDOMHTMLElementContentEditable :: (MonadIO m, DOMHTMLElementK o) => o -> T.Text -> m ()
setDOMHTMLElementContentEditable obj val = liftIO $ setObjectPropertyString obj "content-editable" val

constructDOMHTMLElementContentEditable :: T.Text -> IO ([Char], GValue)
constructDOMHTMLElementContentEditable val = constructObjectPropertyString "content-editable" val

data DOMHTMLElementContentEditablePropertyInfo
instance AttrInfo DOMHTMLElementContentEditablePropertyInfo where
    type AttrAllowedOps DOMHTMLElementContentEditablePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint DOMHTMLElementContentEditablePropertyInfo = (~) T.Text
    type AttrBaseTypeConstraint DOMHTMLElementContentEditablePropertyInfo = DOMHTMLElementK
    type AttrGetType DOMHTMLElementContentEditablePropertyInfo = T.Text
    type AttrLabel DOMHTMLElementContentEditablePropertyInfo = "DOMHTMLElement::content-editable"
    attrGet _ = getDOMHTMLElementContentEditable
    attrSet _ = setDOMHTMLElementContentEditable
    attrConstruct _ = constructDOMHTMLElementContentEditable

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

getDOMHTMLElementDir :: (MonadIO m, DOMHTMLElementK o) => o -> m T.Text
getDOMHTMLElementDir obj = liftIO $ getObjectPropertyString obj "dir"

setDOMHTMLElementDir :: (MonadIO m, DOMHTMLElementK o) => o -> T.Text -> m ()
setDOMHTMLElementDir obj val = liftIO $ setObjectPropertyString obj "dir" val

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

data DOMHTMLElementDirPropertyInfo
instance AttrInfo DOMHTMLElementDirPropertyInfo where
    type AttrAllowedOps DOMHTMLElementDirPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint DOMHTMLElementDirPropertyInfo = (~) T.Text
    type AttrBaseTypeConstraint DOMHTMLElementDirPropertyInfo = DOMHTMLElementK
    type AttrGetType DOMHTMLElementDirPropertyInfo = T.Text
    type AttrLabel DOMHTMLElementDirPropertyInfo = "DOMHTMLElement::dir"
    attrGet _ = getDOMHTMLElementDir
    attrSet _ = setDOMHTMLElementDir
    attrConstruct _ = constructDOMHTMLElementDir

-- VVV Prop "draggable"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getDOMHTMLElementDraggable :: (MonadIO m, DOMHTMLElementK o) => o -> m Bool
getDOMHTMLElementDraggable obj = liftIO $ getObjectPropertyBool obj "draggable"

setDOMHTMLElementDraggable :: (MonadIO m, DOMHTMLElementK o) => o -> Bool -> m ()
setDOMHTMLElementDraggable obj val = liftIO $ setObjectPropertyBool obj "draggable" val

constructDOMHTMLElementDraggable :: Bool -> IO ([Char], GValue)
constructDOMHTMLElementDraggable val = constructObjectPropertyBool "draggable" val

data DOMHTMLElementDraggablePropertyInfo
instance AttrInfo DOMHTMLElementDraggablePropertyInfo where
    type AttrAllowedOps DOMHTMLElementDraggablePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint DOMHTMLElementDraggablePropertyInfo = (~) Bool
    type AttrBaseTypeConstraint DOMHTMLElementDraggablePropertyInfo = DOMHTMLElementK
    type AttrGetType DOMHTMLElementDraggablePropertyInfo = Bool
    type AttrLabel DOMHTMLElementDraggablePropertyInfo = "DOMHTMLElement::draggable"
    attrGet _ = getDOMHTMLElementDraggable
    attrSet _ = setDOMHTMLElementDraggable
    attrConstruct _ = constructDOMHTMLElementDraggable

-- VVV Prop "hidden"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getDOMHTMLElementHidden :: (MonadIO m, DOMHTMLElementK o) => o -> m Bool
getDOMHTMLElementHidden obj = liftIO $ getObjectPropertyBool obj "hidden"

setDOMHTMLElementHidden :: (MonadIO m, DOMHTMLElementK o) => o -> Bool -> m ()
setDOMHTMLElementHidden obj val = liftIO $ setObjectPropertyBool obj "hidden" val

constructDOMHTMLElementHidden :: Bool -> IO ([Char], GValue)
constructDOMHTMLElementHidden val = constructObjectPropertyBool "hidden" val

data DOMHTMLElementHiddenPropertyInfo
instance AttrInfo DOMHTMLElementHiddenPropertyInfo where
    type AttrAllowedOps DOMHTMLElementHiddenPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint DOMHTMLElementHiddenPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint DOMHTMLElementHiddenPropertyInfo = DOMHTMLElementK
    type AttrGetType DOMHTMLElementHiddenPropertyInfo = Bool
    type AttrLabel DOMHTMLElementHiddenPropertyInfo = "DOMHTMLElement::hidden"
    attrGet _ = getDOMHTMLElementHidden
    attrSet _ = setDOMHTMLElementHidden
    attrConstruct _ = constructDOMHTMLElementHidden

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

getDOMHTMLElementInnerText :: (MonadIO m, DOMHTMLElementK o) => o -> m T.Text
getDOMHTMLElementInnerText obj = liftIO $ getObjectPropertyString obj "inner-text"

setDOMHTMLElementInnerText :: (MonadIO m, DOMHTMLElementK o) => o -> T.Text -> m ()
setDOMHTMLElementInnerText obj val = liftIO $ setObjectPropertyString obj "inner-text" val

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

data DOMHTMLElementInnerTextPropertyInfo
instance AttrInfo DOMHTMLElementInnerTextPropertyInfo where
    type AttrAllowedOps DOMHTMLElementInnerTextPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint DOMHTMLElementInnerTextPropertyInfo = (~) T.Text
    type AttrBaseTypeConstraint DOMHTMLElementInnerTextPropertyInfo = DOMHTMLElementK
    type AttrGetType DOMHTMLElementInnerTextPropertyInfo = T.Text
    type AttrLabel DOMHTMLElementInnerTextPropertyInfo = "DOMHTMLElement::inner-text"
    attrGet _ = getDOMHTMLElementInnerText
    attrSet _ = setDOMHTMLElementInnerText
    attrConstruct _ = constructDOMHTMLElementInnerText

-- VVV Prop "is-content-editable"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable]

getDOMHTMLElementIsContentEditable :: (MonadIO m, DOMHTMLElementK o) => o -> m Bool
getDOMHTMLElementIsContentEditable obj = liftIO $ getObjectPropertyBool obj "is-content-editable"

data DOMHTMLElementIsContentEditablePropertyInfo
instance AttrInfo DOMHTMLElementIsContentEditablePropertyInfo where
    type AttrAllowedOps DOMHTMLElementIsContentEditablePropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMHTMLElementIsContentEditablePropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMHTMLElementIsContentEditablePropertyInfo = DOMHTMLElementK
    type AttrGetType DOMHTMLElementIsContentEditablePropertyInfo = Bool
    type AttrLabel DOMHTMLElementIsContentEditablePropertyInfo = "DOMHTMLElement::is-content-editable"
    attrGet _ = getDOMHTMLElementIsContentEditable
    attrSet _ = undefined
    attrConstruct _ = undefined

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

getDOMHTMLElementLang :: (MonadIO m, DOMHTMLElementK o) => o -> m T.Text
getDOMHTMLElementLang obj = liftIO $ getObjectPropertyString obj "lang"

setDOMHTMLElementLang :: (MonadIO m, DOMHTMLElementK o) => o -> T.Text -> m ()
setDOMHTMLElementLang obj val = liftIO $ setObjectPropertyString obj "lang" val

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

data DOMHTMLElementLangPropertyInfo
instance AttrInfo DOMHTMLElementLangPropertyInfo where
    type AttrAllowedOps DOMHTMLElementLangPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint DOMHTMLElementLangPropertyInfo = (~) T.Text
    type AttrBaseTypeConstraint DOMHTMLElementLangPropertyInfo = DOMHTMLElementK
    type AttrGetType DOMHTMLElementLangPropertyInfo = T.Text
    type AttrLabel DOMHTMLElementLangPropertyInfo = "DOMHTMLElement::lang"
    attrGet _ = getDOMHTMLElementLang
    attrSet _ = setDOMHTMLElementLang
    attrConstruct _ = constructDOMHTMLElementLang

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

getDOMHTMLElementOuterText :: (MonadIO m, DOMHTMLElementK o) => o -> m T.Text
getDOMHTMLElementOuterText obj = liftIO $ getObjectPropertyString obj "outer-text"

setDOMHTMLElementOuterText :: (MonadIO m, DOMHTMLElementK o) => o -> T.Text -> m ()
setDOMHTMLElementOuterText obj val = liftIO $ setObjectPropertyString obj "outer-text" val

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

data DOMHTMLElementOuterTextPropertyInfo
instance AttrInfo DOMHTMLElementOuterTextPropertyInfo where
    type AttrAllowedOps DOMHTMLElementOuterTextPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint DOMHTMLElementOuterTextPropertyInfo = (~) T.Text
    type AttrBaseTypeConstraint DOMHTMLElementOuterTextPropertyInfo = DOMHTMLElementK
    type AttrGetType DOMHTMLElementOuterTextPropertyInfo = T.Text
    type AttrLabel DOMHTMLElementOuterTextPropertyInfo = "DOMHTMLElement::outer-text"
    attrGet _ = getDOMHTMLElementOuterText
    attrSet _ = setDOMHTMLElementOuterText
    attrConstruct _ = constructDOMHTMLElementOuterText

-- VVV Prop "spellcheck"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getDOMHTMLElementSpellcheck :: (MonadIO m, DOMHTMLElementK o) => o -> m Bool
getDOMHTMLElementSpellcheck obj = liftIO $ getObjectPropertyBool obj "spellcheck"

setDOMHTMLElementSpellcheck :: (MonadIO m, DOMHTMLElementK o) => o -> Bool -> m ()
setDOMHTMLElementSpellcheck obj val = liftIO $ setObjectPropertyBool obj "spellcheck" val

constructDOMHTMLElementSpellcheck :: Bool -> IO ([Char], GValue)
constructDOMHTMLElementSpellcheck val = constructObjectPropertyBool "spellcheck" val

data DOMHTMLElementSpellcheckPropertyInfo
instance AttrInfo DOMHTMLElementSpellcheckPropertyInfo where
    type AttrAllowedOps DOMHTMLElementSpellcheckPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint DOMHTMLElementSpellcheckPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint DOMHTMLElementSpellcheckPropertyInfo = DOMHTMLElementK
    type AttrGetType DOMHTMLElementSpellcheckPropertyInfo = Bool
    type AttrLabel DOMHTMLElementSpellcheckPropertyInfo = "DOMHTMLElement::spellcheck"
    attrGet _ = getDOMHTMLElementSpellcheck
    attrSet _ = setDOMHTMLElementSpellcheck
    attrConstruct _ = constructDOMHTMLElementSpellcheck

-- VVV Prop "tab-index"
   -- Type: TBasicType TInt64
   -- Flags: [PropertyReadable,PropertyWritable]

getDOMHTMLElementTabIndex :: (MonadIO m, DOMHTMLElementK o) => o -> m Int64
getDOMHTMLElementTabIndex obj = liftIO $ getObjectPropertyInt64 obj "tab-index"

setDOMHTMLElementTabIndex :: (MonadIO m, DOMHTMLElementK o) => o -> Int64 -> m ()
setDOMHTMLElementTabIndex obj val = liftIO $ setObjectPropertyInt64 obj "tab-index" val

constructDOMHTMLElementTabIndex :: Int64 -> IO ([Char], GValue)
constructDOMHTMLElementTabIndex val = constructObjectPropertyInt64 "tab-index" val

data DOMHTMLElementTabIndexPropertyInfo
instance AttrInfo DOMHTMLElementTabIndexPropertyInfo where
    type AttrAllowedOps DOMHTMLElementTabIndexPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint DOMHTMLElementTabIndexPropertyInfo = (~) Int64
    type AttrBaseTypeConstraint DOMHTMLElementTabIndexPropertyInfo = DOMHTMLElementK
    type AttrGetType DOMHTMLElementTabIndexPropertyInfo = Int64
    type AttrLabel DOMHTMLElementTabIndexPropertyInfo = "DOMHTMLElement::tab-index"
    attrGet _ = getDOMHTMLElementTabIndex
    attrSet _ = setDOMHTMLElementTabIndex
    attrConstruct _ = constructDOMHTMLElementTabIndex

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

getDOMHTMLElementTitle :: (MonadIO m, DOMHTMLElementK o) => o -> m T.Text
getDOMHTMLElementTitle obj = liftIO $ getObjectPropertyString obj "title"

setDOMHTMLElementTitle :: (MonadIO m, DOMHTMLElementK o) => o -> T.Text -> m ()
setDOMHTMLElementTitle obj val = liftIO $ setObjectPropertyString obj "title" val

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

data DOMHTMLElementTitlePropertyInfo
instance AttrInfo DOMHTMLElementTitlePropertyInfo where
    type AttrAllowedOps DOMHTMLElementTitlePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint DOMHTMLElementTitlePropertyInfo = (~) T.Text
    type AttrBaseTypeConstraint DOMHTMLElementTitlePropertyInfo = DOMHTMLElementK
    type AttrGetType DOMHTMLElementTitlePropertyInfo = T.Text
    type AttrLabel DOMHTMLElementTitlePropertyInfo = "DOMHTMLElement::title"
    attrGet _ = getDOMHTMLElementTitle
    attrSet _ = setDOMHTMLElementTitle
    attrConstruct _ = constructDOMHTMLElementTitle

-- VVV Prop "translate"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getDOMHTMLElementTranslate :: (MonadIO m, DOMHTMLElementK o) => o -> m Bool
getDOMHTMLElementTranslate obj = liftIO $ getObjectPropertyBool obj "translate"

setDOMHTMLElementTranslate :: (MonadIO m, DOMHTMLElementK o) => o -> Bool -> m ()
setDOMHTMLElementTranslate obj val = liftIO $ setObjectPropertyBool obj "translate" val

constructDOMHTMLElementTranslate :: Bool -> IO ([Char], GValue)
constructDOMHTMLElementTranslate val = constructObjectPropertyBool "translate" val

data DOMHTMLElementTranslatePropertyInfo
instance AttrInfo DOMHTMLElementTranslatePropertyInfo where
    type AttrAllowedOps DOMHTMLElementTranslatePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint DOMHTMLElementTranslatePropertyInfo = (~) Bool
    type AttrBaseTypeConstraint DOMHTMLElementTranslatePropertyInfo = DOMHTMLElementK
    type AttrGetType DOMHTMLElementTranslatePropertyInfo = Bool
    type AttrLabel DOMHTMLElementTranslatePropertyInfo = "DOMHTMLElement::translate"
    attrGet _ = getDOMHTMLElementTranslate
    attrSet _ = setDOMHTMLElementTranslate
    attrConstruct _ = constructDOMHTMLElementTranslate

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

getDOMHTMLElementWebkitdropzone :: (MonadIO m, DOMHTMLElementK o) => o -> m T.Text
getDOMHTMLElementWebkitdropzone obj = liftIO $ getObjectPropertyString obj "webkitdropzone"

setDOMHTMLElementWebkitdropzone :: (MonadIO m, DOMHTMLElementK o) => o -> T.Text -> m ()
setDOMHTMLElementWebkitdropzone obj val = liftIO $ setObjectPropertyString obj "webkitdropzone" val

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

data DOMHTMLElementWebkitdropzonePropertyInfo
instance AttrInfo DOMHTMLElementWebkitdropzonePropertyInfo where
    type AttrAllowedOps DOMHTMLElementWebkitdropzonePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint DOMHTMLElementWebkitdropzonePropertyInfo = (~) T.Text
    type AttrBaseTypeConstraint DOMHTMLElementWebkitdropzonePropertyInfo = DOMHTMLElementK
    type AttrGetType DOMHTMLElementWebkitdropzonePropertyInfo = T.Text
    type AttrLabel DOMHTMLElementWebkitdropzonePropertyInfo = "DOMHTMLElement::webkitdropzone"
    attrGet _ = getDOMHTMLElementWebkitdropzone
    attrSet _ = setDOMHTMLElementWebkitdropzone
    attrConstruct _ = constructDOMHTMLElementWebkitdropzone

type instance AttributeList DOMHTMLElement = DOMHTMLElementAttributeList
type DOMHTMLElementAttributeList = ('[ '("access-key", DOMHTMLElementAccessKeyPropertyInfo), '("attributes", DOMElementAttributesPropertyInfo), '("base-uri", DOMNodeBaseUriPropertyInfo), '("child-element-count", DOMElementChildElementCountPropertyInfo), '("child-nodes", DOMNodeChildNodesPropertyInfo), '("children", DOMElementChildrenPropertyInfo), '("class-name", DOMElementClassNamePropertyInfo), '("client-height", DOMElementClientHeightPropertyInfo), '("client-left", DOMElementClientLeftPropertyInfo), '("client-top", DOMElementClientTopPropertyInfo), '("client-width", DOMElementClientWidthPropertyInfo), '("content-editable", DOMHTMLElementContentEditablePropertyInfo), '("core-object", DOMObjectCoreObjectPropertyInfo), '("dir", DOMHTMLElementDirPropertyInfo), '("draggable", DOMHTMLElementDraggablePropertyInfo), '("first-child", DOMNodeFirstChildPropertyInfo), '("first-element-child", DOMElementFirstElementChildPropertyInfo), '("hidden", DOMHTMLElementHiddenPropertyInfo), '("id", DOMElementIdPropertyInfo), '("inner-html", DOMElementInnerHtmlPropertyInfo), '("inner-text", DOMHTMLElementInnerTextPropertyInfo), '("is-content-editable", DOMHTMLElementIsContentEditablePropertyInfo), '("lang", DOMHTMLElementLangPropertyInfo), '("last-child", DOMNodeLastChildPropertyInfo), '("last-element-child", DOMElementLastElementChildPropertyInfo), '("local-name", DOMNodeLocalNamePropertyInfo), '("namespace-uri", DOMNodeNamespaceUriPropertyInfo), '("next-element-sibling", DOMElementNextElementSiblingPropertyInfo), '("next-sibling", DOMNodeNextSiblingPropertyInfo), '("node-name", DOMNodeNodeNamePropertyInfo), '("node-type", DOMNodeNodeTypePropertyInfo), '("node-value", DOMNodeNodeValuePropertyInfo), '("offset-height", DOMElementOffsetHeightPropertyInfo), '("offset-left", DOMElementOffsetLeftPropertyInfo), '("offset-parent", DOMElementOffsetParentPropertyInfo), '("offset-top", DOMElementOffsetTopPropertyInfo), '("offset-width", DOMElementOffsetWidthPropertyInfo), '("outer-html", DOMElementOuterHtmlPropertyInfo), '("outer-text", DOMHTMLElementOuterTextPropertyInfo), '("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), '("spellcheck", DOMHTMLElementSpellcheckPropertyInfo), '("style", DOMElementStylePropertyInfo), '("tab-index", DOMHTMLElementTabIndexPropertyInfo), '("tag-name", DOMElementTagNamePropertyInfo), '("text-content", DOMNodeTextContentPropertyInfo), '("title", DOMHTMLElementTitlePropertyInfo), '("translate", DOMHTMLElementTranslatePropertyInfo), '("webkit-region-overset", DOMElementWebkitRegionOversetPropertyInfo), '("webkitdropzone", DOMHTMLElementWebkitdropzonePropertyInfo)] :: [(Symbol, *)])

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

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


dOMHTMLElementClick ::
    (MonadIO m, DOMHTMLElementK a) =>
    a ->                                    -- _obj
    m ()
dOMHTMLElementClick _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    webkit_dom_html_element_click _obj'
    touchManagedPtr _obj
    return ()

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


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

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

foreign import ccall "webkit_dom_html_element_get_children" webkit_dom_html_element_get_children :: 
    Ptr DOMHTMLElement ->                   -- _obj : TInterface "WebKit2WebExtension" "DOMHTMLElement"
    IO (Ptr DOMHTMLCollection)

{-# DEPRECATED dOMHTMLElementGetChildren ["(Since version 2.10)","Use webkit_dom_element_get_children() instead."]#-}
dOMHTMLElementGetChildren ::
    (MonadIO m, DOMHTMLElementK a) =>
    a ->                                    -- _obj
    m DOMHTMLCollection
dOMHTMLElementGetChildren _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_html_element_get_children _obj'
    checkUnexpectedReturnNULL "webkit_dom_html_element_get_children" result
    result' <- (wrapObject DOMHTMLCollection) result
    touchManagedPtr _obj
    return result'

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


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

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


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

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

{-# DEPRECATED dOMHTMLElementGetInnerHtml ["(Since version 2.8)","Use webkit_dom_element_get_inner_html() instead."]#-}
dOMHTMLElementGetInnerHtml ::
    (MonadIO m, DOMHTMLElementK a) =>
    a ->                                    -- _obj
    m T.Text
dOMHTMLElementGetInnerHtml _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_html_element_get_inner_html _obj'
    checkUnexpectedReturnNULL "webkit_dom_html_element_get_inner_html" result
    result' <- cstringToText result
    freeMem result
    touchManagedPtr _obj
    return result'

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


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

-- method DOMHTMLElement::get_is_content_editable
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMHTMLElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMHTMLElement", 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_html_element_get_is_content_editable" webkit_dom_html_element_get_is_content_editable :: 
    Ptr DOMHTMLElement ->                   -- _obj : TInterface "WebKit2WebExtension" "DOMHTMLElement"
    IO CInt


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

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


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

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

{-# DEPRECATED dOMHTMLElementGetOuterHtml ["(Since version 2.8)","Use webkit_dom_element_get_outer_html() instead."]#-}
dOMHTMLElementGetOuterHtml ::
    (MonadIO m, DOMHTMLElementK a) =>
    a ->                                    -- _obj
    m T.Text
dOMHTMLElementGetOuterHtml _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_html_element_get_outer_html _obj'
    checkUnexpectedReturnNULL "webkit_dom_html_element_get_outer_html" result
    result' <- cstringToText result
    freeMem result
    touchManagedPtr _obj
    return result'

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


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

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


dOMHTMLElementGetTabIndex ::
    (MonadIO m, DOMHTMLElementK a) =>
    a ->                                    -- _obj
    m Int64
dOMHTMLElementGetTabIndex _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_html_element_get_tab_index _obj'
    touchManagedPtr _obj
    return result

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


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

-- method DOMHTMLElement::set_access_key
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMHTMLElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMHTMLElement", 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_html_element_set_access_key" webkit_dom_html_element_set_access_key :: 
    Ptr DOMHTMLElement ->                   -- _obj : TInterface "WebKit2WebExtension" "DOMHTMLElement"
    CString ->                              -- value : TBasicType TUTF8
    IO ()


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

-- method DOMHTMLElement::set_content_editable
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMHTMLElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMHTMLElement", 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_html_element_set_content_editable" webkit_dom_html_element_set_content_editable :: 
    Ptr DOMHTMLElement ->                   -- _obj : TInterface "WebKit2WebExtension" "DOMHTMLElement"
    CString ->                              -- value : TBasicType TUTF8
    Ptr (Ptr GError) ->                     -- error
    IO ()


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

-- method DOMHTMLElement::set_dir
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMHTMLElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMHTMLElement", 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_html_element_set_dir" webkit_dom_html_element_set_dir :: 
    Ptr DOMHTMLElement ->                   -- _obj : TInterface "WebKit2WebExtension" "DOMHTMLElement"
    CString ->                              -- value : TBasicType TUTF8
    IO ()


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

-- method DOMHTMLElement::set_inner_html
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMHTMLElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "contents", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMHTMLElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "contents", 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_html_element_set_inner_html" webkit_dom_html_element_set_inner_html :: 
    Ptr DOMHTMLElement ->                   -- _obj : TInterface "WebKit2WebExtension" "DOMHTMLElement"
    CString ->                              -- contents : TBasicType TUTF8
    Ptr (Ptr GError) ->                     -- error
    IO ()

{-# DEPRECATED dOMHTMLElementSetInnerHtml ["(Since version 2.8)","Use webkit_dom_element_set_inner_html() instead."]#-}
dOMHTMLElementSetInnerHtml ::
    (MonadIO m, DOMHTMLElementK a) =>
    a ->                                    -- _obj
    T.Text ->                               -- contents
    m ()
dOMHTMLElementSetInnerHtml _obj contents = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    contents' <- textToCString contents
    onException (do
        propagateGError $ webkit_dom_html_element_set_inner_html _obj' contents'
        touchManagedPtr _obj
        freeMem contents'
        return ()
     ) (do
        freeMem contents'
     )

-- method DOMHTMLElement::set_inner_text
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMHTMLElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMHTMLElement", 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_html_element_set_inner_text" webkit_dom_html_element_set_inner_text :: 
    Ptr DOMHTMLElement ->                   -- _obj : TInterface "WebKit2WebExtension" "DOMHTMLElement"
    CString ->                              -- value : TBasicType TUTF8
    Ptr (Ptr GError) ->                     -- error
    IO ()


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

-- method DOMHTMLElement::set_lang
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMHTMLElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMHTMLElement", 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_html_element_set_lang" webkit_dom_html_element_set_lang :: 
    Ptr DOMHTMLElement ->                   -- _obj : TInterface "WebKit2WebExtension" "DOMHTMLElement"
    CString ->                              -- value : TBasicType TUTF8
    IO ()


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

-- method DOMHTMLElement::set_outer_html
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMHTMLElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "contents", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMHTMLElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "contents", 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_html_element_set_outer_html" webkit_dom_html_element_set_outer_html :: 
    Ptr DOMHTMLElement ->                   -- _obj : TInterface "WebKit2WebExtension" "DOMHTMLElement"
    CString ->                              -- contents : TBasicType TUTF8
    Ptr (Ptr GError) ->                     -- error
    IO ()

{-# DEPRECATED dOMHTMLElementSetOuterHtml ["(Since version 2.8)","Use webkit_dom_element_set_outer_html() instead."]#-}
dOMHTMLElementSetOuterHtml ::
    (MonadIO m, DOMHTMLElementK a) =>
    a ->                                    -- _obj
    T.Text ->                               -- contents
    m ()
dOMHTMLElementSetOuterHtml _obj contents = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    contents' <- textToCString contents
    onException (do
        propagateGError $ webkit_dom_html_element_set_outer_html _obj' contents'
        touchManagedPtr _obj
        freeMem contents'
        return ()
     ) (do
        freeMem contents'
     )

-- method DOMHTMLElement::set_outer_text
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMHTMLElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMHTMLElement", 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_html_element_set_outer_text" webkit_dom_html_element_set_outer_text :: 
    Ptr DOMHTMLElement ->                   -- _obj : TInterface "WebKit2WebExtension" "DOMHTMLElement"
    CString ->                              -- value : TBasicType TUTF8
    Ptr (Ptr GError) ->                     -- error
    IO ()


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

-- method DOMHTMLElement::set_tab_index
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMHTMLElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMHTMLElement", 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_html_element_set_tab_index" webkit_dom_html_element_set_tab_index :: 
    Ptr DOMHTMLElement ->                   -- _obj : TInterface "WebKit2WebExtension" "DOMHTMLElement"
    Int64 ->                                -- value : TBasicType TInt64
    IO ()


dOMHTMLElementSetTabIndex ::
    (MonadIO m, DOMHTMLElementK a) =>
    a ->                                    -- _obj
    Int64 ->                                -- value
    m ()
dOMHTMLElementSetTabIndex _obj value = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    webkit_dom_html_element_set_tab_index _obj' value
    touchManagedPtr _obj
    return ()

-- method DOMHTMLElement::set_title
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMHTMLElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMHTMLElement", 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_html_element_set_title" webkit_dom_html_element_set_title :: 
    Ptr DOMHTMLElement ->                   -- _obj : TInterface "WebKit2WebExtension" "DOMHTMLElement"
    CString ->                              -- value : TBasicType TUTF8
    IO ()


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