{-# LANGUAGE EmptyDataDecls, FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, IncoherentInstances, MultiParamTypeClasses, OverlappingInstances, TemplateHaskell, TypeFamilies, TypeSynonymInstances #-} module HROOT.Graf.TCanvas.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.Graf.TCanvas.RawType import HROOT.Graf.TCanvas.FFI import HROOT.Graf.TCanvas.Interface import HROOT.Graf.TCanvas.Cast import HROOT.Graf.TCanvas.RawType import HROOT.Graf.TCanvas.Cast import HROOT.Graf.TCanvas.Interface import HROOT.Hist.TH1F.RawType import HROOT.Hist.TH1F.Cast import HROOT.Hist.TH1F.Interface import HROOT.Graf.TView.RawType import HROOT.Graf.TView.Cast import HROOT.Graf.TView.Interface import HROOT.Core.TClass.RawType import HROOT.Core.TClass.Cast import HROOT.Core.TClass.Interface import HROOT.Graf.TPad.RawType import HROOT.Graf.TPad.Cast import HROOT.Graf.TPad.Interface import HROOT.Core.TVirtualPad.RawType import HROOT.Core.TVirtualPad.Cast import HROOT.Core.TVirtualPad.Interface import HROOT.Core.TObject.RawType import HROOT.Core.TObject.Cast import HROOT.Core.TObject.Interface import HROOT.Core.TAttLine.RawType import HROOT.Core.TAttLine.Cast import HROOT.Core.TAttLine.Interface import HROOT.Core.TAttFill.RawType import HROOT.Core.TAttFill.Cast import HROOT.Core.TAttFill.Interface import HROOT.Core.TAttPad.RawType import HROOT.Core.TAttPad.Cast import HROOT.Core.TAttPad.Interface import HROOT.Core.TQObject.RawType import HROOT.Core.TQObject.Cast import HROOT.Core.TQObject.Interface import STD.Deletable.RawType import STD.Deletable.Cast import STD.Deletable.Interface instance () => ITCanvas (TCanvas) where toggleEditor :: TCanvas -> IO () toggleEditor = (Ptr RawTCanvas -> IO ()) -> TCanvas -> IO () forall a ca y cy. (Castable a ca, Castable y cy) => (ca -> IO cy) -> a -> IO y xform0 Ptr RawTCanvas -> IO () c_tcanvas_toggleeditor toggleEventStatus :: TCanvas -> IO () toggleEventStatus = (Ptr RawTCanvas -> IO ()) -> TCanvas -> IO () forall a ca y cy. (Castable a ca, Castable y cy) => (ca -> IO cy) -> a -> IO y xform0 Ptr RawTCanvas -> IO () c_tcanvas_toggleeventstatus toggleToolBar :: TCanvas -> IO () toggleToolBar = (Ptr RawTCanvas -> IO ()) -> TCanvas -> IO () forall a ca y cy. (Castable a ca, Castable y cy) => (ca -> IO cy) -> a -> IO y xform0 Ptr RawTCanvas -> IO () c_tcanvas_toggletoolbar toggleToolTips :: TCanvas -> IO () toggleToolTips = (Ptr RawTCanvas -> IO ()) -> TCanvas -> IO () forall a ca y cy. (Castable a ca, Castable y cy) => (ca -> IO cy) -> a -> IO y xform0 Ptr RawTCanvas -> IO () c_tcanvas_toggletooltips instance () => ITPad (TCanvas) where drawFrame :: forall c0. Castable c0 CString => TCanvas -> CDouble -> CDouble -> CDouble -> CDouble -> c0 -> IO TH1F drawFrame = (Ptr RawTCanvas -> CDouble -> CDouble -> CDouble -> CDouble -> CString -> IO (Ptr RawTH1F)) -> TCanvas -> CDouble -> CDouble -> CDouble -> CDouble -> c0 -> IO TH1F forall a ca x1 cx1 x2 cx2 x3 cx3 x4 cx4 x5 cx5 y cy. (Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable x3 cx3, Castable x4 cx4, Castable x5 cx5, Castable y cy) => (ca -> cx1 -> cx2 -> cx3 -> cx4 -> cx5 -> IO cy) -> a -> x1 -> x2 -> x3 -> x4 -> x5 -> IO y xform5 Ptr RawTCanvas -> CDouble -> CDouble -> CDouble -> CDouble -> CString -> IO (Ptr RawTH1F) c_tcanvas_drawframe getView :: TCanvas -> IO TView getView = (Ptr RawTCanvas -> IO (Ptr RawTView)) -> TCanvas -> IO TView forall a ca y cy. (Castable a ca, Castable y cy) => (ca -> IO cy) -> a -> IO y xform0 Ptr RawTCanvas -> IO (Ptr RawTView) c_tcanvas_getview setView0 :: TCanvas -> IO () setView0 = (Ptr RawTCanvas -> IO ()) -> TCanvas -> IO () forall a ca y cy. (Castable a ca, Castable y cy) => (ca -> IO cy) -> a -> IO y xform0 Ptr RawTCanvas -> IO () c_tcanvas_setview0 setView :: forall c0. (ITView c0, FPtr c0) => TCanvas -> c0 -> IO () setView = (Ptr RawTCanvas -> Ptr RawTView -> IO ()) -> TCanvas -> 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 RawTCanvas -> Ptr RawTView -> IO () c_tcanvas_setview instance () => ITVirtualPad (TCanvas) where cd :: TCanvas -> CInt -> IO TCanvas cd = (Ptr RawTCanvas -> CInt -> IO (Ptr RawTCanvas)) -> TCanvas -> CInt -> IO TCanvas 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 RawTCanvas -> CInt -> IO (Ptr RawTCanvas) c_tcanvas_cd divide_tvirtualpad :: TCanvas -> CInt -> CInt -> CFloat -> CFloat -> CInt -> IO () divide_tvirtualpad = (Ptr RawTCanvas -> CInt -> CInt -> CFloat -> CFloat -> CInt -> IO ()) -> TCanvas -> CInt -> CInt -> CFloat -> CFloat -> CInt -> IO () forall a ca x1 cx1 x2 cx2 x3 cx3 x4 cx4 x5 cx5 y cy. (Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable x3 cx3, Castable x4 cx4, Castable x5 cx5, Castable y cy) => (ca -> cx1 -> cx2 -> cx3 -> cx4 -> cx5 -> IO cy) -> a -> x1 -> x2 -> x3 -> x4 -> x5 -> IO y xform5 Ptr RawTCanvas -> CInt -> CInt -> CFloat -> CFloat -> CInt -> IO () c_tcanvas_divide_tvirtualpad modified :: TCanvas -> CBool -> IO () modified = (Ptr RawTCanvas -> CBool -> IO ()) -> TCanvas -> CBool -> 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 RawTCanvas -> CBool -> IO () c_tcanvas_modified range :: TCanvas -> CDouble -> CDouble -> CDouble -> CDouble -> IO () range = (Ptr RawTCanvas -> CDouble -> CDouble -> CDouble -> CDouble -> IO ()) -> TCanvas -> CDouble -> CDouble -> CDouble -> CDouble -> IO () forall a ca x1 cx1 x2 cx2 x3 cx3 x4 cx4 y cy. (Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable x3 cx3, Castable x4 cx4, Castable y cy) => (ca -> cx1 -> cx2 -> cx3 -> cx4 -> IO cy) -> a -> x1 -> x2 -> x3 -> x4 -> IO y xform4 Ptr RawTCanvas -> CDouble -> CDouble -> CDouble -> CDouble -> IO () c_tcanvas_range setLogx :: TCanvas -> CInt -> IO () setLogx = (Ptr RawTCanvas -> CInt -> IO ()) -> TCanvas -> CInt -> 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 RawTCanvas -> CInt -> IO () c_tcanvas_setlogx setLogy :: TCanvas -> CInt -> IO () setLogy = (Ptr RawTCanvas -> CInt -> IO ()) -> TCanvas -> CInt -> 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 RawTCanvas -> CInt -> IO () c_tcanvas_setlogy setLogz :: TCanvas -> CInt -> IO () setLogz = (Ptr RawTCanvas -> CInt -> IO ()) -> TCanvas -> CInt -> 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 RawTCanvas -> CInt -> IO () c_tcanvas_setlogz update :: TCanvas -> IO () update = (Ptr RawTCanvas -> IO ()) -> TCanvas -> IO () forall a ca y cy. (Castable a ca, Castable y cy) => (ca -> IO cy) -> a -> IO y xform0 Ptr RawTCanvas -> IO () c_tcanvas_update instance () => ITObject (TCanvas) where clear :: forall c0. Castable c0 CString => TCanvas -> c0 -> IO () clear = (Ptr RawTCanvas -> CString -> IO ()) -> TCanvas -> 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 RawTCanvas -> CString -> IO () c_tcanvas_clear draw :: forall c0. Castable c0 CString => TCanvas -> c0 -> IO () draw = (Ptr RawTCanvas -> CString -> IO ()) -> TCanvas -> 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 RawTCanvas -> CString -> IO () c_tcanvas_draw findObject :: forall c0. Castable c0 CString => TCanvas -> c0 -> IO TObject findObject = (Ptr RawTCanvas -> CString -> IO (Ptr RawTObject)) -> TCanvas -> 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 RawTCanvas -> CString -> IO (Ptr RawTObject) c_tcanvas_findobject getName :: TCanvas -> IO CString getName = (Ptr RawTCanvas -> IO CString) -> TCanvas -> IO CString forall a ca y cy. (Castable a ca, Castable y cy) => (ca -> IO cy) -> a -> IO y xform0 Ptr RawTCanvas -> IO CString c_tcanvas_getname isA :: TCanvas -> IO TClass isA = (Ptr RawTCanvas -> IO (Ptr RawTClass)) -> TCanvas -> IO TClass forall a ca y cy. (Castable a ca, Castable y cy) => (ca -> IO cy) -> a -> IO y xform0 Ptr RawTCanvas -> IO (Ptr RawTClass) c_tcanvas_isa paint :: forall c0. Castable c0 CString => TCanvas -> c0 -> IO () paint = (Ptr RawTCanvas -> CString -> IO ()) -> TCanvas -> 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 RawTCanvas -> CString -> IO () c_tcanvas_paint printObj :: forall c0. Castable c0 CString => TCanvas -> c0 -> IO () printObj = (Ptr RawTCanvas -> CString -> IO ()) -> TCanvas -> 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 RawTCanvas -> CString -> IO () c_tcanvas_printobj saveAs :: forall c1 c0. (Castable c1 CString, Castable c0 CString) => TCanvas -> c0 -> c1 -> IO () saveAs = (Ptr RawTCanvas -> CString -> CString -> IO ()) -> TCanvas -> 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 RawTCanvas -> CString -> CString -> IO () c_tcanvas_saveas write :: forall c0. Castable c0 CString => TCanvas -> c0 -> CInt -> CInt -> IO CInt write = (Ptr RawTCanvas -> CString -> CInt -> CInt -> IO CInt) -> TCanvas -> 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 RawTCanvas -> CString -> CInt -> CInt -> IO CInt c_tcanvas_write write_ :: TCanvas -> IO CInt write_ = (Ptr RawTCanvas -> IO CInt) -> TCanvas -> IO CInt forall a ca y cy. (Castable a ca, Castable y cy) => (ca -> IO cy) -> a -> IO y xform0 Ptr RawTCanvas -> IO CInt c_tcanvas_write_ instance () => ITAttLine (TCanvas) where getLineColor :: TCanvas -> IO CShort getLineColor = (Ptr RawTCanvas -> IO CShort) -> TCanvas -> IO CShort forall a ca y cy. (Castable a ca, Castable y cy) => (ca -> IO cy) -> a -> IO y xform0 Ptr RawTCanvas -> IO CShort c_tcanvas_getlinecolor getLineStyle :: TCanvas -> IO CShort getLineStyle = (Ptr RawTCanvas -> IO CShort) -> TCanvas -> IO CShort forall a ca y cy. (Castable a ca, Castable y cy) => (ca -> IO cy) -> a -> IO y xform0 Ptr RawTCanvas -> IO CShort c_tcanvas_getlinestyle getLineWidth :: TCanvas -> IO CShort getLineWidth = (Ptr RawTCanvas -> IO CShort) -> TCanvas -> IO CShort forall a ca y cy. (Castable a ca, Castable y cy) => (ca -> IO cy) -> a -> IO y xform0 Ptr RawTCanvas -> IO CShort c_tcanvas_getlinewidth resetAttLine :: forall c0. Castable c0 CString => TCanvas -> c0 -> IO () resetAttLine = (Ptr RawTCanvas -> CString -> IO ()) -> TCanvas -> 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 RawTCanvas -> CString -> IO () c_tcanvas_resetattline setLineAttributes :: TCanvas -> IO () setLineAttributes = (Ptr RawTCanvas -> IO ()) -> TCanvas -> IO () forall a ca y cy. (Castable a ca, Castable y cy) => (ca -> IO cy) -> a -> IO y xform0 Ptr RawTCanvas -> IO () c_tcanvas_setlineattributes setLineColor :: TCanvas -> CShort -> IO () setLineColor = (Ptr RawTCanvas -> CShort -> IO ()) -> TCanvas -> CShort -> 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 RawTCanvas -> CShort -> IO () c_tcanvas_setlinecolor setLineStyle :: TCanvas -> CShort -> IO () setLineStyle = (Ptr RawTCanvas -> CShort -> IO ()) -> TCanvas -> CShort -> 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 RawTCanvas -> CShort -> IO () c_tcanvas_setlinestyle setLineWidth :: TCanvas -> CShort -> IO () setLineWidth = (Ptr RawTCanvas -> CShort -> IO ()) -> TCanvas -> CShort -> 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 RawTCanvas -> CShort -> IO () c_tcanvas_setlinewidth instance () => ITAttFill (TCanvas) where setFillColor :: TCanvas -> CInt -> IO () setFillColor = (Ptr RawTCanvas -> CInt -> IO ()) -> TCanvas -> CInt -> 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 RawTCanvas -> CInt -> IO () c_tcanvas_setfillcolor setFillStyle :: TCanvas -> CInt -> IO () setFillStyle = (Ptr RawTCanvas -> CInt -> IO ()) -> TCanvas -> CInt -> 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 RawTCanvas -> CInt -> IO () c_tcanvas_setfillstyle instance () => ITAttPad (TCanvas) where resetAttPad :: forall c0. Castable c0 CString => TCanvas -> c0 -> IO () resetAttPad = (Ptr RawTCanvas -> CString -> IO ()) -> TCanvas -> 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 RawTCanvas -> CString -> IO () c_tcanvas_resetattpad setBottomMargin :: TCanvas -> CFloat -> IO () setBottomMargin = (Ptr RawTCanvas -> CFloat -> IO ()) -> TCanvas -> CFloat -> 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 RawTCanvas -> CFloat -> IO () c_tcanvas_setbottommargin setLeftMargin :: TCanvas -> CFloat -> IO () setLeftMargin = (Ptr RawTCanvas -> CFloat -> IO ()) -> TCanvas -> CFloat -> 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 RawTCanvas -> CFloat -> IO () c_tcanvas_setleftmargin setRightMargin :: TCanvas -> CFloat -> IO () setRightMargin = (Ptr RawTCanvas -> CFloat -> IO ()) -> TCanvas -> CFloat -> 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 RawTCanvas -> CFloat -> IO () c_tcanvas_setrightmargin setTopMargin :: TCanvas -> CFloat -> IO () setTopMargin = (Ptr RawTCanvas -> CFloat -> IO ()) -> TCanvas -> CFloat -> 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 RawTCanvas -> CFloat -> IO () c_tcanvas_settopmargin setMargin :: TCanvas -> CFloat -> CFloat -> CFloat -> CFloat -> IO () setMargin = (Ptr RawTCanvas -> CFloat -> CFloat -> CFloat -> CFloat -> IO ()) -> TCanvas -> CFloat -> CFloat -> CFloat -> CFloat -> IO () forall a ca x1 cx1 x2 cx2 x3 cx3 x4 cx4 y cy. (Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable x3 cx3, Castable x4 cx4, Castable y cy) => (ca -> cx1 -> cx2 -> cx3 -> cx4 -> IO cy) -> a -> x1 -> x2 -> x3 -> x4 -> IO y xform4 Ptr RawTCanvas -> CFloat -> CFloat -> CFloat -> CFloat -> IO () c_tcanvas_setmargin setAfile :: TCanvas -> CFloat -> IO () setAfile = (Ptr RawTCanvas -> CFloat -> IO ()) -> TCanvas -> CFloat -> 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 RawTCanvas -> CFloat -> IO () c_tcanvas_setafile setXfile :: TCanvas -> CFloat -> IO () setXfile = (Ptr RawTCanvas -> CFloat -> IO ()) -> TCanvas -> CFloat -> 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 RawTCanvas -> CFloat -> IO () c_tcanvas_setxfile setYfile :: TCanvas -> CFloat -> IO () setYfile = (Ptr RawTCanvas -> CFloat -> IO ()) -> TCanvas -> CFloat -> 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 RawTCanvas -> CFloat -> IO () c_tcanvas_setyfile setAstat :: TCanvas -> CFloat -> IO () setAstat = (Ptr RawTCanvas -> CFloat -> IO ()) -> TCanvas -> CFloat -> 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 RawTCanvas -> CFloat -> IO () c_tcanvas_setastat setXstat :: TCanvas -> CFloat -> IO () setXstat = (Ptr RawTCanvas -> CFloat -> IO ()) -> TCanvas -> CFloat -> 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 RawTCanvas -> CFloat -> IO () c_tcanvas_setxstat setYstat :: TCanvas -> CFloat -> IO () setYstat = (Ptr RawTCanvas -> CFloat -> IO ()) -> TCanvas -> CFloat -> 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 RawTCanvas -> CFloat -> IO () c_tcanvas_setystat instance () => ITQObject (TCanvas) where instance () => IDeletable (TCanvas) where delete :: TCanvas -> IO () delete = (Ptr RawTCanvas -> IO ()) -> TCanvas -> IO () forall a ca y cy. (Castable a ca, Castable y cy) => (ca -> IO cy) -> a -> IO y xform0 Ptr RawTCanvas -> IO () c_tcanvas_delete newTCanvas :: (Castable c1 CString, Castable c0 CString) => c0 -> c1 -> CInt -> CInt -> IO TCanvas newTCanvas :: forall c1 c0. (Castable c1 CString, Castable c0 CString) => c0 -> c1 -> CInt -> CInt -> IO TCanvas newTCanvas = (CString -> CString -> CInt -> CInt -> IO (Ptr RawTCanvas)) -> c0 -> c1 -> CInt -> CInt -> IO TCanvas 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 CString -> CString -> CInt -> CInt -> IO (Ptr RawTCanvas) c_tcanvas_newtcanvas