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

-- * Exported types
    DOMCharacterData(..)                    ,
    IsDOMCharacterData                      ,
    toDOMCharacterData                      ,
    noDOMCharacterData                      ,


 -- * Methods
-- ** appendData #method:appendData#

#if ENABLE_OVERLOADING
    DOMCharacterDataAppendDataMethodInfo    ,
#endif
    dOMCharacterDataAppendData              ,


-- ** deleteData #method:deleteData#

#if ENABLE_OVERLOADING
    DOMCharacterDataDeleteDataMethodInfo    ,
#endif
    dOMCharacterDataDeleteData              ,


-- ** getData #method:getData#

#if ENABLE_OVERLOADING
    DOMCharacterDataGetDataMethodInfo       ,
#endif
    dOMCharacterDataGetData                 ,


-- ** getLength #method:getLength#

#if ENABLE_OVERLOADING
    DOMCharacterDataGetLengthMethodInfo     ,
#endif
    dOMCharacterDataGetLength               ,


-- ** insertData #method:insertData#

#if ENABLE_OVERLOADING
    DOMCharacterDataInsertDataMethodInfo    ,
#endif
    dOMCharacterDataInsertData              ,


-- ** replaceData #method:replaceData#

#if ENABLE_OVERLOADING
    DOMCharacterDataReplaceDataMethodInfo   ,
#endif
    dOMCharacterDataReplaceData             ,


-- ** setData #method:setData#

#if ENABLE_OVERLOADING
    DOMCharacterDataSetDataMethodInfo       ,
#endif
    dOMCharacterDataSetData                 ,


-- ** substringData #method:substringData#

#if ENABLE_OVERLOADING
    DOMCharacterDataSubstringDataMethodInfo ,
#endif
    dOMCharacterDataSubstringData           ,




 -- * Properties
-- ** data #attr:data#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    DOMCharacterDataDataPropertyInfo        ,
#endif
    clearDOMCharacterDataData               ,
    constructDOMCharacterDataData           ,
#if ENABLE_OVERLOADING
    dOMCharacterDataData                    ,
#endif
    getDOMCharacterDataData                 ,
    setDOMCharacterDataData                 ,


-- ** length #attr:length#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    DOMCharacterDataLengthPropertyInfo      ,
#endif
#if ENABLE_OVERLOADING
    dOMCharacterDataLength                  ,
#endif
    getDOMCharacterDataLength               ,




    ) 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.Interfaces.DOMEventTarget as WebKit2WebExtension.DOMEventTarget
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMNode as WebKit2WebExtension.DOMNode
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMObject as WebKit2WebExtension.DOMObject

-- | Memory-managed wrapper type.
newtype DOMCharacterData = DOMCharacterData (ManagedPtr DOMCharacterData)
foreign import ccall "webkit_dom_character_data_get_type"
    c_webkit_dom_character_data_get_type :: IO GType

instance GObject DOMCharacterData where
    gobjectType = c_webkit_dom_character_data_get_type


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

instance O.HasParentTypes DOMCharacterData
type instance O.ParentTypes DOMCharacterData = '[WebKit2WebExtension.DOMNode.DOMNode, WebKit2WebExtension.DOMObject.DOMObject, GObject.Object.Object, WebKit2WebExtension.DOMEventTarget.DOMEventTarget]

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

-- | A convenience alias for `Nothing` :: `Maybe` `DOMCharacterData`.
noDOMCharacterData :: Maybe DOMCharacterData
noDOMCharacterData = Nothing

