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

-- * Exported types
    DOMUIEvent(..)                          ,
    IsDOMUIEvent                            ,
    toDOMUIEvent                            ,
    noDOMUIEvent                            ,


 -- * Methods
-- ** getCharCode #method:getCharCode#
    DOMUIEventGetCharCodeMethodInfo         ,
    dOMUIEventGetCharCode                   ,


-- ** getDetail #method:getDetail#
    DOMUIEventGetDetailMethodInfo           ,
    dOMUIEventGetDetail                     ,


-- ** getKeyCode #method:getKeyCode#
    DOMUIEventGetKeyCodeMethodInfo          ,
    dOMUIEventGetKeyCode                    ,


-- ** getLayerX #method:getLayerX#
    DOMUIEventGetLayerXMethodInfo           ,
    dOMUIEventGetLayerX                     ,


-- ** getLayerY #method:getLayerY#
    DOMUIEventGetLayerYMethodInfo           ,
    dOMUIEventGetLayerY                     ,


-- ** getPageX #method:getPageX#
    DOMUIEventGetPageXMethodInfo            ,
    dOMUIEventGetPageX                      ,


-- ** getPageY #method:getPageY#
    DOMUIEventGetPageYMethodInfo            ,
    dOMUIEventGetPageY                      ,


-- ** getView #method:getView#
    DOMUIEventGetViewMethodInfo             ,
    dOMUIEventGetView                       ,


-- ** initUiEvent #method:initUiEvent#
    DOMUIEventInitUiEventMethodInfo         ,
    dOMUIEventInitUiEvent                   ,




 -- * Properties
-- ** charCode #attr:charCode#
    DOMUIEventCharCodePropertyInfo          ,
    dOMUIEventCharCode                      ,
    getDOMUIEventCharCode                   ,


-- ** detail #attr:detail#
    DOMUIEventDetailPropertyInfo            ,
    dOMUIEventDetail                        ,
    getDOMUIEventDetail                     ,


-- ** keyCode #attr:keyCode#
    DOMUIEventKeyCodePropertyInfo           ,
    dOMUIEventKeyCode                       ,
    getDOMUIEventKeyCode                    ,


-- ** layerX #attr:layerX#
    DOMUIEventLayerXPropertyInfo            ,
    dOMUIEventLayerX                        ,
    getDOMUIEventLayerX                     ,


-- ** layerY #attr:layerY#
    DOMUIEventLayerYPropertyInfo            ,
    dOMUIEventLayerY                        ,
    getDOMUIEventLayerY                     ,


-- ** pageX #attr:pageX#
    DOMUIEventPageXPropertyInfo             ,
    dOMUIEventPageX                         ,
    getDOMUIEventPageX                      ,


-- ** pageY #attr:pageY#
    DOMUIEventPageYPropertyInfo             ,
    dOMUIEventPageY                         ,
    getDOMUIEventPageY                      ,


-- ** view #attr:view#
    DOMUIEventViewPropertyInfo              ,
    dOMUIEventView                          ,
    getDOMUIEventView                       ,




    ) where

import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.ShortPrelude as SP
import qualified Data.GI.Base.Overloading as O
import qualified Prelude as P

import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP

import qualified GI.GObject.Objects.Object as GObject.Object
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMDOMWindow as WebKit2WebExtension.DOMDOMWindow
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMEvent as WebKit2WebExtension.DOMEvent
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMObject as WebKit2WebExtension.DOMObject

newtype DOMUIEvent = DOMUIEvent (ManagedPtr DOMUIEvent)
foreign import ccall "webkit_dom_ui_event_get_type"
    c_webkit_dom_ui_event_get_type :: IO GType

instance GObject DOMUIEvent where
    gobjectType _ = c_webkit_dom_ui_event_get_type
    

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

toDOMUIEvent :: IsDOMUIEvent o => o -> IO DOMUIEvent
toDOMUIEvent = unsafeCastTo DOMUIEvent

noDOMUIEvent :: Maybe DOMUIEvent
noDOMUIEvent = Nothing

