{- |
Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License    : LGPL-2.1
Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)

/No description available in the introspection data./
-}

#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \
       && !defined(__HADDOCK_VERSION__))

module GI.WebKit2WebExtension.Objects.DOMDOMImplementation
    (

-- * Exported types
    DOMDOMImplementation(..)                ,
    IsDOMDOMImplementation                  ,
    toDOMDOMImplementation                  ,
    noDOMDOMImplementation                  ,


 -- * Methods
-- ** createCssStyleSheet #method:createCssStyleSheet#

#if ENABLE_OVERLOADING
    DOMDOMImplementationCreateCssStyleSheetMethodInfo,
#endif
    dOMDOMImplementationCreateCssStyleSheet ,


-- ** createDocument #method:createDocument#

#if ENABLE_OVERLOADING
    DOMDOMImplementationCreateDocumentMethodInfo,
#endif
    dOMDOMImplementationCreateDocument      ,


-- ** createDocumentType #method:createDocumentType#

#if ENABLE_OVERLOADING
    DOMDOMImplementationCreateDocumentTypeMethodInfo,
#endif
    dOMDOMImplementationCreateDocumentType  ,


-- ** createHtmlDocument #method:createHtmlDocument#

#if ENABLE_OVERLOADING
    DOMDOMImplementationCreateHtmlDocumentMethodInfo,
#endif
    dOMDOMImplementationCreateHtmlDocument  ,


-- ** hasFeature #method:hasFeature#

#if ENABLE_OVERLOADING
    DOMDOMImplementationHasFeatureMethodInfo,
#endif
    dOMDOMImplementationHasFeature          ,




    ) where

import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.ShortPrelude as SP
import qualified Data.GI.Base.Overloading as O
import qualified Prelude as P

import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GValue as B.GValue
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.GI.Base.Properties as B.Properties
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
import qualified GHC.OverloadedLabels as OL

import qualified GI.GObject.Objects.Object as GObject.Object
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMCSSStyleSheet as WebKit2WebExtension.DOMCSSStyleSheet
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMDocument as WebKit2WebExtension.DOMDocument
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMDocumentType as WebKit2WebExtension.DOMDocumentType
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMHTMLDocument as WebKit2WebExtension.DOMHTMLDocument
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMObject as WebKit2WebExtension.DOMObject

-- | Memory-managed wrapper type.
newtype DOMDOMImplementation = DOMDOMImplementation (ManagedPtr DOMDOMImplementation)
foreign import ccall "webkit_dom_dom_implementation_get_type"
    c_webkit_dom_dom_implementation_get_type :: IO GType

instance GObject DOMDOMImplementation where
    gobjectType = c_webkit_dom_dom_implementation_get_type


-- | Type class for types which can be safely cast to `DOMDOMImplementation`, for instance with `toDOMDOMImplementation`.
class (GObject o, O.IsDescendantOf DOMDOMImplementation o) => IsDOMDOMImplementation o
instance (GObject o, O.IsDescendantOf DOMDOMImplementation o) => IsDOMDOMImplementation o

instance O.HasParentTypes DOMDOMImplementation
type instance O.ParentTypes DOMDOMImplementation = '[WebKit2WebExtension.DOMObject.DOMObject, GObject.Object.Object]

-- | Cast to `DOMDOMImplementation`, for types for which this is known to be safe. For general casts, use `Data.GI.Base.ManagedPtr.castTo`.
toDOMDOMImplementation :: (MonadIO m, IsDOMDOMImplementation o) => o -> m DOMDOMImplementation
toDOMDOMImplementation = liftIO . unsafeCastTo DOMDOMImplementation

-- | A convenience alias for `Nothing` :: `Maybe` `DOMDOMImplementation`.
noDOMDOMImplementation :: Maybe DOMDOMImplementation
noDOMDOMImplementation = Nothing

