{- |
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(..)                       ,
    DOMMouseEventK                          ,
    toDOMMouseEvent                         ,
    noDOMMouseEvent                         ,


 -- * Methods
-- ** dOMMouseEventGetAltKey
    dOMMouseEventGetAltKey                  ,


-- ** dOMMouseEventGetButton
    dOMMouseEventGetButton                  ,


-- ** dOMMouseEventGetClientX
    dOMMouseEventGetClientX                 ,


-- ** dOMMouseEventGetClientY
    dOMMouseEventGetClientY                 ,


-- ** dOMMouseEventGetCtrlKey
    dOMMouseEventGetCtrlKey                 ,


-- ** dOMMouseEventGetFromElement
    dOMMouseEventGetFromElement             ,


-- ** dOMMouseEventGetMetaKey
    dOMMouseEventGetMetaKey                 ,


-- ** dOMMouseEventGetOffsetX
    dOMMouseEventGetOffsetX                 ,


-- ** dOMMouseEventGetOffsetY
    dOMMouseEventGetOffsetY                 ,


-- ** dOMMouseEventGetRelatedTarget
    dOMMouseEventGetRelatedTarget           ,


-- ** dOMMouseEventGetScreenX
    dOMMouseEventGetScreenX                 ,


-- ** dOMMouseEventGetScreenY
    dOMMouseEventGetScreenY                 ,


-- ** dOMMouseEventGetShiftKey
    dOMMouseEventGetShiftKey                ,


-- ** dOMMouseEventGetToElement
    dOMMouseEventGetToElement               ,


-- ** dOMMouseEventGetX
    dOMMouseEventGetX                       ,


-- ** dOMMouseEventGetY
    dOMMouseEventGetY                       ,


-- ** dOMMouseEventInitMouseEvent
    dOMMouseEventInitMouseEvent             ,




 -- * Properties
-- ** AltKey
    DOMMouseEventAltKeyPropertyInfo         ,
    getDOMMouseEventAltKey                  ,


-- ** Button
    DOMMouseEventButtonPropertyInfo         ,
    getDOMMouseEventButton                  ,


-- ** ClientX
    DOMMouseEventClientXPropertyInfo        ,
    getDOMMouseEventClientX                 ,


-- ** ClientY
    DOMMouseEventClientYPropertyInfo        ,
    getDOMMouseEventClientY                 ,


-- ** CtrlKey
    DOMMouseEventCtrlKeyPropertyInfo        ,
    getDOMMouseEventCtrlKey                 ,


-- ** FromElement
    DOMMouseEventFromElementPropertyInfo    ,
    getDOMMouseEventFromElement             ,


-- ** MetaKey
    DOMMouseEventMetaKeyPropertyInfo        ,
    getDOMMouseEventMetaKey                 ,


-- ** MovementX
    DOMMouseEventMovementXPropertyInfo      ,
    getDOMMouseEventMovementX               ,


-- ** MovementY
    DOMMouseEventMovementYPropertyInfo      ,
    getDOMMouseEventMovementY               ,


-- ** OffsetX
    DOMMouseEventOffsetXPropertyInfo        ,
    getDOMMouseEventOffsetX                 ,


-- ** OffsetY
    DOMMouseEventOffsetYPropertyInfo        ,
    getDOMMouseEventOffsetY                 ,


-- ** RelatedTarget
    DOMMouseEventRelatedTargetPropertyInfo  ,
    getDOMMouseEventRelatedTarget           ,


-- ** ScreenX
    DOMMouseEventScreenXPropertyInfo        ,
    getDOMMouseEventScreenX                 ,


-- ** ScreenY
    DOMMouseEventScreenYPropertyInfo        ,
    getDOMMouseEventScreenY                 ,


-- ** ShiftKey
    DOMMouseEventShiftKeyPropertyInfo       ,
    getDOMMouseEventShiftKey                ,


-- ** ToElement
    DOMMouseEventToElementPropertyInfo      ,
    getDOMMouseEventToElement               ,


-- ** X
    DOMMouseEventXPropertyInfo              ,
    getDOMMouseEventX                       ,


-- ** Y
    DOMMouseEventYPropertyInfo              ,
    getDOMMouseEventY                       ,




    ) where

import Prelude ()
import Data.GI.Base.ShortPrelude

import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map

