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

-- * Exported types
    DOMMouseEvent(..)                       ,
    IsDOMMouseEvent                         ,
    toDOMMouseEvent                         ,
    noDOMMouseEvent                         ,


 -- * Methods
-- ** getAltKey #method:getAltKey#
    DOMMouseEventGetAltKeyMethodInfo        ,
    dOMMouseEventGetAltKey                  ,


-- ** getButton #method:getButton#
    DOMMouseEventGetButtonMethodInfo        ,
    dOMMouseEventGetButton                  ,


-- ** getClientX #method:getClientX#
    DOMMouseEventGetClientXMethodInfo       ,
    dOMMouseEventGetClientX                 ,


-- ** getClientY #method:getClientY#
    DOMMouseEventGetClientYMethodInfo       ,
    dOMMouseEventGetClientY                 ,


-- ** getCtrlKey #method:getCtrlKey#
    DOMMouseEventGetCtrlKeyMethodInfo       ,
    dOMMouseEventGetCtrlKey                 ,


-- ** getFromElement #method:getFromElement#
    DOMMouseEventGetFromElementMethodInfo   ,
    dOMMouseEventGetFromElement             ,


-- ** getMetaKey #method:getMetaKey#
    DOMMouseEventGetMetaKeyMethodInfo       ,
    dOMMouseEventGetMetaKey                 ,


-- ** getOffsetX #method:getOffsetX#
    DOMMouseEventGetOffsetXMethodInfo       ,
    dOMMouseEventGetOffsetX                 ,


-- ** getOffsetY #method:getOffsetY#
    DOMMouseEventGetOffsetYMethodInfo       ,
    dOMMouseEventGetOffsetY                 ,


-- ** getRelatedTarget #method:getRelatedTarget#
    DOMMouseEventGetRelatedTargetMethodInfo ,
    dOMMouseEventGetRelatedTarget           ,


-- ** getScreenX #method:getScreenX#
    DOMMouseEventGetScreenXMethodInfo       ,
    dOMMouseEventGetScreenX                 ,


-- ** getScreenY #method:getScreenY#
    DOMMouseEventGetScreenYMethodInfo       ,
    dOMMouseEventGetScreenY                 ,


-- ** getShiftKey #method:getShiftKey#
    DOMMouseEventGetShiftKeyMethodInfo      ,
    dOMMouseEventGetShiftKey                ,


-- ** getToElement #method:getToElement#
    DOMMouseEventGetToElementMethodInfo     ,
    dOMMouseEventGetToElement               ,


-- ** getX #method:getX#
    DOMMouseEventGetXMethodInfo             ,
    dOMMouseEventGetX                       ,


-- ** getY #method:getY#
    DOMMouseEventGetYMethodInfo             ,
    dOMMouseEventGetY                       ,


-- ** initMouseEvent #method:initMouseEvent#
    DOMMouseEventInitMouseEventMethodInfo   ,
    dOMMouseEventInitMouseEvent             ,




 -- * Properties
-- ** altKey #attr:altKey#
    DOMMouseEventAltKeyPropertyInfo         ,
    dOMMouseEventAltKey                     ,
    getDOMMouseEventAltKey                  ,


-- ** button #attr:button#
    DOMMouseEventButtonPropertyInfo         ,
    dOMMouseEventButton                     ,
    getDOMMouseEventButton                  ,


-- ** clientX #attr:clientX#
    DOMMouseEventClientXPropertyInfo        ,
    dOMMouseEventClientX                    ,
    getDOMMouseEventClientX                 ,


-- ** clientY #attr:clientY#
    DOMMouseEventClientYPropertyInfo        ,
    dOMMouseEventClientY                    ,
    getDOMMouseEventClientY                 ,


-- ** ctrlKey #attr:ctrlKey#
    DOMMouseEventCtrlKeyPropertyInfo        ,
    dOMMouseEventCtrlKey                    ,
    getDOMMouseEventCtrlKey                 ,


-- ** fromElement #attr:fromElement#
    DOMMouseEventFromElementPropertyInfo    ,
    dOMMouseEventFromElement                ,
    getDOMMouseEventFromElement             ,


-- ** metaKey #attr:metaKey#
    DOMMouseEventMetaKeyPropertyInfo        ,
    dOMMouseEventMetaKey                    ,
    getDOMMouseEventMetaKey                 ,


-- ** offsetX #attr:offsetX#
    DOMMouseEventOffsetXPropertyInfo        ,
    dOMMouseEventOffsetX                    ,
    getDOMMouseEventOffsetX                 ,


-- ** offsetY #attr:offsetY#
    DOMMouseEventOffsetYPropertyInfo        ,
    dOMMouseEventOffsetY                    ,
    getDOMMouseEventOffsetY                 ,


-- ** relatedTarget #attr:relatedTarget#
    DOMMouseEventRelatedTargetPropertyInfo  ,
    dOMMouseEventRelatedTarget              ,
    getDOMMouseEventRelatedTarget           ,


-- ** screenX #attr:screenX#
    DOMMouseEventScreenXPropertyInfo        ,
    dOMMouseEventScreenX                    ,
    getDOMMouseEventScreenX                 ,


-- ** screenY #attr:screenY#
    DOMMouseEventScreenYPropertyInfo        ,
    dOMMouseEventScreenY                    ,
    getDOMMouseEventScreenY                 ,


-- ** shiftKey #attr:shiftKey#
    DOMMouseEventShiftKeyPropertyInfo       ,
    dOMMouseEventShiftKey                   ,
    getDOMMouseEventShiftKey                ,


-- ** toElement #attr:toElement#
    DOMMouseEventToElementPropertyInfo      ,
    dOMMouseEventToElement                  ,
    getDOMMouseEventToElement               ,


-- ** x #attr:x#
    DOMMouseEventXPropertyInfo              ,
    dOMMouseEventX                          ,
    getDOMMouseEventX                       ,


-- ** y #attr:y#
    DOMMouseEventYPropertyInfo              ,
    dOMMouseEventY                          ,
    getDOMMouseEventY                       ,




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

newtype DOMMouseEvent = DOMMouseEvent (ManagedPtr DOMMouseEvent)
foreign import ccall "webkit_dom_mouse_event_get_type"
    c_webkit_dom_mouse_event_get_type :: IO GType

instance GObject DOMMouseEvent where
    gobjectType _ = c_webkit_dom_mouse_event_get_type
    

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

toDOMMouseEvent :: IsDOMMouseEvent o => o -> IO DOMMouseEvent
toDOMMouseEvent = unsafeCastTo DOMMouseEvent