#if ENABLE_OVERLOADING
type family ResolveDOMDOMImplementationMethod (t :: Symbol) (o :: *) :: * where
    ResolveDOMDOMImplementationMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
    ResolveDOMDOMImplementationMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
    ResolveDOMDOMImplementationMethod "createCssStyleSheet" o = DOMDOMImplementationCreateCssStyleSheetMethodInfo
    ResolveDOMDOMImplementationMethod "createDocument" o = DOMDOMImplementationCreateDocumentMethodInfo
    ResolveDOMDOMImplementationMethod "createDocumentType" o = DOMDOMImplementationCreateDocumentTypeMethodInfo
    ResolveDOMDOMImplementationMethod "createHtmlDocument" o = DOMDOMImplementationCreateHtmlDocumentMethodInfo
    ResolveDOMDOMImplementationMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
    ResolveDOMDOMImplementationMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
    ResolveDOMDOMImplementationMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
    ResolveDOMDOMImplementationMethod "hasFeature" o = DOMDOMImplementationHasFeatureMethodInfo
    ResolveDOMDOMImplementationMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
    ResolveDOMDOMImplementationMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
    ResolveDOMDOMImplementationMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
    ResolveDOMDOMImplementationMethod "ref" o = GObject.Object.ObjectRefMethodInfo
    ResolveDOMDOMImplementationMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
    ResolveDOMDOMImplementationMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
    ResolveDOMDOMImplementationMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
    ResolveDOMDOMImplementationMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
    ResolveDOMDOMImplementationMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
    ResolveDOMDOMImplementationMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
    ResolveDOMDOMImplementationMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
    ResolveDOMDOMImplementationMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
    ResolveDOMDOMImplementationMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
    ResolveDOMDOMImplementationMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
    ResolveDOMDOMImplementationMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
    ResolveDOMDOMImplementationMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
    ResolveDOMDOMImplementationMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
    ResolveDOMDOMImplementationMethod l o = O.MethodResolutionFailed l o

instance (info ~ ResolveDOMDOMImplementationMethod t DOMDOMImplementation, O.MethodInfo info DOMDOMImplementation p) => OL.IsLabel t (DOMDOMImplementation -> p) where
#if MIN_VERSION_base(4,10,0)
    fromLabel = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#else
    fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#endif

#endif

#if ENABLE_OVERLOADING
instance O.HasAttributeList DOMDOMImplementation
type instance O.AttributeList DOMDOMImplementation = DOMDOMImplementationAttributeList
type DOMDOMImplementationAttributeList = ('[ '("coreObject", WebKit2WebExtension.DOMObject.DOMObjectCoreObjectPropertyInfo)] :: [(Symbol, *)])
#endif

#if ENABLE_OVERLOADING
#endif

#if ENABLE_OVERLOADING
type instance O.SignalList DOMDOMImplementation = DOMDOMImplementationSignalList
type DOMDOMImplementationSignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)])

#endif

-- method DOMDOMImplementation::create_css_style_sheet
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMDOMImplementation"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMDOMImplementation", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "title", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #gchar", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "media", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #gchar", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMCSSStyleSheet"}))
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_dom_implementation_create_css_style_sheet" webkit_dom_dom_implementation_create_css_style_sheet ::
    Ptr DOMDOMImplementation ->             -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMDOMImplementation"})
    CString ->                              -- title : TBasicType TUTF8
    CString ->                              -- media : TBasicType TUTF8
    Ptr (Ptr GError) ->                     -- error
    IO (Ptr WebKit2WebExtension.DOMCSSStyleSheet.DOMCSSStyleSheet)

{-# DEPRECATED dOMDOMImplementationCreateCssStyleSheet ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/No description available in the introspection data./
-}
dOMDOMImplementationCreateCssStyleSheet ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMDOMImplementation a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMDOMImplementation.DOMDOMImplementation' -}
    -> T.Text
    {- ^ /@title@/: A @/gchar/@ -}
    -> T.Text
    {- ^ /@media@/: A @/gchar/@ -}
    -> m WebKit2WebExtension.DOMCSSStyleSheet.DOMCSSStyleSheet
    {- ^ __Returns:__ A 'GI.WebKit2WebExtension.Objects.DOMCSSStyleSheet.DOMCSSStyleSheet' /(Can throw 'Data.GI.Base.GError.GError')/ -}
dOMDOMImplementationCreateCssStyleSheet self title media = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    title' <- textToCString title
    media' <- textToCString media
    onException (do
        result <- propagateGError $ webkit_dom_dom_implementation_create_css_style_sheet self' title' media'
        checkUnexpectedReturnNULL "dOMDOMImplementationCreateCssStyleSheet" result
        result' <- (wrapObject WebKit2WebExtension.DOMCSSStyleSheet.DOMCSSStyleSheet) result
        touchManagedPtr self
        freeMem title'
        freeMem media'
        return result'
     ) (do
        freeMem title'
        freeMem media'
     )

#if ENABLE_OVERLOADING
data DOMDOMImplementationCreateCssStyleSheetMethodInfo
instance (signature ~ (T.Text -> T.Text -> m WebKit2WebExtension.DOMCSSStyleSheet.DOMCSSStyleSheet), MonadIO m, IsDOMDOMImplementation a) => O.MethodInfo DOMDOMImplementationCreateCssStyleSheetMethodInfo a signature where
    overloadedMethod _ = dOMDOMImplementationCreateCssStyleSheet

#endif

