{- | Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte License : LGPL-2.1 Maintainer : Iñaki García Etxebarria (garetxe@gmail.com) The #GHook struct represents a single hook function in a #GHookList. -} module GI.GLib.Structs.Hook ( -- * Exported types Hook(..) , noHook , -- * Methods -- ** hookCompareIds hookCompareIds , -- * Properties -- ** Data hookReadData , -- ** Flags hookReadFlags , -- ** Func hookReadFunc , -- ** HookId hookReadHookId , -- ** Next hookReadNext , -- ** Prev hookReadPrev , -- ** RefCount hookReadRefCount , ) 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.GLib.Types import GI.GLib.Callbacks newtype Hook = Hook (ForeignPtr Hook) noHook :: Maybe Hook noHook = Nothing hookReadData :: Hook -> IO (Ptr ()) hookReadData s = withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 0) :: IO (Ptr ()) return val hookReadNext :: Hook -> IO Hook hookReadNext s = withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 8) :: IO (Ptr Hook) val' <- (newPtr 64 Hook) val return val' hookReadPrev :: Hook -> IO Hook hookReadPrev s = withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 16) :: IO (Ptr Hook) val' <- (newPtr 64 Hook) val return val' hookReadRefCount :: Hook -> IO Word32 hookReadRefCount s = withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 24) :: IO Word32 return val hookReadHookId :: Hook -> IO Word64 hookReadHookId s = withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 32) :: IO Word64 return val hookReadFlags :: Hook -> IO Word32 hookReadFlags s = withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 40) :: IO Word32 return val hookReadFunc :: Hook -> IO (Ptr ()) hookReadFunc s = withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 48) :: IO (Ptr ()) return val -- XXX Skipped getter for "Hook:destroy" :: Not implemented: "Wrapping foreign callbacks is not supported yet" -- method Hook::compare_ids -- method type : OrdinaryMethod -- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Hook", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "sibling", argType = TInterface "GLib" "Hook", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- Lengths : [] -- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Hook", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "sibling", argType = TInterface "GLib" "Hook", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- returnType : TBasicType TInt32 -- throws : False -- Skip return : False foreign import ccall "g_hook_compare_ids" g_hook_compare_ids :: Ptr Hook -> -- _obj : TInterface "GLib" "Hook" Ptr Hook -> -- sibling : TInterface "GLib" "Hook" IO Int32 hookCompareIds :: (MonadIO m) => Hook -> -- _obj Hook -> -- sibling m Int32 hookCompareIds _obj sibling = liftIO $ do let _obj' = unsafeManagedPtrGetPtr _obj let sibling' = unsafeManagedPtrGetPtr sibling result <- g_hook_compare_ids _obj' sibling' touchManagedPtr _obj touchManagedPtr sibling return result