type family ResolveDOMUIEventMethod (t :: Symbol) (o :: *) :: * where
    ResolveDOMUIEventMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
    ResolveDOMUIEventMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
    ResolveDOMUIEventMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
    ResolveDOMUIEventMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
    ResolveDOMUIEventMethod "initEvent" o = WebKit2WebExtension.DOMEvent.DOMEventInitEventMethodInfo
    ResolveDOMUIEventMethod "initUiEvent" o = DOMUIEventInitUiEventMethodInfo
    ResolveDOMUIEventMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
    ResolveDOMUIEventMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
    ResolveDOMUIEventMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
    ResolveDOMUIEventMethod "preventDefault" o = WebKit2WebExtension.DOMEvent.DOMEventPreventDefaultMethodInfo
    ResolveDOMUIEventMethod "ref" o = GObject.Object.ObjectRefMethodInfo
    ResolveDOMUIEventMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
    ResolveDOMUIEventMethod "replaceData" o = GObject.Object.ObjectReplaceDataMethodInfo
    ResolveDOMUIEventMethod "replaceQdata" o = GObject.Object.ObjectReplaceQdataMethodInfo
    ResolveDOMUIEventMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
    ResolveDOMUIEventMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
    ResolveDOMUIEventMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
    ResolveDOMUIEventMethod "stopPropagation" o = WebKit2WebExtension.DOMEvent.DOMEventStopPropagationMethodInfo
    ResolveDOMUIEventMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
    ResolveDOMUIEventMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
    ResolveDOMUIEventMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
    ResolveDOMUIEventMethod "getBubbles" o = WebKit2WebExtension.DOMEvent.DOMEventGetBubblesMethodInfo
    ResolveDOMUIEventMethod "getCancelBubble" o = WebKit2WebExtension.DOMEvent.DOMEventGetCancelBubbleMethodInfo
    ResolveDOMUIEventMethod "getCancelable" o = WebKit2WebExtension.DOMEvent.DOMEventGetCancelableMethodInfo
    ResolveDOMUIEventMethod "getCharCode" o = DOMUIEventGetCharCodeMethodInfo
    ResolveDOMUIEventMethod "getCurrentTarget" o = WebKit2WebExtension.DOMEvent.DOMEventGetCurrentTargetMethodInfo
    ResolveDOMUIEventMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
    ResolveDOMUIEventMethod "getDetail" o = DOMUIEventGetDetailMethodInfo
    ResolveDOMUIEventMethod "getEventPhase" o = WebKit2WebExtension.DOMEvent.DOMEventGetEventPhaseMethodInfo
    ResolveDOMUIEventMethod "getEventType" o = WebKit2WebExtension.DOMEvent.DOMEventGetEventTypeMethodInfo
    ResolveDOMUIEventMethod "getKeyCode" o = DOMUIEventGetKeyCodeMethodInfo
    ResolveDOMUIEventMethod "getLayerX" o = DOMUIEventGetLayerXMethodInfo
    ResolveDOMUIEventMethod "getLayerY" o = DOMUIEventGetLayerYMethodInfo
    ResolveDOMUIEventMethod "getPageX" o = DOMUIEventGetPageXMethodInfo
    ResolveDOMUIEventMethod "getPageY" o = DOMUIEventGetPageYMethodInfo
    ResolveDOMUIEventMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
    ResolveDOMUIEventMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
    ResolveDOMUIEventMethod "getReturnValue" o = WebKit2WebExtension.DOMEvent.DOMEventGetReturnValueMethodInfo
    ResolveDOMUIEventMethod "getSrcElement" o = WebKit2WebExtension.DOMEvent.DOMEventGetSrcElementMethodInfo
    ResolveDOMUIEventMethod "getTarget" o = WebKit2WebExtension.DOMEvent.DOMEventGetTargetMethodInfo
    ResolveDOMUIEventMethod "getTimeStamp" o = WebKit2WebExtension.DOMEvent.DOMEventGetTimeStampMethodInfo
    ResolveDOMUIEventMethod "getView" o = DOMUIEventGetViewMethodInfo
    ResolveDOMUIEventMethod "setCancelBubble" o = WebKit2WebExtension.DOMEvent.DOMEventSetCancelBubbleMethodInfo
    ResolveDOMUIEventMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
    ResolveDOMUIEventMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
    ResolveDOMUIEventMethod "setReturnValue" o = WebKit2WebExtension.DOMEvent.DOMEventSetReturnValueMethodInfo
    ResolveDOMUIEventMethod l o = O.MethodResolutionFailed l o

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

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

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

