{- |
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.DOMHTMLSelectElement
    ( 

-- * Exported types
    DOMHTMLSelectElement(..)                ,
    DOMHTMLSelectElementK                   ,
    toDOMHTMLSelectElement                  ,
    noDOMHTMLSelectElement                  ,


 -- * Methods
-- ** dOMHTMLSelectElementAdd
    dOMHTMLSelectElementAdd                 ,


-- ** dOMHTMLSelectElementGetAutofocus
    dOMHTMLSelectElementGetAutofocus        ,


-- ** dOMHTMLSelectElementGetDisabled
    dOMHTMLSelectElementGetDisabled         ,


-- ** dOMHTMLSelectElementGetForm
    dOMHTMLSelectElementGetForm             ,


-- ** dOMHTMLSelectElementGetLength
    dOMHTMLSelectElementGetLength           ,


-- ** dOMHTMLSelectElementGetMultiple
    dOMHTMLSelectElementGetMultiple         ,


-- ** dOMHTMLSelectElementGetName
    dOMHTMLSelectElementGetName             ,


-- ** dOMHTMLSelectElementGetOptions
    dOMHTMLSelectElementGetOptions          ,


-- ** dOMHTMLSelectElementGetSelectType
    dOMHTMLSelectElementGetSelectType       ,


-- ** dOMHTMLSelectElementGetSelectedIndex
    dOMHTMLSelectElementGetSelectedIndex    ,


-- ** dOMHTMLSelectElementGetSize
    dOMHTMLSelectElementGetSize             ,


-- ** dOMHTMLSelectElementGetValue
    dOMHTMLSelectElementGetValue            ,


-- ** dOMHTMLSelectElementGetWillValidate
    dOMHTMLSelectElementGetWillValidate     ,


-- ** dOMHTMLSelectElementItem
    dOMHTMLSelectElementItem                ,


-- ** dOMHTMLSelectElementNamedItem
    dOMHTMLSelectElementNamedItem           ,


-- ** dOMHTMLSelectElementRemove
    dOMHTMLSelectElementRemove              ,


-- ** dOMHTMLSelectElementSetAutofocus
    dOMHTMLSelectElementSetAutofocus        ,


-- ** dOMHTMLSelectElementSetDisabled
    dOMHTMLSelectElementSetDisabled         ,


-- ** dOMHTMLSelectElementSetLength
    dOMHTMLSelectElementSetLength           ,


-- ** dOMHTMLSelectElementSetMultiple
    dOMHTMLSelectElementSetMultiple         ,


-- ** dOMHTMLSelectElementSetName
    dOMHTMLSelectElementSetName             ,


-- ** dOMHTMLSelectElementSetSelectedIndex
    dOMHTMLSelectElementSetSelectedIndex    ,


-- ** dOMHTMLSelectElementSetSize
    dOMHTMLSelectElementSetSize             ,


-- ** dOMHTMLSelectElementSetValue
    dOMHTMLSelectElementSetValue            ,




 -- * Properties
-- ** Autofocus
    DOMHTMLSelectElementAutofocusPropertyInfo,
    constructDOMHTMLSelectElementAutofocus  ,
    getDOMHTMLSelectElementAutofocus        ,
    setDOMHTMLSelectElementAutofocus        ,


-- ** Disabled
    DOMHTMLSelectElementDisabledPropertyInfo,
    constructDOMHTMLSelectElementDisabled   ,
    getDOMHTMLSelectElementDisabled         ,
    setDOMHTMLSelectElementDisabled         ,


-- ** Form
    DOMHTMLSelectElementFormPropertyInfo    ,
    getDOMHTMLSelectElementForm             ,


-- ** Labels
    DOMHTMLSelectElementLabelsPropertyInfo  ,
    getDOMHTMLSelectElementLabels           ,


-- ** Length
    DOMHTMLSelectElementLengthPropertyInfo  ,
    constructDOMHTMLSelectElementLength     ,
    getDOMHTMLSelectElementLength           ,
    setDOMHTMLSelectElementLength           ,


-- ** Multiple
    DOMHTMLSelectElementMultiplePropertyInfo,
    constructDOMHTMLSelectElementMultiple   ,
    getDOMHTMLSelectElementMultiple         ,
    setDOMHTMLSelectElementMultiple         ,


-- ** Name
    DOMHTMLSelectElementNamePropertyInfo    ,
    constructDOMHTMLSelectElementName       ,
    getDOMHTMLSelectElementName             ,
    setDOMHTMLSelectElementName             ,


-- ** Options
    DOMHTMLSelectElementOptionsPropertyInfo ,
    getDOMHTMLSelectElementOptions          ,


-- ** Required
    DOMHTMLSelectElementRequiredPropertyInfo,
    constructDOMHTMLSelectElementRequired   ,
    getDOMHTMLSelectElementRequired         ,
    setDOMHTMLSelectElementRequired         ,


-- ** SelectedIndex
    DOMHTMLSelectElementSelectedIndexPropertyInfo,
    constructDOMHTMLSelectElementSelectedIndex,
    getDOMHTMLSelectElementSelectedIndex    ,
    setDOMHTMLSelectElementSelectedIndex    ,


-- ** SelectedOptions
    DOMHTMLSelectElementSelectedOptionsPropertyInfo,
    getDOMHTMLSelectElementSelectedOptions  ,


-- ** Size
    DOMHTMLSelectElementSizePropertyInfo    ,
    constructDOMHTMLSelectElementSize       ,
    getDOMHTMLSelectElementSize             ,
    setDOMHTMLSelectElementSize             ,


-- ** Type
    DOMHTMLSelectElementTypePropertyInfo    ,
    getDOMHTMLSelectElementType             ,


-- ** ValidationMessage
    DOMHTMLSelectElementValidationMessagePropertyInfo,
    getDOMHTMLSelectElementValidationMessage,


-- ** Value
    DOMHTMLSelectElementValuePropertyInfo   ,
    constructDOMHTMLSelectElementValue      ,
    getDOMHTMLSelectElementValue            ,
    setDOMHTMLSelectElementValue            ,


-- ** WillValidate
    DOMHTMLSelectElementWillValidatePropertyInfo,
    getDOMHTMLSelectElementWillValidate     ,




    ) 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 DOMHTMLSelectElement = DOMHTMLSelectElement (ForeignPtr DOMHTMLSelectElement)
foreign import ccall "webkit_dom_html_select_element_get_type"
    c_webkit_dom_html_select_element_get_type :: IO GType

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

instance GObject DOMHTMLSelectElement where
    gobjectIsInitiallyUnowned _ = False
    gobjectType _ = c_webkit_dom_html_select_element_get_type
    

class GObject o => DOMHTMLSelectElementK o
instance (GObject o, IsDescendantOf DOMHTMLSelectElement o) => DOMHTMLSelectElementK o

toDOMHTMLSelectElement :: DOMHTMLSelectElementK o => o -> IO DOMHTMLSelectElement
toDOMHTMLSelectElement = unsafeCastTo DOMHTMLSelectElement

noDOMHTMLSelectElement :: Maybe DOMHTMLSelectElement
noDOMHTMLSelectElement = Nothing

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

getDOMHTMLSelectElementAutofocus :: (MonadIO m, DOMHTMLSelectElementK o) => o -> m Bool
getDOMHTMLSelectElementAutofocus obj = liftIO $ getObjectPropertyBool obj "autofocus"

setDOMHTMLSelectElementAutofocus :: (MonadIO m, DOMHTMLSelectElementK o) => o -> Bool -> m ()
setDOMHTMLSelectElementAutofocus obj val = liftIO $ setObjectPropertyBool obj "autofocus" val

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

data DOMHTMLSelectElementAutofocusPropertyInfo
instance AttrInfo DOMHTMLSelectElementAutofocusPropertyInfo where
    type AttrAllowedOps DOMHTMLSelectElementAutofocusPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint DOMHTMLSelectElementAutofocusPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint DOMHTMLSelectElementAutofocusPropertyInfo = DOMHTMLSelectElementK
    type AttrGetType DOMHTMLSelectElementAutofocusPropertyInfo = Bool
    type AttrLabel DOMHTMLSelectElementAutofocusPropertyInfo = "DOMHTMLSelectElement::autofocus"
    attrGet _ = getDOMHTMLSelectElementAutofocus
    attrSet _ = setDOMHTMLSelectElementAutofocus
    attrConstruct _ = constructDOMHTMLSelectElementAutofocus

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

getDOMHTMLSelectElementDisabled :: (MonadIO m, DOMHTMLSelectElementK o) => o -> m Bool
getDOMHTMLSelectElementDisabled obj = liftIO $ getObjectPropertyBool obj "disabled"

setDOMHTMLSelectElementDisabled :: (MonadIO m, DOMHTMLSelectElementK o) => o -> Bool -> m ()
setDOMHTMLSelectElementDisabled obj val = liftIO $ setObjectPropertyBool obj "disabled" val

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

data DOMHTMLSelectElementDisabledPropertyInfo
instance AttrInfo DOMHTMLSelectElementDisabledPropertyInfo where
    type AttrAllowedOps DOMHTMLSelectElementDisabledPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint DOMHTMLSelectElementDisabledPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint DOMHTMLSelectElementDisabledPropertyInfo = DOMHTMLSelectElementK
    type AttrGetType DOMHTMLSelectElementDisabledPropertyInfo = Bool
    type AttrLabel DOMHTMLSelectElementDisabledPropertyInfo = "DOMHTMLSelectElement::disabled"
    attrGet _ = getDOMHTMLSelectElementDisabled
    attrSet _ = setDOMHTMLSelectElementDisabled
    attrConstruct _ = constructDOMHTMLSelectElementDisabled

-- VVV Prop "form"
   -- Type: TInterface "WebKit2WebExtension" "DOMHTMLFormElement"
   -- Flags: [PropertyReadable]

getDOMHTMLSelectElementForm :: (MonadIO m, DOMHTMLSelectElementK o) => o -> m DOMHTMLFormElement
getDOMHTMLSelectElementForm obj = liftIO $ getObjectPropertyObject obj "form" DOMHTMLFormElement

data DOMHTMLSelectElementFormPropertyInfo
instance AttrInfo DOMHTMLSelectElementFormPropertyInfo where
    type AttrAllowedOps DOMHTMLSelectElementFormPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMHTMLSelectElementFormPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMHTMLSelectElementFormPropertyInfo = DOMHTMLSelectElementK
    type AttrGetType DOMHTMLSelectElementFormPropertyInfo = DOMHTMLFormElement
    type AttrLabel DOMHTMLSelectElementFormPropertyInfo = "DOMHTMLSelectElement::form"
    attrGet _ = getDOMHTMLSelectElementForm
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "labels"
   -- Type: TInterface "WebKit2WebExtension" "DOMNodeList"
   -- Flags: [PropertyReadable]

getDOMHTMLSelectElementLabels :: (MonadIO m, DOMHTMLSelectElementK o) => o -> m DOMNodeList
getDOMHTMLSelectElementLabels obj = liftIO $ getObjectPropertyObject obj "labels" DOMNodeList

data DOMHTMLSelectElementLabelsPropertyInfo
instance AttrInfo DOMHTMLSelectElementLabelsPropertyInfo where
    type AttrAllowedOps DOMHTMLSelectElementLabelsPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMHTMLSelectElementLabelsPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMHTMLSelectElementLabelsPropertyInfo = DOMHTMLSelectElementK
    type AttrGetType DOMHTMLSelectElementLabelsPropertyInfo = DOMNodeList
    type AttrLabel DOMHTMLSelectElementLabelsPropertyInfo = "DOMHTMLSelectElement::labels"
    attrGet _ = getDOMHTMLSelectElementLabels
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "length"
   -- Type: TBasicType TUInt64
   -- Flags: [PropertyReadable,PropertyWritable]

getDOMHTMLSelectElementLength :: (MonadIO m, DOMHTMLSelectElementK o) => o -> m Word64
getDOMHTMLSelectElementLength obj = liftIO $ getObjectPropertyUInt64 obj "length"

setDOMHTMLSelectElementLength :: (MonadIO m, DOMHTMLSelectElementK o) => o -> Word64 -> m ()
setDOMHTMLSelectElementLength obj val = liftIO $ setObjectPropertyUInt64 obj "length" val

constructDOMHTMLSelectElementLength :: Word64 -> IO ([Char], GValue)
constructDOMHTMLSelectElementLength val = constructObjectPropertyUInt64 "length" val

data DOMHTMLSelectElementLengthPropertyInfo
instance AttrInfo DOMHTMLSelectElementLengthPropertyInfo where
    type AttrAllowedOps DOMHTMLSelectElementLengthPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint DOMHTMLSelectElementLengthPropertyInfo = (~) Word64
    type AttrBaseTypeConstraint DOMHTMLSelectElementLengthPropertyInfo = DOMHTMLSelectElementK
    type AttrGetType DOMHTMLSelectElementLengthPropertyInfo = Word64
    type AttrLabel DOMHTMLSelectElementLengthPropertyInfo = "DOMHTMLSelectElement::length"
    attrGet _ = getDOMHTMLSelectElementLength
    attrSet _ = setDOMHTMLSelectElementLength
    attrConstruct _ = constructDOMHTMLSelectElementLength

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

getDOMHTMLSelectElementMultiple :: (MonadIO m, DOMHTMLSelectElementK o) => o -> m Bool
getDOMHTMLSelectElementMultiple obj = liftIO $ getObjectPropertyBool obj "multiple"

setDOMHTMLSelectElementMultiple :: (MonadIO m, DOMHTMLSelectElementK o) => o -> Bool -> m ()
setDOMHTMLSelectElementMultiple obj val = liftIO $ setObjectPropertyBool obj "multiple" val

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

data DOMHTMLSelectElementMultiplePropertyInfo
instance AttrInfo DOMHTMLSelectElementMultiplePropertyInfo where
    type AttrAllowedOps DOMHTMLSelectElementMultiplePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint DOMHTMLSelectElementMultiplePropertyInfo = (~) Bool
    type AttrBaseTypeConstraint DOMHTMLSelectElementMultiplePropertyInfo = DOMHTMLSelectElementK
    type AttrGetType DOMHTMLSelectElementMultiplePropertyInfo = Bool
    type AttrLabel DOMHTMLSelectElementMultiplePropertyInfo = "DOMHTMLSelectElement::multiple"
    attrGet _ = getDOMHTMLSelectElementMultiple
    attrSet _ = setDOMHTMLSelectElementMultiple
    attrConstruct _ = constructDOMHTMLSelectElementMultiple

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

getDOMHTMLSelectElementName :: (MonadIO m, DOMHTMLSelectElementK o) => o -> m T.Text
getDOMHTMLSelectElementName obj = liftIO $ getObjectPropertyString obj "name"

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

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

data DOMHTMLSelectElementNamePropertyInfo
instance AttrInfo DOMHTMLSelectElementNamePropertyInfo where
    type AttrAllowedOps DOMHTMLSelectElementNamePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint DOMHTMLSelectElementNamePropertyInfo = (~) T.Text
    type AttrBaseTypeConstraint DOMHTMLSelectElementNamePropertyInfo = DOMHTMLSelectElementK
    type AttrGetType DOMHTMLSelectElementNamePropertyInfo = T.Text
    type AttrLabel DOMHTMLSelectElementNamePropertyInfo = "DOMHTMLSelectElement::name"
    attrGet _ = getDOMHTMLSelectElementName
    attrSet _ = setDOMHTMLSelectElementName
    attrConstruct _ = constructDOMHTMLSelectElementName

-- VVV Prop "options"
   -- Type: TInterface "WebKit2WebExtension" "DOMHTMLOptionsCollection"
   -- Flags: [PropertyReadable]

getDOMHTMLSelectElementOptions :: (MonadIO m, DOMHTMLSelectElementK o) => o -> m DOMHTMLOptionsCollection
getDOMHTMLSelectElementOptions obj = liftIO $ getObjectPropertyObject obj "options" DOMHTMLOptionsCollection

data DOMHTMLSelectElementOptionsPropertyInfo
instance AttrInfo DOMHTMLSelectElementOptionsPropertyInfo where
    type AttrAllowedOps DOMHTMLSelectElementOptionsPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMHTMLSelectElementOptionsPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMHTMLSelectElementOptionsPropertyInfo = DOMHTMLSelectElementK
    type AttrGetType DOMHTMLSelectElementOptionsPropertyInfo = DOMHTMLOptionsCollection
    type AttrLabel DOMHTMLSelectElementOptionsPropertyInfo = "DOMHTMLSelectElement::options"
    attrGet _ = getDOMHTMLSelectElementOptions
    attrSet _ = undefined
    attrConstruct _ = undefined

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

getDOMHTMLSelectElementRequired :: (MonadIO m, DOMHTMLSelectElementK o) => o -> m Bool
getDOMHTMLSelectElementRequired obj = liftIO $ getObjectPropertyBool obj "required"

setDOMHTMLSelectElementRequired :: (MonadIO m, DOMHTMLSelectElementK o) => o -> Bool -> m ()
setDOMHTMLSelectElementRequired obj val = liftIO $ setObjectPropertyBool obj "required" val

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

data DOMHTMLSelectElementRequiredPropertyInfo
instance AttrInfo DOMHTMLSelectElementRequiredPropertyInfo where
    type AttrAllowedOps DOMHTMLSelectElementRequiredPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint DOMHTMLSelectElementRequiredPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint DOMHTMLSelectElementRequiredPropertyInfo = DOMHTMLSelectElementK
    type AttrGetType DOMHTMLSelectElementRequiredPropertyInfo = Bool
    type AttrLabel DOMHTMLSelectElementRequiredPropertyInfo = "DOMHTMLSelectElement::required"
    attrGet _ = getDOMHTMLSelectElementRequired
    attrSet _ = setDOMHTMLSelectElementRequired
    attrConstruct _ = constructDOMHTMLSelectElementRequired

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

getDOMHTMLSelectElementSelectedIndex :: (MonadIO m, DOMHTMLSelectElementK o) => o -> m Int64
getDOMHTMLSelectElementSelectedIndex obj = liftIO $ getObjectPropertyInt64 obj "selected-index"

setDOMHTMLSelectElementSelectedIndex :: (MonadIO m, DOMHTMLSelectElementK o) => o -> Int64 -> m ()
setDOMHTMLSelectElementSelectedIndex obj val = liftIO $ setObjectPropertyInt64 obj "selected-index" val

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

data DOMHTMLSelectElementSelectedIndexPropertyInfo
instance AttrInfo DOMHTMLSelectElementSelectedIndexPropertyInfo where
    type AttrAllowedOps DOMHTMLSelectElementSelectedIndexPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint DOMHTMLSelectElementSelectedIndexPropertyInfo = (~) Int64
    type AttrBaseTypeConstraint DOMHTMLSelectElementSelectedIndexPropertyInfo = DOMHTMLSelectElementK
    type AttrGetType DOMHTMLSelectElementSelectedIndexPropertyInfo = Int64
    type AttrLabel DOMHTMLSelectElementSelectedIndexPropertyInfo = "DOMHTMLSelectElement::selected-index"
    attrGet _ = getDOMHTMLSelectElementSelectedIndex
    attrSet _ = setDOMHTMLSelectElementSelectedIndex
    attrConstruct _ = constructDOMHTMLSelectElementSelectedIndex

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

getDOMHTMLSelectElementSelectedOptions :: (MonadIO m, DOMHTMLSelectElementK o) => o -> m DOMHTMLCollection
getDOMHTMLSelectElementSelectedOptions obj = liftIO $ getObjectPropertyObject obj "selected-options" DOMHTMLCollection

data DOMHTMLSelectElementSelectedOptionsPropertyInfo
instance AttrInfo DOMHTMLSelectElementSelectedOptionsPropertyInfo where
    type AttrAllowedOps DOMHTMLSelectElementSelectedOptionsPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMHTMLSelectElementSelectedOptionsPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMHTMLSelectElementSelectedOptionsPropertyInfo = DOMHTMLSelectElementK
    type AttrGetType DOMHTMLSelectElementSelectedOptionsPropertyInfo = DOMHTMLCollection
    type AttrLabel DOMHTMLSelectElementSelectedOptionsPropertyInfo = "DOMHTMLSelectElement::selected-options"
    attrGet _ = getDOMHTMLSelectElementSelectedOptions
    attrSet _ = undefined
    attrConstruct _ = undefined

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

getDOMHTMLSelectElementSize :: (MonadIO m, DOMHTMLSelectElementK o) => o -> m Int64
getDOMHTMLSelectElementSize obj = liftIO $ getObjectPropertyInt64 obj "size"

setDOMHTMLSelectElementSize :: (MonadIO m, DOMHTMLSelectElementK o) => o -> Int64 -> m ()
setDOMHTMLSelectElementSize obj val = liftIO $ setObjectPropertyInt64 obj "size" val

constructDOMHTMLSelectElementSize :: Int64 -> IO ([Char], GValue)
constructDOMHTMLSelectElementSize val = constructObjectPropertyInt64 "size" val

data DOMHTMLSelectElementSizePropertyInfo
instance AttrInfo DOMHTMLSelectElementSizePropertyInfo where
    type AttrAllowedOps DOMHTMLSelectElementSizePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint DOMHTMLSelectElementSizePropertyInfo = (~) Int64
    type AttrBaseTypeConstraint DOMHTMLSelectElementSizePropertyInfo = DOMHTMLSelectElementK
    type AttrGetType DOMHTMLSelectElementSizePropertyInfo = Int64
    type AttrLabel DOMHTMLSelectElementSizePropertyInfo = "DOMHTMLSelectElement::size"
    attrGet _ = getDOMHTMLSelectElementSize
    attrSet _ = setDOMHTMLSelectElementSize
    attrConstruct _ = constructDOMHTMLSelectElementSize

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

getDOMHTMLSelectElementType :: (MonadIO m, DOMHTMLSelectElementK o) => o -> m T.Text
getDOMHTMLSelectElementType obj = liftIO $ getObjectPropertyString obj "type"

data DOMHTMLSelectElementTypePropertyInfo
instance AttrInfo DOMHTMLSelectElementTypePropertyInfo where
    type AttrAllowedOps DOMHTMLSelectElementTypePropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMHTMLSelectElementTypePropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMHTMLSelectElementTypePropertyInfo = DOMHTMLSelectElementK
    type AttrGetType DOMHTMLSelectElementTypePropertyInfo = T.Text
    type AttrLabel DOMHTMLSelectElementTypePropertyInfo = "DOMHTMLSelectElement::type"
    attrGet _ = getDOMHTMLSelectElementType
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "validation-message"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyReadable]

