{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, GeneralizedNewtypeDeriving, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
module Graphics.UI.Qtah.Generated.Gui.QTransform (
QTransformValue (..),
QTransformConstPtr (..),
eQ,
nE,
QTransformPtr (..),
aSSIGN,
QTransformConst (..),
castQTransformToConst,
QTransform (..),
castQTransformToNonconst,
new2x2,
newCopy,
QTransformSuper (..),
QTransformSuperConst (..),
) where
import Control.Monad ((>=>))
import qualified Foreign as HoppyF
import qualified Foreign.C as HoppyFC
import qualified Foreign.Hoppy.Runtime as HoppyFHR
import Prelude (($), (.), (/=), (==), (>>))
import qualified Prelude as HoppyP
foreign import ccall "genpop__QTransform_new2x2" new2x2' :: HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyFC.CDouble -> HoppyP.IO (HoppyF.Ptr QTransform)
foreign import ccall "genpop__QTransform_newCopy" newCopy' :: HoppyF.Ptr QTransformConst -> HoppyP.IO (HoppyF.Ptr QTransform)
foreign import ccall "genpop__QTransform_EQ" eQ' :: HoppyF.Ptr QTransformConst -> HoppyF.Ptr QTransformConst -> HoppyP.IO HoppyFHR.CBool
foreign import ccall "genpop__QTransform_NE" nE' :: HoppyF.Ptr QTransformConst -> HoppyF.Ptr QTransformConst -> HoppyP.IO HoppyFHR.CBool
foreign import ccall "genpop__QTransform_ASSIGN" aSSIGN' :: HoppyF.Ptr QTransform -> HoppyF.Ptr QTransformConst -> HoppyP.IO (HoppyF.Ptr QTransform)
foreign import ccall "gendel__QTransform" delete'QTransform :: HoppyF.Ptr QTransformConst -> HoppyP.IO ()
foreign import ccall "&gendel__QTransform" deletePtr'QTransform :: HoppyF.FunPtr (HoppyF.Ptr QTransformConst -> HoppyP.IO ())
class QTransformValue a where
withQTransformPtr :: a -> (QTransformConst -> HoppyP.IO b) -> HoppyP.IO b
instance {-# OVERLAPPABLE #-} QTransformConstPtr a => QTransformValue a where
withQTransformPtr = HoppyP.flip ($) . toQTransformConst
class (HoppyFHR.CppPtr this) => QTransformConstPtr this where
toQTransformConst :: this -> QTransformConst
eQ :: (QTransformValue arg'1, QTransformValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
eQ arg'1 arg'2 =
withQTransformPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
withQTransformPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
HoppyP.fmap (/= 0)
(eQ' arg'1' arg'2')
nE :: (QTransformValue arg'1, QTransformValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
nE arg'1 arg'2 =
withQTransformPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
withQTransformPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
HoppyP.fmap (/= 0)
(nE' arg'1' arg'2')
class (QTransformConstPtr this) => QTransformPtr this where
toQTransform :: this -> QTransform
aSSIGN :: (QTransformPtr arg'1, QTransformValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO QTransform
aSSIGN arg'1 arg'2 =
HoppyFHR.withCppPtr (toQTransform arg'1) $ \arg'1' ->
withQTransformPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
HoppyP.fmap QTransform
(aSSIGN' arg'1' arg'2')
data QTransformConst =
QTransformConst (HoppyF.Ptr QTransformConst)
| QTransformConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QTransformConst)
deriving (HoppyP.Show)
instance HoppyP.Eq QTransformConst where
x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
instance HoppyP.Ord QTransformConst where
compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
castQTransformToConst :: QTransform -> QTransformConst
castQTransformToConst (QTransform ptr') = QTransformConst $ HoppyF.castPtr ptr'
castQTransformToConst (QTransformGc fptr' ptr') = QTransformConstGc fptr' $ HoppyF.castPtr ptr'
instance HoppyFHR.CppPtr QTransformConst where
nullptr = QTransformConst HoppyF.nullPtr
withCppPtr (QTransformConst ptr') f' = f' ptr'
withCppPtr (QTransformConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
toPtr (QTransformConst ptr') = ptr'
toPtr (QTransformConstGc _ ptr') = ptr'
touchCppPtr (QTransformConst _) = HoppyP.return ()
touchCppPtr (QTransformConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
instance HoppyFHR.Deletable QTransformConst where
delete (QTransformConst ptr') = delete'QTransform ptr'
delete (QTransformConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QTransformConst", " object."]
toGc this'@(QTransformConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QTransformConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QTransform :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
toGc this'@(QTransformConstGc {}) = HoppyP.return this'
instance HoppyFHR.Copyable QTransformConst QTransform where copy = newCopy
instance QTransformConstPtr QTransformConst where
toQTransformConst = HoppyP.id
data QTransform =
QTransform (HoppyF.Ptr QTransform)
| QTransformGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QTransform)
deriving (HoppyP.Show)
instance HoppyP.Eq QTransform where
x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
instance HoppyP.Ord QTransform where
compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
castQTransformToNonconst :: QTransformConst -> QTransform
castQTransformToNonconst (QTransformConst ptr') = QTransform $ HoppyF.castPtr ptr'
castQTransformToNonconst (QTransformConstGc fptr' ptr') = QTransformGc fptr' $ HoppyF.castPtr ptr'
instance HoppyFHR.CppPtr QTransform where
nullptr = QTransform HoppyF.nullPtr
withCppPtr (QTransform ptr') f' = f' ptr'
withCppPtr (QTransformGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
toPtr (QTransform ptr') = ptr'
toPtr (QTransformGc _ ptr') = ptr'
touchCppPtr (QTransform _) = HoppyP.return ()
touchCppPtr (QTransformGc fptr' _) = HoppyF.touchForeignPtr fptr'
instance HoppyFHR.Deletable QTransform where
delete (QTransform ptr') = delete'QTransform $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QTransformConst)
delete (QTransformGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QTransform", " object."]
toGc this'@(QTransform ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QTransformGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QTransform :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
toGc this'@(QTransformGc {}) = HoppyP.return this'
instance HoppyFHR.Copyable QTransform QTransform where copy = newCopy
instance QTransformConstPtr QTransform where
toQTransformConst (QTransform ptr') = QTransformConst $ (HoppyF.castPtr :: HoppyF.Ptr QTransform -> HoppyF.Ptr QTransformConst) ptr'
toQTransformConst (QTransformGc fptr' ptr') = QTransformConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QTransform -> HoppyF.Ptr QTransformConst) ptr'
instance QTransformPtr QTransform where
toQTransform = HoppyP.id
new2x2 :: HoppyP.Double -> HoppyP.Double -> HoppyP.Double -> HoppyP.Double -> HoppyP.Double -> HoppyP.Double -> HoppyP.IO QTransform
new2x2 arg'1 arg'2 arg'3 arg'4 arg'5 arg'6 =
let arg'1' = HoppyP.realToFrac arg'1 in
let arg'2' = HoppyP.realToFrac arg'2 in
let arg'3' = HoppyP.realToFrac arg'3 in
let arg'4' = HoppyP.realToFrac arg'4 in
let arg'5' = HoppyP.realToFrac arg'5 in
let arg'6' = HoppyP.realToFrac arg'6 in
HoppyP.fmap QTransform
(new2x2' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6')
newCopy :: (QTransformValue arg'1) => arg'1 -> HoppyP.IO QTransform
newCopy arg'1 =
withQTransformPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
HoppyP.fmap QTransform
(newCopy' arg'1')
class QTransformSuper a where
downToQTransform :: a -> QTransform
class QTransformSuperConst a where
downToQTransformConst :: a -> QTransformConst
instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QTransform)) QTransform where
assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
instance QTransformValue a => HoppyFHR.Assignable QTransform a where
assign x' y' = aSSIGN x' y' >> HoppyP.return ()
instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QTransform)) QTransform where
decode = HoppyP.fmap QTransform . HoppyF.peek
instance HoppyFHR.Decodable QTransform (QTransform) where
decode = HoppyFHR.decode . toQTransformConst
instance HoppyFHR.Decodable QTransformConst (QTransform) where
decode =
HoppyFHR.copy >=> HoppyFHR.toGc