packages feed

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

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

module Graphics.UI.Qtah.Generated.Core.QXmlStreamAttribute (
  QXmlStreamAttributeValue (..),
  QXmlStreamAttributeConstPtr (..),
  isDefault,
  eQ,
  nE,
  QXmlStreamAttributePtr (..),
  aSSIGN,
  QXmlStreamAttributeConst (..),
  castQXmlStreamAttributeToConst,
  QXmlStreamAttribute (..),
  castQXmlStreamAttributeToNonconst,
  new,
  newWithQualifiedNameAndValue,
  newWithNamespaceUriAndNameAndValue,
  newCopy,
  QXmlStreamAttributeSuper (..),
  QXmlStreamAttributeSuperConst (..),
  ) where

import Control.Monad ((>=>))
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__QXmlStreamAttribute_new" new' ::  HoppyP.IO (HoppyF.Ptr QXmlStreamAttribute)
foreign import ccall "genpop__QXmlStreamAttribute_newWithQualifiedNameAndValue" newWithQualifiedNameAndValue' ::  HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QXmlStreamAttribute)
foreign import ccall "genpop__QXmlStreamAttribute_newWithNamespaceUriAndNameAndValue" newWithNamespaceUriAndNameAndValue' ::  HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QXmlStreamAttribute)
foreign import ccall "genpop__QXmlStreamAttribute_newCopy" newCopy' ::  HoppyF.Ptr QXmlStreamAttributeConst -> HoppyP.IO (HoppyF.Ptr QXmlStreamAttribute)
foreign import ccall "genpop__QXmlStreamAttribute_isDefault" isDefault' ::  HoppyF.Ptr QXmlStreamAttributeConst -> HoppyP.IO HoppyFC.CBool
foreign import ccall "genpop__QXmlStreamAttribute_EQ" eQ' ::  HoppyF.Ptr QXmlStreamAttributeConst -> HoppyF.Ptr QXmlStreamAttributeConst -> HoppyP.IO HoppyFC.CBool
foreign import ccall "genpop__QXmlStreamAttribute_NE" nE' ::  HoppyF.Ptr QXmlStreamAttributeConst -> HoppyF.Ptr QXmlStreamAttributeConst -> HoppyP.IO HoppyFC.CBool
foreign import ccall "genpop__QXmlStreamAttribute_ASSIGN" aSSIGN' ::  HoppyF.Ptr QXmlStreamAttribute -> HoppyF.Ptr QXmlStreamAttributeConst -> HoppyP.IO (HoppyF.Ptr QXmlStreamAttribute)
foreign import ccall "gendel__QXmlStreamAttribute" delete'QXmlStreamAttribute :: HoppyF.Ptr QXmlStreamAttributeConst -> HoppyP.IO ()
foreign import ccall "&gendel__QXmlStreamAttribute" deletePtr'QXmlStreamAttribute :: HoppyF.FunPtr (HoppyF.Ptr QXmlStreamAttributeConst -> HoppyP.IO ())

class QXmlStreamAttributeValue a where
  withQXmlStreamAttributePtr :: a -> (QXmlStreamAttributeConst -> HoppyP.IO b) -> HoppyP.IO b

