{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-} ---------- GENERATED FILE, EDITS WILL BE LOST ---------- module Graphics.UI.Qtah.Generated.Internal.SceneEventListener ( castSceneEventListenerToQGraphicsItem, castQGraphicsItemToSceneEventListener, SceneEventListenerValue (..), SceneEventListenerConstPtr (..), SceneEventListenerPtr (..), doNotNotifyOnDelete, SceneEventListenerConst (..), castSceneEventListenerToConst, SceneEventListener (..), castSceneEventListenerToNonconst, new, SceneEventListenerSuper (..), SceneEventListenerSuperConst (..), ) where import qualified Foreign as HoppyF import qualified Foreign.C as HoppyFC import qualified Foreign.Hoppy.Runtime as HoppyFHR import qualified Graphics.UI.Qtah.Generated.Core.QEvent as M34 import qualified Graphics.UI.Qtah.Generated.Widgets.QGraphicsItem as M404 import qualified Graphics.UI.Qtah.Internal.Callback as M348 import Prelude (($), (.), (==), (>>=)) import qualified Prelude as HoppyP foreign import ccall "genpop__SceneEventListener_new" new' :: HoppyF.Ptr M404.QGraphicsItem -> HoppyFHR.CCallback (HoppyF.Ptr M404.QGraphicsItem -> HoppyF.Ptr M34.QEvent -> HoppyP.IO HoppyFC.CBool) -> HoppyFHR.CCallback (HoppyP.IO ()) -> HoppyP.IO (HoppyF.Ptr SceneEventListener) foreign import ccall "genpop__SceneEventListener_doNotNotifyOnDelete" doNotNotifyOnDelete' :: HoppyF.Ptr SceneEventListener -> HoppyP.IO () foreign import ccall "gencast__SceneEventListener__QGraphicsItem" castSceneEventListenerToQGraphicsItem :: HoppyF.Ptr SceneEventListenerConst -> HoppyF.Ptr M404.QGraphicsItemConst foreign import ccall "gencast__QGraphicsItem__SceneEventListener" castQGraphicsItemToSceneEventListener :: HoppyF.Ptr M404.QGraphicsItemConst -> HoppyF.Ptr SceneEventListenerConst foreign import ccall "gendel__SceneEventListener" delete'SceneEventListener :: HoppyF.Ptr SceneEventListenerConst -> HoppyP.IO () foreign import ccall "&gendel__SceneEventListener" deletePtr'SceneEventListener :: HoppyF.FunPtr (HoppyF.Ptr SceneEventListenerConst -> HoppyP.IO ()) class SceneEventListenerValue a where withSceneEventListenerPtr :: a -> (SceneEventListenerConst -> HoppyP.IO b) -> HoppyP.IO b instance {-# OVERLAPPABLE #-} SceneEventListenerConstPtr a => SceneEventListenerValue a where withSceneEventListenerPtr = HoppyP.flip ($) . toSceneEventListenerConst class (M404.QGraphicsItemConstPtr this) => SceneEventListenerConstPtr this where toSceneEventListenerConst :: this -> SceneEventListenerConst class (SceneEventListenerConstPtr this, M404.QGraphicsItemPtr this) => SceneEventListenerPtr this where toSceneEventListener :: this -> SceneEventListener doNotNotifyOnDelete :: (SceneEventListenerPtr this) => (this) {- ^ this -} -> (HoppyP.IO ()) doNotNotifyOnDelete arg'1 = HoppyFHR.withCppPtr (toSceneEventListener arg'1) $ \arg'1' -> (doNotNotifyOnDelete' arg'1') data SceneEventListenerConst = SceneEventListenerConst (HoppyF.Ptr SceneEventListenerConst) | SceneEventListenerConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr SceneEventListenerConst) deriving (HoppyP.Show) instance HoppyP.Eq SceneEventListenerConst where x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y instance HoppyP.Ord SceneEventListenerConst where compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y) castSceneEventListenerToConst :: SceneEventListener -> SceneEventListenerConst castSceneEventListenerToConst (SceneEventListener ptr') = SceneEventListenerConst $ HoppyF.castPtr ptr' castSceneEventListenerToConst (SceneEventListenerGc fptr' ptr') = SceneEventListenerConstGc fptr' $ HoppyF.castPtr ptr' instance HoppyFHR.CppPtr SceneEventListenerConst where nullptr = SceneEventListenerConst HoppyF.nullPtr withCppPtr (SceneEventListenerConst ptr') f' = f' ptr' withCppPtr (SceneEventListenerConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr' toPtr (SceneEventListenerConst ptr') = ptr' toPtr (SceneEventListenerConstGc _ ptr') = ptr' touchCppPtr (SceneEventListenerConst _) = HoppyP.return () touchCppPtr (SceneEventListenerConstGc fptr' _) = HoppyF.touchForeignPtr fptr' instance HoppyFHR.Deletable SceneEventListenerConst where delete (SceneEventListenerConst ptr') = delete'SceneEventListener ptr' delete (SceneEventListenerConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "SceneEventListenerConst", " object."] toGc this'@(SceneEventListenerConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip SceneEventListenerConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'SceneEventListener :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ()) toGc this'@(SceneEventListenerConstGc {}) = HoppyP.return this' instance SceneEventListenerConstPtr SceneEventListenerConst where toSceneEventListenerConst = HoppyP.id instance M404.QGraphicsItemConstPtr SceneEventListenerConst where toQGraphicsItemConst (SceneEventListenerConst ptr') = M404.QGraphicsItemConst $ castSceneEventListenerToQGraphicsItem ptr' toQGraphicsItemConst (SceneEventListenerConstGc fptr' ptr') = M404.QGraphicsItemConstGc fptr' $ castSceneEventListenerToQGraphicsItem ptr' data SceneEventListener = SceneEventListener (HoppyF.Ptr SceneEventListener) | SceneEventListenerGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr SceneEventListener) deriving (HoppyP.Show) instance HoppyP.Eq SceneEventListener where x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y instance HoppyP.Ord SceneEventListener where compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y) castSceneEventListenerToNonconst :: SceneEventListenerConst -> SceneEventListener castSceneEventListenerToNonconst (SceneEventListenerConst ptr') = SceneEventListener $ HoppyF.castPtr ptr' castSceneEventListenerToNonconst (SceneEventListenerConstGc fptr' ptr') = SceneEventListenerGc fptr' $ HoppyF.castPtr ptr' instance HoppyFHR.CppPtr SceneEventListener where nullptr = SceneEventListener HoppyF.nullPtr withCppPtr (SceneEventListener ptr') f' = f' ptr' withCppPtr (SceneEventListenerGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr' toPtr (SceneEventListener ptr') = ptr' toPtr (SceneEventListenerGc _ ptr') = ptr' touchCppPtr (SceneEventListener _) = HoppyP.return () touchCppPtr (SceneEventListenerGc fptr' _) = HoppyF.touchForeignPtr fptr' instance HoppyFHR.Deletable SceneEventListener where delete (SceneEventListener ptr') = delete'SceneEventListener $ (HoppyF.castPtr ptr' :: HoppyF.Ptr SceneEventListenerConst) delete (SceneEventListenerGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "SceneEventListener", " object."] toGc this'@(SceneEventListener ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip SceneEventListenerGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'SceneEventListener :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ()) toGc this'@(SceneEventListenerGc {}) = HoppyP.return this' instance SceneEventListenerConstPtr SceneEventListener where toSceneEventListenerConst (SceneEventListener ptr') = SceneEventListenerConst $ (HoppyF.castPtr :: HoppyF.Ptr SceneEventListener -> HoppyF.Ptr SceneEventListenerConst) ptr' toSceneEventListenerConst (SceneEventListenerGc fptr' ptr') = SceneEventListenerConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr SceneEventListener -> HoppyF.Ptr SceneEventListenerConst) ptr' instance SceneEventListenerPtr SceneEventListener where toSceneEventListener = HoppyP.id instance M404.QGraphicsItemConstPtr SceneEventListener where toQGraphicsItemConst (SceneEventListener ptr') = M404.QGraphicsItemConst $ castSceneEventListenerToQGraphicsItem $ (HoppyF.castPtr :: HoppyF.Ptr SceneEventListener -> HoppyF.Ptr SceneEventListenerConst) ptr' toQGraphicsItemConst (SceneEventListenerGc fptr' ptr') = M404.QGraphicsItemConstGc fptr' $ castSceneEventListenerToQGraphicsItem $ (HoppyF.castPtr :: HoppyF.Ptr SceneEventListener -> HoppyF.Ptr SceneEventListenerConst) ptr' instance M404.QGraphicsItemPtr SceneEventListener where toQGraphicsItem (SceneEventListener ptr') = M404.QGraphicsItem $ (HoppyF.castPtr :: HoppyF.Ptr M404.QGraphicsItemConst -> HoppyF.Ptr M404.QGraphicsItem) $ castSceneEventListenerToQGraphicsItem $ (HoppyF.castPtr :: HoppyF.Ptr SceneEventListener -> HoppyF.Ptr SceneEventListenerConst) ptr' toQGraphicsItem (SceneEventListenerGc fptr' ptr') = M404.QGraphicsItemGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M404.QGraphicsItemConst -> HoppyF.Ptr M404.QGraphicsItem) $ castSceneEventListenerToQGraphicsItem $ (HoppyF.castPtr :: HoppyF.Ptr SceneEventListener -> HoppyF.Ptr SceneEventListenerConst) ptr' new :: (M404.QGraphicsItemPtr arg'1) => (arg'1) -> (M404.QGraphicsItem -> M34.QEvent -> HoppyP.IO HoppyP.Bool) -> (HoppyP.IO ()) -> (HoppyP.IO SceneEventListener) new arg'1 arg'2 arg'3 = HoppyFHR.withCppPtr (M404.toQGraphicsItem arg'1) $ \arg'1' -> ( M348.callbackPtrQGraphicsItemPtrQEventBool_new ) arg'2 >>= \arg'2' -> ( M348.callbackVoid_new ) arg'3 >>= \arg'3' -> HoppyP.fmap SceneEventListener (new' arg'1' arg'2' arg'3') class SceneEventListenerSuper a where downToSceneEventListener :: a -> SceneEventListener instance SceneEventListenerSuper M404.QGraphicsItem where downToSceneEventListener = castSceneEventListenerToNonconst . cast' . M404.castQGraphicsItemToConst where cast' (M404.QGraphicsItemConst ptr') = SceneEventListenerConst $ castQGraphicsItemToSceneEventListener ptr' cast' (M404.QGraphicsItemConstGc fptr' ptr') = SceneEventListenerConstGc fptr' $ castQGraphicsItemToSceneEventListener ptr' class SceneEventListenerSuperConst a where downToSceneEventListenerConst :: a -> SceneEventListenerConst instance SceneEventListenerSuperConst M404.QGraphicsItemConst where downToSceneEventListenerConst = cast' where cast' (M404.QGraphicsItemConst ptr') = SceneEventListenerConst $ castQGraphicsItemToSceneEventListener ptr' cast' (M404.QGraphicsItemConstGc fptr' ptr') = SceneEventListenerConstGc fptr' $ castQGraphicsItemToSceneEventListener ptr' instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr SceneEventListener)) SceneEventListener where assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value' instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr SceneEventListener)) SceneEventListener where decode = HoppyP.fmap SceneEventListener . HoppyF.peek