{-# LANGUAGE TypeApplications #-}


-- | Copyright  : Will Thompson and Iñaki García Etxebarria
-- License    : LGPL-2.1
-- Maintainer : Iñaki García Etxebarria
-- 
-- /No description available in the introspection data./

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

module GI.WebKit2WebExtension.Objects.DOMDOMImplementation
    ( 

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


 -- * Methods
-- | 
-- 
--  === __Click to display all available methods, including inherited ones__
-- ==== Methods
-- [bindProperty]("GI.GObject.Objects.Object#g:method:bindProperty"), [bindPropertyFull]("GI.GObject.Objects.Object#g:method:bindPropertyFull"), [createCssStyleSheet]("GI.WebKit2WebExtension.Objects.DOMDOMImplementation#g:method:createCssStyleSheet"), [createDocument]("GI.WebKit2WebExtension.Objects.DOMDOMImplementation#g:method:createDocument"), [createDocumentType]("GI.WebKit2WebExtension.Objects.DOMDOMImplementation#g:method:createDocumentType"), [createHtmlDocument]("GI.WebKit2WebExtension.Objects.DOMDOMImplementation#g:method:createHtmlDocument"), [forceFloating]("GI.GObject.Objects.Object#g:method:forceFloating"), [freezeNotify]("GI.GObject.Objects.Object#g:method:freezeNotify"), [getv]("GI.GObject.Objects.Object#g:method:getv"), [hasFeature]("GI.WebKit2WebExtension.Objects.DOMDOMImplementation#g:method:hasFeature"), [isFloating]("GI.GObject.Objects.Object#g:method:isFloating"), [notify]("GI.GObject.Objects.Object#g:method:notify"), [notifyByPspec]("GI.GObject.Objects.Object#g:method:notifyByPspec"), [ref]("GI.GObject.Objects.Object#g:method:ref"), [refSink]("GI.GObject.Objects.Object#g:method:refSink"), [runDispose]("GI.GObject.Objects.Object#g:method:runDispose"), [stealData]("GI.GObject.Objects.Object#g:method:stealData"), [stealQdata]("GI.GObject.Objects.Object#g:method:stealQdata"), [thawNotify]("GI.GObject.Objects.Object#g:method:thawNotify"), [unref]("GI.GObject.Objects.Object#g:method:unref"), [watchClosure]("GI.GObject.Objects.Object#g:method:watchClosure").
-- 
-- ==== Getters
-- [getData]("GI.GObject.Objects.Object#g:method:getData"), [getProperty]("GI.GObject.Objects.Object#g:method:getProperty"), [getQdata]("GI.GObject.Objects.Object#g:method:getQdata").
-- 
-- ==== Setters
-- [setData]("GI.GObject.Objects.Object#g:method:setData"), [setDataFull]("GI.GObject.Objects.Object#g:method:setDataFull"), [setProperty]("GI.GObject.Objects.Object#g:method:setProperty").

#if defined(ENABLE_OVERLOADING)
    ResolveDOMDOMImplementationMethod       ,
#endif

-- ** createCssStyleSheet #method:createCssStyleSheet#

#if defined(ENABLE_OVERLOADING)
    DOMDOMImplementationCreateCssStyleSheetMethodInfo,
#endif
    dOMDOMImplementationCreateCssStyleSheet ,


-- ** createDocument #method:createDocument#

#if defined(ENABLE_OVERLOADING)
    DOMDOMImplementationCreateDocumentMethodInfo,
#endif
    dOMDOMImplementationCreateDocument      ,


-- ** createDocumentType #method:createDocumentType#

#if defined(ENABLE_OVERLOADING)
    DOMDOMImplementationCreateDocumentTypeMethodInfo,
#endif
    dOMDOMImplementationCreateDocumentType  ,


-- ** createHtmlDocument #method:createHtmlDocument#

#if defined(ENABLE_OVERLOADING)
    DOMDOMImplementationCreateHtmlDocumentMethodInfo,
#endif
    dOMDOMImplementationCreateHtmlDocument  ,


-- ** hasFeature #method:hasFeature#

#if defined(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.BasicTypes as B.Types
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GArray as B.GArray
import qualified Data.GI.Base.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GHashTable as B.GHT
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.GI.Base.Signals as B.Signals
import qualified Control.Monad.IO.Class as MIO
import qualified Data.Coerce as Coerce
import qualified Data.Text as T
import qualified Data.Kind as DK
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 GHC.Records as R
import qualified Data.Word as DW
import qualified Data.Int as DI
import qualified System.Posix.Types as SPT
import qualified Foreign.C.Types as FCT

-- Workaround for https://gitlab.haskell.org/ghc/ghc/-/issues/23392
#if MIN_VERSION_base(4,18,0)
import qualified GI.GObject.Objects.Object as GObject.Object
import qualified GI.JavaScriptCore.Objects.Value as JavaScriptCore.Value
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Interfaces.DOMEventTarget as WebKit2WebExtension.DOMEventTarget
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Interfaces.DOMNodeFilter as WebKit2WebExtension.DOMNodeFilter
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Interfaces.DOMXPathNSResolver as WebKit2WebExtension.DOMXPathNSResolver
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMAttr as WebKit2WebExtension.DOMAttr
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMCDATASection as WebKit2WebExtension.DOMCDATASection
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMCSSRule as WebKit2WebExtension.DOMCSSRule
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMCSSRuleList as WebKit2WebExtension.DOMCSSRuleList
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMCSSStyleDeclaration as WebKit2WebExtension.DOMCSSStyleDeclaration
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMCSSStyleSheet as WebKit2WebExtension.DOMCSSStyleSheet
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMCharacterData as WebKit2WebExtension.DOMCharacterData
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMClientRect as WebKit2WebExtension.DOMClientRect
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMClientRectList as WebKit2WebExtension.DOMClientRectList
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMComment as WebKit2WebExtension.DOMComment
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMDOMSelection as WebKit2WebExtension.DOMDOMSelection
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMDOMTokenList as WebKit2WebExtension.DOMDOMTokenList
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMDOMWindow as WebKit2WebExtension.DOMDOMWindow
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMDocument as WebKit2WebExtension.DOMDocument
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMDocumentFragment as WebKit2WebExtension.DOMDocumentFragment
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMDocumentType as WebKit2WebExtension.DOMDocumentType
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMElement as WebKit2WebExtension.DOMElement
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMEntityReference as WebKit2WebExtension.DOMEntityReference
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMEvent as WebKit2WebExtension.DOMEvent
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMHTMLCollection as WebKit2WebExtension.DOMHTMLCollection
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMHTMLDocument as WebKit2WebExtension.DOMHTMLDocument
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMHTMLElement as WebKit2WebExtension.DOMHTMLElement
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMHTMLHeadElement as WebKit2WebExtension.DOMHTMLHeadElement
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMHTMLScriptElement as WebKit2WebExtension.DOMHTMLScriptElement
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMMediaList as WebKit2WebExtension.DOMMediaList
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMNamedNodeMap as WebKit2WebExtension.DOMNamedNodeMap
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMNode as WebKit2WebExtension.DOMNode
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMNodeIterator as WebKit2WebExtension.DOMNodeIterator
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMNodeList as WebKit2WebExtension.DOMNodeList
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMObject as WebKit2WebExtension.DOMObject
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMProcessingInstruction as WebKit2WebExtension.DOMProcessingInstruction
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMRange as WebKit2WebExtension.DOMRange
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMStyleSheet as WebKit2WebExtension.DOMStyleSheet
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMStyleSheetList as WebKit2WebExtension.DOMStyleSheetList
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMText as WebKit2WebExtension.DOMText
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMTreeWalker as WebKit2WebExtension.DOMTreeWalker
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMXPathExpression as WebKit2WebExtension.DOMXPathExpression
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMXPathResult as WebKit2WebExtension.DOMXPathResult

#else
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

#endif

-- | Memory-managed wrapper type.
newtype DOMDOMImplementation = DOMDOMImplementation (SP.ManagedPtr DOMDOMImplementation)
    deriving (DOMDOMImplementation -> DOMDOMImplementation -> Bool
(DOMDOMImplementation -> DOMDOMImplementation -> Bool)
-> (DOMDOMImplementation -> DOMDOMImplementation -> Bool)
-> Eq DOMDOMImplementation
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: DOMDOMImplementation -> DOMDOMImplementation -> Bool
== :: DOMDOMImplementation -> DOMDOMImplementation -> Bool
$c/= :: DOMDOMImplementation -> DOMDOMImplementation -> Bool
/= :: DOMDOMImplementation -> DOMDOMImplementation -> Bool
Eq)

instance SP.ManagedPtrNewtype DOMDOMImplementation where
    toManagedPtr :: DOMDOMImplementation -> ManagedPtr DOMDOMImplementation
toManagedPtr (DOMDOMImplementation ManagedPtr DOMDOMImplementation
p) = ManagedPtr DOMDOMImplementation
p

foreign import ccall "webkit_dom_dom_implementation_get_type"
    c_webkit_dom_dom_implementation_get_type :: IO B.Types.GType

instance B.Types.TypedObject DOMDOMImplementation where
    glibType :: IO GType
glibType = IO GType
c_webkit_dom_dom_implementation_get_type

instance B.Types.GObject DOMDOMImplementation

-- | Type class for types which can be safely cast to `DOMDOMImplementation`, for instance with `toDOMDOMImplementation`.
class (SP.GObject o, O.IsDescendantOf DOMDOMImplementation o) => IsDOMDOMImplementation o
instance (SP.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 :: (MIO.MonadIO m, IsDOMDOMImplementation o) => o -> m DOMDOMImplementation
toDOMDOMImplementation :: forall (m :: * -> *) o.
(MonadIO m, IsDOMDOMImplementation o) =>
o -> m DOMDOMImplementation
toDOMDOMImplementation = IO DOMDOMImplementation -> m DOMDOMImplementation
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO DOMDOMImplementation -> m DOMDOMImplementation)
-> (o -> IO DOMDOMImplementation) -> o -> m DOMDOMImplementation
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ManagedPtr DOMDOMImplementation -> DOMDOMImplementation)
-> o -> IO DOMDOMImplementation
forall o o'.
(HasCallStack, ManagedPtrNewtype o, TypedObject o,
 ManagedPtrNewtype o', TypedObject o') =>
(ManagedPtr o' -> o') -> o -> IO o'
B.ManagedPtr.unsafeCastTo ManagedPtr DOMDOMImplementation -> DOMDOMImplementation
DOMDOMImplementation

-- | Convert 'DOMDOMImplementation' to and from 'Data.GI.Base.GValue.GValue'. See 'Data.GI.Base.GValue.toGValue' and 'Data.GI.Base.GValue.fromGValue'.
instance B.GValue.IsGValue (Maybe DOMDOMImplementation) where
    gvalueGType_ :: IO GType
gvalueGType_ = IO GType
c_webkit_dom_dom_implementation_get_type
    gvalueSet_ :: Ptr GValue -> Maybe DOMDOMImplementation -> IO ()
gvalueSet_ Ptr GValue
gv Maybe DOMDOMImplementation
P.Nothing = Ptr GValue -> Ptr DOMDOMImplementation -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv (Ptr DOMDOMImplementation
forall a. Ptr a
FP.nullPtr :: FP.Ptr DOMDOMImplementation)
    gvalueSet_ Ptr GValue
gv (P.Just DOMDOMImplementation
obj) = DOMDOMImplementation
-> (Ptr DOMDOMImplementation -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr DOMDOMImplementation
obj (Ptr GValue -> Ptr DOMDOMImplementation -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv)
    gvalueGet_ :: Ptr GValue -> IO (Maybe DOMDOMImplementation)
gvalueGet_ Ptr GValue
gv = do
        Ptr DOMDOMImplementation
ptr <- Ptr GValue -> IO (Ptr DOMDOMImplementation)
forall a. GObject a => Ptr GValue -> IO (Ptr a)
B.GValue.get_object Ptr GValue
gv :: IO (FP.Ptr DOMDOMImplementation)
        if Ptr DOMDOMImplementation
ptr Ptr DOMDOMImplementation -> Ptr DOMDOMImplementation -> Bool
forall a. Eq a => a -> a -> Bool
/= Ptr DOMDOMImplementation
forall a. Ptr a
FP.nullPtr
        then DOMDOMImplementation -> Maybe DOMDOMImplementation
forall a. a -> Maybe a
P.Just (DOMDOMImplementation -> Maybe DOMDOMImplementation)
-> IO DOMDOMImplementation -> IO (Maybe DOMDOMImplementation)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (ManagedPtr DOMDOMImplementation -> DOMDOMImplementation)
-> Ptr DOMDOMImplementation -> IO DOMDOMImplementation
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
B.ManagedPtr.newObject ManagedPtr DOMDOMImplementation -> DOMDOMImplementation
DOMDOMImplementation Ptr DOMDOMImplementation
ptr
        else Maybe DOMDOMImplementation -> IO (Maybe DOMDOMImplementation)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe DOMDOMImplementation
forall a. Maybe a
P.Nothing
        
    

#if defined(ENABLE_OVERLOADING)
type family ResolveDOMDOMImplementationMethod (t :: Symbol) (o :: DK.Type) :: DK.Type 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.OverloadedMethod info DOMDOMImplementation p) => OL.IsLabel t (DOMDOMImplementation -> p) where
#if MIN_VERSION_base(4,10,0)
    fromLabel = O.overloadedMethod @info
#else
    fromLabel _ = O.overloadedMethod @info
#endif

#if MIN_VERSION_base(4,13,0)
instance (info ~ ResolveDOMDOMImplementationMethod t DOMDOMImplementation, O.OverloadedMethod info DOMDOMImplementation p, R.HasField t DOMDOMImplementation p) => R.HasField t DOMDOMImplementation p where
    getField = O.overloadedMethod @info

#endif

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

#endif

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

#if defined(ENABLE_OVERLOADING)
#endif

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

#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
--           , argCallbackUserData = 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
--           , argCallbackUserData = 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
--           , argCallbackUserData = 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 t'GI.WebKit2WebExtension.Objects.DOMDOMImplementation.DOMDOMImplementation'
    -> T.Text
    -- ^ /@title@/: A @/gchar/@
    -> T.Text
    -- ^ /@media@/: A @/gchar/@
    -> m WebKit2WebExtension.DOMCSSStyleSheet.DOMCSSStyleSheet
    -- ^ __Returns:__ A t'GI.WebKit2WebExtension.Objects.DOMCSSStyleSheet.DOMCSSStyleSheet' /(Can throw 'Data.GI.Base.GError.GError')/
dOMDOMImplementationCreateCssStyleSheet :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsDOMDOMImplementation a) =>
a -> Text -> Text -> m DOMCSSStyleSheet
dOMDOMImplementationCreateCssStyleSheet a
self Text
title Text
media = IO DOMCSSStyleSheet -> m DOMCSSStyleSheet
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO DOMCSSStyleSheet -> m DOMCSSStyleSheet)
-> IO DOMCSSStyleSheet -> m DOMCSSStyleSheet
forall a b. (a -> b) -> a -> b
$ do
    Ptr DOMDOMImplementation
