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

instance () => ITPad (TPad) where
        drawFrame :: forall c0.
Castable c0 CString =>
TPad -> CDouble -> CDouble -> CDouble -> CDouble -> c0 -> IO TH1F
drawFrame = (Ptr RawTPad
 -> CDouble
 -> CDouble
 -> CDouble
 -> CDouble
 -> CString
 -> IO (Ptr RawTH1F))
-> TPad
-> CDouble
-> CDouble
-> CDouble
-> CDouble
-> c0
-> IO TH1F
forall a ca x1 cx1 x2 cx2 x3 cx3 x4 cx4 x5 cx5 y cy.
(Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable x3 cx3,
 Castable x4 cx4, Castable x5 cx5, Castable y cy) =>
(ca -> cx1 -> cx2 -> cx3 -> cx4 -> cx5 -> IO cy)
-> a -> x1 -> x2 -> x3 -> x4 -> x5 -> IO y
xform5 Ptr RawTPad
-> CDouble
-> CDouble
-> CDouble
-> CDouble
-> CString
-> IO (Ptr RawTH1F)
c_tpad_drawframe
        getView :: TPad -> IO TView
getView = (Ptr RawTPad -> IO (Ptr RawTView)) -> TPad -> IO TView
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTPad -> IO (Ptr RawTView)
c_tpad_getview
        setView0 :: TPad -> IO ()
setView0 = (Ptr RawTPad -> IO ()) -> TPad -> IO ()
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTPad -> IO ()
c_tpad_setview0
        setView :: forall c0. (ITView c0, FPtr c0) => TPad -> c0 -> IO ()
setView = (Ptr RawTPad -> Ptr RawTView -> IO ()) -> TPad -> 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 RawTPad -> Ptr RawTView -> IO ()
c_tpad_setview

instance () => ITVirtualPad (TPad) where
        cd :: TPad -> CInt -> IO TPad
cd = (Ptr RawTPad -> CInt -> IO (Ptr RawTPad))
-> TPad -> CInt -> IO TPad
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 RawTPad -> CInt -> IO (Ptr RawTPad)
c_tpad_cd
        divide_tvirtualpad :: TPad -> CInt -> CInt -> CFloat -> CFloat -> CInt -> IO ()
divide_tvirtualpad = (Ptr RawTPad -> CInt -> CInt -> CFloat -> CFloat -> CInt -> IO ())
-> TPad -> CInt -> CInt -> CFloat -> CFloat -> CInt -> IO ()
forall a ca x1 cx1 x2 cx2 x3 cx3 x4 cx4 x5 cx5 y cy.
(Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable x3 cx3,
 Castable x4 cx4, Castable x5 cx5, Castable y cy) =>
(ca -> cx1 -> cx2 -> cx3 -> cx4 -> cx5 -> IO cy)
-> a -> x1 -> x2 -> x3 -> x4 -> x5 -> IO y
xform5 Ptr RawTPad -> CInt -> CInt -> CFloat -> CFloat -> CInt -> IO ()
c_tpad_divide_tvirtualpad
        modified :: TPad -> CBool -> IO ()
modified = (Ptr RawTPad -> CBool -> IO ()) -> TPad -> CBool -> 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 RawTPad -> CBool -> IO ()
c_tpad_modified
        range :: TPad -> CDouble -> CDouble -> CDouble -> CDouble -> IO ()
range = (Ptr RawTPad -> CDouble -> CDouble -> CDouble -> CDouble -> IO ())
-> TPad -> 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 RawTPad -> CDouble -> CDouble -> CDouble -> CDouble -> IO ()
c_tpad_range
        setLogx :: TPad -> CInt -> IO ()
setLogx = (Ptr RawTPad -> CInt -> IO ()) -> TPad -> 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 RawTPad -> CInt -> IO ()
c_tpad_setlogx
        setLogy :: TPad -> CInt -> IO ()
setLogy = (Ptr RawTPad -> CInt -> IO ()) -> TPad -> 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 RawTPad -> CInt -> IO ()
c_tpad_setlogy
        setLogz :: TPad -> CInt -> IO ()
setLogz = (Ptr RawTPad -> CInt -> IO ()) -> TPad -> 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 RawTPad -> CInt -> IO ()
c_tpad_setlogz
        update :: TPad -> IO ()
update = (Ptr RawTPad -> IO ()) -> TPad -> IO ()
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTPad -> IO ()
c_tpad_update

instance () => ITObject (TPad) where
        clear :: forall c0. Castable c0 CString => TPad -> c0 -> IO ()
