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

-- * Exported types
    DOMEvent(..)                            ,
    IsDOMEvent                              ,
    toDOMEvent                              ,
    noDOMEvent                              ,


 -- * Methods
-- ** getBubbles #method:getBubbles#

#if ENABLE_OVERLOADING
    DOMEventGetBubblesMethodInfo            ,
#endif
    dOMEventGetBubbles                      ,


-- ** getCancelBubble #method:getCancelBubble#

#if ENABLE_OVERLOADING
    DOMEventGetCancelBubbleMethodInfo       ,
#endif
    dOMEventGetCancelBubble                 ,


-- ** getCancelable #method:getCancelable#

#if ENABLE_OVERLOADING
    DOMEventGetCancelableMethodInfo         ,
#endif
    dOMEventGetCancelable                   ,


-- ** getCurrentTarget #method:getCurrentTarget#

#if ENABLE_OVERLOADING
    DOMEventGetCurrentTargetMethodInfo      ,
#endif
    dOMEventGetCurrentTarget                ,


-- ** getEventPhase #method:getEventPhase#

#if ENABLE_OVERLOADING
    DOMEventGetEventPhaseMethodInfo         ,
#endif
    dOMEventGetEventPhase                   ,


-- ** getEventType #method:getEventType#

#if ENABLE_OVERLOADING
    DOMEventGetEventTypeMethodInfo          ,
#endif
    dOMEventGetEventType                    ,


-- ** getReturnValue #method:getReturnValue#

#if ENABLE_OVERLOADING
    DOMEventGetReturnValueMethodInfo        ,
#endif
    dOMEventGetReturnValue                  ,


-- ** getSrcElement #method:getSrcElement#

#if ENABLE_OVERLOADING
    DOMEventGetSrcElementMethodInfo         ,
#endif
    dOMEventGetSrcElement                   ,


-- ** getTarget #method:getTarget#

#if ENABLE_OVERLOADING
    DOMEventGetTargetMethodInfo             ,
#endif
    dOMEventGetTarget                       ,


-- ** getTimeStamp #method:getTimeStamp#

#if ENABLE_OVERLOADING
    DOMEventGetTimeStampMethodInfo          ,
#endif
    dOMEventGetTimeStamp                    ,


-- ** initEvent #method:initEvent#

#if ENABLE_OVERLOADING
    DOMEventInitEventMethodInfo             ,
#endif
    dOMEventInitEvent                       ,


-- ** preventDefault #method:preventDefault#

#if ENABLE_OVERLOADING
    DOMEventPreventDefaultMethodInfo        ,
#endif
    dOMEventPreventDefault                  ,


-- ** setCancelBubble #method:setCancelBubble#

#if ENABLE_OVERLOADING
    DOMEventSetCancelBubbleMethodInfo       ,
#endif
    dOMEventSetCancelBubble                 ,


-- ** setReturnValue #method:setReturnValue#

#if ENABLE_OVERLOADING
    DOMEventSetReturnValueMethodInfo        ,
#endif
    dOMEventSetReturnValue                  ,


-- ** stopPropagation #method:stopPropagation#

#if ENABLE_OVERLOADING
    DOMEventStopPropagationMethodInfo       ,
#endif
    dOMEventStopPropagation                 ,




 -- * Properties
-- ** bubbles #attr:bubbles#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    DOMEventBubblesPropertyInfo             ,
#endif
#if ENABLE_OVERLOADING
    dOMEventBubbles                         ,
#endif
    getDOMEventBubbles                      ,


-- ** cancelBubble #attr:cancelBubble#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    DOMEventCancelBubblePropertyInfo        ,
#endif
    constructDOMEventCancelBubble           ,
#if ENABLE_OVERLOADING
    dOMEventCancelBubble                    ,
#endif
    getDOMEventCancelBubble                 ,
    setDOMEventCancelBubble                 ,


-- ** cancelable #attr:cancelable#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    DOMEventCancelablePropertyInfo          ,
#endif
#if ENABLE_OVERLOADING
    dOMEventCancelable                      ,
#endif
    getDOMEventCancelable                   ,


-- ** currentTarget #attr:currentTarget#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    DOMEventCurrentTargetPropertyInfo       ,
#endif
#if ENABLE_OVERLOADING
    dOMEventCurrentTarget                   ,
#endif
    getDOMEventCurrentTarget                ,


-- ** eventPhase #attr:eventPhase#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    DOMEventEventPhasePropertyInfo          ,
#endif
#if ENABLE_OVERLOADING
    dOMEventEventPhase                      ,
