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

module GI.WebKit.Objects.DOMShadowRoot
    ( 

-- * Exported types
    DOMShadowRoot(..)                       ,
    DOMShadowRootK                          ,
    toDOMShadowRoot                         ,
    noDOMShadowRoot                         ,


 -- * Methods
-- ** dOMShadowRootElementFromPoint
    dOMShadowRootElementFromPoint           ,


-- ** dOMShadowRootGetActiveElement
    dOMShadowRootGetActiveElement           ,


-- ** dOMShadowRootGetApplyAuthorStyles
    dOMShadowRootGetApplyAuthorStyles       ,


-- ** dOMShadowRootGetElementById
    dOMShadowRootGetElementById             ,


-- ** dOMShadowRootGetElementsByClassName
    dOMShadowRootGetElementsByClassName     ,


-- ** dOMShadowRootGetElementsByTagName
    dOMShadowRootGetElementsByTagName       ,


-- ** dOMShadowRootGetElementsByTagNameNs
    dOMShadowRootGetElementsByTagNameNs     ,


-- ** dOMShadowRootGetInnerHtml
    dOMShadowRootGetInnerHtml               ,


-- ** dOMShadowRootGetResetStyleInheritance
    dOMShadowRootGetResetStyleInheritance   ,


-- ** dOMShadowRootGetSelection
    dOMShadowRootGetSelection               ,


-- ** dOMShadowRootSetApplyAuthorStyles
    dOMShadowRootSetApplyAuthorStyles       ,


-- ** dOMShadowRootSetInnerHtml
    dOMShadowRootSetInnerHtml               ,


-- ** dOMShadowRootSetResetStyleInheritance
    dOMShadowRootSetResetStyleInheritance   ,




 -- * Properties
-- ** ActiveElement
    DOMShadowRootActiveElementPropertyInfo  ,
    getDOMShadowRootActiveElement           ,


-- ** ApplyAuthorStyles
    DOMShadowRootApplyAuthorStylesPropertyInfo,
    constructDOMShadowRootApplyAuthorStyles ,
    getDOMShadowRootApplyAuthorStyles       ,
    setDOMShadowRootApplyAuthorStyles       ,


-- ** InnerHtml
    DOMShadowRootInnerHtmlPropertyInfo      ,
    constructDOMShadowRootInnerHtml         ,
    getDOMShadowRootInnerHtml               ,
    setDOMShadowRootInnerHtml               ,


-- ** ResetStyleInheritance
    DOMShadowRootResetStyleInheritancePropertyInfo,
    constructDOMShadowRootResetStyleInheritance,
    getDOMShadowRootResetStyleInheritance   ,
    setDOMShadowRootResetStyleInheritance   ,




    ) where

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

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

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

newtype DOMShadowRoot = DOMShadowRoot (ForeignPtr DOMShadowRoot)
foreign import ccall "webkit_dom_shadow_root_get_type"
    c_webkit_dom_shadow_root_get_type :: IO GType

type instance ParentTypes DOMShadowRoot = DOMShadowRootParentTypes
type DOMShadowRootParentTypes = '[DOMDocumentFragment, DOMNode, DOMObject, GObject.Object, DOMEventTarget]

instance GObject DOMShadowRoot where
    gobjectIsInitiallyUnowned _ = False
    gobjectType _ = c_webkit_dom_shadow_root_get_type
    

class GObject o => DOMShadowRootK o
instance (GObject o, IsDescendantOf DOMShadowRoot o) => DOMShadowRootK o

toDOMShadowRoot :: DOMShadowRootK o => o -> IO DOMShadowRoot
toDOMShadowRoot = unsafeCastTo DOMShadowRoot

noDOMShadowRoot :: Maybe DOMShadowRoot
noDOMShadowRoot = Nothing

-- VVV Prop "active-element"
   -- Type: TInterface "WebKit" "DOMElement"
   -- Flags: [PropertyReadable]

getDOMShadowRootActiveElement :: (MonadIO m, DOMShadowRootK o) => o -> m DOMElement
getDOMShadowRootActiveElement obj = liftIO $ getObjectPropertyObject obj "active-element" DOMElement

