{- |
Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License    : LGPL-2.1
Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)

/No description available in the introspection data./
-}

#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \
       && !defined(__HADDOCK_VERSION__))

module GI.WebKit2WebExtension.Objects.DOMMouseEvent
    (

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


 -- * Methods
-- ** getAltKey #method:getAltKey#

#if ENABLE_OVERLOADING
    DOMMouseEventGetAltKeyMethodInfo        ,
#endif
    dOMMouseEventGetAltKey                  ,


-- ** getButton #method:getButton#

#if ENABLE_OVERLOADING
    DOMMouseEventGetButtonMethodInfo        ,
#endif
    dOMMouseEventGetButton                  ,


-- ** getClientX #method:getClientX#

#if ENABLE_OVERLOADING
    DOMMouseEventGetClientXMethodInfo       ,
#endif
    dOMMouseEventGetClientX                 ,


-- ** getClientY #method:getClientY#

#if ENABLE_OVERLOADING
    DOMMouseEventGetClientYMethodInfo       ,
#endif
    dOMMouseEventGetClientY                 ,


-- ** getCtrlKey #method:getCtrlKey#

#if ENABLE_OVERLOADING
    DOMMouseEventGetCtrlKeyMethodInfo       ,
#endif
    dOMMouseEventGetCtrlKey                 ,


-- ** getFromElement #method:getFromElement#

#if ENABLE_OVERLOADING
    DOMMouseEventGetFromElementMethodInfo   ,
#endif
    dOMMouseEventGetFromElement             ,


-- ** getMetaKey #method:getMetaKey#

#if ENABLE_OVERLOADING
    DOMMouseEventGetMetaKeyMethodInfo       ,
#endif
    dOMMouseEventGetMetaKey                 ,


-- ** getOffsetX #method:getOffsetX#

#if ENABLE_OVERLOADING
    DOMMouseEventGetOffsetXMethodInfo       ,
#endif
    dOMMouseEventGetOffsetX                 ,


-- ** getOffsetY #method:getOffsetY#

#if ENABLE_OVERLOADING
    DOMMouseEventGetOffsetYMethodInfo       ,
#endif
    dOMMouseEventGetOffsetY                 ,


-- ** getRelatedTarget #method:getRelatedTarget#

#if ENABLE_OVERLOADING
    DOMMouseEventGetRelatedTargetMethodInfo ,
#endif
    dOMMouseEventGetRelatedTarget           ,


-- ** getScreenX #method:getScreenX#

#if ENABLE_OVERLOADING
    DOMMouseEventGetScreenXMethodInfo       ,
#endif
    dOMMouseEventGetScreenX                 ,


-- ** getScreenY #method:getScreenY#

#if ENABLE_OVERLOADING
    DOMMouseEventGetScreenYMethodInfo       ,
#endif
    dOMMouseEventGetScreenY                 ,


-- ** getShiftKey #method:getShiftKey#

#if ENABLE_OVERLOADING
    DOMMouseEventGetShiftKeyMethodInfo      ,
#endif
    dOMMouseEventGetShiftKey                ,


-- ** getToElement #method:getToElement#

#if ENABLE_OVERLOADING
    DOMMouseEventGetToElementMethodInfo     ,
#endif
    dOMMouseEventGetToElement               ,


-- ** getX #method:getX#

#if ENABLE_OVERLOADING
    DOMMouseEventGetXMethodInfo             ,
#endif
    dOMMouseEventGetX                       ,


-- ** getY #method:getY#

#if ENABLE_OVERLOADING
    DOMMouseEventGetYMethodInfo             ,
#endif
    dOMMouseEventGetY                       ,


-- ** initMouseEvent #method:initMouseEvent#

#if ENABLE_OVERLOADING
    DOMMouseEventInitMouseEventMethodInfo   ,
#endif
    dOMMouseEventInitMouseEvent             ,




 -- * Properties
-- ** altKey #attr:altKey#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    DOMMouseEventAltKeyPropertyInfo         ,
#endif
#if ENABLE_OVERLOADING
    dOMMouseEventAltKey                     ,
#endif
    getDOMMouseEventAltKey                  ,


-- ** button #attr:button#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    DOMMouseEventButtonPropertyInfo         ,
#endif
#if ENABLE_OVERLOADING
    dOMMouseEventButton                     ,
#endif
    getDOMMouseEventButton                  ,


-- ** clientX #attr:clientX#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    DOMMouseEventClientXPropertyInfo        ,
#endif
#if ENABLE_OVERLOADING
    dOMMouseEventClientX                    ,
#endif
    getDOMMouseEventClientX                 ,


-- ** clientY #attr:clientY#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    DOMMouseEventClientYPropertyInfo        ,
#endif
#if ENABLE_OVERLOADING
    dOMMouseEventClientY                    ,
#endif
    getDOMMouseEventClientY                 ,


-- ** ctrlKey #attr:ctrlKey#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    DOMMouseEventCtrlKeyPropertyInfo        ,
#endif
#if ENABLE_OVERLOADING
    dOMMouseEventCtrlKey                    ,
#endif
    getDOMMouseEventCtrlKey                 ,


-- ** fromElement #attr:fromElement#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    DOMMouseEventFromElementPropertyInfo    ,
#endif
#if ENABLE_OVERLOADING
    dOMMouseEventFromElement                ,
#endif
    getDOMMouseEventFromElement             ,


-- ** metaKey #attr:metaKey#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    DOMMouseEventMetaKeyPropertyInfo        ,
#endif
#if ENABLE_OVERLOADING
    dOMMouseEventMetaKey                    ,
#endif
    getDOMMouseEventMetaKey                 ,


-- ** offsetX #attr:offsetX#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    DOMMouseEventOffsetXPropertyInfo        ,
#endif
#if ENABLE_OVERLOADING
    dOMMouseEventOffsetX                    ,
#endif
    getDOMMouseEventOffsetX                 ,


-- ** offsetY #attr:offsetY#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    DOMMouseEventOffsetYPropertyInfo        ,
#endif
#if ENABLE_OVERLOADING
    dOMMouseEventOffsetY                    ,
#endif
    getDOMMouseEventOffsetY                 ,


-- ** relatedTarget #attr:relatedTarget#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    DOMMouseEventRelatedTargetPropertyInfo  ,
#endif
#if ENABLE_OVERLOADING
    dOMMouseEventRelatedTarget              ,
#endif
    getDOMMouseEventRelatedTarget           ,


-- ** screenX #attr:screenX#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    DOMMouseEventScreenXPropertyInfo        ,
#endif
#if ENABLE_OVERLOADING
    dOMMouseEventScreenX                    ,
#endif
    getDOMMouseEventScreenX                 ,


-- ** screenY #attr:screenY#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    DOMMouseEventScreenYPropertyInfo        ,
#endif
#if ENABLE_OVERLOADING
    dOMMouseEventScreenY                    ,
#endif
    getDOMMouseEventScreenY                 ,


-- ** shiftKey #attr:shiftKey#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    DOMMouseEventShiftKeyPropertyInfo       ,
#endif
#if ENABLE_OVERLOADING
    dOMMouseEventShiftKey                   ,
#endif
    getDOMMouseEventShiftKey                ,


-- ** toElement #attr:toElement#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    DOMMouseEventToElementPropertyInfo      ,
#endif
#if ENABLE_OVERLOADING
    dOMMouseEventToElement                  ,
#endif
    getDOMMouseEventToElement               ,


-- ** x #attr:x#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    DOMMouseEventXPropertyInfo              ,
#endif
#if ENABLE_OVERLOADING
    dOMMouseEventX                          ,
#endif
    getDOMMouseEventX                       ,


-- ** y #attr:y#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    DOMMouseEventYPropertyInfo              ,
#endif
#if ENABLE_OVERLOADING
    dOMMouseEventY                          ,
#endif
    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.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GValue as B.GValue
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.GI.Base.Properties as B.Properties
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
import qualified GHC.OverloadedLabels as OL

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

-- | Memory-managed wrapper type.
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


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

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

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

-- | A convenience alias for `Nothing` :: `Maybe` `DOMMouseEvent`.
noDOMMouseEvent :: Maybe DOMMouseEvent
noDOMMouseEvent = Nothing

#if ENABLE_OVERLOADING
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 "getv" o = GObject.Object.ObjectGetvMethodInfo
    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 "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 "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
    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) => OL.IsLabel t (DOMMouseEvent -> p) where