#endif
    getDOMEventEventPhase                   ,


-- ** returnValue #attr:returnValue#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    DOMEventReturnValuePropertyInfo         ,
#endif
    constructDOMEventReturnValue            ,
#if ENABLE_OVERLOADING
    dOMEventReturnValue                     ,
#endif
    getDOMEventReturnValue                  ,
    setDOMEventReturnValue                  ,


-- ** srcElement #attr:srcElement#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    DOMEventSrcElementPropertyInfo          ,
#endif
#if ENABLE_OVERLOADING
    dOMEventSrcElement                      ,
#endif
    getDOMEventSrcElement                   ,


-- ** target #attr:target#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    DOMEventTargetPropertyInfo              ,
#endif
#if ENABLE_OVERLOADING
    dOMEventTarget                          ,
#endif
    getDOMEventTarget                       ,


-- ** timeStamp #attr:timeStamp#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    DOMEventTimeStampPropertyInfo           ,
#endif
#if ENABLE_OVERLOADING
    dOMEventTimeStamp                       ,
#endif
    getDOMEventTimeStamp                    ,


-- ** type #attr:type#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    DOMEventTypePropertyInfo                ,
#endif
#if ENABLE_OVERLOADING
    dOMEventType                            ,
#endif
    getDOMEventType                         ,




    ) 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.DOMObject as WebKit2WebExtension.DOMObject

-- | Memory-managed wrapper type.
newtype DOMEvent = DOMEvent (ManagedPtr DOMEvent)
foreign import ccall "webkit_dom_event_get_type"
    c_webkit_dom_event_get_type :: IO GType

instance GObject DOMEvent where
    gobjectType = c_webkit_dom_event_get_type


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

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

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

-- | A convenience alias for `Nothing` :: `Maybe` `DOMEvent`.
noDOMEvent :: Maybe DOMEvent
noDOMEvent = Nothing

#if ENABLE_OVERLOADING
type family ResolveDOMEventMethod (t :: Symbol) (o :: *) :: * where
    ResolveDOMEventMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
    ResolveDOMEventMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
    ResolveDOMEventMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
    ResolveDOMEventMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
    ResolveDOMEventMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
    ResolveDOMEventMethod "initEvent" o = DOMEventInitEventMethodInfo
    ResolveDOMEventMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
    ResolveDOMEventMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
    ResolveDOMEventMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
    ResolveDOMEventMethod "preventDefault" o = DOMEventPreventDefaultMethodInfo
    ResolveDOMEventMethod "ref" o = GObject.Object.ObjectRefMethodInfo
    ResolveDOMEventMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
    ResolveDOMEventMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
    ResolveDOMEventMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
    ResolveDOMEventMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
    ResolveDOMEventMethod "stopPropagation" o = DOMEventStopPropagationMethodInfo
    ResolveDOMEventMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
    ResolveDOMEventMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
    ResolveDOMEventMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
    ResolveDOMEventMethod "getBubbles" o = DOMEventGetBubblesMethodInfo
    ResolveDOMEventMethod "getCancelBubble" o = DOMEventGetCancelBubbleMethodInfo
    ResolveDOMEventMethod "getCancelable" o = DOMEventGetCancelableMethodInfo
    ResolveDOMEventMethod "getCurrentTarget" o = DOMEventGetCurrentTargetMethodInfo
    ResolveDOMEventMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
    ResolveDOMEventMethod "getEventPhase" o = DOMEventGetEventPhaseMethodInfo
    ResolveDOMEventMethod "getEventType" o = DOMEventGetEventTypeMethodInfo
    ResolveDOMEventMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
    ResolveDOMEventMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
    ResolveDOMEventMethod "getReturnValue" o = DOMEventGetReturnValueMethodInfo
    ResolveDOMEventMethod "getSrcElement" o = DOMEventGetSrcElementMethodInfo
    ResolveDOMEventMethod "getTarget" o = DOMEventGetTargetMethodInfo
    ResolveDOMEventMethod "getTimeStamp" o = DOMEventGetTimeStampMethodInfo
    ResolveDOMEventMethod "setCancelBubble" o = DOMEventSetCancelBubbleMethodInfo
    ResolveDOMEventMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
    ResolveDOMEventMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
    ResolveDOMEventMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
    ResolveDOMEventMethod "setReturnValue" o = DOMEventSetReturnValueMethodInfo
    ResolveDOMEventMethod l o = O.MethodResolutionFailed l o