noDOMMouseEvent :: Maybe DOMMouseEvent
noDOMMouseEvent = Nothing

type family ResolveDOMMouseEventMethod (t :: Symbol) (o :: *) :: * where
    ResolveDOMMouseEventMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
    ResolveDOMMouseEventMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
    ResolveDOMMouseEventMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
    ResolveDOMMouseEventMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
    ResolveDOMMouseEventMethod "initEvent" o = WebKit2WebExtension.DOMEvent.DOMEventInitEventMethodInfo
    ResolveDOMMouseEventMethod "initMouseEvent" o = DOMMouseEventInitMouseEventMethodInfo
    ResolveDOMMouseEventMethod "initUiEvent" o = WebKit2WebExtension.DOMUIEvent.DOMUIEventInitUiEventMethodInfo
    ResolveDOMMouseEventMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
    ResolveDOMMouseEventMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
    ResolveDOMMouseEventMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
    ResolveDOMMouseEventMethod "preventDefault" o = WebKit2WebExtension.DOMEvent.DOMEventPreventDefaultMethodInfo
    ResolveDOMMouseEventMethod "ref" o = GObject.Object.ObjectRefMethodInfo
    ResolveDOMMouseEventMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
    ResolveDOMMouseEventMethod "replaceData" o = GObject.Object.ObjectReplaceDataMethodInfo
    ResolveDOMMouseEventMethod "replaceQdata" o = GObject.Object.ObjectReplaceQdataMethodInfo
    ResolveDOMMouseEventMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
    ResolveDOMMouseEventMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
    ResolveDOMMouseEventMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
    ResolveDOMMouseEventMethod "stopPropagation" o = WebKit2WebExtension.DOMEvent.DOMEventStopPropagationMethodInfo
    ResolveDOMMouseEventMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
    ResolveDOMMouseEventMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
    ResolveDOMMouseEventMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
    ResolveDOMMouseEventMethod "getAltKey" o = DOMMouseEventGetAltKeyMethodInfo
    ResolveDOMMouseEventMethod "getBubbles" o = WebKit2WebExtension.DOMEvent.DOMEventGetBubblesMethodInfo
    ResolveDOMMouseEventMethod "getButton" o = DOMMouseEventGetButtonMethodInfo
    ResolveDOMMouseEventMethod "getCancelBubble" o = WebKit2WebExtension.DOMEvent.DOMEventGetCancelBubbleMethodInfo
    ResolveDOMMouseEventMethod "getCancelable" o = WebKit2WebExtension.DOMEvent.DOMEventGetCancelableMethodInfo
    ResolveDOMMouseEventMethod "getCharCode" o = WebKit2WebExtension.DOMUIEvent.DOMUIEventGetCharCodeMethodInfo
    ResolveDOMMouseEventMethod "getClientX" o = DOMMouseEventGetClientXMethodInfo
    ResolveDOMMouseEventMethod "getClientY" o = DOMMouseEventGetClientYMethodInfo
    ResolveDOMMouseEventMethod "getCtrlKey" o = DOMMouseEventGetCtrlKeyMethodInfo
    ResolveDOMMouseEventMethod "getCurrentTarget" o = WebKit2WebExtension.DOMEvent.DOMEventGetCurrentTargetMethodInfo
    ResolveDOMMouseEventMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
    ResolveDOMMouseEventMethod "getDetail" o = WebKit2WebExtension.DOMUIEvent.DOMUIEventGetDetailMethodInfo
    ResolveDOMMouseEventMethod "getEventPhase" o = WebKit2WebExtension.DOMEvent.DOMEventGetEventPhaseMethodInfo
    ResolveDOMMouseEventMethod "getEventType" o = WebKit2WebExtension.DOMEvent.DOMEventGetEventTypeMethodInfo
    ResolveDOMMouseEventMethod "getFromElement" o = DOMMouseEventGetFromElementMethodInfo
    ResolveDOMMouseEventMethod "getKeyCode" o = WebKit2WebExtension.DOMUIEvent.DOMUIEventGetKeyCodeMethodInfo
    ResolveDOMMouseEventMethod "getLayerX" o = WebKit2WebExtension.DOMUIEvent.DOMUIEventGetLayerXMethodInfo
    ResolveDOMMouseEventMethod "getLayerY" o = WebKit2WebExtension.DOMUIEvent.DOMUIEventGetLayerYMethodInfo
    ResolveDOMMouseEventMethod "getMetaKey" o = DOMMouseEventGetMetaKeyMethodInfo
    ResolveDOMMouseEventMethod "getOffsetX" o = DOMMouseEventGetOffsetXMethodInfo
    ResolveDOMMouseEventMethod "getOffsetY" o = DOMMouseEventGetOffsetYMethodInfo
    ResolveDOMMouseEventMethod "getPageX" o = WebKit2WebExtension.DOMUIEvent.DOMUIEventGetPageXMethodInfo
    ResolveDOMMouseEventMethod "getPageY" o = WebKit2WebExtension.DOMUIEvent.DOMUIEventGetPageYMethodInfo
    ResolveDOMMouseEventMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
    ResolveDOMMouseEventMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
    ResolveDOMMouseEventMethod "getRelatedTarget" o = DOMMouseEventGetRelatedTargetMethodInfo
    ResolveDOMMouseEventMethod "getReturnValue" o = WebKit2WebExtension.DOMEvent.DOMEventGetReturnValueMethodInfo
    ResolveDOMMouseEventMethod "getScreenX" o = DOMMouseEventGetScreenXMethodInfo
    ResolveDOMMouseEventMethod "getScreenY" o = DOMMouseEventGetScreenYMethodInfo
    ResolveDOMMouseEventMethod "getShiftKey" o = DOMMouseEventGetShiftKeyMethodInfo
    ResolveDOMMouseEventMethod "getSrcElement" o = WebKit2WebExtension.DOMEvent.DOMEventGetSrcElementMethodInfo
    ResolveDOMMouseEventMethod "getTarget" o = WebKit2WebExtension.DOMEvent.DOMEventGetTargetMethodInfo
    ResolveDOMMouseEventMethod "getTimeStamp" o = WebKit2WebExtension.DOMEvent.DOMEventGetTimeStampMethodInfo
    ResolveDOMMouseEventMethod "getToElement" o = DOMMouseEventGetToElementMethodInfo
    ResolveDOMMouseEventMethod "getView" o = WebKit2WebExtension.DOMUIEvent.DOMUIEventGetViewMethodInfo
    ResolveDOMMouseEventMethod "getX" o = DOMMouseEventGetXMethodInfo
    ResolveDOMMouseEventMethod "getY" o = DOMMouseEventGetYMethodInfo
    ResolveDOMMouseEventMethod "setCancelBubble" o = WebKit2WebExtension.DOMEvent.DOMEventSetCancelBubbleMethodInfo
    ResolveDOMMouseEventMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
    ResolveDOMMouseEventMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
    ResolveDOMMouseEventMethod "setReturnValue" o = WebKit2WebExtension.DOMEvent.DOMEventSetReturnValueMethodInfo
    ResolveDOMMouseEventMethod l o = O.MethodResolutionFailed l o