self' <- a -> IO (Ptr DOMDOMImplementation)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    CString
title' <- Text -> IO CString
textToCString Text
title
    CString
media' <- Text -> IO CString
textToCString Text
media
    IO DOMCSSStyleSheet -> IO () -> IO DOMCSSStyleSheet
forall a b. IO a -> IO b -> IO a
onException (do
        Ptr DOMCSSStyleSheet
result <- (Ptr (Ptr GError) -> IO (Ptr DOMCSSStyleSheet))
-> IO (Ptr DOMCSSStyleSheet)
forall a. (Ptr (Ptr GError) -> IO a) -> IO a
propagateGError ((Ptr (Ptr GError) -> IO (Ptr DOMCSSStyleSheet))
 -> IO (Ptr DOMCSSStyleSheet))
-> (Ptr (Ptr GError) -> IO (Ptr DOMCSSStyleSheet))
-> IO (Ptr DOMCSSStyleSheet)
forall a b. (a -> b) -> a -> b
$ Ptr DOMDOMImplementation
-> CString
-> CString
-> Ptr (Ptr GError)
-> IO (Ptr DOMCSSStyleSheet)
webkit_dom_dom_implementation_create_css_style_sheet Ptr DOMDOMImplementation
self' CString
title' CString
media'
        Text -> Ptr DOMCSSStyleSheet -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"dOMDOMImplementationCreateCssStyleSheet" Ptr DOMCSSStyleSheet
result
        DOMCSSStyleSheet
result' <- ((ManagedPtr DOMCSSStyleSheet -> DOMCSSStyleSheet)
-> Ptr DOMCSSStyleSheet -> IO DOMCSSStyleSheet
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
wrapObject ManagedPtr DOMCSSStyleSheet -> DOMCSSStyleSheet
WebKit2WebExtension.DOMCSSStyleSheet.DOMCSSStyleSheet) Ptr DOMCSSStyleSheet
result
        a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
        CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