instance (info ~ ResolveDOMEventMethod t DOMEvent, O.MethodInfo info DOMEvent p) => OL.IsLabel t (DOMEvent -> 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 "bubbles"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable]
   -- Nullable: (Just False,Nothing)

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

@
'Data.GI.Base.Attributes.get' dOMEvent #bubbles
@
-}
getDOMEventBubbles :: (MonadIO m, IsDOMEvent o) => o -> m Bool
getDOMEventBubbles obj = liftIO $ B.Properties.getObjectPropertyBool obj "bubbles"

#if ENABLE_OVERLOADING
data DOMEventBubblesPropertyInfo
instance AttrInfo DOMEventBubblesPropertyInfo where
    type AttrAllowedOps DOMEventBubblesPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMEventBubblesPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMEventBubblesPropertyInfo = IsDOMEvent
    type AttrGetType DOMEventBubblesPropertyInfo = Bool
    type AttrLabel DOMEventBubblesPropertyInfo = "bubbles"
    type AttrOrigin DOMEventBubblesPropertyInfo = DOMEvent
    attrGet _ = getDOMEventBubbles
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined
#endif

-- VVV Prop "cancel-bubble"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just False,Just False)

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

@
'Data.GI.Base.Attributes.get' dOMEvent #cancelBubble
@
-}
getDOMEventCancelBubble :: (MonadIO m, IsDOMEvent o) => o -> m Bool
getDOMEventCancelBubble obj = liftIO $ B.Properties.getObjectPropertyBool obj "cancel-bubble"

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

@
'Data.GI.Base.Attributes.set' dOMEvent [ #cancelBubble 'Data.GI.Base.Attributes.:=' value ]
@
-}
setDOMEventCancelBubble :: (MonadIO m, IsDOMEvent o) => o -> Bool -> m ()
setDOMEventCancelBubble obj val = liftIO $ B.Properties.setObjectPropertyBool obj "cancel-bubble" val

{- |
Construct a `GValueConstruct` with valid value for the “@cancel-bubble@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
-}
constructDOMEventCancelBubble :: (IsDOMEvent o) => Bool -> IO (GValueConstruct o)
constructDOMEventCancelBubble val = B.Properties.constructObjectPropertyBool "cancel-bubble" val

#if ENABLE_OVERLOADING
data DOMEventCancelBubblePropertyInfo
instance AttrInfo DOMEventCancelBubblePropertyInfo where
    type AttrAllowedOps DOMEventCancelBubblePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint DOMEventCancelBubblePropertyInfo = (~) Bool
    type AttrBaseTypeConstraint DOMEventCancelBubblePropertyInfo = IsDOMEvent
    type AttrGetType DOMEventCancelBubblePropertyInfo = Bool
    type AttrLabel DOMEventCancelBubblePropertyInfo = "cancel-bubble"
    type AttrOrigin DOMEventCancelBubblePropertyInfo = DOMEvent
    attrGet _ = getDOMEventCancelBubble
    attrSet _ = setDOMEventCancelBubble
    attrConstruct _ = constructDOMEventCancelBubble
    attrClear _ = undefined
#endif

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

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

@
'Data.GI.Base.Attributes.get' dOMEvent #cancelable
@
-}
getDOMEventCancelable :: (MonadIO m, IsDOMEvent o) => o -> m Bool
getDOMEventCancelable obj = liftIO $ B.Properties.getObjectPropertyBool obj "cancelable"

#if ENABLE_OVERLOADING
data DOMEventCancelablePropertyInfo
instance AttrInfo DOMEventCancelablePropertyInfo where
    type AttrAllowedOps DOMEventCancelablePropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMEventCancelablePropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMEventCancelablePropertyInfo = IsDOMEvent
    type AttrGetType DOMEventCancelablePropertyInfo = Bool
    type AttrLabel DOMEventCancelablePropertyInfo = "cancelable"
    type AttrOrigin DOMEventCancelablePropertyInfo = DOMEvent
    attrGet _ = getDOMEventCancelable
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined
#endif

-- VVV Prop "current-target"
   -- Type: TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMEventTarget"})
   -- Flags: [PropertyReadable]
   -- Nullable: (Nothing,Nothing)

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