clear = (Ptr RawTPad -> CString -> IO ()) -> TPad -> 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 RawTPad -> CString -> IO ()
c_tpad_clear
        draw :: forall c0. Castable c0 CString => TPad -> c0 -> IO ()
draw = (Ptr RawTPad -> CString -> IO ()) -> TPad -> 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 RawTPad -> CString -> IO ()
c_tpad_draw
        findObject :: forall c0. Castable c0 CString => TPad -> c0 -> IO TObject
findObject = (Ptr RawTPad -> CString -> IO (Ptr RawTObject))
-> TPad -> 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 RawTPad -> CString -> IO (Ptr RawTObject)
c_tpad_findobject
        getName :: TPad -> IO CString
getName = (Ptr RawTPad -> IO CString) -> TPad -> IO CString
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTPad -> IO CString
c_tpad_getname
        isA :: TPad -> IO TClass
isA = (Ptr RawTPad -> IO (Ptr RawTClass)) -> TPad -> IO TClass
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTPad -> IO (Ptr RawTClass)
c_tpad_isa
        paint :: forall c0. Castable c0 CString => TPad -> c0 -> IO ()
paint = (Ptr RawTPad -> CString -> IO ()) -> TPad -> 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 RawTPad -> CString -> IO ()
c_tpad_paint
        printObj :: forall c0. Castable c0 CString => TPad -> c0 -> IO ()
printObj = (Ptr RawTPad -> CString -> IO ()) -> TPad -> 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 RawTPad -> CString -> IO ()
c_tpad_printobj
        saveAs :: forall c1 c0.
(Castable c1 CString, Castable c0 CString) =>
TPad -> c0 -> c1 -> IO ()
saveAs = (Ptr RawTPad -> CString -> CString -> IO ())
-> TPad -> 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 RawTPad -> CString -> CString -> IO ()
c_tpad_saveas
        write :: forall c0.
Castable c0 CString =>
TPad -> c0 -> CInt -> CInt -> IO CInt
write = (Ptr RawTPad -> CString -> CInt -> CInt -> IO CInt)
-> TPad -> 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 RawTPad -> CString -> CInt -> CInt -> IO CInt
c_tpad_write
        write_ :: TPad -> IO CInt
write_ = (Ptr RawTPad -> IO CInt) -> TPad -> IO CInt
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTPad -> IO CInt
c_tpad_write_

instance () => ITAttLine (TPad) where
        getLineColor :: TPad -> IO CShort
getLineColor = (Ptr RawTPad -> IO CShort) -> TPad -> IO CShort
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTPad -> IO CShort
c_tpad_getlinecolor
        getLineStyle :: TPad -> IO CShort
getLineStyle = (Ptr RawTPad -> IO CShort) -> TPad -> IO CShort
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTPad -> IO CShort
c_tpad_getlinestyle
        getLineWidth :: TPad -> IO CShort
getLineWidth = (Ptr RawTPad -> IO CShort) -> TPad -> IO CShort
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTPad -> IO CShort
c_tpad_getlinewidth
        resetAttLine :: forall c0. Castable c0 CString => TPad -> c0 -> IO ()
resetAttLine = (Ptr RawTPad -> CString -> IO ()) -> TPad -> 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 RawTPad -> CString -> IO ()
c_tpad_resetattline
        setLineAttributes :: TPad -> IO ()
setLineAttributes = (Ptr RawTPad -> IO ()) -> TPad -> IO ()
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTPad -> IO ()
c_tpad_setlineattributes
        setLineColor :: TPad -> CShort -> IO ()
setLineColor = (Ptr RawTPad -> CShort -> IO ()) -> TPad -> 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 RawTPad -> CShort -> IO ()
c_tpad_setlinecolor
        setLineStyle :: TPad -> CShort -> IO ()
setLineStyle = (Ptr RawTPad -> CShort -> IO ()) -> TPad -> 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 RawTPad -> CShort -> IO ()
c_tpad_setlinestyle
        setLineWidth :: TPad -> CShort -> IO ()
setLineWidth = (Ptr RawTPad -> CShort -> IO ()) -> TPad -> 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 RawTPad -> CShort -> IO ()
c_tpad_setlinewidth

instance () => ITAttFill (TPad) where
        setFillColor :: TPad -> CInt -> IO ()
setFillColor = (Ptr RawTPad -> CInt -> IO ()) -> TPad -> 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 RawTPad -> CInt -> IO ()
c_tpad_setfillcolor
        setFillStyle :: TPad -> CInt -> IO ()
setFillStyle = (Ptr RawTPad -> CInt -> IO ()) -> TPad -> 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 RawTPad -> CInt -> IO ()
c_tpad_setfillstyle

