{-# 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.DOMAttr
    ( 

-- * Exported types
    DOMAttr(..)                             ,
    IsDOMAttr                               ,
    toDOMAttr                               ,


 -- * Methods
-- | 
-- 
--  === __Click to display all available methods, including inherited ones__
-- ==== Methods
-- [addEventListener]("GI.WebKit2WebExtension.Interfaces.DOMEventTarget#g:method:addEventListener"), [appendChild]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:appendChild"), [bindProperty]("GI.GObject.Objects.Object#g:method:bindProperty"), [bindPropertyFull]("GI.GObject.Objects.Object#g:method:bindPropertyFull"), [cloneNodeWithError]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:cloneNodeWithError"), [compareDocumentPosition]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:compareDocumentPosition"), [contains]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:contains"), [dispatchEvent]("GI.WebKit2WebExtension.Interfaces.DOMEventTarget#g:method:dispatchEvent"), [forceFloating]("GI.GObject.Objects.Object#g:method:forceFloating"), [freezeNotify]("GI.GObject.Objects.Object#g:method:freezeNotify"), [getv]("GI.GObject.Objects.Object#g:method:getv"), [hasChildNodes]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:hasChildNodes"), [insertBefore]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:insertBefore"), [isDefaultNamespace]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:isDefaultNamespace"), [isEqualNode]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:isEqualNode"), [isFloating]("GI.GObject.Objects.Object#g:method:isFloating"), [isSameNode]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:isSameNode"), [isSupported]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:isSupported"), [lookupNamespaceUri]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:lookupNamespaceUri"), [lookupPrefix]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:lookupPrefix"), [normalize]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:normalize"), [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"), [removeChild]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:removeChild"), [removeEventListener]("GI.WebKit2WebExtension.Interfaces.DOMEventTarget#g:method:removeEventListener"), [replaceChild]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:replaceChild"), [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
-- [getBaseUri]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:getBaseUri"), [getChildNodes]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:getChildNodes"), [getData]("GI.GObject.Objects.Object#g:method:getData"), [getFirstChild]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:getFirstChild"), [getLastChild]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:getLastChild"), [getLocalName]("GI.WebKit2WebExtension.Objects.DOMAttr#g:method:getLocalName"), [getName]("GI.WebKit2WebExtension.Objects.DOMAttr#g:method:getName"), [getNamespaceUri]("GI.WebKit2WebExtension.Objects.DOMAttr#g:method:getNamespaceUri"), [getNextSibling]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:getNextSibling"), [getNodeName]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:getNodeName"), [getNodeType]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:getNodeType"), [getNodeValue]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:getNodeValue"), [getOwnerDocument]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:getOwnerDocument"), [getOwnerElement]("GI.WebKit2WebExtension.Objects.DOMAttr#g:method:getOwnerElement"), [getParentElement]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:getParentElement"), [getParentNode]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:getParentNode"), [getPrefix]("GI.WebKit2WebExtension.Objects.DOMAttr#g:method:getPrefix"), [getPreviousSibling]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:getPreviousSibling"), [getProperty]("GI.GObject.Objects.Object#g:method:getProperty"), [getQdata]("GI.GObject.Objects.Object#g:method:getQdata"), [getSpecified]("GI.WebKit2WebExtension.Objects.DOMAttr#g:method:getSpecified"), [getTextContent]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:getTextContent"), [getValue]("GI.WebKit2WebExtension.Objects.DOMAttr#g:method:getValue").
-- 
-- ==== Setters
-- [setData]("GI.GObject.Objects.Object#g:method:setData"), [setDataFull]("GI.GObject.Objects.Object#g:method:setDataFull"), [setNodeValue]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:setNodeValue"), [setPrefix]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:setPrefix"), [setProperty]("GI.GObject.Objects.Object#g:method:setProperty"), [setTextContent]("GI.WebKit2WebExtension.Objects.DOMNode#g:method:setTextContent"), [setValue]("GI.WebKit2WebExtension.Objects.DOMAttr#g:method:setValue").

#if defined(ENABLE_OVERLOADING)
    ResolveDOMAttrMethod                    ,
#endif

-- ** getLocalName #method:getLocalName#

#if defined(ENABLE_OVERLOADING)
    DOMAttrGetLocalNameMethodInfo           ,
#endif
    dOMAttrGetLocalName                     ,


-- ** getName #method:getName#

#if defined(ENABLE_OVERLOADING)
    DOMAttrGetNameMethodInfo                ,
#endif
    dOMAttrGetName                          ,


-- ** getNamespaceUri #method:getNamespaceUri#

#if defined(ENABLE_OVERLOADING)
    DOMAttrGetNamespaceUriMethodInfo        ,
#endif
    dOMAttrGetNamespaceUri                  ,


-- ** getOwnerElement #method:getOwnerElement#

#if defined(ENABLE_OVERLOADING)
    DOMAttrGetOwnerElementMethodInfo        ,
#endif
    dOMAttrGetOwnerElement                  ,


-- ** getPrefix #method:getPrefix#

#if defined(ENABLE_OVERLOADING)
    DOMAttrGetPrefixMethodInfo              ,
#endif
    dOMAttrGetPrefix                        ,


-- ** getSpecified #method:getSpecified#

#if defined(ENABLE_OVERLOADING)
    DOMAttrGetSpecifiedMethodInfo           ,
#endif
    dOMAttrGetSpecified                     ,


-- ** getValue #method:getValue#

#if defined(ENABLE_OVERLOADING)
    DOMAttrGetValueMethodInfo               ,
#endif
    dOMAttrGetValue                         ,


-- ** setValue #method:setValue#

#if defined(ENABLE_OVERLOADING)
    DOMAttrSetValueMethodInfo               ,
#endif
    dOMAttrSetValue                         ,




 -- * Properties


-- ** localName #attr:localName#
-- | /No description available in the introspection data./

#if defined(ENABLE_OVERLOADING)
    DOMAttrLocalNamePropertyInfo            ,
#endif
#if defined(ENABLE_OVERLOADING)
    dOMAttrLocalName                        ,
#endif
    getDOMAttrLocalName                     ,


-- ** name #attr:name#
-- | /No description available in the introspection data./

#if defined(ENABLE_OVERLOADING)
    DOMAttrNamePropertyInfo                 ,
#endif
#if defined(ENABLE_OVERLOADING)
    dOMAttrName                             ,
