{- | 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 #PangoCoverage structure represents a map from Unicode characters to #PangoCoverageLevel. It is an opaque structure with no public fields. -} module GI.Pango.Structs.Coverage ( -- * Exported types Coverage(..) , noCoverage , -- * Methods -- ** coverageGet coverageGet , -- ** coverageMax coverageMax , -- ** coverageSet coverageSet , -- ** coverageToBytes coverageToBytes , -- ** coverageUnref coverageUnref , ) 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.Pango.Types import GI.Pango.Callbacks newtype Coverage = Coverage (ForeignPtr Coverage) noCoverage :: Maybe Coverage noCoverage = Nothing -- method Coverage::get -- method type : OrdinaryMethod -- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Coverage", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "index_", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- Lengths : [] -- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Coverage", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "index_", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- returnType : TInterface "Pango" "CoverageLevel" -- throws : False -- Skip return : False foreign import ccall "pango_coverage_get" pango_coverage_get :: Ptr Coverage -> -- _obj : TInterface "Pango" "Coverage" Int32 -> -- index_ : TBasicType TInt32 IO CUInt coverageGet :: (MonadIO m) => Coverage -> -- _obj Int32 -> -- index_ m CoverageLevel coverageGet _obj index_ = liftIO $ do let _obj' = unsafeManagedPtrGetPtr _obj result <- pango_coverage_get _obj' index_ let result' = (toEnum . fromIntegral) result touchManagedPtr _obj return result' -- method Coverage::max -- method type : OrdinaryMethod -- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Coverage", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "other", argType = TInterface "Pango" "Coverage", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- Lengths : [] -- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Coverage", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "other", argType = TInterface "Pango" "Coverage", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- returnType : TBasicType TVoid -- throws : False -- Skip return : False foreign import ccall "pango_coverage_max" pango_coverage_max :: Ptr Coverage -> -- _obj : TInterface "Pango" "Coverage" Ptr Coverage -> -- other : TInterface "Pango" "Coverage" IO () coverageMax :: (MonadIO m) => Coverage -> -- _obj Coverage -> -- other m () coverageMax _obj other = liftIO $ do let _obj' = unsafeManagedPtrGetPtr _obj let other' = unsafeManagedPtrGetPtr other pango_coverage_max _obj' other' touchManagedPtr _obj touchManagedPtr other return () -- method Coverage::set -- method type : OrdinaryMethod -- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Coverage", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "index_", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "level", argType = TInterface "Pango" "CoverageLevel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- Lengths : [] -- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Coverage", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "index_", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "level", argType = TInterface "Pango" "CoverageLevel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- returnType : TBasicType TVoid -- throws : False -- Skip return : False foreign import ccall "pango_coverage_set" pango_coverage_set :: Ptr Coverage -> -- _obj : TInterface "Pango" "Coverage" Int32 -> -- index_ : TBasicType TInt32 CUInt -> -- level : TInterface "Pango" "CoverageLevel" IO () coverageSet :: (MonadIO m) => Coverage -> -- _obj Int32 -> -- index_ CoverageLevel -> -- level m () coverageSet _obj index_ level = liftIO $ do let _obj' = unsafeManagedPtrGetPtr _obj let level' = (fromIntegral . fromEnum) level pango_coverage_set _obj' index_ level' touchManagedPtr _obj return () -- method Coverage::to_bytes -- method type : OrdinaryMethod -- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Coverage", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "bytes", argType = TCArray False (-1) 2 (TBasicType TUInt8), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "n_bytes", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}] -- Lengths : [Arg {argName = "n_bytes", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}] -- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Coverage", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- returnType : TBasicType TVoid -- throws : False -- Skip return : False foreign import ccall "pango_coverage_to_bytes" pango_coverage_to_bytes :: Ptr Coverage -> -- _obj : TInterface "Pango" "Coverage" Ptr (Ptr Word8) -> -- bytes : TCArray False (-1) 2 (TBasicType TUInt8) Ptr Int32 -> -- n_bytes : TBasicType TInt32 IO () coverageToBytes :: (MonadIO m) => Coverage -> -- _obj m (ByteString) coverageToBytes _obj = liftIO $ do let _obj' = unsafeManagedPtrGetPtr _obj bytes <- allocMem :: IO (Ptr (Ptr Word8)) n_bytes <- allocMem :: IO (Ptr Int32) pango_coverage_to_bytes _obj' bytes n_bytes n_bytes' <- peek n_bytes bytes' <- peek bytes bytes'' <- (unpackByteStringWithLength n_bytes') bytes' freeMem bytes' touchManagedPtr _obj freeMem bytes freeMem n_bytes return bytes'' -- method Coverage::unref -- method type : OrdinaryMethod -- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Coverage", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- Lengths : [] -- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Coverage", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- returnType : TBasicType TVoid -- throws : False -- Skip return : False foreign import ccall "pango_coverage_unref" pango_coverage_unref :: Ptr Coverage -> -- _obj : TInterface "Pango" "Coverage" IO () coverageUnref :: (MonadIO m) => Coverage -> -- _obj m () coverageUnref _obj = liftIO $ do let _obj' = unsafeManagedPtrGetPtr _obj pango_coverage_unref _obj' touchManagedPtr _obj return ()