{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-} ---------- GENERATED FILE, EDITS WILL BE LOST ---------- module Graphics.UI.Qtah.Generated.Gui.QDragLeaveEvent ( castQDragLeaveEventToQEvent, castQEventToQDragLeaveEvent, QDragLeaveEventValue (..), QDragLeaveEventConstPtr (..), QDragLeaveEventPtr (..), QDragLeaveEventConst (..), castQDragLeaveEventToConst, QDragLeaveEvent (..), castQDragLeaveEventToNonconst, new, QDragLeaveEventSuper (..), QDragLeaveEventSuperConst (..), ) where import qualified Foreign as HoppyF import qualified Foreign.Hoppy.Runtime as HoppyFHR import qualified Graphics.UI.Qtah.Generated.Core.QEvent as M34 import Prelude (($), (.), (==)) import qualified Prelude as HoppyP foreign import ccall "genpop__QDragLeaveEvent_new" new' :: HoppyP.IO (HoppyF.Ptr QDragLeaveEvent) foreign import ccall "gencast__QDragLeaveEvent__QEvent" castQDragLeaveEventToQEvent :: HoppyF.Ptr QDragLeaveEventConst -> HoppyF.Ptr M34.QEventConst foreign import ccall "gencast__QEvent__QDragLeaveEvent" castQEventToQDragLeaveEvent :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr QDragLeaveEventConst foreign import ccall "gendel__QDragLeaveEvent" delete'QDragLeaveEvent :: HoppyF.Ptr QDragLeaveEventConst -> HoppyP.IO () foreign import ccall "&gendel__QDragLeaveEvent" deletePtr'QDragLeaveEvent :: HoppyF.FunPtr (HoppyF.Ptr QDragLeaveEventConst -> HoppyP.IO ()) class QDragLeaveEventValue a where withQDragLeaveEventPtr :: a -> (QDragLeaveEventConst -> HoppyP.IO b) -> HoppyP.IO b instance {-# OVERLAPPABLE #-} QDragLeaveEventConstPtr a => QDragLeaveEventValue a where withQDragLeaveEventPtr = HoppyP.flip ($) . toQDragLeaveEventConst class (M34.QEventConstPtr this) => QDragLeaveEventConstPtr this where toQDragLeaveEventConst :: this -> QDragLeaveEventConst class (QDragLeaveEventConstPtr this, M34.QEventPtr this) => QDragLeaveEventPtr this where toQDragLeaveEvent :: this -> QDragLeaveEvent data QDragLeaveEventConst = QDragLeaveEventConst (HoppyF.Ptr QDragLeaveEventConst) | QDragLeaveEventConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QDragLeaveEventConst) deriving (HoppyP.Show) instance HoppyP.Eq QDragLeaveEventConst where x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y instance HoppyP.Ord QDragLeaveEventConst where compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y) castQDragLeaveEventToConst :: QDragLeaveEvent -> QDragLeaveEventConst castQDragLeaveEventToConst (QDragLeaveEvent ptr') = QDragLeaveEventConst $ HoppyF.castPtr ptr' castQDragLeaveEventToConst (QDragLeaveEventGc fptr' ptr') = QDragLeaveEventConstGc fptr' $ HoppyF.castPtr ptr' instance HoppyFHR.CppPtr QDragLeaveEventConst where nullptr = QDragLeaveEventConst HoppyF.nullPtr withCppPtr (QDragLeaveEventConst ptr') f' = f' ptr' withCppPtr (QDragLeaveEventConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr' toPtr (QDragLeaveEventConst ptr') = ptr' toPtr (QDragLeaveEventConstGc _ ptr') = ptr' touchCppPtr (QDragLeaveEventConst _) = HoppyP.return () touchCppPtr (QDragLeaveEventConstGc fptr' _) = HoppyF.touchForeignPtr fptr' instance HoppyFHR.Deletable QDragLeaveEventConst where delete (QDragLeaveEventConst ptr') = delete'QDragLeaveEvent ptr' delete (QDragLeaveEventConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QDragLeaveEventConst", " object."] toGc this'@(QDragLeaveEventConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QDragLeaveEventConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QDragLeaveEvent :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ()) toGc this'@(QDragLeaveEventConstGc {}) = HoppyP.return this' instance QDragLeaveEventConstPtr QDragLeaveEventConst where toQDragLeaveEventConst = HoppyP.id instance M34.QEventConstPtr QDragLeaveEventConst where toQEventConst (QDragLeaveEventConst ptr') = M34.QEventConst $ castQDragLeaveEventToQEvent ptr' toQEventConst (QDragLeaveEventConstGc fptr' ptr') = M34.QEventConstGc fptr' $ castQDragLeaveEventToQEvent ptr' data QDragLeaveEvent = QDragLeaveEvent (HoppyF.Ptr QDragLeaveEvent) | QDragLeaveEventGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QDragLeaveEvent) deriving (HoppyP.Show) instance HoppyP.Eq QDragLeaveEvent where x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y instance HoppyP.Ord QDragLeaveEvent where compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y) castQDragLeaveEventToNonconst :: QDragLeaveEventConst -> QDragLeaveEvent castQDragLeaveEventToNonconst (QDragLeaveEventConst ptr') = QDragLeaveEvent $ HoppyF.castPtr ptr' castQDragLeaveEventToNonconst (QDragLeaveEventConstGc fptr' ptr') = QDragLeaveEventGc fptr' $ HoppyF.castPtr ptr' instance HoppyFHR.CppPtr QDragLeaveEvent where nullptr = QDragLeaveEvent HoppyF.nullPtr withCppPtr (QDragLeaveEvent ptr') f' = f' ptr' withCppPtr (QDragLeaveEventGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr' toPtr (QDragLeaveEvent ptr') = ptr' toPtr (QDragLeaveEventGc _ ptr') = ptr' touchCppPtr (QDragLeaveEvent _) = HoppyP.return () touchCppPtr (QDragLeaveEventGc fptr' _) = HoppyF.touchForeignPtr fptr' instance HoppyFHR.Deletable QDragLeaveEvent where delete (QDragLeaveEvent ptr') = delete'QDragLeaveEvent $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QDragLeaveEventConst) delete (QDragLeaveEventGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QDragLeaveEvent", " object."] toGc this'@(QDragLeaveEvent ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QDragLeaveEventGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QDragLeaveEvent :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ()) toGc this'@(QDragLeaveEventGc {}) = HoppyP.return this' instance QDragLeaveEventConstPtr QDragLeaveEvent where toQDragLeaveEventConst (QDragLeaveEvent ptr') = QDragLeaveEventConst $ (HoppyF.castPtr :: HoppyF.Ptr QDragLeaveEvent -> HoppyF.Ptr QDragLeaveEventConst) ptr' toQDragLeaveEventConst (QDragLeaveEventGc fptr' ptr') = QDragLeaveEventConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QDragLeaveEvent -> HoppyF.Ptr QDragLeaveEventConst) ptr' instance QDragLeaveEventPtr QDragLeaveEvent where toQDragLeaveEvent = HoppyP.id instance M34.QEventConstPtr QDragLeaveEvent where toQEventConst (QDragLeaveEvent ptr') = M34.QEventConst $ castQDragLeaveEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QDragLeaveEvent -> HoppyF.Ptr QDragLeaveEventConst) ptr' toQEventConst (QDragLeaveEventGc fptr' ptr') = M34.QEventConstGc fptr' $ castQDragLeaveEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QDragLeaveEvent -> HoppyF.Ptr QDragLeaveEventConst) ptr' instance M34.QEventPtr QDragLeaveEvent where toQEvent (QDragLeaveEvent ptr') = M34.QEvent $ (HoppyF.castPtr :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr M34.QEvent) $ castQDragLeaveEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QDragLeaveEvent -> HoppyF.Ptr QDragLeaveEventConst) ptr' toQEvent (QDragLeaveEventGc fptr' ptr') = M34.QEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M34.QEventConst -> HoppyF.Ptr M34.QEvent) $ castQDragLeaveEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QDragLeaveEvent -> HoppyF.Ptr QDragLeaveEventConst) ptr' new :: (HoppyP.IO QDragLeaveEvent) new = HoppyP.fmap QDragLeaveEvent (new') class QDragLeaveEventSuper a where downToQDragLeaveEvent :: a -> QDragLeaveEvent instance QDragLeaveEventSuper M34.QEvent where downToQDragLeaveEvent = castQDragLeaveEventToNonconst . cast' . M34.castQEventToConst where cast' (M34.QEventConst ptr') = QDragLeaveEventConst $ castQEventToQDragLeaveEvent ptr' cast' (M34.QEventConstGc fptr' ptr') = QDragLeaveEventConstGc fptr' $ castQEventToQDragLeaveEvent ptr' class QDragLeaveEventSuperConst a where downToQDragLeaveEventConst :: a -> QDragLeaveEventConst instance QDragLeaveEventSuperConst M34.QEventConst where downToQDragLeaveEventConst = cast' where cast' (M34.QEventConst ptr') = QDragLeaveEventConst $ castQEventToQDragLeaveEvent ptr' cast' (M34.QEventConstGc fptr' ptr') = QDragLeaveEventConstGc fptr' $ castQEventToQDragLeaveEvent ptr' instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QDragLeaveEvent)) QDragLeaveEvent where assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value' instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QDragLeaveEvent)) QDragLeaveEvent where decode = HoppyP.fmap QDragLeaveEvent . HoppyF.peek