{- |
Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License    : LGPL-2.1
Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
-}

module GI.WebKit2WebExtension.Objects.DOMEvent
    ( 

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


 -- * Methods
-- ** getBubbles #method:getBubbles#
    DOMEventGetBubblesMethodInfo            ,
    dOMEventGetBubbles                      ,


-- ** getCancelBubble #method:getCancelBubble#
    DOMEventGetCancelBubbleMethodInfo       ,
    dOMEventGetCancelBubble                 ,


-- ** getCancelable #method:getCancelable#
    DOMEventGetCancelableMethodInfo         ,
    dOMEventGetCancelable                   ,


-- ** getCurrentTarget #method:getCurrentTarget#
    DOMEventGetCurrentTargetMethodInfo      ,
    dOMEventGetCurrentTarget                ,


-- ** getEventPhase #method:getEventPhase#
    DOMEventGetEventPhaseMethodInfo         ,
    dOMEventGetEventPhase                   ,


-- ** getEventType #method:getEventType#
    DOMEventGetEventTypeMethodInfo          ,
    dOMEventGetEventType                    ,


-- ** getReturnValue #method:getReturnValue#
    DOMEventGetReturnValueMethodInfo        ,
    dOMEventGetReturnValue                  ,


-- ** getSrcElement #method:getSrcElement#
    DOMEventGetSrcElementMethodInfo         ,
    dOMEventGetSrcElement                   ,


-- ** getTarget #method:getTarget#
    DOMEventGetTargetMethodInfo             ,
    dOMEventGetTarget                       ,


-- ** getTimeStamp #method:getTimeStamp#
    DOMEventGetTimeStampMethodInfo          ,
    dOMEventGetTimeStamp                    ,


-- ** initEvent #method:initEvent#
    DOMEventInitEventMethodInfo             ,
    dOMEventInitEvent                       ,


-- ** preventDefault #method:preventDefault#
    DOMEventPreventDefaultMethodInfo        ,
    dOMEventPreventDefault                  ,


-- ** setCancelBubble #method:setCancelBubble#
    DOMEventSetCancelBubbleMethodInfo       ,
    dOMEventSetCancelBubble                 ,


-- ** setReturnValue #method:setReturnValue#
    DOMEventSetReturnValueMethodInfo        ,
    dOMEventSetReturnValue                  ,


-- ** stopPropagation #method:stopPropagation#
    DOMEventStopPropagationMethodInfo       ,
    dOMEventStopPropagation                 ,




 -- * Properties
-- ** bubbles #attr:bubbles#
    DOMEventBubblesPropertyInfo             ,
    dOMEventBubbles                         ,
    getDOMEventBubbles                      ,


-- ** cancelBubble #attr:cancelBubble#
    DOMEventCancelBubblePropertyInfo        ,
    constructDOMEventCancelBubble           ,
    dOMEventCancelBubble                    ,
    getDOMEventCancelBubble                 ,
    setDOMEventCancelBubble                 ,


-- ** cancelable #attr:cancelable#
    DOMEventCancelablePropertyInfo          ,
    dOMEventCancelable                      ,
    getDOMEventCancelable                   ,


-- ** currentTarget #attr:currentTarget#
    DOMEventCurrentTargetPropertyInfo       ,
    dOMEventCurrentTarget                   ,
    getDOMEventCurrentTarget                ,


-- ** eventPhase #attr:eventPhase#
    DOMEventEventPhasePropertyInfo          ,
    dOMEventEventPhase                      ,
    getDOMEventEventPhase                   ,


-- ** returnValue #attr:returnValue#
    DOMEventReturnValuePropertyInfo         ,
    constructDOMEventReturnValue            ,
    dOMEventReturnValue                     ,
    getDOMEventReturnValue                  ,
    setDOMEventReturnValue                  ,


-- ** srcElement #attr:srcElement#
    DOMEventSrcElementPropertyInfo          ,
    dOMEventSrcElement                      ,
    getDOMEventSrcElement                   ,


-- ** target #attr:target#
    DOMEventTargetPropertyInfo              ,
    dOMEventTarget                          ,
    getDOMEventTarget                       ,


-- ** timeStamp #attr:timeStamp#
    DOMEventTimeStampPropertyInfo           ,
    dOMEventTimeStamp                       ,
    getDOMEventTimeStamp                    ,


-- ** type #attr:type#
    DOMEventTypePropertyInfo                ,
    dOMEventType                            ,
    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.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
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 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

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
    

class GObject o => IsDOMEvent o
#if MIN_VERSION_base(4,9,0)
instance {-# OVERLAPPABLE #-} (GObject a, O.UnknownAncestorError DOMEvent a) =>
    IsDOMEvent a
#endif
instance IsDOMEvent DOMEvent
instance WebKit2WebExtension.DOMObject.IsDOMObject DOMEvent
instance GObject.Object.IsObject DOMEvent

toDOMEvent :: IsDOMEvent o => o -> IO DOMEvent
toDOMEvent = unsafeCastTo DOMEvent

noDOMEvent :: Maybe DOMEvent
noDOMEvent = Nothing

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 "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 "replaceData" o = GObject.Object.ObjectReplaceDataMethodInfo
    ResolveDOMEventMethod "replaceQdata" o = GObject.Object.ObjectReplaceQdataMethodInfo
    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 "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) => O.IsLabelProxy t (DOMEvent -> p) where
    fromLabelProxy _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)

#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveDOMEventMethod t DOMEvent, O.MethodInfo info DOMEvent p) => O.IsLabel t (DOMEvent -> p) where
    fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#endif

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

getDOMEventBubbles :: (MonadIO m, IsDOMEvent o) => o -> m Bool
getDOMEventBubbles obj = liftIO $ getObjectPropertyBool obj "bubbles"

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

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

getDOMEventCancelBubble :: (MonadIO m, IsDOMEvent o) => o -> m Bool
getDOMEventCancelBubble obj = liftIO $ getObjectPropertyBool obj "cancel-bubble"

setDOMEventCancelBubble :: (MonadIO m, IsDOMEvent o) => o -> Bool -> m ()
setDOMEventCancelBubble obj val = liftIO $ setObjectPropertyBool obj "cancel-bubble" val

constructDOMEventCancelBubble :: (IsDOMEvent o) => Bool -> IO (GValueConstruct o)
constructDOMEventCancelBubble val = constructObjectPropertyBool "cancel-bubble" val

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

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

getDOMEventCancelable :: (MonadIO m, IsDOMEvent o) => o -> m Bool
getDOMEventCancelable obj = liftIO $ getObjectPropertyBool obj "cancelable"

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

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

getDOMEventCurrentTarget :: (MonadIO m, IsDOMEvent o) => o -> m (Maybe WebKit2WebExtension.DOMEventTarget.DOMEventTarget)
getDOMEventCurrentTarget obj = liftIO $ getObjectPropertyObject obj "current-target" WebKit2WebExtension.DOMEventTarget.DOMEventTarget

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

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

getDOMEventEventPhase :: (MonadIO m, IsDOMEvent o) => o -> m Word32
getDOMEventEventPhase obj = liftIO $ getObjectPropertyUInt32 obj "event-phase"

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

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

getDOMEventReturnValue :: (MonadIO m, IsDOMEvent o) => o -> m Bool
getDOMEventReturnValue obj = liftIO $ getObjectPropertyBool obj "return-value"

setDOMEventReturnValue :: (MonadIO m, IsDOMEvent o) => o -> Bool -> m ()
setDOMEventReturnValue obj val = liftIO $ setObjectPropertyBool obj "return-value" val

constructDOMEventReturnValue :: (IsDOMEvent o) => Bool -> IO (GValueConstruct o)
constructDOMEventReturnValue val = constructObjectPropertyBool "return-value" val

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

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

getDOMEventSrcElement :: (MonadIO m, IsDOMEvent o) => o -> m (Maybe WebKit2WebExtension.DOMEventTarget.DOMEventTarget)
getDOMEventSrcElement obj = liftIO $ getObjectPropertyObject obj "src-element" WebKit2WebExtension.DOMEventTarget.DOMEventTarget

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

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

getDOMEventTarget :: (MonadIO m, IsDOMEvent o) => o -> m (Maybe WebKit2WebExtension.DOMEventTarget.DOMEventTarget)
getDOMEventTarget obj = liftIO $ getObjectPropertyObject obj "target" WebKit2WebExtension.DOMEventTarget.DOMEventTarget

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

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

getDOMEventTimeStamp :: (MonadIO m, IsDOMEvent o) => o -> m Word32
getDOMEventTimeStamp obj = liftIO $ getObjectPropertyUInt32 obj "time-stamp"

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

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

getDOMEventType :: (MonadIO m, IsDOMEvent o) => o -> m (Maybe T.Text)
getDOMEventType obj = liftIO $ getObjectPropertyString obj "type"

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

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, *)])

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

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

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

{- |
/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'

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

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

{- |
/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'

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

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

{- |
/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'

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

-- 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)

{- |
/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'

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

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

{- |
/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

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

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

{- |
/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'

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

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

{- |
/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'

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

-- 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)

{- |
/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'

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

-- 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)

{- |
/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'

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

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

{- |
/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

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

-- 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 ()

{- |
/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 ()

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

-- 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 ()

{- |
/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 ()

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

-- 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 ()

{- |
/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 ()

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

-- 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 ()

{- |
/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 ()

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

-- 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 ()

{- |
/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 ()

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