import GI.WebKit2WebExtension.Types
import GI.WebKit2WebExtension.Callbacks
import qualified GI.GObject as GObject

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

type instance ParentTypes DOMMouseEvent = DOMMouseEventParentTypes
type DOMMouseEventParentTypes = '[DOMUIEvent, DOMEvent, DOMObject, GObject.Object]

instance GObject DOMMouseEvent where
    gobjectIsInitiallyUnowned _ = False
    gobjectType _ = c_webkit_dom_mouse_event_get_type
    

class GObject o => DOMMouseEventK o
instance (GObject o, IsDescendantOf DOMMouseEvent o) => DOMMouseEventK o

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

noDOMMouseEvent :: Maybe DOMMouseEvent
noDOMMouseEvent = Nothing

-- VVV Prop "alt-key"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable]

getDOMMouseEventAltKey :: (MonadIO m, DOMMouseEventK 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 = DOMMouseEventK
    type AttrGetType DOMMouseEventAltKeyPropertyInfo = Bool
    type AttrLabel DOMMouseEventAltKeyPropertyInfo = "DOMMouseEvent::alt-key"
    attrGet _ = getDOMMouseEventAltKey
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "button"
   -- Type: TBasicType TUInt32
   -- Flags: [PropertyReadable]

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

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

-- VVV Prop "client-x"
   -- Type: TBasicType TInt64
   -- Flags: [PropertyReadable]

getDOMMouseEventClientX :: (MonadIO m, DOMMouseEventK o) => o -> m Int64
getDOMMouseEventClientX obj = liftIO $ getObjectPropertyInt64 obj "client-x"

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

-- VVV Prop "client-y"
   -- Type: TBasicType TInt64
   -- Flags: [PropertyReadable]

getDOMMouseEventClientY :: (MonadIO m, DOMMouseEventK o) => o -> m Int64
getDOMMouseEventClientY obj = liftIO $ getObjectPropertyInt64 obj "client-y"

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

-- VVV Prop "ctrl-key"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable]

getDOMMouseEventCtrlKey :: (MonadIO m, DOMMouseEventK 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 = DOMMouseEventK
    type AttrGetType DOMMouseEventCtrlKeyPropertyInfo = Bool
    type AttrLabel DOMMouseEventCtrlKeyPropertyInfo = "DOMMouseEvent::ctrl-key"
    attrGet _ = getDOMMouseEventCtrlKey
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "from-element"
   -- Type: TInterface "WebKit2WebExtension" "DOMNode"
   -- Flags: [PropertyReadable]

getDOMMouseEventFromElement :: (MonadIO m, DOMMouseEventK o) => o -> m DOMNode
getDOMMouseEventFromElement obj = liftIO $ getObjectPropertyObject obj "from-element" DOMNode

data DOMMouseEventFromElementPropertyInfo
instance AttrInfo DOMMouseEventFromElementPropertyInfo where
    type AttrAllowedOps DOMMouseEventFromElementPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMMouseEventFromElementPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMMouseEventFromElementPropertyInfo = DOMMouseEventK
    type AttrGetType DOMMouseEventFromElementPropertyInfo = DOMNode
    type AttrLabel DOMMouseEventFromElementPropertyInfo = "DOMMouseEvent::from-element"
    attrGet _ = getDOMMouseEventFromElement
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "meta-key"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable]