#endif
    getDOMAttrName                          ,


-- ** namespaceUri #attr:namespaceUri#
-- | /No description available in the introspection data./

#if defined(ENABLE_OVERLOADING)
    DOMAttrNamespaceUriPropertyInfo         ,
#endif
#if defined(ENABLE_OVERLOADING)
    dOMAttrNamespaceUri                     ,
#endif
    getDOMAttrNamespaceUri                  ,


-- ** ownerElement #attr:ownerElement#
-- | /No description available in the introspection data./

#if defined(ENABLE_OVERLOADING)
    DOMAttrOwnerElementPropertyInfo         ,
#endif
#if defined(ENABLE_OVERLOADING)
    dOMAttrOwnerElement                     ,
#endif
    getDOMAttrOwnerElement                  ,


-- ** prefix #attr:prefix#
-- | /No description available in the introspection data./

#if defined(ENABLE_OVERLOADING)
    DOMAttrPrefixPropertyInfo               ,
#endif
#if defined(ENABLE_OVERLOADING)
    dOMAttrPrefix                           ,
#endif
    getDOMAttrPrefix                        ,


-- ** specified #attr:specified#
-- | /No description available in the introspection data./

#if defined(ENABLE_OVERLOADING)
    DOMAttrSpecifiedPropertyInfo            ,
#endif
#if defined(ENABLE_OVERLOADING)
    dOMAttrSpecified                        ,
#endif
    getDOMAttrSpecified                     ,


-- ** value #attr:value#
-- | /No description available in the introspection data./

#if defined(ENABLE_OVERLOADING)
    DOMAttrValuePropertyInfo                ,
#endif
    clearDOMAttrValue                       ,
    constructDOMAttrValue                   ,
#if defined(ENABLE_OVERLOADING)
    dOMAttrValue                            ,
#endif
    getDOMAttrValue                         ,
    setDOMAttrValue                         ,




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

#endif

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

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

foreign import ccall "webkit_dom_attr_get_type"
    c_webkit_dom_attr_get_type :: IO B.Types.GType

instance B.Types.TypedObject DOMAttr where
    glibType :: IO GType
glibType = IO GType
c_webkit_dom_attr_get_type

instance B.Types.GObject DOMAttr

-- | Type class for types which can be safely cast to `DOMAttr`, for instance with `toDOMAttr`.
class (SP.GObject o, O.IsDescendantOf DOMAttr o) => IsDOMAttr o
instance (SP.GObject o, O.IsDescendantOf DOMAttr o) => IsDOMAttr o

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

-- | Cast to `DOMAttr`, for types for which this is known to be safe. For general casts, use `Data.GI.Base.ManagedPtr.castTo`.
toDOMAttr :: (MIO.MonadIO m, IsDOMAttr o) => o -> m DOMAttr
toDOMAttr :: forall (m :: * -> *) o. (MonadIO m, IsDOMAttr o) => o -> m DOMAttr
toDOMAttr = IO DOMAttr -> m DOMAttr
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO DOMAttr -> m DOMAttr) -> (o -> IO DOMAttr) -> o -> m DOMAttr
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ManagedPtr DOMAttr -> DOMAttr) -> o -> IO DOMAttr
forall o o'.
(HasCallStack, ManagedPtrNewtype o, TypedObject o,
 ManagedPtrNewtype o', TypedObject o') =>
(ManagedPtr o' -> o') -> o -> IO o'
B.ManagedPtr.unsafeCastTo ManagedPtr DOMAttr -> DOMAttr
DOMAttr

-- | Convert 'DOMAttr' 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 DOMAttr) where
    gvalueGType_ :: IO GType
gvalueGType_ = IO GType
c_webkit_dom_attr_get_type
    gvalueSet_ :: Ptr GValue -> Maybe DOMAttr -> IO ()
gvalueSet_ Ptr GValue
gv Maybe DOMAttr
P.Nothing = Ptr GValue -> Ptr DOMAttr -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv (Ptr DOMAttr
forall a. Ptr a
FP.nullPtr :: FP.Ptr DOMAttr)
    gvalueSet_ Ptr GValue