@
'Data.GI.Base.Attributes.get' dOMEvent #currentTarget
@
-}
getDOMEventCurrentTarget :: (MonadIO m, IsDOMEvent o) => o -> m (Maybe WebKit2WebExtension.DOMEventTarget.DOMEventTarget)
getDOMEventCurrentTarget obj = liftIO $ B.Properties.getObjectPropertyObject obj "current-target" WebKit2WebExtension.DOMEventTarget.DOMEventTarget

#if ENABLE_OVERLOADING
data DOMEventCurrentTargetPropertyInfo
instance AttrInfo DOMEventCurrentTargetPropertyInfo where
    type AttrAllowedOps DOMEventCurrentTargetPropertyInfo = '[ 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint DOMEventCurrentTargetPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMEventCurrentTargetPropertyInfo = IsDOMEvent
    type AttrGetType DOMEventCurrentTargetPropertyInfo = (Maybe WebKit2WebExtension.DOMEventTarget.DOMEventTarget)
    type AttrLabel DOMEventCurrentTargetPropertyInfo = "current-target"
    type AttrOrigin DOMEventCurrentTargetPropertyInfo = DOMEvent
    attrGet _ = getDOMEventCurrentTarget
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined
#endif

-- VVV Prop "event-phase"
   -- Type: TBasicType TUInt
   -- Flags: [PropertyReadable]
   -- Nullable: (Nothing,Nothing)

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

@
'Data.GI.Base.Attributes.get' dOMEvent #eventPhase
@
-}
getDOMEventEventPhase :: (MonadIO m, IsDOMEvent o) => o -> m Word32
getDOMEventEventPhase obj = liftIO $ B.Properties.getObjectPropertyUInt32 obj "event-phase"

#if ENABLE_OVERLOADING
data DOMEventEventPhasePropertyInfo
instance AttrInfo DOMEventEventPhasePropertyInfo where
    type AttrAllowedOps DOMEventEventPhasePropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMEventEventPhasePropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMEventEventPhasePropertyInfo = IsDOMEvent
    type AttrGetType DOMEventEventPhasePropertyInfo = Word32
    type AttrLabel DOMEventEventPhasePropertyInfo = "event-phase"
    type AttrOrigin DOMEventEventPhasePropertyInfo = DOMEvent
    attrGet _ = getDOMEventEventPhase
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined
#endif

-- VVV Prop "return-value"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just False,Just False)

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

@
'Data.GI.Base.Attributes.get' dOMEvent #returnValue
@
-}
getDOMEventReturnValue :: (MonadIO m, IsDOMEvent o) => o -> m Bool
getDOMEventReturnValue obj = liftIO $ B.Properties.getObjectPropertyBool obj "return-value"

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

@
'Data.GI.Base.Attributes.set' dOMEvent [ #returnValue 'Data.GI.Base.Attributes.:=' value ]
@
-}
setDOMEventReturnValue :: (MonadIO m, IsDOMEvent o) => o -> Bool -> m ()
setDOMEventReturnValue obj val = liftIO $ B.Properties.setObjectPropertyBool obj "return-value" val

{- |
Construct a `GValueConstruct` with valid value for the “@return-value@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
-}
constructDOMEventReturnValue :: (IsDOMEvent o) => Bool -> IO (GValueConstruct o)
constructDOMEventReturnValue val = B.Properties.constructObjectPropertyBool "return-value" val

#if ENABLE_OVERLOADING
data DOMEventReturnValuePropertyInfo
instance AttrInfo DOMEventReturnValuePropertyInfo where
    type AttrAllowedOps DOMEventReturnValuePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint DOMEventReturnValuePropertyInfo = (~) Bool
    type AttrBaseTypeConstraint DOMEventReturnValuePropertyInfo = IsDOMEvent
    type AttrGetType DOMEventReturnValuePropertyInfo = Bool
    type AttrLabel DOMEventReturnValuePropertyInfo = "return-value"
    type AttrOrigin DOMEventReturnValuePropertyInfo = DOMEvent
    attrGet _ = getDOMEventReturnValue
    attrSet _ = setDOMEventReturnValue
    attrConstruct _ = constructDOMEventReturnValue
    attrClear _ = undefined
#endif

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

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

@
'Data.GI.Base.Attributes.get' dOMEvent #srcElement
@
-}
getDOMEventSrcElement :: (MonadIO m, IsDOMEvent o) => o -> m (Maybe WebKit2WebExtension.DOMEventTarget.DOMEventTarget)
getDOMEventSrcElement obj = liftIO $ B.Properties.getObjectPropertyObject obj "src-element" WebKit2WebExtension.DOMEventTarget.DOMEventTarget

