{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances, EmptyDataDecls, ExistentialQuantification, ScopedTypeVariables #-} -- module HROOT.Class.Interface where module HROOT.Class.TVirtualPad.Interface where import Data.Word import Foreign.ForeignPtr import HROOT.TypeCast import HROOT.Class.TVirtualPad.RawType import HROOT.Class.TFrame.RawType import HROOT.Class.TObject.Interface import HROOT.Class.TAttLine.Interface import HROOT.Class.TAttFill.Interface import HROOT.Class.TAttPad.Interface import HROOT.Class.TQObject.Interface class (ITObject a,ITAttLine a,ITAttFill a,ITAttPad a,ITQObject a) => ITVirtualPad a where cd :: a -> Int -> IO TVirtualPad getFrame :: a -> IO TFrame modified :: a -> Int -> IO () range :: a -> Double -> Double -> Double -> Double -> IO () instance Existable TVirtualPad where data Exist TVirtualPad = forall a. (FPtr a, ITVirtualPad a) => ETVirtualPad a upcastTVirtualPad :: (FPtr a, ITVirtualPad a) => a -> TVirtualPad upcastTVirtualPad h = let fh = get_fptr h fh2 :: ForeignPtr RawTVirtualPad = castForeignPtr fh in cast_fptr_to_obj fh2