packages feed

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

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

module Graphics.UI.Qtah.Generated.Core.QParallelAnimationGroup (
  castQParallelAnimationGroupToQAnimationGroup,
  castQAnimationGroupToQParallelAnimationGroup,
  castQParallelAnimationGroupToQAbstractAnimation,
  castQAbstractAnimationToQParallelAnimationGroup,
  castQParallelAnimationGroupToQObject,
  castQObjectToQParallelAnimationGroup,
  QParallelAnimationGroupValue (..),
  QParallelAnimationGroupConstPtr (..),
  QParallelAnimationGroupPtr (..),
  QParallelAnimationGroupConst (..),
  castQParallelAnimationGroupToConst,
  QParallelAnimationGroup (..),
  castQParallelAnimationGroupToNonconst,
  QParallelAnimationGroupSuper (..),
  QParallelAnimationGroupSuperConst (..),
  ) where

import qualified Foreign as HoppyF
import qualified Foreign.Hoppy.Runtime as HoppyFHR
import qualified Graphics.UI.Qtah.Generated.Core.QAbstractAnimation as M2
import qualified Graphics.UI.Qtah.Generated.Core.QAnimationGroup as M10
import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
import Prelude (($), (.), (==))
import qualified Prelude as HoppyP

foreign import ccall "gencast__QParallelAnimationGroup__QAnimationGroup" castQParallelAnimationGroupToQAnimationGroup :: HoppyF.Ptr QParallelAnimationGroupConst -> HoppyF.Ptr M10.QAnimationGroupConst
foreign import ccall "gencast__QAnimationGroup__QParallelAnimationGroup" castQAnimationGroupToQParallelAnimationGroup :: HoppyF.Ptr M10.QAnimationGroupConst -> HoppyF.Ptr QParallelAnimationGroupConst
foreign import ccall "gencast__QParallelAnimationGroup__QAbstractAnimation" castQParallelAnimationGroupToQAbstractAnimation :: HoppyF.Ptr QParallelAnimationGroupConst -> HoppyF.Ptr M2.QAbstractAnimationConst
foreign import ccall "gencast__QAbstractAnimation__QParallelAnimationGroup" castQAbstractAnimationToQParallelAnimationGroup :: HoppyF.Ptr M2.QAbstractAnimationConst -> HoppyF.Ptr QParallelAnimationGroupConst
foreign import ccall "gencast__QParallelAnimationGroup__QObject" castQParallelAnimationGroupToQObject :: HoppyF.Ptr QParallelAnimationGroupConst -> HoppyF.Ptr M94.QObjectConst
foreign import ccall "gencast__QObject__QParallelAnimationGroup" castQObjectToQParallelAnimationGroup :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QParallelAnimationGroupConst
foreign import ccall "gendel__QParallelAnimationGroup" delete'QParallelAnimationGroup :: HoppyF.Ptr QParallelAnimationGroupConst -> HoppyP.IO ()
foreign import ccall "&gendel__QParallelAnimationGroup" deletePtr'QParallelAnimationGroup :: HoppyF.FunPtr (HoppyF.Ptr QParallelAnimationGroupConst -> HoppyP.IO ())

class QParallelAnimationGroupValue a where
  withQParallelAnimationGroupPtr :: a -> (QParallelAnimationGroupConst -> HoppyP.IO b) -> HoppyP.IO b

instance {-# OVERLAPPABLE #-} QParallelAnimationGroupConstPtr a => QParallelAnimationGroupValue a where
  withQParallelAnimationGroupPtr = HoppyP.flip ($) . toQParallelAnimationGroupConst

class (M10.QAnimationGroupConstPtr this) => QParallelAnimationGroupConstPtr this where
  toQParallelAnimationGroupConst :: this -> QParallelAnimationGroupConst

class (QParallelAnimationGroupConstPtr this, M10.QAnimationGroupPtr this) => QParallelAnimationGroupPtr this where
  toQParallelAnimationGroup :: this -> QParallelAnimationGroup

data QParallelAnimationGroupConst =
    QParallelAnimationGroupConst (HoppyF.Ptr QParallelAnimationGroupConst)
  | QParallelAnimationGroupConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QParallelAnimationGroupConst)
  deriving (HoppyP.Show)

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

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

