{-# LANGUAGE EmptyDataDecls, FlexibleContexts, FlexibleInstances,
  ForeignFunctionInterface, IncoherentInstances,
  MultiParamTypeClasses, OverlappingInstances, TemplateHaskell,
  TypeFamilies, TypeSynonymInstances #-}
module HROOT.Graf.TGaxis.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.Graf.TGaxis.RawType
import HROOT.Graf.TGaxis.FFI
import HROOT.Graf.TGaxis.Interface
import HROOT.Graf.TGaxis.Cast
import HROOT.Graf.TGaxis.RawType
import HROOT.Graf.TGaxis.Cast
import HROOT.Graf.TGaxis.Interface
import HROOT.Core.TClass.RawType
import HROOT.Core.TClass.Cast
import HROOT.Core.TClass.Interface
import HROOT.Graf.TLine.RawType
import HROOT.Graf.TLine.Cast
import HROOT.Graf.TLine.Interface
import HROOT.Core.TAttText.RawType
import HROOT.Core.TAttText.Cast
import HROOT.Core.TAttText.Interface
import HROOT.Core.TObject.RawType
import HROOT.Core.TObject.Cast
import HROOT.Core.TObject.Interface
import HROOT.Core.TAttLine.RawType
import HROOT.Core.TAttLine.Cast
import HROOT.Core.TAttLine.Interface
import STD.Deletable.RawType
import STD.Deletable.Cast
import STD.Deletable.Interface

instance () => ITGaxis (TGaxis) where

instance () => ITLine (TGaxis) where
        drawLine :: TGaxis -> CDouble -> CDouble -> CDouble -> CDouble -> IO TLine
drawLine = (Ptr RawTGaxis
 -> CDouble -> CDouble -> CDouble -> CDouble -> IO (Ptr RawTLine))
-> TGaxis -> CDouble -> CDouble -> CDouble -> CDouble -> IO TLine
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 Ptr RawTGaxis
-> CDouble -> CDouble -> CDouble -> CDouble -> IO (Ptr RawTLine)
c_tgaxis_drawline
        drawLineNDC :: TGaxis -> CDouble -> CDouble -> CDouble -> CDouble -> IO TLine
drawLineNDC = (Ptr RawTGaxis
 -> CDouble -> CDouble -> CDouble -> CDouble -> IO (Ptr RawTLine))
-> TGaxis -> CDouble -> CDouble -> CDouble -> CDouble -> IO TLine
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 Ptr RawTGaxis
-> CDouble -> CDouble -> CDouble -> CDouble -> IO (Ptr RawTLine)
c_tgaxis_drawlinendc
        paintLine :: TGaxis -> CDouble -> CDouble -> CDouble -> CDouble -> IO ()
paintLine = (Ptr RawTGaxis
 -> CDouble -> CDouble -> CDouble -> CDouble -> IO ())
-> TGaxis -> CDouble -> CDouble -> CDouble -> CDouble -> IO ()
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 Ptr RawTGaxis -> CDouble -> CDouble -> CDouble -> CDouble -> IO ()
c_tgaxis_paintline
        paintLineNDC :: TGaxis -> CDouble -> CDouble -> CDouble -> CDouble -> IO ()
paintLineNDC = (Ptr RawTGaxis
 -> CDouble -> CDouble -> CDouble -> CDouble -> IO ())
-> TGaxis -> CDouble -> CDouble -> CDouble -> CDouble -> IO ()
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 Ptr RawTGaxis -> CDouble -> CDouble -> CDouble -> CDouble -> IO ()
c_tgaxis_paintlinendc
        setX1 :: TGaxis -> CDouble -> IO ()
setX1 = (Ptr RawTGaxis -> CDouble -> IO ()) -> TGaxis -> CDouble -> 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 RawTGaxis -> CDouble -> IO ()
c_tgaxis_setx1
        setX2 :: TGaxis -> CDouble -> IO ()
setX2 = (Ptr RawTGaxis -> CDouble -> IO ()) -> TGaxis -> CDouble -> 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 RawTGaxis -> CDouble -> IO ()
c_tgaxis_setx2
        setY1 :: TGaxis -> CDouble -> IO ()
setY1 = (Ptr RawTGaxis -> CDouble -> IO ()) -> TGaxis -> CDouble -> 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 RawTGaxis -> CDouble -> IO ()
c_tgaxis_sety1
        setY2 :: TGaxis -> CDouble -> IO ()
setY2 = (Ptr RawTGaxis -> CDouble -> IO ()) -> TGaxis -> CDouble -> 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 RawTGaxis -> CDouble -> IO ()
c_tgaxis_sety2

instance () => ITAttText (TGaxis) where
        getTextAlign :: TGaxis -> IO CShort
getTextAlign = (Ptr RawTGaxis -> IO CShort) -> TGaxis -> IO CShort
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTGaxis -> IO CShort
c_tgaxis_gettextalign
        getTextAngle :: TGaxis -> IO CFloat
getTextAngle = (Ptr RawTGaxis -> IO CFloat) -> TGaxis -> IO CFloat
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTGaxis -> IO CFloat
c_tgaxis_gettextangle
        getTextColor :: TGaxis -> IO CShort
getTextColor = (Ptr RawTGaxis -> IO CShort) -> TGaxis -> IO CShort
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTGaxis -> IO CShort
c_tgaxis_gettextcolor
        getTextFont :: TGaxis -> IO CShort
getTextFont = (Ptr RawTGaxis -> IO CShort) -> TGaxis -> IO CShort
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTGaxis -> IO CShort
c_tgaxis_gettextfont
        getTextSize :: TGaxis -> IO CFloat
getTextSize = (Ptr RawTGaxis -> IO CFloat) -> TGaxis -> IO CFloat
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTGaxis -> IO CFloat
c_tgaxis_gettextsize
        resetAttText :: forall c0. Castable c0 CString => TGaxis -> c0 -> IO ()
resetAttText = (Ptr RawTGaxis -> CString -> IO ()) -> TGaxis -> 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 RawTGaxis -> CString -> IO ()
c_tgaxis_resetatttext
        setTextAttributes :: TGaxis -> IO ()
setTextAttributes = (Ptr RawTGaxis -> IO ()) -> TGaxis -> IO ()
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTGaxis -> IO ()
c_tgaxis_settextattributes
        setTextAlign :: TGaxis -> CShort -> IO ()
setTextAlign = (Ptr RawTGaxis -> CShort -> IO ()) -> TGaxis -> 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 RawTGaxis -> CShort -> IO ()
c_tgaxis_settextalign
        setTextAngle :: TGaxis -> CFloat -> IO ()
setTextAngle = (Ptr RawTGaxis -> CFloat -> IO ()) -> TGaxis -> 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 RawTGaxis -> CFloat -> IO ()
c_tgaxis_settextangle
        setTextColor :: TGaxis -> CInt -> IO ()
setTextColor = (Ptr RawTGaxis -> CInt -> IO ()) -> TGaxis -> 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 RawTGaxis -> CInt -> IO ()
c_tgaxis_settextcolor
        setTextFont :: TGaxis -> CShort -> IO ()
setTextFont = (Ptr RawTGaxis -> CShort -> IO ()) -> TGaxis -> 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 RawTGaxis -> CShort -> IO ()
c_tgaxis_settextfont
        setTextSize :: TGaxis -> CFloat -> IO ()
setTextSize = (Ptr RawTGaxis -> CFloat -> IO ()) -> TGaxis -> 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 RawTGaxis -> CFloat -> IO ()
c_tgaxis_settextsize
        setTextSizePixels :: TGaxis -> CInt -> IO ()
setTextSizePixels = (Ptr RawTGaxis -> CInt -> IO ()) -> TGaxis -> 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 RawTGaxis -> CInt -> IO ()
c_tgaxis_settextsizepixels

instance () => ITObject (TGaxis) where
        clear :: forall c0. Castable c0 CString => TGaxis -> c0 -> IO ()
clear = (Ptr RawTGaxis -> CString -> IO ()) -> TGaxis -> 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 RawTGaxis -> CString -> IO ()
c_tgaxis_clear
        draw :: forall c0. Castable c0 CString => TGaxis -> c0 -> IO ()
draw = (Ptr RawTGaxis -> CString -> IO ()) -> TGaxis -> 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 RawTGaxis -> CString -> IO ()
c_tgaxis_draw
        findObject :: forall c0. Castable c0 CString => TGaxis -> c0 -> IO TObject
findObject = (Ptr RawTGaxis -> CString -> IO (Ptr RawTObject))
-> TGaxis -> c0 -> IO TObject
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 RawTGaxis -> CString -> IO (Ptr RawTObject)
c_tgaxis_findobject
        getName :: TGaxis -> IO CString
getName = (Ptr RawTGaxis -> IO CString) -> TGaxis -> IO CString
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTGaxis -> IO CString
c_tgaxis_getname
        isA :: TGaxis -> IO TClass
isA = (Ptr RawTGaxis -> IO (Ptr RawTClass)) -> TGaxis -> IO TClass
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTGaxis -> IO (Ptr RawTClass)
c_tgaxis_isa
        paint :: forall c0. Castable c0 CString => TGaxis -> c0 -> IO ()
paint = (Ptr RawTGaxis -> CString -> IO ()) -> TGaxis -> 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 RawTGaxis -> CString -> IO ()
c_tgaxis_paint
        printObj :: forall c0. Castable c0 CString => TGaxis -> c0 -> IO ()
printObj = (Ptr RawTGaxis -> CString -> IO ()) -> TGaxis -> 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 RawTGaxis -> CString -> IO ()
c_tgaxis_printobj
        saveAs :: forall c1 c0.
(Castable c1 CString, Castable c0 CString) =>
TGaxis -> c0 -> c1 -> IO ()
saveAs = (Ptr RawTGaxis -> CString -> CString -> IO ())
-> TGaxis -> c0 -> c1 -> IO ()
forall a ca x1 cx1 x2 cx2 y cy.
(Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable y cy) =>
(ca -> cx1 -> cx2 -> IO cy) -> a -> x1 -> x2 -> IO y
xform2 Ptr RawTGaxis -> CString -> CString -> IO ()
c_tgaxis_saveas
        write :: forall c0.
Castable c0 CString =>
TGaxis -> c0 -> CInt -> CInt -> IO CInt
write = (Ptr RawTGaxis -> CString -> CInt -> CInt -> IO CInt)
-> TGaxis -> c0 -> CInt -> CInt -> IO CInt
forall a ca x1 cx1 x2 cx2 x3 cx3 y cy.
(Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable x3 cx3,
 Castable y cy) =>
(ca -> cx1 -> cx2 -> cx3 -> IO cy) -> a -> x1 -> x2 -> x3 -> IO y
xform3 Ptr RawTGaxis -> CString -> CInt -> CInt -> IO CInt
c_tgaxis_write
        write_ :: TGaxis -> IO CInt
write_ = (Ptr RawTGaxis -> IO CInt) -> TGaxis -> IO CInt
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTGaxis -> IO CInt
c_tgaxis_write_

instance () => ITAttLine (TGaxis) where
        getLineColor :: TGaxis -> IO CShort
getLineColor = (Ptr RawTGaxis -> IO CShort) -> TGaxis -> IO CShort
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTGaxis -> IO CShort
c_tgaxis_getlinecolor
        getLineStyle :: TGaxis -> IO CShort
getLineStyle = (Ptr RawTGaxis -> IO CShort) -> TGaxis -> IO CShort
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTGaxis -> IO CShort
c_tgaxis_getlinestyle
        getLineWidth :: TGaxis -> IO CShort
getLineWidth = (Ptr RawTGaxis -> IO CShort) -> TGaxis -> IO CShort
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTGaxis -> IO CShort
c_tgaxis_getlinewidth
        resetAttLine :: forall c0. Castable c0 CString => TGaxis -> c0 -> IO ()
resetAttLine = (Ptr RawTGaxis -> CString -> IO ()) -> TGaxis -> 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 RawTGaxis -> CString -> IO ()
c_tgaxis_resetattline
        setLineAttributes :: TGaxis -> IO ()
setLineAttributes = (Ptr RawTGaxis -> IO ()) -> TGaxis -> IO ()
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTGaxis -> IO ()
c_tgaxis_setlineattributes
        setLineColor :: TGaxis -> CShort -> IO ()
setLineColor = (Ptr RawTGaxis -> CShort -> IO ()) -> TGaxis -> 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 RawTGaxis -> CShort -> IO ()
c_tgaxis_setlinecolor
        setLineStyle :: TGaxis -> CShort -> IO ()
setLineStyle = (Ptr RawTGaxis -> CShort -> IO ()) -> TGaxis -> 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 RawTGaxis -> CShort -> IO ()
c_tgaxis_setlinestyle
        setLineWidth :: TGaxis -> CShort -> IO ()
setLineWidth = (Ptr RawTGaxis -> CShort -> IO ()) -> TGaxis -> 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 RawTGaxis -> CShort -> IO ()
c_tgaxis_setlinewidth

instance () => IDeletable (TGaxis) where
        delete :: TGaxis -> IO ()
delete = (Ptr RawTGaxis -> IO ()) -> TGaxis -> IO ()
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTGaxis -> IO ()
c_tgaxis_delete

newTGaxis ::
            (Castable c0 CString) =>
            CDouble ->
              CDouble ->
                CDouble ->
                  CDouble -> CDouble -> CDouble -> CInt -> c0 -> CDouble -> IO TGaxis
newTGaxis :: forall c0.
Castable c0 CString =>
CDouble
-> CDouble
-> CDouble
-> CDouble
-> CDouble
-> CDouble
-> CInt
-> c0
-> CDouble
-> IO TGaxis
newTGaxis = (CDouble
 -> CDouble
 -> CDouble
 -> CDouble
 -> CDouble
 -> CDouble
 -> CInt
 -> CString
 -> CDouble
 -> IO (Ptr RawTGaxis))
-> CDouble
-> CDouble
-> CDouble
-> CDouble
-> CDouble
-> CDouble
-> CInt
-> c0
-> CDouble
-> IO TGaxis
forall a ca x1 cx1 x2 cx2 x3 cx3 x4 cx4 x5 cx5 x6 cx6 x7 cx7 x8 cx8
       y cy.
(Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable x3 cx3,
 Castable x4 cx4, Castable x5 cx5, Castable x6 cx6, Castable x7 cx7,
 Castable x8 cx8, Castable y cy) =>
(ca
 -> cx1 -> cx2 -> cx3 -> cx4 -> cx5 -> cx6 -> cx7 -> cx8 -> IO cy)
-> a -> x1 -> x2 -> x3 -> x4 -> x5 -> x6 -> x7 -> x8 -> IO y
xform8 CDouble
-> CDouble
-> CDouble
-> CDouble
-> CDouble
-> CDouble
-> CInt
-> CString
-> CDouble
-> IO (Ptr RawTGaxis)
c_tgaxis_newtgaxis