gv (P.Just DOMAttr
obj) = DOMAttr -> (Ptr DOMAttr -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr DOMAttr
obj (Ptr GValue -> Ptr DOMAttr -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv)
    gvalueGet_ :: Ptr GValue -> IO (Maybe DOMAttr)
gvalueGet_ Ptr GValue
gv = do
        Ptr DOMAttr
ptr <- Ptr GValue -> IO (Ptr DOMAttr)
forall a. GObject a => Ptr GValue -> IO (Ptr a)
B.GValue.get_object Ptr GValue
gv :: IO (FP.Ptr DOMAttr)
        if Ptr DOMAttr
ptr Ptr DOMAttr -> Ptr DOMAttr -> Bool
forall a. Eq a => a -> a -> Bool
/= Ptr DOMAttr
forall a. Ptr a
FP.nullPtr
        then DOMAttr -> Maybe DOMAttr
forall a. a -> Maybe a
P.Just (DOMAttr -> Maybe DOMAttr) -> IO DOMAttr -> IO (Maybe DOMAttr)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (ManagedPtr DOMAttr -> DOMAttr) -> Ptr DOMAttr -> IO DOMAttr
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
B.ManagedPtr.newObject ManagedPtr DOMAttr -> DOMAttr
DOMAttr Ptr DOMAttr
ptr
        else Maybe DOMAttr -> IO (Maybe DOMAttr)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe DOMAttr
forall a. Maybe a
P.Nothing
        
    

#if defined(ENABLE_OVERLOADING)
type family ResolveDOMAttrMethod (t :: Symbol) (o :: DK.Type) :: DK.Type where
    ResolveDOMAttrMethod "addEventListener" o = WebKit2WebExtension.DOMEventTarget.DOMEventTargetAddEventListenerMethodInfo
    ResolveDOMAttrMethod "appendChild" o = WebKit2WebExtension.DOMNode.DOMNodeAppendChildMethodInfo
    ResolveDOMAttrMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
    ResolveDOMAttrMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
    ResolveDOMAttrMethod "cloneNodeWithError" o = WebKit2WebExtension.DOMNode.DOMNodeCloneNodeWithErrorMethodInfo
    ResolveDOMAttrMethod "compareDocumentPosition" o = WebKit2WebExtension.DOMNode.DOMNodeCompareDocumentPositionMethodInfo
    ResolveDOMAttrMethod "contains" o = WebKit2WebExtension.DOMNode.DOMNodeContainsMethodInfo
    ResolveDOMAttrMethod "dispatchEvent" o = WebKit2WebExtension.DOMEventTarget.DOMEventTargetDispatchEventMethodInfo
    ResolveDOMAttrMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
    ResolveDOMAttrMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
    ResolveDOMAttrMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
    ResolveDOMAttrMethod "hasChildNodes" o = WebKit2WebExtension.DOMNode.DOMNodeHasChildNodesMethodInfo
    ResolveDOMAttrMethod "insertBefore" o = WebKit2WebExtension.DOMNode.DOMNodeInsertBeforeMethodInfo
    ResolveDOMAttrMethod "isDefaultNamespace" o = WebKit2WebExtension.DOMNode.DOMNodeIsDefaultNamespaceMethodInfo
    ResolveDOMAttrMethod "isEqualNode" o = WebKit2WebExtension.DOMNode.DOMNodeIsEqualNodeMethodInfo
    ResolveDOMAttrMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
    ResolveDOMAttrMethod "isSameNode" o = WebKit2WebExtension.DOMNode.DOMNodeIsSameNodeMethodInfo
    ResolveDOMAttrMethod "isSupported" o = WebKit2WebExtension.DOMNode.DOMNodeIsSupportedMethodInfo
    ResolveDOMAttrMethod "lookupNamespaceUri" o = WebKit2WebExtension.DOMNode.DOMNodeLookupNamespaceUriMethodInfo
    ResolveDOMAttrMethod "lookupPrefix" o = WebKit2WebExtension.DOMNode.DOMNodeLookupPrefixMethodInfo
    ResolveDOMAttrMethod "normalize" o = WebKit2WebExtension.DOMNode.DOMNodeNormalizeMethodInfo
    ResolveDOMAttrMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
    ResolveDOMAttrMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
    ResolveDOMAttrMethod "ref" o = GObject.Object.ObjectRefMethodInfo
    ResolveDOMAttrMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
    ResolveDOMAttrMethod "removeChild" o = WebKit2WebExtension.DOMNode.DOMNodeRemoveChildMethodInfo
    ResolveDOMAttrMethod "removeEventListener" o = WebKit2WebExtension.DOMEventTarget.DOMEventTargetRemoveEventListenerMethodInfo
    ResolveDOMAttrMethod "replaceChild" o = WebKit2WebExtension.DOMNode.DOMNodeReplaceChildMethodInfo
    ResolveDOMAttrMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
    ResolveDOMAttrMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
    ResolveDOMAttrMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
    ResolveDOMAttrMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
    ResolveDOMAttrMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
    ResolveDOMAttrMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
    ResolveDOMAttrMethod "getBaseUri" o = WebKit2WebExtension.DOMNode.DOMNodeGetBaseUriMethodInfo
    ResolveDOMAttrMethod "getChildNodes" o = WebKit2WebExtension.DOMNode.DOMNodeGetChildNodesMethodInfo
    ResolveDOMAttrMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
    ResolveDOMAttrMethod "getFirstChild" o = WebKit2WebExtension.DOMNode.DOMNodeGetFirstChildMethodInfo
    ResolveDOMAttrMethod "getLastChild" o = WebKit2WebExtension.DOMNode.DOMNodeGetLastChildMethodInfo
    ResolveDOMAttrMethod "getLocalName" o = DOMAttrGetLocalNameMethodInfo
    ResolveDOMAttrMethod "getName" o = DOMAttrGetNameMethodInfo
    ResolveDOMAttrMethod "getNamespaceUri" o = DOMAttrGetNamespaceUriMethodInfo
    ResolveDOMAttrMethod "getNextSibling" o = WebKit2WebExtension.DOMNode.DOMNodeGetNextSiblingMethodInfo
    ResolveDOMAttrMethod "getNodeName" o = WebKit2WebExtension.DOMNode.DOMNodeGetNodeNameMethodInfo
    ResolveDOMAttrMethod "getNodeType" o = WebKit2WebExtension.DOMNode.DOMNodeGetNodeTypeMethodInfo
    ResolveDOMAttrMethod "getNodeValue" o = WebKit2WebExtension.DOMNode.DOMNodeGetNodeValueMethodInfo
    ResolveDOMAttrMethod "getOwnerDocument" o = WebKit2WebExtension.DOMNode.DOMNodeGetOwnerDocumentMethodInfo
    ResolveDOMAttrMethod "getOwnerElement" o = DOMAttrGetOwnerElementMethodInfo
    ResolveDOMAttrMethod "getParentElement" o = WebKit2WebExtension.DOMNode.DOMNodeGetParentElementMethodInfo
    ResolveDOMAttrMethod "getParentNode" o = WebKit2WebExtension.DOMNode.DOMNodeGetParentNodeMethodInfo
    ResolveDOMAttrMethod "getPrefix" o = DOMAttrGetPrefixMethodInfo
    ResolveDOMAttrMethod "getPreviousSibling" o = WebKit2WebExtension.DOMNode.DOMNodeGetPreviousSiblingMethodInfo
    ResolveDOMAttrMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
    ResolveDOMAttrMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
    ResolveDOMAttrMethod "getSpecified" o = DOMAttrGetSpecifiedMethodInfo
    ResolveDOMAttrMethod "getTextContent" o = WebKit2WebExtension.DOMNode.DOMNodeGetTextContentMethodInfo
    ResolveDOMAttrMethod "getValue" o = DOMAttrGetValueMethodInfo
    ResolveDOMAttrMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
    ResolveDOMAttrMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
    ResolveDOMAttrMethod "setNodeValue" o = WebKit2WebExtension.DOMNode.DOMNodeSetNodeValueMethodInfo
    ResolveDOMAttrMethod "setPrefix" o = WebKit2WebExtension.DOMNode.DOMNodeSetPrefixMethodInfo
    ResolveDOMAttrMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
    ResolveDOMAttrMethod "setTextContent" o = WebKit2WebExtension.DOMNode.DOMNodeSetTextContentMethodInfo
    ResolveDOMAttrMethod "setValue" o = DOMAttrSetValueMethodInfo
    ResolveDOMAttrMethod l o = O.MethodResolutionFailed l o

instance (info ~ ResolveDOMAttrMethod t DOMAttr, O.OverloadedMethod info DOMAttr p) => OL.IsLabel t (DOMAttr -> 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 ~ ResolveDOMAttrMethod t DOMAttr, O.OverloadedMethod info DOMAttr p, R.HasField t DOMAttr p) => R.HasField t DOMAttr p where
    getField = O.overloadedMethod @info

#endif

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

#endif

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

-- | Get the value of the “@local-name@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' dOMAttr #localName
-- @
getDOMAttrLocalName :: (MonadIO m, IsDOMAttr o) => o -> m (Maybe T.Text)
getDOMAttrLocalName :: forall (m :: * -> *) o.
(MonadIO m, IsDOMAttr o) =>
o -> m (Maybe Text)
getDOMAttrLocalName o
obj = IO (Maybe Text) -> m (Maybe Text)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (Maybe Text) -> m (Maybe Text))
-> IO (Maybe Text) -> m (Maybe Text)
forall a b. (a -> b) -> a -> b
$ o -> String -> IO (Maybe Text)
forall a. GObject a => a -> String -> IO (Maybe Text)
B.Properties.getObjectPropertyString o
obj String
"local-name"

