{-# LINE 2 "./Graphics/Rendering/Pango/Context.chs" #-}
module Graphics.Rendering.Pango.Context (
PangoContext,
PangoContextClass,
contextListFamilies,
contextGetMetrics,
contextSetFontDescription,
contextGetFontDescription,
Language,
emptyLanguage,
languageFromString,
contextSetLanguage,
contextGetLanguage,
contextSetTextDir,
contextGetTextDir,
contextSetTextGravity,
contextGetTextGravity,
contextSetTextGravityHint,
contextGetTextGravityHint,
contextGetMatrix,
contextSetMatrix,
) where
import Control.Monad (liftM)
import System.Glib.FFI
import Graphics.Rendering.Pango.Enums
import Graphics.Rendering.Pango.Structs
import System.Glib.GObject (makeNewGObject)
import Graphics.Rendering.Pango.Types
{-# LINE 82 "./Graphics/Rendering/Pango/Context.chs" #-}
import Graphics.Rendering.Pango.BasicTypes
{-# LINE 83 "./Graphics/Rendering/Pango/Context.chs" #-}
import Graphics.Rendering.Pango.Enums ( FontMetrics(..) )
import Graphics.Rendering.Cairo.Matrix
{-# LINE 85 "./Graphics/Rendering/Pango/Context.chs" #-}
{-# LINE 88 "./Graphics/Rendering/Pango/Context.chs" #-}
contextListFamilies :: PangoContext -> IO [FontFamily]
contextListFamilies :: PangoContext -> IO [FontFamily]
contextListFamilies PangoContext
c = (Ptr CInt -> IO [FontFamily]) -> IO [FontFamily]
forall a b. Storable a => (Ptr a -> IO b) -> IO b
alloca ((Ptr CInt -> IO [FontFamily]) -> IO [FontFamily])
-> (Ptr CInt -> IO [FontFamily]) -> IO [FontFamily]
forall a b. (a -> b) -> a -> b
$ \Ptr CInt
sizePtr -> (Ptr (Ptr FontFamily) -> IO [FontFamily]) -> IO [FontFamily]
forall a b. Storable a => (Ptr a -> IO b) -> IO b
alloca ((Ptr (Ptr FontFamily) -> IO [FontFamily]) -> IO [FontFamily])
-> (Ptr (Ptr FontFamily) -> IO [FontFamily]) -> IO [FontFamily]
forall a b. (a -> b) -> a -> b
$ \Ptr (Ptr FontFamily)
ptrPtr -> do
(\(PangoContext ForeignPtr PangoContext
arg1) Ptr (Ptr FontFamily)
arg2 Ptr CInt
arg3 -> ForeignPtr PangoContext -> (Ptr PangoContext -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr PangoContext
arg1 ((Ptr PangoContext -> IO ()) -> IO ())
-> (Ptr PangoContext -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr PangoContext
argPtr1 ->Ptr PangoContext -> Ptr (Ptr FontFamily) -> Ptr CInt -> IO ()
pango_context_list_families Ptr PangoContext
argPtr1 Ptr (Ptr FontFamily)
arg2 Ptr CInt
arg3) PangoContext
c Ptr (Ptr FontFamily)
ptrPtr Ptr CInt
sizePtr
ptr <- Ptr (Ptr FontFamily) -> IO (Ptr FontFamily)
forall a. Storable a => Ptr a -> IO a
peek Ptr (Ptr FontFamily)
ptrPtr
size <- peek sizePtr
familyPtrs <- peekArray (fromIntegral size) (castPtr ptr)
fams <- mapM (makeNewGObject mkFontFamily . return) familyPtrs
g_free (castPtr ptr)
return fams
contextGetMetrics :: PangoContext -> FontDescription -> Language ->
IO FontMetrics
contextGetMetrics :: PangoContext -> FontDescription -> Language -> IO FontMetrics
contextGetMetrics PangoContext
pc FontDescription
fd Language
l = do
mPtr <- (\(PangoContext ForeignPtr PangoContext
arg1) (FontDescription ForeignPtr FontDescription
arg2) (Language Ptr Language
arg3) -> ForeignPtr PangoContext
-> (Ptr PangoContext -> IO (Ptr ())) -> IO (Ptr ())
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr PangoContext
arg1 ((Ptr PangoContext -> IO (Ptr ())) -> IO (Ptr ()))
-> (Ptr PangoContext -> IO (Ptr ())) -> IO (Ptr ())
forall a b. (a -> b) -> a -> b
$ \Ptr PangoContext
argPtr1 ->ForeignPtr FontDescription
-> (Ptr FontDescription -> IO (Ptr ())) -> IO (Ptr ())
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr FontDescription
arg2 ((Ptr FontDescription -> IO (Ptr ())) -> IO (Ptr ()))
-> (Ptr FontDescription -> IO (Ptr ())) -> IO (Ptr ())
forall a b. (a -> b) -> a -> b
$ \Ptr FontDescription
argPtr2 ->Ptr PangoContext
-> Ptr FontDescription -> Ptr Language -> IO (Ptr ())
pango_context_get_metrics Ptr PangoContext
argPtr1 Ptr FontDescription
argPtr2 Ptr Language
arg3) PangoContext
pc FontDescription
fd Language
l
ascent <- pango_font_metrics_get_ascent mPtr
descent <- pango_font_metrics_get_descent mPtr
approximate_char_width <-
pango_font_metrics_get_approximate_char_width mPtr
approximate_digit_width <-
pango_font_metrics_get_approximate_digit_width mPtr
underline_position <-
pango_font_metrics_get_underline_position mPtr
underline_thickness <-
pango_font_metrics_get_underline_thickness mPtr
strikethrough_position <-
pango_font_metrics_get_strikethrough_position mPtr
strikethrough_thickness <-
pango_font_metrics_get_strikethrough_thickness mPtr
return (FontMetrics
(intToPu ascent)
(intToPu descent)
(intToPu approximate_char_width)
(intToPu approximate_digit_width)
(intToPu underline_thickness)
(intToPu underline_position)
(intToPu strikethrough_thickness)
(intToPu strikethrough_position)
)
contextSetFontDescription :: PangoContext -> FontDescription -> IO ()
contextSetFontDescription :: PangoContext -> FontDescription -> IO ()
contextSetFontDescription PangoContext
pc FontDescription
fd =
(\(PangoContext ForeignPtr PangoContext
arg1) (FontDescription ForeignPtr FontDescription
arg2) -> ForeignPtr PangoContext -> (Ptr PangoContext -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr PangoContext
arg1 ((Ptr PangoContext -> IO ()) -> IO ())
-> (Ptr PangoContext -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr PangoContext
argPtr1 ->ForeignPtr FontDescription
-> (Ptr FontDescription -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr FontDescription
arg2 ((Ptr FontDescription -> IO ()) -> IO ())
-> (Ptr FontDescription -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr FontDescription
argPtr2 ->Ptr PangoContext -> Ptr FontDescription -> IO ()
pango_context_set_font_description Ptr PangoContext
argPtr1 Ptr FontDescription
argPtr2) PangoContext
pc FontDescription
fd
contextGetFontDescription :: PangoContext -> IO FontDescription
contextGetFontDescription :: PangoContext -> IO FontDescription
contextGetFontDescription PangoContext
pc = do
fdPtrConst <- (\(PangoContext ForeignPtr PangoContext
arg1) -> ForeignPtr PangoContext
-> (Ptr PangoContext -> IO (Ptr FontDescription))
-> IO (Ptr FontDescription)
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr PangoContext
arg1 ((Ptr PangoContext -> IO (Ptr FontDescription))
-> IO (Ptr FontDescription))
-> (Ptr PangoContext -> IO (Ptr FontDescription))
-> IO (Ptr FontDescription)
forall a b. (a -> b) -> a -> b
$ \Ptr PangoContext
argPtr1 ->Ptr PangoContext -> IO (Ptr FontDescription)
pango_context_get_font_description Ptr PangoContext
argPtr1) PangoContext
pc
fdPtr <- pango_font_description_copy fdPtrConst
makeNewFontDescription fdPtr
foreign import ccall unsafe "pango_font_description_copy"
pango_font_description_copy :: Ptr FontDescription ->
IO (Ptr FontDescription)
contextSetLanguage :: PangoContext -> Language -> IO ()
contextSetLanguage :: PangoContext -> Language -> IO ()
contextSetLanguage = (\(PangoContext ForeignPtr PangoContext
arg1) (Language Ptr Language
arg2) -> ForeignPtr PangoContext -> (Ptr PangoContext -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr PangoContext
arg1 ((Ptr PangoContext -> IO ()) -> IO ())
-> (Ptr PangoContext -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr PangoContext
argPtr1 ->Ptr PangoContext -> Ptr Language -> IO ()
pango_context_set_language Ptr PangoContext
argPtr1 Ptr Language
arg2)
{-# LINE 163 "./Graphics/Rendering/Pango/Context.chs" #-}
contextGetLanguage :: PangoContext -> IO Language
contextGetLanguage :: PangoContext -> IO Language
contextGetLanguage PangoContext
pc = (Ptr Language -> Language) -> IO (Ptr Language) -> IO Language
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
liftM Ptr Language -> Language
Language (IO (Ptr Language) -> IO Language)
-> IO (Ptr Language) -> IO Language
forall a b. (a -> b) -> a -> b
$
(\(PangoContext ForeignPtr PangoContext
arg1) -> ForeignPtr PangoContext
-> (Ptr PangoContext -> IO (Ptr Language)) -> IO (Ptr Language)
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr PangoContext
arg1 ((Ptr PangoContext -> IO (Ptr Language)) -> IO (Ptr Language))
-> (Ptr PangoContext -> IO (Ptr Language)) -> IO (Ptr Language)
forall a b. (a -> b) -> a -> b
$ \Ptr PangoContext
argPtr1 ->Ptr PangoContext -> IO (Ptr Language)
pango_context_get_language Ptr PangoContext
argPtr1) PangoContext
pc
contextSetTextDir :: PangoContext -> PangoDirection -> IO ()
contextSetTextDir :: PangoContext -> PangoDirection -> IO ()
contextSetTextDir PangoContext
pc PangoDirection
dir =
(\(PangoContext ForeignPtr PangoContext
arg1) CInt
arg2 -> ForeignPtr PangoContext -> (Ptr PangoContext -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr PangoContext
arg1 ((Ptr PangoContext -> IO ()) -> IO ())
-> (Ptr PangoContext -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr PangoContext
argPtr1 ->Ptr PangoContext -> CInt -> IO ()
pango_context_set_base_dir Ptr PangoContext
argPtr1 CInt
arg2) PangoContext
pc (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (PangoDirection -> Int
forall a. Enum a => a -> Int
fromEnum PangoDirection
dir))
contextGetTextDir :: PangoContext -> IO PangoDirection
contextGetTextDir :: PangoContext -> IO PangoDirection
contextGetTextDir PangoContext
pc = (CInt -> PangoDirection) -> IO CInt -> IO PangoDirection
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
liftM (Int -> PangoDirection
forall a. Enum a => Int -> a
toEnum (Int -> PangoDirection) -> (CInt -> Int) -> CInt -> PangoDirection
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral) (IO CInt -> IO PangoDirection) -> IO CInt -> IO PangoDirection
forall a b. (a -> b) -> a -> b
$
(\(PangoContext ForeignPtr PangoContext
arg1) -> ForeignPtr PangoContext -> (Ptr PangoContext -> IO CInt) -> IO CInt
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr PangoContext
arg1 ((Ptr PangoContext -> IO CInt) -> IO CInt)
-> (Ptr PangoContext -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ \Ptr PangoContext
argPtr1 ->Ptr PangoContext -> IO CInt
pango_context_get_base_dir Ptr PangoContext
argPtr1) PangoContext
pc
contextSetTextGravity :: PangoContext -> PangoGravity -> IO ()
contextSetTextGravity :: PangoContext -> PangoGravity -> IO ()
contextSetTextGravity PangoContext
pc PangoGravity
gravity =
(\(PangoContext ForeignPtr PangoContext
arg1) CInt
arg2 -> ForeignPtr PangoContext -> (Ptr PangoContext -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr PangoContext
arg1 ((Ptr PangoContext -> IO ()) -> IO ())
-> (Ptr PangoContext -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr PangoContext
argPtr1 ->Ptr PangoContext -> CInt -> IO ()
pango_context_set_base_gravity Ptr PangoContext
argPtr1 CInt
arg2) PangoContext
pc (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (PangoGravity -> Int
forall a. Enum a => a -> Int
fromEnum PangoGravity
gravity))
contextGetTextGravity :: PangoContext -> IO PangoGravity
contextGetTextGravity :: PangoContext -> IO PangoGravity
contextGetTextGravity PangoContext
pc = (CInt -> PangoGravity) -> IO CInt -> IO PangoGravity
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
liftM (Int -> PangoGravity
forall a. Enum a => Int -> a
toEnum (Int -> PangoGravity) -> (CInt -> Int) -> CInt -> PangoGravity
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral) (IO CInt -> IO PangoGravity) -> IO CInt -> IO PangoGravity
forall a b. (a -> b) -> a -> b
$
(\(PangoContext ForeignPtr PangoContext
arg1) -> ForeignPtr PangoContext -> (Ptr PangoContext -> IO CInt) -> IO CInt
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr PangoContext
arg1 ((Ptr PangoContext -> IO CInt) -> IO CInt)
-> (Ptr PangoContext -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ \Ptr PangoContext
argPtr1 ->Ptr PangoContext -> IO CInt
pango_context_get_base_gravity Ptr PangoContext
argPtr1) PangoContext
pc
contextSetTextGravityHint :: PangoContext -> PangoGravityHint -> IO ()
contextSetTextGravityHint :: PangoContext -> PangoGravityHint -> IO ()
contextSetTextGravityHint PangoContext
pc PangoGravityHint
gravity =
(\(PangoContext ForeignPtr PangoContext
arg1) CInt
arg2 -> ForeignPtr PangoContext -> (Ptr PangoContext -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr PangoContext
arg1 ((Ptr PangoContext -> IO ()) -> IO ())
-> (Ptr PangoContext -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr PangoContext
argPtr1 ->Ptr PangoContext -> CInt -> IO ()
pango_context_set_gravity_hint Ptr PangoContext
argPtr1 CInt
arg2) PangoContext
pc (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (PangoGravityHint -> Int
forall a. Enum a => a -> Int
fromEnum PangoGravityHint
gravity))
contextGetTextGravityHint :: PangoContext -> IO PangoGravityHint
contextGetTextGravityHint :: PangoContext -> IO PangoGravityHint
contextGetTextGravityHint PangoContext
pc = (CInt -> PangoGravityHint) -> IO CInt -> IO PangoGravityHint
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
liftM (Int -> PangoGravityHint
forall a. Enum a => Int -> a
toEnum (Int -> PangoGravityHint)
-> (CInt -> Int) -> CInt -> PangoGravityHint
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral) (IO CInt -> IO PangoGravityHint) -> IO CInt -> IO PangoGravityHint
forall a b. (a -> b) -> a -> b
$
(\(PangoContext ForeignPtr PangoContext
arg1) -> ForeignPtr PangoContext -> (Ptr PangoContext -> IO CInt) -> IO CInt
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr PangoContext
arg1 ((Ptr PangoContext -> IO CInt) -> IO CInt)
-> (Ptr PangoContext -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ \Ptr PangoContext
argPtr1 ->Ptr PangoContext -> IO CInt
pango_context_get_gravity_hint Ptr PangoContext
argPtr1) PangoContext
pc
contextGetMatrix :: PangoContext -> IO Matrix
contextGetMatrix :: PangoContext -> IO Matrix
contextGetMatrix PangoContext
pc = do
matPtr <- (\(PangoContext ForeignPtr PangoContext
arg1) -> ForeignPtr PangoContext
-> (Ptr PangoContext -> IO (Ptr ())) -> IO (Ptr ())
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr PangoContext
arg1 ((Ptr PangoContext -> IO (Ptr ())) -> IO (Ptr ()))
-> (Ptr PangoContext -> IO (Ptr ())) -> IO (Ptr ())
forall a b. (a -> b) -> a -> b
$ \Ptr PangoContext
argPtr1 ->Ptr PangoContext -> IO (Ptr ())
pango_context_get_matrix Ptr PangoContext
argPtr1) PangoContext
pc
if matPtr==nullPtr then return identity else peek (castPtr matPtr)
contextSetMatrix :: PangoContext -> Matrix -> IO ()
contextSetMatrix :: PangoContext -> Matrix -> IO ()
contextSetMatrix PangoContext
pc Matrix
mat
| Matrix
matMatrix -> Matrix -> Bool
forall a. Eq a => a -> a -> Bool
==Matrix
identity = (\(PangoContext ForeignPtr PangoContext
arg1) Ptr ()
arg2 -> ForeignPtr PangoContext -> (Ptr PangoContext -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr PangoContext
arg1 ((Ptr PangoContext -> IO ()) -> IO ())
-> (Ptr PangoContext -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr PangoContext
argPtr1 ->Ptr PangoContext -> Ptr () -> IO ()
pango_context_set_matrix Ptr PangoContext
argPtr1 Ptr ()
arg2) PangoContext
pc Ptr ()
forall a. Ptr a
nullPtr
| Bool
otherwise = Matrix -> (Ptr Matrix -> IO ()) -> IO ()
forall a b. Storable a => a -> (Ptr a -> IO b) -> IO b
with Matrix
mat ((Ptr Matrix -> IO ()) -> IO ()) -> (Ptr Matrix -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr Matrix
matPtr ->
(\(PangoContext ForeignPtr PangoContext
arg1) Ptr ()
arg2 -> ForeignPtr PangoContext -> (Ptr PangoContext -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr PangoContext
arg1 ((Ptr PangoContext -> IO ()) -> IO ())
-> (Ptr PangoContext -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr PangoContext
argPtr1 ->Ptr PangoContext -> Ptr () -> IO ()
pango_context_set_matrix Ptr PangoContext
argPtr1 Ptr ()
arg2) PangoContext
pc (Ptr Matrix -> Ptr ()
forall a b. Ptr a -> Ptr b
castPtr Ptr Matrix
matPtr)
foreign import ccall unsafe "pango_context_list_families"
pango_context_list_families :: ((Ptr PangoContext) -> ((Ptr (Ptr FontFamily)) -> ((Ptr CInt) -> (IO ()))))
foreign import ccall unsafe "g_free"
g_free :: ((Ptr ()) -> (IO ()))
foreign import ccall unsafe "pango_context_get_metrics"
pango_context_get_metrics :: ((Ptr PangoContext) -> ((Ptr FontDescription) -> ((Ptr Language) -> (IO (Ptr ())))))
foreign import ccall unsafe "pango_font_metrics_get_ascent"
pango_font_metrics_get_ascent :: ((Ptr ()) -> (IO CInt))
foreign import ccall unsafe "pango_font_metrics_get_descent"
pango_font_metrics_get_descent :: ((Ptr ()) -> (IO CInt))
foreign import ccall unsafe "pango_font_metrics_get_approximate_char_width"
pango_font_metrics_get_approximate_char_width :: ((Ptr ()) -> (IO CInt))
foreign import ccall unsafe "pango_font_metrics_get_approximate_digit_width"
pango_font_metrics_get_approximate_digit_width :: ((Ptr ()) -> (IO CInt))
foreign import ccall unsafe "pango_font_metrics_get_underline_position"
pango_font_metrics_get_underline_position :: ((Ptr ()) -> (IO CInt))
foreign import ccall unsafe "pango_font_metrics_get_underline_thickness"
pango_font_metrics_get_underline_thickness :: ((Ptr ()) -> (IO CInt))
foreign import ccall unsafe "pango_font_metrics_get_strikethrough_position"
pango_font_metrics_get_strikethrough_position :: ((Ptr ()) -> (IO CInt))
foreign import ccall unsafe "pango_font_metrics_get_strikethrough_thickness"
pango_font_metrics_get_strikethrough_thickness :: ((Ptr ()) -> (IO CInt))
foreign import ccall unsafe "pango_context_set_font_description"
pango_context_set_font_description :: ((Ptr PangoContext) -> ((Ptr FontDescription) -> (IO ())))
foreign import ccall unsafe "pango_context_get_font_description"
pango_context_get_font_description :: ((Ptr PangoContext) -> (IO (Ptr FontDescription)))
foreign import ccall unsafe "pango_context_set_language"
pango_context_set_language :: ((Ptr PangoContext) -> ((Ptr Language) -> (IO ())))
foreign import ccall unsafe "pango_context_get_language"
pango_context_get_language :: ((Ptr PangoContext) -> (IO (Ptr Language)))
foreign import ccall unsafe "pango_context_set_base_dir"
pango_context_set_base_dir :: ((Ptr PangoContext) -> (CInt -> (IO ())))
foreign import ccall unsafe "pango_context_get_base_dir"
pango_context_get_base_dir :: ((Ptr PangoContext) -> (IO CInt))
foreign import ccall unsafe "pango_context_set_base_gravity"
pango_context_set_base_gravity :: ((Ptr PangoContext) -> (CInt -> (IO ())))
foreign import ccall unsafe "pango_context_get_base_gravity"
pango_context_get_base_gravity :: ((Ptr PangoContext) -> (IO CInt))
foreign import ccall unsafe "pango_context_set_gravity_hint"
pango_context_set_gravity_hint :: ((Ptr PangoContext) -> (CInt -> (IO ())))
foreign import ccall unsafe "pango_context_get_gravity_hint"
pango_context_get_gravity_hint :: ((Ptr PangoContext) -> (IO CInt))
foreign import ccall unsafe "pango_context_get_matrix"
pango_context_get_matrix :: ((Ptr PangoContext) -> (IO (Ptr ())))
foreign import ccall unsafe "pango_context_set_matrix"
pango_context_set_matrix :: ((Ptr PangoContext) -> ((Ptr ()) -> (IO ())))