data DOMShadowRootActiveElementPropertyInfo
instance AttrInfo DOMShadowRootActiveElementPropertyInfo where
    type AttrAllowedOps DOMShadowRootActiveElementPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMShadowRootActiveElementPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMShadowRootActiveElementPropertyInfo = DOMShadowRootK
    type AttrGetType DOMShadowRootActiveElementPropertyInfo = DOMElement
    type AttrLabel DOMShadowRootActiveElementPropertyInfo = "DOMShadowRoot::active-element"
    attrGet _ = getDOMShadowRootActiveElement
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "apply-author-styles"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getDOMShadowRootApplyAuthorStyles :: (MonadIO m, DOMShadowRootK o) => o -> m Bool
getDOMShadowRootApplyAuthorStyles obj = liftIO $ getObjectPropertyBool obj "apply-author-styles"

setDOMShadowRootApplyAuthorStyles :: (MonadIO m, DOMShadowRootK o) => o -> Bool -> m ()
setDOMShadowRootApplyAuthorStyles obj val = liftIO $ setObjectPropertyBool obj "apply-author-styles" val

constructDOMShadowRootApplyAuthorStyles :: Bool -> IO ([Char], GValue)
constructDOMShadowRootApplyAuthorStyles val = constructObjectPropertyBool "apply-author-styles" val

data DOMShadowRootApplyAuthorStylesPropertyInfo
instance AttrInfo DOMShadowRootApplyAuthorStylesPropertyInfo where
    type AttrAllowedOps DOMShadowRootApplyAuthorStylesPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint DOMShadowRootApplyAuthorStylesPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint DOMShadowRootApplyAuthorStylesPropertyInfo = DOMShadowRootK
    type AttrGetType DOMShadowRootApplyAuthorStylesPropertyInfo = Bool
    type AttrLabel DOMShadowRootApplyAuthorStylesPropertyInfo = "DOMShadowRoot::apply-author-styles"
    attrGet _ = getDOMShadowRootApplyAuthorStyles
    attrSet _ = setDOMShadowRootApplyAuthorStyles
    attrConstruct _ = constructDOMShadowRootApplyAuthorStyles

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

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

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

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

data DOMShadowRootInnerHtmlPropertyInfo
instance AttrInfo DOMShadowRootInnerHtmlPropertyInfo where
    type AttrAllowedOps DOMShadowRootInnerHtmlPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint DOMShadowRootInnerHtmlPropertyInfo = (~) T.Text
    type AttrBaseTypeConstraint DOMShadowRootInnerHtmlPropertyInfo = DOMShadowRootK
    type AttrGetType DOMShadowRootInnerHtmlPropertyInfo = T.Text
    type AttrLabel DOMShadowRootInnerHtmlPropertyInfo = "DOMShadowRoot::inner-html"
    attrGet _ = getDOMShadowRootInnerHtml
    attrSet _ = setDOMShadowRootInnerHtml
    attrConstruct _ = constructDOMShadowRootInnerHtml

-- VVV Prop "reset-style-inheritance"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getDOMShadowRootResetStyleInheritance :: (MonadIO m, DOMShadowRootK o) => o -> m Bool
getDOMShadowRootResetStyleInheritance obj = liftIO $ getObjectPropertyBool obj "reset-style-inheritance"

setDOMShadowRootResetStyleInheritance :: (MonadIO m, DOMShadowRootK o) => o -> Bool -> m ()
setDOMShadowRootResetStyleInheritance obj val = liftIO $ setObjectPropertyBool obj "reset-style-inheritance" val

constructDOMShadowRootResetStyleInheritance :: Bool -> IO ([Char], GValue)
constructDOMShadowRootResetStyleInheritance val = constructObjectPropertyBool "reset-style-inheritance" val