-- method DOMDOMImplementation::create_document
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMDOMImplementation"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMDOMImplementation", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "namespaceURI", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "A #gchar", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "qualifiedName", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #gchar", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "doctype", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMDocumentType"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "A #WebKitDOMDocumentType", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMDocument"}))
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_dom_implementation_create_document" webkit_dom_dom_implementation_create_document ::
    Ptr DOMDOMImplementation ->             -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMDOMImplementation"})
    CString ->                              -- namespaceURI : TBasicType TUTF8
    CString ->                              -- qualifiedName : TBasicType TUTF8
    Ptr WebKit2WebExtension.DOMDocumentType.DOMDocumentType -> -- doctype : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMDocumentType"})
    Ptr (Ptr GError) ->                     -- error
    IO (Ptr WebKit2WebExtension.DOMDocument.DOMDocument)

{-# DEPRECATED dOMDOMImplementationCreateDocument ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/No description available in the introspection data./
-}
dOMDOMImplementationCreateDocument ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMDOMImplementation a, WebKit2WebExtension.DOMDocumentType.IsDOMDocumentType b) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMDOMImplementation.DOMDOMImplementation' -}
    -> Maybe (T.Text)
    {- ^ /@namespaceURI@/: A @/gchar/@ -}
    -> T.Text
    {- ^ /@qualifiedName@/: A @/gchar/@ -}
    -> Maybe (b)
    {- ^ /@doctype@/: A 'GI.WebKit2WebExtension.Objects.DOMDocumentType.DOMDocumentType' -}
    -> m WebKit2WebExtension.DOMDocument.DOMDocument
    {- ^ __Returns:__ A 'GI.WebKit2WebExtension.Objects.DOMDocument.DOMDocument' /(Can throw 'Data.GI.Base.GError.GError')/ -}
dOMDOMImplementationCreateDocument self namespaceURI qualifiedName doctype = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    maybeNamespaceURI <- case namespaceURI of
        Nothing -> return nullPtr
        Just jNamespaceURI -> do
            jNamespaceURI' <- textToCString jNamespaceURI
            return jNamespaceURI'
    qualifiedName' <- textToCString qualifiedName
    maybeDoctype <- case doctype of
        Nothing -> return nullPtr
        Just jDoctype -> do
            jDoctype' <- unsafeManagedPtrCastPtr jDoctype
            return jDoctype'
    onException (do
        result <- propagateGError $ webkit_dom_dom_implementation_create_document self' maybeNamespaceURI qualifiedName' maybeDoctype
        checkUnexpectedReturnNULL "dOMDOMImplementationCreateDocument" result
        result' <- (newObject WebKit2WebExtension.DOMDocument.DOMDocument) result
        touchManagedPtr self
        whenJust doctype touchManagedPtr
        freeMem maybeNamespaceURI
        freeMem qualifiedName'
        return result'
     ) (do
        freeMem maybeNamespaceURI
        freeMem qualifiedName'
     )

#if ENABLE_OVERLOADING
data DOMDOMImplementationCreateDocumentMethodInfo
instance (signature ~ (Maybe (T.Text) -> T.Text -> Maybe (b) -> m WebKit2WebExtension.DOMDocument.DOMDocument), MonadIO m, IsDOMDOMImplementation a, WebKit2WebExtension.DOMDocumentType.IsDOMDocumentType b) => O.MethodInfo DOMDOMImplementationCreateDocumentMethodInfo a signature where
    overloadedMethod _ = dOMDOMImplementationCreateDocument

#endif

-- method DOMDOMImplementation::create_document_type
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMDOMImplementation"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMDOMImplementation", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "qualifiedName", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #gchar", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "publicId", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #gchar", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "systemId", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #gchar", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMDocumentType"}))
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_dom_implementation_create_document_type" webkit_dom_dom_implementation_create_document_type ::
    Ptr DOMDOMImplementation ->             -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMDOMImplementation"})
    CString ->                              -- qualifiedName : TBasicType TUTF8
    CString ->                              -- publicId : TBasicType TUTF8
    CString ->                              -- systemId : TBasicType TUTF8
    Ptr (Ptr GError) ->                     -- error
    IO (Ptr WebKit2WebExtension.DOMDocumentType.DOMDocumentType)

{-# DEPRECATED dOMDOMImplementationCreateDocumentType ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/No description available in the introspection data./
-}
dOMDOMImplementationCreateDocumentType ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMDOMImplementation a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMDOMImplementation.DOMDOMImplementation' -}
    -> T.Text
    {- ^ /@qualifiedName@/: A @/gchar/@ -}
    -> T.Text
    {- ^ /@publicId@/: A @/gchar/@ -}
    -> T.Text
    {- ^ /@systemId@/: A @/gchar/@ -}
    -> m WebKit2WebExtension.DOMDocumentType.DOMDocumentType
    {- ^ __Returns:__ A 'GI.WebKit2WebExtension.Objects.DOMDocumentType.DOMDocumentType' /(Can throw 'Data.GI.Base.GError.GError')/ -}
