{-# LANGUAGE EmptyDataDecls, FlexibleContexts, FlexibleInstances,
  ForeignFunctionInterface, IncoherentInstances,
  MultiParamTypeClasses, OverlappingInstances, TemplateHaskell,
  TypeFamilies, TypeSynonymInstances #-}
module HROOT.Core.TAttText.Implementation where
import Data.Monoid
import Data.Word
import Data.Int
import Foreign.C
import Foreign.Ptr
import Language.Haskell.TH
import Language.Haskell.TH.Syntax
import System.IO.Unsafe
import FFICXX.Runtime.Cast
import FFICXX.Runtime.CodeGen.Cxx
import FFICXX.Runtime.TH
import HROOT.Core.TAttText.RawType
import HROOT.Core.TAttText.FFI
import HROOT.Core.TAttText.Interface
import HROOT.Core.TAttText.Cast
import HROOT.Core.TAttText.RawType
import HROOT.Core.TAttText.Cast
import HROOT.Core.TAttText.Interface
import STD.Deletable.RawType
import STD.Deletable.Cast
import STD.Deletable.Interface

instance () => ITAttText (TAttText) where
        getTextAlign :: TAttText -> IO CShort
getTextAlign = (Ptr RawTAttText -> IO CShort) -> TAttText -> IO CShort
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTAttText -> IO CShort
c_tatttext_gettextalign
        getTextAngle :: TAttText -> IO CFloat
getTextAngle = (Ptr RawTAttText -> IO CFloat) -> TAttText -> IO CFloat
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTAttText -> IO CFloat
c_tatttext_gettextangle
        getTextColor :: TAttText -> IO CShort
getTextColor = (Ptr RawTAttText -> IO CShort) -> TAttText -> IO CShort
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTAttText -> IO CShort
c_tatttext_gettextcolor
        getTextFont :: TAttText -> IO CShort
getTextFont = (Ptr RawTAttText -> IO CShort) -> TAttText -> IO CShort
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTAttText -> IO CShort
c_tatttext_gettextfont
        getTextSize :: TAttText -> IO CFloat
getTextSize = (Ptr RawTAttText -> IO CFloat) -> TAttText -> IO CFloat
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTAttText -> IO CFloat
c_tatttext_gettextsize
        resetAttText :: forall c0. Castable c0 CString => TAttText -> c0 -> IO ()
resetAttText = (Ptr RawTAttText -> CString -> IO ()) -> TAttText -> c0 -> IO ()
forall a ca x1 cx1 y cy.
(Castable a ca, Castable x1 cx1, Castable y cy) =>
(ca -> cx1 -> IO cy) -> a -> x1 -> IO y
xform1 Ptr RawTAttText -> CString -> IO ()
c_tatttext_resetatttext
        setTextAttributes :: TAttText -> IO ()
setTextAttributes = (Ptr RawTAttText -> IO ()) -> TAttText -> IO ()
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTAttText -> IO ()
c_tatttext_settextattributes
        setTextAlign :: TAttText -> CShort -> IO ()
setTextAlign = (Ptr RawTAttText -> CShort -> IO ()) -> TAttText -> CShort -> IO ()
forall a ca x1 cx1 y cy.
(Castable a ca, Castable x1 cx1, Castable y cy) =>
(ca -> cx1 -> IO cy) -> a -> x1 -> IO y
xform1 Ptr RawTAttText -> CShort -> IO ()
c_tatttext_settextalign
        setTextAngle :: TAttText -> CFloat -> IO ()
setTextAngle = (Ptr RawTAttText -> CFloat -> IO ()) -> TAttText -> CFloat -> IO ()
forall a ca x1 cx1 y cy.
(Castable a ca, Castable x1 cx1, Castable y cy) =>
(ca -> cx1 -> IO cy) -> a -> x1 -> IO y
xform1 Ptr RawTAttText -> CFloat -> IO ()
c_tatttext_settextangle
        setTextColor :: TAttText -> CInt -> IO ()
setTextColor = (Ptr RawTAttText -> CInt -> IO ()) -> TAttText -> CInt -> IO ()
forall a ca x1 cx1 y cy.
(Castable a ca, Castable x1 cx1, Castable y cy) =>
(ca -> cx1 -> IO cy) -> a -> x1 -> IO y
xform1 Ptr RawTAttText -> CInt -> IO ()
c_tatttext_settextcolor
        setTextFont :: TAttText -> CShort -> IO ()
setTextFont = (Ptr RawTAttText -> CShort -> IO ()) -> TAttText -> CShort -> IO ()
forall a ca x1 cx1 y cy.
(Castable a ca, Castable x1 cx1, Castable y cy) =>
(ca -> cx1 -> IO cy) -> a -> x1 -> IO y
xform1 Ptr RawTAttText -> CShort -> IO ()
c_tatttext_settextfont
        setTextSize :: TAttText -> CFloat -> IO ()
setTextSize = (Ptr RawTAttText -> CFloat -> IO ()) -> TAttText -> CFloat -> IO ()
forall a ca x1 cx1 y cy.
(Castable a ca, Castable x1 cx1, Castable y cy) =>
(ca -> cx1 -> IO cy) -> a -> x1 -> IO y
xform1 Ptr RawTAttText -> CFloat -> IO ()
c_tatttext_settextsize
        setTextSizePixels :: TAttText -> CInt -> IO ()
setTextSizePixels = (Ptr RawTAttText -> CInt -> IO ()) -> TAttText -> CInt -> IO ()
forall a ca x1 cx1 y cy.
(Castable a ca, Castable x1 cx1, Castable y cy) =>
(ca -> cx1 -> IO cy) -> a -> x1 -> IO y
xform1 Ptr RawTAttText -> CInt -> IO ()
c_tatttext_settextsizepixels

instance () => IDeletable (TAttText) where
        delete :: TAttText -> IO ()
delete = (Ptr RawTAttText -> IO ()) -> TAttText -> IO ()
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTAttText -> IO ()
c_tatttext_delete

newTAttText ::
              () => CInt -> CFloat -> CShort -> CShort -> CFloat -> IO TAttText
newTAttText :: CInt -> CFloat -> CShort -> CShort -> CFloat -> IO TAttText
newTAttText = (CInt
 -> CFloat -> CShort -> CShort -> CFloat -> IO (Ptr RawTAttText))
-> CInt -> CFloat -> CShort -> CShort -> CFloat -> IO TAttText
forall a ca x1 cx1 x2 cx2 x3 cx3 x4 cx4 y cy.
(Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable x3 cx3,
 Castable x4 cx4, Castable y cy) =>
(ca -> cx1 -> cx2 -> cx3 -> cx4 -> IO cy)
-> a -> x1 -> x2 -> x3 -> x4 -> IO y
xform4 CInt
-> CFloat -> CShort -> CShort -> CFloat -> IO (Ptr RawTAttText)
c_tatttext_newtatttext