#if ENABLE_OVERLOADING
type family ResolveDOMCharacterDataMethod (t :: Symbol) (o :: *) :: * where
    ResolveDOMCharacterDataMethod "addEventListener" o = WebKit2WebExtension.DOMEventTarget.DOMEventTargetAddEventListenerMethodInfo
    ResolveDOMCharacterDataMethod "appendChild" o = WebKit2WebExtension.DOMNode.DOMNodeAppendChildMethodInfo
    ResolveDOMCharacterDataMethod "appendData" o = DOMCharacterDataAppendDataMethodInfo
    ResolveDOMCharacterDataMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
    ResolveDOMCharacterDataMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
    ResolveDOMCharacterDataMethod "cloneNodeWithError" o = WebKit2WebExtension.DOMNode.DOMNodeCloneNodeWithErrorMethodInfo
    ResolveDOMCharacterDataMethod "compareDocumentPosition" o = WebKit2WebExtension.DOMNode.DOMNodeCompareDocumentPositionMethodInfo
    ResolveDOMCharacterDataMethod "contains" o = WebKit2WebExtension.DOMNode.DOMNodeContainsMethodInfo
    ResolveDOMCharacterDataMethod "deleteData" o = DOMCharacterDataDeleteDataMethodInfo
    ResolveDOMCharacterDataMethod "dispatchEvent" o = WebKit2WebExtension.DOMEventTarget.DOMEventTargetDispatchEventMethodInfo
    ResolveDOMCharacterDataMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
    ResolveDOMCharacterDataMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
    ResolveDOMCharacterDataMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
    ResolveDOMCharacterDataMethod "hasChildNodes" o = WebKit2WebExtension.DOMNode.DOMNodeHasChildNodesMethodInfo
    ResolveDOMCharacterDataMethod "insertBefore" o = WebKit2WebExtension.DOMNode.DOMNodeInsertBeforeMethodInfo
    ResolveDOMCharacterDataMethod "insertData" o = DOMCharacterDataInsertDataMethodInfo
    ResolveDOMCharacterDataMethod "isDefaultNamespace" o = WebKit2WebExtension.DOMNode.DOMNodeIsDefaultNamespaceMethodInfo
    ResolveDOMCharacterDataMethod "isEqualNode" o = WebKit2WebExtension.DOMNode.DOMNodeIsEqualNodeMethodInfo
    ResolveDOMCharacterDataMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
    ResolveDOMCharacterDataMethod "isSameNode" o = WebKit2WebExtension.DOMNode.DOMNodeIsSameNodeMethodInfo
    ResolveDOMCharacterDataMethod "isSupported" o = WebKit2WebExtension.DOMNode.DOMNodeIsSupportedMethodInfo
    ResolveDOMCharacterDataMethod "lookupNamespaceUri" o = WebKit2WebExtension.DOMNode.DOMNodeLookupNamespaceUriMethodInfo
    ResolveDOMCharacterDataMethod "lookupPrefix" o = WebKit2WebExtension.DOMNode.DOMNodeLookupPrefixMethodInfo
    ResolveDOMCharacterDataMethod "normalize" o = WebKit2WebExtension.DOMNode.DOMNodeNormalizeMethodInfo
    ResolveDOMCharacterDataMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
    ResolveDOMCharacterDataMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
    ResolveDOMCharacterDataMethod "ref" o = GObject.Object.ObjectRefMethodInfo
    ResolveDOMCharacterDataMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
    ResolveDOMCharacterDataMethod "removeChild" o = WebKit2WebExtension.DOMNode.DOMNodeRemoveChildMethodInfo
    ResolveDOMCharacterDataMethod "removeEventListener" o = WebKit2WebExtension.DOMEventTarget.DOMEventTargetRemoveEventListenerMethodInfo
    ResolveDOMCharacterDataMethod "replaceChild" o = WebKit2WebExtension.DOMNode.DOMNodeReplaceChildMethodInfo
    ResolveDOMCharacterDataMethod "replaceData" o = DOMCharacterDataReplaceDataMethodInfo
    ResolveDOMCharacterDataMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
    ResolveDOMCharacterDataMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
    ResolveDOMCharacterDataMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
    ResolveDOMCharacterDataMethod "substringData" o = DOMCharacterDataSubstringDataMethodInfo
    ResolveDOMCharacterDataMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
    ResolveDOMCharacterDataMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
    ResolveDOMCharacterDataMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
    ResolveDOMCharacterDataMethod "getBaseUri" o = WebKit2WebExtension.DOMNode.DOMNodeGetBaseUriMethodInfo
    ResolveDOMCharacterDataMethod "getChildNodes" o = WebKit2WebExtension.DOMNode.DOMNodeGetChildNodesMethodInfo
    ResolveDOMCharacterDataMethod "getData" o = DOMCharacterDataGetDataMethodInfo
    ResolveDOMCharacterDataMethod "getFirstChild" o = WebKit2WebExtension.DOMNode.DOMNodeGetFirstChildMethodInfo
    ResolveDOMCharacterDataMethod "getLastChild" o = WebKit2WebExtension.DOMNode.DOMNodeGetLastChildMethodInfo
    ResolveDOMCharacterDataMethod "getLength" o = DOMCharacterDataGetLengthMethodInfo
    ResolveDOMCharacterDataMethod "getLocalName" o = WebKit2WebExtension.DOMNode.DOMNodeGetLocalNameMethodInfo
    ResolveDOMCharacterDataMethod "getNamespaceUri" o = WebKit2WebExtension.DOMNode.DOMNodeGetNamespaceUriMethodInfo
    ResolveDOMCharacterDataMethod "getNextSibling" o = WebKit2WebExtension.DOMNode.DOMNodeGetNextSiblingMethodInfo
    ResolveDOMCharacterDataMethod "getNodeName" o = WebKit2WebExtension.DOMNode.DOMNodeGetNodeNameMethodInfo
    ResolveDOMCharacterDataMethod "getNodeType" o = WebKit2WebExtension.DOMNode.DOMNodeGetNodeTypeMethodInfo
    ResolveDOMCharacterDataMethod "getNodeValue" o = WebKit2WebExtension.DOMNode.DOMNodeGetNodeValueMethodInfo
    ResolveDOMCharacterDataMethod "getOwnerDocument" o = WebKit2WebExtension.DOMNode.DOMNodeGetOwnerDocumentMethodInfo
    ResolveDOMCharacterDataMethod "getParentElement" o = WebKit2WebExtension.DOMNode.DOMNodeGetParentElementMethodInfo
    ResolveDOMCharacterDataMethod "getParentNode" o = WebKit2WebExtension.DOMNode.DOMNodeGetParentNodeMethodInfo
    ResolveDOMCharacterDataMethod "getPrefix" o = WebKit2WebExtension.DOMNode.DOMNodeGetPrefixMethodInfo
    ResolveDOMCharacterDataMethod "getPreviousSibling" o = WebKit2WebExtension.DOMNode.DOMNodeGetPreviousSiblingMethodInfo
    ResolveDOMCharacterDataMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
    ResolveDOMCharacterDataMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
    ResolveDOMCharacterDataMethod "getTextContent" o = WebKit2WebExtension.DOMNode.DOMNodeGetTextContentMethodInfo
    ResolveDOMCharacterDataMethod "setData" o = DOMCharacterDataSetDataMethodInfo
    ResolveDOMCharacterDataMethod "setNodeValue" o = WebKit2WebExtension.DOMNode.DOMNodeSetNodeValueMethodInfo
    ResolveDOMCharacterDataMethod "setPrefix" o = WebKit2WebExtension.DOMNode.DOMNodeSetPrefixMethodInfo
    ResolveDOMCharacterDataMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
    ResolveDOMCharacterDataMethod "setTextContent" o = WebKit2WebExtension.DOMNode.DOMNodeSetTextContentMethodInfo
    ResolveDOMCharacterDataMethod l o = O.MethodResolutionFailed l o