title'
        CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
media'
        DOMCSSStyleSheet -> IO DOMCSSStyleSheet
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return DOMCSSStyleSheet
result'
     ) (do
        CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
title'
        CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
media'
     )

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

instance O.OverloadedMethodInfo DOMDOMImplementationCreateCssStyleSheetMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.WebKit2WebExtension.Objects.DOMDOMImplementation.dOMDOMImplementationCreateCssStyleSheet",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-webkit2webextension-4.0.31/docs/GI-WebKit2WebExtension-Objects-DOMDOMImplementation.html#v: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
--           , argCallbackUserData = 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
--           , argCallbackUserData = 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
--           , argCallbackUserData = 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
--           , argCallbackUserData = 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 t'GI.WebKit2WebExtension.Objects.DOMDOMImplementation.DOMDOMImplementation'
    -> Maybe (T.Text)
    -- ^ /@namespaceURI@/: A @/gchar/@
    -> T.Text
    -- ^ /@qualifiedName@/: A @/gchar/@
    -> Maybe (b)
    -- ^ /@doctype@/: A t'GI.WebKit2WebExtension.Objects.DOMDocumentType.DOMDocumentType'
    -> m WebKit2WebExtension.DOMDocument.DOMDocument
    -- ^ __Returns:__ A t'GI.WebKit2WebExtension.Objects.DOMDocument.DOMDocument' /(Can throw 'Data.GI.Base.GError.GError')/