castQParallelAnimationGroupToConst :: QParallelAnimationGroup -> QParallelAnimationGroupConst
castQParallelAnimationGroupToConst (QParallelAnimationGroup ptr') = QParallelAnimationGroupConst $ HoppyF.castPtr ptr'
castQParallelAnimationGroupToConst (QParallelAnimationGroupGc fptr' ptr') = QParallelAnimationGroupConstGc fptr' $ HoppyF.castPtr ptr'

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

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

instance QParallelAnimationGroupConstPtr QParallelAnimationGroupConst where
  toQParallelAnimationGroupConst = HoppyP.id

instance M10.QAnimationGroupConstPtr QParallelAnimationGroupConst where
  toQAnimationGroupConst (QParallelAnimationGroupConst ptr') = M10.QAnimationGroupConst $ castQParallelAnimationGroupToQAnimationGroup ptr'
  toQAnimationGroupConst (QParallelAnimationGroupConstGc fptr' ptr') = M10.QAnimationGroupConstGc fptr' $ castQParallelAnimationGroupToQAnimationGroup ptr'

instance M2.QAbstractAnimationConstPtr QParallelAnimationGroupConst where
  toQAbstractAnimationConst (QParallelAnimationGroupConst ptr') = M2.QAbstractAnimationConst $ castQParallelAnimationGroupToQAbstractAnimation ptr'
  toQAbstractAnimationConst (QParallelAnimationGroupConstGc fptr' ptr') = M2.QAbstractAnimationConstGc fptr' $ castQParallelAnimationGroupToQAbstractAnimation ptr'

instance M94.QObjectConstPtr QParallelAnimationGroupConst where
  toQObjectConst (QParallelAnimationGroupConst ptr') = M94.QObjectConst $ castQParallelAnimationGroupToQObject ptr'
  toQObjectConst (QParallelAnimationGroupConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQParallelAnimationGroupToQObject ptr'

data QParallelAnimationGroup =
    QParallelAnimationGroup (HoppyF.Ptr QParallelAnimationGroup)
  | QParallelAnimationGroupGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QParallelAnimationGroup)
  deriving (HoppyP.Show)

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

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

castQParallelAnimationGroupToNonconst :: QParallelAnimationGroupConst -> QParallelAnimationGroup
castQParallelAnimationGroupToNonconst (QParallelAnimationGroupConst ptr') = QParallelAnimationGroup $ HoppyF.castPtr ptr'
castQParallelAnimationGroupToNonconst (QParallelAnimationGroupConstGc fptr' ptr') = QParallelAnimationGroupGc fptr' $ HoppyF.castPtr ptr'

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

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

instance QParallelAnimationGroupConstPtr QParallelAnimationGroup where
  toQParallelAnimationGroupConst (QParallelAnimationGroup ptr') = QParallelAnimationGroupConst $ (HoppyF.castPtr :: HoppyF.Ptr QParallelAnimationGroup -> HoppyF.Ptr QParallelAnimationGroupConst) ptr'
  toQParallelAnimationGroupConst (QParallelAnimationGroupGc fptr' ptr') = QParallelAnimationGroupConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QParallelAnimationGroup -> HoppyF.Ptr QParallelAnimationGroupConst) ptr'

instance QParallelAnimationGroupPtr QParallelAnimationGroup where
  toQParallelAnimationGroup = HoppyP.id

instance M10.QAnimationGroupConstPtr QParallelAnimationGroup where
  toQAnimationGroupConst (QParallelAnimationGroup ptr') = M10.QAnimationGroupConst $ castQParallelAnimationGroupToQAnimationGroup $ (HoppyF.castPtr :: HoppyF.Ptr QParallelAnimationGroup -> HoppyF.Ptr QParallelAnimationGroupConst) ptr'
  toQAnimationGroupConst (QParallelAnimationGroupGc fptr' ptr') = M10.QAnimationGroupConstGc fptr' $ castQParallelAnimationGroupToQAnimationGroup $ (HoppyF.castPtr :: HoppyF.Ptr QParallelAnimationGroup -> HoppyF.Ptr QParallelAnimationGroupConst) ptr'

instance M10.QAnimationGroupPtr QParallelAnimationGroup where
  toQAnimationGroup (QParallelAnimationGroup ptr') = M10.QAnimationGroup $ (HoppyF.castPtr :: HoppyF.Ptr M10.QAnimationGroupConst -> HoppyF.Ptr M10.QAnimationGroup) $ castQParallelAnimationGroupToQAnimationGroup $ (HoppyF.castPtr :: HoppyF.Ptr QParallelAnimationGroup -> HoppyF.Ptr QParallelAnimationGroupConst) ptr'
  toQAnimationGroup (QParallelAnimationGroupGc fptr' ptr') = M10.QAnimationGroupGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M10.QAnimationGroupConst -> HoppyF.Ptr M10.QAnimationGroup) $ castQParallelAnimationGroupToQAnimationGroup $ (HoppyF.castPtr :: HoppyF.Ptr QParallelAnimationGroup -> HoppyF.Ptr QParallelAnimationGroupConst) ptr'

instance M2.QAbstractAnimationConstPtr QParallelAnimationGroup where
  toQAbstractAnimationConst (QParallelAnimationGroup ptr') = M2.QAbstractAnimationConst $ castQParallelAnimationGroupToQAbstractAnimation $ (HoppyF.castPtr :: HoppyF.Ptr QParallelAnimationGroup -> HoppyF.Ptr QParallelAnimationGroupConst) ptr'
  toQAbstractAnimationConst (QParallelAnimationGroupGc fptr' ptr') = M2.QAbstractAnimationConstGc fptr' $ castQParallelAnimationGroupToQAbstractAnimation $ (HoppyF.castPtr :: HoppyF.Ptr QParallelAnimationGroup -> HoppyF.Ptr QParallelAnimationGroupConst) ptr'

instance M2.QAbstractAnimationPtr QParallelAnimationGroup where
  toQAbstractAnimation (QParallelAnimationGroup ptr') = M2.QAbstractAnimation $ (HoppyF.castPtr :: HoppyF.Ptr M2.QAbstractAnimationConst -> HoppyF.Ptr M2.QAbstractAnimation) $ castQParallelAnimationGroupToQAbstractAnimation $ (HoppyF.castPtr :: HoppyF.Ptr QParallelAnimationGroup -> HoppyF.Ptr QParallelAnimationGroupConst) ptr'
  toQAbstractAnimation (QParallelAnimationGroupGc fptr' ptr') = M2.QAbstractAnimationGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M2.QAbstractAnimationConst -> HoppyF.Ptr M2.QAbstractAnimation) $ castQParallelAnimationGroupToQAbstractAnimation $ (HoppyF.castPtr :: HoppyF.Ptr QParallelAnimationGroup -> HoppyF.Ptr QParallelAnimationGroupConst) ptr'

instance M94.QObjectConstPtr QParallelAnimationGroup where
  toQObjectConst (QParallelAnimationGroup ptr') = M94.QObjectConst $ castQParallelAnimationGroupToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QParallelAnimationGroup -> HoppyF.Ptr QParallelAnimationGroupConst) ptr'
  toQObjectConst (QParallelAnimationGroupGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQParallelAnimationGroupToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QParallelAnimationGroup -> HoppyF.Ptr QParallelAnimationGroupConst) ptr'

instance M94.QObjectPtr QParallelAnimationGroup where
  toQObject (QParallelAnimationGroup ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQParallelAnimationGroupToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QParallelAnimationGroup -> HoppyF.Ptr QParallelAnimationGroupConst) ptr'
  toQObject (QParallelAnimationGroupGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQParallelAnimationGroupToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QParallelAnimationGroup -> HoppyF.Ptr QParallelAnimationGroupConst) ptr'

class QParallelAnimationGroupSuper a where
  downToQParallelAnimationGroup :: a -> QParallelAnimationGroup

instance QParallelAnimationGroupSuper M10.QAnimationGroup where
  downToQParallelAnimationGroup = castQParallelAnimationGroupToNonconst . cast' . M10.castQAnimationGroupToConst
    where
      cast' (M10.QAnimationGroupConst ptr') = QParallelAnimationGroupConst $ castQAnimationGroupToQParallelAnimationGroup ptr'
      cast' (M10.QAnimationGroupConstGc fptr' ptr') = QParallelAnimationGroupConstGc fptr' $ castQAnimationGroupToQParallelAnimationGroup ptr'
instance QParallelAnimationGroupSuper M2.QAbstractAnimation where
  downToQParallelAnimationGroup = castQParallelAnimationGroupToNonconst . cast' . M2.castQAbstractAnimationToConst
    where
      cast' (M2.QAbstractAnimationConst ptr') = QParallelAnimationGroupConst $ castQAbstractAnimationToQParallelAnimationGroup ptr'
      cast' (M2.QAbstractAnimationConstGc fptr' ptr') = QParallelAnimationGroupConstGc fptr' $ castQAbstractAnimationToQParallelAnimationGroup ptr'
instance QParallelAnimationGroupSuper M94.QObject where
  downToQParallelAnimationGroup = castQParallelAnimationGroupToNonconst . cast' . M94.castQObjectToConst
    where
      cast' (M94.QObjectConst ptr') = QParallelAnimationGroupConst $ castQObjectToQParallelAnimationGroup ptr'
      cast' (M94.QObjectConstGc fptr' ptr') = QParallelAnimationGroupConstGc fptr' $ castQObjectToQParallelAnimationGroup ptr'

class QParallelAnimationGroupSuperConst a where
  downToQParallelAnimationGroupConst :: a -> QParallelAnimationGroupConst

instance QParallelAnimationGroupSuperConst M10.QAnimationGroupConst where
  downToQParallelAnimationGroupConst = cast'
    where
      cast' (M10.QAnimationGroupConst ptr') = QParallelAnimationGroupConst $ castQAnimationGroupToQParallelAnimationGroup ptr'
      cast' (M10.QAnimationGroupConstGc fptr' ptr') = QParallelAnimationGroupConstGc fptr' $ castQAnimationGroupToQParallelAnimationGroup ptr'
instance QParallelAnimationGroupSuperConst M2.QAbstractAnimationConst where
  downToQParallelAnimationGroupConst = cast'
    where
      cast' (M2.QAbstractAnimationConst ptr') = QParallelAnimationGroupConst $ castQAbstractAnimationToQParallelAnimationGroup ptr'
      cast' (M2.QAbstractAnimationConstGc fptr' ptr') = QParallelAnimationGroupConstGc fptr' $ castQAbstractAnimationToQParallelAnimationGroup ptr'
instance QParallelAnimationGroupSuperConst M94.QObjectConst where
  downToQParallelAnimationGroupConst = cast'
    where
      cast' (M94.QObjectConst ptr') = QParallelAnimationGroupConst $ castQObjectToQParallelAnimationGroup ptr'
      cast' (M94.QObjectConstGc fptr' ptr') = QParallelAnimationGroupConstGc fptr' $ castQObjectToQParallelAnimationGroup ptr'

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

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