#if MIN_VERSION_base(4,10,0)
    fromLabel = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#else
    fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#endif

#endif

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

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

@
'Data.GI.Base.Attributes.get' dOMMouseEvent #altKey
@
-}
getDOMMouseEventAltKey :: (MonadIO m, IsDOMMouseEvent o) => o -> m Bool
getDOMMouseEventAltKey obj = liftIO $ B.Properties.getObjectPropertyBool obj "alt-key"

#if ENABLE_OVERLOADING
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
#endif

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

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

@
'Data.GI.Base.Attributes.get' dOMMouseEvent #button
@
-}
getDOMMouseEventButton :: (MonadIO m, IsDOMMouseEvent o) => o -> m Word32
getDOMMouseEventButton obj = liftIO $ B.Properties.getObjectPropertyUInt32 obj "button"

#if ENABLE_OVERLOADING
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
#endif

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

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

@
'Data.GI.Base.Attributes.get' dOMMouseEvent #clientX
@
-}
getDOMMouseEventClientX :: (MonadIO m, IsDOMMouseEvent o) => o -> m CLong
getDOMMouseEventClientX obj = liftIO $ B.Properties.getObjectPropertyLong obj "client-x"

#if ENABLE_OVERLOADING
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
#endif

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

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

@
'Data.GI.Base.Attributes.get' dOMMouseEvent #clientY
@
-}
getDOMMouseEventClientY :: (MonadIO m, IsDOMMouseEvent o) => o -> m CLong
getDOMMouseEventClientY obj = liftIO $ B.Properties.getObjectPropertyLong obj "client-y"