#if defined(ENABLE_OVERLOADING)
data DOMAttrLocalNamePropertyInfo
instance AttrInfo DOMAttrLocalNamePropertyInfo where
    type AttrAllowedOps DOMAttrLocalNamePropertyInfo = '[ 'AttrGet, 'AttrClear]
    type AttrBaseTypeConstraint DOMAttrLocalNamePropertyInfo = IsDOMAttr
    type AttrSetTypeConstraint DOMAttrLocalNamePropertyInfo = (~) ()
    type AttrTransferTypeConstraint DOMAttrLocalNamePropertyInfo = (~) ()
    type AttrTransferType DOMAttrLocalNamePropertyInfo = ()
    type AttrGetType DOMAttrLocalNamePropertyInfo = (Maybe T.Text)
    type AttrLabel DOMAttrLocalNamePropertyInfo = "local-name"
    type AttrOrigin DOMAttrLocalNamePropertyInfo = DOMAttr
    attrGet = getDOMAttrLocalName
    attrSet = undefined
    attrTransfer _ = undefined
    attrConstruct = undefined
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.WebKit2WebExtension.Objects.DOMAttr.localName"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-webkit2webextension-4.0.31/docs/GI-WebKit2WebExtension-Objects-DOMAttr.html#g:attr:localName"
        })
#endif

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

-- | Get the value of the “@name@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' dOMAttr #name
-- @
getDOMAttrName :: (MonadIO m, IsDOMAttr o) => o -> m (Maybe T.Text)
getDOMAttrName :: forall (m :: * -> *) o.
(MonadIO m, IsDOMAttr o) =>
o -> m (Maybe Text)
getDOMAttrName o
obj = IO (Maybe Text) -> m (Maybe Text)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (Maybe Text) -> m (Maybe Text))
-> IO (Maybe Text) -> m (Maybe Text)
forall a b. (a -> b) -> a -> b
$ o -> String -> IO (Maybe Text)
forall a. GObject a => a -> String -> IO (Maybe Text)
B.Properties.getObjectPropertyString o
obj String
"name"

#if defined(ENABLE_OVERLOADING)
data DOMAttrNamePropertyInfo
instance AttrInfo DOMAttrNamePropertyInfo where
    type AttrAllowedOps DOMAttrNamePropertyInfo = '[ 'AttrGet, 'AttrClear]
    type AttrBaseTypeConstraint DOMAttrNamePropertyInfo = IsDOMAttr
    type AttrSetTypeConstraint DOMAttrNamePropertyInfo = (~) ()
    type AttrTransferTypeConstraint DOMAttrNamePropertyInfo = (~) ()
    type AttrTransferType DOMAttrNamePropertyInfo = ()
    type AttrGetType DOMAttrNamePropertyInfo = (Maybe T.Text)
    type AttrLabel DOMAttrNamePropertyInfo = "name"
    type AttrOrigin DOMAttrNamePropertyInfo = DOMAttr
    attrGet = getDOMAttrName
    attrSet = undefined
    attrTransfer _ = undefined
    attrConstruct = undefined
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.WebKit2WebExtension.Objects.DOMAttr.name"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-webkit2webextension-4.0.31/docs/GI-WebKit2WebExtension-Objects-DOMAttr.html#g:attr:name"
        })
#endif

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

-- | Get the value of the “@namespace-uri@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' dOMAttr #namespaceUri
-- @
getDOMAttrNamespaceUri :: (MonadIO m, IsDOMAttr o) => o -> m (Maybe T.Text)
getDOMAttrNamespaceUri :: forall (m :: * -> *) o.
(MonadIO m, IsDOMAttr o) =>
o -> m (Maybe Text)
getDOMAttrNamespaceUri o
obj = IO (Maybe Text) -> m (Maybe Text)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (Maybe Text) -> m (Maybe Text))
-> IO (Maybe Text) -> m (Maybe Text)
forall a b. (a -> b) -> a -> b
$ o -> String -> IO (Maybe Text)
forall a. GObject a => a -> String -> IO (Maybe Text)
B.Properties.getObjectPropertyString o
obj String
"namespace-uri"

#if defined(ENABLE_OVERLOADING)
data DOMAttrNamespaceUriPropertyInfo
instance AttrInfo DOMAttrNamespaceUriPropertyInfo where
    type AttrAllowedOps DOMAttrNamespaceUriPropertyInfo = '[ 'AttrGet, 'AttrClear]
    type AttrBaseTypeConstraint DOMAttrNamespaceUriPropertyInfo = IsDOMAttr
    type AttrSetTypeConstraint DOMAttrNamespaceUriPropertyInfo = (~) ()
    type AttrTransferTypeConstraint DOMAttrNamespaceUriPropertyInfo = (~) ()
    type AttrTransferType DOMAttrNamespaceUriPropertyInfo = ()
    type AttrGetType DOMAttrNamespaceUriPropertyInfo = (Maybe T.Text)
    type AttrLabel DOMAttrNamespaceUriPropertyInfo = "namespace-uri"
    type AttrOrigin DOMAttrNamespaceUriPropertyInfo = DOMAttr
    attrGet = getDOMAttrNamespaceUri
    attrSet = undefined
    attrTransfer _ = undefined
    attrConstruct = undefined
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.WebKit2WebExtension.Objects.DOMAttr.namespaceUri"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-webkit2webextension-4.0.31/docs/GI-WebKit2WebExtension-Objects-DOMAttr.html#g:attr:namespaceUri"
        })