instance (info ~ ResolveDOMMouseEventMethod t DOMMouseEvent, O.MethodInfo info DOMMouseEvent p) => O.IsLabelProxy t (DOMMouseEvent -> p) where
    fromLabelProxy _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)

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

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

getDOMMouseEventAltKey :: (MonadIO m, IsDOMMouseEvent o) => o -> m Bool
getDOMMouseEventAltKey obj = liftIO $ getObjectPropertyBool obj "alt-key"

data DOMMouseEventAltKeyPropertyInfo
instance AttrInfo DOMMouseEventAltKeyPropertyInfo where
    type AttrAllowedOps DOMMouseEventAltKeyPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMMouseEventAltKeyPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMMouseEventAltKeyPropertyInfo = IsDOMMouseEvent
    type AttrGetType DOMMouseEventAltKeyPropertyInfo = Bool
    type AttrLabel DOMMouseEventAltKeyPropertyInfo = "alt-key"
    type AttrOrigin DOMMouseEventAltKeyPropertyInfo = DOMMouseEvent
    attrGet _ = getDOMMouseEventAltKey
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined

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

getDOMMouseEventButton :: (MonadIO m, IsDOMMouseEvent o) => o -> m Word32
getDOMMouseEventButton obj = liftIO $ getObjectPropertyUInt32 obj "button"

data DOMMouseEventButtonPropertyInfo
instance AttrInfo DOMMouseEventButtonPropertyInfo where
    type AttrAllowedOps DOMMouseEventButtonPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMMouseEventButtonPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMMouseEventButtonPropertyInfo = IsDOMMouseEvent
    type AttrGetType DOMMouseEventButtonPropertyInfo = Word32
    type AttrLabel DOMMouseEventButtonPropertyInfo = "button"
    type AttrOrigin DOMMouseEventButtonPropertyInfo = DOMMouseEvent
    attrGet _ = getDOMMouseEventButton
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined

-- VVV Prop "client-x"
   -- Type: TBasicType TLong
   -- Flags: [PropertyReadable]
   -- Nullable: (Just False,Nothing)

getDOMMouseEventClientX :: (MonadIO m, IsDOMMouseEvent o) => o -> m CLong
getDOMMouseEventClientX obj = liftIO $ getObjectPropertyLong obj "client-x"

data DOMMouseEventClientXPropertyInfo
instance AttrInfo DOMMouseEventClientXPropertyInfo where
    type AttrAllowedOps DOMMouseEventClientXPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMMouseEventClientXPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMMouseEventClientXPropertyInfo = IsDOMMouseEvent
    type AttrGetType DOMMouseEventClientXPropertyInfo = CLong
    type AttrLabel DOMMouseEventClientXPropertyInfo = "client-x"
    type AttrOrigin DOMMouseEventClientXPropertyInfo = DOMMouseEvent
    attrGet _ = getDOMMouseEventClientX
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined

-- VVV Prop "client-y"
   -- Type: TBasicType TLong
   -- Flags: [PropertyReadable]
   -- Nullable: (Just False,Nothing)

getDOMMouseEventClientY :: (MonadIO m, IsDOMMouseEvent o) => o -> m CLong
getDOMMouseEventClientY obj = liftIO $ getObjectPropertyLong obj "client-y"

data DOMMouseEventClientYPropertyInfo
instance AttrInfo DOMMouseEventClientYPropertyInfo where
    type AttrAllowedOps DOMMouseEventClientYPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMMouseEventClientYPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMMouseEventClientYPropertyInfo = IsDOMMouseEvent
    type AttrGetType DOMMouseEventClientYPropertyInfo = CLong
    type AttrLabel DOMMouseEventClientYPropertyInfo = "client-y"
    type AttrOrigin DOMMouseEventClientYPropertyInfo = DOMMouseEvent
    attrGet _ = getDOMMouseEventClientY
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined

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

getDOMMouseEventCtrlKey :: (MonadIO m, IsDOMMouseEvent o) => o -> m Bool
getDOMMouseEventCtrlKey obj = liftIO $ getObjectPropertyBool obj "ctrl-key"

data DOMMouseEventCtrlKeyPropertyInfo
instance AttrInfo DOMMouseEventCtrlKeyPropertyInfo where
    type AttrAllowedOps DOMMouseEventCtrlKeyPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMMouseEventCtrlKeyPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMMouseEventCtrlKeyPropertyInfo = IsDOMMouseEvent
    type AttrGetType DOMMouseEventCtrlKeyPropertyInfo = Bool
    type AttrLabel DOMMouseEventCtrlKeyPropertyInfo = "ctrl-key"
    type AttrOrigin DOMMouseEventCtrlKeyPropertyInfo = DOMMouseEvent
    attrGet _ = getDOMMouseEventCtrlKey
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined

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

getDOMMouseEventFromElement :: (MonadIO m, IsDOMMouseEvent o) => o -> m WebKit2WebExtension.DOMNode.DOMNode
getDOMMouseEventFromElement obj = liftIO $ checkUnexpectedNothing "getDOMMouseEventFromElement" $ getObjectPropertyObject obj "from-element" WebKit2WebExtension.DOMNode.DOMNode

data DOMMouseEventFromElementPropertyInfo
instance AttrInfo DOMMouseEventFromElementPropertyInfo where
    type AttrAllowedOps DOMMouseEventFromElementPropertyInfo = '[ 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint DOMMouseEventFromElementPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMMouseEventFromElementPropertyInfo = IsDOMMouseEvent
    type AttrGetType DOMMouseEventFromElementPropertyInfo = WebKit2WebExtension.DOMNode.DOMNode
    type AttrLabel DOMMouseEventFromElementPropertyInfo = "from-element"
    type AttrOrigin DOMMouseEventFromElementPropertyInfo = DOMMouseEvent
    attrGet _ = getDOMMouseEventFromElement
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined

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