getDOMHTMLSelectElementValidationMessage :: (MonadIO m, DOMHTMLSelectElementK o) => o -> m T.Text
getDOMHTMLSelectElementValidationMessage obj = liftIO $ getObjectPropertyString obj "validation-message"

data DOMHTMLSelectElementValidationMessagePropertyInfo
instance AttrInfo DOMHTMLSelectElementValidationMessagePropertyInfo where
    type AttrAllowedOps DOMHTMLSelectElementValidationMessagePropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMHTMLSelectElementValidationMessagePropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMHTMLSelectElementValidationMessagePropertyInfo = DOMHTMLSelectElementK
    type AttrGetType DOMHTMLSelectElementValidationMessagePropertyInfo = T.Text
    type AttrLabel DOMHTMLSelectElementValidationMessagePropertyInfo = "DOMHTMLSelectElement::validation-message"
    attrGet _ = getDOMHTMLSelectElementValidationMessage
    attrSet _ = undefined
    attrConstruct _ = undefined

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

getDOMHTMLSelectElementValue :: (MonadIO m, DOMHTMLSelectElementK o) => o -> m T.Text
getDOMHTMLSelectElementValue obj = liftIO $ getObjectPropertyString obj "value"

setDOMHTMLSelectElementValue :: (MonadIO m, DOMHTMLSelectElementK o) => o -> T.Text -> m ()
setDOMHTMLSelectElementValue obj val = liftIO $ setObjectPropertyString obj "value" val

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