getDOMMouseEventMetaKey :: (MonadIO m, DOMMouseEventK 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 = DOMMouseEventK
    type AttrGetType DOMMouseEventMetaKeyPropertyInfo = Bool
    type AttrLabel DOMMouseEventMetaKeyPropertyInfo = "DOMMouseEvent::meta-key"
    attrGet _ = getDOMMouseEventMetaKey
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "movement-x"
   -- Type: TBasicType TInt64
   -- Flags: [PropertyReadable]

getDOMMouseEventMovementX :: (MonadIO m, DOMMouseEventK o) => o -> m Int64
getDOMMouseEventMovementX obj = liftIO $ getObjectPropertyInt64 obj "movement-x"

data DOMMouseEventMovementXPropertyInfo
instance AttrInfo DOMMouseEventMovementXPropertyInfo where
    type AttrAllowedOps DOMMouseEventMovementXPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMMouseEventMovementXPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMMouseEventMovementXPropertyInfo = DOMMouseEventK
    type AttrGetType DOMMouseEventMovementXPropertyInfo = Int64
    type AttrLabel DOMMouseEventMovementXPropertyInfo = "DOMMouseEvent::movement-x"
    attrGet _ = getDOMMouseEventMovementX
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "movement-y"
   -- Type: TBasicType TInt64
   -- Flags: [PropertyReadable]

getDOMMouseEventMovementY :: (MonadIO m, DOMMouseEventK o) => o -> m Int64
getDOMMouseEventMovementY obj = liftIO $ getObjectPropertyInt64 obj "movement-y"

data DOMMouseEventMovementYPropertyInfo
instance AttrInfo DOMMouseEventMovementYPropertyInfo where
    type AttrAllowedOps DOMMouseEventMovementYPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMMouseEventMovementYPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMMouseEventMovementYPropertyInfo = DOMMouseEventK
    type AttrGetType DOMMouseEventMovementYPropertyInfo = Int64
    type AttrLabel DOMMouseEventMovementYPropertyInfo = "DOMMouseEvent::movement-y"
    attrGet _ = getDOMMouseEventMovementY
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "offset-x"
   -- Type: TBasicType TInt64
   -- Flags: [PropertyReadable]

getDOMMouseEventOffsetX :: (MonadIO m, DOMMouseEventK o) => o -> m Int64
getDOMMouseEventOffsetX obj = liftIO $ getObjectPropertyInt64 obj "offset-x"

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

-- VVV Prop "offset-y"
   -- Type: TBasicType TInt64
   -- Flags: [PropertyReadable]

getDOMMouseEventOffsetY :: (MonadIO m, DOMMouseEventK o) => o -> m Int64
getDOMMouseEventOffsetY obj = liftIO $ getObjectPropertyInt64 obj "offset-y"

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

-- VVV Prop "related-target"
   -- Type: TInterface "WebKit2WebExtension" "DOMEventTarget"
   -- Flags: [PropertyReadable]

getDOMMouseEventRelatedTarget :: (MonadIO m, DOMMouseEventK o) => o -> m DOMEventTarget
getDOMMouseEventRelatedTarget obj = liftIO $ getObjectPropertyObject obj "related-target" DOMEventTarget

data DOMMouseEventRelatedTargetPropertyInfo
instance AttrInfo DOMMouseEventRelatedTargetPropertyInfo where
    type AttrAllowedOps DOMMouseEventRelatedTargetPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMMouseEventRelatedTargetPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMMouseEventRelatedTargetPropertyInfo = DOMMouseEventK
    type AttrGetType DOMMouseEventRelatedTargetPropertyInfo = DOMEventTarget
    type AttrLabel DOMMouseEventRelatedTargetPropertyInfo = "DOMMouseEvent::related-target"
    attrGet _ = getDOMMouseEventRelatedTarget
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "screen-x"
   -- Type: TBasicType TInt64
   -- Flags: [PropertyReadable]

getDOMMouseEventScreenX :: (MonadIO m, DOMMouseEventK o) => o -> m Int64
getDOMMouseEventScreenX obj = liftIO $ getObjectPropertyInt64 obj "screen-x"

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

-- VVV Prop "screen-y"
   -- Type: TBasicType TInt64
   -- Flags: [PropertyReadable]

getDOMMouseEventScreenY :: (MonadIO m, DOMMouseEventK o) => o -> m Int64
getDOMMouseEventScreenY obj = liftIO $ getObjectPropertyInt64 obj "screen-y"

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

-- VVV Prop "shift-key"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable]