#if ENABLE_OVERLOADING
data DOMEventSrcElementPropertyInfo
instance AttrInfo DOMEventSrcElementPropertyInfo where
    type AttrAllowedOps DOMEventSrcElementPropertyInfo = '[ 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint DOMEventSrcElementPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMEventSrcElementPropertyInfo = IsDOMEvent
    type AttrGetType DOMEventSrcElementPropertyInfo = (Maybe WebKit2WebExtension.DOMEventTarget.DOMEventTarget)
    type AttrLabel DOMEventSrcElementPropertyInfo = "src-element"
    type AttrOrigin DOMEventSrcElementPropertyInfo = DOMEvent
    attrGet _ = getDOMEventSrcElement
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined
#endif

-- VVV Prop "target"
   -- Type: TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMEventTarget"})
   -- Flags: [PropertyReadable]
   -- Nullable: (Nothing,Nothing)

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

@
'Data.GI.Base.Attributes.get' dOMEvent #target
@
-}
getDOMEventTarget :: (MonadIO m, IsDOMEvent o) => o -> m (Maybe WebKit2WebExtension.DOMEventTarget.DOMEventTarget)
getDOMEventTarget obj = liftIO $ B.Properties.getObjectPropertyObject obj "target" WebKit2WebExtension.DOMEventTarget.DOMEventTarget

#if ENABLE_OVERLOADING
data DOMEventTargetPropertyInfo
instance AttrInfo DOMEventTargetPropertyInfo where
    type AttrAllowedOps DOMEventTargetPropertyInfo = '[ 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint DOMEventTargetPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMEventTargetPropertyInfo = IsDOMEvent
    type AttrGetType DOMEventTargetPropertyInfo = (Maybe WebKit2WebExtension.DOMEventTarget.DOMEventTarget)
    type AttrLabel DOMEventTargetPropertyInfo = "target"
    type AttrOrigin DOMEventTargetPropertyInfo = DOMEvent
    attrGet _ = getDOMEventTarget
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined
#endif

-- VVV Prop "time-stamp"
   -- Type: TBasicType TUInt
   -- Flags: [PropertyReadable]
   -- Nullable: (Nothing,Nothing)

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

@
'Data.GI.Base.Attributes.get' dOMEvent #timeStamp
@
-}
getDOMEventTimeStamp :: (MonadIO m, IsDOMEvent o) => o -> m Word32
getDOMEventTimeStamp obj = liftIO $ B.Properties.getObjectPropertyUInt32 obj "time-stamp"

#if ENABLE_OVERLOADING
data DOMEventTimeStampPropertyInfo
instance AttrInfo DOMEventTimeStampPropertyInfo where
    type AttrAllowedOps DOMEventTimeStampPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMEventTimeStampPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMEventTimeStampPropertyInfo = IsDOMEvent
    type AttrGetType DOMEventTimeStampPropertyInfo = Word32
    type AttrLabel DOMEventTimeStampPropertyInfo = "time-stamp"
    type AttrOrigin DOMEventTimeStampPropertyInfo = DOMEvent
    attrGet _ = getDOMEventTimeStamp
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined
#endif

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

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

@
'Data.GI.Base.Attributes.get' dOMEvent #type
@
-}
getDOMEventType :: (MonadIO m, IsDOMEvent o) => o -> m (Maybe T.Text)
getDOMEventType obj = liftIO $ B.Properties.getObjectPropertyString obj "type"

#if ENABLE_OVERLOADING
data DOMEventTypePropertyInfo
instance AttrInfo DOMEventTypePropertyInfo where
    type AttrAllowedOps DOMEventTypePropertyInfo = '[ 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint DOMEventTypePropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMEventTypePropertyInfo = IsDOMEvent
    type AttrGetType DOMEventTypePropertyInfo = (Maybe T.Text)
    type AttrLabel DOMEventTypePropertyInfo = "type"
    type AttrOrigin DOMEventTypePropertyInfo = DOMEvent
    attrGet _ = getDOMEventType
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined
#endif