#endif

-- VVV Prop "owner-element"
   -- Type: TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMElement"})
   -- Flags: [PropertyReadable]
   -- Nullable: (Just False,Nothing)

-- | Get the value of the “@owner-element@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' dOMAttr #ownerElement
-- @
getDOMAttrOwnerElement :: (MonadIO m, IsDOMAttr o) => o -> m WebKit2WebExtension.DOMElement.DOMElement
getDOMAttrOwnerElement :: forall (m :: * -> *) o.
(MonadIO m, IsDOMAttr o) =>
o -> m DOMElement
getDOMAttrOwnerElement o
obj = IO DOMElement -> m DOMElement
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO DOMElement -> m DOMElement) -> IO DOMElement -> m DOMElement
forall a b. (a -> b) -> a -> b
$ Text -> IO (Maybe DOMElement) -> IO DOMElement
forall a. HasCallStack => Text -> IO (Maybe a) -> IO a
checkUnexpectedNothing Text
"getDOMAttrOwnerElement" (IO (Maybe DOMElement) -> IO DOMElement)
-> IO (Maybe DOMElement) -> IO DOMElement
forall a b. (a -> b) -> a -> b
$ o
-> String
-> (ManagedPtr DOMElement -> DOMElement)
-> IO (Maybe DOMElement)
forall a b.
(GObject a, GObject b) =>
a -> String -> (ManagedPtr b -> b) -> IO (Maybe b)
B.Properties.getObjectPropertyObject o
obj String
"owner-element" ManagedPtr DOMElement -> DOMElement
WebKit2WebExtension.DOMElement.DOMElement

#if defined(ENABLE_OVERLOADING)
data DOMAttrOwnerElementPropertyInfo
instance AttrInfo DOMAttrOwnerElementPropertyInfo where
    type AttrAllowedOps DOMAttrOwnerElementPropertyInfo = '[ 'AttrGet, 'AttrClear]
    type AttrBaseTypeConstraint DOMAttrOwnerElementPropertyInfo = IsDOMAttr
    type AttrSetTypeConstraint DOMAttrOwnerElementPropertyInfo = (~) ()
    type AttrTransferTypeConstraint DOMAttrOwnerElementPropertyInfo = (~) ()
    type AttrTransferType DOMAttrOwnerElementPropertyInfo = ()
    type AttrGetType DOMAttrOwnerElementPropertyInfo = WebKit2WebExtension.DOMElement.DOMElement
    type AttrLabel DOMAttrOwnerElementPropertyInfo = "owner-element"
    type AttrOrigin DOMAttrOwnerElementPropertyInfo = DOMAttr
    attrGet = getDOMAttrOwnerElement
    attrSet = undefined
    attrTransfer _ = undefined
    attrConstruct = undefined
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.WebKit2WebExtension.Objects.DOMAttr.ownerElement"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-webkit2webextension-4.0.31/docs/GI-WebKit2WebExtension-Objects-DOMAttr.html#g:attr:ownerElement"
        })
#endif

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

-- | Get the value of the “@prefix@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' dOMAttr #prefix
-- @
getDOMAttrPrefix :: (MonadIO m, IsDOMAttr o) => o -> m (Maybe T.Text)
getDOMAttrPrefix :: forall (m :: * -> *) o.
(MonadIO m, IsDOMAttr o) =>
o -> m (Maybe Text)
getDOMAttrPrefix o
obj = IO (Maybe Text) -> m (Maybe Text)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (Maybe Text) -> m (Maybe Text))
-> IO (Maybe Text) -> m (Maybe Text)
forall a b. (a -> b) -> a -> b
$ o -> String -> IO (Maybe Text)
forall a. GObject a => a -> String -> IO (Maybe Text)
B.Properties.getObjectPropertyString o
obj String
"prefix"

#if defined(ENABLE_OVERLOADING)
data DOMAttrPrefixPropertyInfo
instance AttrInfo DOMAttrPrefixPropertyInfo where
    type AttrAllowedOps DOMAttrPrefixPropertyInfo = '[ 'AttrGet, 'AttrClear]
    type AttrBaseTypeConstraint DOMAttrPrefixPropertyInfo = IsDOMAttr
    type AttrSetTypeConstraint DOMAttrPrefixPropertyInfo = (~) ()
    type AttrTransferTypeConstraint DOMAttrPrefixPropertyInfo = (~) ()
    type AttrTransferType DOMAttrPrefixPropertyInfo = ()
    type AttrGetType DOMAttrPrefixPropertyInfo = (Maybe T.Text)
    type AttrLabel DOMAttrPrefixPropertyInfo = "prefix"
    type AttrOrigin DOMAttrPrefixPropertyInfo = DOMAttr
    attrGet = getDOMAttrPrefix
    attrSet = undefined
    attrTransfer _ = undefined
    attrConstruct = undefined
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.WebKit2WebExtension.Objects.DOMAttr.prefix"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-webkit2webextension-4.0.31/docs/GI-WebKit2WebExtension-Objects-DOMAttr.html#g:attr:prefix"
        })
#endif

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

-- | Get the value of the “@specified@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' dOMAttr #specified
-- @
getDOMAttrSpecified :: (MonadIO m, IsDOMAttr o) => o -> m Bool
getDOMAttrSpecified :: forall (m :: * -> *) o. (MonadIO m, IsDOMAttr o) => o -> m Bool
getDOMAttrSpecified o
obj = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ o -> String -> IO Bool
forall a. GObject a => a -> String -> IO Bool
B.Properties.getObjectPropertyBool o
obj String
"specified"

