Pango Reference Manual | ||||
---|---|---|---|---|
PangoFcFontMap; PangoFcFontMapClass; PangoFontDescription* pango_fc_font_description_from_pattern (FcPattern *pattern, gboolean include_size); void pango_fc_font_map_cache_clear (PangoFcFontMap *fcfontmap); PangoContext* pango_fc_font_map_create_context (PangoFcFontMap *fcfontmap); void pango_fc_font_map_shutdown (PangoFcFontMap *fcfontmap); void pango_fc_font_map_add_decoder_find_func (PangoFcFontMap *fcfontmap, PangoFcDecoderFindFunc findfunc, gpointer user_data, GDestroyNotify dnotify); PangoFcDecoder* (*PangoFcDecoderFindFunc) (FcPattern *pattern, gpointer user_data);
PangoFcFontMap is a base class for font map implementations using the Fontconfig and FreeType libraries. It is used in the Xft and FreeType backends shipped with Pango, but can also be used when creating new backends. Any backend deriving from this base class will take advantage of the wide range of shapers implemented using FreeType that come with Pango.
typedef struct _PangoFcFontMap PangoFcFontMap;
PangoFcFontMap is a base class for font map implementations
using the Fontconfig and FreeType libraries. To create a new
backend using Fontconfig and FreeType, you derive from this class
and implement a new_font()
virtual function that creates an
instance deriving from PangoFcFont.
typedef struct { /* Deprecated in favor of context_substitute */ void (*default_substitute) (PangoFcFontMap *fontmap, FcPattern *pattern); /* Deprecated in favor of create_font */ PangoFcFont *(*new_font) (PangoFcFontMap *fontmap, FcPattern *pattern); double (*get_resolution) (PangoFcFontMap *fcfontmap, PangoContext *context); gconstpointer (*context_key_get) (PangoFcFontMap *fcfontmap, PangoContext *context); gpointer (*context_key_copy) (PangoFcFontMap *fcfontmap, gconstpointer key); void (*context_key_free) (PangoFcFontMap *fcfontmap, gpointer key); guint32 (*context_key_hash) (PangoFcFontMap *fcfontmap, gconstpointer key); gboolean (*context_key_equal) (PangoFcFontMap *fcfontmap, gconstpointer key_a, gconstpointer key_b); void (*context_substitute) (PangoFcFontMap *fontmap, PangoContext *context, FcPattern *pattern); PangoFcFont *(*create_font) (PangoFcFontMap *fontmap, PangoContext *context, const PangoFontDescription *desc, FcPattern *pattern); } PangoFcFontMapClass;
Class structure for PangoFcFontMap.
default_substitute () |
Substitutes in default values for
unspecified fields in a FcPattern. This will be called
prior to creating a font for the pattern. May be NULL .
Deprecated in favor of @context_substitute() .
|
new_font () |
Creates a new PangoFcFont for the specified
pattern of the appropriate type for this font map. The
pattern argument must be passed to the "pattern" property
of PangoFcFont when you call g_object_new() . Deprecated
in favor of @create_font() .
|
get_resolution () |
Gets the resolution (the scale factor
between logical and absolute font sizes) that the backend
will use for a particular fontmap and context. context
may be null.
|
context_key_get () |
Gets an opaque key holding backend
specific options for the context that will affect
fonts created by create_font() . The result must point to
persistant storage owned by the fontmap. This key
is used to index hash tables used to look up fontsets
and fonts.
|
context_key_copy () |
Copies a context key. Pango uses this
to make a persistant copy of the value returned from
context_key_get .
|
context_key_free () |
Frees a context key copied with
context_key_copy .
|
context_key_hash () |
Gets a hash value for a context key |
context_key_equal () |
Compares two context keys for equality. |
context_substitute () |
Substitutes in default values for
unspecified fields in a FcPattern. This will be called
prior to creating a font for the pattern. May be NULL .
|
create_font () |
Creates a new PangoFcFont for the specified
pattern of the appropriate type for this font map using
information from the context that is passed in. The
pattern argument must be passed to the "pattern" property
of PangoFcFont when you call g_object_new() . Deprecated
in favor of @create_font() . If NULL , new_font() is used.
|
PangoFontDescription* pango_fc_font_description_from_pattern (FcPattern *pattern, gboolean include_size);
Creates a PangoFontDescription that matches the specified
Fontconfig pattern as closely as possible. Many possible Fontconfig
pattern values, such as FC_RASTERIZER
or FC_DPI
, don't make sense in
the context of PangoFontDescription, so will be ignored.
pattern : |
a FcPattern |
include_size : |
if TRUE , the pattern will include the size from
the pattern ; otherwise the resulting pattern will be unsized.
(only FC_SIZE is examined, not FC_PIXEL_SIZE )
|
Returns : | a new PangoFontDescription. Free with
pango_font_description_free() .
|
Since 1.4
void pango_fc_font_map_cache_clear (PangoFcFontMap *fcfontmap);
Clear all cached information and fontsets for this font map;
this should be called whenever there is a change in the
output of the default_substitute()
virtual function.
This function is intended to be used only by backend implementations deriving from PangoFcFontmap.
fcfontmap : |
a PangoFcFontmap |
Since 1.4
PangoContext* pango_fc_font_map_create_context (PangoFcFontMap *fcfontmap);
Creates a new context for this fontmap. This function is intended only for backend implementations deriving from PangoFcFontmap; it is possible that a backend will store additional information needed for correct operation on the PangoContext after calling this function.
fcfontmap : |
a PangoFcFontMap |
Returns : | a new PangoContext |
Since 1.4
void pango_fc_font_map_shutdown (PangoFcFontMap *fcfontmap);
Clears all cached information for the fontmap and marks
all fonts open for the fontmap as dead. (See the shutdown()
virtual function of PangoFcFont.) This function might be used
by a backend when the underlying windowing system for the font
map exits. This function is only intended to be called from
only for backend implementations deriving from PangoFcFontmap.
fcfontmap : |
a PangoFcFontmap |
Since 1.4
void pango_fc_font_map_add_decoder_find_func (PangoFcFontMap *fcfontmap, PangoFcDecoderFindFunc findfunc, gpointer user_data, GDestroyNotify dnotify);
This function saves a callback method in the PangoFcFontMap that will be called whenever new fonts are created. If the function returns a PangoFcDecoder, that decoder will be used to determine both coverage via a FcCharSet and a one-to-one mapping of characters to glyphs. This will allow applications to have application-specific encodings for various fonts.
fcfontmap : |
The PangoFcFontMap to add this method to. |
findfunc : |
The PangoFcDecoderFindFunc callback function |
user_data : |
User data. |
dnotify : |
A GDestroyNotify callback that will be called when the fontmap is finalized and the decoder is released. |
Since 1.6.
PangoFcDecoder* (*PangoFcDecoderFindFunc) (FcPattern *pattern, gpointer user_data);
Callback function passed to pango_fc_font_map_add_decoder_find_func()
.
pattern : |
a fully resolved FcPattern specifying the font on the system |
user_data : |
user data passed to pango_fc_font_map_add_decoder_find_func()
|
Returns : | a new reference to a custom decoder for this pattern,
or NULL if the default decoder handling should be used.
|
PangoFcFont | The base class for fonts; creating a new Fontconfig-based backend involves deriving from both PangoFcFontMap and PangoFcFont. |