instance () => ITAttPad (TPad) where
        resetAttPad :: forall c0. Castable c0 CString => TPad -> c0 -> IO ()
resetAttPad = (Ptr RawTPad -> CString -> IO ()) -> TPad -> 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 RawTPad -> CString -> IO ()
c_tpad_resetattpad
        setBottomMargin :: TPad -> CFloat -> IO ()
setBottomMargin = (Ptr RawTPad -> CFloat -> IO ()) -> TPad -> 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 RawTPad -> CFloat -> IO ()
c_tpad_setbottommargin
        setLeftMargin :: TPad -> CFloat -> IO ()
setLeftMargin = (Ptr RawTPad -> CFloat -> IO ()) -> TPad -> 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 RawTPad -> CFloat -> IO ()
c_tpad_setleftmargin
        setRightMargin :: TPad -> CFloat -> IO ()
setRightMargin = (Ptr RawTPad -> CFloat -> IO ()) -> TPad -> 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 RawTPad -> CFloat -> IO ()
c_tpad_setrightmargin
        setTopMargin :: TPad -> CFloat -> IO ()
setTopMargin = (Ptr RawTPad -> CFloat -> IO ()) -> TPad -> 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 RawTPad -> CFloat -> IO ()
c_tpad_settopmargin
        setMargin :: TPad -> CFloat -> CFloat -> CFloat -> CFloat -> IO ()
setMargin = (Ptr RawTPad -> CFloat -> CFloat -> CFloat -> CFloat -> IO ())
-> TPad -> CFloat -> CFloat -> CFloat -> CFloat -> 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 RawTPad -> CFloat -> CFloat -> CFloat -> CFloat -> IO ()
c_tpad_setmargin
        setAfile :: TPad -> CFloat -> IO ()
setAfile = (Ptr RawTPad -> CFloat -> IO ()) -> TPad -> 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 RawTPad -> CFloat -> IO ()
c_tpad_setafile
        setXfile :: TPad -> CFloat -> IO ()
setXfile = (Ptr RawTPad -> CFloat -> IO ()) -> TPad -> 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 RawTPad -> CFloat -> IO ()
c_tpad_setxfile
        setYfile :: TPad -> CFloat -> IO ()
setYfile = (Ptr RawTPad -> CFloat -> IO ()) -> TPad -> 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 RawTPad -> CFloat -> IO ()
c_tpad_setyfile
        setAstat :: TPad -> CFloat -> IO ()
setAstat = (Ptr RawTPad -> CFloat -> IO ()) -> TPad -> 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 RawTPad -> CFloat -> IO ()
c_tpad_setastat
        setXstat :: TPad -> CFloat -> IO ()
setXstat = (Ptr RawTPad -> CFloat -> IO ()) -> TPad -> 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 RawTPad -> CFloat -> IO ()
c_tpad_setxstat
        setYstat :: TPad -> CFloat -> IO ()
setYstat = (Ptr RawTPad -> CFloat -> IO ()) -> TPad -> 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 RawTPad -> CFloat -> IO ()
c_tpad_setystat

instance () => ITQObject (TPad) where

instance () => IDeletable (TPad) where
        delete :: TPad -> IO ()
delete = (Ptr RawTPad -> IO ()) -> TPad -> IO ()
forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
xform0 Ptr RawTPad -> IO ()
c_tpad_delete

newTPad ::
          (Castable c1 CString, Castable c0 CString) =>
          c0 -> c1 -> CDouble -> CDouble -> CDouble -> CDouble -> IO TPad
newTPad :: forall c1 c0.
(Castable c1 CString, Castable c0 CString) =>
c0 -> c1 -> CDouble -> CDouble -> CDouble -> CDouble -> IO TPad
newTPad = (CString
 -> CString
 -> CDouble
 -> CDouble
 -> CDouble
 -> CDouble
 -> IO (Ptr RawTPad))
-> c0 -> c1 -> CDouble -> CDouble -> CDouble -> CDouble -> IO TPad
forall a ca x1 cx1 x2 cx2 x3 cx3 x4 cx4 x5 cx5 y cy.
(Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable x3 cx3,
 Castable x4 cx4, Castable x5 cx5, Castable y cy) =>
(ca -> cx1 -> cx2 -> cx3 -> cx4 -> cx5 -> IO cy)
-> a -> x1 -> x2 -> x3 -> x4 -> x5 -> IO y
xform5 CString
-> CString
-> CDouble
-> CDouble
-> CDouble
-> CDouble
-> IO (Ptr RawTPad)
c_tpad_newtpad