{-# LANGUAGE EmptyDataDecls, FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, IncoherentInstances, MultiParamTypeClasses, OverlappingInstances, TemplateHaskell, TypeFamilies, TypeSynonymInstances #-} module HROOT.Core.TClass.Implementation where import Data.Monoid import Data.Word import Data.Int import Foreign.C import Foreign.Ptr import Language.Haskell.TH import Language.Haskell.TH.Syntax import System.IO.Unsafe import FFICXX.Runtime.Cast import FFICXX.Runtime.CodeGen.Cxx import FFICXX.Runtime.TH import HROOT.Core.TClass.RawType import HROOT.Core.TClass.FFI import HROOT.Core.TClass.Interface import HROOT.Core.TClass.Cast import HROOT.Core.TClass.RawType import HROOT.Core.TClass.Cast import HROOT.Core.TClass.Interface import HROOT.Core.TDictionary.RawType import HROOT.Core.TDictionary.Cast import HROOT.Core.TDictionary.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 STD.Deletable.RawType import STD.Deletable.Cast import STD.Deletable.Interface instance () => ITClass (TClass) where instance () => ITDictionary (TClass) where instance () => ITNamed (TClass) where setName :: forall c0. Castable c0 CString => TClass -> c0 -> IO () setName = (Ptr RawTClass -> CString -> IO ()) -> TClass -> c0 -> IO () forall a ca x1 cx1 y cy. (Castable a ca, Castable x1 cx1, Castable y cy) => (ca -> cx1 -> IO cy) -> a -> x1 -> IO y xform1 Ptr RawTClass -> CString -> IO () c_tclass_setname setNameTitle :: forall c1 c0. (Castable c1 CString, Castable c0 CString) => TClass -> c0 -> c1 -> IO () setNameTitle = (Ptr RawTClass -> CString -> CString -> IO ()) -> TClass -> c0 -> c1 -> IO () forall a ca x1 cx1 x2 cx2 y cy. (Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable y cy) => (ca -> cx1 -> cx2 -> IO cy) -> a -> x1 -> x2 -> IO y xform2 Ptr RawTClass -> CString -> CString -> IO () c_tclass_setnametitle setTitle :: forall c0. Castable c0 CString => TClass -> c0 -> IO () setTitle = (Ptr RawTClass -> CString -> IO ()) -> TClass -> c0 -> IO () forall a ca x1 cx1 y cy. (Castable a ca, Castable x1 cx1, Castable y cy) => (ca -> cx1 -> IO cy) -> a -> x1 -> IO y xform1 Ptr RawTClass -> CString -> IO () c_tclass_settitle instance () => ITObject (TClass) where clear :: forall c0. Castable c0 CString => TClass -> c0 -> IO () clear = (Ptr RawTClass -> CString -> IO ()) -> TClass -> c0 -> IO () forall a ca x1 cx1 y cy. (Castable a ca, Castable x1 cx1, Castable y cy) => (ca -> cx1 -> IO cy) -> a -> x1 -> IO y xform1 Ptr RawTClass -> CString -> IO () c_tclass_clear draw :: forall c0. Castable c0 CString => TClass -> c0 -> IO () draw = (Ptr RawTClass -> CString -> IO ()) -> TClass -> c0 -> IO () forall a ca x1 cx1 y cy. (Castable a ca, Castable x1 cx1, Castable y cy) => (ca -> cx1 -> IO cy) -> a -> x1 -> IO y xform1 Ptr RawTClass -> CString -> IO () c_tclass_draw findObject :: forall c0. Castable c0 CString => TClass -> c0 -> IO TObject findObject = (Ptr RawTClass -> CString -> IO (Ptr RawTObject)) -> TClass -> c0 -> IO TObject forall a ca x1 cx1 y cy. (Castable a ca, Castable x1 cx1, Castable y cy) => (ca -> cx1 -> IO cy) -> a -> x1 -> IO y xform1 Ptr RawTClass -> CString -> IO (Ptr RawTObject) c_tclass_findobject getName :: TClass -> IO CString getName = (Ptr RawTClass -> IO CString) -> TClass -> IO CString forall a ca y cy. (Castable a ca, Castable y cy) => (ca -> IO cy) -> a -> IO y xform0 Ptr RawTClass -> IO CString c_tclass_getname isA :: TClass -> IO TClass isA = (Ptr RawTClass -> IO (Ptr RawTClass)) -> TClass -> IO TClass forall a ca y cy. (Castable a ca, Castable y cy) => (ca -> IO cy) -> a -> IO y xform0 Ptr RawTClass -> IO (Ptr RawTClass) c_tclass_isa paint :: forall c0. Castable c0 CString => TClass -> c0 -> IO () paint = (Ptr RawTClass -> CString -> IO ()) -> TClass -> c0 -> IO () forall a ca x1 cx1 y cy. (Castable a ca, Castable x1 cx1, Castable y cy) => (ca -> cx1 -> IO cy) -> a -> x1 -> IO y xform1 Ptr RawTClass -> CString -> IO () c_tclass_paint printObj :: forall c0. Castable c0 CString => TClass -> c0 -> IO () printObj = (Ptr RawTClass -> CString -> IO ()) -> TClass -> c0 -> IO () forall a ca x1 cx1 y cy. (Castable a ca, Castable x1 cx1, Castable y cy) => (ca -> cx1 -> IO cy) -> a -> x1 -> IO y xform1 Ptr RawTClass -> CString -> IO () c_tclass_printobj saveAs :: forall c1 c0. (Castable c1 CString, Castable c0 CString) => TClass -> c0 -> c1 -> IO () saveAs = (Ptr RawTClass -> CString -> CString -> IO ()) -> TClass -> c0 -> c1 -> IO () forall a ca x1 cx1 x2 cx2 y cy. (Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable y cy) => (ca -> cx1 -> cx2 -> IO cy) -> a -> x1 -> x2 -> IO y xform2 Ptr RawTClass -> CString -> CString -> IO () c_tclass_saveas write :: forall c0. Castable c0 CString => TClass -> c0 -> CInt -> CInt -> IO CInt write = (Ptr RawTClass -> CString -> CInt -> CInt -> IO CInt) -> TClass -> c0 -> CInt -> CInt -> IO CInt forall a ca x1 cx1 x2 cx2 x3 cx3 y cy. (Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable x3 cx3, Castable y cy) => (ca -> cx1 -> cx2 -> cx3 -> IO cy) -> a -> x1 -> x2 -> x3 -> IO y xform3 Ptr RawTClass -> CString -> CInt -> CInt -> IO CInt c_tclass_write write_ :: TClass -> IO CInt write_ = (Ptr RawTClass -> IO CInt) -> TClass -> IO CInt forall a ca y cy. (Castable a ca, Castable y cy) => (ca -> IO cy) -> a -> IO y xform0 Ptr RawTClass -> IO CInt c_tclass_write_ instance () => IDeletable (TClass) where delete :: TClass -> IO () delete = (Ptr RawTClass -> IO ()) -> TClass -> IO () forall a ca y cy. (Castable a ca, Castable y cy) => (ca -> IO cy) -> a -> IO y xform0 Ptr RawTClass -> IO () c_tclass_delete