gi-pango-0.1.36.12: GI/Pango/Structs/Attribute.hs
{- |
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 #PangoAttribute structure represents the common portions of all
attributes. Particular types of attributes include this structure
as their initial portion. The common portion of the attribute holds
the range to which the value in the type-specific part of the attribute
applies and should be initialized using pango_attribute_init().
By default an attribute will have an all-inclusive range of [0,%G_MAXUINT].
-}
module GI.Pango.Structs.Attribute
(
-- * Exported types
Attribute(..) ,
noAttribute ,
-- * Methods
-- ** attributeDestroy
attributeDestroy ,
-- ** attributeEqual
attributeEqual ,
-- ** attributeInit
attributeInit ,
-- * Properties
-- ** EndIndex
attributeReadEndIndex ,
-- ** Klass
attributeReadKlass ,
-- ** StartIndex
attributeReadStartIndex ,
) 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 Attribute = Attribute (ForeignPtr Attribute)
noAttribute :: Maybe Attribute
noAttribute = Nothing
attributeReadKlass :: Attribute -> IO AttrClass
attributeReadKlass s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 0) :: IO (Ptr AttrClass)
val' <- (newPtr 32 AttrClass) val
return val'
attributeReadStartIndex :: Attribute -> IO Word32
attributeReadStartIndex s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 8) :: IO Word32
return val
attributeReadEndIndex :: Attribute -> IO Word32
attributeReadEndIndex s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 12) :: IO Word32
return val
-- method Attribute::destroy
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Attribute", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Attribute", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False
foreign import ccall "pango_attribute_destroy" pango_attribute_destroy ::
Ptr Attribute -> -- _obj : TInterface "Pango" "Attribute"
IO ()
attributeDestroy ::
(MonadIO m) =>
Attribute -> -- _obj
m ()
attributeDestroy _obj = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
pango_attribute_destroy _obj'
touchManagedPtr _obj
return ()
-- method Attribute::equal
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Attribute", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "attr2", argType = TInterface "Pango" "Attribute", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Attribute", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "attr2", argType = TInterface "Pango" "Attribute", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False
foreign import ccall "pango_attribute_equal" pango_attribute_equal ::
Ptr Attribute -> -- _obj : TInterface "Pango" "Attribute"
Ptr Attribute -> -- attr2 : TInterface "Pango" "Attribute"
IO CInt
attributeEqual ::
(MonadIO m) =>
Attribute -> -- _obj
Attribute -> -- attr2
m Bool
attributeEqual _obj attr2 = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
let attr2' = unsafeManagedPtrGetPtr attr2
result <- pango_attribute_equal _obj' attr2'
let result' = (/= 0) result
touchManagedPtr _obj
touchManagedPtr attr2
return result'
-- method Attribute::init
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Pango" "Attribute", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "klass", argType = TInterface "Pango" "AttrClass", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Pango" "Attribute", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "klass", argType = TInterface "Pango" "AttrClass", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False
foreign import ccall "pango_attribute_init" pango_attribute_init ::
Ptr Attribute -> -- _obj : TInterface "Pango" "Attribute"
Ptr AttrClass -> -- klass : TInterface "Pango" "AttrClass"
IO ()
attributeInit ::
(MonadIO m) =>
Attribute -> -- _obj
AttrClass -> -- klass
m ()
attributeInit _obj klass = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
let klass' = unsafeManagedPtrGetPtr klass
pango_attribute_init _obj' klass'
touchManagedPtr _obj
touchManagedPtr klass
return ()