getDOMUIEventCharCode :: (MonadIO m, IsDOMUIEvent o) => o -> m CLong
getDOMUIEventCharCode obj = liftIO $ getObjectPropertyLong obj "char-code"

data DOMUIEventCharCodePropertyInfo
instance AttrInfo DOMUIEventCharCodePropertyInfo where
    type AttrAllowedOps DOMUIEventCharCodePropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMUIEventCharCodePropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMUIEventCharCodePropertyInfo = IsDOMUIEvent
    type AttrGetType DOMUIEventCharCodePropertyInfo = CLong
    type AttrLabel DOMUIEventCharCodePropertyInfo = "char-code"
    type AttrOrigin DOMUIEventCharCodePropertyInfo = DOMUIEvent
    attrGet _ = getDOMUIEventCharCode
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined

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

getDOMUIEventDetail :: (MonadIO m, IsDOMUIEvent o) => o -> m CLong
getDOMUIEventDetail obj = liftIO $ getObjectPropertyLong obj "detail"

data DOMUIEventDetailPropertyInfo
instance AttrInfo DOMUIEventDetailPropertyInfo where
    type AttrAllowedOps DOMUIEventDetailPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMUIEventDetailPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMUIEventDetailPropertyInfo = IsDOMUIEvent
    type AttrGetType DOMUIEventDetailPropertyInfo = CLong
    type AttrLabel DOMUIEventDetailPropertyInfo = "detail"
    type AttrOrigin DOMUIEventDetailPropertyInfo = DOMUIEvent
    attrGet _ = getDOMUIEventDetail
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined

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

getDOMUIEventKeyCode :: (MonadIO m, IsDOMUIEvent o) => o -> m CLong
getDOMUIEventKeyCode obj = liftIO $ getObjectPropertyLong obj "key-code"

data DOMUIEventKeyCodePropertyInfo
instance AttrInfo DOMUIEventKeyCodePropertyInfo where
    type AttrAllowedOps DOMUIEventKeyCodePropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMUIEventKeyCodePropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMUIEventKeyCodePropertyInfo = IsDOMUIEvent
    type AttrGetType DOMUIEventKeyCodePropertyInfo = CLong
    type AttrLabel DOMUIEventKeyCodePropertyInfo = "key-code"
    type AttrOrigin DOMUIEventKeyCodePropertyInfo = DOMUIEvent
    attrGet _ = getDOMUIEventKeyCode
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined

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

getDOMUIEventLayerX :: (MonadIO m, IsDOMUIEvent o) => o -> m CLong
getDOMUIEventLayerX obj = liftIO $ getObjectPropertyLong obj "layer-x"

data DOMUIEventLayerXPropertyInfo
instance AttrInfo DOMUIEventLayerXPropertyInfo where
    type AttrAllowedOps DOMUIEventLayerXPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMUIEventLayerXPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMUIEventLayerXPropertyInfo = IsDOMUIEvent
    type AttrGetType DOMUIEventLayerXPropertyInfo = CLong
    type AttrLabel DOMUIEventLayerXPropertyInfo = "layer-x"
    type AttrOrigin DOMUIEventLayerXPropertyInfo = DOMUIEvent
    attrGet _ = getDOMUIEventLayerX
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined

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

getDOMUIEventLayerY :: (MonadIO m, IsDOMUIEvent o) => o -> m CLong
getDOMUIEventLayerY obj = liftIO $ getObjectPropertyLong obj "layer-y"

