{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances, EmptyDataDecls, OverlappingInstances, IncoherentInstances #-} module HROOT.Core.TNamed.Implementation where import FFICXX.Runtime.Cast import HROOT.Core.TNamed.RawType import HROOT.Core.TNamed.FFI import HROOT.Core.TNamed.Interface import HROOT.Core.TNamed.Cast 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.Deletable.RawType import HROOT.Core.Deletable.Cast import HROOT.Core.Deletable.Interface import Data.Word import Foreign.C import Foreign.Ptr import Foreign.ForeignPtr import System.IO.Unsafe instance ITNamed TNamed where setName = xform1 c_tnamed_setname setNameTitle = xform2 c_tnamed_setnametitle setTitle = xform1 c_tnamed_settitle instance ITObject TNamed where draw = xform1 c_tnamed_draw findObject = xform1 c_tnamed_findobject getName = xform0 c_tnamed_getname isA = xform0 c_tnamed_isa paint = xform1 c_tnamed_paint printObj = xform1 c_tnamed_printobj saveAs = xform2 c_tnamed_saveas write = xform3 c_tnamed_write instance IDeletable TNamed where delete = xform0 c_tnamed_delete instance ITNamed (Exist TNamed) where setName (ETNamed x) = setName x setNameTitle (ETNamed x) = setNameTitle x setTitle (ETNamed x) = setTitle x instance ITObject (Exist TNamed) where draw (ETNamed x) = draw x findObject (ETNamed x) = findObject x getName (ETNamed x) = getName x isA (ETNamed x) = isA x paint (ETNamed x) = paint x printObj (ETNamed x) = printObj x saveAs (ETNamed x) = saveAs x write (ETNamed x) = write x instance IDeletable (Exist TNamed) where delete (ETNamed x) = delete x -- | constructor : -- -- > TNamed( char* name, char* title) -- newTNamed :: CString -> CString -> IO TNamed newTNamed = xform1 c_tnamed_newtnamed instance FPtr (Exist TNamed) where type Raw (Exist TNamed) = RawTNamed get_fptr (ETNamed obj) = castForeignPtr (get_fptr obj) cast_fptr_to_obj fptr = ETNamed (cast_fptr_to_obj (fptr :: ForeignPtr RawTNamed) :: TNamed)