getDOMMouseEventShiftKey :: (MonadIO m, DOMMouseEventK 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 = DOMMouseEventK
    type AttrGetType DOMMouseEventShiftKeyPropertyInfo = Bool
    type AttrLabel DOMMouseEventShiftKeyPropertyInfo = "DOMMouseEvent::shift-key"
    attrGet _ = getDOMMouseEventShiftKey
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "to-element"
   -- Type: TInterface "WebKit2WebExtension" "DOMNode"
   -- Flags: [PropertyReadable]

getDOMMouseEventToElement :: (MonadIO m, DOMMouseEventK o) => o -> m DOMNode
getDOMMouseEventToElement obj = liftIO $ getObjectPropertyObject obj "to-element" DOMNode

data DOMMouseEventToElementPropertyInfo
instance AttrInfo DOMMouseEventToElementPropertyInfo where
    type AttrAllowedOps DOMMouseEventToElementPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMMouseEventToElementPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMMouseEventToElementPropertyInfo = DOMMouseEventK
    type AttrGetType DOMMouseEventToElementPropertyInfo = DOMNode
    type AttrLabel DOMMouseEventToElementPropertyInfo = "DOMMouseEvent::to-element"
    attrGet _ = getDOMMouseEventToElement
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "x"
   -- Type: TBasicType TInt64
   -- Flags: [PropertyReadable]

getDOMMouseEventX :: (MonadIO m, DOMMouseEventK o) => o -> m Int64
getDOMMouseEventX obj = liftIO $ getObjectPropertyInt64 obj "x"

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

-- VVV Prop "y"
   -- Type: TBasicType TInt64
   -- Flags: [PropertyReadable]

getDOMMouseEventY :: (MonadIO m, DOMMouseEventK o) => o -> m Int64
getDOMMouseEventY obj = liftIO $ getObjectPropertyInt64 obj "y"

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

type instance AttributeList DOMMouseEvent = DOMMouseEventAttributeList
type DOMMouseEventAttributeList = ('[ '("alt-key", DOMMouseEventAltKeyPropertyInfo), '("bubbles", DOMEventBubblesPropertyInfo), '("button", DOMMouseEventButtonPropertyInfo), '("cancel-bubble", DOMEventCancelBubblePropertyInfo), '("cancelable", DOMEventCancelablePropertyInfo), '("char-code", DOMUIEventCharCodePropertyInfo), '("client-x", DOMMouseEventClientXPropertyInfo), '("client-y", DOMMouseEventClientYPropertyInfo), '("core-object", DOMObjectCoreObjectPropertyInfo), '("ctrl-key", DOMMouseEventCtrlKeyPropertyInfo), '("current-target", DOMEventCurrentTargetPropertyInfo), '("default-prevented", DOMEventDefaultPreventedPropertyInfo), '("detail", DOMUIEventDetailPropertyInfo), '("event-phase", DOMEventEventPhasePropertyInfo), '("from-element", DOMMouseEventFromElementPropertyInfo), '("key-code", DOMUIEventKeyCodePropertyInfo), '("layer-x", DOMUIEventLayerXPropertyInfo), '("layer-y", DOMUIEventLayerYPropertyInfo), '("meta-key", DOMMouseEventMetaKeyPropertyInfo), '("movement-x", DOMMouseEventMovementXPropertyInfo), '("movement-y", DOMMouseEventMovementYPropertyInfo), '("offset-x", DOMMouseEventOffsetXPropertyInfo), '("offset-y", DOMMouseEventOffsetYPropertyInfo), '("page-x", DOMUIEventPageXPropertyInfo), '("page-y", DOMUIEventPageYPropertyInfo), '("related-target", DOMMouseEventRelatedTargetPropertyInfo), '("return-value", DOMEventReturnValuePropertyInfo), '("screen-x", DOMMouseEventScreenXPropertyInfo), '("screen-y", DOMMouseEventScreenYPropertyInfo), '("shift-key", DOMMouseEventShiftKeyPropertyInfo), '("src-element", DOMEventSrcElementPropertyInfo), '("target", DOMEventTargetPropertyInfo), '("time-stamp", DOMEventTimeStampPropertyInfo), '("to-element", DOMMouseEventToElementPropertyInfo), '("type", DOMEventTypePropertyInfo), '("view", DOMUIEventViewPropertyInfo), '("which", DOMUIEventWhichPropertyInfo), '("x", DOMMouseEventXPropertyInfo), '("y", DOMMouseEventYPropertyInfo)] :: [(Symbol, *)])

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

-- method DOMMouseEvent::get_alt_key
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMMouseEvent", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMMouseEvent", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : 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 ->                    -- _obj : TInterface "WebKit2WebExtension" "DOMMouseEvent"
    IO CInt


dOMMouseEventGetAltKey ::
    (MonadIO m, DOMMouseEventK a) =>
    a ->                                    -- _obj
    m Bool
dOMMouseEventGetAltKey _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_mouse_event_get_alt_key _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

-- method DOMMouseEvent::get_button
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMMouseEvent", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMMouseEvent", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TUInt16
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_mouse_event_get_button" webkit_dom_mouse_event_get_button :: 
    Ptr DOMMouseEvent ->                    -- _obj : TInterface "WebKit2WebExtension" "DOMMouseEvent"
    IO Word16


