{- | 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.Callbacks ( -- * Signals -- ** WebExtensionInitializeFunction WebExtensionInitializeFunction , WebExtensionInitializeFunctionC , mkWebExtensionInitializeFunction , noWebExtensionInitializeFunction , webExtensionInitializeFunctionClosure , webExtensionInitializeFunctionWrapper , -- ** WebExtensionInitializeWithUserDataFunction WebExtensionInitializeWithUserDataFunction, WebExtensionInitializeWithUserDataFunctionC, mkWebExtensionInitializeWithUserDataFunction, noWebExtensionInitializeWithUserDataFunction, webExtensionInitializeWithUserDataFunctionClosure, webExtensionInitializeWithUserDataFunctionWrapper, ) 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 -- callback WebExtensionInitializeWithUserDataFunction webExtensionInitializeWithUserDataFunctionClosure :: WebExtensionInitializeWithUserDataFunction -> IO Closure webExtensionInitializeWithUserDataFunctionClosure cb = newCClosure =<< mkWebExtensionInitializeWithUserDataFunction wrapped where wrapped = webExtensionInitializeWithUserDataFunctionWrapper Nothing cb type WebExtensionInitializeWithUserDataFunctionC = Ptr WebExtension -> Ptr GVariant -> IO () foreign import ccall "wrapper" mkWebExtensionInitializeWithUserDataFunction :: WebExtensionInitializeWithUserDataFunctionC -> IO (FunPtr WebExtensionInitializeWithUserDataFunctionC) type WebExtensionInitializeWithUserDataFunction = WebExtension -> GVariant -> IO () noWebExtensionInitializeWithUserDataFunction :: Maybe WebExtensionInitializeWithUserDataFunction noWebExtensionInitializeWithUserDataFunction = Nothing webExtensionInitializeWithUserDataFunctionWrapper :: Maybe (Ptr (FunPtr (WebExtensionInitializeWithUserDataFunctionC))) -> WebExtensionInitializeWithUserDataFunction -> Ptr WebExtension -> Ptr GVariant -> IO () webExtensionInitializeWithUserDataFunctionWrapper funptrptr _cb extension user_data = do extension' <- (newObject WebExtension) extension user_data' <- newGVariantFromPtr user_data _cb extension' user_data' maybeReleaseFunPtr funptrptr -- callback WebExtensionInitializeFunction webExtensionInitializeFunctionClosure :: WebExtensionInitializeFunction -> IO Closure webExtensionInitializeFunctionClosure cb = newCClosure =<< mkWebExtensionInitializeFunction wrapped where wrapped = webExtensionInitializeFunctionWrapper Nothing cb type WebExtensionInitializeFunctionC = Ptr WebExtension -> IO () foreign import ccall "wrapper" mkWebExtensionInitializeFunction :: WebExtensionInitializeFunctionC -> IO (FunPtr WebExtensionInitializeFunctionC) type WebExtensionInitializeFunction = WebExtension -> IO () noWebExtensionInitializeFunction :: Maybe WebExtensionInitializeFunction noWebExtensionInitializeFunction = Nothing webExtensionInitializeFunctionWrapper :: Maybe (Ptr (FunPtr (WebExtensionInitializeFunctionC))) -> WebExtensionInitializeFunction -> Ptr WebExtension -> IO () webExtensionInitializeFunctionWrapper funptrptr _cb extension = do extension' <- (newObject WebExtension) extension _cb extension' maybeReleaseFunPtr funptrptr