packages feed

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

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

module Graphics.UI.Qtah.Generated.Core.QLatin1Char (
  QLatin1CharValue (..),
  QLatin1CharConstPtr (..),
  toLatin1,
  unicode,
  QLatin1CharPtr (..),
  QLatin1CharConst (..),
  castQLatin1CharToConst,
  QLatin1Char (..),
  castQLatin1CharToNonconst,
  new,
  QLatin1CharSuper (..),
  QLatin1CharSuperConst (..),
  ) where

import qualified Foreign as HoppyF
import qualified Foreign.C as HoppyFC
import qualified Foreign.Hoppy.Runtime as HoppyFHR
import Prelude (($), (.), (==))
import qualified Prelude as HoppyP

foreign import ccall "genpop__QLatin1Char_new" new' ::  HoppyFC.CChar -> HoppyP.IO (HoppyF.Ptr QLatin1Char)
foreign import ccall "genpop__QLatin1Char_toLatin1" toLatin1' ::  HoppyF.Ptr QLatin1CharConst -> HoppyP.IO HoppyFC.CChar
foreign import ccall "genpop__QLatin1Char_unicode" unicode' ::  HoppyF.Ptr QLatin1CharConst -> HoppyP.IO HoppyFC.CUShort
foreign import ccall "gendel__QLatin1Char" delete'QLatin1Char :: HoppyF.Ptr QLatin1CharConst -> HoppyP.IO ()
foreign import ccall "&gendel__QLatin1Char" deletePtr'QLatin1Char :: HoppyF.FunPtr (HoppyF.Ptr QLatin1CharConst -> HoppyP.IO ())

class QLatin1CharValue a where
  withQLatin1CharPtr :: a -> (QLatin1CharConst -> HoppyP.IO b) -> HoppyP.IO b

instance {-# OVERLAPPABLE #-} QLatin1CharConstPtr a => QLatin1CharValue a where
  withQLatin1CharPtr = HoppyP.flip ($) . toQLatin1CharConst

class (HoppyFHR.CppPtr this) => QLatin1CharConstPtr this where
  toQLatin1CharConst :: this -> QLatin1CharConst

toLatin1 :: (QLatin1CharValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyFC.CChar)
toLatin1 arg'1 =
  withQLatin1CharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (toLatin1' arg'1')

unicode :: (QLatin1CharValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyFC.CUShort)
unicode arg'1 =
  withQLatin1CharPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (unicode' arg'1')

class (QLatin1CharConstPtr this) => QLatin1CharPtr this where
  toQLatin1Char :: this -> QLatin1Char

data QLatin1CharConst =
    QLatin1CharConst (HoppyF.Ptr QLatin1CharConst)
  | QLatin1CharConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QLatin1CharConst)
  deriving (HoppyP.Show)

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

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

castQLatin1CharToConst :: QLatin1Char -> QLatin1CharConst
castQLatin1CharToConst (QLatin1Char ptr') = QLatin1CharConst $ HoppyF.castPtr ptr'
castQLatin1CharToConst (QLatin1CharGc fptr' ptr') = QLatin1CharConstGc fptr' $ HoppyF.castPtr ptr'

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

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

instance QLatin1CharConstPtr QLatin1CharConst where
  toQLatin1CharConst = HoppyP.id

data QLatin1Char =
    QLatin1Char (HoppyF.Ptr QLatin1Char)
  | QLatin1CharGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QLatin1Char)
  deriving (HoppyP.Show)

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

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

castQLatin1CharToNonconst :: QLatin1CharConst -> QLatin1Char
castQLatin1CharToNonconst (QLatin1CharConst ptr') = QLatin1Char $ HoppyF.castPtr ptr'
castQLatin1CharToNonconst (QLatin1CharConstGc fptr' ptr') = QLatin1CharGc fptr' $ HoppyF.castPtr ptr'

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

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

instance QLatin1CharConstPtr QLatin1Char where
  toQLatin1CharConst (QLatin1Char ptr') = QLatin1CharConst $ (HoppyF.castPtr :: HoppyF.Ptr QLatin1Char -> HoppyF.Ptr QLatin1CharConst) ptr'
  toQLatin1CharConst (QLatin1CharGc fptr' ptr') = QLatin1CharConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QLatin1Char -> HoppyF.Ptr QLatin1CharConst) ptr'

instance QLatin1CharPtr QLatin1Char where
  toQLatin1Char = HoppyP.id

new :: (HoppyFC.CChar) -> (HoppyP.IO QLatin1Char)
new arg'1 =
  let arg'1' = arg'1 in
  HoppyP.fmap QLatin1Char
  (new' arg'1')

class QLatin1CharSuper a where
  downToQLatin1Char :: a -> QLatin1Char


class QLatin1CharSuperConst a where
  downToQLatin1CharConst :: a -> QLatin1CharConst


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

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