getDOMMouseEventMetaKey :: (MonadIO m, IsDOMMouseEvent o) => o -> m Bool
getDOMMouseEventMetaKey obj = liftIO $ getObjectPropertyBool obj "meta-key"

data DOMMouseEventMetaKeyPropertyInfo
instance AttrInfo DOMMouseEventMetaKeyPropertyInfo where
    type AttrAllowedOps DOMMouseEventMetaKeyPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMMouseEventMetaKeyPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMMouseEventMetaKeyPropertyInfo = IsDOMMouseEvent
    type AttrGetType DOMMouseEventMetaKeyPropertyInfo = Bool
    type AttrLabel DOMMouseEventMetaKeyPropertyInfo = "meta-key"
    type AttrOrigin DOMMouseEventMetaKeyPropertyInfo = DOMMouseEvent
    attrGet _ = getDOMMouseEventMetaKey
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined

-- VVV Prop "offset-x"
   -- Type: TBasicType TLong
   -- Flags: [PropertyReadable]
   -- Nullable: (Just False,Nothing)

getDOMMouseEventOffsetX :: (MonadIO m, IsDOMMouseEvent o) => o -> m CLong
getDOMMouseEventOffsetX obj = liftIO $ getObjectPropertyLong obj "offset-x"

data DOMMouseEventOffsetXPropertyInfo
instance AttrInfo DOMMouseEventOffsetXPropertyInfo where
    type AttrAllowedOps DOMMouseEventOffsetXPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMMouseEventOffsetXPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMMouseEventOffsetXPropertyInfo = IsDOMMouseEvent
    type AttrGetType DOMMouseEventOffsetXPropertyInfo = CLong
    type AttrLabel DOMMouseEventOffsetXPropertyInfo = "offset-x"
    type AttrOrigin DOMMouseEventOffsetXPropertyInfo = DOMMouseEvent
    attrGet _ = getDOMMouseEventOffsetX
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined

-- VVV Prop "offset-y"
   -- Type: TBasicType TLong
   -- Flags: [PropertyReadable]
   -- Nullable: (Just False,Nothing)

getDOMMouseEventOffsetY :: (MonadIO m, IsDOMMouseEvent o) => o -> m CLong
getDOMMouseEventOffsetY obj = liftIO $ getObjectPropertyLong obj "offset-y"

data DOMMouseEventOffsetYPropertyInfo
instance AttrInfo DOMMouseEventOffsetYPropertyInfo where
    type AttrAllowedOps DOMMouseEventOffsetYPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMMouseEventOffsetYPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMMouseEventOffsetYPropertyInfo = IsDOMMouseEvent
    type AttrGetType DOMMouseEventOffsetYPropertyInfo = CLong
    type AttrLabel DOMMouseEventOffsetYPropertyInfo = "offset-y"
    type AttrOrigin DOMMouseEventOffsetYPropertyInfo = DOMMouseEvent
    attrGet _ = getDOMMouseEventOffsetY
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined

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

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

data DOMMouseEventRelatedTargetPropertyInfo
instance AttrInfo DOMMouseEventRelatedTargetPropertyInfo where
    type AttrAllowedOps DOMMouseEventRelatedTargetPropertyInfo = '[ 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint DOMMouseEventRelatedTargetPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMMouseEventRelatedTargetPropertyInfo = IsDOMMouseEvent
    type AttrGetType DOMMouseEventRelatedTargetPropertyInfo = (Maybe WebKit2WebExtension.DOMEventTarget.DOMEventTarget)
    type AttrLabel DOMMouseEventRelatedTargetPropertyInfo = "related-target"
    type AttrOrigin DOMMouseEventRelatedTargetPropertyInfo = DOMMouseEvent
    attrGet _ = getDOMMouseEventRelatedTarget
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined

-- VVV Prop "screen-x"
   -- Type: TBasicType TLong
   -- Flags: [PropertyReadable]
   -- Nullable: (Just False,Nothing)

getDOMMouseEventScreenX :: (MonadIO m, IsDOMMouseEvent o) => o -> m CLong
getDOMMouseEventScreenX obj = liftIO $ getObjectPropertyLong obj "screen-x"

data DOMMouseEventScreenXPropertyInfo
instance AttrInfo DOMMouseEventScreenXPropertyInfo where
    type AttrAllowedOps DOMMouseEventScreenXPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMMouseEventScreenXPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMMouseEventScreenXPropertyInfo = IsDOMMouseEvent
    type AttrGetType DOMMouseEventScreenXPropertyInfo = CLong
    type AttrLabel DOMMouseEventScreenXPropertyInfo = "screen-x"
    type AttrOrigin DOMMouseEventScreenXPropertyInfo = DOMMouseEvent
    attrGet _ = getDOMMouseEventScreenX
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined

-- VVV Prop "screen-y"
   -- Type: TBasicType TLong
   -- Flags: [PropertyReadable]
   -- Nullable: (Just False,Nothing)

getDOMMouseEventScreenY :: (MonadIO m, IsDOMMouseEvent o) => o -> m CLong
getDOMMouseEventScreenY obj = liftIO $ getObjectPropertyLong obj "screen-y"

data DOMMouseEventScreenYPropertyInfo
instance AttrInfo DOMMouseEventScreenYPropertyInfo where
    type AttrAllowedOps DOMMouseEventScreenYPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMMouseEventScreenYPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMMouseEventScreenYPropertyInfo = IsDOMMouseEvent
    type AttrGetType DOMMouseEventScreenYPropertyInfo = CLong
    type AttrLabel DOMMouseEventScreenYPropertyInfo = "screen-y"
    type AttrOrigin DOMMouseEventScreenYPropertyInfo = DOMMouseEvent
    attrGet _ = getDOMMouseEventScreenY
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined

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

getDOMMouseEventShiftKey :: (MonadIO m, IsDOMMouseEvent o) => o -> m Bool
getDOMMouseEventShiftKey obj = liftIO $ getObjectPropertyBool obj "shift-key"

data DOMMouseEventShiftKeyPropertyInfo
instance AttrInfo DOMMouseEventShiftKeyPropertyInfo where
    type AttrAllowedOps DOMMouseEventShiftKeyPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMMouseEventShiftKeyPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMMouseEventShiftKeyPropertyInfo = IsDOMMouseEvent
    type AttrGetType DOMMouseEventShiftKeyPropertyInfo = Bool
    type AttrLabel DOMMouseEventShiftKeyPropertyInfo = "shift-key"
    type AttrOrigin DOMMouseEventShiftKeyPropertyInfo = DOMMouseEvent
    attrGet _ = getDOMMouseEventShiftKey
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined

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