instance {-# OVERLAPPABLE #-} QXmlStreamAttributeConstPtr a => QXmlStreamAttributeValue a where
  withQXmlStreamAttributePtr = HoppyP.flip ($) . toQXmlStreamAttributeConst

class (HoppyFHR.CppPtr this) => QXmlStreamAttributeConstPtr this where
  toQXmlStreamAttributeConst :: this -> QXmlStreamAttributeConst

isDefault :: (QXmlStreamAttributeValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
isDefault arg'1 =
  withQXmlStreamAttributePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    (HoppyP.return . (/= 0))
  ) =<<
  (isDefault' arg'1')

eQ :: (QXmlStreamAttributeValue this, QXmlStreamAttributeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
eQ arg'1 arg'2 =
  withQXmlStreamAttributePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  withQXmlStreamAttributePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  (
    (HoppyP.return . (/= 0))
  ) =<<
  (eQ' arg'1' arg'2')

nE :: (QXmlStreamAttributeValue this, QXmlStreamAttributeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
nE arg'1 arg'2 =
  withQXmlStreamAttributePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  withQXmlStreamAttributePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  (
    (HoppyP.return . (/= 0))
  ) =<<
  (nE' arg'1' arg'2')

class (QXmlStreamAttributeConstPtr this) => QXmlStreamAttributePtr this where
  toQXmlStreamAttribute :: this -> QXmlStreamAttribute

aSSIGN :: (QXmlStreamAttributePtr this, QXmlStreamAttributeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QXmlStreamAttribute)
aSSIGN arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQXmlStreamAttribute arg'1) $ \arg'1' ->
  withQXmlStreamAttributePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  HoppyP.fmap QXmlStreamAttribute
  (aSSIGN' arg'1' arg'2')

data QXmlStreamAttributeConst =
    QXmlStreamAttributeConst (HoppyF.Ptr QXmlStreamAttributeConst)
  | QXmlStreamAttributeConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QXmlStreamAttributeConst)
  deriving (HoppyP.Show)

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

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

castQXmlStreamAttributeToConst :: QXmlStreamAttribute -> QXmlStreamAttributeConst
castQXmlStreamAttributeToConst (QXmlStreamAttribute ptr') = QXmlStreamAttributeConst $ HoppyF.castPtr ptr'
castQXmlStreamAttributeToConst (QXmlStreamAttributeGc fptr' ptr') = QXmlStreamAttributeConstGc fptr' $ HoppyF.castPtr ptr'

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

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

instance HoppyFHR.Copyable QXmlStreamAttributeConst QXmlStreamAttribute where copy = newCopy

instance QXmlStreamAttributeConstPtr QXmlStreamAttributeConst where
  toQXmlStreamAttributeConst = HoppyP.id

data QXmlStreamAttribute =
    QXmlStreamAttribute (HoppyF.Ptr QXmlStreamAttribute)
  | QXmlStreamAttributeGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QXmlStreamAttribute)
  deriving (HoppyP.Show)

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

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

castQXmlStreamAttributeToNonconst :: QXmlStreamAttributeConst -> QXmlStreamAttribute
castQXmlStreamAttributeToNonconst (QXmlStreamAttributeConst ptr') = QXmlStreamAttribute $ HoppyF.castPtr ptr'
castQXmlStreamAttributeToNonconst (QXmlStreamAttributeConstGc fptr' ptr') = QXmlStreamAttributeGc fptr' $ HoppyF.castPtr ptr'

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

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

instance HoppyFHR.Copyable QXmlStreamAttribute QXmlStreamAttribute where copy = newCopy

instance QXmlStreamAttributeConstPtr QXmlStreamAttribute where
  toQXmlStreamAttributeConst (QXmlStreamAttribute ptr') = QXmlStreamAttributeConst $ (HoppyF.castPtr :: HoppyF.Ptr QXmlStreamAttribute -> HoppyF.Ptr QXmlStreamAttributeConst) ptr'
  toQXmlStreamAttributeConst (QXmlStreamAttributeGc fptr' ptr') = QXmlStreamAttributeConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QXmlStreamAttribute -> HoppyF.Ptr QXmlStreamAttributeConst) ptr'

instance QXmlStreamAttributePtr QXmlStreamAttribute where
  toQXmlStreamAttribute = HoppyP.id

new :: (HoppyP.IO QXmlStreamAttribute)
new =
  HoppyP.fmap QXmlStreamAttribute
  (new')

newWithQualifiedNameAndValue :: (M142.QStringValue arg'1, M142.QStringValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QXmlStreamAttribute)
newWithQualifiedNameAndValue arg'1 arg'2 =
  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  HoppyP.fmap QXmlStreamAttribute
  (newWithQualifiedNameAndValue' arg'1' arg'2')

newWithNamespaceUriAndNameAndValue :: (M142.QStringValue arg'1, M142.QStringValue arg'2, M142.QStringValue arg'3) => (arg'1) -> (arg'2) -> (arg'3) -> (HoppyP.IO QXmlStreamAttribute)
newWithNamespaceUriAndNameAndValue 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' ->
  HoppyP.fmap QXmlStreamAttribute
  (newWithNamespaceUriAndNameAndValue' arg'1' arg'2' arg'3')

newCopy :: (QXmlStreamAttributeValue arg'1) => (arg'1) -> (HoppyP.IO QXmlStreamAttribute)
newCopy arg'1 =
  withQXmlStreamAttributePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  HoppyP.fmap QXmlStreamAttribute
  (newCopy' arg'1')

class QXmlStreamAttributeSuper a where
  downToQXmlStreamAttribute :: a -> QXmlStreamAttribute


class QXmlStreamAttributeSuperConst a where
  downToQXmlStreamAttributeConst :: a -> QXmlStreamAttributeConst


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

instance QXmlStreamAttributeValue a => HoppyFHR.Assignable QXmlStreamAttribute a where
  assign x' y' = aSSIGN x' y' >> HoppyP.return ()

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

instance HoppyFHR.Decodable QXmlStreamAttribute (QXmlStreamAttribute) where
  decode = HoppyFHR.decode . toQXmlStreamAttributeConst

instance HoppyFHR.Decodable QXmlStreamAttributeConst (QXmlStreamAttribute) where
  decode =
    HoppyFHR.copy >=> HoppyFHR.toGc