{-# LANGUAGE TypeApplications #-}
#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif
module GI.WebKit2WebExtension.Interfaces.DOMEventTarget
(
DOMEventTarget(..) ,
noDOMEventTarget ,
IsDOMEventTarget ,
toDOMEventTarget ,
#if defined(ENABLE_OVERLOADING)
ResolveDOMEventTargetMethod ,
#endif
#if defined(ENABLE_OVERLOADING)
DOMEventTargetAddEventListenerMethodInfo,
#endif
dOMEventTargetAddEventListener ,
#if defined(ENABLE_OVERLOADING)
DOMEventTargetDispatchEventMethodInfo ,
#endif
dOMEventTargetDispatchEvent ,
#if defined(ENABLE_OVERLOADING)
DOMEventTargetRemoveEventListenerMethodInfo,
#endif
dOMEventTargetRemoveEventListener ,
) where
import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.ShortPrelude as SP
import qualified Data.GI.Base.Overloading as O
import qualified Prelude as P
import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GValue as B.GValue
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.GI.Base.Properties as B.Properties
import qualified Data.GI.Base.Signals as B.Signals
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
import qualified GHC.OverloadedLabels as OL
import qualified GI.GObject.Objects.Object as GObject.Object
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMEvent as WebKit2WebExtension.DOMEvent
newtype DOMEventTarget = DOMEventTarget (ManagedPtr DOMEventTarget)
deriving (DOMEventTarget -> DOMEventTarget -> Bool
(DOMEventTarget -> DOMEventTarget -> Bool)
-> (DOMEventTarget -> DOMEventTarget -> Bool) -> Eq DOMEventTarget
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DOMEventTarget -> DOMEventTarget -> Bool
$c/= :: DOMEventTarget -> DOMEventTarget -> Bool
== :: DOMEventTarget -> DOMEventTarget -> Bool
$c== :: DOMEventTarget -> DOMEventTarget -> Bool
Eq)
noDOMEventTarget :: Maybe DOMEventTarget
noDOMEventTarget :: Maybe DOMEventTarget
noDOMEventTarget = Maybe DOMEventTarget
forall a. Maybe a
Nothing
#if defined(ENABLE_OVERLOADING)
type instance O.SignalList DOMEventTarget = DOMEventTargetSignalList
type DOMEventTargetSignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)])
#endif
foreign import ccall "webkit_dom_event_target_get_type"
c_webkit_dom_event_target_get_type :: IO GType
instance GObject DOMEventTarget where
gobjectType :: IO GType
gobjectType = IO GType
c_webkit_dom_event_target_get_type
instance B.GValue.IsGValue DOMEventTarget where
toGValue :: DOMEventTarget -> IO GValue
toGValue o :: DOMEventTarget
o = do
GType
gtype <- IO GType
c_webkit_dom_event_target_get_type
DOMEventTarget -> (Ptr DOMEventTarget -> IO GValue) -> IO GValue
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr DOMEventTarget
o (GType
-> (GValue -> Ptr DOMEventTarget -> IO ())
-> Ptr DOMEventTarget
-> IO GValue
forall a. GType -> (GValue -> a -> IO ()) -> a -> IO GValue
B.GValue.buildGValue GType
gtype GValue -> Ptr DOMEventTarget -> IO ()
forall a. GObject a => GValue -> Ptr a -> IO ()
B.GValue.set_object)
fromGValue :: GValue -> IO DOMEventTarget
fromGValue gv :: GValue
gv = do
Ptr DOMEventTarget
ptr <- GValue -> IO (Ptr DOMEventTarget)
forall b. GObject b => GValue -> IO (Ptr b)
B.GValue.get_object GValue
gv :: IO (Ptr DOMEventTarget)
(ManagedPtr DOMEventTarget -> DOMEventTarget)
-> Ptr DOMEventTarget -> IO DOMEventTarget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
B.ManagedPtr.newObject ManagedPtr DOMEventTarget -> DOMEventTarget
DOMEventTarget Ptr DOMEventTarget
ptr
class (GObject o, O.IsDescendantOf DOMEventTarget o) => IsDOMEventTarget o
instance (GObject o, O.IsDescendantOf DOMEventTarget o) => IsDOMEventTarget o
instance O.HasParentTypes DOMEventTarget
type instance O.ParentTypes DOMEventTarget = '[GObject.Object.Object]
toDOMEventTarget :: (MonadIO m, IsDOMEventTarget o) => o -> m DOMEventTarget
toDOMEventTarget :: o -> m DOMEventTarget
toDOMEventTarget = IO DOMEventTarget -> m DOMEventTarget
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO DOMEventTarget -> m DOMEventTarget)
-> (o -> IO DOMEventTarget) -> o -> m DOMEventTarget
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ManagedPtr DOMEventTarget -> DOMEventTarget)
-> o -> IO DOMEventTarget
forall o o'.
(HasCallStack, GObject o, GObject o') =>
(ManagedPtr o' -> o') -> o -> IO o'
unsafeCastTo ManagedPtr DOMEventTarget -> DOMEventTarget
DOMEventTarget
#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList DOMEventTarget
type instance O.AttributeList DOMEventTarget = DOMEventTargetAttributeList
type DOMEventTargetAttributeList = ('[ ] :: [(Symbol, *)])
#endif
#if defined(ENABLE_OVERLOADING)
#endif
#if defined(ENABLE_OVERLOADING)
type family ResolveDOMEventTargetMethod (t :: Symbol) (o :: *) :: * where
ResolveDOMEventTargetMethod "addEventListener" o = DOMEventTargetAddEventListenerMethodInfo
ResolveDOMEventTargetMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
ResolveDOMEventTargetMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
ResolveDOMEventTargetMethod "dispatchEvent" o = DOMEventTargetDispatchEventMethodInfo
ResolveDOMEventTargetMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
ResolveDOMEventTargetMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
ResolveDOMEventTargetMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
ResolveDOMEventTargetMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
ResolveDOMEventTargetMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
ResolveDOMEventTargetMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
ResolveDOMEventTargetMethod "ref" o = GObject.Object.ObjectRefMethodInfo
ResolveDOMEventTargetMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
ResolveDOMEventTargetMethod "removeEventListener" o = DOMEventTargetRemoveEventListenerMethodInfo
ResolveDOMEventTargetMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
ResolveDOMEventTargetMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
ResolveDOMEventTargetMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
ResolveDOMEventTargetMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
ResolveDOMEventTargetMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
ResolveDOMEventTargetMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
ResolveDOMEventTargetMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
ResolveDOMEventTargetMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
ResolveDOMEventTargetMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
ResolveDOMEventTargetMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
ResolveDOMEventTargetMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
ResolveDOMEventTargetMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
ResolveDOMEventTargetMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveDOMEventTargetMethod t DOMEventTarget, O.MethodInfo info DOMEventTarget p) => OL.IsLabel t (DOMEventTarget -> p) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.overloadedMethod @info
#else
fromLabel _ = O.overloadedMethod @info
#endif
#endif
foreign import ccall "webkit_dom_event_target_add_event_listener_with_closure" webkit_dom_event_target_add_event_listener_with_closure ::
Ptr DOMEventTarget ->
CString ->
Ptr (GClosure ()) ->
CInt ->
IO CInt
{-# DEPRECATED dOMEventTargetAddEventListener ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
dOMEventTargetAddEventListener ::
(B.CallStack.HasCallStack, MonadIO m, IsDOMEventTarget a) =>
a
-> T.Text
-> GClosure b
-> Bool
-> m Bool
dOMEventTargetAddEventListener :: a -> Text -> GClosure b -> Bool -> m Bool
dOMEventTargetAddEventListener target :: a
target eventName :: Text
eventName handler :: GClosure b
handler useCapture :: Bool
useCapture = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
Ptr DOMEventTarget
target' <- a -> IO (Ptr DOMEventTarget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
target
CString
eventName' <- Text -> IO CString
textToCString Text
eventName
Ptr (GClosure ())
handler' <- GClosure b -> IO (Ptr (GClosure ()))
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr GClosure b
handler
let useCapture' :: CInt
useCapture' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
useCapture
CInt
result <- Ptr DOMEventTarget
-> CString -> Ptr (GClosure ()) -> CInt -> IO CInt
webkit_dom_event_target_add_event_listener_with_closure Ptr DOMEventTarget
target' CString
eventName' Ptr (GClosure ())
handler' CInt
useCapture'
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
target
GClosure b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr GClosure b
handler
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
eventName'
Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'
#if defined(ENABLE_OVERLOADING)
data DOMEventTargetAddEventListenerMethodInfo
instance (signature ~ (T.Text -> GClosure b -> Bool -> m Bool), MonadIO m, IsDOMEventTarget a) => O.MethodInfo DOMEventTargetAddEventListenerMethodInfo a signature where
overloadedMethod = dOMEventTargetAddEventListener
#endif
foreign import ccall "webkit_dom_event_target_dispatch_event" webkit_dom_event_target_dispatch_event ::
Ptr DOMEventTarget ->
Ptr WebKit2WebExtension.DOMEvent.DOMEvent ->
Ptr (Ptr GError) ->
IO CInt
{-# DEPRECATED dOMEventTargetDispatchEvent ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
dOMEventTargetDispatchEvent ::
(B.CallStack.HasCallStack, MonadIO m, IsDOMEventTarget a, WebKit2WebExtension.DOMEvent.IsDOMEvent b) =>
a
-> b
-> m ()
dOMEventTargetDispatchEvent :: a -> b -> m ()
dOMEventTargetDispatchEvent target :: a
target event :: b
event = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr DOMEventTarget
target' <- a -> IO (Ptr DOMEventTarget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
target
Ptr DOMEvent
event' <- b -> IO (Ptr DOMEvent)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
event
IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO a
onException (do
CInt
_ <- (Ptr (Ptr GError) -> IO CInt) -> IO CInt
forall a. (Ptr (Ptr GError) -> IO a) -> IO a
propagateGError ((Ptr (Ptr GError) -> IO CInt) -> IO CInt)
-> (Ptr (Ptr GError) -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ Ptr DOMEventTarget -> Ptr DOMEvent -> Ptr (Ptr GError) -> IO CInt
webkit_dom_event_target_dispatch_event Ptr DOMEventTarget
target' Ptr DOMEvent
event'
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
target
b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
event
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
) (do
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
)
#if defined(ENABLE_OVERLOADING)
data DOMEventTargetDispatchEventMethodInfo
instance (signature ~ (b -> m ()), MonadIO m, IsDOMEventTarget a, WebKit2WebExtension.DOMEvent.IsDOMEvent b) => O.MethodInfo DOMEventTargetDispatchEventMethodInfo a signature where
overloadedMethod = dOMEventTargetDispatchEvent
#endif
foreign import ccall "webkit_dom_event_target_remove_event_listener_with_closure" webkit_dom_event_target_remove_event_listener_with_closure ::
Ptr DOMEventTarget ->
CString ->
Ptr (GClosure ()) ->
CInt ->
IO CInt
{-# DEPRECATED dOMEventTargetRemoveEventListener ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
dOMEventTargetRemoveEventListener ::
(B.CallStack.HasCallStack, MonadIO m, IsDOMEventTarget a) =>
a
-> T.Text
-> GClosure b
-> Bool
-> m Bool
dOMEventTargetRemoveEventListener :: a -> Text -> GClosure b -> Bool -> m Bool
dOMEventTargetRemoveEventListener target :: a
target eventName :: Text
eventName handler :: GClosure b
handler useCapture :: Bool
useCapture = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
Ptr DOMEventTarget
target' <- a -> IO (Ptr DOMEventTarget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
target
CString
eventName' <- Text -> IO CString
textToCString Text
eventName
Ptr (GClosure ())
handler' <- GClosure b -> IO (Ptr (GClosure ()))
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr GClosure b
handler
let useCapture' :: CInt
useCapture' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
useCapture
CInt
result <- Ptr DOMEventTarget
-> CString -> Ptr (GClosure ()) -> CInt -> IO CInt
webkit_dom_event_target_remove_event_listener_with_closure Ptr DOMEventTarget
target' CString
eventName' Ptr (GClosure ())
handler' CInt
useCapture'
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
target
GClosure b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr GClosure b
handler
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
eventName'
Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'
#if defined(ENABLE_OVERLOADING)
data DOMEventTargetRemoveEventListenerMethodInfo
instance (signature ~ (T.Text -> GClosure b -> Bool -> m Bool), MonadIO m, IsDOMEventTarget a) => O.MethodInfo DOMEventTargetRemoveEventListenerMethodInfo a signature where
overloadedMethod = dOMEventTargetRemoveEventListener
#endif