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

instance () => ITEllipse (TEllipse) where

instance () => ITObject (TEllipse) where
        clear :: forall c0. Castable c0 CString => TEllipse -> c0 -> IO ()
clear = (Ptr RawTEllipse -> CString -> IO ()) -> TEllipse -> 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 RawTEllipse -> CString -> IO ()
c_tellipse_clear
        draw :: forall c0. Castable c0 CString => TEllipse -> c0 -> IO ()
draw = (Ptr RawTEllipse -> CString -> IO ()) -> TEllipse -> 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 RawTEllipse -> CString -> IO ()
c_tellipse_draw
        findObject :: forall c0. Castable c0 CString => TEllipse -> c0 -> IO TObject
findObject = (Ptr RawTEllipse -> CString -> IO (Ptr RawTObject))
-> TEllipse -> 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 RawTEllipse -> CString -> IO (Ptr RawTObject)
c_tellipse_findobject
        getName :: TEllipse -> IO CString
getName = (Ptr RawTEllipse -> IO CString) -> TEllipse -> IO CString
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTEllipse -> IO CString
c_tellipse_getname
        isA :: TEllipse -> IO TClass
isA = (Ptr RawTEllipse -> IO (Ptr RawTClass)) -> TEllipse -> IO TClass
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTEllipse -> IO (Ptr RawTClass)
c_tellipse_isa
        paint :: forall c0. Castable c0 CString => TEllipse -> c0 -> IO ()
paint = (Ptr RawTEllipse -> CString -> IO ()) -> TEllipse -> 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 RawTEllipse -> CString -> IO ()
c_tellipse_paint
        printObj :: forall c0. Castable c0 CString => TEllipse -> c0 -> IO ()
printObj = (Ptr RawTEllipse -> CString -> IO ()) -> TEllipse -> 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 RawTEllipse -> CString -> IO ()
c_tellipse_printobj
        saveAs :: forall c1 c0.
(Castable c1 CString, Castable c0 CString) =>
TEllipse -> c0 -> c1 -> IO ()
saveAs = (Ptr RawTEllipse -> CString -> CString -> IO ())
-> TEllipse -> 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 RawTEllipse -> CString -> CString -> IO ()
c_tellipse_saveas
        write :: forall c0.
Castable c0 CString =>
TEllipse -> c0 -> CInt -> CInt -> IO CInt
write = (Ptr RawTEllipse -> CString -> CInt -> CInt -> IO CInt)
-> TEllipse -> 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 RawTEllipse -> CString -> CInt -> CInt -> IO CInt
c_tellipse_write
        write_ :: TEllipse -> IO CInt
write_ = (Ptr RawTEllipse -> IO CInt) -> TEllipse -> IO CInt
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTEllipse -> IO CInt
c_tellipse_write_

instance () => ITAttLine (TEllipse) where
        getLineColor :: TEllipse -> IO CShort
getLineColor = (Ptr RawTEllipse -> IO CShort) -> TEllipse -> IO CShort
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTEllipse -> IO CShort
c_tellipse_getlinecolor
        getLineStyle :: TEllipse -> IO CShort
getLineStyle = (Ptr RawTEllipse -> IO CShort) -> TEllipse -> IO CShort
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTEllipse -> IO CShort
c_tellipse_getlinestyle
        getLineWidth :: TEllipse -> IO CShort
getLineWidth = (Ptr RawTEllipse -> IO CShort) -> TEllipse -> IO CShort
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTEllipse -> IO CShort
c_tellipse_getlinewidth
        resetAttLine :: forall c0. Castable c0 CString => TEllipse -> c0 -> IO ()
resetAttLine = (Ptr RawTEllipse -> CString -> IO ()) -> TEllipse -> 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 RawTEllipse -> CString -> IO ()
c_tellipse_resetattline
        setLineAttributes :: TEllipse -> IO ()
setLineAttributes = (Ptr RawTEllipse -> IO ()) -> TEllipse -> IO ()
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTEllipse -> IO ()
c_tellipse_setlineattributes
        setLineColor :: TEllipse -> CShort -> IO ()
setLineColor = (Ptr RawTEllipse -> CShort -> IO ()) -> TEllipse -> 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 RawTEllipse -> CShort -> IO ()
c_tellipse_setlinecolor
        setLineStyle :: TEllipse -> CShort -> IO ()
setLineStyle = (Ptr RawTEllipse -> CShort -> IO ()) -> TEllipse -> 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 RawTEllipse -> CShort -> IO ()
c_tellipse_setlinestyle
        setLineWidth :: TEllipse -> CShort -> IO ()
setLineWidth = (Ptr RawTEllipse -> CShort -> IO ()) -> TEllipse -> 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 RawTEllipse -> CShort -> IO ()
c_tellipse_setlinewidth

instance () => ITAttFill (TEllipse) where
        setFillColor :: TEllipse -> CInt -> IO ()
setFillColor = (Ptr RawTEllipse -> CInt -> IO ()) -> TEllipse -> 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 RawTEllipse -> CInt -> IO ()
c_tellipse_setfillcolor
        setFillStyle :: TEllipse -> CInt -> IO ()
setFillStyle = (Ptr RawTEllipse -> CInt -> IO ()) -> TEllipse -> 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 RawTEllipse -> CInt -> IO ()
c_tellipse_setfillstyle

instance () => IDeletable (TEllipse) where
        delete :: TEllipse -> IO ()
delete = (Ptr RawTEllipse -> IO ()) -> TEllipse -> IO ()
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTEllipse -> IO ()
c_tellipse_delete

newTEllipse ::
              () =>
              CDouble ->
                CDouble ->
                  CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> IO TEllipse
newTEllipse :: CDouble
-> CDouble
-> CDouble
-> CDouble
-> CDouble
-> CDouble
-> CDouble
-> IO TEllipse
newTEllipse = (CDouble
 -> CDouble
 -> CDouble
 -> CDouble
 -> CDouble
 -> CDouble
 -> CDouble
 -> IO (Ptr RawTEllipse))
-> CDouble
-> CDouble
-> CDouble
-> CDouble
-> CDouble
-> CDouble
-> CDouble
-> IO TEllipse
forall a ca x1 cx1 x2 cx2 x3 cx3 x4 cx4 x5 cx5 x6 cx6 y cy.
(Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable x3 cx3,
 Castable x4 cx4, Castable x5 cx5, Castable x6 cx6,
 Castable y cy) =>
(ca -> cx1 -> cx2 -> cx3 -> cx4 -> cx5 -> cx6 -> IO cy)
-> a -> x1 -> x2 -> x3 -> x4 -> x5 -> x6 -> IO y
xform6 CDouble
-> CDouble
-> CDouble
-> CDouble
-> CDouble
-> CDouble
-> CDouble
-> IO (Ptr RawTEllipse)
c_tellipse_newtellipse