data DOMShadowRootResetStyleInheritancePropertyInfo
instance AttrInfo DOMShadowRootResetStyleInheritancePropertyInfo where
    type AttrAllowedOps DOMShadowRootResetStyleInheritancePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint DOMShadowRootResetStyleInheritancePropertyInfo = (~) Bool
    type AttrBaseTypeConstraint DOMShadowRootResetStyleInheritancePropertyInfo = DOMShadowRootK
    type AttrGetType DOMShadowRootResetStyleInheritancePropertyInfo = Bool
    type AttrLabel DOMShadowRootResetStyleInheritancePropertyInfo = "DOMShadowRoot::reset-style-inheritance"
    attrGet _ = getDOMShadowRootResetStyleInheritance
    attrSet _ = setDOMShadowRootResetStyleInheritance
    attrConstruct _ = constructDOMShadowRootResetStyleInheritance

type instance AttributeList DOMShadowRoot = DOMShadowRootAttributeList
type DOMShadowRootAttributeList = ('[ '("active-element", DOMShadowRootActiveElementPropertyInfo), '("apply-author-styles", DOMShadowRootApplyAuthorStylesPropertyInfo), '("base-uri", DOMNodeBaseUriPropertyInfo), '("child-nodes", DOMNodeChildNodesPropertyInfo), '("core-object", DOMObjectCoreObjectPropertyInfo), '("first-child", DOMNodeFirstChildPropertyInfo), '("inner-html", DOMShadowRootInnerHtmlPropertyInfo), '("last-child", DOMNodeLastChildPropertyInfo), '("local-name", DOMNodeLocalNamePropertyInfo), '("namespace-uri", DOMNodeNamespaceUriPropertyInfo), '("next-sibling", DOMNodeNextSiblingPropertyInfo), '("node-name", DOMNodeNodeNamePropertyInfo), '("node-type", DOMNodeNodeTypePropertyInfo), '("node-value", DOMNodeNodeValuePropertyInfo), '("owner-document", DOMNodeOwnerDocumentPropertyInfo), '("parent-element", DOMNodeParentElementPropertyInfo), '("parent-node", DOMNodeParentNodePropertyInfo), '("prefix", DOMNodePrefixPropertyInfo), '("previous-sibling", DOMNodePreviousSiblingPropertyInfo), '("reset-style-inheritance", DOMShadowRootResetStyleInheritancePropertyInfo), '("text-content", DOMNodeTextContentPropertyInfo)] :: [(Symbol, *)])

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

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

foreign import ccall "webkit_dom_shadow_root_element_from_point" webkit_dom_shadow_root_element_from_point :: 
    Ptr DOMShadowRoot ->                    -- _obj : TInterface "WebKit" "DOMShadowRoot"
    Int64 ->                                -- x : TBasicType TInt64
    Int64 ->                                -- y : TBasicType TInt64
    IO (Ptr DOMElement)


dOMShadowRootElementFromPoint ::
    (MonadIO m, DOMShadowRootK a) =>
    a ->                                    -- _obj
    Int64 ->                                -- x
    Int64 ->                                -- y
    m DOMElement
dOMShadowRootElementFromPoint _obj x y = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_shadow_root_element_from_point _obj' x y
    checkUnexpectedReturnNULL "webkit_dom_shadow_root_element_from_point" result
    result' <- (newObject DOMElement) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "webkit_dom_shadow_root_get_active_element" webkit_dom_shadow_root_get_active_element :: 
    Ptr DOMShadowRoot ->                    -- _obj : TInterface "WebKit" "DOMShadowRoot"
    IO (Ptr DOMElement)


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

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


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

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

foreign import ccall "webkit_dom_shadow_root_get_element_by_id" webkit_dom_shadow_root_get_element_by_id :: 
    Ptr DOMShadowRoot ->                    -- _obj : TInterface "WebKit" "DOMShadowRoot"
    CString ->                              -- elementId : TBasicType TUTF8
    IO (Ptr DOMElement)


dOMShadowRootGetElementById ::
    (MonadIO m, DOMShadowRootK a) =>
    a ->                                    -- _obj
    T.Text ->                               -- elementId
    m DOMElement
dOMShadowRootGetElementById _obj elementId = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    elementId' <- textToCString elementId
    result <- webkit_dom_shadow_root_get_element_by_id _obj' elementId'
    checkUnexpectedReturnNULL "webkit_dom_shadow_root_get_element_by_id" result
    result' <- (newObject DOMElement) result
    touchManagedPtr _obj
    freeMem elementId'
    return result'

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