dOMDOMImplementationCreateDocumentType self qualifiedName publicId systemId = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    qualifiedName' <- textToCString qualifiedName
    publicId' <- textToCString publicId
    systemId' <- textToCString systemId
    onException (do
        result <- propagateGError $ webkit_dom_dom_implementation_create_document_type self' qualifiedName' publicId' systemId'
        checkUnexpectedReturnNULL "dOMDOMImplementationCreateDocumentType" result
        result' <- (newObject WebKit2WebExtension.DOMDocumentType.DOMDocumentType) result
        touchManagedPtr self
        freeMem qualifiedName'
        freeMem publicId'
        freeMem systemId'
        return result'
     ) (do
        freeMem qualifiedName'
        freeMem publicId'
        freeMem systemId'
     )

#if ENABLE_OVERLOADING
data DOMDOMImplementationCreateDocumentTypeMethodInfo
instance (signature ~ (T.Text -> T.Text -> T.Text -> m WebKit2WebExtension.DOMDocumentType.DOMDocumentType), MonadIO m, IsDOMDOMImplementation a) => O.MethodInfo DOMDOMImplementationCreateDocumentTypeMethodInfo a signature where
    overloadedMethod _ = dOMDOMImplementationCreateDocumentType

#endif

-- method DOMDOMImplementation::create_html_document
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMDOMImplementation"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMDOMImplementation", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "title", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #gchar", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMHTMLDocument"}))
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_dom_implementation_create_html_document" webkit_dom_dom_implementation_create_html_document ::
    Ptr DOMDOMImplementation ->             -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMDOMImplementation"})
    CString ->                              -- title : TBasicType TUTF8
    IO (Ptr WebKit2WebExtension.DOMHTMLDocument.DOMHTMLDocument)

{-# DEPRECATED dOMDOMImplementationCreateHtmlDocument ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/No description available in the introspection data./
-}
dOMDOMImplementationCreateHtmlDocument ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMDOMImplementation a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMDOMImplementation.DOMDOMImplementation' -}
    -> T.Text
    {- ^ /@title@/: A @/gchar/@ -}
    -> m WebKit2WebExtension.DOMHTMLDocument.DOMHTMLDocument
    {- ^ __Returns:__ A 'GI.WebKit2WebExtension.Objects.DOMHTMLDocument.DOMHTMLDocument' -}
dOMDOMImplementationCreateHtmlDocument self title = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    title' <- textToCString title
    result <- webkit_dom_dom_implementation_create_html_document self' title'
    checkUnexpectedReturnNULL "dOMDOMImplementationCreateHtmlDocument" result
    result' <- (newObject WebKit2WebExtension.DOMHTMLDocument.DOMHTMLDocument) result
    touchManagedPtr self
    freeMem title'
    return result'

#if ENABLE_OVERLOADING
data DOMDOMImplementationCreateHtmlDocumentMethodInfo
instance (signature ~ (T.Text -> m WebKit2WebExtension.DOMHTMLDocument.DOMHTMLDocument), MonadIO m, IsDOMDOMImplementation a) => O.MethodInfo DOMDOMImplementationCreateHtmlDocumentMethodInfo a signature where
    overloadedMethod _ = dOMDOMImplementationCreateHtmlDocument

#endif

-- method DOMDOMImplementation::has_feature
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMDOMImplementation"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMDOMImplementation", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "feature", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #gchar", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "version", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #gchar", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_dom_implementation_has_feature" webkit_dom_dom_implementation_has_feature ::
    Ptr DOMDOMImplementation ->             -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMDOMImplementation"})
    CString ->                              -- feature : TBasicType TUTF8
    CString ->                              -- version : TBasicType TUTF8
    IO CInt

{-# DEPRECATED dOMDOMImplementationHasFeature ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/No description available in the introspection data./
-}
dOMDOMImplementationHasFeature ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMDOMImplementation a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMDOMImplementation.DOMDOMImplementation' -}
    -> T.Text
    {- ^ /@feature@/: A @/gchar/@ -}
    -> T.Text
    {- ^ /@version@/: A @/gchar/@ -}
    -> m Bool
    {- ^ __Returns:__ A 'Bool' -}
dOMDOMImplementationHasFeature self feature version = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    feature' <- textToCString feature
    version' <- textToCString version
    result <- webkit_dom_dom_implementation_has_feature self' feature' version'
    let result' = (/= 0) result
    touchManagedPtr self
    freeMem feature'
    freeMem version'
    return result'

#if ENABLE_OVERLOADING
data DOMDOMImplementationHasFeatureMethodInfo
instance (signature ~ (T.Text -> T.Text -> m Bool), MonadIO m, IsDOMDOMImplementation a) => O.MethodInfo DOMDOMImplementationHasFeatureMethodInfo a signature where
    overloadedMethod _ = dOMDOMImplementationHasFeature

#endif