getDOMMouseEventToElement :: (MonadIO m, IsDOMMouseEvent o) => o -> m WebKit2WebExtension.DOMNode.DOMNode
getDOMMouseEventToElement obj = liftIO $ checkUnexpectedNothing "getDOMMouseEventToElement" $ getObjectPropertyObject obj "to-element" WebKit2WebExtension.DOMNode.DOMNode

data DOMMouseEventToElementPropertyInfo
instance AttrInfo DOMMouseEventToElementPropertyInfo where
    type AttrAllowedOps DOMMouseEventToElementPropertyInfo = '[ 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint DOMMouseEventToElementPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMMouseEventToElementPropertyInfo = IsDOMMouseEvent
    type AttrGetType DOMMouseEventToElementPropertyInfo = WebKit2WebExtension.DOMNode.DOMNode
    type AttrLabel DOMMouseEventToElementPropertyInfo = "to-element"
    type AttrOrigin DOMMouseEventToElementPropertyInfo = DOMMouseEvent
    attrGet _ = getDOMMouseEventToElement
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined

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

getDOMMouseEventX :: (MonadIO m, IsDOMMouseEvent o) => o -> m CLong
getDOMMouseEventX obj = liftIO $ getObjectPropertyLong obj "x"

data DOMMouseEventXPropertyInfo
instance AttrInfo DOMMouseEventXPropertyInfo where
    type AttrAllowedOps DOMMouseEventXPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMMouseEventXPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMMouseEventXPropertyInfo = IsDOMMouseEvent
    type AttrGetType DOMMouseEventXPropertyInfo = CLong
    type AttrLabel DOMMouseEventXPropertyInfo = "x"
    type AttrOrigin DOMMouseEventXPropertyInfo = DOMMouseEvent
    attrGet _ = getDOMMouseEventX
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined

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

getDOMMouseEventY :: (MonadIO m, IsDOMMouseEvent o) => o -> m CLong
getDOMMouseEventY obj = liftIO $ getObjectPropertyLong obj "y"

data DOMMouseEventYPropertyInfo
instance AttrInfo DOMMouseEventYPropertyInfo where
    type AttrAllowedOps DOMMouseEventYPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMMouseEventYPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMMouseEventYPropertyInfo = IsDOMMouseEvent
    type AttrGetType DOMMouseEventYPropertyInfo = CLong
    type AttrLabel DOMMouseEventYPropertyInfo = "y"
    type AttrOrigin DOMMouseEventYPropertyInfo = DOMMouseEvent
    attrGet _ = getDOMMouseEventY
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined

instance O.HasAttributeList DOMMouseEvent
type instance O.AttributeList DOMMouseEvent = DOMMouseEventAttributeList
type DOMMouseEventAttributeList = ('[ '("altKey", DOMMouseEventAltKeyPropertyInfo), '("bubbles", WebKit2WebExtension.DOMEvent.DOMEventBubblesPropertyInfo), '("button", DOMMouseEventButtonPropertyInfo), '("cancelBubble", WebKit2WebExtension.DOMEvent.DOMEventCancelBubblePropertyInfo), '("cancelable", WebKit2WebExtension.DOMEvent.DOMEventCancelablePropertyInfo), '("charCode", WebKit2WebExtension.DOMUIEvent.DOMUIEventCharCodePropertyInfo), '("clientX", DOMMouseEventClientXPropertyInfo), '("clientY", DOMMouseEventClientYPropertyInfo), '("coreObject", WebKit2WebExtension.DOMObject.DOMObjectCoreObjectPropertyInfo), '("ctrlKey", DOMMouseEventCtrlKeyPropertyInfo), '("currentTarget", WebKit2WebExtension.DOMEvent.DOMEventCurrentTargetPropertyInfo), '("detail", WebKit2WebExtension.DOMUIEvent.DOMUIEventDetailPropertyInfo), '("eventPhase", WebKit2WebExtension.DOMEvent.DOMEventEventPhasePropertyInfo), '("fromElement", DOMMouseEventFromElementPropertyInfo), '("keyCode", WebKit2WebExtension.DOMUIEvent.DOMUIEventKeyCodePropertyInfo), '("layerX", WebKit2WebExtension.DOMUIEvent.DOMUIEventLayerXPropertyInfo), '("layerY", WebKit2WebExtension.DOMUIEvent.DOMUIEventLayerYPropertyInfo), '("metaKey", DOMMouseEventMetaKeyPropertyInfo), '("offsetX", DOMMouseEventOffsetXPropertyInfo), '("offsetY", DOMMouseEventOffsetYPropertyInfo), '("pageX", WebKit2WebExtension.DOMUIEvent.DOMUIEventPageXPropertyInfo), '("pageY", WebKit2WebExtension.DOMUIEvent.DOMUIEventPageYPropertyInfo), '("relatedTarget", DOMMouseEventRelatedTargetPropertyInfo), '("returnValue", WebKit2WebExtension.DOMEvent.DOMEventReturnValuePropertyInfo), '("screenX", DOMMouseEventScreenXPropertyInfo), '("screenY", DOMMouseEventScreenYPropertyInfo), '("shiftKey", DOMMouseEventShiftKeyPropertyInfo), '("srcElement", WebKit2WebExtension.DOMEvent.DOMEventSrcElementPropertyInfo), '("target", WebKit2WebExtension.DOMEvent.DOMEventTargetPropertyInfo), '("timeStamp", WebKit2WebExtension.DOMEvent.DOMEventTimeStampPropertyInfo), '("toElement", DOMMouseEventToElementPropertyInfo), '("type", WebKit2WebExtension.DOMEvent.DOMEventTypePropertyInfo), '("view", WebKit2WebExtension.DOMUIEvent.DOMUIEventViewPropertyInfo), '("x", DOMMouseEventXPropertyInfo), '("y", DOMMouseEventYPropertyInfo)] :: [(Symbol, *)])

dOMMouseEventAltKey :: AttrLabelProxy "altKey"
dOMMouseEventAltKey = AttrLabelProxy

dOMMouseEventButton :: AttrLabelProxy "button"
dOMMouseEventButton = AttrLabelProxy

dOMMouseEventClientX :: AttrLabelProxy "clientX"
dOMMouseEventClientX = AttrLabelProxy

dOMMouseEventClientY :: AttrLabelProxy "clientY"
dOMMouseEventClientY = AttrLabelProxy

dOMMouseEventCtrlKey :: AttrLabelProxy "ctrlKey"
dOMMouseEventCtrlKey = AttrLabelProxy