dOMDOMImplementationCreateDocument :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsDOMDOMImplementation a,
 IsDOMDocumentType b) =>
a -> Maybe Text -> Text -> Maybe b -> m DOMDocument
dOMDOMImplementationCreateDocument a
self Maybe Text
namespaceURI Text
qualifiedName Maybe b
doctype = IO DOMDocument -> m DOMDocument
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO DOMDocument -> m DOMDocument)
-> IO DOMDocument -> m DOMDocument
forall a b. (a -> b) -> a -> b
$ do
    Ptr DOMDOMImplementation
self' <- a -> IO (Ptr DOMDOMImplementation)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    CString
maybeNamespaceURI <- case Maybe Text
namespaceURI of
        Maybe Text
Nothing -> CString -> IO CString
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return CString
forall a. Ptr a
nullPtr
        Just Text
jNamespaceURI -> do
            CString
jNamespaceURI' <- Text -> IO CString
textToCString Text
jNamespaceURI
            CString -> IO CString
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return CString
jNamespaceURI'
    CString
qualifiedName' <- Text -> IO CString
textToCString Text
qualifiedName
    Ptr DOMDocumentType
maybeDoctype <- case Maybe b
doctype of
        Maybe b
Nothing -> Ptr DOMDocumentType -> IO (Ptr DOMDocumentType)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr DOMDocumentType
forall a. Ptr a
nullPtr
        Just b
