packages feed

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

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

module Graphics.UI.Qtah.Generated.Core.QTextDecoder (
  QTextDecoderValue (..),
  QTextDecoderConstPtr (..),
  QTextDecoderPtr (..),
  toUnicodeRaw,
  toUnicodeByteArray,
  toUnicodeString,
  QTextDecoderConst (..),
  castQTextDecoderToConst,
  QTextDecoder (..),
  castQTextDecoderToNonconst,
  new,
  QTextDecoderSuper (..),
  QTextDecoderSuperConst (..),
  ) 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.QByteArray as M12
import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
import qualified Graphics.UI.Qtah.Generated.Core.QTextCodec as M150
import Prelude (($), (.), (=<<), (==), (>>=))
import qualified Prelude as HoppyP
import qualified Prelude as QtahP

foreign import ccall "genpop__QTextDecoder_new" new' ::  HoppyF.Ptr M150.QTextCodecConst -> HoppyP.IO (HoppyF.Ptr QTextDecoder)
foreign import ccall "genpop__QTextDecoder_toUnicodeRaw" toUnicodeRaw' ::  HoppyF.Ptr QTextDecoder -> HoppyF.Ptr HoppyFC.CChar -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
foreign import ccall "genpop__QTextDecoder_toUnicodeByteArray" toUnicodeByteArray' ::  HoppyF.Ptr QTextDecoder -> HoppyF.Ptr M12.QByteArrayConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
foreign import ccall "genpop__QTextDecoder_toUnicodeString" toUnicodeString' ::  HoppyF.Ptr QTextDecoder -> HoppyF.Ptr M142.QString -> HoppyF.Ptr HoppyFC.CChar -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "gendel__QTextDecoder" delete'QTextDecoder :: HoppyF.Ptr QTextDecoderConst -> HoppyP.IO ()
foreign import ccall "&gendel__QTextDecoder" deletePtr'QTextDecoder :: HoppyF.FunPtr (HoppyF.Ptr QTextDecoderConst -> HoppyP.IO ())

class QTextDecoderValue a where
  withQTextDecoderPtr :: a -> (QTextDecoderConst -> HoppyP.IO b) -> HoppyP.IO b

instance {-# OVERLAPPABLE #-} QTextDecoderConstPtr a => QTextDecoderValue a where
  withQTextDecoderPtr = HoppyP.flip ($) . toQTextDecoderConst

class (HoppyFHR.CppPtr this) => QTextDecoderConstPtr this where
  toQTextDecoderConst :: this -> QTextDecoderConst

class (QTextDecoderConstPtr this) => QTextDecoderPtr this where
  toQTextDecoder :: this -> QTextDecoder

toUnicodeRaw :: (QTextDecoderPtr this) => (this) {- ^ this -} -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.Int) -> (HoppyP.IO QtahP.String)
toUnicodeRaw arg'1 arg'2 arg'3 =
  HoppyFHR.withCppPtr (toQTextDecoder arg'1) $ \arg'1' ->
  let arg'2' = arg'2 in
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'3 >>= \arg'3' ->
  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
  (toUnicodeRaw' arg'1' arg'2' arg'3')

toUnicodeByteArray :: (QTextDecoderPtr this, M12.QByteArrayValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QtahP.String)
toUnicodeByteArray arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQTextDecoder arg'1) $ \arg'1' ->
  M12.withQByteArrayPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
  (toUnicodeByteArray' arg'1' arg'2')

toUnicodeString :: (QTextDecoderPtr this, M142.QStringPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyF.Ptr HoppyFC.CChar) -> (HoppyP.Int) -> (HoppyP.IO ())
toUnicodeString arg'1 arg'2 arg'3 arg'4 =
  HoppyFHR.withCppPtr (toQTextDecoder arg'1) $ \arg'1' ->
  HoppyFHR.withCppPtr (M142.toQString arg'2) $ \arg'2' ->
  let arg'3' = arg'3 in
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'4 >>= \arg'4' ->
  (toUnicodeString' arg'1' arg'2' arg'3' arg'4')

data QTextDecoderConst =
    QTextDecoderConst (HoppyF.Ptr QTextDecoderConst)
  | QTextDecoderConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QTextDecoderConst)
  deriving (HoppyP.Show)

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

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

castQTextDecoderToConst :: QTextDecoder -> QTextDecoderConst
castQTextDecoderToConst (QTextDecoder ptr') = QTextDecoderConst $ HoppyF.castPtr ptr'
castQTextDecoderToConst (QTextDecoderGc fptr' ptr') = QTextDecoderConstGc fptr' $ HoppyF.castPtr ptr'

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

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

instance QTextDecoderConstPtr QTextDecoderConst where
  toQTextDecoderConst = HoppyP.id

data QTextDecoder =
    QTextDecoder (HoppyF.Ptr QTextDecoder)
  | QTextDecoderGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QTextDecoder)
  deriving (HoppyP.Show)

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

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

castQTextDecoderToNonconst :: QTextDecoderConst -> QTextDecoder
castQTextDecoderToNonconst (QTextDecoderConst ptr') = QTextDecoder $ HoppyF.castPtr ptr'
castQTextDecoderToNonconst (QTextDecoderConstGc fptr' ptr') = QTextDecoderGc fptr' $ HoppyF.castPtr ptr'

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

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

instance QTextDecoderConstPtr QTextDecoder where
  toQTextDecoderConst (QTextDecoder ptr') = QTextDecoderConst $ (HoppyF.castPtr :: HoppyF.Ptr QTextDecoder -> HoppyF.Ptr QTextDecoderConst) ptr'
  toQTextDecoderConst (QTextDecoderGc fptr' ptr') = QTextDecoderConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QTextDecoder -> HoppyF.Ptr QTextDecoderConst) ptr'

instance QTextDecoderPtr QTextDecoder where
  toQTextDecoder = HoppyP.id

new :: (M150.QTextCodecValue arg'1) => (arg'1) -> (HoppyP.IO QTextDecoder)
new arg'1 =
  M150.withQTextCodecPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  HoppyP.fmap QTextDecoder
  (new' arg'1')

class QTextDecoderSuper a where
  downToQTextDecoder :: a -> QTextDecoder


class QTextDecoderSuperConst a where
  downToQTextDecoderConst :: a -> QTextDecoderConst


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

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