instance (info ~ ResolveDOMCharacterDataMethod t DOMCharacterData, O.MethodInfo info DOMCharacterData p) => OL.IsLabel t (DOMCharacterData -> 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

-- VVV Prop "data"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Nothing,Nothing)

{- |
Get the value of the “@data@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.get' dOMCharacterData #data
@
-}
getDOMCharacterDataData :: (MonadIO m, IsDOMCharacterData o) => o -> m (Maybe T.Text)
getDOMCharacterDataData obj = liftIO $ B.Properties.getObjectPropertyString obj "data"

{- |
Set the value of the “@data@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.set' dOMCharacterData [ #data 'Data.GI.Base.Attributes.:=' value ]
@
-}
setDOMCharacterDataData :: (MonadIO m, IsDOMCharacterData o) => o -> T.Text -> m ()
setDOMCharacterDataData obj val = liftIO $ B.Properties.setObjectPropertyString obj "data" (Just val)

{- |
Construct a `GValueConstruct` with valid value for the “@data@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
-}
constructDOMCharacterDataData :: (IsDOMCharacterData o) => T.Text -> IO (GValueConstruct o)
constructDOMCharacterDataData val = B.Properties.constructObjectPropertyString "data" (Just val)

{- |
Set the value of the “@data@” property to `Nothing`.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.clear' #data
@
-}
clearDOMCharacterDataData :: (MonadIO m, IsDOMCharacterData o) => o -> m ()
clearDOMCharacterDataData obj = liftIO $ B.Properties.setObjectPropertyString obj "data" (Nothing :: Maybe T.Text)