dOMMouseEventFromElement :: AttrLabelProxy "fromElement"
dOMMouseEventFromElement = AttrLabelProxy

dOMMouseEventMetaKey :: AttrLabelProxy "metaKey"
dOMMouseEventMetaKey = AttrLabelProxy

dOMMouseEventOffsetX :: AttrLabelProxy "offsetX"
dOMMouseEventOffsetX = AttrLabelProxy

dOMMouseEventOffsetY :: AttrLabelProxy "offsetY"
dOMMouseEventOffsetY = AttrLabelProxy

dOMMouseEventRelatedTarget :: AttrLabelProxy "relatedTarget"
dOMMouseEventRelatedTarget = AttrLabelProxy

dOMMouseEventScreenX :: AttrLabelProxy "screenX"
dOMMouseEventScreenX = AttrLabelProxy

dOMMouseEventScreenY :: AttrLabelProxy "screenY"
dOMMouseEventScreenY = AttrLabelProxy

dOMMouseEventShiftKey :: AttrLabelProxy "shiftKey"
dOMMouseEventShiftKey = AttrLabelProxy

dOMMouseEventToElement :: AttrLabelProxy "toElement"
dOMMouseEventToElement = AttrLabelProxy

dOMMouseEventX :: AttrLabelProxy "x"
dOMMouseEventX = AttrLabelProxy

dOMMouseEventY :: AttrLabelProxy "y"
dOMMouseEventY = AttrLabelProxy

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

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

{- |
/No description available in the introspection data./
-}
dOMMouseEventGetAltKey ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMMouseEvent a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMMouseEvent.DOMMouseEvent' -}
    -> m Bool
    {- ^ __Returns:__ A 'Bool' -}
dOMMouseEventGetAltKey self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    result <- webkit_dom_mouse_event_get_alt_key self'
    let result' = (/= 0) result
    touchManagedPtr self
    return result'

data DOMMouseEventGetAltKeyMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsDOMMouseEvent a) => O.MethodInfo DOMMouseEventGetAltKeyMethodInfo a signature where
    overloadedMethod _ = dOMMouseEventGetAltKey

-- method DOMMouseEvent::get_button
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMMouseEvent"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMMouseEvent", 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_mouse_event_get_button" webkit_dom_mouse_event_get_button :: 
    Ptr DOMMouseEvent ->                    -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMMouseEvent"})
    IO Word16

{- |
/No description available in the introspection data./
-}
dOMMouseEventGetButton ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMMouseEvent a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMMouseEvent.DOMMouseEvent' -}
    -> m Word16
    {- ^ __Returns:__ A @/gushort/@ -}
dOMMouseEventGetButton self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    result <- webkit_dom_mouse_event_get_button self'
    touchManagedPtr self
    return result

data DOMMouseEventGetButtonMethodInfo
instance (signature ~ (m Word16), MonadIO m, IsDOMMouseEvent a) => O.MethodInfo DOMMouseEventGetButtonMethodInfo a signature where
    overloadedMethod _ = dOMMouseEventGetButton

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

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

{- |
/No description available in the introspection data./
-}
dOMMouseEventGetClientX ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMMouseEvent a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMMouseEvent.DOMMouseEvent' -}
    -> m CLong
    {- ^ __Returns:__ A @/glong/@ -}
dOMMouseEventGetClientX self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    result <- webkit_dom_mouse_event_get_client_x self'
    touchManagedPtr self
    return result

data DOMMouseEventGetClientXMethodInfo
instance (signature ~ (m CLong), MonadIO m, IsDOMMouseEvent a) => O.MethodInfo DOMMouseEventGetClientXMethodInfo a signature where
    overloadedMethod _ = dOMMouseEventGetClientX

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

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

{- |
/No description available in the introspection data./
-}
dOMMouseEventGetClientY ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMMouseEvent a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMMouseEvent.DOMMouseEvent' -}
    -> m CLong
    {- ^ __Returns:__ A @/glong/@ -}
dOMMouseEventGetClientY self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    result <- webkit_dom_mouse_event_get_client_y self'
    touchManagedPtr self
    return result

data DOMMouseEventGetClientYMethodInfo
instance (signature ~ (m CLong), MonadIO m, IsDOMMouseEvent a) => O.MethodInfo DOMMouseEventGetClientYMethodInfo a signature where
    overloadedMethod _ = dOMMouseEventGetClientY

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

{- |
/No description available in the introspection data./
-}
dOMMouseEventGetCtrlKey ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMMouseEvent a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMMouseEvent.DOMMouseEvent' -}
    -> m Bool
    {- ^ __Returns:__ A 'Bool' -}
dOMMouseEventGetCtrlKey self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    result <- webkit_dom_mouse_event_get_ctrl_key self'
    let result' = (/= 0) result
    touchManagedPtr self
    return result'

data DOMMouseEventGetCtrlKeyMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsDOMMouseEvent a) => O.MethodInfo DOMMouseEventGetCtrlKeyMethodInfo a signature where
    overloadedMethod _ = dOMMouseEventGetCtrlKey

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

foreign import ccall "webkit_dom_mouse_event_get_from_element" webkit_dom_mouse_event_get_from_element :: 
    Ptr DOMMouseEvent ->                    -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMMouseEvent"})
    IO (Ptr WebKit2WebExtension.DOMNode.DOMNode)

{- |
/No description available in the introspection data./
-}
dOMMouseEventGetFromElement ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMMouseEvent a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMMouseEvent.DOMMouseEvent' -}
    -> m WebKit2WebExtension.DOMNode.DOMNode
    {- ^ __Returns:__ A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
dOMMouseEventGetFromElement self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    result <- webkit_dom_mouse_event_get_from_element self'
    checkUnexpectedReturnNULL "dOMMouseEventGetFromElement" result
    result' <- (newObject WebKit2WebExtension.DOMNode.DOMNode) result
    touchManagedPtr self
    return result'

data DOMMouseEventGetFromElementMethodInfo
instance (signature ~ (m WebKit2WebExtension.DOMNode.DOMNode), MonadIO m, IsDOMMouseEvent a) => O.MethodInfo DOMMouseEventGetFromElementMethodInfo a signature where
    overloadedMethod _ = dOMMouseEventGetFromElement

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

{- |
/No description available in the introspection data./
-}
dOMMouseEventGetMetaKey ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMMouseEvent a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMMouseEvent.DOMMouseEvent' -}
    -> m Bool
    {- ^ __Returns:__ A 'Bool' -}
dOMMouseEventGetMetaKey self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    result <- webkit_dom_mouse_event_get_meta_key self'
    let result' = (/= 0) result
    touchManagedPtr self
    return result'

data DOMMouseEventGetMetaKeyMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsDOMMouseEvent a) => O.MethodInfo DOMMouseEventGetMetaKeyMethodInfo a signature where
    overloadedMethod _ = dOMMouseEventGetMetaKey

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

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

