{-# LINE 1 "./GI/Cairo/Render/Internal/Drawing/Text.chs" #-}
module GI.Cairo.Render.Internal.Drawing.Text where
import qualified Foreign.C.Types as C2HSImp
import qualified Foreign.Ptr as C2HSImp
import GI.Cairo.Render.Types
{-# LINE 18 "./GI/Cairo/Render/Internal/Drawing/Text.chs" #-}
import GI.Cairo.Render.Internal.Utilities (CairoString(..))
import Data.GI.Base(wrapBoxed, withManagedPtr)
import Foreign
import Foreign.C
{-# LINE 26 "./GI/Cairo/Render/Internal/Drawing/Text.chs" #-}
selectFontFace :: CairoString string => Cairo -> string -> FontSlant -> FontWeight -> IO ()
selectFontFace :: forall string.
CairoString string =>
Cairo -> string -> FontSlant -> FontWeight -> IO ()
selectFontFace Cairo
c string
string FontSlant
slant FontWeight
weight =
Cairo -> (Ptr Cairo -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr Cairo
c ((Ptr Cairo -> IO ()) -> IO ()) -> (Ptr Cairo -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr Cairo
ctxt ->
string -> (CString -> IO ()) -> IO ()
forall a. string -> (CString -> IO a) -> IO a
forall s a. CairoString s => s -> (CString -> IO a) -> IO a
withUTFString string
string ((CString -> IO ()) -> IO ()) -> (CString -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \CString
string' ->
Ptr Cairo -> CString -> CInt -> CInt -> IO ()
cairo_select_font_face
{-# LINE 32 "./GI/Cairo/Render/Internal/Drawing/Text.chs" #-}
ctxt string' (cFromEnum slant) (cFromEnum weight)
setFontSize :: (Cairo) -> (Double) -> IO ()
setFontSize :: Cairo -> Double -> IO ()
setFontSize a1 Double
a2 =
Cairo -> (Ptr Cairo -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr Cairo
a1 ((Ptr Cairo -> IO ()) -> IO ()) -> (Ptr Cairo -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr Cairo
a1' ->
let {a2' :: CDouble
a2' = Double -> CDouble
forall a b. (Real a, Fractional b) => a -> b
realToFrac Double
a2} in
Ptr Cairo -> CDouble -> IO ()
setFontSize'_ Ptr Cairo
a1' CDouble
a2' IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>>
() -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()
{-# LINE 35 "./GI/Cairo/Render/Internal/Drawing/Text.chs" #-}
setFontMatrix :: (Cairo) -> (Matrix) -> IO ()
setFontMatrix a1 a2 =
withManagedPtr a1 $ \a1' ->
with a2 $ \a2' ->
setFontMatrix'_ a1' a2' >>
return ()
{-# LINE 36 "./GI/Cairo/Render/Internal/Drawing/Text.chs" #-}
getFontMatrix :: (Cairo) -> IO ((Matrix))
getFontMatrix a1 =
withManagedPtr a1 $ \a1' ->
alloca $ \a2' ->
getFontMatrix'_ a1' a2' >>
peek a2'>>= \a2'' ->
return (a2'')
{-# LINE 37 "./GI/Cairo/Render/Internal/Drawing/Text.chs" #-}
setFontOptions :: (Cairo) -> (FontOptions) -> IO ()
setFontOptions a1 a2 =
withManagedPtr a1 $ \a1' ->
withFontOptions a2 $ \a2' ->
setFontOptions'_ a1' a2' >>
return ()
{-# LINE 38 "./GI/Cairo/Render/Internal/Drawing/Text.chs" #-}
showText :: CairoString string => Cairo -> string -> IO ()
showText c string =
withManagedPtr c $ \ctxt ->
withUTFString string $ \string' ->
cairo_show_text
{-# LINE 44 "./GI/Cairo/Render/Internal/Drawing/Text.chs" #-}
ctxt string'
fontExtents :: (Cairo) -> IO ((FontExtents))
fontExtents :: Cairo -> IO FontExtents
fontExtents Cairo
a1 =
Cairo -> (Ptr Cairo -> IO FontExtents) -> IO FontExtents
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr Cairo
a1 ((Ptr Cairo -> IO FontExtents) -> IO FontExtents)
-> (Ptr Cairo -> IO FontExtents) -> IO FontExtents
forall a b. (a -> b) -> a -> b
$ \Ptr Cairo
a1' ->
(Ptr FontExtents -> IO FontExtents) -> IO FontExtents
forall a b. Storable a => (Ptr a -> IO b) -> IO b
alloca ((Ptr FontExtents -> IO FontExtents) -> IO FontExtents)
-> (Ptr FontExtents -> IO FontExtents) -> IO FontExtents
forall a b. (a -> b) -> a -> b
$ \Ptr FontExtents
a2' ->
Ptr Cairo -> Ptr FontExtents -> IO ()
fontExtents'_ Ptr Cairo
a1' Ptr FontExtents
a2' IO () -> IO FontExtents -> IO FontExtents
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>>
Ptr FontExtents -> IO FontExtents
forall a. Storable a => Ptr a -> IO a
peek Ptr FontExtents
a2'IO FontExtents -> (FontExtents -> IO FontExtents) -> IO FontExtents
forall a b. IO a -> (a -> IO b) -> IO b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= \FontExtents
a2'' ->
FontExtents -> IO FontExtents
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return (FontExtents
a2'')
{-# LINE 47 "./GI/Cairo/Render/Internal/Drawing/Text.chs" #-}
textExtents :: CairoString string => Cairo -> string -> IO TextExtents
textExtents c string =
withManagedPtr c $ \ctxt ->
withUTFString string $ \string' ->
alloca $ \result -> do
cairo_text_extents
{-# LINE 54 "./GI/Cairo/Render/Internal/Drawing/Text.chs" #-}
ctxt string' result
peek result
foreign import ccall safe "GI/Cairo/Render/Internal/Drawing/Text.chs.h cairo_select_font_face"
cairo_select_font_face :: ((CairoPtr) -> ((C2HSImp.Ptr C2HSImp.CChar) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (IO ())))))
foreign import ccall safe "GI/Cairo/Render/Internal/Drawing/Text.chs.h cairo_set_font_size"
setFontSize'_ :: ((CairoPtr) -> (C2HSImp.CDouble -> (IO ())))
foreign import ccall safe "GI/Cairo/Render/Internal/Drawing/Text.chs.h cairo_set_font_matrix"
setFontMatrix'_ :: ((CairoPtr) -> ((MatrixPtr) -> (IO ())))
foreign import ccall safe "GI/Cairo/Render/Internal/Drawing/Text.chs.h cairo_get_font_matrix"
getFontMatrix'_ :: ((CairoPtr) -> ((MatrixPtr) -> (IO ())))
foreign import ccall safe "GI/Cairo/Render/Internal/Drawing/Text.chs.h cairo_set_font_options"
setFontOptions'_ :: ((CairoPtr) -> ((FontOptionsPtr) -> (IO ())))
foreign import ccall safe "GI/Cairo/Render/Internal/Drawing/Text.chs.h cairo_show_text"
cairo_show_text :: ((CairoPtr) -> ((C2HSImp.Ptr C2HSImp.CChar) -> (IO ())))
foreign import ccall safe "GI/Cairo/Render/Internal/Drawing/Text.chs.h cairo_font_extents"
fontExtents'_ :: ((CairoPtr) -> ((FontExtentsPtr) -> (IO ())))
foreign import ccall safe "GI/Cairo/Render/Internal/Drawing/Text.chs.h cairo_text_extents"
cairo_text_extents :: ((CairoPtr) -> ((C2HSImp.Ptr C2HSImp.CChar) -> ((TextExtentsPtr) -> (IO ()))))