packages feed

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

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

module Graphics.UI.Qtah.Generated.Core.QXmlStreamAttributes (
  castQXmlStreamAttributesToQVectorQXmlStreamAttribute,
  QXmlStreamAttributesValue (..),
  QXmlStreamAttributesConstPtr (..),
  hasAttribute,
  hasAttributeWithLatin1String,
  hasAttributeWithNamespaceUriAndName,
  QXmlStreamAttributesPtr (..),
  appendWithNamespaceUriAndNameAndValue,
  appendWithQualifiedNameAndValue,
  QXmlStreamAttributesConst (..),
  castQXmlStreamAttributesToConst,
  QXmlStreamAttributes (..),
  castQXmlStreamAttributesToNonconst,
  new,
  QXmlStreamAttributesSuper (..),
  QXmlStreamAttributesSuperConst (..),
  ) 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.QLatin1String as M58
import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
import qualified Graphics.UI.Qtah.Generated.Core.QVector.QXmlStreamAttribute as M228
import Prelude (($), (.), (/=), (=<<), (==))
import qualified Prelude as HoppyP

foreign import ccall "genpop__QXmlStreamAttributes_new" new' ::  HoppyP.IO (HoppyF.Ptr QXmlStreamAttributes)
foreign import ccall "genpop__QXmlStreamAttributes_appendWithNamespaceUriAndNameAndValue" appendWithNamespaceUriAndNameAndValue' ::  HoppyF.Ptr QXmlStreamAttributes -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
foreign import ccall "genpop__QXmlStreamAttributes_appendWithQualifiedNameAndValue" appendWithQualifiedNameAndValue' ::  HoppyF.Ptr QXmlStreamAttributes -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
foreign import ccall "genpop__QXmlStreamAttributes_hasAttribute" hasAttribute' ::  HoppyF.Ptr QXmlStreamAttributesConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
foreign import ccall "genpop__QXmlStreamAttributes_hasAttributeWithLatin1String" hasAttributeWithLatin1String' ::  HoppyF.Ptr QXmlStreamAttributesConst -> HoppyF.Ptr M58.QLatin1StringConst -> HoppyP.IO HoppyFC.CBool
foreign import ccall "genpop__QXmlStreamAttributes_hasAttributeWithNamespaceUriAndName" hasAttributeWithNamespaceUriAndName' ::  HoppyF.Ptr QXmlStreamAttributesConst -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CBool
foreign import ccall "gencast__QXmlStreamAttributes__QVectorQXmlStreamAttribute" castQXmlStreamAttributesToQVectorQXmlStreamAttribute :: HoppyF.Ptr QXmlStreamAttributesConst -> HoppyF.Ptr M228.QVectorQXmlStreamAttributeConst
foreign import ccall "gendel__QXmlStreamAttributes" delete'QXmlStreamAttributes :: HoppyF.Ptr QXmlStreamAttributesConst -> HoppyP.IO ()
foreign import ccall "&gendel__QXmlStreamAttributes" deletePtr'QXmlStreamAttributes :: HoppyF.FunPtr (HoppyF.Ptr QXmlStreamAttributesConst -> HoppyP.IO ())

class QXmlStreamAttributesValue a where
  withQXmlStreamAttributesPtr :: a -> (QXmlStreamAttributesConst -> HoppyP.IO b) -> HoppyP.IO b