data DOMUIEventLayerYPropertyInfo
instance AttrInfo DOMUIEventLayerYPropertyInfo where
    type AttrAllowedOps DOMUIEventLayerYPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMUIEventLayerYPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMUIEventLayerYPropertyInfo = IsDOMUIEvent
    type AttrGetType DOMUIEventLayerYPropertyInfo = CLong
    type AttrLabel DOMUIEventLayerYPropertyInfo = "layer-y"
    type AttrOrigin DOMUIEventLayerYPropertyInfo = DOMUIEvent
    attrGet _ = getDOMUIEventLayerY
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined

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

getDOMUIEventPageX :: (MonadIO m, IsDOMUIEvent o) => o -> m CLong
getDOMUIEventPageX obj = liftIO $ getObjectPropertyLong obj "page-x"

data DOMUIEventPageXPropertyInfo
instance AttrInfo DOMUIEventPageXPropertyInfo where
    type AttrAllowedOps DOMUIEventPageXPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMUIEventPageXPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMUIEventPageXPropertyInfo = IsDOMUIEvent
    type AttrGetType DOMUIEventPageXPropertyInfo = CLong
    type AttrLabel DOMUIEventPageXPropertyInfo = "page-x"
    type AttrOrigin DOMUIEventPageXPropertyInfo = DOMUIEvent
    attrGet _ = getDOMUIEventPageX
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined

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

getDOMUIEventPageY :: (MonadIO m, IsDOMUIEvent o) => o -> m CLong
getDOMUIEventPageY obj = liftIO $ getObjectPropertyLong obj "page-y"

data DOMUIEventPageYPropertyInfo
instance AttrInfo DOMUIEventPageYPropertyInfo where
    type AttrAllowedOps DOMUIEventPageYPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMUIEventPageYPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMUIEventPageYPropertyInfo = IsDOMUIEvent
    type AttrGetType DOMUIEventPageYPropertyInfo = CLong
    type AttrLabel DOMUIEventPageYPropertyInfo = "page-y"
    type AttrOrigin DOMUIEventPageYPropertyInfo = DOMUIEvent
    attrGet _ = getDOMUIEventPageY
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined

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

getDOMUIEventView :: (MonadIO m, IsDOMUIEvent o) => o -> m (Maybe WebKit2WebExtension.DOMDOMWindow.DOMDOMWindow)
getDOMUIEventView obj = liftIO $ getObjectPropertyObject obj "view" WebKit2WebExtension.DOMDOMWindow.DOMDOMWindow

data DOMUIEventViewPropertyInfo
instance AttrInfo DOMUIEventViewPropertyInfo where
    type AttrAllowedOps DOMUIEventViewPropertyInfo = '[ 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint DOMUIEventViewPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMUIEventViewPropertyInfo = IsDOMUIEvent
    type AttrGetType DOMUIEventViewPropertyInfo = (Maybe WebKit2WebExtension.DOMDOMWindow.DOMDOMWindow)
    type AttrLabel DOMUIEventViewPropertyInfo = "view"
    type AttrOrigin DOMUIEventViewPropertyInfo = DOMUIEvent
    attrGet _ = getDOMUIEventView
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined

