{-# LANGUAGE TypeApplications #-}
#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif
module GI.HarfBuzz.Structs.FontExtentsT
(
FontExtentsT(..) ,
newZeroFontExtentsT ,
#if defined(ENABLE_OVERLOADING)
ResolveFontExtentsTMethod ,
#endif
#if defined(ENABLE_OVERLOADING)
fontExtentsT_ascender ,
#endif
getFontExtentsTAscender ,
setFontExtentsTAscender ,
#if defined(ENABLE_OVERLOADING)
fontExtentsT_descender ,
#endif
getFontExtentsTDescender ,
setFontExtentsTDescender ,
#if defined(ENABLE_OVERLOADING)
fontExtentsT_lineGap ,
#endif
getFontExtentsTLineGap ,
setFontExtentsTLineGap ,
) where
import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.ShortPrelude as SP
import qualified Data.GI.Base.Overloading as O
import qualified Prelude as P
import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.GI.Base.BasicTypes as B.Types
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GArray as B.GArray
import qualified Data.GI.Base.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GHashTable as B.GHT
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GValue as B.GValue
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.GI.Base.Properties as B.Properties
import qualified Data.GI.Base.Signals as B.Signals
import qualified Control.Monad.IO.Class as MIO
import qualified Data.Coerce as Coerce
import qualified Data.Text as T
import qualified Data.Kind as DK
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
import qualified GHC.OverloadedLabels as OL
import qualified GHC.Records as R
newtype FontExtentsT = FontExtentsT (SP.ManagedPtr FontExtentsT)
deriving (FontExtentsT -> FontExtentsT -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: FontExtentsT -> FontExtentsT -> Bool
$c/= :: FontExtentsT -> FontExtentsT -> Bool
== :: FontExtentsT -> FontExtentsT -> Bool
$c== :: FontExtentsT -> FontExtentsT -> Bool
Eq)
instance SP.ManagedPtrNewtype FontExtentsT where
toManagedPtr :: FontExtentsT -> ManagedPtr FontExtentsT
toManagedPtr (FontExtentsT ManagedPtr FontExtentsT
p) = ManagedPtr FontExtentsT
p
instance BoxedPtr FontExtentsT where
boxedPtrCopy :: FontExtentsT -> IO FontExtentsT
boxedPtrCopy = \FontExtentsT
p -> forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr FontExtentsT
p (forall a. (HasCallStack, CallocPtr a) => Int -> Ptr a -> IO (Ptr a)
copyBytes Int
48 forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> forall a.
(HasCallStack, BoxedPtr a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
B.ManagedPtr.wrapPtr ManagedPtr FontExtentsT -> FontExtentsT
FontExtentsT)
boxedPtrFree :: FontExtentsT -> IO ()
boxedPtrFree = \FontExtentsT
x -> forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
SP.withManagedPtr FontExtentsT
x forall a. Ptr a -> IO ()
SP.freeMem
instance CallocPtr FontExtentsT where
boxedPtrCalloc :: IO (Ptr FontExtentsT)
boxedPtrCalloc = forall a. Int -> IO (Ptr a)
callocBytes Int
48
newZeroFontExtentsT :: MonadIO m => m FontExtentsT
newZeroFontExtentsT :: forall (m :: * -> *). MonadIO m => m FontExtentsT
newZeroFontExtentsT = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall a b. (a -> b) -> a -> b
$ forall a. CallocPtr a => IO (Ptr a)
boxedPtrCalloc forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= forall a.
(HasCallStack, BoxedPtr a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapPtr ManagedPtr FontExtentsT -> FontExtentsT
FontExtentsT
instance tag ~ 'AttrSet => Constructible FontExtentsT tag where
new :: forall (m :: * -> *).
MonadIO m =>
(ManagedPtr FontExtentsT -> FontExtentsT)
-> [AttrOp FontExtentsT tag] -> m FontExtentsT
new ManagedPtr FontExtentsT -> FontExtentsT
_ [AttrOp FontExtentsT tag]
attrs = do
FontExtentsT
o <- forall (m :: * -> *). MonadIO m => m FontExtentsT
newZeroFontExtentsT
forall o (m :: * -> *).
MonadIO m =>
o -> [AttrOp o 'AttrSet] -> m ()
GI.Attributes.set FontExtentsT
o [AttrOp FontExtentsT tag]
attrs
forall (m :: * -> *) a. Monad m => a -> m a
return FontExtentsT
o
getFontExtentsTAscender :: MonadIO m => FontExtentsT -> m Int32
getFontExtentsTAscender :: forall (m :: * -> *). MonadIO m => FontExtentsT -> m Int32
getFontExtentsTAscender FontExtentsT
s = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall a b. (a -> b) -> a -> b
$ forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr FontExtentsT
s forall a b. (a -> b) -> a -> b
$ \Ptr FontExtentsT
ptr -> do
Int32
val <- forall a. Storable a => Ptr a -> IO a
peek (Ptr FontExtentsT
ptr forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0) :: IO Int32
forall (m :: * -> *) a. Monad m => a -> m a
return Int32
val
setFontExtentsTAscender :: MonadIO m => FontExtentsT -> Int32 -> m ()
setFontExtentsTAscender :: forall (m :: * -> *). MonadIO m => FontExtentsT -> Int32 -> m ()
setFontExtentsTAscender FontExtentsT
s Int32
val = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall a b. (a -> b) -> a -> b
$ forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr FontExtentsT
s forall a b. (a -> b) -> a -> b
$ \Ptr FontExtentsT
ptr -> do
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr FontExtentsT
ptr forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0) (Int32
val :: Int32)
#if defined(ENABLE_OVERLOADING)
data FontExtentsTAscenderFieldInfo
instance AttrInfo FontExtentsTAscenderFieldInfo where
type AttrBaseTypeConstraint FontExtentsTAscenderFieldInfo = (~) FontExtentsT
type AttrAllowedOps FontExtentsTAscenderFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint FontExtentsTAscenderFieldInfo = (~) Int32
type AttrTransferTypeConstraint FontExtentsTAscenderFieldInfo = (~)Int32
type AttrTransferType FontExtentsTAscenderFieldInfo = Int32
type AttrGetType FontExtentsTAscenderFieldInfo = Int32
type AttrLabel FontExtentsTAscenderFieldInfo = "ascender"
type AttrOrigin FontExtentsTAscenderFieldInfo = FontExtentsT
attrGet = getFontExtentsTAscender
attrSet = setFontExtentsTAscender
attrConstruct = undefined
attrClear = undefined
attrTransfer _ v = do
return v
dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.HarfBuzz.Structs.FontExtentsT.ascender"
, O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-harfbuzz-0.0.7/docs/GI-HarfBuzz-Structs-FontExtentsT.html#g:attr:ascender"
})
fontExtentsT_ascender :: AttrLabelProxy "ascender"
fontExtentsT_ascender = AttrLabelProxy
#endif
getFontExtentsTDescender :: MonadIO m => FontExtentsT -> m Int32
getFontExtentsTDescender :: forall (m :: * -> *). MonadIO m => FontExtentsT -> m Int32
getFontExtentsTDescender FontExtentsT
s = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall a b. (a -> b) -> a -> b
$ forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr FontExtentsT
s forall a b. (a -> b) -> a -> b
$ \Ptr FontExtentsT
ptr -> do
Int32
val <- forall a. Storable a => Ptr a -> IO a
peek (Ptr FontExtentsT
ptr forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
4) :: IO Int32
forall (m :: * -> *) a. Monad m => a -> m a
return Int32
val
setFontExtentsTDescender :: MonadIO m => FontExtentsT -> Int32 -> m ()
setFontExtentsTDescender :: forall (m :: * -> *). MonadIO m => FontExtentsT -> Int32 -> m ()
setFontExtentsTDescender FontExtentsT
s Int32
val = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall a b. (a -> b) -> a -> b
$ forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr FontExtentsT
s forall a b. (a -> b) -> a -> b
$ \Ptr FontExtentsT
ptr -> do
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr FontExtentsT
ptr forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
4) (Int32
val :: Int32)
#if defined(ENABLE_OVERLOADING)
data FontExtentsTDescenderFieldInfo
instance AttrInfo FontExtentsTDescenderFieldInfo where
type AttrBaseTypeConstraint FontExtentsTDescenderFieldInfo = (~) FontExtentsT
type AttrAllowedOps FontExtentsTDescenderFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint FontExtentsTDescenderFieldInfo = (~) Int32
type AttrTransferTypeConstraint FontExtentsTDescenderFieldInfo = (~)Int32
type AttrTransferType FontExtentsTDescenderFieldInfo = Int32
type AttrGetType FontExtentsTDescenderFieldInfo = Int32
type AttrLabel FontExtentsTDescenderFieldInfo = "descender"
type AttrOrigin FontExtentsTDescenderFieldInfo = FontExtentsT
attrGet = getFontExtentsTDescender
attrSet = setFontExtentsTDescender
attrConstruct = undefined
attrClear = undefined
attrTransfer _ v = do
return v
dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.HarfBuzz.Structs.FontExtentsT.descender"
, O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-harfbuzz-0.0.7/docs/GI-HarfBuzz-Structs-FontExtentsT.html#g:attr:descender"
})
fontExtentsT_descender :: AttrLabelProxy "descender"
fontExtentsT_descender = AttrLabelProxy
#endif
getFontExtentsTLineGap :: MonadIO m => FontExtentsT -> m Int32
getFontExtentsTLineGap :: forall (m :: * -> *). MonadIO m => FontExtentsT -> m Int32
getFontExtentsTLineGap FontExtentsT
s = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall a b. (a -> b) -> a -> b
$ forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr FontExtentsT
s forall a b. (a -> b) -> a -> b
$ \Ptr FontExtentsT
ptr -> do
Int32
val <- forall a. Storable a => Ptr a -> IO a
peek (Ptr FontExtentsT
ptr forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8) :: IO Int32
forall (m :: * -> *) a. Monad m => a -> m a
return Int32
val
setFontExtentsTLineGap :: MonadIO m => FontExtentsT -> Int32 -> m ()
setFontExtentsTLineGap :: forall (m :: * -> *). MonadIO m => FontExtentsT -> Int32 -> m ()
setFontExtentsTLineGap FontExtentsT
s Int32
val = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall a b. (a -> b) -> a -> b
$ forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr FontExtentsT
s forall a b. (a -> b) -> a -> b
$ \Ptr FontExtentsT
ptr -> do
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr FontExtentsT
ptr forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8) (Int32
val :: Int32)
#if defined(ENABLE_OVERLOADING)
data FontExtentsTLineGapFieldInfo
instance AttrInfo FontExtentsTLineGapFieldInfo where
type AttrBaseTypeConstraint FontExtentsTLineGapFieldInfo = (~) FontExtentsT
type AttrAllowedOps FontExtentsTLineGapFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint FontExtentsTLineGapFieldInfo = (~) Int32
type AttrTransferTypeConstraint FontExtentsTLineGapFieldInfo = (~)Int32
type AttrTransferType FontExtentsTLineGapFieldInfo = Int32
type AttrGetType FontExtentsTLineGapFieldInfo = Int32
type AttrLabel FontExtentsTLineGapFieldInfo = "line_gap"
type AttrOrigin FontExtentsTLineGapFieldInfo = FontExtentsT
attrGet = getFontExtentsTLineGap
attrSet = setFontExtentsTLineGap
attrConstruct = undefined
attrClear = undefined
attrTransfer _ v = do
return v
dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.HarfBuzz.Structs.FontExtentsT.lineGap"
, O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-harfbuzz-0.0.7/docs/GI-HarfBuzz-Structs-FontExtentsT.html#g:attr:lineGap"
})
fontExtentsT_lineGap :: AttrLabelProxy "lineGap"
fontExtentsT_lineGap = AttrLabelProxy
#endif
#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList FontExtentsT
type instance O.AttributeList FontExtentsT = FontExtentsTAttributeList
type FontExtentsTAttributeList = ('[ '("ascender", FontExtentsTAscenderFieldInfo), '("descender", FontExtentsTDescenderFieldInfo), '("lineGap", FontExtentsTLineGapFieldInfo)] :: [(Symbol, DK.Type)])
#endif
#if defined(ENABLE_OVERLOADING)
type family ResolveFontExtentsTMethod (t :: Symbol) (o :: DK.Type) :: DK.Type where
ResolveFontExtentsTMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveFontExtentsTMethod t FontExtentsT, O.OverloadedMethod info FontExtentsT p) => OL.IsLabel t (FontExtentsT -> p) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.overloadedMethod @info
#else
fromLabel _ = O.overloadedMethod @info
#endif
#if MIN_VERSION_base(4,13,0)
instance (info ~ ResolveFontExtentsTMethod t FontExtentsT, O.OverloadedMethod info FontExtentsT p, R.HasField t FontExtentsT p) => R.HasField t FontExtentsT p where
getField = O.overloadedMethod @info
#endif
instance (info ~ ResolveFontExtentsTMethod t FontExtentsT, O.OverloadedMethodInfo info FontExtentsT) => OL.IsLabel t (O.MethodProxy info FontExtentsT) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.MethodProxy
#else
fromLabel _ = O.MethodProxy
#endif
#endif