jDoctype -> do
            Ptr DOMDocumentType
jDoctype' <- b -> IO (Ptr DOMDocumentType)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
jDoctype
            Ptr DOMDocumentType -> IO (Ptr DOMDocumentType)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr DOMDocumentType
jDoctype'
    IO DOMDocument -> IO () -> IO DOMDocument
forall a b. IO a -> IO b -> IO a
onException (do
        Ptr DOMDocument
result <- (Ptr (Ptr GError) -> IO (Ptr DOMDocument)) -> IO (Ptr DOMDocument)
forall a. (Ptr (Ptr GError) -> IO a) -> IO a
propagateGError ((Ptr (Ptr GError) -> IO (Ptr DOMDocument))
 -> IO (Ptr DOMDocument))
-> (Ptr (Ptr GError) -> IO (Ptr DOMDocument))
-> IO (Ptr DOMDocument)
forall a b. (a -> b) -> a -> b
$ Ptr DOMDOMImplementation
-> CString
-> CString
-> Ptr DOMDocumentType
-> Ptr (Ptr GError)
-> IO (Ptr DOMDocument)
webkit_dom_dom_implementation_create_document Ptr DOMDOMImplementation
self' CString
maybeNamespaceURI CString
qualifiedName' Ptr DOMDocumentType
maybeDoctype
        Text -> Ptr DOMDocument -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"dOMDOMImplementationCreateDocument" Ptr DOMDocument
result
        DOMDocument
result' <- ((ManagedPtr DOMDocument -> DOMDocument)
-> Ptr DOMDocument -> IO DOMDocument
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr DOMDocument -> DOMDocument
WebKit2WebExtension.DOMDocument.DOMDocument) Ptr DOMDocument
result
        a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
        Maybe b -> (b -> IO ()) -> IO ()