foreign import ccall "webkit_dom_shadow_root_get_elements_by_class_name" webkit_dom_shadow_root_get_elements_by_class_name :: 
    Ptr DOMShadowRoot ->                    -- _obj : TInterface "WebKit" "DOMShadowRoot"
    CString ->                              -- className : TBasicType TUTF8
    IO (Ptr DOMNodeList)


dOMShadowRootGetElementsByClassName ::
    (MonadIO m, DOMShadowRootK a) =>
    a ->                                    -- _obj
    T.Text ->                               -- className
    m DOMNodeList
dOMShadowRootGetElementsByClassName _obj className = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    className' <- textToCString className
    result <- webkit_dom_shadow_root_get_elements_by_class_name _obj' className'
    checkUnexpectedReturnNULL "webkit_dom_shadow_root_get_elements_by_class_name" result
    result' <- (wrapObject DOMNodeList) result
    touchManagedPtr _obj
    freeMem className'
    return result'

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

foreign import ccall "webkit_dom_shadow_root_get_elements_by_tag_name" webkit_dom_shadow_root_get_elements_by_tag_name :: 
    Ptr DOMShadowRoot ->                    -- _obj : TInterface "WebKit" "DOMShadowRoot"
    CString ->                              -- tagName : TBasicType TUTF8
    IO (Ptr DOMNodeList)


dOMShadowRootGetElementsByTagName ::
    (MonadIO m, DOMShadowRootK a) =>
    a ->                                    -- _obj
    T.Text ->                               -- tagName
    m DOMNodeList
dOMShadowRootGetElementsByTagName _obj tagName = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    tagName' <- textToCString tagName
    result <- webkit_dom_shadow_root_get_elements_by_tag_name _obj' tagName'
    checkUnexpectedReturnNULL "webkit_dom_shadow_root_get_elements_by_tag_name" result
    result' <- (wrapObject DOMNodeList) result
    touchManagedPtr _obj
    freeMem tagName'
    return result'

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

foreign import ccall "webkit_dom_shadow_root_get_elements_by_tag_name_ns" webkit_dom_shadow_root_get_elements_by_tag_name_ns :: 
    Ptr DOMShadowRoot ->                    -- _obj : TInterface "WebKit" "DOMShadowRoot"
    CString ->                              -- namespaceURI : TBasicType TUTF8
    CString ->                              -- localName : TBasicType TUTF8
    IO (Ptr DOMNodeList)


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

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


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

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


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

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

foreign import ccall "webkit_dom_shadow_root_get_selection" webkit_dom_shadow_root_get_selection :: 
    Ptr DOMShadowRoot ->                    -- _obj : TInterface "WebKit" "DOMShadowRoot"
    IO (Ptr DOMDOMSelection)


dOMShadowRootGetSelection ::
    (MonadIO m, DOMShadowRootK a) =>
    a ->                                    -- _obj
    m DOMDOMSelection
dOMShadowRootGetSelection _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_shadow_root_get_selection _obj'
    checkUnexpectedReturnNULL "webkit_dom_shadow_root_get_selection" result
    result' <- (wrapObject DOMDOMSelection) result
    touchManagedPtr _obj
    return result'

-- method DOMShadowRoot::set_apply_author_styles
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit" "DOMShadowRoot", 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 "WebKit" "DOMShadowRoot", 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_shadow_root_set_apply_author_styles" webkit_dom_shadow_root_set_apply_author_styles :: 
    Ptr DOMShadowRoot ->                    -- _obj : TInterface "WebKit" "DOMShadowRoot"
    CInt ->                                 -- value : TBasicType TBoolean
    IO ()


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

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


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

-- method DOMShadowRoot::set_reset_style_inheritance
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit" "DOMShadowRoot", 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 "WebKit" "DOMShadowRoot", 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_shadow_root_set_reset_style_inheritance" webkit_dom_shadow_root_set_reset_style_inheritance :: 
    Ptr DOMShadowRoot ->                    -- _obj : TInterface "WebKit" "DOMShadowRoot"
    CInt ->                                 -- value : TBasicType TBoolean
    IO ()


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