module GI.Pango.Objects.FontFamily
(
FontFamily(..) ,
IsFontFamily ,
toFontFamily ,
noFontFamily ,
FontFamilyGetNameMethodInfo ,
fontFamilyGetName ,
FontFamilyIsMonospaceMethodInfo ,
fontFamilyIsMonospace ,
FontFamilyListFacesMethodInfo ,
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.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 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 (GObject a, O.UnknownAncestorError FontFamily a) =>
IsFontFamily a
#endif
instance IsFontFamily FontFamily
instance GObject.Object.IsObject FontFamily
toFontFamily :: IsFontFamily o => o -> IO FontFamily
toFontFamily = unsafeCastTo FontFamily
noFontFamily :: Maybe FontFamily
noFontFamily = Nothing
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 "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 "replaceData" o = GObject.Object.ObjectReplaceDataMethodInfo
ResolveFontFamilyMethod "replaceQdata" o = GObject.Object.ObjectReplaceQdataMethodInfo
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
fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#endif
instance O.HasAttributeList FontFamily
type instance O.AttributeList FontFamily = FontFamilyAttributeList
type FontFamilyAttributeList = ('[ ] :: [(Symbol, *)])
type instance O.SignalList FontFamily = FontFamilySignalList
type FontFamilySignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)])
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'
data FontFamilyGetNameMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsFontFamily a) => O.MethodInfo FontFamilyGetNameMethodInfo a signature where
overloadedMethod _ = fontFamilyGetName
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'
data FontFamilyIsMonospaceMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsFontFamily a) => O.MethodInfo FontFamilyIsMonospaceMethodInfo a signature where
overloadedMethod _ = fontFamilyIsMonospace
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'''
data FontFamilyListFacesMethodInfo
instance (signature ~ (m ([Pango.FontFace.FontFace])), MonadIO m, IsFontFamily a) => O.MethodInfo FontFamilyListFacesMethodInfo a signature where
overloadedMethod _ = fontFamilyListFaces