{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, GeneralizedNewtypeDeriving, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
module Graphics.UI.Qtah.Generated.Core.QTimer (
castQTimerToQObject,
castQObjectToQTimer,
QTimerValue (..),
QTimerConstPtr (..),
interval,
isActive,
isSingleShot,
remainingTime,
timerId,
QTimerPtr (..),
setInterval,
setSingleShot,
start,
QTimerConst (..),
castQTimerToConst,
QTimer (..),
castQTimerToNonconst,
new,
QTimerSuper (..),
QTimerSuperConst (..),
) 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.QObject as M34
import Prelude (($), (.), (/=), (==))
import qualified Prelude as HoppyP
foreign import ccall "genpop__QTimer_new" new' :: HoppyP.IO (HoppyF.Ptr QTimer)
foreign import ccall "genpop__QTimer_interval" interval' :: HoppyF.Ptr QTimerConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QTimer_isActive" isActive' :: HoppyF.Ptr QTimerConst -> HoppyP.IO HoppyFHR.CBool
foreign import ccall "genpop__QTimer_isSingleShot" isSingleShot' :: HoppyF.Ptr QTimerConst -> HoppyP.IO HoppyFHR.CBool
foreign import ccall "genpop__QTimer_remainingTime" remainingTime' :: HoppyF.Ptr QTimerConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QTimer_setInterval" setInterval' :: HoppyF.Ptr QTimer -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QTimer_setSingleShot" setSingleShot' :: HoppyF.Ptr QTimer -> HoppyFHR.CBool -> HoppyP.IO ()
foreign import ccall "genpop__QTimer_start" start' :: HoppyF.Ptr QTimer -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QTimer_timerId" timerId' :: HoppyF.Ptr QTimerConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "gencast__QTimer__QObject" castQTimerToQObject :: HoppyF.Ptr QTimerConst -> HoppyF.Ptr M34.QObjectConst
foreign import ccall "gencast__QObject__QTimer" castQObjectToQTimer :: HoppyF.Ptr M34.QObjectConst -> HoppyF.Ptr QTimerConst
foreign import ccall "gendel__QTimer" delete'QTimer :: HoppyF.Ptr QTimerConst -> HoppyP.IO ()
foreign import ccall "&gendel__QTimer" deletePtr'QTimer :: HoppyF.FunPtr (HoppyF.Ptr QTimerConst -> HoppyP.IO ())
class QTimerValue a where
withQTimerPtr :: a -> (QTimerConst -> HoppyP.IO b) -> HoppyP.IO b
instance {-# OVERLAPPABLE #-} QTimerConstPtr a => QTimerValue a where
withQTimerPtr = HoppyP.flip ($) . toQTimerConst
class (M34.QObjectConstPtr this) => QTimerConstPtr this where
toQTimerConst :: this -> QTimerConst
interval :: (QTimerValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
interval arg'1 =
withQTimerPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
HoppyP.fmap HoppyFHR.coerceIntegral
(interval' arg'1')
isActive :: (QTimerValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
isActive arg'1 =
withQTimerPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
HoppyP.fmap (/= 0)
(isActive' arg'1')
isSingleShot :: (QTimerValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
isSingleShot arg'1 =
withQTimerPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
HoppyP.fmap (/= 0)
(isSingleShot' arg'1')
remainingTime :: (QTimerValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
remainingTime arg'1 =
withQTimerPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
HoppyP.fmap HoppyFHR.coerceIntegral
(remainingTime' arg'1')
timerId :: (QTimerValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
timerId arg'1 =
withQTimerPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
HoppyP.fmap HoppyFHR.coerceIntegral
(timerId' arg'1')
class (QTimerConstPtr this, M34.QObjectPtr this) => QTimerPtr this where
toQTimer :: this -> QTimer
setInterval :: (QTimerPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
setInterval arg'1 arg'2 =
HoppyFHR.withCppPtr (toQTimer arg'1) $ \arg'1' ->
let arg'2' = HoppyFHR.coerceIntegral arg'2 in
(setInterval' arg'1' arg'2')
setSingleShot :: (QTimerPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
setSingleShot arg'1 arg'2 =
HoppyFHR.withCppPtr (toQTimer arg'1) $ \arg'1' ->
let arg'2' = if arg'2 then 1 else 0 in
(setSingleShot' arg'1' arg'2')
start :: (QTimerPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
start arg'1 arg'2 =
HoppyFHR.withCppPtr (toQTimer arg'1) $ \arg'1' ->
let arg'2' = HoppyFHR.coerceIntegral arg'2 in
(start' arg'1' arg'2')
data QTimerConst =
QTimerConst (HoppyF.Ptr QTimerConst)
| QTimerConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QTimerConst)
deriving (HoppyP.Show)
instance HoppyP.Eq QTimerConst where
x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
instance HoppyP.Ord QTimerConst where
compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
castQTimerToConst :: QTimer -> QTimerConst
castQTimerToConst (QTimer ptr') = QTimerConst $ HoppyF.castPtr ptr'
castQTimerToConst (QTimerGc fptr' ptr') = QTimerConstGc fptr' $ HoppyF.castPtr ptr'
instance HoppyFHR.CppPtr QTimerConst where
nullptr = QTimerConst HoppyF.nullPtr
withCppPtr (QTimerConst ptr') f' = f' ptr'
withCppPtr (QTimerConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
toPtr (QTimerConst ptr') = ptr'
toPtr (QTimerConstGc _ ptr') = ptr'
touchCppPtr (QTimerConst _) = HoppyP.return ()
touchCppPtr (QTimerConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
instance HoppyFHR.Deletable QTimerConst where
delete (QTimerConst ptr') = delete'QTimer ptr'
delete (QTimerConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QTimerConst", " object."]
toGc this'@(QTimerConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QTimerConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QTimer :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
toGc this'@(QTimerConstGc {}) = HoppyP.return this'
instance QTimerConstPtr QTimerConst where
toQTimerConst = HoppyP.id
instance M34.QObjectConstPtr QTimerConst where
toQObjectConst (QTimerConst ptr') = M34.QObjectConst $ castQTimerToQObject ptr'
toQObjectConst (QTimerConstGc fptr' ptr') = M34.QObjectConstGc fptr' $ castQTimerToQObject ptr'
data QTimer =
QTimer (HoppyF.Ptr QTimer)
| QTimerGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QTimer)
deriving (HoppyP.Show)
instance HoppyP.Eq QTimer where
x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
instance HoppyP.Ord QTimer where
compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
castQTimerToNonconst :: QTimerConst -> QTimer
castQTimerToNonconst (QTimerConst ptr') = QTimer $ HoppyF.castPtr ptr'
castQTimerToNonconst (QTimerConstGc fptr' ptr') = QTimerGc fptr' $ HoppyF.castPtr ptr'
instance HoppyFHR.CppPtr QTimer where
nullptr = QTimer HoppyF.nullPtr
withCppPtr (QTimer ptr') f' = f' ptr'
withCppPtr (QTimerGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
toPtr (QTimer ptr') = ptr'
toPtr (QTimerGc _ ptr') = ptr'
touchCppPtr (QTimer _) = HoppyP.return ()
touchCppPtr (QTimerGc fptr' _) = HoppyF.touchForeignPtr fptr'
instance HoppyFHR.Deletable QTimer where
delete (QTimer ptr') = delete'QTimer $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QTimerConst)
delete (QTimerGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QTimer", " object."]
toGc this'@(QTimer ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QTimerGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QTimer :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
toGc this'@(QTimerGc {}) = HoppyP.return this'
instance QTimerConstPtr QTimer where
toQTimerConst (QTimer ptr') = QTimerConst $ (HoppyF.castPtr :: HoppyF.Ptr QTimer -> HoppyF.Ptr QTimerConst) ptr'
toQTimerConst (QTimerGc fptr' ptr') = QTimerConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QTimer -> HoppyF.Ptr QTimerConst) ptr'
instance QTimerPtr QTimer where
toQTimer = HoppyP.id
instance M34.QObjectConstPtr QTimer where
toQObjectConst (QTimer ptr') = M34.QObjectConst $ castQTimerToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QTimer -> HoppyF.Ptr QTimerConst) ptr'
toQObjectConst (QTimerGc fptr' ptr') = M34.QObjectConstGc fptr' $ castQTimerToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QTimer -> HoppyF.Ptr QTimerConst) ptr'
instance M34.QObjectPtr QTimer where
toQObject (QTimer ptr') = M34.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M34.QObjectConst -> HoppyF.Ptr M34.QObject) $ castQTimerToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QTimer -> HoppyF.Ptr QTimerConst) ptr'
toQObject (QTimerGc fptr' ptr') = M34.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M34.QObjectConst -> HoppyF.Ptr M34.QObject) $ castQTimerToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QTimer -> HoppyF.Ptr QTimerConst) ptr'
new :: HoppyP.IO QTimer
new =
HoppyP.fmap QTimer
(new')
class QTimerSuper a where
downToQTimer :: a -> QTimer
instance QTimerSuper M34.QObject where
downToQTimer = castQTimerToNonconst . cast' . M34.castQObjectToConst
where
cast' (M34.QObjectConst ptr') = QTimerConst $ castQObjectToQTimer ptr'
cast' (M34.QObjectConstGc fptr' ptr') = QTimerConstGc fptr' $ castQObjectToQTimer ptr'
class QTimerSuperConst a where
downToQTimerConst :: a -> QTimerConst
instance QTimerSuperConst M34.QObjectConst where
downToQTimerConst = cast'
where
cast' (M34.QObjectConst ptr') = QTimerConst $ castQObjectToQTimer ptr'
cast' (M34.QObjectConstGc fptr' ptr') = QTimerConstGc fptr' $ castQObjectToQTimer ptr'
instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QTimer)) QTimer where
assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QTimer)) QTimer where
decode = HoppyP.fmap QTimer . HoppyF.peek