#if ENABLE_OVERLOADING
instance O.HasAttributeList DOMEvent
type instance O.AttributeList DOMEvent = DOMEventAttributeList
type DOMEventAttributeList = ('[ '("bubbles", DOMEventBubblesPropertyInfo), '("cancelBubble", DOMEventCancelBubblePropertyInfo), '("cancelable", DOMEventCancelablePropertyInfo), '("coreObject", WebKit2WebExtension.DOMObject.DOMObjectCoreObjectPropertyInfo), '("currentTarget", DOMEventCurrentTargetPropertyInfo), '("eventPhase", DOMEventEventPhasePropertyInfo), '("returnValue", DOMEventReturnValuePropertyInfo), '("srcElement", DOMEventSrcElementPropertyInfo), '("target", DOMEventTargetPropertyInfo), '("timeStamp", DOMEventTimeStampPropertyInfo), '("type", DOMEventTypePropertyInfo)] :: [(Symbol, *)])
#endif

#if ENABLE_OVERLOADING
dOMEventBubbles :: AttrLabelProxy "bubbles"
dOMEventBubbles = AttrLabelProxy

dOMEventCancelBubble :: AttrLabelProxy "cancelBubble"
dOMEventCancelBubble = AttrLabelProxy

dOMEventCancelable :: AttrLabelProxy "cancelable"
dOMEventCancelable = AttrLabelProxy

dOMEventCurrentTarget :: AttrLabelProxy "currentTarget"
dOMEventCurrentTarget = AttrLabelProxy

dOMEventEventPhase :: AttrLabelProxy "eventPhase"
dOMEventEventPhase = AttrLabelProxy

dOMEventReturnValue :: AttrLabelProxy "returnValue"
dOMEventReturnValue = AttrLabelProxy

dOMEventSrcElement :: AttrLabelProxy "srcElement"
dOMEventSrcElement = AttrLabelProxy

dOMEventTarget :: AttrLabelProxy "target"
dOMEventTarget = AttrLabelProxy

dOMEventTimeStamp :: AttrLabelProxy "timeStamp"
dOMEventTimeStamp = AttrLabelProxy

dOMEventType :: AttrLabelProxy "type"
dOMEventType = AttrLabelProxy

#endif

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

#endif

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

foreign import ccall "webkit_dom_event_get_bubbles" webkit_dom_event_get_bubbles ::
    Ptr DOMEvent ->                         -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMEvent"})
    IO CInt

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

#if ENABLE_OVERLOADING
data DOMEventGetBubblesMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsDOMEvent a) => O.MethodInfo DOMEventGetBubblesMethodInfo a signature where
    overloadedMethod _ = dOMEventGetBubbles

#endif

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

foreign import ccall "webkit_dom_event_get_cancel_bubble" webkit_dom_event_get_cancel_bubble ::
    Ptr DOMEvent ->                         -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMEvent"})
    IO CInt

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

#if ENABLE_OVERLOADING
data DOMEventGetCancelBubbleMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsDOMEvent a) => O.MethodInfo DOMEventGetCancelBubbleMethodInfo a signature where
    overloadedMethod _ = dOMEventGetCancelBubble

#endif

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

foreign import ccall "webkit_dom_event_get_cancelable" webkit_dom_event_get_cancelable ::
    Ptr DOMEvent ->                         -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMEvent"})
    IO CInt

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

#if ENABLE_OVERLOADING
data DOMEventGetCancelableMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsDOMEvent a) => O.MethodInfo DOMEventGetCancelableMethodInfo a signature where
    overloadedMethod _ = dOMEventGetCancelable

#endif

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

foreign import ccall "webkit_dom_event_get_current_target" webkit_dom_event_get_current_target ::
    Ptr DOMEvent ->                         -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMEvent"})
    IO (Ptr WebKit2WebExtension.DOMEventTarget.DOMEventTarget)

{-# DEPRECATED dOMEventGetCurrentTarget ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/No description available in the introspection data./
-}
dOMEventGetCurrentTarget ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMEvent a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMEvent.DOMEvent' -}
    -> m WebKit2WebExtension.DOMEventTarget.DOMEventTarget
    {- ^ __Returns:__ A 'GI.WebKit2WebExtension.Interfaces.DOMEventTarget.DOMEventTarget' -}
dOMEventGetCurrentTarget self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    result <- webkit_dom_event_get_current_target self'
    checkUnexpectedReturnNULL "dOMEventGetCurrentTarget" result
    result' <- (wrapObject WebKit2WebExtension.DOMEventTarget.DOMEventTarget) result
    touchManagedPtr self
    return result'

#if ENABLE_OVERLOADING
data DOMEventGetCurrentTargetMethodInfo
instance (signature ~ (m WebKit2WebExtension.DOMEventTarget.DOMEventTarget), MonadIO m, IsDOMEvent a) => O.MethodInfo DOMEventGetCurrentTargetMethodInfo a signature where
    overloadedMethod _ = dOMEventGetCurrentTarget

