{- | Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte License : LGPL-2.1 Maintainer : Iñaki García Etxebarria (garetxe@gmail.com) -} #define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \ && !defined(__HADDOCK_VERSION__)) module GI.WebKit2WebExtension.Callbacks ( -- * Signals -- ** WebExtensionInitializeFunction #signal:WebExtensionInitializeFunction# C_WebExtensionInitializeFunction , WebExtensionInitializeFunction , dynamic_WebExtensionInitializeFunction , genClosure_WebExtensionInitializeFunction, mk_WebExtensionInitializeFunction , noWebExtensionInitializeFunction , wrap_WebExtensionInitializeFunction , -- ** WebExtensionInitializeWithUserDataFunction #signal:WebExtensionInitializeWithUserDataFunction# C_WebExtensionInitializeWithUserDataFunction, WebExtensionInitializeWithUserDataFunction, dynamic_WebExtensionInitializeWithUserDataFunction, genClosure_WebExtensionInitializeWithUserDataFunction, mk_WebExtensionInitializeWithUserDataFunction, noWebExtensionInitializeWithUserDataFunction, wrap_WebExtensionInitializeWithUserDataFunction, ) 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.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.Text as T import qualified Data.ByteString.Char8 as B import qualified Data.Map as Map import qualified Foreign.Ptr as FP import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.WebExtension as WebKit2WebExtension.WebExtension -- callback WebExtensionInitializeWithUserDataFunction -- -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "extension", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "WebExtension"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #WebKitWebExtension", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TVariant, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GVariant", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Just "Type definition for a function that will be called to initialize\nthe web extensions when the web process starts, and which receives\nas additional argument the user data set with\nwebkit_web_context_set_web_extensions_initialization_user_data().", sinceVersion = Just "2.4"}} -- | Type for the callback on the (unwrapped) C side. type C_WebExtensionInitializeWithUserDataFunction = Ptr WebKit2WebExtension.WebExtension.WebExtension -> Ptr GVariant -> IO () -- Args : [Arg {argCName = "extension", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "WebExtension"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #WebKitWebExtension", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TVariant, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GVariant", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Nothing -- throws : False -- Skip return : False foreign import ccall "dynamic" __dynamic_C_WebExtensionInitializeWithUserDataFunction :: FunPtr C_WebExtensionInitializeWithUserDataFunction -> C_WebExtensionInitializeWithUserDataFunction -- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell. dynamic_WebExtensionInitializeWithUserDataFunction :: (B.CallStack.HasCallStack, MonadIO m, WebKit2WebExtension.WebExtension.IsWebExtension a) => FunPtr C_WebExtensionInitializeWithUserDataFunction -> a {- ^ /@extension@/: a 'GI.WebKit2WebExtension.Objects.WebExtension.WebExtension' -} -> GVariant {- ^ /@userData@/: a 'GVariant' -} -> m () dynamic_WebExtensionInitializeWithUserDataFunction __funPtr extension userData = liftIO $ do extension' <- unsafeManagedPtrCastPtr extension userData' <- unsafeManagedPtrGetPtr userData (__dynamic_C_WebExtensionInitializeWithUserDataFunction __funPtr) extension' userData' touchManagedPtr extension touchManagedPtr userData return () -- | Generate a function pointer callable from C code, from a `C_WebExtensionInitializeWithUserDataFunction`. foreign import ccall "wrapper" mk_WebExtensionInitializeWithUserDataFunction :: C_WebExtensionInitializeWithUserDataFunction -> IO (FunPtr C_WebExtensionInitializeWithUserDataFunction) {- | Type definition for a function that will be called to initialize the web extensions when the web process starts, and which receives as additional argument the user data set with @/webkit_web_context_set_web_extensions_initialization_user_data()/@. @since 2.4 -} type WebExtensionInitializeWithUserDataFunction = WebKit2WebExtension.WebExtension.WebExtension {- ^ /@extension@/: a 'GI.WebKit2WebExtension.Objects.WebExtension.WebExtension' -} -> GVariant {- ^ /@userData@/: a 'GVariant' -} -> IO () -- | A convenience synonym for @`Nothing` :: `Maybe` `WebExtensionInitializeWithUserDataFunction`@. noWebExtensionInitializeWithUserDataFunction :: Maybe WebExtensionInitializeWithUserDataFunction noWebExtensionInitializeWithUserDataFunction = Nothing -- | Wrap the callback into a `Closure`. genClosure_WebExtensionInitializeWithUserDataFunction :: WebExtensionInitializeWithUserDataFunction -> IO Closure genClosure_WebExtensionInitializeWithUserDataFunction cb = do let cb' = wrap_WebExtensionInitializeWithUserDataFunction Nothing cb mk_WebExtensionInitializeWithUserDataFunction cb' >>= newCClosure -- | Wrap a `WebExtensionInitializeWithUserDataFunction` into a `C_WebExtensionInitializeWithUserDataFunction`. wrap_WebExtensionInitializeWithUserDataFunction :: Maybe (Ptr (FunPtr C_WebExtensionInitializeWithUserDataFunction)) -> WebExtensionInitializeWithUserDataFunction -> C_WebExtensionInitializeWithUserDataFunction wrap_WebExtensionInitializeWithUserDataFunction funptrptr _cb extension userData = do extension' <- (newObject WebKit2WebExtension.WebExtension.WebExtension) extension userData' <- B.GVariant.newGVariantFromPtr userData _cb extension' userData' maybeReleaseFunPtr funptrptr -- callback WebExtensionInitializeFunction -- -> Callable {returnType = Nothing, returnMayBeNull = False, returnTransfer = TransferNothing, returnDocumentation = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, args = [Arg {argCName = "extension", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "WebExtension"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #WebKitWebExtension", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}], skipReturn = False, callableThrows = False, callableDeprecated = Nothing, callableDocumentation = Documentation {rawDocText = Just "Type definition for a function that will be called to initialize\nthe web extension when the web process starts.", sinceVersion = Nothing}} -- | Type for the callback on the (unwrapped) C side. type C_WebExtensionInitializeFunction = Ptr WebKit2WebExtension.WebExtension.WebExtension -> IO () -- Args : [Arg {argCName = "extension", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "WebExtension"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #WebKitWebExtension", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Nothing -- throws : False -- Skip return : False foreign import ccall "dynamic" __dynamic_C_WebExtensionInitializeFunction :: FunPtr C_WebExtensionInitializeFunction -> C_WebExtensionInitializeFunction -- | Given a pointer to a foreign C function, wrap it into a function callable from Haskell. dynamic_WebExtensionInitializeFunction :: (B.CallStack.HasCallStack, MonadIO m, WebKit2WebExtension.WebExtension.IsWebExtension a) => FunPtr C_WebExtensionInitializeFunction -> a {- ^ /@extension@/: a 'GI.WebKit2WebExtension.Objects.WebExtension.WebExtension' -} -> m () dynamic_WebExtensionInitializeFunction __funPtr extension = liftIO $ do extension' <- unsafeManagedPtrCastPtr extension (__dynamic_C_WebExtensionInitializeFunction __funPtr) extension' touchManagedPtr extension return () -- | Generate a function pointer callable from C code, from a `C_WebExtensionInitializeFunction`. foreign import ccall "wrapper" mk_WebExtensionInitializeFunction :: C_WebExtensionInitializeFunction -> IO (FunPtr C_WebExtensionInitializeFunction) {- | Type definition for a function that will be called to initialize the web extension when the web process starts. -} type WebExtensionInitializeFunction = WebKit2WebExtension.WebExtension.WebExtension {- ^ /@extension@/: a 'GI.WebKit2WebExtension.Objects.WebExtension.WebExtension' -} -> IO () -- | A convenience synonym for @`Nothing` :: `Maybe` `WebExtensionInitializeFunction`@. noWebExtensionInitializeFunction :: Maybe WebExtensionInitializeFunction noWebExtensionInitializeFunction = Nothing -- | Wrap the callback into a `Closure`. genClosure_WebExtensionInitializeFunction :: WebExtensionInitializeFunction -> IO Closure genClosure_WebExtensionInitializeFunction cb = do let cb' = wrap_WebExtensionInitializeFunction Nothing cb mk_WebExtensionInitializeFunction cb' >>= newCClosure -- | Wrap a `WebExtensionInitializeFunction` into a `C_WebExtensionInitializeFunction`. wrap_WebExtensionInitializeFunction :: Maybe (Ptr (FunPtr C_WebExtensionInitializeFunction)) -> WebExtensionInitializeFunction -> C_WebExtensionInitializeFunction wrap_WebExtensionInitializeFunction funptrptr _cb extension = do extension' <- (newObject WebKit2WebExtension.WebExtension.WebExtension) extension _cb extension' maybeReleaseFunPtr funptrptr