instance {-# OVERLAPPABLE #-} QXmlStreamAttributesConstPtr a => QXmlStreamAttributesValue a where
  withQXmlStreamAttributesPtr = HoppyP.flip ($) . toQXmlStreamAttributesConst

class (M228.QVectorQXmlStreamAttributeConstPtr this) => QXmlStreamAttributesConstPtr this where
  toQXmlStreamAttributesConst :: this -> QXmlStreamAttributesConst

hasAttribute :: (QXmlStreamAttributesValue this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
hasAttribute arg'1 arg'2 =
  withQXmlStreamAttributesPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  (
    (HoppyP.return . (/= 0))
  ) =<<
  (hasAttribute' arg'1' arg'2')

hasAttributeWithLatin1String :: (QXmlStreamAttributesValue this, M58.QLatin1StringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
hasAttributeWithLatin1String arg'1 arg'2 =
  withQXmlStreamAttributesPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  M58.withQLatin1StringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  (
    (HoppyP.return . (/= 0))
  ) =<<
  (hasAttributeWithLatin1String' arg'1' arg'2')

hasAttributeWithNamespaceUriAndName :: (QXmlStreamAttributesValue this, M142.QStringValue arg'2, M142.QStringValue arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO HoppyP.Bool)
hasAttributeWithNamespaceUriAndName arg'1 arg'2 arg'3 =
  withQXmlStreamAttributesPtr 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 . (/= 0))
  ) =<<
  (hasAttributeWithNamespaceUriAndName' arg'1' arg'2' arg'3')

class (QXmlStreamAttributesConstPtr this, M228.QVectorQXmlStreamAttributePtr this) => QXmlStreamAttributesPtr this where
  toQXmlStreamAttributes :: this -> QXmlStreamAttributes

appendWithNamespaceUriAndNameAndValue :: (QXmlStreamAttributesPtr this, M142.QStringValue arg'2, M142.QStringValue arg'3, M142.QStringValue arg'4) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (arg'4) -> (HoppyP.IO ())
appendWithNamespaceUriAndNameAndValue arg'1 arg'2 arg'3 arg'4 =
  HoppyFHR.withCppPtr (toQXmlStreamAttributes arg'1) $ \arg'1' ->
  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
  M142.withQStringPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
  (appendWithNamespaceUriAndNameAndValue' arg'1' arg'2' arg'3' arg'4')

appendWithQualifiedNameAndValue :: (QXmlStreamAttributesPtr this, M142.QStringValue arg'2, M142.QStringValue arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO ())
appendWithQualifiedNameAndValue arg'1 arg'2 arg'3 =
  HoppyFHR.withCppPtr (toQXmlStreamAttributes arg'1) $ \arg'1' ->
  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
  (appendWithQualifiedNameAndValue' arg'1' arg'2' arg'3')

data QXmlStreamAttributesConst =
    QXmlStreamAttributesConst (HoppyF.Ptr QXmlStreamAttributesConst)
  | QXmlStreamAttributesConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QXmlStreamAttributesConst)
  deriving (HoppyP.Show)

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

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

castQXmlStreamAttributesToConst :: QXmlStreamAttributes -> QXmlStreamAttributesConst
castQXmlStreamAttributesToConst (QXmlStreamAttributes ptr') = QXmlStreamAttributesConst $ HoppyF.castPtr ptr'
castQXmlStreamAttributesToConst (QXmlStreamAttributesGc fptr' ptr') = QXmlStreamAttributesConstGc fptr' $ HoppyF.castPtr ptr'

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

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

instance QXmlStreamAttributesConstPtr QXmlStreamAttributesConst where
  toQXmlStreamAttributesConst = HoppyP.id

instance M228.QVectorQXmlStreamAttributeConstPtr QXmlStreamAttributesConst where
  toQVectorQXmlStreamAttributeConst (QXmlStreamAttributesConst ptr') = M228.QVectorQXmlStreamAttributeConst $ castQXmlStreamAttributesToQVectorQXmlStreamAttribute ptr'
  toQVectorQXmlStreamAttributeConst (QXmlStreamAttributesConstGc fptr' ptr') = M228.QVectorQXmlStreamAttributeConstGc fptr' $ castQXmlStreamAttributesToQVectorQXmlStreamAttribute ptr'

data QXmlStreamAttributes =
    QXmlStreamAttributes (HoppyF.Ptr QXmlStreamAttributes)
  | QXmlStreamAttributesGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QXmlStreamAttributes)
  deriving (HoppyP.Show)

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

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

castQXmlStreamAttributesToNonconst :: QXmlStreamAttributesConst -> QXmlStreamAttributes
castQXmlStreamAttributesToNonconst (QXmlStreamAttributesConst ptr') = QXmlStreamAttributes $ HoppyF.castPtr ptr'
castQXmlStreamAttributesToNonconst (QXmlStreamAttributesConstGc fptr' ptr') = QXmlStreamAttributesGc fptr' $ HoppyF.castPtr ptr'

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

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

instance QXmlStreamAttributesConstPtr QXmlStreamAttributes where
  toQXmlStreamAttributesConst (QXmlStreamAttributes ptr') = QXmlStreamAttributesConst $ (HoppyF.castPtr :: HoppyF.Ptr QXmlStreamAttributes -> HoppyF.Ptr QXmlStreamAttributesConst) ptr'
  toQXmlStreamAttributesConst (QXmlStreamAttributesGc fptr' ptr') = QXmlStreamAttributesConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QXmlStreamAttributes -> HoppyF.Ptr QXmlStreamAttributesConst) ptr'

instance QXmlStreamAttributesPtr QXmlStreamAttributes where
  toQXmlStreamAttributes = HoppyP.id

instance M228.QVectorQXmlStreamAttributeConstPtr QXmlStreamAttributes where
  toQVectorQXmlStreamAttributeConst (QXmlStreamAttributes ptr') = M228.QVectorQXmlStreamAttributeConst $ castQXmlStreamAttributesToQVectorQXmlStreamAttribute $ (HoppyF.castPtr :: HoppyF.Ptr QXmlStreamAttributes -> HoppyF.Ptr QXmlStreamAttributesConst) ptr'
  toQVectorQXmlStreamAttributeConst (QXmlStreamAttributesGc fptr' ptr') = M228.QVectorQXmlStreamAttributeConstGc fptr' $ castQXmlStreamAttributesToQVectorQXmlStreamAttribute $ (HoppyF.castPtr :: HoppyF.Ptr QXmlStreamAttributes -> HoppyF.Ptr QXmlStreamAttributesConst) ptr'

instance M228.QVectorQXmlStreamAttributePtr QXmlStreamAttributes where
  toQVectorQXmlStreamAttribute (QXmlStreamAttributes ptr') = M228.QVectorQXmlStreamAttribute $ (HoppyF.castPtr :: HoppyF.Ptr M228.QVectorQXmlStreamAttributeConst -> HoppyF.Ptr M228.QVectorQXmlStreamAttribute) $ castQXmlStreamAttributesToQVectorQXmlStreamAttribute $ (HoppyF.castPtr :: HoppyF.Ptr QXmlStreamAttributes -> HoppyF.Ptr QXmlStreamAttributesConst) ptr'
  toQVectorQXmlStreamAttribute (QXmlStreamAttributesGc fptr' ptr') = M228.QVectorQXmlStreamAttributeGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M228.QVectorQXmlStreamAttributeConst -> HoppyF.Ptr M228.QVectorQXmlStreamAttribute) $ castQXmlStreamAttributesToQVectorQXmlStreamAttribute $ (HoppyF.castPtr :: HoppyF.Ptr QXmlStreamAttributes -> HoppyF.Ptr QXmlStreamAttributesConst) ptr'

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

class QXmlStreamAttributesSuper a where
  downToQXmlStreamAttributes :: a -> QXmlStreamAttributes


class QXmlStreamAttributesSuperConst a where
  downToQXmlStreamAttributesConst :: a -> QXmlStreamAttributesConst


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

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