forall (m :: * -> *) a. Monad m => Maybe a -> (a -> m ()) -> m ()
whenJust Maybe b
doctype b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr
        CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
maybeNamespaceURI
        CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
qualifiedName'
        DOMDocument -> IO DOMDocument
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return DOMDocument
result'
     ) (do
        CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
maybeNamespaceURI
        CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
qualifiedName'
     )

#if defined(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.OverloadedMethod DOMDOMImplementationCreateDocumentMethodInfo a signature where
    overloadedMethod = dOMDOMImplementationCreateDocument

instance O.OverloadedMethodInfo DOMDOMImplementationCreateDocumentMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.WebKit2WebExtension.Objects.DOMDOMImplementation.dOMDOMImplementationCreateDocument",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-webkit2webextension-4.0.31/docs/GI-WebKit2WebExtension-Objects-DOMDOMImplementation.html#v: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
--           , argCallbackUserData = 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
--           , argCallbackUserData = 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
--           , argCallbackUserData = 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
--           , argCallbackUserData = 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 t'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 t'GI.WebKit2WebExtension.Objects.DOMDocumentType.DOMDocumentType' /(Can throw 'Data.GI.Base.GError.GError')/
dOMDOMImplementationCreateDocumentType :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsDOMDOMImplementation a) =>
a -> Text -> Text -> Text -> m DOMDocumentType
dOMDOMImplementationCreateDocumentType a
self Text
qualifiedName Text
publicId Text
systemId = IO DOMDocumentType -> m DOMDocumentType
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO DOMDocumentType -> m DOMDocumentType)
-> IO DOMDocumentType -> m DOMDocumentType
forall a b. (a -> b) -> a -> b
$ do
    Ptr DOMDOMImplementation
self' <- a -> IO (Ptr DOMDOMImplementation)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    CString
qualifiedName' <- Text -> IO CString
textToCString Text
qualifiedName
    CString
publicId' <- Text -> IO CString
textToCString Text
publicId
    CString
systemId' <- Text -> IO CString
textToCString Text
systemId
    IO DOMDocumentType -> IO () -> IO DOMDocumentType
forall a b. IO a -> IO b -> IO a
onException (do
        Ptr DOMDocumentType
result <- (Ptr (Ptr GError) -> IO (Ptr DOMDocumentType))
-> IO (Ptr DOMDocumentType)
forall a. (Ptr (Ptr GError) -> IO a) -> IO a
propagateGError ((Ptr (Ptr GError) -> IO (Ptr DOMDocumentType))
 -> IO (Ptr DOMDocumentType))
-> (Ptr (Ptr GError) -> IO (Ptr DOMDocumentType))
-> IO (Ptr DOMDocumentType)
forall a b. (a -> b) -> a -> b
$ Ptr DOMDOMImplementation
-> CString
-> CString
-> CString
-> Ptr (Ptr GError)
-> IO (Ptr DOMDocumentType)
webkit_dom_dom_implementation_create_document_type Ptr DOMDOMImplementation
self' CString
qualifiedName' CString
publicId' CString
systemId'
        Text -> Ptr DOMDocumentType -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"dOMDOMImplementationCreateDocumentType" Ptr DOMDocumentType
result
        DOMDocumentType
result' <- ((ManagedPtr DOMDocumentType -> DOMDocumentType)
-> Ptr DOMDocumentType -> IO DOMDocumentType
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr DOMDocumentType -> DOMDocumentType
WebKit2WebExtension.DOMDocumentType.DOMDocumentType) Ptr DOMDocumentType
result
        a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
        CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
qualifiedName'
        CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
publicId'
        CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
systemId'
        DOMDocumentType -> IO DOMDocumentType
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return DOMDocumentType
result'
     ) (do
        CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
qualifiedName'
        CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
publicId'
        CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
systemId'
     )

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