#if ENABLE_OVERLOADING
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
#endif

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

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

@
'Data.GI.Base.Attributes.get' dOMMouseEvent #ctrlKey
@
-}
getDOMMouseEventCtrlKey :: (MonadIO m, IsDOMMouseEvent o) => o -> m Bool
getDOMMouseEventCtrlKey obj = liftIO $ B.Properties.getObjectPropertyBool obj "ctrl-key"

#if ENABLE_OVERLOADING
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
#endif

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

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

@
'Data.GI.Base.Attributes.get' dOMMouseEvent #fromElement
@
-}
getDOMMouseEventFromElement :: (MonadIO m, IsDOMMouseEvent o) => o -> m WebKit2WebExtension.DOMNode.DOMNode
getDOMMouseEventFromElement obj = liftIO $ checkUnexpectedNothing "getDOMMouseEventFromElement" $ B.Properties.getObjectPropertyObject obj "from-element" WebKit2WebExtension.DOMNode.DOMNode

#if ENABLE_OVERLOADING
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
#endif

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

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

@
'Data.GI.Base.Attributes.get' dOMMouseEvent #metaKey
@
-}
getDOMMouseEventMetaKey :: (MonadIO m, IsDOMMouseEvent o) => o -> m Bool
getDOMMouseEventMetaKey obj = liftIO $ B.Properties.getObjectPropertyBool obj "meta-key"

#if ENABLE_OVERLOADING
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
#endif

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

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

@
'Data.GI.Base.Attributes.get' dOMMouseEvent #offsetX
@
-}
getDOMMouseEventOffsetX :: (MonadIO m, IsDOMMouseEvent o) => o -> m CLong
getDOMMouseEventOffsetX obj = liftIO $ B.Properties.getObjectPropertyLong obj "offset-x"

#if ENABLE_OVERLOADING
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
#endif

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

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

@
'Data.GI.Base.Attributes.get' dOMMouseEvent #offsetY
@
-}
getDOMMouseEventOffsetY :: (MonadIO m, IsDOMMouseEvent o) => o -> m CLong
getDOMMouseEventOffsetY obj = liftIO $ B.Properties.getObjectPropertyLong obj "offset-y"

#if ENABLE_OVERLOADING
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
#endif

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

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

@
'Data.GI.Base.Attributes.get' dOMMouseEvent #relatedTarget
@
-}
getDOMMouseEventRelatedTarget :: (MonadIO m, IsDOMMouseEvent o) => o -> m (Maybe WebKit2WebExtension.DOMEventTarget.DOMEventTarget)
getDOMMouseEventRelatedTarget obj = liftIO $ B.Properties.getObjectPropertyObject obj "related-target" WebKit2WebExtension.DOMEventTarget.DOMEventTarget

