{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, GeneralizedNewtypeDeriving, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
module Graphics.UI.Qtah.Generated.Gui.QFocusEvent (
castQFocusEventToQEvent,
castQEventToQFocusEvent,
QFocusEventValue (..),
QFocusEventConstPtr (..),
gotFocus,
lostFocus,
reason,
QFocusEventPtr (..),
QFocusEventConst (..),
castQFocusEventToConst,
QFocusEvent (..),
castQFocusEventToNonconst,
new,
QFocusEventSuper (..),
QFocusEventSuperConst (..),
) 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.Types as M68
import Prelude (($), (.), (/=), (==))
import qualified Prelude as HoppyP
foreign import ccall "genpop__QFocusEvent_new" new' :: HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QFocusEvent)
foreign import ccall "genpop__QFocusEvent_gotFocus" gotFocus' :: HoppyF.Ptr QFocusEventConst -> HoppyP.IO HoppyFHR.CBool
foreign import ccall "genpop__QFocusEvent_lostFocus" lostFocus' :: HoppyF.Ptr QFocusEventConst -> HoppyP.IO HoppyFHR.CBool
foreign import ccall "genpop__QFocusEvent_reason" reason' :: HoppyF.Ptr QFocusEventConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "gencast__QFocusEvent__QEvent" castQFocusEventToQEvent :: HoppyF.Ptr QFocusEventConst -> HoppyF.Ptr M20.QEventConst
foreign import ccall "gencast__QEvent__QFocusEvent" castQEventToQFocusEvent :: HoppyF.Ptr M20.QEventConst -> HoppyF.Ptr QFocusEventConst
foreign import ccall "gendel__QFocusEvent" delete'QFocusEvent :: HoppyF.Ptr QFocusEventConst -> HoppyP.IO ()
foreign import ccall "&gendel__QFocusEvent" deletePtr'QFocusEvent :: HoppyF.FunPtr (HoppyF.Ptr QFocusEventConst -> HoppyP.IO ())
class QFocusEventValue a where
withQFocusEventPtr :: a -> (QFocusEventConst -> HoppyP.IO b) -> HoppyP.IO b
instance {-# OVERLAPPABLE #-} QFocusEventConstPtr a => QFocusEventValue a where
withQFocusEventPtr = HoppyP.flip ($) . toQFocusEventConst
class (M20.QEventConstPtr this) => QFocusEventConstPtr this where
toQFocusEventConst :: this -> QFocusEventConst
gotFocus :: (QFocusEventValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
gotFocus arg'1 =
withQFocusEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
HoppyP.fmap (/= 0)
(gotFocus' arg'1')
lostFocus :: (QFocusEventValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
lostFocus arg'1 =
withQFocusEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
HoppyP.fmap (/= 0)
(lostFocus' arg'1')
reason :: (QFocusEventValue arg'1) => arg'1 -> HoppyP.IO M68.QtFocusReason
reason arg'1 =
withQFocusEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
(reason' arg'1')
class (QFocusEventConstPtr this, M20.QEventPtr this) => QFocusEventPtr this where
toQFocusEvent :: this -> QFocusEvent
data QFocusEventConst =
QFocusEventConst (HoppyF.Ptr QFocusEventConst)
| QFocusEventConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QFocusEventConst)
deriving (HoppyP.Show)
instance HoppyP.Eq QFocusEventConst where
x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
instance HoppyP.Ord QFocusEventConst where
compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
castQFocusEventToConst :: QFocusEvent -> QFocusEventConst
castQFocusEventToConst (QFocusEvent ptr') = QFocusEventConst $ HoppyF.castPtr ptr'
castQFocusEventToConst (QFocusEventGc fptr' ptr') = QFocusEventConstGc fptr' $ HoppyF.castPtr ptr'
instance HoppyFHR.CppPtr QFocusEventConst where
nullptr = QFocusEventConst HoppyF.nullPtr
withCppPtr (QFocusEventConst ptr') f' = f' ptr'
withCppPtr (QFocusEventConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
toPtr (QFocusEventConst ptr') = ptr'
toPtr (QFocusEventConstGc _ ptr') = ptr'
touchCppPtr (QFocusEventConst _) = HoppyP.return ()
touchCppPtr (QFocusEventConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
instance HoppyFHR.Deletable QFocusEventConst where
delete (QFocusEventConst ptr') = delete'QFocusEvent ptr'
delete (QFocusEventConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QFocusEventConst", " object."]
toGc this'@(QFocusEventConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QFocusEventConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QFocusEvent :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
toGc this'@(QFocusEventConstGc {}) = HoppyP.return this'
instance QFocusEventConstPtr QFocusEventConst where
toQFocusEventConst = HoppyP.id
instance M20.QEventConstPtr QFocusEventConst where
toQEventConst (QFocusEventConst ptr') = M20.QEventConst $ castQFocusEventToQEvent ptr'
toQEventConst (QFocusEventConstGc fptr' ptr') = M20.QEventConstGc fptr' $ castQFocusEventToQEvent ptr'
data QFocusEvent =
QFocusEvent (HoppyF.Ptr QFocusEvent)
| QFocusEventGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QFocusEvent)
deriving (HoppyP.Show)
instance HoppyP.Eq QFocusEvent where
x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
instance HoppyP.Ord QFocusEvent where
compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
castQFocusEventToNonconst :: QFocusEventConst -> QFocusEvent
castQFocusEventToNonconst (QFocusEventConst ptr') = QFocusEvent $ HoppyF.castPtr ptr'
castQFocusEventToNonconst (QFocusEventConstGc fptr' ptr') = QFocusEventGc fptr' $ HoppyF.castPtr ptr'
instance HoppyFHR.CppPtr QFocusEvent where
nullptr = QFocusEvent HoppyF.nullPtr
withCppPtr (QFocusEvent ptr') f' = f' ptr'
withCppPtr (QFocusEventGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
toPtr (QFocusEvent ptr') = ptr'
toPtr (QFocusEventGc _ ptr') = ptr'
touchCppPtr (QFocusEvent _) = HoppyP.return ()
touchCppPtr (QFocusEventGc fptr' _) = HoppyF.touchForeignPtr fptr'
instance HoppyFHR.Deletable QFocusEvent where
delete (QFocusEvent ptr') = delete'QFocusEvent $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QFocusEventConst)
delete (QFocusEventGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QFocusEvent", " object."]
toGc this'@(QFocusEvent ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QFocusEventGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QFocusEvent :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
toGc this'@(QFocusEventGc {}) = HoppyP.return this'
instance QFocusEventConstPtr QFocusEvent where
toQFocusEventConst (QFocusEvent ptr') = QFocusEventConst $ (HoppyF.castPtr :: HoppyF.Ptr QFocusEvent -> HoppyF.Ptr QFocusEventConst) ptr'
toQFocusEventConst (QFocusEventGc fptr' ptr') = QFocusEventConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QFocusEvent -> HoppyF.Ptr QFocusEventConst) ptr'
instance QFocusEventPtr QFocusEvent where
toQFocusEvent = HoppyP.id
instance M20.QEventConstPtr QFocusEvent where
toQEventConst (QFocusEvent ptr') = M20.QEventConst $ castQFocusEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QFocusEvent -> HoppyF.Ptr QFocusEventConst) ptr'
toQEventConst (QFocusEventGc fptr' ptr') = M20.QEventConstGc fptr' $ castQFocusEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QFocusEvent -> HoppyF.Ptr QFocusEventConst) ptr'
instance M20.QEventPtr QFocusEvent where
toQEvent (QFocusEvent ptr') = M20.QEvent $ (HoppyF.castPtr :: HoppyF.Ptr M20.QEventConst -> HoppyF.Ptr M20.QEvent) $ castQFocusEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QFocusEvent -> HoppyF.Ptr QFocusEventConst) ptr'
toQEvent (QFocusEventGc fptr' ptr') = M20.QEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M20.QEventConst -> HoppyF.Ptr M20.QEvent) $ castQFocusEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QFocusEvent -> HoppyF.Ptr QFocusEventConst) ptr'
new :: M20.QEventType -> M68.QtFocusReason -> HoppyP.IO QFocusEvent
new arg'1 arg'2 =
let arg'1' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'1 in
let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
HoppyP.fmap QFocusEvent
(new' arg'1' arg'2')
class QFocusEventSuper a where
downToQFocusEvent :: a -> QFocusEvent
instance QFocusEventSuper M20.QEvent where
downToQFocusEvent = castQFocusEventToNonconst . cast' . M20.castQEventToConst
where
cast' (M20.QEventConst ptr') = QFocusEventConst $ castQEventToQFocusEvent ptr'
cast' (M20.QEventConstGc fptr' ptr') = QFocusEventConstGc fptr' $ castQEventToQFocusEvent ptr'
class QFocusEventSuperConst a where
downToQFocusEventConst :: a -> QFocusEventConst
instance QFocusEventSuperConst M20.QEventConst where
downToQFocusEventConst = cast'
where
cast' (M20.QEventConst ptr') = QFocusEventConst $ castQEventToQFocusEvent ptr'
cast' (M20.QEventConstGc fptr' ptr') = QFocusEventConstGc fptr' $ castQEventToQFocusEvent ptr'
instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QFocusEvent)) QFocusEvent where
assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QFocusEvent)) QFocusEvent where
decode = HoppyP.fmap QFocusEvent . HoppyF.peek