#if ENABLE_OVERLOADING
data DOMCharacterDataDataPropertyInfo
instance AttrInfo DOMCharacterDataDataPropertyInfo where
    type AttrAllowedOps DOMCharacterDataDataPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint DOMCharacterDataDataPropertyInfo = (~) T.Text
    type AttrBaseTypeConstraint DOMCharacterDataDataPropertyInfo = IsDOMCharacterData
    type AttrGetType DOMCharacterDataDataPropertyInfo = (Maybe T.Text)
    type AttrLabel DOMCharacterDataDataPropertyInfo = "data"
    type AttrOrigin DOMCharacterDataDataPropertyInfo = DOMCharacterData
    attrGet _ = getDOMCharacterDataData
    attrSet _ = setDOMCharacterDataData
    attrConstruct _ = constructDOMCharacterDataData
    attrClear _ = clearDOMCharacterDataData
#endif

-- VVV Prop "length"
   -- Type: TBasicType TULong
   -- Flags: [PropertyReadable]
   -- Nullable: (Just False,Nothing)

{- |
Get the value of the “@length@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.get' dOMCharacterData #length
@
-}
getDOMCharacterDataLength :: (MonadIO m, IsDOMCharacterData o) => o -> m CULong
getDOMCharacterDataLength obj = liftIO $ B.Properties.getObjectPropertyULong obj "length"

#if ENABLE_OVERLOADING
data DOMCharacterDataLengthPropertyInfo
instance AttrInfo DOMCharacterDataLengthPropertyInfo where
    type AttrAllowedOps DOMCharacterDataLengthPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMCharacterDataLengthPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMCharacterDataLengthPropertyInfo = IsDOMCharacterData
    type AttrGetType DOMCharacterDataLengthPropertyInfo = CULong
    type AttrLabel DOMCharacterDataLengthPropertyInfo = "length"
    type AttrOrigin DOMCharacterDataLengthPropertyInfo = DOMCharacterData
    attrGet _ = getDOMCharacterDataLength
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined
#endif

