{-# 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 ,
) 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.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.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 {-# 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
(FontMap -> FontMap -> Bool)
-> (FontMap -> FontMap -> Bool) -> Eq FontMap
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]
toFontMap :: (MIO.MonadIO m, IsFontMap o) => o -> m FontMap
toFontMap :: forall (m :: * -> *) o. (MonadIO m, IsFontMap o) => o -> m FontMap
toFontMap = IO FontMap -> m FontMap
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO FontMap -> m FontMap) -> (o -> IO FontMap) -> o -> m FontMap
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ManagedPtr FontMap -> FontMap) -> o -> IO FontMap
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 = Ptr GValue -> Ptr FontMap -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv (Ptr FontMap
forall a. Ptr a
FP.nullPtr :: FP.Ptr FontMap)
gvalueSet_ Ptr GValue
gv (P.Just FontMap
obj) = FontMap -> (Ptr FontMap -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr FontMap
obj (Ptr GValue -> Ptr FontMap -> IO ()
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 <- Ptr GValue -> IO (Ptr FontMap)
forall a. GObject a => Ptr GValue -> IO (Ptr a)
B.GValue.get_object Ptr GValue
gv :: IO (FP.Ptr FontMap)
if Ptr FontMap
ptr Ptr FontMap -> Ptr FontMap -> Bool
forall a. Eq a => a -> a -> Bool
/= Ptr FontMap
forall a. Ptr a
FP.nullPtr
then FontMap -> Maybe FontMap
forall a. a -> Maybe a
P.Just (FontMap -> Maybe FontMap) -> IO FontMap -> IO (Maybe FontMap)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (ManagedPtr FontMap -> FontMap) -> Ptr FontMap -> IO FontMap
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 Maybe FontMap -> IO (Maybe FontMap)
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe FontMap
forall a. Maybe a
P.Nothing
#if defined(ENABLE_OVERLOADING)
type family ResolveFontMapMethod (t :: Symbol) (o :: *) :: * 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 "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 "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
#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList FontMap
type instance O.AttributeList FontMap = FontMapAttributeList
type FontMapAttributeList = ('[ ] :: [(Symbol, *)])
#endif
#if defined(ENABLE_OVERLOADING)
#endif
#if defined(ENABLE_OVERLOADING)
type instance O.SignalList FontMap = FontMapSignalList
type FontMapSignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)])
#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 = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr FontMap
fontmap' <- a -> IO (Ptr FontMap)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
fontmap
Ptr FontMap -> IO ()
pango_font_map_changed Ptr FontMap
fontmap'
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
fontmap
() -> IO ()
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.25/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 = IO Context -> m Context
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Context -> m Context) -> IO Context -> m Context
forall a b. (a -> b) -> a -> b
$ do
Ptr FontMap
fontmap' <- a -> IO (Ptr 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'
Text -> Ptr Context -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"fontMapCreateContext" Ptr Context
result
Context
result' <- ((ManagedPtr Context -> Context) -> Ptr Context -> IO Context
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
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
fontmap
Context -> IO Context
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.25/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 = IO FontFamily -> m FontFamily
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO FontFamily -> m FontFamily) -> IO FontFamily -> m FontFamily
forall a b. (a -> b) -> a -> b
$ do
Ptr FontMap
fontmap' <- a -> IO (Ptr 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'
Text -> Ptr FontFamily -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"fontMapGetFamily" Ptr FontFamily
result
FontFamily
result' <- ((ManagedPtr FontFamily -> FontFamily)
-> Ptr FontFamily -> IO FontFamily
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
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
fontmap
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
name'
FontFamily -> IO FontFamily
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.25/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 = IO Word32 -> m Word32
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Word32 -> m Word32) -> IO Word32 -> m Word32
forall a b. (a -> b) -> a -> b
$ do
Ptr FontMap
fontmap' <- a -> IO (Ptr 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'
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
fontmap
Word32 -> IO Word32
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.25/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 = IO [FontFamily] -> m [FontFamily]
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO [FontFamily] -> m [FontFamily])
-> IO [FontFamily] -> m [FontFamily]
forall a b. (a -> b) -> a -> b
$ do
Ptr FontMap
fontmap' <- a -> IO (Ptr FontMap)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
fontmap
Ptr (Ptr (Ptr FontFamily))
families <- IO (Ptr (Ptr (Ptr FontFamily)))
forall a. Storable a => IO (Ptr a)
callocMem :: IO (Ptr (Ptr (Ptr Pango.FontFamily.FontFamily)))
Ptr Int32
nFamilies <- IO (Ptr Int32)
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' <- Ptr Int32 -> IO Int32
forall a. Storable a => Ptr a -> IO a
peek Ptr Int32
nFamilies
Ptr (Ptr FontFamily)
families' <- Ptr (Ptr (Ptr FontFamily)) -> IO (Ptr (Ptr FontFamily))
forall a. Storable a => Ptr a -> IO a
peek Ptr (Ptr (Ptr FontFamily))
families
[Ptr FontFamily]
families'' <- (Int32 -> Ptr (Ptr FontFamily) -> IO [Ptr FontFamily]
forall a b. Integral a => a -> Ptr (Ptr b) -> IO [Ptr b]
unpackPtrArrayWithLength Int32
nFamilies') Ptr (Ptr FontFamily)
families'
[FontFamily]
families''' <- (Ptr FontFamily -> IO FontFamily)
-> [Ptr FontFamily] -> IO [FontFamily]
forall (t :: * -> *) (m :: * -> *) a b.
(Traversable t, Monad m) =>
(a -> m b) -> t a -> m (t b)
mapM ((ManagedPtr FontFamily -> FontFamily)
-> Ptr FontFamily -> IO FontFamily
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''
Ptr (Ptr FontFamily) -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr (Ptr FontFamily)
families'
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
fontmap
Ptr (Ptr (Ptr FontFamily)) -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr (Ptr (Ptr FontFamily))
families
Ptr Int32 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Int32
nFamilies
[FontFamily] -> IO [FontFamily]
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.25/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 = IO (Maybe Font) -> m (Maybe Font)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe Font) -> m (Maybe Font))
-> IO (Maybe Font) -> m (Maybe Font)
forall a b. (a -> b) -> a -> b
$ do
Ptr FontMap
fontmap' <- a -> IO (Ptr FontMap)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
fontmap
Ptr Context
context' <- b -> IO (Ptr Context)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
context
Ptr FontDescription
desc' <- FontDescription -> IO (Ptr FontDescription)
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 <- Ptr Font -> (Ptr Font -> IO Font) -> IO (Maybe Font)
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
convertIfNonNull Ptr Font
result ((Ptr Font -> IO Font) -> IO (Maybe Font))
-> (Ptr Font -> IO Font) -> IO (Maybe Font)
forall a b. (a -> b) -> a -> b
$ \Ptr Font
result' -> do
Font
result'' <- ((ManagedPtr Font -> Font) -> Ptr Font -> IO Font
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'
Font -> IO Font
forall (m :: * -> *) a. Monad m => a -> m a
return Font
result''
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
fontmap
b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
context
FontDescription -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr FontDescription
desc
Maybe Font -> IO (Maybe Font)
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.25/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 = IO (Maybe Fontset) -> m (Maybe Fontset)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe Fontset) -> m (Maybe Fontset))
-> IO (Maybe Fontset) -> m (Maybe Fontset)
forall a b. (a -> b) -> a -> b
$ do
Ptr FontMap
fontmap' <- a -> IO (Ptr FontMap)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
fontmap
Ptr Context
context' <- b -> IO (Ptr Context)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
context
Ptr FontDescription
desc' <- FontDescription -> IO (Ptr FontDescription)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr FontDescription
desc
Ptr Language
language' <- Language -> IO (Ptr 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 <- Ptr Fontset -> (Ptr Fontset -> IO Fontset) -> IO (Maybe Fontset)
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
convertIfNonNull Ptr Fontset
result ((Ptr Fontset -> IO Fontset) -> IO (Maybe Fontset))
-> (Ptr Fontset -> IO Fontset) -> IO (Maybe Fontset)
forall a b. (a -> b) -> a -> b
$ \Ptr Fontset
result' -> do
Fontset
result'' <- ((ManagedPtr Fontset -> Fontset) -> Ptr Fontset -> IO Fontset
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'
Fontset -> IO Fontset
forall (m :: * -> *) a. Monad m => a -> m a
return Fontset
result''
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
fontmap
b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
context
FontDescription -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr FontDescription
desc
Language -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr Language
language
Maybe Fontset -> IO (Maybe Fontset)
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.25/docs/GI-Pango-Objects-FontMap.html#v:fontMapLoadFontset"
})
#endif