#if ENABLE_OVERLOADING
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
#endif

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

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

@
'Data.GI.Base.Attributes.get' dOMMouseEvent #screenX
@
-}
getDOMMouseEventScreenX :: (MonadIO m, IsDOMMouseEvent o) => o -> m CLong
getDOMMouseEventScreenX obj = liftIO $ B.Properties.getObjectPropertyLong obj "screen-x"

#if ENABLE_OVERLOADING
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
#endif

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

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

@
'Data.GI.Base.Attributes.get' dOMMouseEvent #screenY
@
-}
getDOMMouseEventScreenY :: (MonadIO m, IsDOMMouseEvent o) => o -> m CLong
getDOMMouseEventScreenY obj = liftIO $ B.Properties.getObjectPropertyLong obj "screen-y"

#if ENABLE_OVERLOADING
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
#endif

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

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

@
'Data.GI.Base.Attributes.get' dOMMouseEvent #shiftKey
@
-}
getDOMMouseEventShiftKey :: (MonadIO m, IsDOMMouseEvent o) => o -> m Bool
getDOMMouseEventShiftKey obj = liftIO $ B.Properties.getObjectPropertyBool obj "shift-key"

#if ENABLE_OVERLOADING
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
#endif

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

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

@
'Data.GI.Base.Attributes.get' dOMMouseEvent #toElement
@
-}
getDOMMouseEventToElement :: (MonadIO m, IsDOMMouseEvent o) => o -> m WebKit2WebExtension.DOMNode.DOMNode
getDOMMouseEventToElement obj = liftIO $ checkUnexpectedNothing "getDOMMouseEventToElement" $ B.Properties.getObjectPropertyObject obj "to-element" WebKit2WebExtension.DOMNode.DOMNode

#if ENABLE_OVERLOADING
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
#endif

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

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

@
'Data.GI.Base.Attributes.get' dOMMouseEvent #x
@
-}
getDOMMouseEventX :: (MonadIO m, IsDOMMouseEvent o) => o -> m CLong
getDOMMouseEventX obj = liftIO $ B.Properties.getObjectPropertyLong obj "x"

#if ENABLE_OVERLOADING
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
#endif

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

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

@
'Data.GI.Base.Attributes.get' dOMMouseEvent #y
@
-}
getDOMMouseEventY :: (MonadIO m, IsDOMMouseEvent o) => o -> m CLong
getDOMMouseEventY obj = liftIO $ B.Properties.getObjectPropertyLong obj "y"

#if ENABLE_OVERLOADING
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
#endif

#if ENABLE_OVERLOADING
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, *)])
#endif

#if ENABLE_OVERLOADING
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

#endif

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

#endif

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

{-# DEPRECATED dOMMouseEventGetAltKey ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/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'

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

#endif

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

{-# DEPRECATED dOMMouseEventGetButton ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/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

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

#endif

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

{-# DEPRECATED dOMMouseEventGetClientX ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/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

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

#endif

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

{-# DEPRECATED dOMMouseEventGetClientY ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/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

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

#endif

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

{-# DEPRECATED dOMMouseEventGetCtrlKey ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/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'

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

#endif

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

{-# DEPRECATED dOMMouseEventGetFromElement ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/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'

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

#endif

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

{-# DEPRECATED dOMMouseEventGetMetaKey ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/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'

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

#endif

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

{-# DEPRECATED dOMMouseEventGetOffsetX ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/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

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

#endif

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

{-# DEPRECATED dOMMouseEventGetOffsetY ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/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

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

#endif

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

{-# DEPRECATED dOMMouseEventGetRelatedTarget ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/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'

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

#endif

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

{-# DEPRECATED dOMMouseEventGetScreenX ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/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

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

#endif

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

{-# DEPRECATED dOMMouseEventGetScreenY ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/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

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

#endif

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

{-# DEPRECATED dOMMouseEventGetShiftKey ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/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'

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

#endif

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

{-# DEPRECATED dOMMouseEventGetToElement ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/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'

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

#endif

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

{-# DEPRECATED dOMMouseEventGetX ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/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

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

#endif

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

{-# DEPRECATED dOMMouseEventGetY ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/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

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

#endif

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

{-# DEPRECATED dOMMouseEventInitMouseEvent ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/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 ()

#if ENABLE_OVERLOADING
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

#endif