#if defined(ENABLE_OVERLOADING)
data DOMAttrSpecifiedPropertyInfo
instance AttrInfo DOMAttrSpecifiedPropertyInfo where
    type AttrAllowedOps DOMAttrSpecifiedPropertyInfo = '[ 'AttrGet]
    type AttrBaseTypeConstraint DOMAttrSpecifiedPropertyInfo = IsDOMAttr
    type AttrSetTypeConstraint DOMAttrSpecifiedPropertyInfo = (~) ()
    type AttrTransferTypeConstraint DOMAttrSpecifiedPropertyInfo = (~) ()
    type AttrTransferType DOMAttrSpecifiedPropertyInfo = ()
    type AttrGetType DOMAttrSpecifiedPropertyInfo = Bool
    type AttrLabel DOMAttrSpecifiedPropertyInfo = "specified"
    type AttrOrigin DOMAttrSpecifiedPropertyInfo = DOMAttr
    attrGet = getDOMAttrSpecified
    attrSet = undefined
    attrTransfer _ = undefined
    attrConstruct = undefined
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.WebKit2WebExtension.Objects.DOMAttr.specified"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-webkit2webextension-4.0.31/docs/GI-WebKit2WebExtension-Objects-DOMAttr.html#g:attr:specified"
        })
#endif

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

-- | Get the value of the “@value@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' dOMAttr #value
-- @
getDOMAttrValue :: (MonadIO m, IsDOMAttr o) => o -> m (Maybe T.Text)
getDOMAttrValue :: forall (m :: * -> *) o.
(MonadIO m, IsDOMAttr o) =>
o -> m (Maybe Text)
getDOMAttrValue o
obj = IO (Maybe Text) -> m (Maybe Text)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (Maybe Text) -> m (Maybe Text))
-> IO (Maybe Text) -> m (Maybe Text)
forall a b. (a -> b) -> a -> b
$ o -> String -> IO (Maybe Text)
forall a. GObject a => a -> String -> IO (Maybe Text)
B.Properties.getObjectPropertyString o
obj String
"value"

-- | Set the value of the “@value@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' dOMAttr [ #value 'Data.GI.Base.Attributes.:=' value ]
-- @
setDOMAttrValue :: (MonadIO m, IsDOMAttr o) => o -> T.Text -> m ()
setDOMAttrValue :: forall (m :: * -> *) o.
(MonadIO m, IsDOMAttr o) =>
o -> Text -> m ()
setDOMAttrValue o
obj Text
val = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    o -> String -> Maybe Text -> IO ()
forall a. GObject a => a -> String -> Maybe Text -> IO ()
B.Properties.setObjectPropertyString o
obj String
"value" (Text -> Maybe Text
forall a. a -> Maybe a
Just Text
val)

-- | Construct a `GValueConstruct` with valid value for the “@value@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructDOMAttrValue :: (IsDOMAttr o, MIO.MonadIO m) => T.Text -> m (GValueConstruct o)
constructDOMAttrValue :: forall o (m :: * -> *).
(IsDOMAttr o, MonadIO m) =>
Text -> m (GValueConstruct o)
constructDOMAttrValue Text
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
    IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a. IO a -> IO a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Maybe Text -> IO (GValueConstruct o)
forall o. String -> Maybe Text -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyString String
"value" (Text -> Maybe Text
forall a. a -> Maybe a
P.Just Text
val)

-- | Set the value of the “@value@” 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' #value
-- @
clearDOMAttrValue :: (MonadIO m, IsDOMAttr o) => o -> m ()
clearDOMAttrValue :: forall (m :: * -> *) o. (MonadIO m, IsDOMAttr o) => o -> m ()
clearDOMAttrValue o
obj = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ o -> String -> Maybe Text -> IO ()
forall a. GObject a => a -> String -> Maybe Text -> IO ()
B.Properties.setObjectPropertyString o
obj String
"value" (Maybe Text
forall a. Maybe a
Nothing :: Maybe T.Text)

#if defined(ENABLE_OVERLOADING)
data DOMAttrValuePropertyInfo
instance AttrInfo DOMAttrValuePropertyInfo where
    type AttrAllowedOps DOMAttrValuePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
    type AttrBaseTypeConstraint DOMAttrValuePropertyInfo = IsDOMAttr
    type AttrSetTypeConstraint DOMAttrValuePropertyInfo = (~) T.Text
    type AttrTransferTypeConstraint DOMAttrValuePropertyInfo = (~) T.Text
    type AttrTransferType DOMAttrValuePropertyInfo = T.Text
    type AttrGetType DOMAttrValuePropertyInfo = (Maybe T.Text)
    type AttrLabel DOMAttrValuePropertyInfo = "value"
    type AttrOrigin DOMAttrValuePropertyInfo = DOMAttr
    attrGet = getDOMAttrValue
    attrSet = setDOMAttrValue
    attrTransfer _ v = do
        return v
    attrConstruct = constructDOMAttrValue
    attrClear = clearDOMAttrValue
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.WebKit2WebExtension.Objects.DOMAttr.value"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-webkit2webextension-4.0.31/docs/GI-WebKit2WebExtension-Objects-DOMAttr.html#g:attr:value"
        })
#endif

#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList DOMAttr
type instance O.AttributeList DOMAttr = DOMAttrAttributeList
type DOMAttrAttributeList = ('[ '("baseUri", WebKit2WebExtension.DOMNode.DOMNodeBaseUriPropertyInfo), '("childNodes", WebKit2WebExtension.DOMNode.DOMNodeChildNodesPropertyInfo), '("coreObject", WebKit2WebExtension.DOMObject.DOMObjectCoreObjectPropertyInfo), '("firstChild", WebKit2WebExtension.DOMNode.DOMNodeFirstChildPropertyInfo), '("lastChild", WebKit2WebExtension.DOMNode.DOMNodeLastChildPropertyInfo), '("localName", DOMAttrLocalNamePropertyInfo), '("name", DOMAttrNamePropertyInfo), '("namespaceUri", DOMAttrNamespaceUriPropertyInfo), '("nextSibling", WebKit2WebExtension.DOMNode.DOMNodeNextSiblingPropertyInfo), '("nodeName", WebKit2WebExtension.DOMNode.DOMNodeNodeNamePropertyInfo), '("nodeType", WebKit2WebExtension.DOMNode.DOMNodeNodeTypePropertyInfo), '("nodeValue", WebKit2WebExtension.DOMNode.DOMNodeNodeValuePropertyInfo), '("ownerDocument", WebKit2WebExtension.DOMNode.DOMNodeOwnerDocumentPropertyInfo), '("ownerElement", DOMAttrOwnerElementPropertyInfo), '("parentElement", WebKit2WebExtension.DOMNode.DOMNodeParentElementPropertyInfo), '("parentNode", WebKit2WebExtension.DOMNode.DOMNodeParentNodePropertyInfo), '("prefix", DOMAttrPrefixPropertyInfo), '("previousSibling", WebKit2WebExtension.DOMNode.DOMNodePreviousSiblingPropertyInfo), '("specified", DOMAttrSpecifiedPropertyInfo), '("textContent", WebKit2WebExtension.DOMNode.DOMNodeTextContentPropertyInfo), '("value", DOMAttrValuePropertyInfo)] :: [(Symbol, DK.Type)])
#endif

