{-# LANGUAGE TypeApplications #-}
#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif
module GI.WebKit2WebExtension.Interfaces.DOMEventTarget
(
DOMEventTarget(..) ,
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.BasicTypes as B.Types
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GArray as B.GArray
import qualified Data.GI.Base.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GHashTable as B.GHT
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 Control.Monad.IO.Class as MIO
import qualified Data.Coerce as Coerce
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 GHC.Records as R
import qualified GI.GObject.Objects.Object as GObject.Object
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMEvent as WebKit2WebExtension.DOMEvent
newtype DOMEventTarget = DOMEventTarget (SP.ManagedPtr DOMEventTarget)
deriving (DOMEventTarget -> DOMEventTarget -> Bool
(DOMEventTarget -> DOMEventTarget -> Bool)
-> (DOMEventTarget -> DOMEventTarget -> Bool) -> Eq DOMEventTarget
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: DOMEventTarget -> DOMEventTarget -> Bool
== :: DOMEventTarget -> DOMEventTarget -> Bool
$c/= :: DOMEventTarget -> DOMEventTarget -> Bool
/= :: DOMEventTarget -> DOMEventTarget -> Bool
Eq)
instance SP.ManagedPtrNewtype DOMEventTarget where
toManagedPtr :: DOMEventTarget -> ManagedPtr DOMEventTarget
toManagedPtr (DOMEventTarget ManagedPtr DOMEventTarget
p) = ManagedPtr DOMEventTarget
p
foreign import ccall "webkit_dom_event_target_get_type"
c_webkit_dom_event_target_get_type :: IO B.Types.GType
instance B.Types.TypedObject DOMEventTarget where
glibType :: IO GType
glibType = IO GType
c_webkit_dom_event_target_get_type
instance B.Types.GObject DOMEventTarget
class (SP.GObject o, O.IsDescendantOf DOMEventTarget o) => IsDOMEventTarget o
instance (SP.GObject o, O.IsDescendantOf DOMEventTarget o) => IsDOMEventTarget o
instance O.HasParentTypes DOMEventTarget
type instance O.ParentTypes DOMEventTarget = '[GObject.Object.Object]
toDOMEventTarget :: (MIO.MonadIO m, IsDOMEventTarget o) => o -> m DOMEventTarget
toDOMEventTarget :: forall (m :: * -> *) o.
(MonadIO m, IsDOMEventTarget o) =>
o -> m DOMEventTarget
toDOMEventTarget = IO DOMEventTarget -> m DOMEventTarget
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.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, ManagedPtrNewtype o, TypedObject o,
ManagedPtrNewtype o', TypedObject o') =>
(ManagedPtr o' -> o') -> o -> IO o'
B.ManagedPtr.unsafeCastTo ManagedPtr DOMEventTarget -> DOMEventTarget
DOMEventTarget
instance B.GValue.IsGValue (Maybe DOMEventTarget) where
gvalueGType_ :: IO GType
gvalueGType_ = IO GType
c_webkit_dom_event_target_get_type
gvalueSet_ :: Ptr GValue -> Maybe DOMEventTarget -> IO ()
gvalueSet_ Ptr GValue
gv Maybe DOMEventTarget
P.Nothing = Ptr GValue -> Ptr DOMEventTarget -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv (Ptr DOMEventTarget
forall a. Ptr a
FP.nullPtr :: FP.Ptr DOMEventTarget)
gvalueSet_ Ptr GValue
gv (P.Just DOMEventTarget
obj) = DOMEventTarget -> (Ptr DOMEventTarget -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr DOMEventTarget
obj (Ptr GValue -> Ptr DOMEventTarget -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv)
gvalueGet_ :: Ptr GValue -> IO (Maybe DOMEventTarget)
gvalueGet_ Ptr GValue
gv = do
Ptr DOMEventTarget
ptr <- Ptr GValue -> IO (Ptr DOMEventTarget)
forall a. GObject a => Ptr GValue -> IO (Ptr a)
B.GValue.get_object Ptr GValue
gv :: IO (FP.Ptr DOMEventTarget)
if Ptr DOMEventTarget
ptr Ptr DOMEventTarget -> Ptr DOMEventTarget -> Bool
forall a. Eq a => a -> a -> Bool
/= Ptr DOMEventTarget
forall a. Ptr a
FP.nullPtr
then DOMEventTarget -> Maybe DOMEventTarget
forall a. a -> Maybe a
P.Just (DOMEventTarget -> Maybe DOMEventTarget)
-> IO DOMEventTarget -> IO (Maybe DOMEventTarget)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (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
else Maybe DOMEventTarget -> IO (Maybe DOMEventTarget)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe DOMEventTarget
forall a. Maybe a
P.Nothing
#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.OverloadedMethod 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
#if MIN_VERSION_base(4,13,0)
instance (info ~ ResolveDOMEventTargetMethod t DOMEventTarget, O.OverloadedMethod info DOMEventTarget p, R.HasField t DOMEventTarget p) => R.HasField t DOMEventTarget p where
getField = O.overloadedMethod @info
#endif
instance (info ~ ResolveDOMEventTargetMethod t DOMEventTarget, O.OverloadedMethodInfo info DOMEventTarget) => OL.IsLabel t (O.MethodProxy info DOMEventTarget) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.MethodProxy
#else
fromLabel _ = O.MethodProxy
#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 :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsDOMEventTarget a) =>
a -> Text -> GClosure b -> Bool -> m Bool
dOMEventTargetAddEventListener a
target Text
eventName GClosure b
handler Bool
useCapture = IO Bool -> m Bool
forall a. IO a -> m a
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
/= CInt
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 a. a -> IO a
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.OverloadedMethod DOMEventTargetAddEventListenerMethodInfo a signature where
overloadedMethod = dOMEventTargetAddEventListener
instance O.OverloadedMethodInfo DOMEventTargetAddEventListenerMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.WebKit2WebExtension.Interfaces.DOMEventTarget.dOMEventTargetAddEventListener",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-webkit2webextension-4.0.28/docs/GI-WebKit2WebExtension-Interfaces-DOMEventTarget.html#v: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 :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsDOMEventTarget a, IsDOMEvent b) =>
a -> b -> m ()
dOMEventTargetDispatchEvent a
target b
event = IO () -> m ()
forall a. IO a -> m a
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 a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()
) (do
() -> IO ()
forall a. a -> IO a
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.OverloadedMethod DOMEventTargetDispatchEventMethodInfo a signature where
overloadedMethod = dOMEventTargetDispatchEvent
instance O.OverloadedMethodInfo DOMEventTargetDispatchEventMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.WebKit2WebExtension.Interfaces.DOMEventTarget.dOMEventTargetDispatchEvent",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-webkit2webextension-4.0.28/docs/GI-WebKit2WebExtension-Interfaces-DOMEventTarget.html#v: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 :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsDOMEventTarget a) =>
a -> Text -> GClosure b -> Bool -> m Bool
dOMEventTargetRemoveEventListener a
target Text
eventName GClosure b
handler Bool
useCapture = IO Bool -> m Bool
forall a. IO a -> m a
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
/= CInt
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 a. a -> IO a
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.OverloadedMethod DOMEventTargetRemoveEventListenerMethodInfo a signature where
overloadedMethod = dOMEventTargetRemoveEventListener
instance O.OverloadedMethodInfo DOMEventTargetRemoveEventListenerMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.WebKit2WebExtension.Interfaces.DOMEventTarget.dOMEventTargetRemoveEventListener",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-webkit2webextension-4.0.28/docs/GI-WebKit2WebExtension-Interfaces-DOMEventTarget.html#v:dOMEventTargetRemoveEventListener"
})
#endif
#if defined(ENABLE_OVERLOADING)
type instance O.SignalList DOMEventTarget = DOMEventTargetSignalList
type DOMEventTargetSignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)])
#endif