dOMMouseEventGetButton ::
    (MonadIO m, DOMMouseEventK a) =>
    a ->                                    -- _obj
    m Word16
dOMMouseEventGetButton _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_mouse_event_get_button _obj'
    touchManagedPtr _obj
    return result

-- method DOMMouseEvent::get_client_x
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMMouseEvent", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMMouseEvent", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TInt64
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_mouse_event_get_client_x" webkit_dom_mouse_event_get_client_x :: 
    Ptr DOMMouseEvent ->                    -- _obj : TInterface "WebKit2WebExtension" "DOMMouseEvent"
    IO Int64


dOMMouseEventGetClientX ::
    (MonadIO m, DOMMouseEventK a) =>
    a ->                                    -- _obj
    m Int64
dOMMouseEventGetClientX _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_mouse_event_get_client_x _obj'
    touchManagedPtr _obj
    return result

-- method DOMMouseEvent::get_client_y
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMMouseEvent", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMMouseEvent", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TInt64
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_mouse_event_get_client_y" webkit_dom_mouse_event_get_client_y :: 
    Ptr DOMMouseEvent ->                    -- _obj : TInterface "WebKit2WebExtension" "DOMMouseEvent"
    IO Int64


dOMMouseEventGetClientY ::
    (MonadIO m, DOMMouseEventK a) =>
    a ->                                    -- _obj
    m Int64
dOMMouseEventGetClientY _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_mouse_event_get_client_y _obj'
    touchManagedPtr _obj
    return result

-- method DOMMouseEvent::get_ctrl_key
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMMouseEvent", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMMouseEvent", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : 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 ->                    -- _obj : TInterface "WebKit2WebExtension" "DOMMouseEvent"
    IO CInt


dOMMouseEventGetCtrlKey ::
    (MonadIO m, DOMMouseEventK a) =>
    a ->                                    -- _obj
    m Bool
dOMMouseEventGetCtrlKey _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_mouse_event_get_ctrl_key _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

-- method DOMMouseEvent::get_from_element
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMMouseEvent", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMMouseEvent", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "WebKit2WebExtension" "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 ->                    -- _obj : TInterface "WebKit2WebExtension" "DOMMouseEvent"
    IO (Ptr DOMNode)


dOMMouseEventGetFromElement ::
    (MonadIO m, DOMMouseEventK a) =>
    a ->                                    -- _obj
    m DOMNode
dOMMouseEventGetFromElement _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_mouse_event_get_from_element _obj'
    checkUnexpectedReturnNULL "webkit_dom_mouse_event_get_from_element" result
    result' <- (newObject DOMNode) result
    touchManagedPtr _obj
    return result'

-- method DOMMouseEvent::get_meta_key
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMMouseEvent", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMMouseEvent", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : 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 ->                    -- _obj : TInterface "WebKit2WebExtension" "DOMMouseEvent"
    IO CInt


dOMMouseEventGetMetaKey ::
    (MonadIO m, DOMMouseEventK a) =>
    a ->                                    -- _obj
    m Bool
dOMMouseEventGetMetaKey _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_mouse_event_get_meta_key _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

-- method DOMMouseEvent::get_offset_x
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMMouseEvent", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMMouseEvent", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TInt64
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_mouse_event_get_offset_x" webkit_dom_mouse_event_get_offset_x :: 
    Ptr DOMMouseEvent ->                    -- _obj : TInterface "WebKit2WebExtension" "DOMMouseEvent"
    IO Int64


dOMMouseEventGetOffsetX ::
    (MonadIO m, DOMMouseEventK a) =>
    a ->                                    -- _obj
    m Int64
dOMMouseEventGetOffsetX _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_mouse_event_get_offset_x _obj'
    touchManagedPtr _obj
    return result

-- method DOMMouseEvent::get_offset_y
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMMouseEvent", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMMouseEvent", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TInt64
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_mouse_event_get_offset_y" webkit_dom_mouse_event_get_offset_y :: 
    Ptr DOMMouseEvent ->                    -- _obj : TInterface "WebKit2WebExtension" "DOMMouseEvent"
    IO Int64


dOMMouseEventGetOffsetY ::
    (MonadIO m, DOMMouseEventK a) =>
    a ->                                    -- _obj
    m Int64