{- |
/No description available in the introspection data./
-}
dOMMouseEventGetOffsetX ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMMouseEvent a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMMouseEvent.DOMMouseEvent' -}
    -> m CLong
    {- ^ __Returns:__ A @/glong/@ -}
dOMMouseEventGetOffsetX self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    result <- webkit_dom_mouse_event_get_offset_x self'
    touchManagedPtr self
    return result

data DOMMouseEventGetOffsetXMethodInfo
instance (signature ~ (m CLong), MonadIO m, IsDOMMouseEvent a) => O.MethodInfo DOMMouseEventGetOffsetXMethodInfo a signature where
    overloadedMethod _ = dOMMouseEventGetOffsetX

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

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

{- |
/No description available in the introspection data./
-}
dOMMouseEventGetOffsetY ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMMouseEvent a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMMouseEvent.DOMMouseEvent' -}
    -> m CLong
    {- ^ __Returns:__ A @/glong/@ -}
dOMMouseEventGetOffsetY self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    result <- webkit_dom_mouse_event_get_offset_y self'
    touchManagedPtr self
    return result

data DOMMouseEventGetOffsetYMethodInfo
instance (signature ~ (m CLong), MonadIO m, IsDOMMouseEvent a) => O.MethodInfo DOMMouseEventGetOffsetYMethodInfo a signature where
    overloadedMethod _ = dOMMouseEventGetOffsetY

-- method DOMMouseEvent::get_related_target
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMMouseEvent"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMMouseEvent", 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_mouse_event_get_related_target" webkit_dom_mouse_event_get_related_target :: 
    Ptr DOMMouseEvent ->                    -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMMouseEvent"})
    IO (Ptr WebKit2WebExtension.DOMEventTarget.DOMEventTarget)

{- |
/No description available in the introspection data./
-}
dOMMouseEventGetRelatedTarget ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMMouseEvent a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMMouseEvent.DOMMouseEvent' -}
    -> m WebKit2WebExtension.DOMEventTarget.DOMEventTarget
    {- ^ __Returns:__ A 'GI.WebKit2WebExtension.Interfaces.DOMEventTarget.DOMEventTarget' -}
dOMMouseEventGetRelatedTarget self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    result <- webkit_dom_mouse_event_get_related_target self'
    checkUnexpectedReturnNULL "dOMMouseEventGetRelatedTarget" result
    result' <- (wrapObject WebKit2WebExtension.DOMEventTarget.DOMEventTarget) result
    touchManagedPtr self
    return result'

data DOMMouseEventGetRelatedTargetMethodInfo
instance (signature ~ (m WebKit2WebExtension.DOMEventTarget.DOMEventTarget), MonadIO m, IsDOMMouseEvent a) => O.MethodInfo DOMMouseEventGetRelatedTargetMethodInfo a signature where
    overloadedMethod _ = dOMMouseEventGetRelatedTarget

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

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

{- |
/No description available in the introspection data./
-}
dOMMouseEventGetScreenX ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMMouseEvent a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMMouseEvent.DOMMouseEvent' -}
    -> m CLong
    {- ^ __Returns:__ A @/glong/@ -}
dOMMouseEventGetScreenX self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    result <- webkit_dom_mouse_event_get_screen_x self'
    touchManagedPtr self
    return result

data DOMMouseEventGetScreenXMethodInfo
instance (signature ~ (m CLong), MonadIO m, IsDOMMouseEvent a) => O.MethodInfo DOMMouseEventGetScreenXMethodInfo a signature where
    overloadedMethod _ = dOMMouseEventGetScreenX

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

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

{- |
/No description available in the introspection data./
-}
dOMMouseEventGetScreenY ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMMouseEvent a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMMouseEvent.DOMMouseEvent' -}
    -> m CLong
    {- ^ __Returns:__ A @/glong/@ -}
dOMMouseEventGetScreenY self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    result <- webkit_dom_mouse_event_get_screen_y self'
    touchManagedPtr self
    return result

data DOMMouseEventGetScreenYMethodInfo
instance (signature ~ (m CLong), MonadIO m, IsDOMMouseEvent a) => O.MethodInfo DOMMouseEventGetScreenYMethodInfo a signature where
    overloadedMethod _ = dOMMouseEventGetScreenY

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

{- |
/No description available in the introspection data./
-}
dOMMouseEventGetShiftKey ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMMouseEvent a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMMouseEvent.DOMMouseEvent' -}
    -> m Bool
    {- ^ __Returns:__ A 'Bool' -}
dOMMouseEventGetShiftKey self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    result <- webkit_dom_mouse_event_get_shift_key self'
    let result' = (/= 0) result
    touchManagedPtr self
    return result'

data DOMMouseEventGetShiftKeyMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsDOMMouseEvent a) => O.MethodInfo DOMMouseEventGetShiftKeyMethodInfo a signature where
    overloadedMethod _ = dOMMouseEventGetShiftKey

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

foreign import ccall "webkit_dom_mouse_event_get_to_element" webkit_dom_mouse_event_get_to_element :: 
    Ptr DOMMouseEvent ->                    -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMMouseEvent"})
    IO (Ptr WebKit2WebExtension.DOMNode.DOMNode)

