{-# LANGUAGE TypeApplications #-}
#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif
module GI.Pango.Objects.FontMap
(
FontMap(..) ,
IsFontMap ,
toFontMap ,
#if defined(ENABLE_OVERLOADING)
ResolveFontMapMethod ,
#endif
#if defined(ENABLE_OVERLOADING)
FontMapChangedMethodInfo ,
#endif
fontMapChanged ,
#if defined(ENABLE_OVERLOADING)
FontMapCreateContextMethodInfo ,
#endif
fontMapCreateContext ,
#if defined(ENABLE_OVERLOADING)
FontMapGetFamilyMethodInfo ,
#endif
fontMapGetFamily ,
#if defined(ENABLE_OVERLOADING)
FontMapGetSerialMethodInfo ,
#endif
fontMapGetSerial ,
#if defined(ENABLE_OVERLOADING)
FontMapListFamiliesMethodInfo ,
#endif
fontMapListFamilies ,
#if defined(ENABLE_OVERLOADING)
FontMapLoadFontMethodInfo ,
#endif
fontMapLoadFont ,
#if defined(ENABLE_OVERLOADING)
FontMapLoadFontsetMethodInfo ,
#endif
fontMapLoadFontset ,
#if defined(ENABLE_OVERLOADING)
FontMapItemTypePropertyInfo ,
#endif
#if defined(ENABLE_OVERLOADING)
fontMapItemType ,
#endif
getFontMapItemType ,
#if defined(ENABLE_OVERLOADING)
FontMapNItemsPropertyInfo ,
#endif
#if defined(ENABLE_OVERLOADING)
fontMapNItems ,
#endif
getFontMapNItems ,
) 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
import qualified GI.GObject.Objects.Object as GObject.Object
import qualified GI.Gio.Interfaces.ListModel as Gio.ListModel
import {-# SOURCE #-} qualified GI.Pango.Objects.Context as Pango.Context
import {-# SOURCE #-} qualified GI.Pango.Objects.Font as Pango.Font
import {-# SOURCE #-} qualified GI.Pango.Objects.FontFamily as Pango.FontFamily
import {-# SOURCE #-} qualified GI.Pango.Objects.Fontset as Pango.Fontset
import {-# SOURCE #-} qualified GI.Pango.Structs.FontDescription as Pango.FontDescription
import {-# SOURCE #-} qualified GI.Pango.Structs.Language as Pango.Language
newtype FontMap = FontMap (SP.ManagedPtr FontMap)
deriving (FontMap -> FontMap -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: FontMap -> FontMap -> Bool
$c/= :: FontMap -> FontMap -> Bool
== :: FontMap -> FontMap -> Bool
$c== :: FontMap -> FontMap -> Bool
Eq)
instance SP.ManagedPtrNewtype FontMap where
toManagedPtr :: FontMap -> ManagedPtr FontMap
toManagedPtr (FontMap ManagedPtr FontMap
p) = ManagedPtr FontMap
p
foreign import ccall "pango_font_map_get_type"
c_pango_font_map_get_type :: IO B.Types.GType
instance B.Types.TypedObject FontMap where
glibType :: IO GType
glibType = IO GType
c_pango_font_map_get_type
instance B.Types.GObject FontMap
class (SP.GObject o, O.IsDescendantOf FontMap o) => IsFontMap o
instance (SP.GObject o, O.IsDescendantOf FontMap o) => IsFontMap o
instance O.HasParentTypes FontMap
type instance O.ParentTypes FontMap = '[GObject.Object.Object, Gio.ListModel.ListModel]
toFontMap :: (MIO.MonadIO m, IsFontMap o) => o -> m FontMap
toFontMap :: forall (m :: * -> *) o. (MonadIO m, IsFontMap o) => o -> m FontMap
toFontMap = forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall o o'.
(HasCallStack, ManagedPtrNewtype o, TypedObject o,
ManagedPtrNewtype o', TypedObject o') =>
(ManagedPtr o' -> o') -> o -> IO o'
B.ManagedPtr.unsafeCastTo ManagedPtr FontMap -> FontMap
FontMap
instance B.GValue.IsGValue (Maybe FontMap) where
gvalueGType_ :: IO GType
gvalueGType_ = IO GType
c_pango_font_map_get_type
gvalueSet_ :: Ptr GValue -> Maybe FontMap -> IO ()
gvalueSet_ Ptr GValue
gv Maybe FontMap
P.Nothing = forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv (forall a. Ptr a
FP.nullPtr :: FP.Ptr FontMap)
gvalueSet_ Ptr GValue
gv (P.Just FontMap
obj) = forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr FontMap
obj (forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv)
gvalueGet_ :: Ptr GValue -> IO (Maybe FontMap)
gvalueGet_ Ptr GValue
gv = do
Ptr FontMap
ptr <- forall a. GObject a => Ptr GValue -> IO (Ptr a)
B.GValue.get_object Ptr GValue
gv :: IO (FP.Ptr FontMap)
if Ptr FontMap
ptr forall a. Eq a => a -> a -> Bool
/= forall a. Ptr a
FP.nullPtr
then forall a. a -> Maybe a
P.Just forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
B.ManagedPtr.newObject ManagedPtr FontMap -> FontMap
FontMap Ptr FontMap
ptr
else forall (m :: * -> *) a. Monad m => a -> m a
return forall a. Maybe a
P.Nothing
#if defined(ENABLE_OVERLOADING)
type family ResolveFontMapMethod (t :: Symbol) (o :: DK.Type) :: DK.Type where
ResolveFontMapMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
ResolveFontMapMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
ResolveFontMapMethod "changed" o = FontMapChangedMethodInfo
ResolveFontMapMethod "createContext" o = FontMapCreateContextMethodInfo
ResolveFontMapMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
ResolveFontMapMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
ResolveFontMapMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
ResolveFontMapMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
ResolveFontMapMethod "itemsChanged" o = Gio.ListModel.ListModelItemsChangedMethodInfo
ResolveFontMapMethod "listFamilies" o = FontMapListFamiliesMethodInfo
ResolveFontMapMethod "loadFont" o = FontMapLoadFontMethodInfo
ResolveFontMapMethod "loadFontset" o = FontMapLoadFontsetMethodInfo
ResolveFontMapMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
ResolveFontMapMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
ResolveFontMapMethod "ref" o = GObject.Object.ObjectRefMethodInfo
ResolveFontMapMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
ResolveFontMapMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
ResolveFontMapMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
ResolveFontMapMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
ResolveFontMapMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
ResolveFontMapMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
ResolveFontMapMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
ResolveFontMapMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
ResolveFontMapMethod "getFamily" o = FontMapGetFamilyMethodInfo
ResolveFontMapMethod "getItem" o = Gio.ListModel.ListModelGetItemMethodInfo
ResolveFontMapMethod "getItemType" o = Gio.ListModel.ListModelGetItemTypeMethodInfo
ResolveFontMapMethod "getNItems" o = Gio.ListModel.ListModelGetNItemsMethodInfo
ResolveFontMapMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
ResolveFontMapMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
ResolveFontMapMethod "getSerial" o = FontMapGetSerialMethodInfo
ResolveFontMapMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
ResolveFontMapMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
ResolveFontMapMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
ResolveFontMapMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveFontMapMethod t FontMap, O.OverloadedMethod info FontMap p) => OL.IsLabel t (FontMap -> 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 ~ ResolveFontMapMethod t FontMap, O.OverloadedMethod info FontMap p, R.HasField t FontMap p) => R.HasField t FontMap p where
getField = O.overloadedMethod @info
#endif
instance (info ~ ResolveFontMapMethod t FontMap, O.OverloadedMethodInfo info FontMap) => OL.IsLabel t (O.MethodProxy info FontMap) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.MethodProxy
#else
fromLabel _ = O.MethodProxy
#endif
#endif
getFontMapItemType :: (MonadIO m, IsFontMap o) => o -> m GType
getFontMapItemType :: forall (m :: * -> *) o. (MonadIO m, IsFontMap o) => o -> m GType
getFontMapItemType o
obj = forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO forall a b. (a -> b) -> a -> b
$ forall a. GObject a => a -> String -> IO GType
B.Properties.getObjectPropertyGType o
obj String
"item-type"
#if defined(ENABLE_OVERLOADING)
data FontMapItemTypePropertyInfo
instance AttrInfo FontMapItemTypePropertyInfo where
type AttrAllowedOps FontMapItemTypePropertyInfo = '[ 'AttrGet]
type AttrBaseTypeConstraint FontMapItemTypePropertyInfo = IsFontMap
type AttrSetTypeConstraint FontMapItemTypePropertyInfo = (~) ()
type AttrTransferTypeConstraint FontMapItemTypePropertyInfo = (~) ()
type AttrTransferType FontMapItemTypePropertyInfo = ()
type AttrGetType FontMapItemTypePropertyInfo = GType
type AttrLabel FontMapItemTypePropertyInfo = "item-type"
type AttrOrigin FontMapItemTypePropertyInfo = FontMap
attrGet = getFontMapItemType
attrSet = undefined
attrTransfer _ = undefined
attrConstruct = undefined
attrClear = undefined
dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Pango.Objects.FontMap.itemType"
, O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-pango-1.0.27/docs/GI-Pango-Objects-FontMap.html#g:attr:itemType"
})
#endif
getFontMapNItems :: (MonadIO m, IsFontMap o) => o -> m Word32
getFontMapNItems :: forall (m :: * -> *) o. (MonadIO m, IsFontMap o) => o -> m Word32
getFontMapNItems o
obj = forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO forall a b. (a -> b) -> a -> b
$ forall a. GObject a => a -> String -> IO Word32
B.Properties.getObjectPropertyUInt32 o
obj String
"n-items"
#if defined(ENABLE_OVERLOADING)
data FontMapNItemsPropertyInfo
instance AttrInfo FontMapNItemsPropertyInfo where
type AttrAllowedOps FontMapNItemsPropertyInfo = '[ 'AttrGet]
type AttrBaseTypeConstraint FontMapNItemsPropertyInfo = IsFontMap
type AttrSetTypeConstraint FontMapNItemsPropertyInfo = (~) ()
type AttrTransferTypeConstraint FontMapNItemsPropertyInfo = (~) ()
type AttrTransferType FontMapNItemsPropertyInfo = ()
type AttrGetType FontMapNItemsPropertyInfo = Word32
type AttrLabel FontMapNItemsPropertyInfo = "n-items"
type AttrOrigin FontMapNItemsPropertyInfo = FontMap
attrGet = getFontMapNItems
attrSet = undefined
attrTransfer _ = undefined
attrConstruct = undefined
attrClear = undefined
dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Pango.Objects.FontMap.nItems"
, O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-pango-1.0.27/docs/GI-Pango-Objects-FontMap.html#g:attr:nItems"
})
#endif
#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList FontMap
type instance O.AttributeList FontMap = FontMapAttributeList
type FontMapAttributeList = ('[ '("itemType", FontMapItemTypePropertyInfo), '("nItems", FontMapNItemsPropertyInfo)] :: [(Symbol, DK.Type)])
#endif
#if defined(ENABLE_OVERLOADING)
fontMapItemType :: AttrLabelProxy "itemType"
fontMapItemType = AttrLabelProxy
fontMapNItems :: AttrLabelProxy "nItems"
fontMapNItems = AttrLabelProxy
#endif
#if defined(ENABLE_OVERLOADING)
type instance O.SignalList FontMap = FontMapSignalList
type FontMapSignalList = ('[ '("itemsChanged", Gio.ListModel.ListModelItemsChangedSignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, DK.Type)])
#endif
foreign import ccall "pango_font_map_changed" pango_font_map_changed ::
Ptr FontMap ->
IO ()
fontMapChanged ::
(B.CallStack.HasCallStack, MonadIO m, IsFontMap a) =>
a
-> m ()
fontMapChanged :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsFontMap a) =>
a -> m ()
fontMapChanged a
fontmap = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall a b. (a -> b) -> a -> b
$ do
Ptr FontMap
fontmap' <- forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
fontmap
Ptr FontMap -> IO ()
pango_font_map_changed Ptr FontMap
fontmap'
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
fontmap
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data FontMapChangedMethodInfo
instance (signature ~ (m ()), MonadIO m, IsFontMap a) => O.OverloadedMethod FontMapChangedMethodInfo a signature where
overloadedMethod = fontMapChanged
instance O.OverloadedMethodInfo FontMapChangedMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Pango.Objects.FontMap.fontMapChanged",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-pango-1.0.27/docs/GI-Pango-Objects-FontMap.html#v:fontMapChanged"
})
#endif
foreign import ccall "pango_font_map_create_context" pango_font_map_create_context ::
Ptr FontMap ->
IO (Ptr Pango.Context.Context)
fontMapCreateContext ::
(B.CallStack.HasCallStack, MonadIO m, IsFontMap a) =>
a
-> m Pango.Context.Context
fontMapCreateContext :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsFontMap a) =>
a -> m Context
fontMapCreateContext a
fontmap = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall a b. (a -> b) -> a -> b
$ do
Ptr FontMap
fontmap' <- forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
fontmap
Ptr Context
result <- Ptr FontMap -> IO (Ptr Context)
pango_font_map_create_context Ptr FontMap
fontmap'
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"fontMapCreateContext" Ptr Context
result
Context
result' <- (forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
wrapObject ManagedPtr Context -> Context
Pango.Context.Context) Ptr Context
result
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
fontmap
forall (m :: * -> *) a. Monad m => a -> m a
return Context
result'
#if defined(ENABLE_OVERLOADING)
data FontMapCreateContextMethodInfo
instance (signature ~ (m Pango.Context.Context), MonadIO m, IsFontMap a) => O.OverloadedMethod FontMapCreateContextMethodInfo a signature where
overloadedMethod = fontMapCreateContext
instance O.OverloadedMethodInfo FontMapCreateContextMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Pango.Objects.FontMap.fontMapCreateContext",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-pango-1.0.27/docs/GI-Pango-Objects-FontMap.html#v:fontMapCreateContext"
})
#endif
foreign import ccall "pango_font_map_get_family" pango_font_map_get_family ::
Ptr FontMap ->
CString ->
IO (Ptr Pango.FontFamily.FontFamily)
fontMapGetFamily ::
(B.CallStack.HasCallStack, MonadIO m, IsFontMap a) =>
a
-> T.Text
-> m Pango.FontFamily.FontFamily
fontMapGetFamily :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsFontMap a) =>
a -> Text -> m FontFamily
fontMapGetFamily a
fontmap Text
name = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall a b. (a -> b) -> a -> b
$ do
Ptr FontMap
fontmap' <- forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
fontmap
CString
name' <- Text -> IO CString
textToCString Text
name
Ptr FontFamily
result <- Ptr FontMap -> CString -> IO (Ptr FontFamily)
pango_font_map_get_family Ptr FontMap
fontmap' CString
name'
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"fontMapGetFamily" Ptr FontFamily
result
FontFamily
result' <- (forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr FontFamily -> FontFamily
Pango.FontFamily.FontFamily) Ptr FontFamily
result
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
fontmap
forall a. Ptr a -> IO ()
freeMem CString
name'
forall (m :: * -> *) a. Monad m => a -> m a
return FontFamily
result'
#if defined(ENABLE_OVERLOADING)
data FontMapGetFamilyMethodInfo
instance (signature ~ (T.Text -> m Pango.FontFamily.FontFamily), MonadIO m, IsFontMap a) => O.OverloadedMethod FontMapGetFamilyMethodInfo a signature where
overloadedMethod = fontMapGetFamily
instance O.OverloadedMethodInfo FontMapGetFamilyMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Pango.Objects.FontMap.fontMapGetFamily",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-pango-1.0.27/docs/GI-Pango-Objects-FontMap.html#v:fontMapGetFamily"
})
#endif
foreign import ccall "pango_font_map_get_serial" pango_font_map_get_serial ::
Ptr FontMap ->
IO Word32
fontMapGetSerial ::
(B.CallStack.HasCallStack, MonadIO m, IsFontMap a) =>
a
-> m Word32
fontMapGetSerial :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsFontMap a) =>
a -> m Word32
fontMapGetSerial a
fontmap = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall a b. (a -> b) -> a -> b
$ do
Ptr FontMap
fontmap' <- forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
fontmap
Word32
result <- Ptr FontMap -> IO Word32
pango_font_map_get_serial Ptr FontMap
fontmap'
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
fontmap
forall (m :: * -> *) a. Monad m => a -> m a
return Word32
result
#if defined(ENABLE_OVERLOADING)
data FontMapGetSerialMethodInfo
instance (signature ~ (m Word32), MonadIO m, IsFontMap a) => O.OverloadedMethod FontMapGetSerialMethodInfo a signature where
overloadedMethod = fontMapGetSerial
instance O.OverloadedMethodInfo FontMapGetSerialMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Pango.Objects.FontMap.fontMapGetSerial",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-pango-1.0.27/docs/GI-Pango-Objects-FontMap.html#v:fontMapGetSerial"
})
#endif
foreign import ccall "pango_font_map_list_families" pango_font_map_list_families ::
Ptr FontMap ->
Ptr (Ptr (Ptr Pango.FontFamily.FontFamily)) ->
Ptr Int32 ->
IO ()
fontMapListFamilies ::
(B.CallStack.HasCallStack, MonadIO m, IsFontMap a) =>
a
-> m ([Pango.FontFamily.FontFamily])
fontMapListFamilies :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsFontMap a) =>
a -> m [FontFamily]
fontMapListFamilies a
fontmap = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall a b. (a -> b) -> a -> b
$ do
Ptr FontMap
fontmap' <- forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
fontmap
Ptr (Ptr (Ptr FontFamily))
families <- forall a. Storable a => IO (Ptr a)
callocMem :: IO (Ptr (Ptr (Ptr Pango.FontFamily.FontFamily)))
Ptr Int32
nFamilies <- forall a. Storable a => IO (Ptr a)
allocMem :: IO (Ptr Int32)
Ptr FontMap -> Ptr (Ptr (Ptr FontFamily)) -> Ptr Int32 -> IO ()
pango_font_map_list_families Ptr FontMap
fontmap' Ptr (Ptr (Ptr FontFamily))
families Ptr Int32
nFamilies
Int32
nFamilies' <- forall a. Storable a => Ptr a -> IO a
peek Ptr Int32
nFamilies
Ptr (Ptr FontFamily)
families' <- forall a. Storable a => Ptr a -> IO a
peek Ptr (Ptr (Ptr FontFamily))
families
[Ptr FontFamily]
families'' <- (forall a b. Integral a => a -> Ptr (Ptr b) -> IO [Ptr b]
unpackPtrArrayWithLength Int32
nFamilies') Ptr (Ptr FontFamily)
families'
[FontFamily]
families''' <- forall (t :: * -> *) (m :: * -> *) a b.
(Traversable t, Monad m) =>
(a -> m b) -> t a -> m (t b)
mapM (forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr FontFamily -> FontFamily
Pango.FontFamily.FontFamily) [Ptr FontFamily]
families''
forall a. Ptr a -> IO ()
freeMem Ptr (Ptr FontFamily)
families'
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
fontmap
forall a. Ptr a -> IO ()
freeMem Ptr (Ptr (Ptr FontFamily))
families
forall a. Ptr a -> IO ()
freeMem Ptr Int32
nFamilies
forall (m :: * -> *) a. Monad m => a -> m a
return [FontFamily]
families'''
#if defined(ENABLE_OVERLOADING)
data FontMapListFamiliesMethodInfo
instance (signature ~ (m ([Pango.FontFamily.FontFamily])), MonadIO m, IsFontMap a) => O.OverloadedMethod FontMapListFamiliesMethodInfo a signature where
overloadedMethod = fontMapListFamilies
instance O.OverloadedMethodInfo FontMapListFamiliesMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Pango.Objects.FontMap.fontMapListFamilies",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-pango-1.0.27/docs/GI-Pango-Objects-FontMap.html#v:fontMapListFamilies"
})
#endif
foreign import ccall "pango_font_map_load_font" pango_font_map_load_font ::
Ptr FontMap ->
Ptr Pango.Context.Context ->
Ptr Pango.FontDescription.FontDescription ->
IO (Ptr Pango.Font.Font)
fontMapLoadFont ::
(B.CallStack.HasCallStack, MonadIO m, IsFontMap a, Pango.Context.IsContext b) =>
a
-> b
-> Pango.FontDescription.FontDescription
-> m (Maybe Pango.Font.Font)
fontMapLoadFont :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsFontMap a, IsContext b) =>
a -> b -> FontDescription -> m (Maybe Font)
fontMapLoadFont a
fontmap b
context FontDescription
desc = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall a b. (a -> b) -> a -> b
$ do
Ptr FontMap
fontmap' <- forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
fontmap
Ptr Context
context' <- forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
context
Ptr FontDescription
desc' <- forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr FontDescription
desc
Ptr Font
result <- Ptr FontMap -> Ptr Context -> Ptr FontDescription -> IO (Ptr Font)
pango_font_map_load_font Ptr FontMap
fontmap' Ptr Context
context' Ptr FontDescription
desc'
Maybe Font
maybeResult <- forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
convertIfNonNull Ptr Font
result forall a b. (a -> b) -> a -> b
$ \Ptr Font
result' -> do
Font
result'' <- (forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
wrapObject ManagedPtr Font -> Font
Pango.Font.Font) Ptr Font
result'
forall (m :: * -> *) a. Monad m => a -> m a
return Font
result''
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
fontmap
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
context
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr FontDescription
desc
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe Font
maybeResult
#if defined(ENABLE_OVERLOADING)
data FontMapLoadFontMethodInfo
instance (signature ~ (b -> Pango.FontDescription.FontDescription -> m (Maybe Pango.Font.Font)), MonadIO m, IsFontMap a, Pango.Context.IsContext b) => O.OverloadedMethod FontMapLoadFontMethodInfo a signature where
overloadedMethod = fontMapLoadFont
instance O.OverloadedMethodInfo FontMapLoadFontMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Pango.Objects.FontMap.fontMapLoadFont",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-pango-1.0.27/docs/GI-Pango-Objects-FontMap.html#v:fontMapLoadFont"
})
#endif
foreign import ccall "pango_font_map_load_fontset" pango_font_map_load_fontset ::
Ptr FontMap ->
Ptr Pango.Context.Context ->
Ptr Pango.FontDescription.FontDescription ->
Ptr Pango.Language.Language ->
IO (Ptr Pango.Fontset.Fontset)
fontMapLoadFontset ::
(B.CallStack.HasCallStack, MonadIO m, IsFontMap a, Pango.Context.IsContext b) =>
a
-> b
-> Pango.FontDescription.FontDescription
-> Pango.Language.Language
-> m (Maybe Pango.Fontset.Fontset)
fontMapLoadFontset :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsFontMap a, IsContext b) =>
a -> b -> FontDescription -> Language -> m (Maybe Fontset)
fontMapLoadFontset a
fontmap b
context FontDescription
desc Language
language = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall a b. (a -> b) -> a -> b
$ do
Ptr FontMap
fontmap' <- forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
fontmap
Ptr Context
context' <- forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
context
Ptr FontDescription
desc' <- forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr FontDescription
desc
Ptr Language
language' <- forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr Language
language
Ptr Fontset
result <- Ptr FontMap
-> Ptr Context
-> Ptr FontDescription
-> Ptr Language
-> IO (Ptr Fontset)
pango_font_map_load_fontset Ptr FontMap
fontmap' Ptr Context
context' Ptr FontDescription
desc' Ptr Language
language'
Maybe Fontset
maybeResult <- forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
convertIfNonNull Ptr Fontset
result forall a b. (a -> b) -> a -> b
$ \Ptr Fontset
result' -> do
Fontset
result'' <- (forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
wrapObject ManagedPtr Fontset -> Fontset
Pango.Fontset.Fontset) Ptr Fontset
result'
forall (m :: * -> *) a. Monad m => a -> m a
return Fontset
result''
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
fontmap
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
context
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr FontDescription
desc
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr Language
language
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe Fontset
maybeResult
#if defined(ENABLE_OVERLOADING)
data FontMapLoadFontsetMethodInfo
instance (signature ~ (b -> Pango.FontDescription.FontDescription -> Pango.Language.Language -> m (Maybe Pango.Fontset.Fontset)), MonadIO m, IsFontMap a, Pango.Context.IsContext b) => O.OverloadedMethod FontMapLoadFontsetMethodInfo a signature where
overloadedMethod = fontMapLoadFontset
instance O.OverloadedMethodInfo FontMapLoadFontsetMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Pango.Objects.FontMap.fontMapLoadFontset",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-pango-1.0.27/docs/GI-Pango-Objects-FontMap.html#v:fontMapLoadFontset"
})
#endif