packages feed

qtah-qt5-0.8.0: src/Graphics/UI/Qtah/Generated/Core/QPauseAnimation.hs

{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
---------- GENERATED FILE, EDITS WILL BE LOST ----------

module Graphics.UI.Qtah.Generated.Core.QPauseAnimation (
  castQPauseAnimationToQAbstractAnimation,
  castQAbstractAnimationToQPauseAnimation,
  castQPauseAnimationToQObject,
  castQObjectToQPauseAnimation,
  QPauseAnimationValue (..),
  QPauseAnimationConstPtr (..),
  QPauseAnimationPtr (..),
  setDuration,
  QPauseAnimationConst (..),
  castQPauseAnimationToConst,
  QPauseAnimation (..),
  castQPauseAnimationToNonconst,
  QPauseAnimationSuper (..),
  QPauseAnimationSuperConst (..),
  ) 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.QAbstractAnimation as M2
import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
import Prelude (($), (.), (==), (>>=))
import qualified Prelude as HoppyP

foreign import ccall "genpop__QPauseAnimation_setDuration" setDuration' ::  HoppyF.Ptr QPauseAnimation -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "gencast__QPauseAnimation__QAbstractAnimation" castQPauseAnimationToQAbstractAnimation :: HoppyF.Ptr QPauseAnimationConst -> HoppyF.Ptr M2.QAbstractAnimationConst
foreign import ccall "gencast__QAbstractAnimation__QPauseAnimation" castQAbstractAnimationToQPauseAnimation :: HoppyF.Ptr M2.QAbstractAnimationConst -> HoppyF.Ptr QPauseAnimationConst
foreign import ccall "gencast__QPauseAnimation__QObject" castQPauseAnimationToQObject :: HoppyF.Ptr QPauseAnimationConst -> HoppyF.Ptr M94.QObjectConst
foreign import ccall "gencast__QObject__QPauseAnimation" castQObjectToQPauseAnimation :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QPauseAnimationConst
foreign import ccall "gendel__QPauseAnimation" delete'QPauseAnimation :: HoppyF.Ptr QPauseAnimationConst -> HoppyP.IO ()
foreign import ccall "&gendel__QPauseAnimation" deletePtr'QPauseAnimation :: HoppyF.FunPtr (HoppyF.Ptr QPauseAnimationConst -> HoppyP.IO ())

class QPauseAnimationValue a where
  withQPauseAnimationPtr :: a -> (QPauseAnimationConst -> HoppyP.IO b) -> HoppyP.IO b

instance {-# OVERLAPPABLE #-} QPauseAnimationConstPtr a => QPauseAnimationValue a where
  withQPauseAnimationPtr = HoppyP.flip ($) . toQPauseAnimationConst

class (M2.QAbstractAnimationConstPtr this) => QPauseAnimationConstPtr this where
  toQPauseAnimationConst :: this -> QPauseAnimationConst

class (QPauseAnimationConstPtr this, M2.QAbstractAnimationPtr this) => QPauseAnimationPtr this where
  toQPauseAnimation :: this -> QPauseAnimation

setDuration :: (QPauseAnimationPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
setDuration arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQPauseAnimation arg'1) $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'2 >>= \arg'2' ->
  (setDuration' arg'1' arg'2')

data QPauseAnimationConst =
    QPauseAnimationConst (HoppyF.Ptr QPauseAnimationConst)
  | QPauseAnimationConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QPauseAnimationConst)
  deriving (HoppyP.Show)

instance HoppyP.Eq QPauseAnimationConst where
  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y

instance HoppyP.Ord QPauseAnimationConst where
  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)

castQPauseAnimationToConst :: QPauseAnimation -> QPauseAnimationConst
castQPauseAnimationToConst (QPauseAnimation ptr') = QPauseAnimationConst $ HoppyF.castPtr ptr'
castQPauseAnimationToConst (QPauseAnimationGc fptr' ptr') = QPauseAnimationConstGc fptr' $ HoppyF.castPtr ptr'

instance HoppyFHR.CppPtr QPauseAnimationConst where
  nullptr = QPauseAnimationConst HoppyF.nullPtr
  
  withCppPtr (QPauseAnimationConst ptr') f' = f' ptr'
  withCppPtr (QPauseAnimationConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
  
  toPtr (QPauseAnimationConst ptr') = ptr'
  toPtr (QPauseAnimationConstGc _ ptr') = ptr'
  
  touchCppPtr (QPauseAnimationConst _) = HoppyP.return ()
  touchCppPtr (QPauseAnimationConstGc fptr' _) = HoppyF.touchForeignPtr fptr'

instance HoppyFHR.Deletable QPauseAnimationConst where
  delete (QPauseAnimationConst ptr') = delete'QPauseAnimation ptr'
  delete (QPauseAnimationConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QPauseAnimationConst", " object."]
  
  toGc this'@(QPauseAnimationConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QPauseAnimationConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QPauseAnimation :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
  toGc this'@(QPauseAnimationConstGc {}) = HoppyP.return this'

instance QPauseAnimationConstPtr QPauseAnimationConst where
  toQPauseAnimationConst = HoppyP.id

instance M2.QAbstractAnimationConstPtr QPauseAnimationConst where
  toQAbstractAnimationConst (QPauseAnimationConst ptr') = M2.QAbstractAnimationConst $ castQPauseAnimationToQAbstractAnimation ptr'
  toQAbstractAnimationConst (QPauseAnimationConstGc fptr' ptr') = M2.QAbstractAnimationConstGc fptr' $ castQPauseAnimationToQAbstractAnimation ptr'

instance M94.QObjectConstPtr QPauseAnimationConst where
  toQObjectConst (QPauseAnimationConst ptr') = M94.QObjectConst $ castQPauseAnimationToQObject ptr'
  toQObjectConst (QPauseAnimationConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQPauseAnimationToQObject ptr'

data QPauseAnimation =
    QPauseAnimation (HoppyF.Ptr QPauseAnimation)
  | QPauseAnimationGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QPauseAnimation)
  deriving (HoppyP.Show)

instance HoppyP.Eq QPauseAnimation where
  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y

instance HoppyP.Ord QPauseAnimation where
  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)

castQPauseAnimationToNonconst :: QPauseAnimationConst -> QPauseAnimation
castQPauseAnimationToNonconst (QPauseAnimationConst ptr') = QPauseAnimation $ HoppyF.castPtr ptr'
castQPauseAnimationToNonconst (QPauseAnimationConstGc fptr' ptr') = QPauseAnimationGc fptr' $ HoppyF.castPtr ptr'

instance HoppyFHR.CppPtr QPauseAnimation where
  nullptr = QPauseAnimation HoppyF.nullPtr
  
  withCppPtr (QPauseAnimation ptr') f' = f' ptr'
  withCppPtr (QPauseAnimationGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
  
  toPtr (QPauseAnimation ptr') = ptr'
  toPtr (QPauseAnimationGc _ ptr') = ptr'
  
  touchCppPtr (QPauseAnimation _) = HoppyP.return ()
  touchCppPtr (QPauseAnimationGc fptr' _) = HoppyF.touchForeignPtr fptr'

instance HoppyFHR.Deletable QPauseAnimation where
  delete (QPauseAnimation ptr') = delete'QPauseAnimation $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QPauseAnimationConst)
  delete (QPauseAnimationGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QPauseAnimation", " object."]
  
  toGc this'@(QPauseAnimation ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QPauseAnimationGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QPauseAnimation :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
  toGc this'@(QPauseAnimationGc {}) = HoppyP.return this'

instance QPauseAnimationConstPtr QPauseAnimation where
  toQPauseAnimationConst (QPauseAnimation ptr') = QPauseAnimationConst $ (HoppyF.castPtr :: HoppyF.Ptr QPauseAnimation -> HoppyF.Ptr QPauseAnimationConst) ptr'
  toQPauseAnimationConst (QPauseAnimationGc fptr' ptr') = QPauseAnimationConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QPauseAnimation -> HoppyF.Ptr QPauseAnimationConst) ptr'

instance QPauseAnimationPtr QPauseAnimation where
  toQPauseAnimation = HoppyP.id

instance M2.QAbstractAnimationConstPtr QPauseAnimation where
  toQAbstractAnimationConst (QPauseAnimation ptr') = M2.QAbstractAnimationConst $ castQPauseAnimationToQAbstractAnimation $ (HoppyF.castPtr :: HoppyF.Ptr QPauseAnimation -> HoppyF.Ptr QPauseAnimationConst) ptr'
  toQAbstractAnimationConst (QPauseAnimationGc fptr' ptr') = M2.QAbstractAnimationConstGc fptr' $ castQPauseAnimationToQAbstractAnimation $ (HoppyF.castPtr :: HoppyF.Ptr QPauseAnimation -> HoppyF.Ptr QPauseAnimationConst) ptr'

instance M2.QAbstractAnimationPtr QPauseAnimation where
  toQAbstractAnimation (QPauseAnimation ptr') = M2.QAbstractAnimation $ (HoppyF.castPtr :: HoppyF.Ptr M2.QAbstractAnimationConst -> HoppyF.Ptr M2.QAbstractAnimation) $ castQPauseAnimationToQAbstractAnimation $ (HoppyF.castPtr :: HoppyF.Ptr QPauseAnimation -> HoppyF.Ptr QPauseAnimationConst) ptr'
  toQAbstractAnimation (QPauseAnimationGc fptr' ptr') = M2.QAbstractAnimationGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M2.QAbstractAnimationConst -> HoppyF.Ptr M2.QAbstractAnimation) $ castQPauseAnimationToQAbstractAnimation $ (HoppyF.castPtr :: HoppyF.Ptr QPauseAnimation -> HoppyF.Ptr QPauseAnimationConst) ptr'

instance M94.QObjectConstPtr QPauseAnimation where
  toQObjectConst (QPauseAnimation ptr') = M94.QObjectConst $ castQPauseAnimationToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QPauseAnimation -> HoppyF.Ptr QPauseAnimationConst) ptr'
  toQObjectConst (QPauseAnimationGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQPauseAnimationToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QPauseAnimation -> HoppyF.Ptr QPauseAnimationConst) ptr'

instance M94.QObjectPtr QPauseAnimation where
  toQObject (QPauseAnimation ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQPauseAnimationToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QPauseAnimation -> HoppyF.Ptr QPauseAnimationConst) ptr'
  toQObject (QPauseAnimationGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQPauseAnimationToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QPauseAnimation -> HoppyF.Ptr QPauseAnimationConst) ptr'

class QPauseAnimationSuper a where
  downToQPauseAnimation :: a -> QPauseAnimation

instance QPauseAnimationSuper M2.QAbstractAnimation where
  downToQPauseAnimation = castQPauseAnimationToNonconst . cast' . M2.castQAbstractAnimationToConst
    where
      cast' (M2.QAbstractAnimationConst ptr') = QPauseAnimationConst $ castQAbstractAnimationToQPauseAnimation ptr'
      cast' (M2.QAbstractAnimationConstGc fptr' ptr') = QPauseAnimationConstGc fptr' $ castQAbstractAnimationToQPauseAnimation ptr'
instance QPauseAnimationSuper M94.QObject where
  downToQPauseAnimation = castQPauseAnimationToNonconst . cast' . M94.castQObjectToConst
    where
      cast' (M94.QObjectConst ptr') = QPauseAnimationConst $ castQObjectToQPauseAnimation ptr'
      cast' (M94.QObjectConstGc fptr' ptr') = QPauseAnimationConstGc fptr' $ castQObjectToQPauseAnimation ptr'

class QPauseAnimationSuperConst a where
  downToQPauseAnimationConst :: a -> QPauseAnimationConst

instance QPauseAnimationSuperConst M2.QAbstractAnimationConst where
  downToQPauseAnimationConst = cast'
    where
      cast' (M2.QAbstractAnimationConst ptr') = QPauseAnimationConst $ castQAbstractAnimationToQPauseAnimation ptr'
      cast' (M2.QAbstractAnimationConstGc fptr' ptr') = QPauseAnimationConstGc fptr' $ castQAbstractAnimationToQPauseAnimation ptr'
instance QPauseAnimationSuperConst M94.QObjectConst where
  downToQPauseAnimationConst = cast'
    where
      cast' (M94.QObjectConst ptr') = QPauseAnimationConst $ castQObjectToQPauseAnimation ptr'
      cast' (M94.QObjectConstGc fptr' ptr') = QPauseAnimationConstGc fptr' $ castQObjectToQPauseAnimation ptr'

instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QPauseAnimation)) QPauseAnimation where
  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'

instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QPauseAnimation)) QPauseAnimation where
  decode = HoppyP.fmap QPauseAnimation . HoppyF.peek