{- |
/No description available in the introspection data./
-}
dOMMouseEventGetToElement ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMMouseEvent a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMMouseEvent.DOMMouseEvent' -}
    -> m WebKit2WebExtension.DOMNode.DOMNode
    {- ^ __Returns:__ A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
dOMMouseEventGetToElement self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    result <- webkit_dom_mouse_event_get_to_element self'
    checkUnexpectedReturnNULL "dOMMouseEventGetToElement" result
    result' <- (newObject WebKit2WebExtension.DOMNode.DOMNode) result
    touchManagedPtr self
    return result'

data DOMMouseEventGetToElementMethodInfo
instance (signature ~ (m WebKit2WebExtension.DOMNode.DOMNode), MonadIO m, IsDOMMouseEvent a) => O.MethodInfo DOMMouseEventGetToElementMethodInfo a signature where
    overloadedMethod _ = dOMMouseEventGetToElement

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

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

{- |
/No description available in the introspection data./
-}
dOMMouseEventGetX ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMMouseEvent a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMMouseEvent.DOMMouseEvent' -}
    -> m CLong
    {- ^ __Returns:__ A @/glong/@ -}
dOMMouseEventGetX self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    result <- webkit_dom_mouse_event_get_x self'
    touchManagedPtr self
    return result

data DOMMouseEventGetXMethodInfo
instance (signature ~ (m CLong), MonadIO m, IsDOMMouseEvent a) => O.MethodInfo DOMMouseEventGetXMethodInfo a signature where
    overloadedMethod _ = dOMMouseEventGetX

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

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

{- |
/No description available in the introspection data./
-}
dOMMouseEventGetY ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMMouseEvent a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMMouseEvent.DOMMouseEvent' -}
    -> m CLong
    {- ^ __Returns:__ A @/glong/@ -}
dOMMouseEventGetY self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    result <- webkit_dom_mouse_event_get_y self'
    touchManagedPtr self
    return result

data DOMMouseEventGetYMethodInfo
instance (signature ~ (m CLong), MonadIO m, IsDOMMouseEvent a) => O.MethodInfo DOMMouseEventGetYMethodInfo a signature where
    overloadedMethod _ = dOMMouseEventGetY

-- method DOMMouseEvent::init_mouse_event
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMMouseEvent"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMMouseEvent", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "type", 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 = "canBubble", 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 = "cancelable", 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 = "view", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMDOMWindow"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMDOMWindow", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "detail", argType = TBasicType TLong, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #glong", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "screenX", argType = TBasicType TLong, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #glong", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "screenY", argType = TBasicType TLong, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #glong", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "clientX", argType = TBasicType TLong, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #glong", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "clientY", argType = TBasicType TLong, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #glong", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "ctrlKey", 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 = "altKey", 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 = "shiftKey", 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 = "metaKey", 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 = "button", argType = TBasicType TUInt16, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #gushort", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "relatedTarget", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMEventTarget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMEventTarget", 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_mouse_event_init_mouse_event" webkit_dom_mouse_event_init_mouse_event :: 
    Ptr DOMMouseEvent ->                    -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMMouseEvent"})
    CString ->                              -- type : TBasicType TUTF8
    CInt ->                                 -- canBubble : TBasicType TBoolean
    CInt ->                                 -- cancelable : TBasicType TBoolean
    Ptr WebKit2WebExtension.DOMDOMWindow.DOMDOMWindow -> -- view : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMDOMWindow"})
    CLong ->                                -- detail : TBasicType TLong
    CLong ->                                -- screenX : TBasicType TLong
    CLong ->                                -- screenY : TBasicType TLong
    CLong ->                                -- clientX : TBasicType TLong
    CLong ->                                -- clientY : TBasicType TLong
    CInt ->                                 -- ctrlKey : TBasicType TBoolean
    CInt ->                                 -- altKey : TBasicType TBoolean
    CInt ->                                 -- shiftKey : TBasicType TBoolean
    CInt ->                                 -- metaKey : TBasicType TBoolean
    Word16 ->                               -- button : TBasicType TUInt16
    Ptr WebKit2WebExtension.DOMEventTarget.DOMEventTarget -> -- relatedTarget : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMEventTarget"})
    IO ()

{- |
/No description available in the introspection data./
-}
dOMMouseEventInitMouseEvent ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMMouseEvent a, WebKit2WebExtension.DOMDOMWindow.IsDOMDOMWindow b, WebKit2WebExtension.DOMEventTarget.IsDOMEventTarget c) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMMouseEvent.DOMMouseEvent' -}
    -> T.Text
    {- ^ /@type@/: A @/gchar/@ -}
    -> Bool
    {- ^ /@canBubble@/: A 'Bool' -}
    -> Bool
    {- ^ /@cancelable@/: A 'Bool' -}
    -> b
    {- ^ /@view@/: A 'GI.WebKit2WebExtension.Objects.DOMDOMWindow.DOMDOMWindow' -}
    -> CLong
    {- ^ /@detail@/: A @/glong/@ -}
    -> CLong
    {- ^ /@screenX@/: A @/glong/@ -}
    -> CLong
    {- ^ /@screenY@/: A @/glong/@ -}
    -> CLong
    {- ^ /@clientX@/: A @/glong/@ -}
    -> CLong
    {- ^ /@clientY@/: A @/glong/@ -}
    -> Bool
    {- ^ /@ctrlKey@/: A 'Bool' -}
    -> Bool
    {- ^ /@altKey@/: A 'Bool' -}
    -> Bool
    {- ^ /@shiftKey@/: A 'Bool' -}
    -> Bool
    {- ^ /@metaKey@/: A 'Bool' -}
    -> Word16
    {- ^ /@button@/: A @/gushort/@ -}
    -> c
    {- ^ /@relatedTarget@/: A 'GI.WebKit2WebExtension.Interfaces.DOMEventTarget.DOMEventTarget' -}
    -> m ()
dOMMouseEventInitMouseEvent self type_ canBubble cancelable view detail screenX screenY clientX clientY ctrlKey altKey shiftKey metaKey button relatedTarget = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    type_' <- textToCString type_
    let canBubble' = (fromIntegral . fromEnum) canBubble
    let cancelable' = (fromIntegral . fromEnum) cancelable
    view' <- unsafeManagedPtrCastPtr view
    let ctrlKey' = (fromIntegral . fromEnum) ctrlKey
    let altKey' = (fromIntegral . fromEnum) altKey
    let shiftKey' = (fromIntegral . fromEnum) shiftKey
    let metaKey' = (fromIntegral . fromEnum) metaKey
    relatedTarget' <- unsafeManagedPtrCastPtr relatedTarget
    webkit_dom_mouse_event_init_mouse_event self' type_' canBubble' cancelable' view' detail screenX screenY clientX clientY ctrlKey' altKey' shiftKey' metaKey' button relatedTarget'
    touchManagedPtr self
    touchManagedPtr view
    touchManagedPtr relatedTarget
    freeMem type_'
    return ()

data DOMMouseEventInitMouseEventMethodInfo
instance (signature ~ (T.Text -> Bool -> Bool -> b -> CLong -> CLong -> CLong -> CLong -> CLong -> Bool -> Bool -> Bool -> Bool -> Word16 -> c -> m ()), MonadIO m, IsDOMMouseEvent a, WebKit2WebExtension.DOMDOMWindow.IsDOMDOMWindow b, WebKit2WebExtension.DOMEventTarget.IsDOMEventTarget c) => O.MethodInfo DOMMouseEventInitMouseEventMethodInfo a signature where
    overloadedMethod _ = dOMMouseEventInitMouseEvent