{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-} #if !MIN_VERSION_base(4,8,0) {-# LANGUAGE OverlappingInstances #-} #endif ---------- GENERATED FILE, EDITS WILL BE LOST ---------- module Graphics.UI.Qtah.Generated.Core.QString ( QStringValue (..), QStringConstPtr (..), at, toHtmlEscaped, toStdString, eQ, nE, lT, lE, gT, gE, QStringPtr (..), set, aSSIGN, QStringConst (..), castQStringToConst, QString (..), castQStringToNonconst, newFromCString, newCopy, QStringSuper (..), QStringSuperConst (..), ) where import qualified Foreign as HoppyF import qualified Foreign.C as HoppyFC import qualified Foreign.C as QtahFC import qualified Foreign.Hoppy.Runtime as HoppyFHR import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Core.QChar as M8 import qualified Graphics.UI.Qtah.Std as M1 import Prelude (($), (.), (/=), (=<<), (==), (>>)) import qualified Prelude as HoppyP import qualified Prelude as QtahP foreign import ccall "genpop__QString_newFromCString" newFromCString' :: HoppyF.Ptr HoppyFC.CChar -> HoppyP.IO (HoppyF.Ptr QString) foreign import ccall "genpop__QString_newCopy" newCopy' :: HoppyF.Ptr QStringConst -> HoppyP.IO (HoppyF.Ptr QString) foreign import ccall "genpop__QString_at" at' :: HoppyF.Ptr QStringConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M8.QCharConst) foreign import ccall "genpop__QString_set" set' :: HoppyF.Ptr QString -> HoppyFC.CInt -> HoppyF.Ptr M8.QCharConst -> HoppyP.IO () foreign import ccall "genpop__QString_toHtmlEscaped" toHtmlEscaped' :: HoppyF.Ptr QStringConst -> HoppyP.IO (HoppyF.Ptr QStringConst) foreign import ccall "genpop__QString_toStdString" toStdString' :: HoppyF.Ptr QStringConst -> HoppyP.IO (HoppyF.Ptr M1.StdStringConst) foreign import ccall "genpop__QString_EQ" eQ' :: HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyP.IO HoppyFHR.CBool foreign import ccall "genpop__QString_NE" nE' :: HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyP.IO HoppyFHR.CBool foreign import ccall "genpop__QString_LT" lT' :: HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyP.IO HoppyFHR.CBool foreign import ccall "genpop__QString_LE" lE' :: HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyP.IO HoppyFHR.CBool foreign import ccall "genpop__QString_GT" gT' :: HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyP.IO HoppyFHR.CBool foreign import ccall "genpop__QString_GE" gE' :: HoppyF.Ptr QStringConst -> HoppyF.Ptr QStringConst -> HoppyP.IO HoppyFHR.CBool foreign import ccall "genpop__QString_ASSIGN" aSSIGN' :: HoppyF.Ptr QString -> HoppyF.Ptr QStringConst -> HoppyP.IO (HoppyF.Ptr QString) foreign import ccall "gendel__QString" delete'QString :: HoppyF.Ptr QStringConst -> HoppyP.IO () foreign import ccall "&gendel__QString" deletePtr'QString :: HoppyF.FunPtr (HoppyF.Ptr QStringConst -> HoppyP.IO ()) class QStringValue a where withQStringPtr :: a -> (QStringConst -> HoppyP.IO b) -> HoppyP.IO b #if MIN_VERSION_base(4,8,0) instance {-# OVERLAPPABLE #-} QStringConstPtr a => QStringValue a where #else instance QStringConstPtr a => QStringValue a where #endif withQStringPtr = HoppyP.flip ($) . toQStringConst #if MIN_VERSION_base(4,8,0) instance {-# OVERLAPPING #-} QStringValue (QtahP.String) where #else instance QStringValue (QtahP.String) where #endif withQStringPtr = HoppyFHR.withCppObj class (HoppyFHR.CppPtr this) => QStringConstPtr this where toQStringConst :: this -> QStringConst at :: (QStringValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO QtahP.Char at arg'1 arg'2 = withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' -> let arg'2' = HoppyFHR.coerceIntegral arg'2 in (HoppyFHR.decodeAndDelete . M8.QCharConst) =<< (at' arg'1' arg'2') toHtmlEscaped :: (QStringValue arg'1) => arg'1 -> HoppyP.IO QtahP.String toHtmlEscaped arg'1 = withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' -> (HoppyFHR.decodeAndDelete . QStringConst) =<< (toHtmlEscaped' arg'1') toStdString :: (QStringValue arg'1) => arg'1 -> HoppyP.IO HoppyP.String toStdString arg'1 = withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' -> (HoppyFHR.decodeAndDelete . M1.StdStringConst) =<< (toStdString' arg'1') eQ :: (QStringValue arg'1, QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool eQ arg'1 arg'2 = withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' -> withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' -> HoppyP.fmap (/= 0) (eQ' arg'1' arg'2') nE :: (QStringValue arg'1, QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool nE arg'1 arg'2 = withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' -> withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' -> HoppyP.fmap (/= 0) (nE' arg'1' arg'2') lT :: (QStringValue arg'1, QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool lT arg'1 arg'2 = withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' -> withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' -> HoppyP.fmap (/= 0) (lT' arg'1' arg'2') lE :: (QStringValue arg'1, QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool lE arg'1 arg'2 = withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' -> withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' -> HoppyP.fmap (/= 0) (lE' arg'1' arg'2') gT :: (QStringValue arg'1, QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool gT arg'1 arg'2 = withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' -> withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' -> HoppyP.fmap (/= 0) (gT' arg'1' arg'2') gE :: (QStringValue arg'1, QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool gE arg'1 arg'2 = withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' -> withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' -> HoppyP.fmap (/= 0) (gE' arg'1' arg'2') class (QStringConstPtr this) => QStringPtr this where toQString :: this -> QString set :: (QStringPtr arg'1, M8.QCharValue arg'3) => arg'1 -> HoppyP.Int -> arg'3 -> HoppyP.IO () set arg'1 arg'2 arg'3 = HoppyFHR.withCppPtr (toQString arg'1) $ \arg'1' -> let arg'2' = HoppyFHR.coerceIntegral arg'2 in M8.withQCharPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' -> (set' arg'1' arg'2' arg'3') aSSIGN :: (QStringPtr arg'1, QStringValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO QString aSSIGN arg'1 arg'2 = HoppyFHR.withCppPtr (toQString arg'1) $ \arg'1' -> withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' -> HoppyP.fmap QString (aSSIGN' arg'1' arg'2') data QStringConst = QStringConst (HoppyF.Ptr QStringConst) | QStringConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QStringConst) deriving (HoppyP.Show) instance HoppyP.Eq QStringConst where x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y instance HoppyP.Ord QStringConst where compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y) castQStringToConst :: QString -> QStringConst castQStringToConst (QString ptr') = QStringConst $ HoppyF.castPtr ptr' castQStringToConst (QStringGc fptr' ptr') = QStringConstGc fptr' $ HoppyF.castPtr ptr' instance HoppyFHR.CppPtr QStringConst where nullptr = QStringConst HoppyF.nullPtr withCppPtr (QStringConst ptr') f' = f' ptr' withCppPtr (QStringConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr' toPtr (QStringConst ptr') = ptr' toPtr (QStringConstGc _ ptr') = ptr' touchCppPtr (QStringConst _) = HoppyP.return () touchCppPtr (QStringConstGc fptr' _) = HoppyF.touchForeignPtr fptr' instance HoppyFHR.Deletable QStringConst where delete (QStringConst ptr') = delete'QString ptr' delete (QStringConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QStringConst", " object."] toGc this'@(QStringConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QStringConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QString :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ()) toGc this'@(QStringConstGc {}) = HoppyP.return this' instance HoppyFHR.Copyable QStringConst QString where copy = newCopy instance QStringConstPtr QStringConst where toQStringConst = HoppyP.id data QString = QString (HoppyF.Ptr QString) | QStringGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QString) deriving (HoppyP.Show) instance HoppyP.Eq QString where x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y instance HoppyP.Ord QString where compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y) castQStringToNonconst :: QStringConst -> QString castQStringToNonconst (QStringConst ptr') = QString $ HoppyF.castPtr ptr' castQStringToNonconst (QStringConstGc fptr' ptr') = QStringGc fptr' $ HoppyF.castPtr ptr' instance HoppyFHR.CppPtr QString where nullptr = QString HoppyF.nullPtr withCppPtr (QString ptr') f' = f' ptr' withCppPtr (QStringGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr' toPtr (QString ptr') = ptr' toPtr (QStringGc _ ptr') = ptr' touchCppPtr (QString _) = HoppyP.return () touchCppPtr (QStringGc fptr' _) = HoppyF.touchForeignPtr fptr' instance HoppyFHR.Deletable QString where delete (QString ptr') = delete'QString $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QStringConst) delete (QStringGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QString", " object."] toGc this'@(QString ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QStringGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QString :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ()) toGc this'@(QStringGc {}) = HoppyP.return this' instance HoppyFHR.Copyable QString QString where copy = newCopy instance QStringConstPtr QString where toQStringConst (QString ptr') = QStringConst $ (HoppyF.castPtr :: HoppyF.Ptr QString -> HoppyF.Ptr QStringConst) ptr' toQStringConst (QStringGc fptr' ptr') = QStringConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QString -> HoppyF.Ptr QStringConst) ptr' instance QStringPtr QString where toQString = HoppyP.id newFromCString :: HoppyF.Ptr HoppyFC.CChar -> HoppyP.IO QString newFromCString arg'1 = let arg'1' = arg'1 in HoppyP.fmap QString (newFromCString' arg'1') newCopy :: (QStringValue arg'1) => arg'1 -> HoppyP.IO QString newCopy arg'1 = withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' -> HoppyP.fmap QString (newCopy' arg'1') class QStringSuper a where downToQString :: a -> QString class QStringSuperConst a where downToQStringConst :: a -> QStringConst instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QString)) QString where assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value' instance QStringValue a => HoppyFHR.Assignable QString a where assign x' y' = aSSIGN x' y' >> HoppyP.return () instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QString)) QString where decode = HoppyP.fmap QString . HoppyF.peek instance HoppyFHR.Encodable QString (QtahP.String) where encode = QtahP.flip QtahFC.withCString newFromCString instance HoppyFHR.Encodable QStringConst (QtahP.String) where encode = HoppyP.fmap (toQStringConst) . HoppyFHR.encodeAs (HoppyP.undefined :: QString) instance HoppyFHR.Decodable QString (QtahP.String) where decode = HoppyFHR.decode . toQStringConst instance HoppyFHR.Decodable QStringConst (QtahP.String) where decode = toStdString