{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, GeneralizedNewtypeDeriving, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
module Graphics.UI.Qtah.Generated.Core.QModelIndex (
QModelIndexValue (..),
QModelIndexConstPtr (..),
child,
column,
getData,
getDataWithRole,
flags,
isValid,
model,
parent,
row,
sibling,
eQ,
nE,
QModelIndexPtr (..),
aSSIGN,
QModelIndexConst (..),
castQModelIndexToConst,
QModelIndex (..),
castQModelIndexToNonconst,
new,
newCopy,
QModelIndexSuper (..),
QModelIndexSuperConst (..),
) where
import Control.Monad ((>=>))
import qualified Foreign as HoppyF
import qualified Foreign.C as HoppyFC
import qualified Foreign.Hoppy.Runtime as HoppyFHR
import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Core.QAbstractItemModel as M2
import qualified Graphics.UI.Qtah.Generated.Core.QVariant as M66
import qualified Graphics.UI.Qtah.Generated.Core.Types as M68
import Prelude (($), (.), (/=), (=<<), (==), (>>))
import qualified Prelude as HoppyP
foreign import ccall "genpop__QModelIndex_new" new' :: HoppyP.IO (HoppyF.Ptr QModelIndex)
foreign import ccall "genpop__QModelIndex_newCopy" newCopy' :: HoppyF.Ptr QModelIndexConst -> HoppyP.IO (HoppyF.Ptr QModelIndex)
foreign import ccall "genpop__QModelIndex_child" child' :: HoppyF.Ptr QModelIndexConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QModelIndexConst)
foreign import ccall "genpop__QModelIndex_column" column' :: HoppyF.Ptr QModelIndexConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QModelIndex_getData" getData' :: HoppyF.Ptr QModelIndexConst -> HoppyP.IO (HoppyF.Ptr M66.QVariantConst)
foreign import ccall "genpop__QModelIndex_getDataWithRole" getDataWithRole' :: HoppyF.Ptr QModelIndexConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M66.QVariantConst)
foreign import ccall "genpop__QModelIndex_flags" flags' :: HoppyF.Ptr QModelIndexConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QModelIndex_isValid" isValid' :: HoppyF.Ptr QModelIndexConst -> HoppyP.IO HoppyFHR.CBool
foreign import ccall "genpop__QModelIndex_model" model' :: HoppyF.Ptr QModelIndexConst -> HoppyP.IO (HoppyF.Ptr M2.QAbstractItemModelConst)
foreign import ccall "genpop__QModelIndex_parent" parent' :: HoppyF.Ptr QModelIndexConst -> HoppyP.IO (HoppyF.Ptr QModelIndexConst)
foreign import ccall "genpop__QModelIndex_row" row' :: HoppyF.Ptr QModelIndexConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QModelIndex_sibling" sibling' :: HoppyF.Ptr QModelIndexConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QModelIndexConst)
foreign import ccall "genpop__QModelIndex_EQ" eQ' :: HoppyF.Ptr QModelIndexConst -> HoppyF.Ptr QModelIndexConst -> HoppyP.IO HoppyFHR.CBool
foreign import ccall "genpop__QModelIndex_NE" nE' :: HoppyF.Ptr QModelIndexConst -> HoppyF.Ptr QModelIndexConst -> HoppyP.IO HoppyFHR.CBool
foreign import ccall "genpop__QModelIndex_ASSIGN" aSSIGN' :: HoppyF.Ptr QModelIndex -> HoppyF.Ptr QModelIndexConst -> HoppyP.IO (HoppyF.Ptr QModelIndex)
foreign import ccall "gendel__QModelIndex" delete'QModelIndex :: HoppyF.Ptr QModelIndexConst -> HoppyP.IO ()
foreign import ccall "&gendel__QModelIndex" deletePtr'QModelIndex :: HoppyF.FunPtr (HoppyF.Ptr QModelIndexConst -> HoppyP.IO ())
class QModelIndexValue a where
withQModelIndexPtr :: a -> (QModelIndexConst -> HoppyP.IO b) -> HoppyP.IO b
instance {-# OVERLAPPABLE #-} QModelIndexConstPtr a => QModelIndexValue a where
withQModelIndexPtr = HoppyP.flip ($) . toQModelIndexConst
class (HoppyFHR.CppPtr this) => QModelIndexConstPtr this where
toQModelIndexConst :: this -> QModelIndexConst
child :: (QModelIndexValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO QModelIndex
child arg'1 arg'2 arg'3 =
withQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
let arg'2' = HoppyFHR.coerceIntegral arg'2 in
let arg'3' = HoppyFHR.coerceIntegral arg'3 in
(HoppyFHR.decodeAndDelete . QModelIndexConst) =<<
(child' arg'1' arg'2' arg'3')
column :: (QModelIndexValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
column arg'1 =
withQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
HoppyP.fmap HoppyFHR.coerceIntegral
(column' arg'1')
getData :: (QModelIndexValue arg'1) => arg'1 -> HoppyP.IO M66.QVariant
getData arg'1 =
withQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
(HoppyFHR.decodeAndDelete . M66.QVariantConst) =<<
(getData' arg'1')
getDataWithRole :: (QModelIndexValue arg'1) => arg'1 -> M68.QtItemDataRole -> HoppyP.IO M66.QVariant
getDataWithRole arg'1 arg'2 =
withQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
(HoppyFHR.decodeAndDelete . M66.QVariantConst) =<<
(getDataWithRole' arg'1' arg'2')
flags :: (QModelIndexValue arg'1) => arg'1 -> HoppyP.IO M68.QtItemFlags
flags arg'1 =
withQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
HoppyP.fmap M68.QtItemFlags
(flags' arg'1')
isValid :: (QModelIndexValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
isValid arg'1 =
withQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
HoppyP.fmap (/= 0)
(isValid' arg'1')
model :: (QModelIndexValue arg'1) => arg'1 -> HoppyP.IO M2.QAbstractItemModelConst
model arg'1 =
withQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
HoppyP.fmap M2.QAbstractItemModelConst
(model' arg'1')
parent :: (QModelIndexValue arg'1) => arg'1 -> HoppyP.IO QModelIndex
parent arg'1 =
withQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
(HoppyFHR.decodeAndDelete . QModelIndexConst) =<<
(parent' arg'1')
row :: (QModelIndexValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
row arg'1 =
withQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
HoppyP.fmap HoppyFHR.coerceIntegral
(row' arg'1')
sibling :: (QModelIndexValue arg'1) => arg'1 -> HoppyP.Int -> HoppyP.Int -> HoppyP.IO QModelIndex
sibling arg'1 arg'2 arg'3 =
withQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
let arg'2' = HoppyFHR.coerceIntegral arg'2 in
let arg'3' = HoppyFHR.coerceIntegral arg'3 in
(HoppyFHR.decodeAndDelete . QModelIndexConst) =<<
(sibling' arg'1' arg'2' arg'3')
eQ :: (QModelIndexValue arg'1, QModelIndexValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
eQ arg'1 arg'2 =
withQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
HoppyP.fmap (/= 0)
(eQ' arg'1' arg'2')
nE :: (QModelIndexValue arg'1, QModelIndexValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool
nE arg'1 arg'2 =
withQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
HoppyP.fmap (/= 0)
(nE' arg'1' arg'2')
class (QModelIndexConstPtr this) => QModelIndexPtr this where
toQModelIndex :: this -> QModelIndex
aSSIGN :: (QModelIndexPtr arg'1, QModelIndexValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO QModelIndex
aSSIGN arg'1 arg'2 =
HoppyFHR.withCppPtr (toQModelIndex arg'1) $ \arg'1' ->
withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
HoppyP.fmap QModelIndex
(aSSIGN' arg'1' arg'2')
data QModelIndexConst =
QModelIndexConst (HoppyF.Ptr QModelIndexConst)
| QModelIndexConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QModelIndexConst)
deriving (HoppyP.Show)
instance HoppyP.Eq QModelIndexConst where
x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
instance HoppyP.Ord QModelIndexConst where
compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
castQModelIndexToConst :: QModelIndex -> QModelIndexConst
castQModelIndexToConst (QModelIndex ptr') = QModelIndexConst $ HoppyF.castPtr ptr'
castQModelIndexToConst (QModelIndexGc fptr' ptr') = QModelIndexConstGc fptr' $ HoppyF.castPtr ptr'
instance HoppyFHR.CppPtr QModelIndexConst where
nullptr = QModelIndexConst HoppyF.nullPtr
withCppPtr (QModelIndexConst ptr') f' = f' ptr'
withCppPtr (QModelIndexConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
toPtr (QModelIndexConst ptr') = ptr'
toPtr (QModelIndexConstGc _ ptr') = ptr'
touchCppPtr (QModelIndexConst _) = HoppyP.return ()
touchCppPtr (QModelIndexConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
instance HoppyFHR.Deletable QModelIndexConst where
delete (QModelIndexConst ptr') = delete'QModelIndex ptr'
delete (QModelIndexConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QModelIndexConst", " object."]
toGc this'@(QModelIndexConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QModelIndexConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QModelIndex :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
toGc this'@(QModelIndexConstGc {}) = HoppyP.return this'
instance HoppyFHR.Copyable QModelIndexConst QModelIndex where copy = newCopy
instance QModelIndexConstPtr QModelIndexConst where
toQModelIndexConst = HoppyP.id
data QModelIndex =
QModelIndex (HoppyF.Ptr QModelIndex)
| QModelIndexGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QModelIndex)
deriving (HoppyP.Show)
instance HoppyP.Eq QModelIndex where
x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
instance HoppyP.Ord QModelIndex where
compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
castQModelIndexToNonconst :: QModelIndexConst -> QModelIndex
castQModelIndexToNonconst (QModelIndexConst ptr') = QModelIndex $ HoppyF.castPtr ptr'
castQModelIndexToNonconst (QModelIndexConstGc fptr' ptr') = QModelIndexGc fptr' $ HoppyF.castPtr ptr'
instance HoppyFHR.CppPtr QModelIndex where
nullptr = QModelIndex HoppyF.nullPtr
withCppPtr (QModelIndex ptr') f' = f' ptr'
withCppPtr (QModelIndexGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
toPtr (QModelIndex ptr') = ptr'
toPtr (QModelIndexGc _ ptr') = ptr'
touchCppPtr (QModelIndex _) = HoppyP.return ()
touchCppPtr (QModelIndexGc fptr' _) = HoppyF.touchForeignPtr fptr'
instance HoppyFHR.Deletable QModelIndex where
delete (QModelIndex ptr') = delete'QModelIndex $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QModelIndexConst)
delete (QModelIndexGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QModelIndex", " object."]
toGc this'@(QModelIndex ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QModelIndexGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QModelIndex :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
toGc this'@(QModelIndexGc {}) = HoppyP.return this'
instance HoppyFHR.Copyable QModelIndex QModelIndex where copy = newCopy
instance QModelIndexConstPtr QModelIndex where
toQModelIndexConst (QModelIndex ptr') = QModelIndexConst $ (HoppyF.castPtr :: HoppyF.Ptr QModelIndex -> HoppyF.Ptr QModelIndexConst) ptr'
toQModelIndexConst (QModelIndexGc fptr' ptr') = QModelIndexConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QModelIndex -> HoppyF.Ptr QModelIndexConst) ptr'
instance QModelIndexPtr QModelIndex where
toQModelIndex = HoppyP.id
new :: HoppyP.IO QModelIndex
new =
HoppyP.fmap QModelIndex
(new')
newCopy :: (QModelIndexValue arg'1) => arg'1 -> HoppyP.IO QModelIndex
newCopy arg'1 =
withQModelIndexPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
HoppyP.fmap QModelIndex
(newCopy' arg'1')
class QModelIndexSuper a where
downToQModelIndex :: a -> QModelIndex
class QModelIndexSuperConst a where
downToQModelIndexConst :: a -> QModelIndexConst
instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QModelIndex)) QModelIndex where
assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
instance QModelIndexValue a => HoppyFHR.Assignable QModelIndex a where
assign x' y' = aSSIGN x' y' >> HoppyP.return ()
instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QModelIndex)) QModelIndex where
decode = HoppyP.fmap QModelIndex . HoppyF.peek
instance HoppyFHR.Decodable QModelIndex (QModelIndex) where
decode = HoppyFHR.decode . toQModelIndexConst
instance HoppyFHR.Decodable QModelIndexConst (QModelIndex) where
decode =
HoppyFHR.copy >=> HoppyFHR.toGc