qtah-qt5-0.8.0: src/Graphics/UI/Qtah/Generated/Core/QDebugStateSaver.hs
{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
---------- GENERATED FILE, EDITS WILL BE LOST ----------
module Graphics.UI.Qtah.Generated.Core.QDebugStateSaver (
QDebugStateSaverValue (..),
QDebugStateSaverConstPtr (..),
QDebugStateSaverPtr (..),
QDebugStateSaverConst (..),
castQDebugStateSaverToConst,
QDebugStateSaver (..),
castQDebugStateSaverToNonconst,
newWithDebug,
QDebugStateSaverSuper (..),
QDebugStateSaverSuperConst (..),
) where
import qualified Foreign as HoppyF
import qualified Foreign.Hoppy.Runtime as HoppyFHR
import qualified Graphics.UI.Qtah.Generated.Core.QDebug as M26
import Prelude (($), (.), (==))
import qualified Prelude as HoppyP
foreign import ccall "genpop__QDebugStateSaver_newWithDebug" newWithDebug' :: HoppyF.Ptr M26.QDebug -> HoppyP.IO (HoppyF.Ptr QDebugStateSaver)
foreign import ccall "gendel__QDebugStateSaver" delete'QDebugStateSaver :: HoppyF.Ptr QDebugStateSaverConst -> HoppyP.IO ()
foreign import ccall "&gendel__QDebugStateSaver" deletePtr'QDebugStateSaver :: HoppyF.FunPtr (HoppyF.Ptr QDebugStateSaverConst -> HoppyP.IO ())
class QDebugStateSaverValue a where
withQDebugStateSaverPtr :: a -> (QDebugStateSaverConst -> HoppyP.IO b) -> HoppyP.IO b
instance {-# OVERLAPPABLE #-} QDebugStateSaverConstPtr a => QDebugStateSaverValue a where
withQDebugStateSaverPtr = HoppyP.flip ($) . toQDebugStateSaverConst
class (HoppyFHR.CppPtr this) => QDebugStateSaverConstPtr this where
toQDebugStateSaverConst :: this -> QDebugStateSaverConst
class (QDebugStateSaverConstPtr this) => QDebugStateSaverPtr this where
toQDebugStateSaver :: this -> QDebugStateSaver
data QDebugStateSaverConst =
QDebugStateSaverConst (HoppyF.Ptr QDebugStateSaverConst)
| QDebugStateSaverConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QDebugStateSaverConst)
deriving (HoppyP.Show)
instance HoppyP.Eq QDebugStateSaverConst where
x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
instance HoppyP.Ord QDebugStateSaverConst where
compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
castQDebugStateSaverToConst :: QDebugStateSaver -> QDebugStateSaverConst
castQDebugStateSaverToConst (QDebugStateSaver ptr') = QDebugStateSaverConst $ HoppyF.castPtr ptr'
castQDebugStateSaverToConst (QDebugStateSaverGc fptr' ptr') = QDebugStateSaverConstGc fptr' $ HoppyF.castPtr ptr'
instance HoppyFHR.CppPtr QDebugStateSaverConst where
nullptr = QDebugStateSaverConst HoppyF.nullPtr
withCppPtr (QDebugStateSaverConst ptr') f' = f' ptr'
withCppPtr (QDebugStateSaverConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
toPtr (QDebugStateSaverConst ptr') = ptr'
toPtr (QDebugStateSaverConstGc _ ptr') = ptr'
touchCppPtr (QDebugStateSaverConst _) = HoppyP.return ()
touchCppPtr (QDebugStateSaverConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
instance HoppyFHR.Deletable QDebugStateSaverConst where
delete (QDebugStateSaverConst ptr') = delete'QDebugStateSaver ptr'
delete (QDebugStateSaverConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QDebugStateSaverConst", " object."]
toGc this'@(QDebugStateSaverConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QDebugStateSaverConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QDebugStateSaver :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
toGc this'@(QDebugStateSaverConstGc {}) = HoppyP.return this'
instance QDebugStateSaverConstPtr QDebugStateSaverConst where
toQDebugStateSaverConst = HoppyP.id
data QDebugStateSaver =
QDebugStateSaver (HoppyF.Ptr QDebugStateSaver)
| QDebugStateSaverGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QDebugStateSaver)
deriving (HoppyP.Show)
instance HoppyP.Eq QDebugStateSaver where
x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
instance HoppyP.Ord QDebugStateSaver where
compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
castQDebugStateSaverToNonconst :: QDebugStateSaverConst -> QDebugStateSaver
castQDebugStateSaverToNonconst (QDebugStateSaverConst ptr') = QDebugStateSaver $ HoppyF.castPtr ptr'
castQDebugStateSaverToNonconst (QDebugStateSaverConstGc fptr' ptr') = QDebugStateSaverGc fptr' $ HoppyF.castPtr ptr'
instance HoppyFHR.CppPtr QDebugStateSaver where
nullptr = QDebugStateSaver HoppyF.nullPtr
withCppPtr (QDebugStateSaver ptr') f' = f' ptr'
withCppPtr (QDebugStateSaverGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
toPtr (QDebugStateSaver ptr') = ptr'
toPtr (QDebugStateSaverGc _ ptr') = ptr'
touchCppPtr (QDebugStateSaver _) = HoppyP.return ()
touchCppPtr (QDebugStateSaverGc fptr' _) = HoppyF.touchForeignPtr fptr'
instance HoppyFHR.Deletable QDebugStateSaver where
delete (QDebugStateSaver ptr') = delete'QDebugStateSaver $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QDebugStateSaverConst)
delete (QDebugStateSaverGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QDebugStateSaver", " object."]
toGc this'@(QDebugStateSaver ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QDebugStateSaverGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QDebugStateSaver :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
toGc this'@(QDebugStateSaverGc {}) = HoppyP.return this'
instance QDebugStateSaverConstPtr QDebugStateSaver where
toQDebugStateSaverConst (QDebugStateSaver ptr') = QDebugStateSaverConst $ (HoppyF.castPtr :: HoppyF.Ptr QDebugStateSaver -> HoppyF.Ptr QDebugStateSaverConst) ptr'
toQDebugStateSaverConst (QDebugStateSaverGc fptr' ptr') = QDebugStateSaverConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QDebugStateSaver -> HoppyF.Ptr QDebugStateSaverConst) ptr'
instance QDebugStateSaverPtr QDebugStateSaver where
toQDebugStateSaver = HoppyP.id
newWithDebug :: (M26.QDebugPtr arg'1) => (arg'1) -> (HoppyP.IO QDebugStateSaver)
newWithDebug arg'1 =
HoppyFHR.withCppPtr (M26.toQDebug arg'1) $ \arg'1' ->
HoppyP.fmap QDebugStateSaver
(newWithDebug' arg'1')
class QDebugStateSaverSuper a where
downToQDebugStateSaver :: a -> QDebugStateSaver
class QDebugStateSaverSuperConst a where
downToQDebugStateSaverConst :: a -> QDebugStateSaverConst
instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QDebugStateSaver)) QDebugStateSaver where
assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QDebugStateSaver)) QDebugStateSaver where
decode = HoppyP.fmap QDebugStateSaver . HoppyF.peek