data DOMHTMLSelectElementValuePropertyInfo
instance AttrInfo DOMHTMLSelectElementValuePropertyInfo where
    type AttrAllowedOps DOMHTMLSelectElementValuePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint DOMHTMLSelectElementValuePropertyInfo = (~) T.Text
    type AttrBaseTypeConstraint DOMHTMLSelectElementValuePropertyInfo = DOMHTMLSelectElementK
    type AttrGetType DOMHTMLSelectElementValuePropertyInfo = T.Text
    type AttrLabel DOMHTMLSelectElementValuePropertyInfo = "DOMHTMLSelectElement::value"
    attrGet _ = getDOMHTMLSelectElementValue
    attrSet _ = setDOMHTMLSelectElementValue
    attrConstruct _ = constructDOMHTMLSelectElementValue

-- VVV Prop "will-validate"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable]

getDOMHTMLSelectElementWillValidate :: (MonadIO m, DOMHTMLSelectElementK o) => o -> m Bool
getDOMHTMLSelectElementWillValidate obj = liftIO $ getObjectPropertyBool obj "will-validate"

data DOMHTMLSelectElementWillValidatePropertyInfo
instance AttrInfo DOMHTMLSelectElementWillValidatePropertyInfo where
    type AttrAllowedOps DOMHTMLSelectElementWillValidatePropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMHTMLSelectElementWillValidatePropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMHTMLSelectElementWillValidatePropertyInfo = DOMHTMLSelectElementK
    type AttrGetType DOMHTMLSelectElementWillValidatePropertyInfo = Bool
    type AttrLabel DOMHTMLSelectElementWillValidatePropertyInfo = "DOMHTMLSelectElement::will-validate"
    attrGet _ = getDOMHTMLSelectElementWillValidate
    attrSet _ = undefined
    attrConstruct _ = undefined

