{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, GeneralizedNewtypeDeriving, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
module Graphics.UI.Qtah.Generated.Gui.QFont (
QFontValue (..),
QFontConstPtr (..),
bold,
weight,
eQ,
nE,
QFontPtr (..),
setBold,
setPixelSize,
setPointSize,
setWeight,
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_bold" bold' :: HoppyF.Ptr QFontConst -> HoppyP.IO HoppyFHR.CBool
foreign import ccall "genpop__QFont_setBold" setBold' :: HoppyF.Ptr QFont -> HoppyFHR.CBool -> HoppyP.IO ()
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_setWeight" setWeight' :: HoppyF.Ptr QFont -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QFont_weight" weight' :: HoppyF.Ptr QFontConst -> HoppyP.IO HoppyFC.CInt
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
instance {-# OVERLAPPABLE #-} QFontConstPtr a => QFontValue a where
withQFontPtr = HoppyP.flip ($) . toQFontConst
class (HoppyFHR.CppPtr this) => QFontConstPtr this where
toQFontConst :: this -> QFontConst
bold :: (QFontValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Bool
bold arg'1 =
withQFontPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
HoppyP.fmap (/= 0)
(bold' arg'1')
weight :: (QFontValue arg'1) => arg'1 -> HoppyP.IO HoppyP.Int
weight arg'1 =
withQFontPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
HoppyP.fmap HoppyFHR.coerceIntegral
(weight' arg'1')
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
setBold :: (QFontPtr arg'1) => arg'1 -> HoppyP.Bool -> HoppyP.IO ()
setBold arg'1 arg'2 =
HoppyFHR.withCppPtr (toQFont arg'1) $ \arg'1' ->
let arg'2' = if arg'2 then 1 else 0 in
(setBold' arg'1' arg'2')
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')
setWeight :: (QFontPtr arg'1) => arg'1 -> HoppyP.Int -> HoppyP.IO ()
setWeight arg'1 arg'2 =
HoppyFHR.withCppPtr (toQFont arg'1) $ \arg'1' ->
let arg'2' = HoppyFHR.coerceIntegral arg'2 in
(setWeight' 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