packages feed

qtah-qt5-0.8.0: src/Graphics/UI/Qtah/Generated/Core/QCoreApplication.hs

{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
---------- GENERATED FILE, EDITS WILL BE LOST ----------

module Graphics.UI.Qtah.Generated.Core.QCoreApplication (
  castQCoreApplicationToQObject,
  castQObjectToQCoreApplication,
  QCoreApplicationValue (..),
  QCoreApplicationConstPtr (..),
  QCoreApplicationPtr (..),
  new,
  addLibraryPath,
  applicationDirPath,
  applicationFilePath,
  applicationName,
  applicationPid,
  applicationVersion,
  arguments,
  closingDown,
  exec,
  exit,
  getInstance,
  isQuitLockEnabled,
  isSetuidAllowed,
  libraryPaths,
  organizationDomain,
  organizationName,
  postEvent,
  postEventWithPriority,
  quit,
  removeLibraryPath,
  removePostedEvents,
  removePostedEventsWithEventType,
  sendEvent,
  sendPostedEvents,
  sendPostedEventsWithObject,
  sendPostedEventsWithObjectAndEventType,
  setApplicationName,
  setApplicationVersion,
  setAttribute,
  setAttributeWithBool,
  setLibraryPaths,
  setOrganizationDomain,
  setOrganizationName,
  setQuitLockEnabled,
  setSetuidAllowed,
  startingUp,
  testAttribute,
  translate,
  translateWithDisambiguation,
  translateWithDisambiguationAndNum,
  QCoreApplicationConst (..),
  castQCoreApplicationToConst,
  QCoreApplication (..),
  castQCoreApplicationToNonconst,
  QCoreApplicationSuper (..),
  QCoreApplicationSuperConst (..),
  ) where

import qualified Data.Int as HoppyDI
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 M34
import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
import qualified Graphics.UI.Qtah.Generated.Core.QStringList as M144
import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
import Prelude (($), (.), (/=), (=<<), (==), (>>=))
import qualified Prelude as HoppyP
import qualified Prelude as QtahP

foreign import ccall "genpop__QCoreApplication_new" new' ::  HoppyF.Ptr M144.QStringListConst -> HoppyP.IO (HoppyF.Ptr QCoreApplication)
foreign import ccall "genpop__QCoreApplication_addLibraryPath" addLibraryPath' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
foreign import ccall "genpop__QCoreApplication_applicationDirPath" applicationDirPath' ::  HoppyP.IO (HoppyF.Ptr M142.QStringConst)
foreign import ccall "genpop__QCoreApplication_applicationFilePath" applicationFilePath' ::  HoppyP.IO (HoppyF.Ptr M142.QStringConst)
foreign import ccall "genpop__QCoreApplication_applicationName" applicationName' ::  HoppyP.IO (HoppyF.Ptr M142.QStringConst)
foreign import ccall "genpop__QCoreApplication_applicationPid" applicationPid' ::  HoppyP.IO HoppyDI.Int64
foreign import ccall "genpop__QCoreApplication_applicationVersion" applicationVersion' ::  HoppyP.IO (HoppyF.Ptr M142.QStringConst)
foreign import ccall "genpop__QCoreApplication_arguments" arguments' ::  HoppyP.IO (HoppyF.Ptr M144.QStringListConst)
foreign import ccall "genpop__QCoreApplication_closingDown" closingDown' ::  HoppyP.IO HoppyFC.CBool
foreign import ccall "genpop__QCoreApplication_exec" exec' ::  HoppyP.IO ()
foreign import ccall "genpop__QCoreApplication_exit" exit' ::  HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QCoreApplication_getInstance" getInstance' ::  HoppyP.IO (HoppyF.Ptr QCoreApplication)
foreign import ccall "genpop__QCoreApplication_isQuitLockEnabled" isQuitLockEnabled' ::  HoppyP.IO HoppyFC.CBool
foreign import ccall "genpop__QCoreApplication_isSetuidAllowed" isSetuidAllowed' ::  HoppyP.IO HoppyFC.CBool
foreign import ccall "genpop__QCoreApplication_libraryPaths" libraryPaths' ::  HoppyP.IO (HoppyF.Ptr M144.QStringListConst)
foreign import ccall "genpop__QCoreApplication_organizationDomain" organizationDomain' ::  HoppyP.IO (HoppyF.Ptr M142.QStringConst)
foreign import ccall "genpop__QCoreApplication_organizationName" organizationName' ::  HoppyP.IO (HoppyF.Ptr M142.QStringConst)
foreign import ccall "genpop__QCoreApplication_postEvent" postEvent' ::  HoppyF.Ptr M94.QObject -> HoppyF.Ptr M34.QEvent -> HoppyP.IO ()
foreign import ccall "genpop__QCoreApplication_postEventWithPriority" postEventWithPriority' ::  HoppyF.Ptr M94.QObject -> HoppyF.Ptr M34.QEvent -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QCoreApplication_quit" quit' ::  HoppyP.IO ()
foreign import ccall "genpop__QCoreApplication_removeLibraryPath" removeLibraryPath' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
foreign import ccall "genpop__QCoreApplication_removePostedEvents" removePostedEvents' ::  HoppyF.Ptr M94.QObject -> HoppyP.IO ()
foreign import ccall "genpop__QCoreApplication_removePostedEventsWithEventType" removePostedEventsWithEventType' ::  HoppyF.Ptr M94.QObject -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QCoreApplication_sendEvent" sendEvent' ::  HoppyF.Ptr M94.QObject -> HoppyF.Ptr M34.QEvent -> HoppyP.IO HoppyFC.CBool
foreign import ccall "genpop__QCoreApplication_sendPostedEvents" sendPostedEvents' ::  HoppyP.IO ()
foreign import ccall "genpop__QCoreApplication_sendPostedEventsWithObject" sendPostedEventsWithObject' ::  HoppyF.Ptr M94.QObject -> HoppyP.IO ()
foreign import ccall "genpop__QCoreApplication_sendPostedEventsWithObjectAndEventType" sendPostedEventsWithObjectAndEventType' ::  HoppyF.Ptr M94.QObject -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QCoreApplication_setApplicationName" setApplicationName' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
foreign import ccall "genpop__QCoreApplication_setApplicationVersion" setApplicationVersion' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
foreign import ccall "genpop__QCoreApplication_setAttribute" setAttribute' ::  HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QCoreApplication_setAttributeWithBool" setAttributeWithBool' ::  HoppyFC.CInt -> HoppyFC.CBool -> HoppyP.IO ()
foreign import ccall "genpop__QCoreApplication_setLibraryPaths" setLibraryPaths' ::  HoppyF.Ptr M144.QStringListConst -> HoppyP.IO ()
foreign import ccall "genpop__QCoreApplication_setOrganizationDomain" setOrganizationDomain' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
foreign import ccall "genpop__QCoreApplication_setOrganizationName" setOrganizationName' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
foreign import ccall "genpop__QCoreApplication_setQuitLockEnabled" setQuitLockEnabled' ::  HoppyFC.CBool -> HoppyP.IO ()
foreign import ccall "genpop__QCoreApplication_setSetuidAllowed" setSetuidAllowed' ::  HoppyFC.CBool -> HoppyP.IO ()
foreign import ccall "genpop__QCoreApplication_startingUp" startingUp' ::  HoppyP.IO HoppyFC.CBool
foreign import ccall "genpop__QCoreApplication_testAttribute" testAttribute' ::  HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
foreign import ccall "genpop__QCoreApplication_translate" translate' ::  HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
foreign import ccall "genpop__QCoreApplication_translateWithDisambiguation" translateWithDisambiguation' ::  HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
foreign import ccall "genpop__QCoreApplication_translateWithDisambiguationAndNum" translateWithDisambiguationAndNum' ::  HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
foreign import ccall "gencast__QCoreApplication__QObject" castQCoreApplicationToQObject :: HoppyF.Ptr QCoreApplicationConst -> HoppyF.Ptr M94.QObjectConst
foreign import ccall "gencast__QObject__QCoreApplication" castQObjectToQCoreApplication :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QCoreApplicationConst
foreign import ccall "gendel__QCoreApplication" delete'QCoreApplication :: HoppyF.Ptr QCoreApplicationConst -> HoppyP.IO ()
foreign import ccall "&gendel__QCoreApplication" deletePtr'QCoreApplication :: HoppyF.FunPtr (HoppyF.Ptr QCoreApplicationConst -> HoppyP.IO ())

class QCoreApplicationValue a where
  withQCoreApplicationPtr :: a -> (QCoreApplicationConst -> HoppyP.IO b) -> HoppyP.IO b

instance {-# OVERLAPPABLE #-} QCoreApplicationConstPtr a => QCoreApplicationValue a where
  withQCoreApplicationPtr = HoppyP.flip ($) . toQCoreApplicationConst

class (M94.QObjectConstPtr this) => QCoreApplicationConstPtr this where
  toQCoreApplicationConst :: this -> QCoreApplicationConst

class (QCoreApplicationConstPtr this, M94.QObjectPtr this) => QCoreApplicationPtr this where
  toQCoreApplication :: this -> QCoreApplication

new :: (M144.QStringListValue arg'1) => (arg'1) -> (HoppyP.IO QCoreApplication)
new arg'1 =
  M144.withQStringListPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  HoppyP.fmap QCoreApplication
  (new' arg'1')

addLibraryPath :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO ())
addLibraryPath arg'1 =
  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (addLibraryPath' arg'1')

applicationDirPath :: (HoppyP.IO QtahP.String)
applicationDirPath =
  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
  (applicationDirPath')

applicationFilePath :: (HoppyP.IO QtahP.String)
applicationFilePath =
  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
  (applicationFilePath')

applicationName :: (HoppyP.IO QtahP.String)
applicationName =
  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
  (applicationName')

applicationPid :: (HoppyP.IO HoppyDI.Int64)
applicationPid =
  (applicationPid')

applicationVersion :: (HoppyP.IO QtahP.String)
applicationVersion =
  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
  (applicationVersion')

arguments :: (HoppyP.IO [QtahP.String])
arguments =
  (HoppyFHR.decodeAndDelete . M144.QStringListConst) =<<
  (arguments')

closingDown :: (HoppyP.IO HoppyP.Bool)
closingDown =
  (
    (HoppyP.return . (/= 0))
  ) =<<
  (closingDown')

exec :: (HoppyP.IO ())
exec =
  (exec')

exit :: (HoppyP.Int) -> (HoppyP.IO ())
exit arg'1 =
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'1 >>= \arg'1' ->
  (exit' arg'1')

getInstance :: (HoppyP.IO QCoreApplication)
getInstance =
  HoppyP.fmap QCoreApplication
  (getInstance')

isQuitLockEnabled :: (HoppyP.IO HoppyP.Bool)
isQuitLockEnabled =
  (
    (HoppyP.return . (/= 0))
  ) =<<
  (isQuitLockEnabled')

isSetuidAllowed :: (HoppyP.IO HoppyP.Bool)
isSetuidAllowed =
  (
    (HoppyP.return . (/= 0))
  ) =<<
  (isSetuidAllowed')

libraryPaths :: (HoppyP.IO [QtahP.String])
libraryPaths =
  (HoppyFHR.decodeAndDelete . M144.QStringListConst) =<<
  (libraryPaths')

organizationDomain :: (HoppyP.IO QtahP.String)
organizationDomain =
  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
  (organizationDomain')

organizationName :: (HoppyP.IO QtahP.String)
organizationName =
  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
  (organizationName')

postEvent :: (M94.QObjectPtr arg'1, M34.QEventPtr arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO ())
postEvent arg'1 arg'2 =
  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
  HoppyFHR.withCppPtr (M34.toQEvent arg'2) $ \arg'2' ->
  (postEvent' arg'1' arg'2')

postEventWithPriority :: (M94.QObjectPtr arg'1, M34.QEventPtr arg'2) => (arg'1) -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO ())
postEventWithPriority arg'1 arg'2 arg'3 =
  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
  HoppyFHR.withCppPtr (M34.toQEvent arg'2) $ \arg'2' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'3 >>= \arg'3' ->
  (postEventWithPriority' arg'1' arg'2' arg'3')

quit :: (HoppyP.IO ())
quit =
  (quit')

removeLibraryPath :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO ())
removeLibraryPath arg'1 =
  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (removeLibraryPath' arg'1')

removePostedEvents :: (M94.QObjectPtr arg'1) => (arg'1) -> (HoppyP.IO ())
removePostedEvents arg'1 =
  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
  (removePostedEvents' arg'1')

removePostedEventsWithEventType :: (M94.QObjectPtr arg'1) => (arg'1) -> (HoppyP.Int) -> (HoppyP.IO ())
removePostedEventsWithEventType arg'1 arg'2 =
  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'2 >>= \arg'2' ->
  (removePostedEventsWithEventType' arg'1' arg'2')

sendEvent :: (M94.QObjectPtr arg'1, M34.QEventPtr arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
sendEvent arg'1 arg'2 =
  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
  HoppyFHR.withCppPtr (M34.toQEvent arg'2) $ \arg'2' ->
  (
    (HoppyP.return . (/= 0))
  ) =<<
  (sendEvent' arg'1' arg'2')

sendPostedEvents :: (HoppyP.IO ())
sendPostedEvents =
  (sendPostedEvents')

sendPostedEventsWithObject :: (M94.QObjectPtr arg'1) => (arg'1) -> (HoppyP.IO ())
sendPostedEventsWithObject arg'1 =
  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
  (sendPostedEventsWithObject' arg'1')

sendPostedEventsWithObjectAndEventType :: (M94.QObjectPtr arg'1) => (arg'1) -> (HoppyP.Int) -> (HoppyP.IO ())
sendPostedEventsWithObjectAndEventType arg'1 arg'2 =
  HoppyFHR.withCppPtr (M94.toQObject arg'1) $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'2 >>= \arg'2' ->
  (sendPostedEventsWithObjectAndEventType' arg'1' arg'2')

setApplicationName :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO ())
setApplicationName arg'1 =
  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (setApplicationName' arg'1')

setApplicationVersion :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO ())
setApplicationVersion arg'1 =
  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (setApplicationVersion' arg'1')

setAttribute :: (M190.QtApplicationAttribute) -> (HoppyP.IO ())
setAttribute arg'1 =
  (
    HoppyP.return . HoppyFHR.fromCppEnum
  ) arg'1 >>= \arg'1' ->
  (setAttribute' arg'1')

setAttributeWithBool :: (M190.QtApplicationAttribute) -> (HoppyP.Bool) -> (HoppyP.IO ())
setAttributeWithBool arg'1 arg'2 =
  (
    HoppyP.return . HoppyFHR.fromCppEnum
  ) arg'1 >>= \arg'1' ->
  (
    \x -> HoppyP.return $ if x then 1 else 0
  ) arg'2 >>= \arg'2' ->
  (setAttributeWithBool' arg'1' arg'2')

setLibraryPaths :: (M144.QStringListValue arg'1) => (arg'1) -> (HoppyP.IO ())
setLibraryPaths arg'1 =
  M144.withQStringListPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (setLibraryPaths' arg'1')

setOrganizationDomain :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO ())
setOrganizationDomain arg'1 =
  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (setOrganizationDomain' arg'1')

setOrganizationName :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO ())
setOrganizationName arg'1 =
  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (setOrganizationName' arg'1')

setQuitLockEnabled :: (HoppyP.Bool) -> (HoppyP.IO ())
setQuitLockEnabled arg'1 =
  (
    \x -> HoppyP.return $ if x then 1 else 0
  ) arg'1 >>= \arg'1' ->
  (setQuitLockEnabled' arg'1')

setSetuidAllowed :: (HoppyP.Bool) -> (HoppyP.IO ())
setSetuidAllowed arg'1 =
  (
    \x -> HoppyP.return $ if x then 1 else 0
  ) arg'1 >>= \arg'1' ->
  (setSetuidAllowed' arg'1')

startingUp :: (HoppyP.IO HoppyP.Bool)
startingUp =
  (
    (HoppyP.return . (/= 0))
  ) =<<
  (startingUp')

testAttribute :: (M190.QtApplicationAttribute) -> (HoppyP.IO HoppyP.Bool)
testAttribute arg'1 =
  (
    HoppyP.return . HoppyFHR.fromCppEnum
  ) arg'1 >>= \arg'1' ->
  (
    (HoppyP.return . (/= 0))
  ) =<<
  (testAttribute' arg'1')

translate :: (M142.QStringValue arg'1, M142.QStringValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QtahP.String)
translate arg'1 arg'2 =
  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
  (translate' arg'1' arg'2')

translateWithDisambiguation :: (M142.QStringValue arg'1, M142.QStringValue arg'2, M142.QStringValue arg'3) => (arg'1) -> (arg'2) -> (arg'3) -> (HoppyP.IO QtahP.String)
translateWithDisambiguation arg'1 arg'2 arg'3 =
  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
  (translateWithDisambiguation' arg'1' arg'2' arg'3')

translateWithDisambiguationAndNum :: (M142.QStringValue arg'1, M142.QStringValue arg'2, M142.QStringValue arg'3) => (arg'1) -> (arg'2) -> (arg'3) -> (HoppyP.Int) -> (HoppyP.IO QtahP.String)
translateWithDisambiguationAndNum arg'1 arg'2 arg'3 arg'4 =
  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'4 >>= \arg'4' ->
  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
  (translateWithDisambiguationAndNum' arg'1' arg'2' arg'3' arg'4')

data QCoreApplicationConst =
    QCoreApplicationConst (HoppyF.Ptr QCoreApplicationConst)
  | QCoreApplicationConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QCoreApplicationConst)
  deriving (HoppyP.Show)

instance HoppyP.Eq QCoreApplicationConst where
  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y

instance HoppyP.Ord QCoreApplicationConst where
  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)

castQCoreApplicationToConst :: QCoreApplication -> QCoreApplicationConst
castQCoreApplicationToConst (QCoreApplication ptr') = QCoreApplicationConst $ HoppyF.castPtr ptr'
castQCoreApplicationToConst (QCoreApplicationGc fptr' ptr') = QCoreApplicationConstGc fptr' $ HoppyF.castPtr ptr'

instance HoppyFHR.CppPtr QCoreApplicationConst where
  nullptr = QCoreApplicationConst HoppyF.nullPtr
  
  withCppPtr (QCoreApplicationConst ptr') f' = f' ptr'
  withCppPtr (QCoreApplicationConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
  
  toPtr (QCoreApplicationConst ptr') = ptr'
  toPtr (QCoreApplicationConstGc _ ptr') = ptr'
  
  touchCppPtr (QCoreApplicationConst _) = HoppyP.return ()
  touchCppPtr (QCoreApplicationConstGc fptr' _) = HoppyF.touchForeignPtr fptr'

instance HoppyFHR.Deletable QCoreApplicationConst where
  delete (QCoreApplicationConst ptr') = delete'QCoreApplication ptr'
  delete (QCoreApplicationConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QCoreApplicationConst", " object."]
  
  toGc this'@(QCoreApplicationConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QCoreApplicationConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QCoreApplication :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
  toGc this'@(QCoreApplicationConstGc {}) = HoppyP.return this'

instance QCoreApplicationConstPtr QCoreApplicationConst where
  toQCoreApplicationConst = HoppyP.id

instance M94.QObjectConstPtr QCoreApplicationConst where
  toQObjectConst (QCoreApplicationConst ptr') = M94.QObjectConst $ castQCoreApplicationToQObject ptr'
  toQObjectConst (QCoreApplicationConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQCoreApplicationToQObject ptr'

data QCoreApplication =
    QCoreApplication (HoppyF.Ptr QCoreApplication)
  | QCoreApplicationGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QCoreApplication)
  deriving (HoppyP.Show)

instance HoppyP.Eq QCoreApplication where
  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y

instance HoppyP.Ord QCoreApplication where
  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)

castQCoreApplicationToNonconst :: QCoreApplicationConst -> QCoreApplication
castQCoreApplicationToNonconst (QCoreApplicationConst ptr') = QCoreApplication $ HoppyF.castPtr ptr'
castQCoreApplicationToNonconst (QCoreApplicationConstGc fptr' ptr') = QCoreApplicationGc fptr' $ HoppyF.castPtr ptr'

instance HoppyFHR.CppPtr QCoreApplication where
  nullptr = QCoreApplication HoppyF.nullPtr
  
  withCppPtr (QCoreApplication ptr') f' = f' ptr'
  withCppPtr (QCoreApplicationGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
  
  toPtr (QCoreApplication ptr') = ptr'
  toPtr (QCoreApplicationGc _ ptr') = ptr'
  
  touchCppPtr (QCoreApplication _) = HoppyP.return ()
  touchCppPtr (QCoreApplicationGc fptr' _) = HoppyF.touchForeignPtr fptr'

instance HoppyFHR.Deletable QCoreApplication where
  delete (QCoreApplication ptr') = delete'QCoreApplication $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QCoreApplicationConst)
  delete (QCoreApplicationGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QCoreApplication", " object."]
  
  toGc this'@(QCoreApplication ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QCoreApplicationGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QCoreApplication :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
  toGc this'@(QCoreApplicationGc {}) = HoppyP.return this'

instance QCoreApplicationConstPtr QCoreApplication where
  toQCoreApplicationConst (QCoreApplication ptr') = QCoreApplicationConst $ (HoppyF.castPtr :: HoppyF.Ptr QCoreApplication -> HoppyF.Ptr QCoreApplicationConst) ptr'
  toQCoreApplicationConst (QCoreApplicationGc fptr' ptr') = QCoreApplicationConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QCoreApplication -> HoppyF.Ptr QCoreApplicationConst) ptr'

instance QCoreApplicationPtr QCoreApplication where
  toQCoreApplication = HoppyP.id

instance M94.QObjectConstPtr QCoreApplication where
  toQObjectConst (QCoreApplication ptr') = M94.QObjectConst $ castQCoreApplicationToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QCoreApplication -> HoppyF.Ptr QCoreApplicationConst) ptr'
  toQObjectConst (QCoreApplicationGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQCoreApplicationToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QCoreApplication -> HoppyF.Ptr QCoreApplicationConst) ptr'

instance M94.QObjectPtr QCoreApplication where
  toQObject (QCoreApplication ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQCoreApplicationToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QCoreApplication -> HoppyF.Ptr QCoreApplicationConst) ptr'
  toQObject (QCoreApplicationGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQCoreApplicationToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QCoreApplication -> HoppyF.Ptr QCoreApplicationConst) ptr'

class QCoreApplicationSuper a where
  downToQCoreApplication :: a -> QCoreApplication

instance QCoreApplicationSuper M94.QObject where
  downToQCoreApplication = castQCoreApplicationToNonconst . cast' . M94.castQObjectToConst
    where
      cast' (M94.QObjectConst ptr') = QCoreApplicationConst $ castQObjectToQCoreApplication ptr'
      cast' (M94.QObjectConstGc fptr' ptr') = QCoreApplicationConstGc fptr' $ castQObjectToQCoreApplication ptr'

class QCoreApplicationSuperConst a where
  downToQCoreApplicationConst :: a -> QCoreApplicationConst

instance QCoreApplicationSuperConst M94.QObjectConst where
  downToQCoreApplicationConst = cast'
    where
      cast' (M94.QObjectConst ptr') = QCoreApplicationConst $ castQObjectToQCoreApplication ptr'
      cast' (M94.QObjectConstGc fptr' ptr') = QCoreApplicationConstGc fptr' $ castQObjectToQCoreApplication ptr'

instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QCoreApplication)) QCoreApplication where
  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'

instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QCoreApplication)) QCoreApplication where
  decode = HoppyP.fmap QCoreApplication . HoppyF.peek