{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances, EmptyDataDecls, OverlappingInstances, IncoherentInstances #-} module HROOT.Class.TAttCanvas.Implementation where import HROOT.TypeCast import HROOT.Class.TAttCanvas.RawType import HROOT.Class.TAttCanvas.FFI import HROOT.Class.TAttCanvas.Interface import HROOT.Class.TAttCanvas.Cast import HROOT.Class.Deletable.RawType import HROOT.Class.Deletable.Cast import HROOT.Class.Deletable.Interface import Data.Word -- import Foreign.C -- import Foreign.Ptr import Foreign.ForeignPtr import System.IO.Unsafe instance ITAttCanvas TAttCanvas where instance IDeletable TAttCanvas where delete = xform0 c_tattcanvas_delete instance ITAttCanvas (Exist TAttCanvas) where instance IDeletable (Exist TAttCanvas) where delete (ETAttCanvas x) = delete x newTAttCanvas :: IO TAttCanvas newTAttCanvas = xformnull c_tattcanvas_newtattcanvas instance FPtr (Exist TAttCanvas) where type Raw (Exist TAttCanvas) = RawTAttCanvas get_fptr (ETAttCanvas obj) = castForeignPtr (get_fptr obj) cast_fptr_to_obj fptr = ETAttCanvas (cast_fptr_to_obj (fptr :: ForeignPtr RawTAttCanvas) :: TAttCanvas)