{-# LANGUAGE EmptyDataDecls, ExistentialQuantification, FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MultiParamTypeClasses, ScopedTypeVariables, TypeFamilies, TypeSynonymInstances #-} module HROOT.Core.TStyle.Interface where import Data.Word import Data.Int import Foreign.C import Foreign.Ptr import FFICXX.Runtime.Cast import HROOT.Core.TStyle.RawType import HROOT.Core.TNamed.Interface import HROOT.Core.TAttLine.Interface import HROOT.Core.TAttFill.Interface import HROOT.Core.TAttMarker.Interface import HROOT.Core.TAttText.Interface class (ITNamed a, ITAttLine a, ITAttFill a, ITAttMarker a, ITAttText a) => ITStyle a where upcastTStyle :: forall a . (FPtr a, ITStyle a) => a -> TStyle upcastTStyle h = let fh = get_fptr h fh2 :: Ptr RawTStyle = castPtr fh in cast_fptr_to_obj fh2 downcastTStyle :: forall a . (FPtr a, ITStyle a) => TStyle -> a downcastTStyle h = let fh = get_fptr h fh2 = castPtr fh in cast_fptr_to_obj fh2