{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances, EmptyDataDecls, OverlappingInstances, IncoherentInstances #-} module HROOT.Core.TSystem.Implementation where import FFICXX.Runtime.Cast import HROOT.Core.TSystem.RawType import HROOT.Core.TSystem.FFI import HROOT.Core.TSystem.Interface import HROOT.Core.TSystem.Cast import HROOT.Core.TClass.RawType import HROOT.Core.TClass.Cast import HROOT.Core.TClass.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 ITSystem TSystem where processEvents = xform0 c_tsystem_processevents instance ITNamed TSystem where setName = xform1 c_tsystem_setname setNameTitle = xform2 c_tsystem_setnametitle setTitle = xform1 c_tsystem_settitle instance ITObject TSystem where draw = xform1 c_tsystem_draw findObject = xform1 c_tsystem_findobject getName = xform0 c_tsystem_getname isA = xform0 c_tsystem_isa paint = xform1 c_tsystem_paint printObj = xform1 c_tsystem_printobj saveAs = xform2 c_tsystem_saveas write = xform3 c_tsystem_write instance IDeletable TSystem where delete = xform0 c_tsystem_delete instance ITSystem (Exist TSystem) where processEvents (ETSystem x) = processEvents x instance ITNamed (Exist TSystem) where setName (ETSystem x) = setName x setNameTitle (ETSystem x) = setNameTitle x setTitle (ETSystem x) = setTitle x instance ITObject (Exist TSystem) where draw (ETSystem x) = draw x findObject (ETSystem x) = findObject x getName (ETSystem x) = getName x isA (ETSystem x) = isA x paint (ETSystem x) = paint x printObj (ETSystem x) = printObj x saveAs (ETSystem x) = saveAs x write (ETSystem x) = write x instance IDeletable (Exist TSystem) where delete (ETSystem x) = delete x instance FPtr (Exist TSystem) where type Raw (Exist TSystem) = RawTSystem get_fptr (ETSystem obj) = castForeignPtr (get_fptr obj) cast_fptr_to_obj fptr = ETSystem (cast_fptr_to_obj (fptr :: ForeignPtr RawTSystem) :: TSystem)