dOMMouseEventGetOffsetY _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_mouse_event_get_offset_y _obj'
    touchManagedPtr _obj
    return result

-- method DOMMouseEvent::get_related_target
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMMouseEvent", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMMouseEvent", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "WebKit2WebExtension" "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 ->                    -- _obj : TInterface "WebKit2WebExtension" "DOMMouseEvent"
    IO (Ptr DOMEventTarget)


dOMMouseEventGetRelatedTarget ::
    (MonadIO m, DOMMouseEventK a) =>
    a ->                                    -- _obj
    m DOMEventTarget
dOMMouseEventGetRelatedTarget _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_mouse_event_get_related_target _obj'
    checkUnexpectedReturnNULL "webkit_dom_mouse_event_get_related_target" result
    result' <- (wrapObject DOMEventTarget) result
    touchManagedPtr _obj
    return result'

-- method DOMMouseEvent::get_screen_x
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMMouseEvent", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMMouseEvent", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TInt64
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_mouse_event_get_screen_x" webkit_dom_mouse_event_get_screen_x :: 
    Ptr DOMMouseEvent ->                    -- _obj : TInterface "WebKit2WebExtension" "DOMMouseEvent"
    IO Int64


dOMMouseEventGetScreenX ::
    (MonadIO m, DOMMouseEventK a) =>
    a ->                                    -- _obj
    m Int64
dOMMouseEventGetScreenX _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_mouse_event_get_screen_x _obj'
    touchManagedPtr _obj
    return result

-- method DOMMouseEvent::get_screen_y
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMMouseEvent", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMMouseEvent", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TInt64
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_mouse_event_get_screen_y" webkit_dom_mouse_event_get_screen_y :: 
    Ptr DOMMouseEvent ->                    -- _obj : TInterface "WebKit2WebExtension" "DOMMouseEvent"
    IO Int64


dOMMouseEventGetScreenY ::
    (MonadIO m, DOMMouseEventK a) =>
    a ->                                    -- _obj
    m Int64
dOMMouseEventGetScreenY _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_mouse_event_get_screen_y _obj'
    touchManagedPtr _obj
    return result

-- method DOMMouseEvent::get_shift_key
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMMouseEvent", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMMouseEvent", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : 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 ->                    -- _obj : TInterface "WebKit2WebExtension" "DOMMouseEvent"
    IO CInt


dOMMouseEventGetShiftKey ::
    (MonadIO m, DOMMouseEventK a) =>
    a ->                                    -- _obj
    m Bool
dOMMouseEventGetShiftKey _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_mouse_event_get_shift_key _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

-- method DOMMouseEvent::get_to_element
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMMouseEvent", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMMouseEvent", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "WebKit2WebExtension" "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 ->                    -- _obj : TInterface "WebKit2WebExtension" "DOMMouseEvent"
    IO (Ptr DOMNode)


dOMMouseEventGetToElement ::
    (MonadIO m, DOMMouseEventK a) =>
    a ->                                    -- _obj
    m DOMNode
dOMMouseEventGetToElement _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_mouse_event_get_to_element _obj'
    checkUnexpectedReturnNULL "webkit_dom_mouse_event_get_to_element" result
    result' <- (newObject DOMNode) result
    touchManagedPtr _obj
    return result'

-- method DOMMouseEvent::get_x
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMMouseEvent", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMMouseEvent", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TInt64
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_mouse_event_get_x" webkit_dom_mouse_event_get_x :: 
    Ptr DOMMouseEvent ->                    -- _obj : TInterface "WebKit2WebExtension" "DOMMouseEvent"
    IO Int64


dOMMouseEventGetX ::
    (MonadIO m, DOMMouseEventK a) =>
    a ->                                    -- _obj
    m Int64
dOMMouseEventGetX _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_mouse_event_get_x _obj'
    touchManagedPtr _obj
    return result

-- method DOMMouseEvent::get_y
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMMouseEvent", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMMouseEvent", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TInt64
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_mouse_event_get_y" webkit_dom_mouse_event_get_y :: 
    Ptr DOMMouseEvent ->                    -- _obj : TInterface "WebKit2WebExtension" "DOMMouseEvent"
    IO Int64


dOMMouseEventGetY ::
    (MonadIO m, DOMMouseEventK a) =>
    a ->                                    -- _obj
    m Int64