#endif

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

foreign import ccall "webkit_dom_event_get_event_phase" webkit_dom_event_get_event_phase ::
    Ptr DOMEvent ->                         -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMEvent"})
    IO Word16

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

#if ENABLE_OVERLOADING
data DOMEventGetEventPhaseMethodInfo
instance (signature ~ (m Word16), MonadIO m, IsDOMEvent a) => O.MethodInfo DOMEventGetEventPhaseMethodInfo a signature where
    overloadedMethod _ = dOMEventGetEventPhase

#endif

-- method DOMEvent::get_event_type
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMEvent"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMEvent", 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_event_get_event_type" webkit_dom_event_get_event_type ::
    Ptr DOMEvent ->                         -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMEvent"})
    IO CString

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

#if ENABLE_OVERLOADING
data DOMEventGetEventTypeMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsDOMEvent a) => O.MethodInfo DOMEventGetEventTypeMethodInfo a signature where
    overloadedMethod _ = dOMEventGetEventType

#endif

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

foreign import ccall "webkit_dom_event_get_return_value" webkit_dom_event_get_return_value ::
    Ptr DOMEvent ->                         -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMEvent"})
    IO CInt

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

#if ENABLE_OVERLOADING
data DOMEventGetReturnValueMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsDOMEvent a) => O.MethodInfo DOMEventGetReturnValueMethodInfo a signature where
    overloadedMethod _ = dOMEventGetReturnValue

#endif

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

foreign import ccall "webkit_dom_event_get_src_element" webkit_dom_event_get_src_element ::
    Ptr DOMEvent ->                         -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMEvent"})
    IO (Ptr WebKit2WebExtension.DOMEventTarget.DOMEventTarget)

{-# DEPRECATED dOMEventGetSrcElement ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/No description available in the introspection data./
-}
dOMEventGetSrcElement ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMEvent a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMEvent.DOMEvent' -}
    -> m WebKit2WebExtension.DOMEventTarget.DOMEventTarget
    {- ^ __Returns:__ A 'GI.WebKit2WebExtension.Interfaces.DOMEventTarget.DOMEventTarget' -}
dOMEventGetSrcElement self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    result <- webkit_dom_event_get_src_element self'
    checkUnexpectedReturnNULL "dOMEventGetSrcElement" result
    result' <- (wrapObject WebKit2WebExtension.DOMEventTarget.DOMEventTarget) result
    touchManagedPtr self
    return result'

#if ENABLE_OVERLOADING
data DOMEventGetSrcElementMethodInfo
instance (signature ~ (m WebKit2WebExtension.DOMEventTarget.DOMEventTarget), MonadIO m, IsDOMEvent a) => O.MethodInfo DOMEventGetSrcElementMethodInfo a signature where
    overloadedMethod _ = dOMEventGetSrcElement

#endif

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

foreign import ccall "webkit_dom_event_get_target" webkit_dom_event_get_target ::
    Ptr DOMEvent ->                         -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMEvent"})
    IO (Ptr WebKit2WebExtension.DOMEventTarget.DOMEventTarget)

{-# DEPRECATED dOMEventGetTarget ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/No description available in the introspection data./
-}
dOMEventGetTarget ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMEvent a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMEvent.DOMEvent' -}
    -> m WebKit2WebExtension.DOMEventTarget.DOMEventTarget
    {- ^ __Returns:__ A 'GI.WebKit2WebExtension.Interfaces.DOMEventTarget.DOMEventTarget' -}
dOMEventGetTarget self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    result <- webkit_dom_event_get_target self'
    checkUnexpectedReturnNULL "dOMEventGetTarget" result
    result' <- (wrapObject WebKit2WebExtension.DOMEventTarget.DOMEventTarget) result
    touchManagedPtr self
    return result'

#if ENABLE_OVERLOADING
data DOMEventGetTargetMethodInfo
instance (signature ~ (m WebKit2WebExtension.DOMEventTarget.DOMEventTarget), MonadIO m, IsDOMEvent a) => O.MethodInfo DOMEventGetTargetMethodInfo a signature where
    overloadedMethod _ = dOMEventGetTarget

#endif

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

foreign import ccall "webkit_dom_event_get_time_stamp" webkit_dom_event_get_time_stamp ::
    Ptr DOMEvent ->                         -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMEvent"})
    IO Word32

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