instance O.OverloadedMethodInfo DOMDOMImplementationCreateDocumentTypeMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.WebKit2WebExtension.Objects.DOMDOMImplementation.dOMDOMImplementationCreateDocumentType",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-webkit2webextension-4.0.31/docs/GI-WebKit2WebExtension-Objects-DOMDOMImplementation.html#v: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
--           , argCallbackUserData = 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
--           , argCallbackUserData = 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 t'GI.WebKit2WebExtension.Objects.DOMDOMImplementation.DOMDOMImplementation'
    -> T.Text
    -- ^ /@title@/: A @/gchar/@
    -> m WebKit2WebExtension.DOMHTMLDocument.DOMHTMLDocument
    -- ^ __Returns:__ A t'GI.WebKit2WebExtension.Objects.DOMHTMLDocument.DOMHTMLDocument'
dOMDOMImplementationCreateHtmlDocument :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsDOMDOMImplementation a) =>
a -> Text -> m DOMHTMLDocument
dOMDOMImplementationCreateHtmlDocument a
self Text
title = IO DOMHTMLDocument -> m DOMHTMLDocument
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO DOMHTMLDocument -> m DOMHTMLDocument)
-> IO DOMHTMLDocument -> m DOMHTMLDocument
forall a b. (a -> b) -> a -> b
$ do
    Ptr DOMDOMImplementation
self' <- a -> IO (Ptr DOMDOMImplementation)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    CString
title' <- Text -> IO CString
textToCString Text
title
    Ptr DOMHTMLDocument
result <- Ptr DOMDOMImplementation -> CString -> IO (Ptr DOMHTMLDocument)
webkit_dom_dom_implementation_create_html_document Ptr DOMDOMImplementation
self' CString
title'
    Text -> Ptr DOMHTMLDocument -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"dOMDOMImplementationCreateHtmlDocument" Ptr DOMHTMLDocument
result
    DOMHTMLDocument
result' <- ((ManagedPtr DOMHTMLDocument -> DOMHTMLDocument)
-> Ptr DOMHTMLDocument -> IO DOMHTMLDocument
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr DOMHTMLDocument -> DOMHTMLDocument
WebKit2WebExtension.DOMHTMLDocument.DOMHTMLDocument) Ptr DOMHTMLDocument
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
title'
    DOMHTMLDocument -> IO DOMHTMLDocument
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return DOMHTMLDocument
result'

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

instance O.OverloadedMethodInfo DOMDOMImplementationCreateHtmlDocumentMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.WebKit2WebExtension.Objects.DOMDOMImplementation.dOMDOMImplementationCreateHtmlDocument",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-webkit2webextension-4.0.31/docs/GI-WebKit2WebExtension-Objects-DOMDOMImplementation.html#v: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
--           , argCallbackUserData = 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
--           , argCallbackUserData = 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
--           , argCallbackUserData = 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 t'GI.WebKit2WebExtension.Objects.DOMDOMImplementation.DOMDOMImplementation'
    -> T.Text
    -- ^ /@feature@/: A @/gchar/@
    -> T.Text
    -- ^ /@version@/: A @/gchar/@
    -> m Bool
    -- ^ __Returns:__ A t'P.Bool'
dOMDOMImplementationHasFeature :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsDOMDOMImplementation a) =>
a -> Text -> Text -> m Bool
dOMDOMImplementationHasFeature a
self Text
feature Text
version = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr DOMDOMImplementation
self' <- a -> IO (Ptr DOMDOMImplementation)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    CString
feature' <- Text -> IO CString
textToCString Text
feature
    CString
version' <- Text -> IO CString
textToCString Text
version
    CInt
result <- Ptr DOMDOMImplementation -> CString -> CString -> IO CInt
webkit_dom_dom_implementation_has_feature Ptr DOMDOMImplementation
self' CString
feature' CString
version'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
feature'
    CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
version'
    Bool -> IO Bool
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

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

instance O.OverloadedMethodInfo DOMDOMImplementationHasFeatureMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.WebKit2WebExtension.Objects.DOMDOMImplementation.dOMDOMImplementationHasFeature",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-webkit2webextension-4.0.31/docs/GI-WebKit2WebExtension-Objects-DOMDOMImplementation.html#v:dOMDOMImplementationHasFeature"
        })


#endif