#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \
&& !defined(__HADDOCK_VERSION__))
module GI.Pango.Objects.FontFamily
(
FontFamily(..) ,
IsFontFamily ,
toFontFamily ,
noFontFamily ,
#if ENABLE_OVERLOADING
FontFamilyGetNameMethodInfo ,
#endif
fontFamilyGetName ,
#if ENABLE_OVERLOADING
FontFamilyIsMonospaceMethodInfo ,
#endif
fontFamilyIsMonospace ,
#if ENABLE_OVERLOADING
FontFamilyListFacesMethodInfo ,
#endif
fontFamilyListFaces ,
) 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.ManagedPtr as B.ManagedPtr
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.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
import qualified GI.GObject.Objects.Object as GObject.Object
import {-# SOURCE #-} qualified GI.Pango.Objects.FontFace as Pango.FontFace
newtype FontFamily = FontFamily (ManagedPtr FontFamily)
foreign import ccall "pango_font_family_get_type"
c_pango_font_family_get_type :: IO GType
instance GObject FontFamily where
gobjectType _ = c_pango_font_family_get_type
class GObject o => IsFontFamily o
#if MIN_VERSION_base(4,9,0)
instance {-# OVERLAPPABLE #-} (GObject a, O.UnknownAncestorError FontFamily a) =>
IsFontFamily a
#endif
instance IsFontFamily FontFamily
instance GObject.Object.IsObject FontFamily
toFontFamily :: (MonadIO m, IsFontFamily o) => o -> m FontFamily
toFontFamily = liftIO . unsafeCastTo FontFamily
noFontFamily :: Maybe FontFamily
noFontFamily = Nothing
#if ENABLE_OVERLOADING
type family ResolveFontFamilyMethod (t :: Symbol) (o :: *) :: * where
ResolveFontFamilyMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
ResolveFontFamilyMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
ResolveFontFamilyMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
ResolveFontFamilyMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
ResolveFontFamilyMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
ResolveFontFamilyMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
ResolveFontFamilyMethod "isMonospace" o = FontFamilyIsMonospaceMethodInfo
ResolveFontFamilyMethod "listFaces" o = FontFamilyListFacesMethodInfo
ResolveFontFamilyMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
ResolveFontFamilyMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
ResolveFontFamilyMethod "ref" o = GObject.Object.ObjectRefMethodInfo
ResolveFontFamilyMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
ResolveFontFamilyMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
ResolveFontFamilyMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
ResolveFontFamilyMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
ResolveFontFamilyMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
ResolveFontFamilyMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
ResolveFontFamilyMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
ResolveFontFamilyMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
ResolveFontFamilyMethod "getName" o = FontFamilyGetNameMethodInfo
ResolveFontFamilyMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
ResolveFontFamilyMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
ResolveFontFamilyMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
ResolveFontFamilyMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
ResolveFontFamilyMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveFontFamilyMethod t FontFamily, O.MethodInfo info FontFamily p) => O.IsLabelProxy t (FontFamily -> p) where
fromLabelProxy _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveFontFamilyMethod t FontFamily, O.MethodInfo info FontFamily p) => O.IsLabel t (FontFamily -> p) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#else
fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#endif
#endif
#endif
#if ENABLE_OVERLOADING
instance O.HasAttributeList FontFamily
type instance O.AttributeList FontFamily = FontFamilyAttributeList
type FontFamilyAttributeList = ('[ ] :: [(Symbol, *)])
#endif
#if ENABLE_OVERLOADING
#endif
#if ENABLE_OVERLOADING
type instance O.SignalList FontFamily = FontFamilySignalList
type FontFamilySignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)])
#endif
foreign import ccall "pango_font_family_get_name" pango_font_family_get_name ::
Ptr FontFamily ->
IO CString
fontFamilyGetName ::
(B.CallStack.HasCallStack, MonadIO m, IsFontFamily a) =>
a
-> m T.Text
fontFamilyGetName family = liftIO $ do
family' <- unsafeManagedPtrCastPtr family
result <- pango_font_family_get_name family'
checkUnexpectedReturnNULL "fontFamilyGetName" result
result' <- cstringToText result
touchManagedPtr family
return result'
#if ENABLE_OVERLOADING
data FontFamilyGetNameMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsFontFamily a) => O.MethodInfo FontFamilyGetNameMethodInfo a signature where
overloadedMethod _ = fontFamilyGetName
#endif
foreign import ccall "pango_font_family_is_monospace" pango_font_family_is_monospace ::
Ptr FontFamily ->
IO CInt
fontFamilyIsMonospace ::
(B.CallStack.HasCallStack, MonadIO m, IsFontFamily a) =>
a
-> m Bool
fontFamilyIsMonospace family = liftIO $ do
family' <- unsafeManagedPtrCastPtr family
result <- pango_font_family_is_monospace family'
let result' = (/= 0) result
touchManagedPtr family
return result'
#if ENABLE_OVERLOADING
data FontFamilyIsMonospaceMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsFontFamily a) => O.MethodInfo FontFamilyIsMonospaceMethodInfo a signature where
overloadedMethod _ = fontFamilyIsMonospace
#endif
foreign import ccall "pango_font_family_list_faces" pango_font_family_list_faces ::
Ptr FontFamily ->
Ptr (Ptr (Ptr Pango.FontFace.FontFace)) ->
Ptr Int32 ->
IO ()
fontFamilyListFaces ::
(B.CallStack.HasCallStack, MonadIO m, IsFontFamily a) =>
a
-> m ([Pango.FontFace.FontFace])
fontFamilyListFaces family = liftIO $ do
family' <- unsafeManagedPtrCastPtr family
faces <- allocMem :: IO (Ptr (Ptr (Ptr Pango.FontFace.FontFace)))
nFaces <- allocMem :: IO (Ptr Int32)
pango_font_family_list_faces family' faces nFaces
nFaces' <- peek nFaces
faces' <- peek faces
faces'' <- (unpackPtrArrayWithLength nFaces') faces'
faces''' <- mapM (newObject Pango.FontFace.FontFace) faces''
freeMem faces'
touchManagedPtr family
freeMem faces
freeMem nFaces
return faces'''
#if ENABLE_OVERLOADING
data FontFamilyListFacesMethodInfo
instance (signature ~ (m ([Pango.FontFace.FontFace])), MonadIO m, IsFontFamily a) => O.MethodInfo FontFamilyListFacesMethodInfo a signature where
overloadedMethod _ = fontFamilyListFaces
#endif