#if ENABLE_OVERLOADING
data DOMEventGetTimeStampMethodInfo
instance (signature ~ (m Word32), MonadIO m, IsDOMEvent a) => O.MethodInfo DOMEventGetTimeStampMethodInfo a signature where
    overloadedMethod _ = dOMEventGetTimeStamp

#endif

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

foreign import ccall "webkit_dom_event_init_event" webkit_dom_event_init_event ::
    Ptr DOMEvent ->                         -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMEvent"})
    CString ->                              -- eventTypeArg : TBasicType TUTF8
    CInt ->                                 -- canBubbleArg : TBasicType TBoolean
    CInt ->                                 -- cancelableArg : TBasicType TBoolean
    IO ()

{-# DEPRECATED dOMEventInitEvent ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/No description available in the introspection data./
-}
dOMEventInitEvent ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMEvent a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMEvent.DOMEvent' -}
    -> T.Text
    {- ^ /@eventTypeArg@/: A @/gchar/@ -}
    -> Bool
    {- ^ /@canBubbleArg@/: A 'Bool' -}
    -> Bool
    {- ^ /@cancelableArg@/: A 'Bool' -}
    -> m ()
dOMEventInitEvent self eventTypeArg canBubbleArg cancelableArg = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    eventTypeArg' <- textToCString eventTypeArg
    let canBubbleArg' = (fromIntegral . fromEnum) canBubbleArg
    let cancelableArg' = (fromIntegral . fromEnum) cancelableArg
    webkit_dom_event_init_event self' eventTypeArg' canBubbleArg' cancelableArg'
    touchManagedPtr self
    freeMem eventTypeArg'
    return ()

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

#endif

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

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

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

#if ENABLE_OVERLOADING
data DOMEventPreventDefaultMethodInfo
instance (signature ~ (m ()), MonadIO m, IsDOMEvent a) => O.MethodInfo DOMEventPreventDefaultMethodInfo a signature where
    overloadedMethod _ = dOMEventPreventDefault

#endif

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

foreign import ccall "webkit_dom_event_set_cancel_bubble" webkit_dom_event_set_cancel_bubble ::
    Ptr DOMEvent ->                         -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMEvent"})
    CInt ->                                 -- value : TBasicType TBoolean
    IO ()

{-# DEPRECATED dOMEventSetCancelBubble ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/No description available in the introspection data./
-}
dOMEventSetCancelBubble ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMEvent a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMEvent.DOMEvent' -}
    -> Bool
    {- ^ /@value@/: A 'Bool' -}
    -> m ()
dOMEventSetCancelBubble self value = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    let value' = (fromIntegral . fromEnum) value
    webkit_dom_event_set_cancel_bubble self' value'
    touchManagedPtr self
    return ()

#if ENABLE_OVERLOADING
data DOMEventSetCancelBubbleMethodInfo
instance (signature ~ (Bool -> m ()), MonadIO m, IsDOMEvent a) => O.MethodInfo DOMEventSetCancelBubbleMethodInfo a signature where
    overloadedMethod _ = dOMEventSetCancelBubble

#endif

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

foreign import ccall "webkit_dom_event_set_return_value" webkit_dom_event_set_return_value ::
    Ptr DOMEvent ->                         -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMEvent"})
    CInt ->                                 -- value : TBasicType TBoolean
    IO ()

{-# DEPRECATED dOMEventSetReturnValue ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/No description available in the introspection data./
-}
dOMEventSetReturnValue ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMEvent a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMEvent.DOMEvent' -}
    -> Bool
    {- ^ /@value@/: A 'Bool' -}
    -> m ()
dOMEventSetReturnValue self value = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    let value' = (fromIntegral . fromEnum) value
    webkit_dom_event_set_return_value self' value'
    touchManagedPtr self
    return ()

#if ENABLE_OVERLOADING
data DOMEventSetReturnValueMethodInfo
instance (signature ~ (Bool -> m ()), MonadIO m, IsDOMEvent a) => O.MethodInfo DOMEventSetReturnValueMethodInfo a signature where
    overloadedMethod _ = dOMEventSetReturnValue

#endif

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

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

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

#if ENABLE_OVERLOADING
data DOMEventStopPropagationMethodInfo
instance (signature ~ (m ()), MonadIO m, IsDOMEvent a) => O.MethodInfo DOMEventStopPropagationMethodInfo a signature where
    overloadedMethod _ = dOMEventStopPropagation

#endif