{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, GeneralizedNewtypeDeriving, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
module Graphics.UI.Qtah.Generated.Core.QChildEvent (
castQChildEventToQEvent,
castQEventToQChildEvent,
QChildEventValue (..),
QChildEventConstPtr (..),
added,
child,
polished,
removed,
QChildEventPtr (..),
QChildEventConst (..),
castQChildEventToConst,
QChildEvent (..),
castQChildEventToNonconst,
new,
QChildEventSuper (..),
QChildEventSuperConst (..),
) 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.QEvent as M20
import qualified Graphics.UI.Qtah.Generated.Core.QObject as M34
import Prelude (($), (.), (/=), (==))
import qualified Prelude as HoppyP
foreign import ccall "genpop__QChildEvent_new" new' :: HoppyFC.CInt -> HoppyF.Ptr M34.QObject -> HoppyP.IO (HoppyF.Ptr QChildEvent)
foreign import ccall "genpop__QChildEvent_added" added' :: HoppyF.Ptr QChildEventConst -> HoppyP.IO HoppyFHR.CBool
foreign import ccall "genpop__QChildEvent_child" child' :: HoppyF.Ptr QChildEventConst -> HoppyP.IO (HoppyF.Ptr M34.QObject)
foreign import ccall "genpop__QChildEvent_polished" polished' :: HoppyF.Ptr QChildEventConst -> HoppyP.IO HoppyFHR.CBool
foreign import ccall "genpop__QChildEvent_removed" removed' :: HoppyF.Ptr QChildEventConst -> HoppyP.IO HoppyFHR.CBool
foreign import ccall "gencast__QChildEvent__QEvent" castQChildEventToQEvent :: HoppyF.Ptr QChildEventConst -> HoppyF.Ptr M20.QEventConst
foreign import ccall "gencast__QEvent__QChildEvent" castQEventToQChildEvent :: HoppyF.Ptr M20.QEventConst -> HoppyF.Ptr QChildEventConst
foreign import ccall "gendel__QChildEvent" delete'QChildEvent :: HoppyF.Ptr QChildEventConst -> HoppyP.IO ()
foreign import ccall "&gendel__QChildEvent" deletePtr'QChildEvent :: HoppyF.FunPtr (HoppyF.Ptr QChildEventConst -> HoppyP.IO ())
class QChildEventValue a where
withQChildEventPtr :: a -> (QChildEventConst -> HoppyP.IO b) -> HoppyP.IO b
instance {-# OVERLAPPABLE #-} QChildEventConstPtr a => QChildEventValue a where
withQChildEventPtr = HoppyP.flip ($) . toQChildEventConst
class (M20.QEventConstPtr this) => QChildEventConstPtr this where
toQChildEventConst :: this -> QChildEventConst
added :: (QChildEventValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
added arg'1 =
withQChildEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
HoppyP.fmap (/= 0)
(added' arg'1')
child :: (QChildEventValue arg'1) => arg'1 -> HoppyP.IO M34.QObject
child arg'1 =
withQChildEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
HoppyP.fmap M34.QObject
(child' arg'1')
polished :: (QChildEventValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
polished arg'1 =
withQChildEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
HoppyP.fmap (/= 0)
(polished' arg'1')
removed :: (QChildEventValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
removed arg'1 =
withQChildEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
HoppyP.fmap (/= 0)
(removed' arg'1')
class (QChildEventConstPtr this, M20.QEventPtr this) => QChildEventPtr this where
toQChildEvent :: this -> QChildEvent
data QChildEventConst =
QChildEventConst (HoppyF.Ptr QChildEventConst)
| QChildEventConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QChildEventConst)
deriving (HoppyP.Show)
instance HoppyP.Eq QChildEventConst where
x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
instance HoppyP.Ord QChildEventConst where
compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
castQChildEventToConst :: QChildEvent -> QChildEventConst
castQChildEventToConst (QChildEvent ptr') = QChildEventConst $ HoppyF.castPtr ptr'
castQChildEventToConst (QChildEventGc fptr' ptr') = QChildEventConstGc fptr' $ HoppyF.castPtr ptr'
instance HoppyFHR.CppPtr QChildEventConst where
nullptr = QChildEventConst HoppyF.nullPtr
withCppPtr (QChildEventConst ptr') f' = f' ptr'
withCppPtr (QChildEventConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
toPtr (QChildEventConst ptr') = ptr'
toPtr (QChildEventConstGc _ ptr') = ptr'
touchCppPtr (QChildEventConst _) = HoppyP.return ()
touchCppPtr (QChildEventConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
instance HoppyFHR.Deletable QChildEventConst where
delete (QChildEventConst ptr') = delete'QChildEvent ptr'
delete (QChildEventConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QChildEventConst", " object."]
toGc this'@(QChildEventConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QChildEventConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QChildEvent :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
toGc this'@(QChildEventConstGc {}) = HoppyP.return this'
instance QChildEventConstPtr QChildEventConst where
toQChildEventConst = HoppyP.id
instance M20.QEventConstPtr QChildEventConst where
toQEventConst (QChildEventConst ptr') = M20.QEventConst $ castQChildEventToQEvent ptr'
toQEventConst (QChildEventConstGc fptr' ptr') = M20.QEventConstGc fptr' $ castQChildEventToQEvent ptr'
data QChildEvent =
QChildEvent (HoppyF.Ptr QChildEvent)
| QChildEventGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QChildEvent)
deriving (HoppyP.Show)
instance HoppyP.Eq QChildEvent where
x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
instance HoppyP.Ord QChildEvent where
compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
castQChildEventToNonconst :: QChildEventConst -> QChildEvent
castQChildEventToNonconst (QChildEventConst ptr') = QChildEvent $ HoppyF.castPtr ptr'
castQChildEventToNonconst (QChildEventConstGc fptr' ptr') = QChildEventGc fptr' $ HoppyF.castPtr ptr'
instance HoppyFHR.CppPtr QChildEvent where
nullptr = QChildEvent HoppyF.nullPtr
withCppPtr (QChildEvent ptr') f' = f' ptr'
withCppPtr (QChildEventGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
toPtr (QChildEvent ptr') = ptr'
toPtr (QChildEventGc _ ptr') = ptr'
touchCppPtr (QChildEvent _) = HoppyP.return ()
touchCppPtr (QChildEventGc fptr' _) = HoppyF.touchForeignPtr fptr'
instance HoppyFHR.Deletable QChildEvent where
delete (QChildEvent ptr') = delete'QChildEvent $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QChildEventConst)
delete (QChildEventGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QChildEvent", " object."]
toGc this'@(QChildEvent ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QChildEventGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QChildEvent :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
toGc this'@(QChildEventGc {}) = HoppyP.return this'
instance QChildEventConstPtr QChildEvent where
toQChildEventConst (QChildEvent ptr') = QChildEventConst $ (HoppyF.castPtr :: HoppyF.Ptr QChildEvent -> HoppyF.Ptr QChildEventConst) ptr'
toQChildEventConst (QChildEventGc fptr' ptr') = QChildEventConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QChildEvent -> HoppyF.Ptr QChildEventConst) ptr'
instance QChildEventPtr QChildEvent where
toQChildEvent = HoppyP.id
instance M20.QEventConstPtr QChildEvent where
toQEventConst (QChildEvent ptr') = M20.QEventConst $ castQChildEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QChildEvent -> HoppyF.Ptr QChildEventConst) ptr'
toQEventConst (QChildEventGc fptr' ptr') = M20.QEventConstGc fptr' $ castQChildEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QChildEvent -> HoppyF.Ptr QChildEventConst) ptr'
instance M20.QEventPtr QChildEvent where
toQEvent (QChildEvent ptr') = M20.QEvent $ (HoppyF.castPtr :: HoppyF.Ptr M20.QEventConst -> HoppyF.Ptr M20.QEvent) $ castQChildEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QChildEvent -> HoppyF.Ptr QChildEventConst) ptr'
toQEvent (QChildEventGc fptr' ptr') = M20.QEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M20.QEventConst -> HoppyF.Ptr M20.QEvent) $ castQChildEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QChildEvent -> HoppyF.Ptr QChildEventConst) ptr'
new :: (M34.QObjectPtr arg'2) => M20.QEventType -> arg'2 -> HoppyP.IO QChildEvent
new arg'1 arg'2 =
let arg'1' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'1 in
HoppyFHR.withCppPtr (M34.toQObject arg'2) $ \arg'2' ->
HoppyP.fmap QChildEvent
(new' arg'1' arg'2')
class QChildEventSuper a where
downToQChildEvent :: a -> QChildEvent
instance QChildEventSuper M20.QEvent where
downToQChildEvent = castQChildEventToNonconst . cast' . M20.castQEventToConst
where
cast' (M20.QEventConst ptr') = QChildEventConst $ castQEventToQChildEvent ptr'
cast' (M20.QEventConstGc fptr' ptr') = QChildEventConstGc fptr' $ castQEventToQChildEvent ptr'
class QChildEventSuperConst a where
downToQChildEventConst :: a -> QChildEventConst
instance QChildEventSuperConst M20.QEventConst where
downToQChildEventConst = cast'
where
cast' (M20.QEventConst ptr') = QChildEventConst $ castQEventToQChildEvent ptr'
cast' (M20.QEventConstGc fptr' ptr') = QChildEventConstGc fptr' $ castQEventToQChildEvent ptr'
instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QChildEvent)) QChildEvent where
assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QChildEvent)) QChildEvent where
decode = HoppyP.fmap QChildEvent . HoppyF.peek