instance O.HasAttributeList DOMUIEvent
type instance O.AttributeList DOMUIEvent = DOMUIEventAttributeList
type DOMUIEventAttributeList = ('[ '("bubbles", WebKit2WebExtension.DOMEvent.DOMEventBubblesPropertyInfo), '("cancelBubble", WebKit2WebExtension.DOMEvent.DOMEventCancelBubblePropertyInfo), '("cancelable", WebKit2WebExtension.DOMEvent.DOMEventCancelablePropertyInfo), '("charCode", DOMUIEventCharCodePropertyInfo), '("coreObject", WebKit2WebExtension.DOMObject.DOMObjectCoreObjectPropertyInfo), '("currentTarget", WebKit2WebExtension.DOMEvent.DOMEventCurrentTargetPropertyInfo), '("detail", DOMUIEventDetailPropertyInfo), '("eventPhase", WebKit2WebExtension.DOMEvent.DOMEventEventPhasePropertyInfo), '("keyCode", DOMUIEventKeyCodePropertyInfo), '("layerX", DOMUIEventLayerXPropertyInfo), '("layerY", DOMUIEventLayerYPropertyInfo), '("pageX", DOMUIEventPageXPropertyInfo), '("pageY", DOMUIEventPageYPropertyInfo), '("returnValue", WebKit2WebExtension.DOMEvent.DOMEventReturnValuePropertyInfo), '("srcElement", WebKit2WebExtension.DOMEvent.DOMEventSrcElementPropertyInfo), '("target", WebKit2WebExtension.DOMEvent.DOMEventTargetPropertyInfo), '("timeStamp", WebKit2WebExtension.DOMEvent.DOMEventTimeStampPropertyInfo), '("type", WebKit2WebExtension.DOMEvent.DOMEventTypePropertyInfo), '("view", DOMUIEventViewPropertyInfo)] :: [(Symbol, *)])

dOMUIEventCharCode :: AttrLabelProxy "charCode"
dOMUIEventCharCode = AttrLabelProxy

dOMUIEventDetail :: AttrLabelProxy "detail"
dOMUIEventDetail = AttrLabelProxy

dOMUIEventKeyCode :: AttrLabelProxy "keyCode"
dOMUIEventKeyCode = AttrLabelProxy

dOMUIEventLayerX :: AttrLabelProxy "layerX"
dOMUIEventLayerX = AttrLabelProxy

dOMUIEventLayerY :: AttrLabelProxy "layerY"
dOMUIEventLayerY = AttrLabelProxy

dOMUIEventPageX :: AttrLabelProxy "pageX"
dOMUIEventPageX = AttrLabelProxy

dOMUIEventPageY :: AttrLabelProxy "pageY"
dOMUIEventPageY = AttrLabelProxy

dOMUIEventView :: AttrLabelProxy "view"
dOMUIEventView = AttrLabelProxy

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

-- method DOMUIEvent::get_char_code
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMUIEvent"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMUIEvent", 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_ui_event_get_char_code" webkit_dom_ui_event_get_char_code :: 
    Ptr DOMUIEvent ->                       -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMUIEvent"})
    IO CLong

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

data DOMUIEventGetCharCodeMethodInfo
instance (signature ~ (m CLong), MonadIO m, IsDOMUIEvent a) => O.MethodInfo DOMUIEventGetCharCodeMethodInfo a signature where
    overloadedMethod _ = dOMUIEventGetCharCode

-- method DOMUIEvent::get_detail
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMUIEvent"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMUIEvent", 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_ui_event_get_detail" webkit_dom_ui_event_get_detail :: 
    Ptr DOMUIEvent ->                       -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMUIEvent"})
    IO CLong

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

data DOMUIEventGetDetailMethodInfo
instance (signature ~ (m CLong), MonadIO m, IsDOMUIEvent a) => O.MethodInfo DOMUIEventGetDetailMethodInfo a signature where
    overloadedMethod _ = dOMUIEventGetDetail

-- method DOMUIEvent::get_key_code
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMUIEvent"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMUIEvent", 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_ui_event_get_key_code" webkit_dom_ui_event_get_key_code :: 
    Ptr DOMUIEvent ->                       -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMUIEvent"})
    IO CLong

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

data DOMUIEventGetKeyCodeMethodInfo
instance (signature ~ (m CLong), MonadIO m, IsDOMUIEvent a) => O.MethodInfo DOMUIEventGetKeyCodeMethodInfo a signature where
    overloadedMethod _ = dOMUIEventGetKeyCode

-- method DOMUIEvent::get_layer_x
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMUIEvent"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMUIEvent", 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_ui_event_get_layer_x" webkit_dom_ui_event_get_layer_x :: 
    Ptr DOMUIEvent ->                       -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMUIEvent"})
    IO CLong

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