type instance AttributeList DOMHTMLSelectElement = DOMHTMLSelectElementAttributeList
type DOMHTMLSelectElementAttributeList = ('[ '("access-key", DOMHTMLElementAccessKeyPropertyInfo), '("attributes", DOMElementAttributesPropertyInfo), '("autofocus", DOMHTMLSelectElementAutofocusPropertyInfo), '("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), '("disabled", DOMHTMLSelectElementDisabledPropertyInfo), '("draggable", DOMHTMLElementDraggablePropertyInfo), '("first-child", DOMNodeFirstChildPropertyInfo), '("first-element-child", DOMElementFirstElementChildPropertyInfo), '("form", DOMHTMLSelectElementFormPropertyInfo), '("hidden", DOMHTMLElementHiddenPropertyInfo), '("id", DOMElementIdPropertyInfo), '("inner-html", DOMElementInnerHtmlPropertyInfo), '("inner-text", DOMHTMLElementInnerTextPropertyInfo), '("is-content-editable", DOMHTMLElementIsContentEditablePropertyInfo), '("labels", DOMHTMLSelectElementLabelsPropertyInfo), '("lang", DOMHTMLElementLangPropertyInfo), '("last-child", DOMNodeLastChildPropertyInfo), '("last-element-child", DOMElementLastElementChildPropertyInfo), '("length", DOMHTMLSelectElementLengthPropertyInfo), '("local-name", DOMNodeLocalNamePropertyInfo), '("multiple", DOMHTMLSelectElementMultiplePropertyInfo), '("name", DOMHTMLSelectElementNamePropertyInfo), '("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), '("options", DOMHTMLSelectElementOptionsPropertyInfo), '("outer-html", DOMElementOuterHtmlPropertyInfo), '("outer-text", DOMHTMLElementOuterTextPropertyInfo), '("owner-document", DOMNodeOwnerDocumentPropertyInfo), '("parent-element", DOMNodeParentElementPropertyInfo), '("parent-node", DOMNodeParentNodePropertyInfo), '("prefix", DOMNodePrefixPropertyInfo), '("previous-element-sibling", DOMElementPreviousElementSiblingPropertyInfo), '("previous-sibling", DOMNodePreviousSiblingPropertyInfo), '("required", DOMHTMLSelectElementRequiredPropertyInfo), '("scroll-height", DOMElementScrollHeightPropertyInfo), '("scroll-left", DOMElementScrollLeftPropertyInfo), '("scroll-top", DOMElementScrollTopPropertyInfo), '("scroll-width", DOMElementScrollWidthPropertyInfo), '("selected-index", DOMHTMLSelectElementSelectedIndexPropertyInfo), '("selected-options", DOMHTMLSelectElementSelectedOptionsPropertyInfo), '("size", DOMHTMLSelectElementSizePropertyInfo), '("spellcheck", DOMHTMLElementSpellcheckPropertyInfo), '("style", DOMElementStylePropertyInfo), '("tab-index", DOMHTMLElementTabIndexPropertyInfo), '("tag-name", DOMElementTagNamePropertyInfo), '("text-content", DOMNodeTextContentPropertyInfo), '("title", DOMHTMLElementTitlePropertyInfo), '("translate", DOMHTMLElementTranslatePropertyInfo), '("type", DOMHTMLSelectElementTypePropertyInfo), '("validation-message", DOMHTMLSelectElementValidationMessagePropertyInfo), '("value", DOMHTMLSelectElementValuePropertyInfo), '("webkit-region-overset", DOMElementWebkitRegionOversetPropertyInfo), '("webkitdropzone", DOMHTMLElementWebkitdropzonePropertyInfo), '("will-validate", DOMHTMLSelectElementWillValidatePropertyInfo)] :: [(Symbol, *)])

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

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


dOMHTMLSelectElementAdd ::
    (MonadIO m, DOMHTMLSelectElementK a, DOMHTMLElementK b, DOMHTMLElementK c) =>
    a ->                                    -- _obj
    b ->                                    -- element
    c ->                                    -- before
    m ()
dOMHTMLSelectElementAdd _obj element before = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let element' = unsafeManagedPtrCastPtr element
    let before' = unsafeManagedPtrCastPtr before
    onException (do
        propagateGError $ webkit_dom_html_select_element_add _obj' element' before'
        touchManagedPtr _obj
        touchManagedPtr element
        touchManagedPtr before
        return ()
     ) (do
        return ()
     )

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


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

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


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

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

foreign import ccall "webkit_dom_html_select_element_get_form" webkit_dom_html_select_element_get_form :: 
    Ptr DOMHTMLSelectElement ->             -- _obj : TInterface "WebKit2WebExtension" "DOMHTMLSelectElement"
    IO (Ptr DOMHTMLFormElement)


dOMHTMLSelectElementGetForm ::
    (MonadIO m, DOMHTMLSelectElementK a) =>
    a ->                                    -- _obj
    m DOMHTMLFormElement
dOMHTMLSelectElementGetForm _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_html_select_element_get_form _obj'
    checkUnexpectedReturnNULL "webkit_dom_html_select_element_get_form" result
    result' <- (newObject DOMHTMLFormElement) result
    touchManagedPtr _obj
    return result'

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


dOMHTMLSelectElementGetLength ::
    (MonadIO m, DOMHTMLSelectElementK a) =>
    a ->                                    -- _obj
    m Word64
dOMHTMLSelectElementGetLength _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_html_select_element_get_length _obj'
    touchManagedPtr _obj
    return result

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


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

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


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

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

foreign import ccall "webkit_dom_html_select_element_get_options" webkit_dom_html_select_element_get_options :: 
    Ptr DOMHTMLSelectElement ->             -- _obj : TInterface "WebKit2WebExtension" "DOMHTMLSelectElement"
    IO (Ptr DOMHTMLOptionsCollection)


dOMHTMLSelectElementGetOptions ::
    (MonadIO m, DOMHTMLSelectElementK a) =>
    a ->                                    -- _obj
    m DOMHTMLOptionsCollection
dOMHTMLSelectElementGetOptions _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_html_select_element_get_options _obj'
    checkUnexpectedReturnNULL "webkit_dom_html_select_element_get_options" result
    result' <- (wrapObject DOMHTMLOptionsCollection) result
    touchManagedPtr _obj
    return result'

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


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

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


dOMHTMLSelectElementGetSelectedIndex ::
    (MonadIO m, DOMHTMLSelectElementK a) =>
    a ->                                    -- _obj
    m Int64
dOMHTMLSelectElementGetSelectedIndex _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_html_select_element_get_selected_index _obj'
    touchManagedPtr _obj
    return result

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


dOMHTMLSelectElementGetSize ::
    (MonadIO m, DOMHTMLSelectElementK a) =>
    a ->                                    -- _obj
    m Int64
dOMHTMLSelectElementGetSize _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_html_select_element_get_size _obj'
    touchManagedPtr _obj
    return result

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


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

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


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

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

foreign import ccall "webkit_dom_html_select_element_item" webkit_dom_html_select_element_item :: 
    Ptr DOMHTMLSelectElement ->             -- _obj : TInterface "WebKit2WebExtension" "DOMHTMLSelectElement"
    Word64 ->                               -- index : TBasicType TUInt64
    IO (Ptr DOMNode)


dOMHTMLSelectElementItem ::
    (MonadIO m, DOMHTMLSelectElementK a) =>
    a ->                                    -- _obj
    Word64 ->                               -- index
    m DOMNode
dOMHTMLSelectElementItem _obj index = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_html_select_element_item _obj' index
    checkUnexpectedReturnNULL "webkit_dom_html_select_element_item" result
    result' <- (newObject DOMNode) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "webkit_dom_html_select_element_named_item" webkit_dom_html_select_element_named_item :: 
    Ptr DOMHTMLSelectElement ->             -- _obj : TInterface "WebKit2WebExtension" "DOMHTMLSelectElement"
    CString ->                              -- name : TBasicType TUTF8
    IO (Ptr DOMNode)


dOMHTMLSelectElementNamedItem ::
    (MonadIO m, DOMHTMLSelectElementK a) =>
    a ->                                    -- _obj
    T.Text ->                               -- name
    m DOMNode
dOMHTMLSelectElementNamedItem _obj name = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    name' <- textToCString name
    result <- webkit_dom_html_select_element_named_item _obj' name'
    checkUnexpectedReturnNULL "webkit_dom_html_select_element_named_item" result
    result' <- (newObject DOMNode) result
    touchManagedPtr _obj
    freeMem name'
    return result'

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


dOMHTMLSelectElementRemove ::
    (MonadIO m, DOMHTMLSelectElementK a) =>
    a ->                                    -- _obj
    Int64 ->                                -- index
    m ()
dOMHTMLSelectElementRemove _obj index = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    webkit_dom_html_select_element_remove _obj' index
    touchManagedPtr _obj
    return ()

-- method DOMHTMLSelectElement::set_autofocus
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMHTMLSelectElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMHTMLSelectElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", 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_html_select_element_set_autofocus" webkit_dom_html_select_element_set_autofocus :: 
    Ptr DOMHTMLSelectElement ->             -- _obj : TInterface "WebKit2WebExtension" "DOMHTMLSelectElement"
    CInt ->                                 -- value : TBasicType TBoolean
    IO ()


dOMHTMLSelectElementSetAutofocus ::
    (MonadIO m, DOMHTMLSelectElementK a) =>
    a ->                                    -- _obj
    Bool ->                                 -- value
    m ()
dOMHTMLSelectElementSetAutofocus _obj value = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let value' = (fromIntegral . fromEnum) value
    webkit_dom_html_select_element_set_autofocus _obj' value'
    touchManagedPtr _obj
    return ()

-- method DOMHTMLSelectElement::set_disabled
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMHTMLSelectElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMHTMLSelectElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", 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_html_select_element_set_disabled" webkit_dom_html_select_element_set_disabled :: 
    Ptr DOMHTMLSelectElement ->             -- _obj : TInterface "WebKit2WebExtension" "DOMHTMLSelectElement"
    CInt ->                                 -- value : TBasicType TBoolean
    IO ()


dOMHTMLSelectElementSetDisabled ::
    (MonadIO m, DOMHTMLSelectElementK a) =>
    a ->                                    -- _obj
    Bool ->                                 -- value
    m ()
dOMHTMLSelectElementSetDisabled _obj value = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let value' = (fromIntegral . fromEnum) value
    webkit_dom_html_select_element_set_disabled _obj' value'
    touchManagedPtr _obj
    return ()

-- method DOMHTMLSelectElement::set_length
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMHTMLSelectElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMHTMLSelectElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TUInt64, 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_select_element_set_length" webkit_dom_html_select_element_set_length :: 
    Ptr DOMHTMLSelectElement ->             -- _obj : TInterface "WebKit2WebExtension" "DOMHTMLSelectElement"
    Word64 ->                               -- value : TBasicType TUInt64
    Ptr (Ptr GError) ->                     -- error
    IO ()


dOMHTMLSelectElementSetLength ::
    (MonadIO m, DOMHTMLSelectElementK a) =>
    a ->                                    -- _obj
    Word64 ->                               -- value
    m ()
dOMHTMLSelectElementSetLength _obj value = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    onException (do
        propagateGError $ webkit_dom_html_select_element_set_length _obj' value
        touchManagedPtr _obj
        return ()
     ) (do
        return ()
     )

-- method DOMHTMLSelectElement::set_multiple
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMHTMLSelectElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMHTMLSelectElement", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", 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_html_select_element_set_multiple" webkit_dom_html_select_element_set_multiple :: 
    Ptr DOMHTMLSelectElement ->             -- _obj : TInterface "WebKit2WebExtension" "DOMHTMLSelectElement"
    CInt ->                                 -- value : TBasicType TBoolean
    IO ()


dOMHTMLSelectElementSetMultiple ::
    (MonadIO m, DOMHTMLSelectElementK a) =>
    a ->                                    -- _obj
    Bool ->                                 -- value
    m ()
dOMHTMLSelectElementSetMultiple _obj value = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let value' = (fromIntegral . fromEnum) value
    webkit_dom_html_select_element_set_multiple _obj' value'
    touchManagedPtr _obj
    return ()

-- method DOMHTMLSelectElement::set_name
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMHTMLSelectElement", 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" "DOMHTMLSelectElement", 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_select_element_set_name" webkit_dom_html_select_element_set_name :: 
    Ptr DOMHTMLSelectElement ->             -- _obj : TInterface "WebKit2WebExtension" "DOMHTMLSelectElement"
    CString ->                              -- value : TBasicType TUTF8
    IO ()


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

-- method DOMHTMLSelectElement::set_selected_index
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMHTMLSelectElement", 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" "DOMHTMLSelectElement", 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_select_element_set_selected_index" webkit_dom_html_select_element_set_selected_index :: 
    Ptr DOMHTMLSelectElement ->             -- _obj : TInterface "WebKit2WebExtension" "DOMHTMLSelectElement"
    Int64 ->                                -- value : TBasicType TInt64
    IO ()


dOMHTMLSelectElementSetSelectedIndex ::
    (MonadIO m, DOMHTMLSelectElementK a) =>
    a ->                                    -- _obj
    Int64 ->                                -- value
    m ()
dOMHTMLSelectElementSetSelectedIndex _obj value = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    webkit_dom_html_select_element_set_selected_index _obj' value
    touchManagedPtr _obj
    return ()

-- method DOMHTMLSelectElement::set_size
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMHTMLSelectElement", 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" "DOMHTMLSelectElement", 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_select_element_set_size" webkit_dom_html_select_element_set_size :: 
    Ptr DOMHTMLSelectElement ->             -- _obj : TInterface "WebKit2WebExtension" "DOMHTMLSelectElement"
    Int64 ->                                -- value : TBasicType TInt64
    IO ()


dOMHTMLSelectElementSetSize ::
    (MonadIO m, DOMHTMLSelectElementK a) =>
    a ->                                    -- _obj
    Int64 ->                                -- value
    m ()
dOMHTMLSelectElementSetSize _obj value = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    webkit_dom_html_select_element_set_size _obj' value
    touchManagedPtr _obj
    return ()

-- method DOMHTMLSelectElement::set_value
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMHTMLSelectElement", 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" "DOMHTMLSelectElement", 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_select_element_set_value" webkit_dom_html_select_element_set_value :: 
    Ptr DOMHTMLSelectElement ->             -- _obj : TInterface "WebKit2WebExtension" "DOMHTMLSelectElement"
    CString ->                              -- value : TBasicType TUTF8
    IO ()


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