{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, GeneralizedNewtypeDeriving, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
module Graphics.UI.Qtah.Generated.Gui.QPaintEvent (
castQPaintEventToQEvent,
castQEventToQPaintEvent,
QPaintEventValue (..),
QPaintEventConstPtr (..),
rect,
region,
QPaintEventPtr (..),
QPaintEventConst (..),
castQPaintEventToConst,
QPaintEvent (..),
castQPaintEventToNonconst,
newWithRect,
newWithRegion,
QPaintEventSuper (..),
QPaintEventSuperConst (..),
) where
import qualified Foreign as HoppyF
import qualified Foreign.Hoppy.Runtime as HoppyFHR
import qualified Graphics.UI.Qtah.Generated.Core.QEvent as M20
import qualified Graphics.UI.Qtah.Generated.Core.QRect as M44
import qualified Graphics.UI.Qtah.Generated.Gui.QRegion as M158
import Prelude (($), (.), (==))
import qualified Prelude as HoppyP
foreign import ccall "genpop__QPaintEvent_newWithRect" newWithRect' :: HoppyF.Ptr M44.QRectConst -> HoppyP.IO (HoppyF.Ptr QPaintEvent)
foreign import ccall "genpop__QPaintEvent_newWithRegion" newWithRegion' :: HoppyF.Ptr M158.QRegionConst -> HoppyP.IO (HoppyF.Ptr QPaintEvent)
foreign import ccall "genpop__QPaintEvent_rect" rect' :: HoppyF.Ptr QPaintEventConst -> HoppyP.IO (HoppyF.Ptr M44.QRectConst)
foreign import ccall "genpop__QPaintEvent_region" region' :: HoppyF.Ptr QPaintEventConst -> HoppyP.IO (HoppyF.Ptr M158.QRegionConst)
foreign import ccall "gencast__QPaintEvent__QEvent" castQPaintEventToQEvent :: HoppyF.Ptr QPaintEventConst -> HoppyF.Ptr M20.QEventConst
foreign import ccall "gencast__QEvent__QPaintEvent" castQEventToQPaintEvent :: HoppyF.Ptr M20.QEventConst -> HoppyF.Ptr QPaintEventConst
foreign import ccall "gendel__QPaintEvent" delete'QPaintEvent :: HoppyF.Ptr QPaintEventConst -> HoppyP.IO ()
foreign import ccall "&gendel__QPaintEvent" deletePtr'QPaintEvent :: HoppyF.FunPtr (HoppyF.Ptr QPaintEventConst -> HoppyP.IO ())
class QPaintEventValue a where
withQPaintEventPtr :: a -> (QPaintEventConst -> HoppyP.IO b) -> HoppyP.IO b
instance {-# OVERLAPPABLE #-} QPaintEventConstPtr a => QPaintEventValue a where
withQPaintEventPtr = HoppyP.flip ($) . toQPaintEventConst
class (M20.QEventConstPtr this) => QPaintEventConstPtr this where
toQPaintEventConst :: this -> QPaintEventConst
rect :: (QPaintEventValue arg'1) => arg'1 -> HoppyP.IO M44.QRectConst
rect arg'1 =
withQPaintEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
HoppyP.fmap M44.QRectConst
(rect' arg'1')
region :: (QPaintEventValue arg'1) => arg'1 -> HoppyP.IO M158.QRegionConst
region arg'1 =
withQPaintEventPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
HoppyP.fmap M158.QRegionConst
(region' arg'1')
class (QPaintEventConstPtr this, M20.QEventPtr this) => QPaintEventPtr this where
toQPaintEvent :: this -> QPaintEvent
data QPaintEventConst =
QPaintEventConst (HoppyF.Ptr QPaintEventConst)
| QPaintEventConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QPaintEventConst)
deriving (HoppyP.Show)
instance HoppyP.Eq QPaintEventConst where
x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
instance HoppyP.Ord QPaintEventConst where
compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
castQPaintEventToConst :: QPaintEvent -> QPaintEventConst
castQPaintEventToConst (QPaintEvent ptr') = QPaintEventConst $ HoppyF.castPtr ptr'
castQPaintEventToConst (QPaintEventGc fptr' ptr') = QPaintEventConstGc fptr' $ HoppyF.castPtr ptr'
instance HoppyFHR.CppPtr QPaintEventConst where
nullptr = QPaintEventConst HoppyF.nullPtr
withCppPtr (QPaintEventConst ptr') f' = f' ptr'
withCppPtr (QPaintEventConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
toPtr (QPaintEventConst ptr') = ptr'
toPtr (QPaintEventConstGc _ ptr') = ptr'
touchCppPtr (QPaintEventConst _) = HoppyP.return ()
touchCppPtr (QPaintEventConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
instance HoppyFHR.Deletable QPaintEventConst where
delete (QPaintEventConst ptr') = delete'QPaintEvent ptr'
delete (QPaintEventConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QPaintEventConst", " object."]
toGc this'@(QPaintEventConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QPaintEventConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QPaintEvent :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
toGc this'@(QPaintEventConstGc {}) = HoppyP.return this'
instance QPaintEventConstPtr QPaintEventConst where
toQPaintEventConst = HoppyP.id
instance M20.QEventConstPtr QPaintEventConst where
toQEventConst (QPaintEventConst ptr') = M20.QEventConst $ castQPaintEventToQEvent ptr'
toQEventConst (QPaintEventConstGc fptr' ptr') = M20.QEventConstGc fptr' $ castQPaintEventToQEvent ptr'
data QPaintEvent =
QPaintEvent (HoppyF.Ptr QPaintEvent)
| QPaintEventGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QPaintEvent)
deriving (HoppyP.Show)
instance HoppyP.Eq QPaintEvent where
x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
instance HoppyP.Ord QPaintEvent where
compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
castQPaintEventToNonconst :: QPaintEventConst -> QPaintEvent
castQPaintEventToNonconst (QPaintEventConst ptr') = QPaintEvent $ HoppyF.castPtr ptr'
castQPaintEventToNonconst (QPaintEventConstGc fptr' ptr') = QPaintEventGc fptr' $ HoppyF.castPtr ptr'
instance HoppyFHR.CppPtr QPaintEvent where
nullptr = QPaintEvent HoppyF.nullPtr
withCppPtr (QPaintEvent ptr') f' = f' ptr'
withCppPtr (QPaintEventGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
toPtr (QPaintEvent ptr') = ptr'
toPtr (QPaintEventGc _ ptr') = ptr'
touchCppPtr (QPaintEvent _) = HoppyP.return ()
touchCppPtr (QPaintEventGc fptr' _) = HoppyF.touchForeignPtr fptr'
instance HoppyFHR.Deletable QPaintEvent where
delete (QPaintEvent ptr') = delete'QPaintEvent $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QPaintEventConst)
delete (QPaintEventGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QPaintEvent", " object."]
toGc this'@(QPaintEvent ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QPaintEventGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QPaintEvent :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
toGc this'@(QPaintEventGc {}) = HoppyP.return this'
instance QPaintEventConstPtr QPaintEvent where
toQPaintEventConst (QPaintEvent ptr') = QPaintEventConst $ (HoppyF.castPtr :: HoppyF.Ptr QPaintEvent -> HoppyF.Ptr QPaintEventConst) ptr'
toQPaintEventConst (QPaintEventGc fptr' ptr') = QPaintEventConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QPaintEvent -> HoppyF.Ptr QPaintEventConst) ptr'
instance QPaintEventPtr QPaintEvent where
toQPaintEvent = HoppyP.id
instance M20.QEventConstPtr QPaintEvent where
toQEventConst (QPaintEvent ptr') = M20.QEventConst $ castQPaintEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QPaintEvent -> HoppyF.Ptr QPaintEventConst) ptr'
toQEventConst (QPaintEventGc fptr' ptr') = M20.QEventConstGc fptr' $ castQPaintEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QPaintEvent -> HoppyF.Ptr QPaintEventConst) ptr'
instance M20.QEventPtr QPaintEvent where
toQEvent (QPaintEvent ptr') = M20.QEvent $ (HoppyF.castPtr :: HoppyF.Ptr M20.QEventConst -> HoppyF.Ptr M20.QEvent) $ castQPaintEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QPaintEvent -> HoppyF.Ptr QPaintEventConst) ptr'
toQEvent (QPaintEventGc fptr' ptr') = M20.QEventGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M20.QEventConst -> HoppyF.Ptr M20.QEvent) $ castQPaintEventToQEvent $ (HoppyF.castPtr :: HoppyF.Ptr QPaintEvent -> HoppyF.Ptr QPaintEventConst) ptr'
newWithRect :: (M44.QRectValue arg'1) => arg'1 -> HoppyP.IO QPaintEvent
newWithRect arg'1 =
M44.withQRectPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
HoppyP.fmap QPaintEvent
(newWithRect' arg'1')
newWithRegion :: (M158.QRegionValue arg'1) => arg'1 -> HoppyP.IO QPaintEvent
newWithRegion arg'1 =
M158.withQRegionPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
HoppyP.fmap QPaintEvent
(newWithRegion' arg'1')
class QPaintEventSuper a where
downToQPaintEvent :: a -> QPaintEvent
instance QPaintEventSuper M20.QEvent where
downToQPaintEvent = castQPaintEventToNonconst . cast' . M20.castQEventToConst
where
cast' (M20.QEventConst ptr') = QPaintEventConst $ castQEventToQPaintEvent ptr'
cast' (M20.QEventConstGc fptr' ptr') = QPaintEventConstGc fptr' $ castQEventToQPaintEvent ptr'
class QPaintEventSuperConst a where
downToQPaintEventConst :: a -> QPaintEventConst
instance QPaintEventSuperConst M20.QEventConst where
downToQPaintEventConst = cast'
where
cast' (M20.QEventConst ptr') = QPaintEventConst $ castQEventToQPaintEvent ptr'
cast' (M20.QEventConstGc fptr' ptr') = QPaintEventConstGc fptr' $ castQEventToQPaintEvent ptr'
instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QPaintEvent)) QPaintEvent where
assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QPaintEvent)) QPaintEvent where
decode = HoppyP.fmap QPaintEvent . HoppyF.peek