gi-pango-0.1.38.13: GI/Pango/Structs/Analysis.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 #PangoAnalysis structure stores information about
the properties of a segment of text.
-}
module GI.Pango.Structs.Analysis
(
-- * Exported types
Analysis(..) ,
newZeroAnalysis ,
noAnalysis ,
-- * Properties
-- ** ExtraAttrs
analysisReadExtraAttrs ,
-- ** Flags
analysisReadFlags ,
-- ** Font
analysisReadFont ,
-- ** Gravity
analysisReadGravity ,
-- ** LangEngine
analysisReadLangEngine ,
-- ** Language
analysisReadLanguage ,
-- ** Level
analysisReadLevel ,
-- ** Script
analysisReadScript ,
-- ** ShapeEngine
analysisReadShapeEngine ,
) 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 Analysis = Analysis (ForeignPtr Analysis)
-- | Construct a `Analysis` struct initialized to zero.
newZeroAnalysis :: MonadIO m => m Analysis
newZeroAnalysis = liftIO $ callocBytes 48 >>= wrapPtr Analysis
noAnalysis :: Maybe Analysis
noAnalysis = Nothing
analysisReadShapeEngine :: Analysis -> IO EngineShape
analysisReadShapeEngine s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 0) :: IO (Ptr EngineShape)
val' <- (newObject EngineShape) val
return val'
analysisReadLangEngine :: Analysis -> IO EngineLang
analysisReadLangEngine s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 8) :: IO (Ptr EngineLang)
val' <- (newObject EngineLang) val
return val'
analysisReadFont :: Analysis -> IO Font
analysisReadFont s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 16) :: IO (Ptr Font)
val' <- (newObject Font) val
return val'
analysisReadLevel :: Analysis -> IO Word8
analysisReadLevel s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 24) :: IO Word8
return val
analysisReadGravity :: Analysis -> IO Word8
analysisReadGravity s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 25) :: IO Word8
return val
analysisReadFlags :: Analysis -> IO Word8
analysisReadFlags s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 26) :: IO Word8
return val
analysisReadScript :: Analysis -> IO Word8
analysisReadScript s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 27) :: IO Word8
return val
analysisReadLanguage :: Analysis -> IO Language
analysisReadLanguage s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 32) :: IO (Ptr Language)
val' <- (newBoxed Language) val
return val'
analysisReadExtraAttrs :: Analysis -> IO ([Ptr ()])
analysisReadExtraAttrs s = withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 40) :: IO (Ptr (GSList (Ptr ())))
val' <- unpackGSList val
return val'
type family ResolveAnalysisMethod (t :: Symbol) (o :: *) :: * where
ResolveAnalysisMethod l o = MethodResolutionFailed l o
instance (info ~ ResolveAnalysisMethod t Analysis, MethodInfo info Analysis p) => IsLabelProxy t (Analysis -> p) where
fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveAnalysisMethod t Analysis, MethodInfo info Analysis p) => IsLabel t (Analysis -> p) where
fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
#endif