qtah-qt5-0.8.0: src/Graphics/UI/Qtah/Generated/Core/QDirIterator.hs
{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
---------- GENERATED FILE, EDITS WILL BE LOST ----------
module Graphics.UI.Qtah.Generated.Core.QDirIterator (
QDirIteratorValue (..),
QDirIteratorConstPtr (..),
fileName,
filePath,
hasNext,
path,
QDirIteratorPtr (..),
next,
QDirIteratorConst (..),
castQDirIteratorToConst,
QDirIterator (..),
castQDirIteratorToNonconst,
new,
newWithDirAndFlags,
newWithString,
newWithStringAndFlags,
newWithStringAndFilters,
newWithStringAndFiltersAndFlags,
newWithStringAndStringList,
newWithStringAndStringListAndFilters,
newWithStringAndStringListAndFiltersAndFlags,
QDirIteratorSuper (..),
QDirIteratorSuperConst (..),
QDirIteratorIteratorFlag (..),
QDirIteratorIteratorFlags,
IsQDirIteratorIteratorFlags (..),
followSymlinks,
noIteratorFlags,
subdirectories,
) where
import Data.Bits ((.&.), (.|.))
import qualified Data.Bits as QtahDB
import qualified Foreign as HoppyF
import qualified Foreign.C as HoppyFC
import qualified Foreign.Hoppy.Runtime as HoppyFHR
import qualified Foreign.Hoppy.Runtime as QtahFHR
import qualified Graphics.UI.Qtah.Flags as QtahFlags
import qualified Graphics.UI.Qtah.Generated.Core.QDir as M30
import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
import qualified Graphics.UI.Qtah.Generated.Core.QStringList as M144
import Prelude (($), (.), (/=), (=<<), (==), (>>=))
import qualified Prelude as HoppyP
import qualified Prelude as QtahP
foreign import ccall "genpop__QDirIterator_new" new' :: HoppyF.Ptr M30.QDirConst -> HoppyP.IO (HoppyF.Ptr QDirIterator)
foreign import ccall "genpop__QDirIterator_newWithDirAndFlags" newWithDirAndFlags' :: HoppyF.Ptr M30.QDirConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QDirIterator)
foreign import ccall "genpop__QDirIterator_newWithString" newWithString' :: HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QDirIterator)
foreign import ccall "genpop__QDirIterator_newWithStringAndFlags" newWithStringAndFlags' :: HoppyF.Ptr M142.QStringConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QDirIterator)
foreign import ccall "genpop__QDirIterator_newWithStringAndFilters" newWithStringAndFilters' :: HoppyF.Ptr M142.QStringConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QDirIterator)
foreign import ccall "genpop__QDirIterator_newWithStringAndFiltersAndFlags" newWithStringAndFiltersAndFlags' :: HoppyF.Ptr M142.QStringConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QDirIterator)
foreign import ccall "genpop__QDirIterator_newWithStringAndStringList" newWithStringAndStringList' :: HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M144.QStringListConst -> HoppyP.IO (HoppyF.Ptr QDirIterator)
foreign import ccall "genpop__QDirIterator_newWithStringAndStringListAndFilters" newWithStringAndStringListAndFilters' :: HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M144.QStringListConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QDirIterator)
foreign import ccall "genpop__QDirIterator_newWithStringAndStringListAndFiltersAndFlags" newWithStringAndStringListAndFiltersAndFlags' :: HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M144.QStringListConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QDirIterator)
foreign import ccall "genpop__QDirIterator_fileName" fileName' :: HoppyF.Ptr QDirIteratorConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
foreign import ccall "genpop__QDirIterator_filePath" filePath' :: HoppyF.Ptr QDirIteratorConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
foreign import ccall "genpop__QDirIterator_hasNext" hasNext' :: HoppyF.Ptr QDirIteratorConst -> HoppyP.IO HoppyFC.CBool
foreign import ccall "genpop__QDirIterator_next" next' :: HoppyF.Ptr QDirIterator -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
foreign import ccall "genpop__QDirIterator_path" path' :: HoppyF.Ptr QDirIteratorConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
foreign import ccall "gendel__QDirIterator" delete'QDirIterator :: HoppyF.Ptr QDirIteratorConst -> HoppyP.IO ()
foreign import ccall "&gendel__QDirIterator" deletePtr'QDirIterator :: HoppyF.FunPtr (HoppyF.Ptr QDirIteratorConst -> HoppyP.IO ())
class QDirIteratorValue a where
withQDirIteratorPtr :: a -> (QDirIteratorConst -> HoppyP.IO b) -> HoppyP.IO b
instance {-# OVERLAPPABLE #-} QDirIteratorConstPtr a => QDirIteratorValue a where
withQDirIteratorPtr = HoppyP.flip ($) . toQDirIteratorConst
class (HoppyFHR.CppPtr this) => QDirIteratorConstPtr this where
toQDirIteratorConst :: this -> QDirIteratorConst
fileName :: (QDirIteratorValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
fileName arg'1 =
withQDirIteratorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
(HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
(fileName' arg'1')
filePath :: (QDirIteratorValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
filePath arg'1 =
withQDirIteratorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
(HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
(filePath' arg'1')
hasNext :: (QDirIteratorValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
hasNext arg'1 =
withQDirIteratorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
(
(HoppyP.return . (/= 0))
) =<<
(hasNext' arg'1')
path :: (QDirIteratorValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
path arg'1 =
withQDirIteratorPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
(HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
(path' arg'1')
class (QDirIteratorConstPtr this) => QDirIteratorPtr this where
toQDirIterator :: this -> QDirIterator
next :: (QDirIteratorPtr this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
next arg'1 =
HoppyFHR.withCppPtr (toQDirIterator arg'1) $ \arg'1' ->
(HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
(next' arg'1')
data QDirIteratorConst =
QDirIteratorConst (HoppyF.Ptr QDirIteratorConst)
| QDirIteratorConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QDirIteratorConst)
deriving (HoppyP.Show)
instance HoppyP.Eq QDirIteratorConst where
x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
instance HoppyP.Ord QDirIteratorConst where
compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
castQDirIteratorToConst :: QDirIterator -> QDirIteratorConst
castQDirIteratorToConst (QDirIterator ptr') = QDirIteratorConst $ HoppyF.castPtr ptr'
castQDirIteratorToConst (QDirIteratorGc fptr' ptr') = QDirIteratorConstGc fptr' $ HoppyF.castPtr ptr'
instance HoppyFHR.CppPtr QDirIteratorConst where
nullptr = QDirIteratorConst HoppyF.nullPtr
withCppPtr (QDirIteratorConst ptr') f' = f' ptr'
withCppPtr (QDirIteratorConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
toPtr (QDirIteratorConst ptr') = ptr'
toPtr (QDirIteratorConstGc _ ptr') = ptr'
touchCppPtr (QDirIteratorConst _) = HoppyP.return ()
touchCppPtr (QDirIteratorConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
instance HoppyFHR.Deletable QDirIteratorConst where
delete (QDirIteratorConst ptr') = delete'QDirIterator ptr'
delete (QDirIteratorConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QDirIteratorConst", " object."]
toGc this'@(QDirIteratorConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QDirIteratorConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QDirIterator :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
toGc this'@(QDirIteratorConstGc {}) = HoppyP.return this'
instance QDirIteratorConstPtr QDirIteratorConst where
toQDirIteratorConst = HoppyP.id
data QDirIterator =
QDirIterator (HoppyF.Ptr QDirIterator)
| QDirIteratorGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QDirIterator)
deriving (HoppyP.Show)
instance HoppyP.Eq QDirIterator where
x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
instance HoppyP.Ord QDirIterator where
compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
castQDirIteratorToNonconst :: QDirIteratorConst -> QDirIterator
castQDirIteratorToNonconst (QDirIteratorConst ptr') = QDirIterator $ HoppyF.castPtr ptr'
castQDirIteratorToNonconst (QDirIteratorConstGc fptr' ptr') = QDirIteratorGc fptr' $ HoppyF.castPtr ptr'
instance HoppyFHR.CppPtr QDirIterator where
nullptr = QDirIterator HoppyF.nullPtr
withCppPtr (QDirIterator ptr') f' = f' ptr'
withCppPtr (QDirIteratorGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
toPtr (QDirIterator ptr') = ptr'
toPtr (QDirIteratorGc _ ptr') = ptr'
touchCppPtr (QDirIterator _) = HoppyP.return ()
touchCppPtr (QDirIteratorGc fptr' _) = HoppyF.touchForeignPtr fptr'
instance HoppyFHR.Deletable QDirIterator where
delete (QDirIterator ptr') = delete'QDirIterator $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QDirIteratorConst)
delete (QDirIteratorGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QDirIterator", " object."]
toGc this'@(QDirIterator ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QDirIteratorGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QDirIterator :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
toGc this'@(QDirIteratorGc {}) = HoppyP.return this'
instance QDirIteratorConstPtr QDirIterator where
toQDirIteratorConst (QDirIterator ptr') = QDirIteratorConst $ (HoppyF.castPtr :: HoppyF.Ptr QDirIterator -> HoppyF.Ptr QDirIteratorConst) ptr'
toQDirIteratorConst (QDirIteratorGc fptr' ptr') = QDirIteratorConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QDirIterator -> HoppyF.Ptr QDirIteratorConst) ptr'
instance QDirIteratorPtr QDirIterator where
toQDirIterator = HoppyP.id
new :: (M30.QDirValue arg'1) => (arg'1) -> (HoppyP.IO QDirIterator)
new arg'1 =
M30.withQDirPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
HoppyP.fmap QDirIterator
(new' arg'1')
newWithDirAndFlags :: (M30.QDirValue arg'1, IsQDirIteratorIteratorFlags arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QDirIterator)
newWithDirAndFlags arg'1 arg'2 =
M30.withQDirPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
(
QtahP.return . QtahFlags.flagsToNum . toQDirIteratorIteratorFlags
) arg'2 >>= \arg'2' ->
HoppyP.fmap QDirIterator
(newWithDirAndFlags' arg'1' arg'2')
newWithString :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO QDirIterator)
newWithString arg'1 =
M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
HoppyP.fmap QDirIterator
(newWithString' arg'1')
newWithStringAndFlags :: (M142.QStringValue arg'1, IsQDirIteratorIteratorFlags arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QDirIterator)
newWithStringAndFlags arg'1 arg'2 =
M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
(
QtahP.return . QtahFlags.flagsToNum . toQDirIteratorIteratorFlags
) arg'2 >>= \arg'2' ->
HoppyP.fmap QDirIterator
(newWithStringAndFlags' arg'1' arg'2')
newWithStringAndFilters :: (M142.QStringValue arg'1, M30.IsQDirFilters arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QDirIterator)
newWithStringAndFilters arg'1 arg'2 =
M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
(
QtahP.return . QtahFlags.flagsToNum . M30.toQDirFilters
) arg'2 >>= \arg'2' ->
HoppyP.fmap QDirIterator
(newWithStringAndFilters' arg'1' arg'2')
newWithStringAndFiltersAndFlags :: (M142.QStringValue arg'1, M30.IsQDirFilters arg'2, IsQDirIteratorIteratorFlags arg'3) => (arg'1) -> (arg'2) -> (arg'3) -> (HoppyP.IO QDirIterator)
newWithStringAndFiltersAndFlags arg'1 arg'2 arg'3 =
M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
(
QtahP.return . QtahFlags.flagsToNum . M30.toQDirFilters
) arg'2 >>= \arg'2' ->
(
QtahP.return . QtahFlags.flagsToNum . toQDirIteratorIteratorFlags
) arg'3 >>= \arg'3' ->
HoppyP.fmap QDirIterator
(newWithStringAndFiltersAndFlags' arg'1' arg'2' arg'3')
newWithStringAndStringList :: (M142.QStringValue arg'1, M144.QStringListValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QDirIterator)
newWithStringAndStringList arg'1 arg'2 =
M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
M144.withQStringListPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
HoppyP.fmap QDirIterator
(newWithStringAndStringList' arg'1' arg'2')
newWithStringAndStringListAndFilters :: (M142.QStringValue arg'1, M144.QStringListValue arg'2, M30.IsQDirFilters arg'3) => (arg'1) -> (arg'2) -> (arg'3) -> (HoppyP.IO QDirIterator)
newWithStringAndStringListAndFilters arg'1 arg'2 arg'3 =
M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
M144.withQStringListPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
(
QtahP.return . QtahFlags.flagsToNum . M30.toQDirFilters
) arg'3 >>= \arg'3' ->
HoppyP.fmap QDirIterator
(newWithStringAndStringListAndFilters' arg'1' arg'2' arg'3')
newWithStringAndStringListAndFiltersAndFlags :: (M142.QStringValue arg'1, M144.QStringListValue arg'2, M30.IsQDirFilters arg'3, IsQDirIteratorIteratorFlags arg'4) => (arg'1) -> (arg'2) -> (arg'3) -> (arg'4) -> (HoppyP.IO QDirIterator)
newWithStringAndStringListAndFiltersAndFlags arg'1 arg'2 arg'3 arg'4 =
M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
M144.withQStringListPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
(
QtahP.return . QtahFlags.flagsToNum . M30.toQDirFilters
) arg'3 >>= \arg'3' ->
(
QtahP.return . QtahFlags.flagsToNum . toQDirIteratorIteratorFlags
) arg'4 >>= \arg'4' ->
HoppyP.fmap QDirIterator
(newWithStringAndStringListAndFiltersAndFlags' arg'1' arg'2' arg'3' arg'4')
class QDirIteratorSuper a where
downToQDirIterator :: a -> QDirIterator
class QDirIteratorSuperConst a where
downToQDirIteratorConst :: a -> QDirIteratorConst
instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QDirIterator)) QDirIterator where
assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QDirIterator)) QDirIterator where
decode = HoppyP.fmap QDirIterator . HoppyF.peek
data QDirIteratorIteratorFlag =
NoIteratorFlags
| Subdirectories
| FollowSymlinks
| UnknownQDirIteratorIteratorFlag (HoppyFC.CInt)
deriving (HoppyP.Show)
instance HoppyFHR.CppEnum (HoppyFC.CInt) QDirIteratorIteratorFlag where
fromCppEnum NoIteratorFlags = 0
fromCppEnum Subdirectories = 2
fromCppEnum FollowSymlinks = 1
fromCppEnum (UnknownQDirIteratorIteratorFlag n) = n
toCppEnum (0) = NoIteratorFlags
toCppEnum (1) = FollowSymlinks
toCppEnum (2) = Subdirectories
toCppEnum n = UnknownQDirIteratorIteratorFlag n
instance HoppyP.Eq QDirIteratorIteratorFlag where
x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y
instance HoppyP.Ord QDirIteratorIteratorFlag where
compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
newtype QDirIteratorIteratorFlags = QDirIteratorIteratorFlags (HoppyFC.CInt) deriving (QtahP.Eq, QtahP.Ord, QtahP.Show)
instance QtahFlags.Flags (HoppyFC.CInt) QDirIteratorIteratorFlag QDirIteratorIteratorFlags where
enumToFlags = QDirIteratorIteratorFlags . QtahFHR.fromCppEnum
flagsToEnum (QDirIteratorIteratorFlags x') = QtahFHR.toCppEnum x'
class IsQDirIteratorIteratorFlags a where
toQDirIteratorIteratorFlags :: a -> QDirIteratorIteratorFlags
instance IsQDirIteratorIteratorFlags QDirIteratorIteratorFlags where toQDirIteratorIteratorFlags = QtahP.id
instance IsQDirIteratorIteratorFlags QDirIteratorIteratorFlag where toQDirIteratorIteratorFlags = QtahFlags.enumToFlags
instance IsQDirIteratorIteratorFlags (HoppyFC.CInt) where toQDirIteratorIteratorFlags = QtahFlags.numToFlags
followSymlinks :: QDirIteratorIteratorFlags
followSymlinks = QDirIteratorIteratorFlags (1)
noIteratorFlags :: QDirIteratorIteratorFlags
noIteratorFlags = QDirIteratorIteratorFlags (0)
subdirectories :: QDirIteratorIteratorFlags
subdirectories = QDirIteratorIteratorFlags (2)
instance QtahDB.Bits QDirIteratorIteratorFlags where
x .&. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .&. QtahFlags.flagsToNum y)
x .|. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .|. QtahFlags.flagsToNum y)
xor x y = QtahFlags.numToFlags $ QtahDB.xor (QtahFlags.flagsToNum x) (QtahFlags.flagsToNum y)
complement x = QtahFlags.numToFlags $ QtahDB.complement $ QtahFlags.flagsToNum x
shift x i = QtahFlags.numToFlags $ QtahDB.shift (QtahFlags.flagsToNum x) i
rotate x i = QtahFlags.numToFlags $ QtahDB.rotate (QtahFlags.flagsToNum x) i
bitSize x = case QtahDB.bitSizeMaybe x of
QtahP.Just n -> n
QtahP.Nothing -> QtahP.error "bitSize is undefined"
bitSizeMaybe = QtahDB.bitSizeMaybe . QtahFlags.flagsToNum
isSigned = QtahDB.isSigned . QtahFlags.flagsToNum
testBit x i = QtahDB.testBit (QtahFlags.flagsToNum x) i
bit = QtahFlags.numToFlags . QtahDB.bit
popCount = QtahDB.popCount . QtahFlags.flagsToNum