dOMMouseEventGetY _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_mouse_event_get_y _obj'
    touchManagedPtr _obj
    return result

-- method DOMMouseEvent::init_mouse_event
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMMouseEvent", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "type", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "canBubble", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cancelable", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "view", argType = TInterface "WebKit2WebExtension" "DOMDOMWindow", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "detail", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "screenX", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "screenY", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "clientX", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "clientY", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "ctrlKey", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "altKey", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "shiftKey", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "metaKey", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "button", argType = TBasicType TUInt16, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "relatedTarget", argType = TInterface "WebKit2WebExtension" "DOMEventTarget", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMMouseEvent", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "type", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "canBubble", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cancelable", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "view", argType = TInterface "WebKit2WebExtension" "DOMDOMWindow", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "detail", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "screenX", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "screenY", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "clientX", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "clientY", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "ctrlKey", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "altKey", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "shiftKey", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "metaKey", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "button", argType = TBasicType TUInt16, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "relatedTarget", argType = TInterface "WebKit2WebExtension" "DOMEventTarget", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_mouse_event_init_mouse_event" webkit_dom_mouse_event_init_mouse_event :: 
    Ptr DOMMouseEvent ->                    -- _obj : TInterface "WebKit2WebExtension" "DOMMouseEvent"
    CString ->                              -- type : TBasicType TUTF8
    CInt ->                                 -- canBubble : TBasicType TBoolean
    CInt ->                                 -- cancelable : TBasicType TBoolean
    Ptr DOMDOMWindow ->                     -- view : TInterface "WebKit2WebExtension" "DOMDOMWindow"
    Int64 ->                                -- detail : TBasicType TInt64
    Int64 ->                                -- screenX : TBasicType TInt64
    Int64 ->                                -- screenY : TBasicType TInt64
    Int64 ->                                -- clientX : TBasicType TInt64
    Int64 ->                                -- clientY : TBasicType TInt64
    CInt ->                                 -- ctrlKey : TBasicType TBoolean
    CInt ->                                 -- altKey : TBasicType TBoolean
    CInt ->                                 -- shiftKey : TBasicType TBoolean
    CInt ->                                 -- metaKey : TBasicType TBoolean
    Word16 ->                               -- button : TBasicType TUInt16
    Ptr DOMEventTarget ->                   -- relatedTarget : TInterface "WebKit2WebExtension" "DOMEventTarget"
    IO ()


dOMMouseEventInitMouseEvent ::
    (MonadIO m, DOMMouseEventK a, DOMDOMWindowK b, DOMEventTargetK c) =>
    a ->                                    -- _obj
    T.Text ->                               -- type
    Bool ->                                 -- canBubble
    Bool ->                                 -- cancelable
    b ->                                    -- view
    Int64 ->                                -- detail
    Int64 ->                                -- screenX
    Int64 ->                                -- screenY
    Int64 ->                                -- clientX
    Int64 ->                                -- clientY
    Bool ->                                 -- ctrlKey
    Bool ->                                 -- altKey
    Bool ->                                 -- shiftKey
    Bool ->                                 -- metaKey
    Word16 ->                               -- button
    c ->                                    -- relatedTarget
    m ()
dOMMouseEventInitMouseEvent _obj type_ canBubble cancelable view detail screenX screenY clientX clientY ctrlKey altKey shiftKey metaKey button relatedTarget = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    type_' <- textToCString type_
    let canBubble' = (fromIntegral . fromEnum) canBubble
    let cancelable' = (fromIntegral . fromEnum) cancelable
    let view' = unsafeManagedPtrCastPtr view
    let ctrlKey' = (fromIntegral . fromEnum) ctrlKey
    let altKey' = (fromIntegral . fromEnum) altKey
    let shiftKey' = (fromIntegral . fromEnum) shiftKey
    let metaKey' = (fromIntegral . fromEnum) metaKey
    let relatedTarget' = unsafeManagedPtrCastPtr relatedTarget
    webkit_dom_mouse_event_init_mouse_event _obj' type_' canBubble' cancelable' view' detail screenX screenY clientX clientY ctrlKey' altKey' shiftKey' metaKey' button relatedTarget'
    touchManagedPtr _obj
    touchManagedPtr view
    touchManagedPtr relatedTarget
    freeMem type_'
    return ()