data DOMUIEventGetLayerXMethodInfo
instance (signature ~ (m CLong), MonadIO m, IsDOMUIEvent a) => O.MethodInfo DOMUIEventGetLayerXMethodInfo a signature where
    overloadedMethod _ = dOMUIEventGetLayerX

-- method DOMUIEvent::get_layer_y
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMUIEvent"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMUIEvent", 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_ui_event_get_layer_y" webkit_dom_ui_event_get_layer_y :: 
    Ptr DOMUIEvent ->                       -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMUIEvent"})
    IO CLong

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

data DOMUIEventGetLayerYMethodInfo
instance (signature ~ (m CLong), MonadIO m, IsDOMUIEvent a) => O.MethodInfo DOMUIEventGetLayerYMethodInfo a signature where
    overloadedMethod _ = dOMUIEventGetLayerY

-- method DOMUIEvent::get_page_x
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMUIEvent"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMUIEvent", 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_ui_event_get_page_x" webkit_dom_ui_event_get_page_x :: 
    Ptr DOMUIEvent ->                       -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMUIEvent"})
    IO CLong

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

data DOMUIEventGetPageXMethodInfo
instance (signature ~ (m CLong), MonadIO m, IsDOMUIEvent a) => O.MethodInfo DOMUIEventGetPageXMethodInfo a signature where
    overloadedMethod _ = dOMUIEventGetPageX

-- method DOMUIEvent::get_page_y
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMUIEvent"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMUIEvent", 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_ui_event_get_page_y" webkit_dom_ui_event_get_page_y :: 
    Ptr DOMUIEvent ->                       -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMUIEvent"})
    IO CLong

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

data DOMUIEventGetPageYMethodInfo
instance (signature ~ (m CLong), MonadIO m, IsDOMUIEvent a) => O.MethodInfo DOMUIEventGetPageYMethodInfo a signature where
    overloadedMethod _ = dOMUIEventGetPageY

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

foreign import ccall "webkit_dom_ui_event_get_view" webkit_dom_ui_event_get_view :: 
    Ptr DOMUIEvent ->                       -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMUIEvent"})
    IO (Ptr WebKit2WebExtension.DOMDOMWindow.DOMDOMWindow)

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

data DOMUIEventGetViewMethodInfo
instance (signature ~ (m WebKit2WebExtension.DOMDOMWindow.DOMDOMWindow), MonadIO m, IsDOMUIEvent a) => O.MethodInfo DOMUIEventGetViewMethodInfo a signature where
    overloadedMethod _ = dOMUIEventGetView

-- method DOMUIEvent::init_ui_event
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMUIEvent"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMUIEvent", 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}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_ui_event_init_ui_event" webkit_dom_ui_event_init_ui_event :: 
    Ptr DOMUIEvent ->                       -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMUIEvent"})
    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
    IO ()

{- |
/No description available in the introspection data./
-}
dOMUIEventInitUiEvent ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMUIEvent a, WebKit2WebExtension.DOMDOMWindow.IsDOMDOMWindow b) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMUIEvent.DOMUIEvent' -}
    -> 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/@ -}
    -> m ()
dOMUIEventInitUiEvent self type_ canBubble cancelable view detail = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    type_' <- textToCString type_
    let canBubble' = (fromIntegral . fromEnum) canBubble
    let cancelable' = (fromIntegral . fromEnum) cancelable
    view' <- unsafeManagedPtrCastPtr view
    webkit_dom_ui_event_init_ui_event self' type_' canBubble' cancelable' view' detail
    touchManagedPtr self
    touchManagedPtr view
    freeMem type_'
    return ()

data DOMUIEventInitUiEventMethodInfo
instance (signature ~ (T.Text -> Bool -> Bool -> b -> CLong -> m ()), MonadIO m, IsDOMUIEvent a, WebKit2WebExtension.DOMDOMWindow.IsDOMDOMWindow b) => O.MethodInfo DOMUIEventInitUiEventMethodInfo a signature where
    overloadedMethod _ = dOMUIEventInitUiEvent