{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances, EmptyDataDecls, OverlappingInstances, IncoherentInstances #-} module HROOT.Core.TROOT.Implementation where import FFICXX.Runtime.Cast import HROOT.Core.TROOT.RawType import HROOT.Core.TROOT.FFI import HROOT.Core.TROOT.Interface import HROOT.Core.TROOT.Cast import HROOT.Core.TKey.RawType import HROOT.Core.TKey.Cast import HROOT.Core.TKey.Interface import HROOT.Core.TClass.RawType import HROOT.Core.TClass.Cast import HROOT.Core.TClass.Interface import HROOT.Core.TGlobal.RawType import HROOT.Core.TGlobal.Cast import HROOT.Core.TGlobal.Interface import HROOT.Core.TDirectory.RawType import HROOT.Core.TDirectory.Cast import HROOT.Core.TDirectory.Interface import HROOT.Core.TNamed.RawType import HROOT.Core.TNamed.Cast import HROOT.Core.TNamed.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 ITROOT TROOT where instance ITDirectory TROOT where append = xform2 c_troot_append addD = xform2 c_troot_addd appendKey = xform1 c_troot_appendkey close = xform1 c_troot_close get = xform1 c_troot_get cd_TDirectory = xform1 c_troot_cd_tdirectory instance ITNamed TROOT where setName = xform1 c_troot_setname setNameTitle = xform2 c_troot_setnametitle setTitle = xform1 c_troot_settitle instance ITObject TROOT where draw = xform1 c_troot_draw findObject = xform1 c_troot_findobject getName = xform0 c_troot_getname isA = xform0 c_troot_isa paint = xform1 c_troot_paint printObj = xform1 c_troot_printobj saveAs = xform2 c_troot_saveas write = xform3 c_troot_write instance IDeletable TROOT where delete = xform0 c_troot_delete instance ITROOT (Exist TROOT) where instance ITDirectory (Exist TROOT) where append (ETROOT x) = append x addD (ETROOT x) = addD x appendKey (ETROOT x) = appendKey x close (ETROOT x) = close x get (ETROOT x) = get x cd_TDirectory (ETROOT x) = cd_TDirectory x instance ITNamed (Exist TROOT) where setName (ETROOT x) = setName x setNameTitle (ETROOT x) = setNameTitle x setTitle (ETROOT x) = setTitle x instance ITObject (Exist TROOT) where draw (ETROOT x) = draw x findObject (ETROOT x) = findObject x getName (ETROOT x) = getName x isA (ETROOT x) = isA x paint (ETROOT x) = paint x printObj (ETROOT x) = printObj x saveAs (ETROOT x) = saveAs x write (ETROOT x) = write x instance IDeletable (Exist TROOT) where delete (ETROOT x) = delete x tROOTGetGlobal :: TROOT -> CString -> CInt -> IO TGlobal tROOTGetGlobal = xform2 c_troot_trootgetglobal tROOTInitialized :: IO CInt tROOTInitialized = xformnull c_troot_trootinitialized instance FPtr (Exist TROOT) where type Raw (Exist TROOT) = RawTROOT get_fptr (ETROOT obj) = castForeignPtr (get_fptr obj) cast_fptr_to_obj fptr = ETROOT (cast_fptr_to_obj (fptr :: ForeignPtr RawTROOT) :: TROOT)