#if ENABLE_OVERLOADING
instance O.HasAttributeList DOMCharacterData
type instance O.AttributeList DOMCharacterData = DOMCharacterDataAttributeList
type DOMCharacterDataAttributeList = ('[ '("baseUri", WebKit2WebExtension.DOMNode.DOMNodeBaseUriPropertyInfo), '("childNodes", WebKit2WebExtension.DOMNode.DOMNodeChildNodesPropertyInfo), '("coreObject", WebKit2WebExtension.DOMObject.DOMObjectCoreObjectPropertyInfo), '("data", DOMCharacterDataDataPropertyInfo), '("firstChild", WebKit2WebExtension.DOMNode.DOMNodeFirstChildPropertyInfo), '("lastChild", WebKit2WebExtension.DOMNode.DOMNodeLastChildPropertyInfo), '("length", DOMCharacterDataLengthPropertyInfo), '("nextSibling", WebKit2WebExtension.DOMNode.DOMNodeNextSiblingPropertyInfo), '("nodeName", WebKit2WebExtension.DOMNode.DOMNodeNodeNamePropertyInfo), '("nodeType", WebKit2WebExtension.DOMNode.DOMNodeNodeTypePropertyInfo), '("nodeValue", WebKit2WebExtension.DOMNode.DOMNodeNodeValuePropertyInfo), '("ownerDocument", WebKit2WebExtension.DOMNode.DOMNodeOwnerDocumentPropertyInfo), '("parentElement", WebKit2WebExtension.DOMNode.DOMNodeParentElementPropertyInfo), '("parentNode", WebKit2WebExtension.DOMNode.DOMNodeParentNodePropertyInfo), '("previousSibling", WebKit2WebExtension.DOMNode.DOMNodePreviousSiblingPropertyInfo), '("textContent", WebKit2WebExtension.DOMNode.DOMNodeTextContentPropertyInfo)] :: [(Symbol, *)])
#endif

#if ENABLE_OVERLOADING
dOMCharacterDataData :: AttrLabelProxy "data"
dOMCharacterDataData = AttrLabelProxy

dOMCharacterDataLength :: AttrLabelProxy "length"
dOMCharacterDataLength = AttrLabelProxy

#endif

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

#endif

-- method DOMCharacterData::append_data
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMCharacterData"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMCharacterData", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", 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 : Nothing
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_character_data_append_data" webkit_dom_character_data_append_data ::
    Ptr DOMCharacterData ->                 -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMCharacterData"})
    CString ->                              -- data : TBasicType TUTF8
    Ptr (Ptr GError) ->                     -- error
    IO ()

{-# DEPRECATED dOMCharacterDataAppendData ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/No description available in the introspection data./
-}
dOMCharacterDataAppendData ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMCharacterData a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMCharacterData.DOMCharacterData' -}
    -> T.Text
    {- ^ /@data@/: A @/gchar/@ -}
    -> m ()
    {- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
dOMCharacterDataAppendData self data_ = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    data_' <- textToCString data_
    onException (do
        propagateGError $ webkit_dom_character_data_append_data self' data_'
        touchManagedPtr self
        freeMem data_'
        return ()
     ) (do
        freeMem data_'
     )

#if ENABLE_OVERLOADING
data DOMCharacterDataAppendDataMethodInfo
instance (signature ~ (T.Text -> m ()), MonadIO m, IsDOMCharacterData a) => O.MethodInfo DOMCharacterDataAppendDataMethodInfo a signature where
    overloadedMethod _ = dOMCharacterDataAppendData

#endif

-- method DOMCharacterData::delete_data
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMCharacterData"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMCharacterData", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "offset", argType = TBasicType TULong, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #gulong", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TULong, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #gulong", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_character_data_delete_data" webkit_dom_character_data_delete_data ::
    Ptr DOMCharacterData ->                 -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMCharacterData"})
    CULong ->                               -- offset : TBasicType TULong
    CULong ->                               -- length : TBasicType TULong
    Ptr (Ptr GError) ->                     -- error
    IO ()

{-# DEPRECATED dOMCharacterDataDeleteData ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/No description available in the introspection data./
-}
dOMCharacterDataDeleteData ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMCharacterData a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMCharacterData.DOMCharacterData' -}
    -> CULong
    {- ^ /@offset@/: A @/gulong/@ -}
    -> CULong
    {- ^ /@length@/: A @/gulong/@ -}
    -> m ()
    {- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
dOMCharacterDataDeleteData self offset length_ = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    onException (do
        propagateGError $ webkit_dom_character_data_delete_data self' offset length_
        touchManagedPtr self
        return ()
     ) (do
        return ()
     )

#if ENABLE_OVERLOADING
data DOMCharacterDataDeleteDataMethodInfo
instance (signature ~ (CULong -> CULong -> m ()), MonadIO m, IsDOMCharacterData a) => O.MethodInfo DOMCharacterDataDeleteDataMethodInfo a signature where
    overloadedMethod _ = dOMCharacterDataDeleteData

#endif

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

foreign import ccall "webkit_dom_character_data_get_data" webkit_dom_character_data_get_data ::
    Ptr DOMCharacterData ->                 -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMCharacterData"})
    IO CString

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

#if ENABLE_OVERLOADING
data DOMCharacterDataGetDataMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsDOMCharacterData a) => O.MethodInfo DOMCharacterDataGetDataMethodInfo a signature where
    overloadedMethod _ = dOMCharacterDataGetData

#endif

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

foreign import ccall "webkit_dom_character_data_get_length" webkit_dom_character_data_get_length ::
    Ptr DOMCharacterData ->                 -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMCharacterData"})
    IO CULong

{-# DEPRECATED dOMCharacterDataGetLength ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/No description available in the introspection data./
-}
dOMCharacterDataGetLength ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMCharacterData a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMCharacterData.DOMCharacterData' -}
    -> m CULong
    {- ^ __Returns:__ A @/gulong/@ -}
dOMCharacterDataGetLength self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    result <- webkit_dom_character_data_get_length self'
    touchManagedPtr self
    return result

#if ENABLE_OVERLOADING
data DOMCharacterDataGetLengthMethodInfo
instance (signature ~ (m CULong), MonadIO m, IsDOMCharacterData a) => O.MethodInfo DOMCharacterDataGetLengthMethodInfo a signature where
    overloadedMethod _ = dOMCharacterDataGetLength

#endif

-- method DOMCharacterData::insert_data
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMCharacterData"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMCharacterData", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "offset", argType = TBasicType TULong, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #gulong", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", 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 : Nothing
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_character_data_insert_data" webkit_dom_character_data_insert_data ::
    Ptr DOMCharacterData ->                 -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMCharacterData"})
    CULong ->                               -- offset : TBasicType TULong
    CString ->                              -- data : TBasicType TUTF8
    Ptr (Ptr GError) ->                     -- error
    IO ()

{-# DEPRECATED dOMCharacterDataInsertData ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/No description available in the introspection data./
-}
dOMCharacterDataInsertData ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMCharacterData a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMCharacterData.DOMCharacterData' -}
    -> CULong
    {- ^ /@offset@/: A @/gulong/@ -}
    -> T.Text
    {- ^ /@data@/: A @/gchar/@ -}
    -> m ()
    {- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
dOMCharacterDataInsertData self offset data_ = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    data_' <- textToCString data_
    onException (do
        propagateGError $ webkit_dom_character_data_insert_data self' offset data_'
        touchManagedPtr self
        freeMem data_'
        return ()
     ) (do
        freeMem data_'
     )

#if ENABLE_OVERLOADING
data DOMCharacterDataInsertDataMethodInfo
instance (signature ~ (CULong -> T.Text -> m ()), MonadIO m, IsDOMCharacterData a) => O.MethodInfo DOMCharacterDataInsertDataMethodInfo a signature where
    overloadedMethod _ = dOMCharacterDataInsertData

#endif

-- method DOMCharacterData::replace_data
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMCharacterData"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMCharacterData", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "offset", argType = TBasicType TULong, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #gulong", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TULong, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #gulong", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", 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 : Nothing
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_character_data_replace_data" webkit_dom_character_data_replace_data ::
    Ptr DOMCharacterData ->                 -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMCharacterData"})
    CULong ->                               -- offset : TBasicType TULong
    CULong ->                               -- length : TBasicType TULong
    CString ->                              -- data : TBasicType TUTF8
    Ptr (Ptr GError) ->                     -- error
    IO ()

{-# DEPRECATED dOMCharacterDataReplaceData ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/No description available in the introspection data./
-}
dOMCharacterDataReplaceData ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMCharacterData a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMCharacterData.DOMCharacterData' -}
    -> CULong
    {- ^ /@offset@/: A @/gulong/@ -}
    -> CULong
    {- ^ /@length@/: A @/gulong/@ -}
    -> T.Text
    {- ^ /@data@/: A @/gchar/@ -}
    -> m ()
    {- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
dOMCharacterDataReplaceData self offset length_ data_ = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    data_' <- textToCString data_
    onException (do
        propagateGError $ webkit_dom_character_data_replace_data self' offset length_ data_'
        touchManagedPtr self
        freeMem data_'
        return ()
     ) (do
        freeMem data_'
     )

#if ENABLE_OVERLOADING
data DOMCharacterDataReplaceDataMethodInfo
instance (signature ~ (CULong -> CULong -> T.Text -> m ()), MonadIO m, IsDOMCharacterData a) => O.MethodInfo DOMCharacterDataReplaceDataMethodInfo a signature where
    overloadedMethod _ = dOMCharacterDataReplaceData

#endif

-- method DOMCharacterData::set_data
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMCharacterData"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMCharacterData", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", 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 : Nothing
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_character_data_set_data" webkit_dom_character_data_set_data ::
    Ptr DOMCharacterData ->                 -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMCharacterData"})
    CString ->                              -- value : TBasicType TUTF8
    Ptr (Ptr GError) ->                     -- error
    IO ()

{-# DEPRECATED dOMCharacterDataSetData ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/No description available in the introspection data./
-}
dOMCharacterDataSetData ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMCharacterData a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMCharacterData.DOMCharacterData' -}
    -> T.Text
    {- ^ /@value@/: A @/gchar/@ -}
    -> m ()
    {- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
dOMCharacterDataSetData self value = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    value' <- textToCString value
    onException (do
        propagateGError $ webkit_dom_character_data_set_data self' value'
        touchManagedPtr self
        freeMem value'
        return ()
     ) (do
        freeMem value'
     )

#if ENABLE_OVERLOADING
data DOMCharacterDataSetDataMethodInfo
instance (signature ~ (T.Text -> m ()), MonadIO m, IsDOMCharacterData a) => O.MethodInfo DOMCharacterDataSetDataMethodInfo a signature where
    overloadedMethod _ = dOMCharacterDataSetData

#endif

-- method DOMCharacterData::substring_data
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMCharacterData"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMCharacterData", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "offset", argType = TBasicType TULong, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #gulong", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TULong, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #gulong", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TUTF8)
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_character_data_substring_data" webkit_dom_character_data_substring_data ::
    Ptr DOMCharacterData ->                 -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMCharacterData"})
    CULong ->                               -- offset : TBasicType TULong
    CULong ->                               -- length : TBasicType TULong
    Ptr (Ptr GError) ->                     -- error
    IO CString

{-# DEPRECATED dOMCharacterDataSubstringData ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/No description available in the introspection data./
-}
dOMCharacterDataSubstringData ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMCharacterData a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMCharacterData.DOMCharacterData' -}
    -> CULong
    {- ^ /@offset@/: A @/gulong/@ -}
    -> CULong
    {- ^ /@length@/: A @/gulong/@ -}
    -> m T.Text
    {- ^ __Returns:__ A @/gchar/@ /(Can throw 'Data.GI.Base.GError.GError')/ -}
dOMCharacterDataSubstringData self offset length_ = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    onException (do
        result <- propagateGError $ webkit_dom_character_data_substring_data self' offset length_
        checkUnexpectedReturnNULL "dOMCharacterDataSubstringData" result
        result' <- cstringToText result
        freeMem result
        touchManagedPtr self
        return result'
     ) (do
        return ()
     )

#if ENABLE_OVERLOADING
data DOMCharacterDataSubstringDataMethodInfo
instance (signature ~ (CULong -> CULong -> m T.Text), MonadIO m, IsDOMCharacterData a) => O.MethodInfo DOMCharacterDataSubstringDataMethodInfo a signature where
    overloadedMethod _ = dOMCharacterDataSubstringData

#endif