packages feed

qtah-qt5-0.8.0: src/Graphics/UI/Qtah/Generated/Gui/QFontDatabase.hs

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

module Graphics.UI.Qtah.Generated.Gui.QFontDatabase (
  QFontDatabaseValue (..),
  QFontDatabaseConstPtr (..),
  QFontDatabasePtr (..),
  addApplicationFont,
  QFontDatabaseConst (..),
  castQFontDatabaseToConst,
  QFontDatabase (..),
  castQFontDatabaseToNonconst,
  QFontDatabaseSuper (..),
  QFontDatabaseSuperConst (..),
  ) 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.QString as M142
import Prelude (($), (.), (=<<), (==))
import qualified Prelude as HoppyP

foreign import ccall "genpop__QFontDatabase_addApplicationFont" addApplicationFont' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "gendel__QFontDatabase" delete'QFontDatabase :: HoppyF.Ptr QFontDatabaseConst -> HoppyP.IO ()
foreign import ccall "&gendel__QFontDatabase" deletePtr'QFontDatabase :: HoppyF.FunPtr (HoppyF.Ptr QFontDatabaseConst -> HoppyP.IO ())

class QFontDatabaseValue a where
  withQFontDatabasePtr :: a -> (QFontDatabaseConst -> HoppyP.IO b) -> HoppyP.IO b

instance {-# OVERLAPPABLE #-} QFontDatabaseConstPtr a => QFontDatabaseValue a where
  withQFontDatabasePtr = HoppyP.flip ($) . toQFontDatabaseConst

class (HoppyFHR.CppPtr this) => QFontDatabaseConstPtr this where
  toQFontDatabaseConst :: this -> QFontDatabaseConst

class (QFontDatabaseConstPtr this) => QFontDatabasePtr this where
  toQFontDatabase :: this -> QFontDatabase

addApplicationFont :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO HoppyP.Int)
addApplicationFont arg'1 =
  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) =<<
  (addApplicationFont' arg'1')

data QFontDatabaseConst =
    QFontDatabaseConst (HoppyF.Ptr QFontDatabaseConst)
  | QFontDatabaseConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QFontDatabaseConst)
  deriving (HoppyP.Show)

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

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

castQFontDatabaseToConst :: QFontDatabase -> QFontDatabaseConst
castQFontDatabaseToConst (QFontDatabase ptr') = QFontDatabaseConst $ HoppyF.castPtr ptr'
castQFontDatabaseToConst (QFontDatabaseGc fptr' ptr') = QFontDatabaseConstGc fptr' $ HoppyF.castPtr ptr'

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

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

instance QFontDatabaseConstPtr QFontDatabaseConst where
  toQFontDatabaseConst = HoppyP.id

data QFontDatabase =
    QFontDatabase (HoppyF.Ptr QFontDatabase)
  | QFontDatabaseGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QFontDatabase)
  deriving (HoppyP.Show)

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

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

castQFontDatabaseToNonconst :: QFontDatabaseConst -> QFontDatabase
castQFontDatabaseToNonconst (QFontDatabaseConst ptr') = QFontDatabase $ HoppyF.castPtr ptr'
castQFontDatabaseToNonconst (QFontDatabaseConstGc fptr' ptr') = QFontDatabaseGc fptr' $ HoppyF.castPtr ptr'

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

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

instance QFontDatabaseConstPtr QFontDatabase where
  toQFontDatabaseConst (QFontDatabase ptr') = QFontDatabaseConst $ (HoppyF.castPtr :: HoppyF.Ptr QFontDatabase -> HoppyF.Ptr QFontDatabaseConst) ptr'
  toQFontDatabaseConst (QFontDatabaseGc fptr' ptr') = QFontDatabaseConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QFontDatabase -> HoppyF.Ptr QFontDatabaseConst) ptr'

instance QFontDatabasePtr QFontDatabase where
  toQFontDatabase = HoppyP.id

class QFontDatabaseSuper a where
  downToQFontDatabase :: a -> QFontDatabase


class QFontDatabaseSuperConst a where
  downToQFontDatabaseConst :: a -> QFontDatabaseConst


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

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