#if defined(ENABLE_OVERLOADING)
dOMAttrLocalName :: AttrLabelProxy "localName"
dOMAttrLocalName = AttrLabelProxy

dOMAttrName :: AttrLabelProxy "name"
dOMAttrName = AttrLabelProxy

dOMAttrNamespaceUri :: AttrLabelProxy "namespaceUri"
dOMAttrNamespaceUri = AttrLabelProxy

dOMAttrOwnerElement :: AttrLabelProxy "ownerElement"
dOMAttrOwnerElement = AttrLabelProxy

dOMAttrPrefix :: AttrLabelProxy "prefix"
dOMAttrPrefix = AttrLabelProxy

dOMAttrSpecified :: AttrLabelProxy "specified"
dOMAttrSpecified = AttrLabelProxy

dOMAttrValue :: AttrLabelProxy "value"
dOMAttrValue = AttrLabelProxy

#endif

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

#endif

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

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

{-# DEPRECATED dOMAttrGetLocalName ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
-- | /No description available in the introspection data./
-- 
-- /Since: 2.14/
dOMAttrGetLocalName ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMAttr a) =>
    a
    -- ^ /@self@/: A t'GI.WebKit2WebExtension.Objects.DOMAttr.DOMAttr'
    -> m T.Text
    -- ^ __Returns:__ A @/gchar/@
dOMAttrGetLocalName :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsDOMAttr a) =>
a -> m Text
dOMAttrGetLocalName a
self = IO Text -> m Text
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Text -> m Text) -> IO Text -> m Text
forall a b. (a -> b) -> a -> b
$ do
    Ptr DOMAttr
self' <- a -> IO (Ptr DOMAttr)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    CString
result <- Ptr DOMAttr -> IO CString
webkit_dom_attr_get_local_name Ptr DOMAttr
self'
    Text -> CString -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"dOMAttrGetLocalName" CString
result
    Text
result' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
result
    CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    Text -> IO Text
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Text
result'

#if defined(ENABLE_OVERLOADING)
data DOMAttrGetLocalNameMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsDOMAttr a) => O.OverloadedMethod DOMAttrGetLocalNameMethodInfo a signature where
    overloadedMethod = dOMAttrGetLocalName

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


#endif

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

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

{-# DEPRECATED dOMAttrGetName ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
-- | /No description available in the introspection data./
dOMAttrGetName ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMAttr a) =>
    a
    -- ^ /@self@/: A t'GI.WebKit2WebExtension.Objects.DOMAttr.DOMAttr'
    -> m T.Text
    -- ^ __Returns:__ A @/gchar/@
dOMAttrGetName :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsDOMAttr a) =>
a -> m Text
dOMAttrGetName a
self = IO Text -> m Text
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Text -> m Text) -> IO Text -> m Text
forall a b. (a -> b) -> a -> b
$ do
    Ptr DOMAttr
self' <- a -> IO (Ptr DOMAttr)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    CString
result <- Ptr DOMAttr -> IO CString
webkit_dom_attr_get_name Ptr DOMAttr
self'
    Text -> CString -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"dOMAttrGetName" CString
result
    Text
result' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
result
    CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    Text -> IO Text
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Text
result'

#if defined(ENABLE_OVERLOADING)
data DOMAttrGetNameMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsDOMAttr a) => O.OverloadedMethod DOMAttrGetNameMethodInfo a signature where
    overloadedMethod = dOMAttrGetName

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


#endif

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

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

{-# DEPRECATED dOMAttrGetNamespaceUri ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
-- | /No description available in the introspection data./
-- 
-- /Since: 2.14/
dOMAttrGetNamespaceUri ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMAttr a) =>
    a
    -- ^ /@self@/: A t'GI.WebKit2WebExtension.Objects.DOMAttr.DOMAttr'
    -> m T.Text
    -- ^ __Returns:__ A @/gchar/@
dOMAttrGetNamespaceUri :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsDOMAttr a) =>
a -> m Text
dOMAttrGetNamespaceUri a
self = IO Text -> m Text
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Text -> m Text) -> IO Text -> m Text
forall a b. (a -> b) -> a -> b
$ do
    Ptr DOMAttr
self' <- a -> IO (Ptr DOMAttr)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    CString
result <- Ptr DOMAttr -> IO CString
webkit_dom_attr_get_namespace_uri Ptr DOMAttr
self'
    Text -> CString -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"dOMAttrGetNamespaceUri" CString
result
    Text
result' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
result
    CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    Text -> IO Text
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Text
result'

#if defined(ENABLE_OVERLOADING)
data DOMAttrGetNamespaceUriMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsDOMAttr a) => O.OverloadedMethod DOMAttrGetNamespaceUriMethodInfo a signature where
    overloadedMethod = dOMAttrGetNamespaceUri

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


#endif

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

foreign import ccall "webkit_dom_attr_get_owner_element" webkit_dom_attr_get_owner_element :: 
    Ptr DOMAttr ->                          -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMAttr"})
    IO (Ptr WebKit2WebExtension.DOMElement.DOMElement)

{-# DEPRECATED dOMAttrGetOwnerElement ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
-- | /No description available in the introspection data./
dOMAttrGetOwnerElement ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMAttr a) =>
    a
    -- ^ /@self@/: A t'GI.WebKit2WebExtension.Objects.DOMAttr.DOMAttr'
    -> m WebKit2WebExtension.DOMElement.DOMElement
    -- ^ __Returns:__ A t'GI.WebKit2WebExtension.Objects.DOMElement.DOMElement'
dOMAttrGetOwnerElement :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsDOMAttr a) =>
a -> m DOMElement
dOMAttrGetOwnerElement a
self = IO DOMElement -> m DOMElement
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO DOMElement -> m DOMElement) -> IO DOMElement -> m DOMElement
forall a b. (a -> b) -> a -> b
$ do
    Ptr DOMAttr
