{-# 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.Gui.QFont ( QFontValue (..), QFontConstPtr (..), eQ, nE, QFontPtr (..), setPixelSize, setPointSize, aSSIGN, QFontConst (..), castQFontToConst, QFont (..), castQFontToNonconst, new, newCopy, QFontSuper (..), QFontSuperConst (..), ) where import Control.Monad ((>=>)) 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__QFont_new" new' :: HoppyP.IO (HoppyF.Ptr QFont) foreign import ccall "genpop__QFont_newCopy" newCopy' :: HoppyF.Ptr QFontConst -> HoppyP.IO (HoppyF.Ptr QFont) foreign import ccall "genpop__QFont_setPixelSize" setPixelSize' :: HoppyF.Ptr QFont -> HoppyFC.CInt -> HoppyP.IO () foreign import ccall "genpop__QFont_setPointSize" setPointSize' :: HoppyF.Ptr QFont -> HoppyFC.CInt -> HoppyP.IO () foreign import ccall "genpop__QFont_EQ" eQ' :: HoppyF.Ptr QFontConst -> HoppyF.Ptr QFontConst -> HoppyP.IO HoppyFHR.CBool foreign import ccall "genpop__QFont_NE" nE' :: HoppyF.Ptr QFontConst -> HoppyF.Ptr QFontConst -> HoppyP.IO HoppyFHR.CBool foreign import ccall "genpop__QFont_ASSIGN" aSSIGN' :: HoppyF.Ptr QFont -> HoppyF.Ptr QFontConst -> HoppyP.IO (HoppyF.Ptr QFont) foreign import ccall "gendel__QFont" delete'QFont :: HoppyF.Ptr QFontConst -> HoppyP.IO () foreign import ccall "&gendel__QFont" deletePtr'QFont :: HoppyF.FunPtr (HoppyF.Ptr QFontConst -> HoppyP.IO ()) class QFontValue a where withQFontPtr :: a -> (QFontConst -> HoppyP.IO b) -> HoppyP.IO b #if MIN_VERSION_base(4,8,0) instance {-# OVERLAPPABLE #-} QFontConstPtr a => QFontValue a where #else instance QFontConstPtr a => QFontValue a where #endif withQFontPtr = HoppyP.flip ($) . toQFontConst class (HoppyFHR.CppPtr this) => QFontConstPtr this where toQFontConst :: this -> QFontConst eQ :: (QFontValue arg'1, QFontValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool eQ arg'1 arg'2 = withQFontPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' -> withQFontPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' -> HoppyP.fmap (/= 0) (eQ' arg'1' arg'2') nE :: (QFontValue arg'1, QFontValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO HoppyP.Bool nE arg'1 arg'2 = withQFontPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' -> withQFontPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' -> HoppyP.fmap (/= 0) (nE' arg'1' arg'2') class (QFontConstPtr this) => QFontPtr this where toQFont :: this -> QFont setPixelSize :: (QFontPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO () setPixelSize arg'1 arg'2 = HoppyFHR.withCppPtr (toQFont arg'1) $ \arg'1' -> let arg'2' = HoppyFHR.coerceIntegral arg'2 in (setPixelSize' arg'1' arg'2') setPointSize :: (QFontPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO () setPointSize arg'1 arg'2 = HoppyFHR.withCppPtr (toQFont arg'1) $ \arg'1' -> let arg'2' = HoppyFHR.coerceIntegral arg'2 in (setPointSize' arg'1' arg'2') aSSIGN :: (QFontPtr arg'1, QFontValue arg'2) => arg'1 -> arg'2 -> HoppyP.IO QFont aSSIGN arg'1 arg'2 = HoppyFHR.withCppPtr (toQFont arg'1) $ \arg'1' -> withQFontPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' -> HoppyP.fmap QFont (aSSIGN' arg'1' arg'2') data QFontConst = QFontConst (HoppyF.Ptr QFontConst) | QFontConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QFontConst) deriving (HoppyP.Show) instance HoppyP.Eq QFontConst where x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y instance HoppyP.Ord QFontConst where compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y) castQFontToConst :: QFont -> QFontConst castQFontToConst (QFont ptr') = QFontConst $ HoppyF.castPtr ptr' castQFontToConst (QFontGc fptr' ptr') = QFontConstGc fptr' $ HoppyF.castPtr ptr' instance HoppyFHR.CppPtr QFontConst where nullptr = QFontConst HoppyF.nullPtr withCppPtr (QFontConst ptr') f' = f' ptr' withCppPtr (QFontConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr' toPtr (QFontConst ptr') = ptr' toPtr (QFontConstGc _ ptr') = ptr' touchCppPtr (QFontConst _) = HoppyP.return () touchCppPtr (QFontConstGc fptr' _) = HoppyF.touchForeignPtr fptr' instance HoppyFHR.Deletable QFontConst where delete (QFontConst ptr') = delete'QFont ptr' delete (QFontConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QFontConst", " object."] toGc this'@(QFontConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QFontConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QFont :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ()) toGc this'@(QFontConstGc {}) = HoppyP.return this' instance HoppyFHR.Copyable QFontConst QFont where copy = newCopy instance QFontConstPtr QFontConst where toQFontConst = HoppyP.id data QFont = QFont (HoppyF.Ptr QFont) | QFontGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QFont) deriving (HoppyP.Show) instance HoppyP.Eq QFont where x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y instance HoppyP.Ord QFont where compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y) castQFontToNonconst :: QFontConst -> QFont castQFontToNonconst (QFontConst ptr') = QFont $ HoppyF.castPtr ptr' castQFontToNonconst (QFontConstGc fptr' ptr') = QFontGc fptr' $ HoppyF.castPtr ptr' instance HoppyFHR.CppPtr QFont where nullptr = QFont HoppyF.nullPtr withCppPtr (QFont ptr') f' = f' ptr' withCppPtr (QFontGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr' toPtr (QFont ptr') = ptr' toPtr (QFontGc _ ptr') = ptr' touchCppPtr (QFont _) = HoppyP.return () touchCppPtr (QFontGc fptr' _) = HoppyF.touchForeignPtr fptr' instance HoppyFHR.Deletable QFont where delete (QFont ptr') = delete'QFont $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QFontConst) delete (QFontGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QFont", " object."] toGc this'@(QFont ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QFontGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QFont :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ()) toGc this'@(QFontGc {}) = HoppyP.return this' instance HoppyFHR.Copyable QFont QFont where copy = newCopy instance QFontConstPtr QFont where toQFontConst (QFont ptr') = QFontConst $ (HoppyF.castPtr :: HoppyF.Ptr QFont -> HoppyF.Ptr QFontConst) ptr' toQFontConst (QFontGc fptr' ptr') = QFontConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QFont -> HoppyF.Ptr QFontConst) ptr' instance QFontPtr QFont where toQFont = HoppyP.id new :: HoppyP.IO QFont new = HoppyP.fmap QFont (new') newCopy :: (QFontValue arg'1) => arg'1 -> HoppyP.IO QFont newCopy arg'1 = withQFontPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' -> HoppyP.fmap QFont (newCopy' arg'1') class QFontSuper a where downToQFont :: a -> QFont class QFontSuperConst a where downToQFontConst :: a -> QFontConst instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QFont)) QFont where assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value' instance QFontValue a => HoppyFHR.Assignable QFont a where assign x' y' = aSSIGN x' y' >> HoppyP.return () instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QFont)) QFont where decode = HoppyP.fmap QFont . HoppyF.peek instance HoppyFHR.Decodable QFont (QFont) where decode = HoppyFHR.decode . toQFontConst instance HoppyFHR.Decodable QFontConst (QFont) where decode = HoppyFHR.copy >=> HoppyFHR.toGc