{- |
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(..)                          ,
    DOMUIEventK                             ,
    toDOMUIEvent                            ,
    noDOMUIEvent                            ,


 -- * Methods
-- ** dOMUIEventGetCharCode
    dOMUIEventGetCharCode                   ,


-- ** dOMUIEventGetDetail
    dOMUIEventGetDetail                     ,


-- ** dOMUIEventGetKeyCode
    dOMUIEventGetKeyCode                    ,


-- ** dOMUIEventGetLayerX
    dOMUIEventGetLayerX                     ,


-- ** dOMUIEventGetLayerY
    dOMUIEventGetLayerY                     ,


-- ** dOMUIEventGetPageX
    dOMUIEventGetPageX                      ,


-- ** dOMUIEventGetPageY
    dOMUIEventGetPageY                      ,


-- ** dOMUIEventGetView
    dOMUIEventGetView                       ,


-- ** dOMUIEventInitUiEvent
    dOMUIEventInitUiEvent                   ,




 -- * Properties
-- ** CharCode
    DOMUIEventCharCodePropertyInfo          ,
    getDOMUIEventCharCode                   ,


-- ** Detail
    DOMUIEventDetailPropertyInfo            ,
    getDOMUIEventDetail                     ,


-- ** KeyCode
    DOMUIEventKeyCodePropertyInfo           ,
    getDOMUIEventKeyCode                    ,


-- ** LayerX
    DOMUIEventLayerXPropertyInfo            ,
    getDOMUIEventLayerX                     ,


-- ** LayerY
    DOMUIEventLayerYPropertyInfo            ,
    getDOMUIEventLayerY                     ,


-- ** PageX
    DOMUIEventPageXPropertyInfo             ,
    getDOMUIEventPageX                      ,


-- ** PageY
    DOMUIEventPageYPropertyInfo             ,
    getDOMUIEventPageY                      ,


-- ** View
    DOMUIEventViewPropertyInfo              ,
    getDOMUIEventView                       ,


-- ** Which
    DOMUIEventWhichPropertyInfo             ,
    getDOMUIEventWhich                      ,




    ) 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 DOMUIEvent = DOMUIEvent (ForeignPtr DOMUIEvent)
foreign import ccall "webkit_dom_ui_event_get_type"
    c_webkit_dom_ui_event_get_type :: IO GType

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

instance GObject DOMUIEvent where
    gobjectIsInitiallyUnowned _ = False
    gobjectType _ = c_webkit_dom_ui_event_get_type
    

class GObject o => DOMUIEventK o
instance (GObject o, IsDescendantOf DOMUIEvent o) => DOMUIEventK o

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

noDOMUIEvent :: Maybe DOMUIEvent
noDOMUIEvent = Nothing

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

getDOMUIEventCharCode :: (MonadIO m, DOMUIEventK o) => o -> m Int64
getDOMUIEventCharCode obj = liftIO $ getObjectPropertyInt64 obj "char-code"

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

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

getDOMUIEventDetail :: (MonadIO m, DOMUIEventK o) => o -> m Int64
getDOMUIEventDetail obj = liftIO $ getObjectPropertyInt64 obj "detail"

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

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

getDOMUIEventKeyCode :: (MonadIO m, DOMUIEventK o) => o -> m Int64
getDOMUIEventKeyCode obj = liftIO $ getObjectPropertyInt64 obj "key-code"

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

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

getDOMUIEventLayerX :: (MonadIO m, DOMUIEventK o) => o -> m Int64
getDOMUIEventLayerX obj = liftIO $ getObjectPropertyInt64 obj "layer-x"

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

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

getDOMUIEventLayerY :: (MonadIO m, DOMUIEventK o) => o -> m Int64
getDOMUIEventLayerY obj = liftIO $ getObjectPropertyInt64 obj "layer-y"

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

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

getDOMUIEventPageX :: (MonadIO m, DOMUIEventK o) => o -> m Int64
getDOMUIEventPageX obj = liftIO $ getObjectPropertyInt64 obj "page-x"

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

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

getDOMUIEventPageY :: (MonadIO m, DOMUIEventK o) => o -> m Int64
getDOMUIEventPageY obj = liftIO $ getObjectPropertyInt64 obj "page-y"

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

-- VVV Prop "view"
   -- Type: TInterface "WebKit2WebExtension" "DOMDOMWindow"
   -- Flags: [PropertyReadable]

getDOMUIEventView :: (MonadIO m, DOMUIEventK o) => o -> m DOMDOMWindow
getDOMUIEventView obj = liftIO $ getObjectPropertyObject obj "view" DOMDOMWindow

data DOMUIEventViewPropertyInfo
instance AttrInfo DOMUIEventViewPropertyInfo where
    type AttrAllowedOps DOMUIEventViewPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMUIEventViewPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMUIEventViewPropertyInfo = DOMUIEventK
    type AttrGetType DOMUIEventViewPropertyInfo = DOMDOMWindow
    type AttrLabel DOMUIEventViewPropertyInfo = "DOMUIEvent::view"
    attrGet _ = getDOMUIEventView
    attrSet _ = undefined
    attrConstruct _ = undefined

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

getDOMUIEventWhich :: (MonadIO m, DOMUIEventK o) => o -> m Int64
getDOMUIEventWhich obj = liftIO $ getObjectPropertyInt64 obj "which"

data DOMUIEventWhichPropertyInfo
instance AttrInfo DOMUIEventWhichPropertyInfo where
    type AttrAllowedOps DOMUIEventWhichPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMUIEventWhichPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMUIEventWhichPropertyInfo = DOMUIEventK
    type AttrGetType DOMUIEventWhichPropertyInfo = Int64
    type AttrLabel DOMUIEventWhichPropertyInfo = "DOMUIEvent::which"
    attrGet _ = getDOMUIEventWhich
    attrSet _ = undefined
    attrConstruct _ = undefined

