packages feed

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

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

module Graphics.UI.Qtah.Generated.Core.QStaticPlugin (
  QStaticPluginValue (..),
  QStaticPluginConstPtr (..),
  QStaticPluginPtr (..),
  getInstance,
  rawMetaData,
  QStaticPluginConst (..),
  castQStaticPluginToConst,
  QStaticPlugin (..),
  castQStaticPluginToNonconst,
  QStaticPluginSuper (..),
  QStaticPluginSuperConst (..),
  ) 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.QObject as M94
import Prelude (($), (.), (==))
import qualified Prelude as HoppyP

foreign import ccall "genpop__QStaticPlugin_getInstance" getInstance' ::  HoppyF.Ptr QStaticPlugin -> HoppyP.IO (HoppyF.Ptr M94.QObject)
foreign import ccall "genpop__QStaticPlugin_rawMetaData" rawMetaData' ::  HoppyF.Ptr QStaticPlugin -> HoppyP.IO (HoppyF.Ptr HoppyFC.CChar)
foreign import ccall "gendel__QStaticPlugin" delete'QStaticPlugin :: HoppyF.Ptr QStaticPluginConst -> HoppyP.IO ()
foreign import ccall "&gendel__QStaticPlugin" deletePtr'QStaticPlugin :: HoppyF.FunPtr (HoppyF.Ptr QStaticPluginConst -> HoppyP.IO ())

class QStaticPluginValue a where
  withQStaticPluginPtr :: a -> (QStaticPluginConst -> HoppyP.IO b) -> HoppyP.IO b

instance {-# OVERLAPPABLE #-} QStaticPluginConstPtr a => QStaticPluginValue a where
  withQStaticPluginPtr = HoppyP.flip ($) . toQStaticPluginConst

class (HoppyFHR.CppPtr this) => QStaticPluginConstPtr this where
  toQStaticPluginConst :: this -> QStaticPluginConst

class (QStaticPluginConstPtr this) => QStaticPluginPtr this where
  toQStaticPlugin :: this -> QStaticPlugin

getInstance :: (QStaticPluginPtr this) => (this) {- ^ this -} -> (HoppyP.IO M94.QObject)
getInstance arg'1 =
  HoppyFHR.withCppPtr (toQStaticPlugin arg'1) $ \arg'1' ->
  HoppyP.fmap M94.QObject
  (getInstance' arg'1')

rawMetaData :: (QStaticPluginPtr this) => (this) {- ^ this -} -> (HoppyP.IO (HoppyF.Ptr HoppyFC.CChar))
rawMetaData arg'1 =
  HoppyFHR.withCppPtr (toQStaticPlugin arg'1) $ \arg'1' ->
  (rawMetaData' arg'1')

data QStaticPluginConst =
    QStaticPluginConst (HoppyF.Ptr QStaticPluginConst)
  | QStaticPluginConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QStaticPluginConst)
  deriving (HoppyP.Show)

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

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

castQStaticPluginToConst :: QStaticPlugin -> QStaticPluginConst
castQStaticPluginToConst (QStaticPlugin ptr') = QStaticPluginConst $ HoppyF.castPtr ptr'
castQStaticPluginToConst (QStaticPluginGc fptr' ptr') = QStaticPluginConstGc fptr' $ HoppyF.castPtr ptr'

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

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

instance QStaticPluginConstPtr QStaticPluginConst where
  toQStaticPluginConst = HoppyP.id

data QStaticPlugin =
    QStaticPlugin (HoppyF.Ptr QStaticPlugin)
  | QStaticPluginGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QStaticPlugin)
  deriving (HoppyP.Show)

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

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

castQStaticPluginToNonconst :: QStaticPluginConst -> QStaticPlugin
castQStaticPluginToNonconst (QStaticPluginConst ptr') = QStaticPlugin $ HoppyF.castPtr ptr'
castQStaticPluginToNonconst (QStaticPluginConstGc fptr' ptr') = QStaticPluginGc fptr' $ HoppyF.castPtr ptr'

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

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

instance QStaticPluginConstPtr QStaticPlugin where
  toQStaticPluginConst (QStaticPlugin ptr') = QStaticPluginConst $ (HoppyF.castPtr :: HoppyF.Ptr QStaticPlugin -> HoppyF.Ptr QStaticPluginConst) ptr'
  toQStaticPluginConst (QStaticPluginGc fptr' ptr') = QStaticPluginConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QStaticPlugin -> HoppyF.Ptr QStaticPluginConst) ptr'

instance QStaticPluginPtr QStaticPlugin where
  toQStaticPlugin = HoppyP.id

class QStaticPluginSuper a where
  downToQStaticPlugin :: a -> QStaticPlugin


class QStaticPluginSuperConst a where
  downToQStaticPluginConst :: a -> QStaticPluginConst


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

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