{-# LANGUAGE TypeApplications #-}
#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif
module GI.Pango.Objects.Fontset
(
Fontset(..) ,
IsFontset ,
toFontset ,
#if defined(ENABLE_OVERLOADING)
ResolveFontsetMethod ,
#endif
#if defined(ENABLE_OVERLOADING)
FontsetForeachMethodInfo ,
#endif
fontsetForeach ,
#if defined(ENABLE_OVERLOADING)
FontsetGetFontMethodInfo ,
#endif
fontsetGetFont ,
#if defined(ENABLE_OVERLOADING)
FontsetGetMetricsMethodInfo ,
#endif
fontsetGetMetrics ,
) 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.Pango.Callbacks as Pango.Callbacks
import {-# SOURCE #-} qualified GI.Pango.Objects.Font as Pango.Font
import {-# SOURCE #-} qualified GI.Pango.Structs.FontMetrics as Pango.FontMetrics
newtype Fontset = Fontset (SP.ManagedPtr Fontset)
deriving (Fontset -> Fontset -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Fontset -> Fontset -> Bool
$c/= :: Fontset -> Fontset -> Bool
== :: Fontset -> Fontset -> Bool
$c== :: Fontset -> Fontset -> Bool
Eq)
instance SP.ManagedPtrNewtype Fontset where
toManagedPtr :: Fontset -> ManagedPtr Fontset
toManagedPtr (Fontset ManagedPtr Fontset
p) = ManagedPtr Fontset
p
foreign import ccall "pango_fontset_get_type"
c_pango_fontset_get_type :: IO B.Types.GType
instance B.Types.TypedObject Fontset where
glibType :: IO GType
glibType = IO GType
c_pango_fontset_get_type
instance B.Types.GObject Fontset
class (SP.GObject o, O.IsDescendantOf Fontset o) => IsFontset o
instance (SP.GObject o, O.IsDescendantOf Fontset o) => IsFontset o
instance O.HasParentTypes Fontset
type instance O.ParentTypes Fontset = '[GObject.Object.Object]
toFontset :: (MIO.MonadIO m, IsFontset o) => o -> m Fontset
toFontset :: forall (m :: * -> *) o. (MonadIO m, IsFontset o) => o -> m Fontset
toFontset = 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 Fontset -> Fontset
Fontset
instance B.GValue.IsGValue (Maybe Fontset) where
gvalueGType_ :: IO GType
gvalueGType_ = IO GType
c_pango_fontset_get_type
gvalueSet_ :: Ptr GValue -> Maybe Fontset -> IO ()
gvalueSet_ Ptr GValue
gv Maybe Fontset
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 Fontset)
gvalueSet_ Ptr GValue
gv (P.Just Fontset
obj) = forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr Fontset
obj (forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv)
gvalueGet_ :: Ptr GValue -> IO (Maybe Fontset)
gvalueGet_ Ptr GValue
gv = do
Ptr Fontset
ptr <- forall a. GObject a => Ptr GValue -> IO (Ptr a)
B.GValue.get_object Ptr GValue
gv :: IO (FP.Ptr Fontset)
if Ptr Fontset
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 Fontset -> Fontset
Fontset Ptr Fontset
ptr
else forall (m :: * -> *) a. Monad m => a -> m a
return forall a. Maybe a
P.Nothing
#if defined(ENABLE_OVERLOADING)
type family ResolveFontsetMethod (t :: Symbol) (o :: DK.Type) :: DK.Type where
ResolveFontsetMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
ResolveFontsetMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
ResolveFontsetMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
ResolveFontsetMethod "foreach" o = FontsetForeachMethodInfo
ResolveFontsetMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
ResolveFontsetMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
ResolveFontsetMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
ResolveFontsetMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
ResolveFontsetMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
ResolveFontsetMethod "ref" o = GObject.Object.ObjectRefMethodInfo
ResolveFontsetMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
ResolveFontsetMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
ResolveFontsetMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
ResolveFontsetMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
ResolveFontsetMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
ResolveFontsetMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
ResolveFontsetMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
ResolveFontsetMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
ResolveFontsetMethod "getFont" o = FontsetGetFontMethodInfo
ResolveFontsetMethod "getMetrics" o = FontsetGetMetricsMethodInfo
ResolveFontsetMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
ResolveFontsetMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
ResolveFontsetMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
ResolveFontsetMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
ResolveFontsetMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
ResolveFontsetMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveFontsetMethod t Fontset, O.OverloadedMethod info Fontset p) => OL.IsLabel t (Fontset -> 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 ~ ResolveFontsetMethod t Fontset, O.OverloadedMethod info Fontset p, R.HasField t Fontset p) => R.HasField t Fontset p where
getField = O.overloadedMethod @info
#endif
instance (info ~ ResolveFontsetMethod t Fontset, O.OverloadedMethodInfo info Fontset) => OL.IsLabel t (O.MethodProxy info Fontset) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.MethodProxy
#else
fromLabel _ = O.MethodProxy
#endif
#endif
#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList Fontset
type instance O.AttributeList Fontset = FontsetAttributeList
type FontsetAttributeList = ('[ ] :: [(Symbol, DK.Type)])
#endif
#if defined(ENABLE_OVERLOADING)
#endif
#if defined(ENABLE_OVERLOADING)
type instance O.SignalList Fontset = FontsetSignalList
type FontsetSignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, DK.Type)])
#endif
foreign import ccall "pango_fontset_foreach" pango_fontset_foreach ::
Ptr Fontset ->
FunPtr Pango.Callbacks.C_FontsetForeachFunc ->
Ptr () ->
IO ()
fontsetForeach ::
(B.CallStack.HasCallStack, MonadIO m, IsFontset a) =>
a
-> Pango.Callbacks.FontsetForeachFunc
-> m ()
fontsetForeach :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsFontset a) =>
a -> FontsetForeachFunc -> m ()
fontsetForeach a
fontset FontsetForeachFunc
func = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall a b. (a -> b) -> a -> b
$ do
Ptr Fontset
fontset' <- forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
fontset
FunPtr C_FontsetForeachFunc
func' <- C_FontsetForeachFunc -> IO (FunPtr C_FontsetForeachFunc)
Pango.Callbacks.mk_FontsetForeachFunc (Maybe (Ptr (FunPtr C_FontsetForeachFunc))
-> FontsetForeachFunc_WithClosures -> C_FontsetForeachFunc
Pango.Callbacks.wrap_FontsetForeachFunc forall a. Maybe a
Nothing (FontsetForeachFunc -> FontsetForeachFunc_WithClosures
Pango.Callbacks.drop_closures_FontsetForeachFunc FontsetForeachFunc
func))
let data_ :: Ptr a
data_ = forall a. Ptr a
nullPtr
Ptr Fontset -> FunPtr C_FontsetForeachFunc -> Ptr () -> IO ()
pango_fontset_foreach Ptr Fontset
fontset' FunPtr C_FontsetForeachFunc
func' forall a. Ptr a
data_
forall a. Ptr a -> IO ()
safeFreeFunPtr forall a b. (a -> b) -> a -> b
$ forall a b. FunPtr a -> Ptr b
castFunPtrToPtr FunPtr C_FontsetForeachFunc
func'
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
fontset
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data FontsetForeachMethodInfo
instance (signature ~ (Pango.Callbacks.FontsetForeachFunc -> m ()), MonadIO m, IsFontset a) => O.OverloadedMethod FontsetForeachMethodInfo a signature where
overloadedMethod = fontsetForeach
instance O.OverloadedMethodInfo FontsetForeachMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Pango.Objects.Fontset.fontsetForeach",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-pango-1.0.27/docs/GI-Pango-Objects-Fontset.html#v:fontsetForeach"
})
#endif
foreign import ccall "pango_fontset_get_font" pango_fontset_get_font ::
Ptr Fontset ->
Word32 ->
IO (Ptr Pango.Font.Font)
fontsetGetFont ::
(B.CallStack.HasCallStack, MonadIO m, IsFontset a) =>
a
-> Word32
-> m Pango.Font.Font
fontsetGetFont :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsFontset a) =>
a -> Word32 -> m Font
fontsetGetFont a
fontset Word32
wc = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall a b. (a -> b) -> a -> b
$ do
Ptr Fontset
fontset' <- forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
fontset
Ptr Font
result <- Ptr Fontset -> Word32 -> IO (Ptr Font)
pango_fontset_get_font Ptr Fontset
fontset' Word32
wc
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"fontsetGetFont" Ptr Font
result
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 a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
fontset
forall (m :: * -> *) a. Monad m => a -> m a
return Font
result'
#if defined(ENABLE_OVERLOADING)
data FontsetGetFontMethodInfo
instance (signature ~ (Word32 -> m Pango.Font.Font), MonadIO m, IsFontset a) => O.OverloadedMethod FontsetGetFontMethodInfo a signature where
overloadedMethod = fontsetGetFont
instance O.OverloadedMethodInfo FontsetGetFontMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Pango.Objects.Fontset.fontsetGetFont",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-pango-1.0.27/docs/GI-Pango-Objects-Fontset.html#v:fontsetGetFont"
})
#endif
foreign import ccall "pango_fontset_get_metrics" pango_fontset_get_metrics ::
Ptr Fontset ->
IO (Ptr Pango.FontMetrics.FontMetrics)
fontsetGetMetrics ::
(B.CallStack.HasCallStack, MonadIO m, IsFontset a) =>
a
-> m Pango.FontMetrics.FontMetrics
fontsetGetMetrics :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsFontset a) =>
a -> m FontMetrics
fontsetGetMetrics a
fontset = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall a b. (a -> b) -> a -> b
$ do
Ptr Fontset
fontset' <- forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
fontset
Ptr FontMetrics
result <- Ptr Fontset -> IO (Ptr FontMetrics)
pango_fontset_get_metrics Ptr Fontset
fontset'
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"fontsetGetMetrics" Ptr FontMetrics
result
FontMetrics
result' <- (forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr FontMetrics -> FontMetrics
Pango.FontMetrics.FontMetrics) Ptr FontMetrics
result
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
fontset
forall (m :: * -> *) a. Monad m => a -> m a
return FontMetrics
result'
#if defined(ENABLE_OVERLOADING)
data FontsetGetMetricsMethodInfo
instance (signature ~ (m Pango.FontMetrics.FontMetrics), MonadIO m, IsFontset a) => O.OverloadedMethod FontsetGetMetricsMethodInfo a signature where
overloadedMethod = fontsetGetMetrics
instance O.OverloadedMethodInfo FontsetGetMetricsMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Pango.Objects.Fontset.fontsetGetMetrics",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-pango-1.0.27/docs/GI-Pango-Objects-Fontset.html#v:fontsetGetMetrics"
})
#endif