type instance AttributeList DOMUIEvent = DOMUIEventAttributeList
type DOMUIEventAttributeList = ('[ '("bubbles", DOMEventBubblesPropertyInfo), '("cancel-bubble", DOMEventCancelBubblePropertyInfo), '("cancelable", DOMEventCancelablePropertyInfo), '("char-code", DOMUIEventCharCodePropertyInfo), '("core-object", DOMObjectCoreObjectPropertyInfo), '("current-target", DOMEventCurrentTargetPropertyInfo), '("default-prevented", DOMEventDefaultPreventedPropertyInfo), '("detail", DOMUIEventDetailPropertyInfo), '("event-phase", DOMEventEventPhasePropertyInfo), '("key-code", DOMUIEventKeyCodePropertyInfo), '("layer-x", DOMUIEventLayerXPropertyInfo), '("layer-y", DOMUIEventLayerYPropertyInfo), '("page-x", DOMUIEventPageXPropertyInfo), '("page-y", DOMUIEventPageYPropertyInfo), '("return-value", DOMEventReturnValuePropertyInfo), '("src-element", DOMEventSrcElementPropertyInfo), '("target", DOMEventTargetPropertyInfo), '("time-stamp", DOMEventTimeStampPropertyInfo), '("type", DOMEventTypePropertyInfo), '("view", DOMUIEventViewPropertyInfo), '("which", DOMUIEventWhichPropertyInfo)] :: [(Symbol, *)])

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

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


dOMUIEventGetCharCode ::
    (MonadIO m, DOMUIEventK a) =>
    a ->                                    -- _obj
    m Int64
dOMUIEventGetCharCode _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_ui_event_get_char_code _obj'
    touchManagedPtr _obj
    return result

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


dOMUIEventGetDetail ::
    (MonadIO m, DOMUIEventK a) =>
    a ->                                    -- _obj
    m Int64
dOMUIEventGetDetail _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_ui_event_get_detail _obj'
    touchManagedPtr _obj
    return result

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


dOMUIEventGetKeyCode ::
    (MonadIO m, DOMUIEventK a) =>
    a ->                                    -- _obj
    m Int64
dOMUIEventGetKeyCode _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_ui_event_get_key_code _obj'
    touchManagedPtr _obj
    return result

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


dOMUIEventGetLayerX ::
    (MonadIO m, DOMUIEventK a) =>
    a ->                                    -- _obj
    m Int64
dOMUIEventGetLayerX _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_ui_event_get_layer_x _obj'
    touchManagedPtr _obj
    return result

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


dOMUIEventGetLayerY ::
    (MonadIO m, DOMUIEventK a) =>
    a ->                                    -- _obj
    m Int64
dOMUIEventGetLayerY _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_ui_event_get_layer_y _obj'
    touchManagedPtr _obj
    return result

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


dOMUIEventGetPageX ::
    (MonadIO m, DOMUIEventK a) =>
    a ->                                    -- _obj
    m Int64
dOMUIEventGetPageX _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_ui_event_get_page_x _obj'
    touchManagedPtr _obj
    return result

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


dOMUIEventGetPageY ::
    (MonadIO m, DOMUIEventK a) =>
    a ->                                    -- _obj
    m Int64
dOMUIEventGetPageY _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_ui_event_get_page_y _obj'
    touchManagedPtr _obj
    return result

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

foreign import ccall "webkit_dom_ui_event_get_view" webkit_dom_ui_event_get_view :: 
    Ptr DOMUIEvent ->                       -- _obj : TInterface "WebKit2WebExtension" "DOMUIEvent"
    IO (Ptr DOMDOMWindow)


dOMUIEventGetView ::
    (MonadIO m, DOMUIEventK a) =>
    a ->                                    -- _obj
    m DOMDOMWindow
dOMUIEventGetView _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_dom_ui_event_get_view _obj'
    checkUnexpectedReturnNULL "webkit_dom_ui_event_get_view" result
    result' <- (wrapObject DOMDOMWindow) result
    touchManagedPtr _obj
    return result'

-- method DOMUIEvent::init_ui_event
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMUIEvent", 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}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMUIEvent", 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}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_ui_event_init_ui_event" webkit_dom_ui_event_init_ui_event :: 
    Ptr DOMUIEvent ->                       -- _obj : TInterface "WebKit2WebExtension" "DOMUIEvent"
    CString ->                              -- type : TBasicType TUTF8
    CInt ->                                 -- canBubble : TBasicType TBoolean
    CInt ->                                 -- cancelable : TBasicType TBoolean
    Ptr DOMDOMWindow ->                     -- view : TInterface "WebKit2WebExtension" "DOMDOMWindow"
    Int64 ->                                -- detail : TBasicType TInt64
    IO ()


dOMUIEventInitUiEvent ::
    (MonadIO m, DOMUIEventK a, DOMDOMWindowK b) =>
    a ->                                    -- _obj
    T.Text ->                               -- type
    Bool ->                                 -- canBubble
    Bool ->                                 -- cancelable
    b ->                                    -- view
    Int64 ->                                -- detail
    m ()
dOMUIEventInitUiEvent _obj type_ canBubble cancelable view detail = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    type_' <- textToCString type_
    let canBubble' = (fromIntegral . fromEnum) canBubble
    let cancelable' = (fromIntegral . fromEnum) cancelable
    let view' = unsafeManagedPtrCastPtr view
    webkit_dom_ui_event_init_ui_event _obj' type_' canBubble' cancelable' view' detail
    touchManagedPtr _obj
    touchManagedPtr view
    freeMem type_'
    return ()