self' <- a -> IO (Ptr DOMAttr)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    Ptr DOMElement
result <- Ptr DOMAttr -> IO (Ptr DOMElement)
webkit_dom_attr_get_owner_element Ptr DOMAttr
self'
    Text -> Ptr DOMElement -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"dOMAttrGetOwnerElement" Ptr DOMElement
result
    DOMElement
result' <- ((ManagedPtr DOMElement -> DOMElement)
-> Ptr DOMElement -> IO DOMElement
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr DOMElement -> DOMElement
WebKit2WebExtension.DOMElement.DOMElement) Ptr DOMElement
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    DOMElement -> IO DOMElement
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return DOMElement
result'

#if defined(ENABLE_OVERLOADING)
data DOMAttrGetOwnerElementMethodInfo
instance (signature ~ (m WebKit2WebExtension.DOMElement.DOMElement), MonadIO m, IsDOMAttr a) => O.OverloadedMethod DOMAttrGetOwnerElementMethodInfo a signature where
    overloadedMethod = dOMAttrGetOwnerElement

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


#endif

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

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

{-# DEPRECATED dOMAttrGetPrefix ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
-- | /No description available in the introspection data./
-- 
-- /Since: 2.14/
dOMAttrGetPrefix ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMAttr a) =>
    a
    -- ^ /@self@/: A t'GI.WebKit2WebExtension.Objects.DOMAttr.DOMAttr'
    -> m T.Text
    -- ^ __Returns:__ A @/gchar/@
dOMAttrGetPrefix :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsDOMAttr a) =>
a -> m Text
dOMAttrGetPrefix a
self = IO Text -> m Text
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Text -> m Text) -> IO Text -> m Text
forall a b. (a -> b) -> a -> b
$ do
    Ptr DOMAttr
self' <- a -> IO (Ptr DOMAttr)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    CString
result <- Ptr DOMAttr -> IO CString
webkit_dom_attr_get_prefix Ptr DOMAttr
self'
    Text -> CString -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"dOMAttrGetPrefix" CString
result
    Text
result' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
result
    CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    Text -> IO Text
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Text
result'

#if defined(ENABLE_OVERLOADING)
data DOMAttrGetPrefixMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsDOMAttr a) => O.OverloadedMethod DOMAttrGetPrefixMethodInfo a signature where
    overloadedMethod = dOMAttrGetPrefix

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


#endif

-- method DOMAttr::get_specified
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType =
--               TInterface
--                 Name { namespace = "WebKit2WebExtension" , name = "DOMAttr" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "A #WebKitDOMAttr" , 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_attr_get_specified" webkit_dom_attr_get_specified :: 
    Ptr DOMAttr ->                          -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMAttr"})
    IO CInt

{-# DEPRECATED dOMAttrGetSpecified ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
-- | /No description available in the introspection data./
dOMAttrGetSpecified ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMAttr a) =>
    a
    -- ^ /@self@/: A t'GI.WebKit2WebExtension.Objects.DOMAttr.DOMAttr'
    -> m Bool
    -- ^ __Returns:__ A t'P.Bool'
dOMAttrGetSpecified :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsDOMAttr a) =>
a -> m Bool
dOMAttrGetSpecified a
self = 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 DOMAttr
self' <- a -> IO (Ptr DOMAttr)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    CInt
result <- Ptr DOMAttr -> IO CInt
webkit_dom_attr_get_specified Ptr DOMAttr
self'
    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
    Bool -> IO Bool
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

#if defined(ENABLE_OVERLOADING)
data DOMAttrGetSpecifiedMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsDOMAttr a) => O.OverloadedMethod DOMAttrGetSpecifiedMethodInfo a signature where
    overloadedMethod = dOMAttrGetSpecified

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


#endif

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

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

{-# DEPRECATED dOMAttrGetValue ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
-- | /No description available in the introspection data./
dOMAttrGetValue ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMAttr a) =>
    a
    -- ^ /@self@/: A t'GI.WebKit2WebExtension.Objects.DOMAttr.DOMAttr'
    -> m T.Text
    -- ^ __Returns:__ A @/gchar/@
dOMAttrGetValue :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsDOMAttr a) =>
a -> m Text
dOMAttrGetValue a
self = IO Text -> m Text
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Text -> m Text) -> IO Text -> m Text
forall a b. (a -> b) -> a -> b
$ do
    Ptr DOMAttr
self' <- a -> IO (Ptr DOMAttr)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    CString
result <- Ptr DOMAttr -> IO CString
webkit_dom_attr_get_value Ptr DOMAttr
self'
    Text -> CString -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"dOMAttrGetValue" CString
result
    Text
result' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
result
    CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    Text -> IO Text
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Text
result'

#if defined(ENABLE_OVERLOADING)
data DOMAttrGetValueMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsDOMAttr a) => O.OverloadedMethod DOMAttrGetValueMethodInfo a signature where
    overloadedMethod = dOMAttrGetValue

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


#endif

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

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

{-# DEPRECATED dOMAttrSetValue ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
-- | /No description available in the introspection data./
dOMAttrSetValue ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMAttr a) =>
    a
    -- ^ /@self@/: A t'GI.WebKit2WebExtension.Objects.DOMAttr.DOMAttr'
    -> T.Text
    -- ^ /@value@/: A @/gchar/@
    -> m ()
    -- ^ /(Can throw 'Data.GI.Base.GError.GError')/
dOMAttrSetValue :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsDOMAttr a) =>
a -> Text -> m ()
dOMAttrSetValue a
self Text
value = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr DOMAttr
self' <- a -> IO (Ptr DOMAttr)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    CString
value' <- Text -> IO CString
textToCString Text
value
    IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO a
onException (do
        (Ptr (Ptr GError) -> IO ()) -> IO ()
forall a. (Ptr (Ptr GError) -> IO a) -> IO a
propagateGError ((Ptr (Ptr GError) -> IO ()) -> IO ())
-> (Ptr (Ptr GError) -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ Ptr DOMAttr -> CString -> Ptr (Ptr GError) -> IO ()
webkit_dom_attr_set_value Ptr DOMAttr
self' CString
value'
        a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
        CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
value'
        () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()
     ) (do
        CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
value'
     )

#if defined(ENABLE_OVERLOADING)
data DOMAttrSetValueMethodInfo
instance (signature ~ (T.Text -> m ()), MonadIO m, IsDOMAttr a) => O.OverloadedMethod DOMAttrSetValueMethodInfo a signature where
    overloadedMethod = dOMAttrSetValue

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


#endif