-- GENERATED by C->Haskell Compiler, version 0.13.6 (gtk2hs branch) "Bin IO", 27 May 2012 (Haskell)
-- Edit the ORIGNAL .chs file instead!


{-# LINE 1 "./Graphics/Rendering/Cairo/Internal/Drawing/Text.chs" #-}
-----------------------------------------------------------------------------
-- |
-- Module      :  Graphics.Rendering.Cairo.Internal.Drawing.Text
-- Copyright   :  (c) Paolo Martini 2005
-- License     :  BSD-style (see cairo/COPYRIGHT)
--
-- Maintainer  :  p.martini@neuralnoise.com
-- Stability   :  experimental
-- Portability :  portable
--
-- Rendering text.
-----------------------------------------------------------------------------

module Graphics.Rendering.Cairo.Internal.Drawing.Text where

import Graphics.Rendering.Cairo.Types
{-# LINE 16 "./Graphics/Rendering/Cairo/Internal/Drawing/Text.chs" #-}

import Graphics.Rendering.Cairo.Internal.Utilities (withUTFString)

import Foreign
import Foreign.C


{-# LINE 23 "./Graphics/Rendering/Cairo/Internal/Drawing/Text.chs" #-}

selectFontFace :: Cairo -> String -> FontSlant -> FontWeight -> IO ()
selectFontFace a1 a2 a3 a4 =
  let {a1' = unCairo a1} in 
  withCString a2 $ \a2' -> 
  let {a3' = cFromEnum a3} in 
  let {a4' = cFromEnum a4} in 
  selectFontFace'_ a1' a2' a3' a4' >>= \res ->
  return ()
{-# LINE 25 "./Graphics/Rendering/Cairo/Internal/Drawing/Text.chs" #-}
setFontSize :: Cairo -> Double -> IO ()
setFontSize a1 a2 =
  let {a1' = unCairo a1} in 
  let {a2' = cFloatConv a2} in 
  setFontSize'_ a1' a2' >>= \res ->
  return ()
{-# LINE 26 "./Graphics/Rendering/Cairo/Internal/Drawing/Text.chs" #-}
setFontMatrix :: Cairo -> Matrix -> IO ()
setFontMatrix a1 a2 =
  let {a1' = unCairo a1} in 
  with a2 $ \a2' -> 
  setFontMatrix'_ a1' a2' >>= \res ->
  return ()
{-# LINE 27 "./Graphics/Rendering/Cairo/Internal/Drawing/Text.chs" #-}
getFontMatrix :: Cairo -> IO (Matrix)
getFontMatrix a1 =
  let {a1' = unCairo a1} in 
  alloca $ \a2' -> 
  getFontMatrix'_ a1' a2' >>= \res ->
  peek a2'>>= \a2'' -> 
  return (a2'')
{-# LINE 28 "./Graphics/Rendering/Cairo/Internal/Drawing/Text.chs" #-}
setFontOptions :: Cairo -> FontOptions -> IO ()
setFontOptions a1 a2 =
  let {a1' = unCairo a1} in 
  withFontOptions a2 $ \a2' -> 
  setFontOptions'_ a1' a2' >>= \res ->
  return ()
{-# LINE 29 "./Graphics/Rendering/Cairo/Internal/Drawing/Text.chs" #-}
showText :: Cairo -> String -> IO ()
showText a1 a2 =
  let {a1' = unCairo a1} in 
  withUTFString a2 $ \a2' -> 
  showText'_ a1' a2' >>= \res ->
  return ()
{-# LINE 30 "./Graphics/Rendering/Cairo/Internal/Drawing/Text.chs" #-}
fontExtents :: Cairo -> IO (FontExtents)
fontExtents a1 =
  let {a1' = unCairo a1} in 
  alloca $ \a2' -> 
  fontExtents'_ a1' a2' >>= \res ->
  peek a2'>>= \a2'' -> 
  return (a2'')
{-# LINE 31 "./Graphics/Rendering/Cairo/Internal/Drawing/Text.chs" #-}
textExtents :: Cairo -> String -> IO (TextExtents)
textExtents a1 a2 =
  let {a1' = unCairo a1} in 
  withUTFString a2 $ \a2' -> 
  alloca $ \a3' -> 
  textExtents'_ a1' a2' a3' >>= \res ->
  peek a3'>>= \a3'' -> 
  return (a3'')
{-# LINE 32 "./Graphics/Rendering/Cairo/Internal/Drawing/Text.chs" #-}

foreign import ccall safe "cairo_select_font_face"
  selectFontFace'_ :: ((Ptr Cairo) -> ((Ptr CChar) -> (CInt -> (CInt -> (IO ())))))

foreign import ccall safe "cairo_set_font_size"
  setFontSize'_ :: ((Ptr Cairo) -> (CDouble -> (IO ())))

foreign import ccall safe "cairo_set_font_matrix"
  setFontMatrix'_ :: ((Ptr Cairo) -> ((Ptr Matrix) -> (IO ())))

foreign import ccall safe "cairo_get_font_matrix"
  getFontMatrix'_ :: ((Ptr Cairo) -> ((Ptr Matrix) -> (IO ())))

foreign import ccall safe "cairo_set_font_options"
  setFontOptions'_ :: ((Ptr Cairo) -> ((Ptr FontOptions) -> (IO ())))

foreign import ccall safe "cairo_show_text"
  showText'_ :: ((Ptr Cairo) -> ((Ptr CChar) -> (IO ())))

foreign import ccall safe "cairo_font_extents"
  fontExtents'_ :: ((Ptr Cairo) -> ((Ptr FontExtents) -> (IO ())))

foreign import ccall safe "cairo_text_extents"
  textExtents'_ :: ((Ptr Cairo) -> ((Ptr CChar) -> ((Ptr TextExtents) -> (IO ()))))