<?xml version="1.0"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
  "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"
[
<!ENTITY % local.common.attrib "xmlns:xi  CDATA  #FIXED 'http://www.w3.org/2003/XInclude'">
<!ENTITY version SYSTEM "version.xml">
]>
<refentry id="PangoFcFontMap">
<refmeta>
<refentrytitle role="top_of_page" id="PangoFcFontMap.top_of_page">PangoFcFontMap</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>PANGO Library</refmiscinfo>
</refmeta>
<refnamediv>
<refname>PangoFcFontMap</refname>
<refpurpose>Base fontmap class for Fontconfig-based backends</refpurpose>
</refnamediv>

<refsect1 id="PangoFcFontMap.functions" role="functions_proto">
<title role="functions_proto.title">Functions</title>
<informaltable pgwide="1" frame="none">
<tgroup cols="2">
<colspec colname="functions_return" colwidth="150px"/>
<colspec colname="functions_name"/>
<tbody>
<row><entry role="function_type"><link linkend="PangoFcDecoder"><returnvalue>PangoFcDecoder</returnvalue></link>&#160;*
</entry><entry role="function_name"><phrase role="c_punctuation">(</phrase><link linkend="PangoFcDecoderFindFunc">*PangoFcDecoderFindFunc</link><phrase role="c_punctuation">)</phrase>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="pango-fc-font-map-add-decoder-find-func">pango_fc_font_map_add_decoder_find_func</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="PangoFcDecoder"><returnvalue>PangoFcDecoder</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="pango-fc-font-map-find-decoder">pango_fc_font_map_find_decoder</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="pango-fc-font-map-cache-clear">pango_fc_font_map_cache_clear</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="pango-fc-font-map-config-changed">pango_fc_font_map_config_changed</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="pango-fc-font-map-set-config">pango_fc_font_map_set_config</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="FcConfig"><returnvalue>FcConfig</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="pango-fc-font-map-get-config">pango_fc_font_map_get_config</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="PangoFontDescription"><returnvalue>PangoFontDescription</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="pango-fc-font-description-from-pattern">pango_fc_font_description_from_pattern</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>

</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 id="PangoFcFontMap.other" role="other_proto">
<title role="other_proto.title">Types and Values</title>
<informaltable role="enum_members_table" pgwide="1" frame="none">
<tgroup cols="2">
<colspec colname="name" colwidth="150px"/>
<colspec colname="description"/>
<tbody>
<row><entry role="datatype_keyword"></entry><entry role="function_name"><link linkend="PangoFcFontMap-struct">PangoFcFontMap</link></entry></row>
<row><entry role="datatype_keyword"></entry><entry role="function_name"><link linkend="PangoFcFontMapClass">PangoFcFontMapClass</link></entry></row>
<row><entry role="define_keyword">#define</entry><entry role="function_name"><link linkend="PANGO-FC-FONT-FEATURES:CAPS">PANGO_FC_FONT_FEATURES</link></entry></row>
<row><entry role="define_keyword">#define</entry><entry role="function_name"><link linkend="PANGO-FC-GRAVITY:CAPS">PANGO_FC_GRAVITY</link></entry></row>
<row><entry role="define_keyword">#define</entry><entry role="function_name"><link linkend="PANGO-FC-VERSION:CAPS">PANGO_FC_VERSION</link></entry></row>
<row><entry role="define_keyword">#define</entry><entry role="function_name"><link linkend="PANGO-FC-PRGNAME:CAPS">PANGO_FC_PRGNAME</link></entry></row>
<row><entry role="define_keyword">#define</entry><entry role="function_name"><link linkend="PANGO-FC-FONT-VARIATIONS:CAPS">PANGO_FC_FONT_VARIATIONS</link></entry></row>

</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 id="PangoFcFontMap.object-hierarchy" role="object_hierarchy">
<title role="object_hierarchy.title">Object Hierarchy</title>
<screen>    <link linkend="GObject">GObject</link>
    <phrase role="lineart">&#9584;&#9472;&#9472;</phrase> <link linkend="PangoFontMap">PangoFontMap</link>
        <phrase role="lineart">&#9584;&#9472;&#9472;</phrase> PangoFcFontMap
            <phrase role="lineart">&#9500;&#9472;&#9472;</phrase> <link linkend="PangoFT2FontMap">PangoFT2FontMap</link>
            <phrase role="lineart">&#9584;&#9472;&#9472;</phrase> <link linkend="PangoXftFontMap">PangoXftFontMap</link>
</screen>
</refsect1>


<refsect1 id="PangoFcFontMap.description" role="desc">
<title role="desc.title">Description</title>
<para>PangoFcFontMap is a base class for font map implementations using the
Fontconfig and FreeType libraries. It is used in the</para>
<link linkend="pango-Xft-Fonts-and-Rendering">Xft</link> and
<link linkend="pango-FreeType-Fonts-and-Rendering">FreeType</link>
<para>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.</para>

</refsect1>
<refsect1 id="PangoFcFontMap.functions_details" role="details">
<title role="details.title">Functions</title>
<refsect2 id="PangoFcDecoderFindFunc" role="function">
<title>PangoFcDecoderFindFunc&#160;()</title>
<indexterm zone="PangoFcDecoderFindFunc"><primary>PangoFcDecoderFindFunc</primary></indexterm>
<programlisting language="C"><link linkend="PangoFcDecoder"><returnvalue>PangoFcDecoder</returnvalue></link>&#160;*
<phrase role="c_punctuation">(</phrase>*PangoFcDecoderFindFunc<phrase role="c_punctuation">)</phrase> (<parameter><link linkend="FcPattern"><type>FcPattern</type></link> *pattern</parameter>,
                           <parameter><link linkend="gpointer"><type>gpointer</type></link> user_data</parameter>);</programlisting>
<para>Callback function passed to <link linkend="pango-fc-font-map-add-decoder-find-func"><function>pango_fc_font_map_add_decoder_find_func()</function></link>.</para>
<refsect3 id="PangoFcDecoderFindFunc.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>pattern</para></entry>
<entry role="parameter_description"><para>a fully resolved <link linkend="FcPattern"><type>FcPattern</type></link> specifying the font on the system</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>user_data</para></entry>
<entry role="parameter_description"><para>user data passed to <link linkend="pango-fc-font-map-add-decoder-find-func"><function>pango_fc_font_map_add_decoder_find_func()</function></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="PangoFcDecoderFindFunc.returns" role="returns">
<title>Returns</title>
<para> a new reference to a custom decoder for this pattern,
or <link linkend="NULL:CAPS"><literal>NULL</literal></link> if the default decoder handling should be used.</para>
</refsect3></refsect2>
<refsect2 id="pango-fc-font-map-add-decoder-find-func" role="function" condition="since:1.6">
<title>pango_fc_font_map_add_decoder_find_func&#160;()</title>
<indexterm zone="pango-fc-font-map-add-decoder-find-func" role="1.6"><primary>pango_fc_font_map_add_decoder_find_func</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
pango_fc_font_map_add_decoder_find_func
                               (<parameter><link linkend="PangoFcFontMap"><type>PangoFcFontMap</type></link> *fcfontmap</parameter>,
                                <parameter><link linkend="PangoFcDecoderFindFunc"><type>PangoFcDecoderFindFunc</type></link> findfunc</parameter>,
                                <parameter><link linkend="gpointer"><type>gpointer</type></link> user_data</parameter>,
                                <parameter><link linkend="GDestroyNotify"><type>GDestroyNotify</type></link> dnotify</parameter>);</programlisting>
<para>This function saves a callback method in the <link linkend="PangoFcFontMap"><type>PangoFcFontMap</type></link> that
will be called whenever new fonts are created.  If the
function returns a <link linkend="PangoFcDecoder"><type>PangoFcDecoder</type></link>, that decoder will be used to
determine both coverage via a <link linkend="FcCharSet"><type>FcCharSet</type></link> and a one-to-one mapping of
characters to glyphs.  This will allow applications to have
application-specific encodings for various fonts.</para>
<refsect3 id="pango-fc-font-map-add-decoder-find-func.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>fcfontmap</para></entry>
<entry role="parameter_description"><para>The <link linkend="PangoFcFontMap"><type>PangoFcFontMap</type></link> to add this method to.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>findfunc</para></entry>
<entry role="parameter_description"><para>The <link linkend="PangoFcDecoderFindFunc"><type>PangoFcDecoderFindFunc</type></link> callback function</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>user_data</para></entry>
<entry role="parameter_description"><para>User data.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>dnotify</para></entry>
<entry role="parameter_description"><para>A <link linkend="GDestroyNotify"><type>GDestroyNotify</type></link> callback that will be called when the
fontmap is finalized and the decoder is released.</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><para role="since">Since: <link linkend="api-index-1.6">1.6</link></para></refsect2>
<refsect2 id="pango-fc-font-map-find-decoder" role="function" condition="since:1.26">
<title>pango_fc_font_map_find_decoder&#160;()</title>
<indexterm zone="pango-fc-font-map-find-decoder" role="1.26"><primary>pango_fc_font_map_find_decoder</primary></indexterm>
<programlisting language="C"><link linkend="PangoFcDecoder"><returnvalue>PangoFcDecoder</returnvalue></link>&#160;*
pango_fc_font_map_find_decoder (<parameter><link linkend="PangoFcFontMap"><type>PangoFcFontMap</type></link> *fcfontmap</parameter>,
                                <parameter><link linkend="FcPattern"><type>FcPattern</type></link> *pattern</parameter>);</programlisting>
<para>Finds the decoder to use for <parameter>pattern</parameter>
.  Decoders can be added to
a font map using <link linkend="pango-fc-font-map-add-decoder-find-func"><function>pango_fc_font_map_add_decoder_find_func()</function></link>.</para>
<refsect3 id="pango-fc-font-map-find-decoder.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>fcfontmap</para></entry>
<entry role="parameter_description"><para>The <link linkend="PangoFcFontMap"><type>PangoFcFontMap</type></link> to use.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>pattern</para></entry>
<entry role="parameter_description"><para>The <link linkend="FcPattern"><type>FcPattern</type></link> to find the decoder for.</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="pango-fc-font-map-find-decoder.returns" role="returns">
<title>Returns</title>
<para>a newly created <link linkend="PangoFcDecoder"><type>PangoFcDecoder</type></link>
object or <link linkend="NULL:CAPS"><literal>NULL</literal></link> if no decoder is set for <parameter>pattern</parameter>
. </para>
<para><emphasis role="annotation">[<acronym>transfer full</acronym>][<acronym>nullable</acronym>]</emphasis></para>
</refsect3><para role="since">Since: <link linkend="api-index-1.26">1.26</link></para></refsect2>
<refsect2 id="pango-fc-font-map-cache-clear" role="function" condition="since:1.4">
<title>pango_fc_font_map_cache_clear&#160;()</title>
<indexterm zone="pango-fc-font-map-cache-clear" role="1.4"><primary>pango_fc_font_map_cache_clear</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
pango_fc_font_map_cache_clear (<parameter><link linkend="PangoFcFontMap"><type>PangoFcFontMap</type></link> *fcfontmap</parameter>);</programlisting>
<para>Clear all cached information and fontsets for this font map;
this should be called whenever there is a change in the
output of the <link linkend="default-substitute"><function>default_substitute()</function></link> virtual function of the
font map, or if fontconfig has been reinitialized to new
configuration.</para>
<refsect3 id="pango-fc-font-map-cache-clear.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>fcfontmap</para></entry>
<entry role="parameter_description"><para>a <link linkend="PangoFcFontMap"><type>PangoFcFontMap</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><para role="since">Since: <link linkend="api-index-1.4">1.4</link></para></refsect2>
<refsect2 id="pango-fc-font-map-config-changed" role="function" condition="since:1.38">
<title>pango_fc_font_map_config_changed&#160;()</title>
<indexterm zone="pango-fc-font-map-config-changed" role="1.38"><primary>pango_fc_font_map_config_changed</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
pango_fc_font_map_config_changed (<parameter><link linkend="PangoFcFontMap"><type>PangoFcFontMap</type></link> *fcfontmap</parameter>);</programlisting>
<para>Informs font map that the fontconfig configuration (ie, FcConfig object)
used by this font map has changed.  This currently calls
<link linkend="pango-fc-font-map-cache-clear"><function>pango_fc_font_map_cache_clear()</function></link> which ensures that list of fonts, etc
will be regenerated using the updated configuration.</para>
<refsect3 id="pango-fc-font-map-config-changed.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>fcfontmap</para></entry>
<entry role="parameter_description"><para>a <link linkend="PangoFcFontMap"><type>PangoFcFontMap</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><para role="since">Since: <link linkend="api-index-1.38">1.38</link></para></refsect2>
<refsect2 id="pango-fc-font-map-set-config" role="function" condition="since:1.38">
<title>pango_fc_font_map_set_config&#160;()</title>
<indexterm zone="pango-fc-font-map-set-config" role="1.38"><primary>pango_fc_font_map_set_config</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
pango_fc_font_map_set_config (<parameter><link linkend="PangoFcFontMap"><type>PangoFcFontMap</type></link> *fcfontmap</parameter>,
                              <parameter><link linkend="FcConfig"><type>FcConfig</type></link> *fcconfig</parameter>);</programlisting>
<para>Set the FcConfig for this font map to use.  The default value
is <link linkend="NULL:CAPS"><literal>NULL</literal></link>, which causes Fontconfig to use its global "current config".
You can create a new FcConfig object and use this API to attach it
to a font map.</para>
<para>This is particularly useful for example, if you want to use application
fonts with Pango.  For that, you would create a fresh FcConfig, add your
app fonts to it, and attach it to a new Pango font map.</para>
<para>If <parameter>fcconfig</parameter>
 is different from the previous config attached to the font map,
<link linkend="pango-fc-font-map-config-changed"><function>pango_fc_font_map_config_changed()</function></link> is called.</para>
<para>This function acquires a reference to the FcConfig object; the caller
does NOT need to retain a reference.</para>
<refsect3 id="pango-fc-font-map-set-config.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>fcfontmap</para></entry>
<entry role="parameter_description"><para>a <link linkend="PangoFcFontMap"><type>PangoFcFontMap</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>fcconfig</para></entry>
<entry role="parameter_description"><para>a <link linkend="FcConfig"><type>FcConfig</type></link>, or <link linkend="NULL:CAPS"><literal>NULL</literal></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3><para role="since">Since: <link linkend="api-index-1.38">1.38</link></para></refsect2>
<refsect2 id="pango-fc-font-map-get-config" role="function" condition="since:1.38">
<title>pango_fc_font_map_get_config&#160;()</title>
<indexterm zone="pango-fc-font-map-get-config" role="1.38"><primary>pango_fc_font_map_get_config</primary></indexterm>
<programlisting language="C"><link linkend="FcConfig"><returnvalue>FcConfig</returnvalue></link>&#160;*
pango_fc_font_map_get_config (<parameter><link linkend="PangoFcFontMap"><type>PangoFcFontMap</type></link> *fcfontmap</parameter>);</programlisting>
<para>Fetches FcConfig attached to a font map.  See <link linkend="pango-fc-font-map-set-config"><function>pango_fc_font_map_set_config()</function></link>.</para>
<refsect3 id="pango-fc-font-map-get-config.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>fcfontmap</para></entry>
<entry role="parameter_description"><para>a <link linkend="PangoFcFontMap"><type>PangoFcFontMap</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="pango-fc-font-map-get-config.returns" role="returns">
<title>Returns</title>
<para>the <link linkend="FcConfig"><type>FcConfig</type></link> object attached to <parameter>fcfontmap</parameter>
, which
might be <link linkend="NULL:CAPS"><literal>NULL</literal></link>. </para>
<para><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></para>
</refsect3><para role="since">Since: <link linkend="api-index-1.38">1.38</link></para></refsect2>
<refsect2 id="pango-fc-font-description-from-pattern" role="function" condition="since:1.4">
<title>pango_fc_font_description_from_pattern&#160;()</title>
<indexterm zone="pango-fc-font-description-from-pattern" role="1.4"><primary>pango_fc_font_description_from_pattern</primary></indexterm>
<programlisting language="C"><link linkend="PangoFontDescription"><returnvalue>PangoFontDescription</returnvalue></link>&#160;*
pango_fc_font_description_from_pattern
                               (<parameter><link linkend="FcPattern"><type>FcPattern</type></link> *pattern</parameter>,
                                <parameter><link linkend="gboolean"><type>gboolean</type></link> include_size</parameter>);</programlisting>
<para>Creates a <link linkend="PangoFontDescription"><type>PangoFontDescription</type></link> that matches the specified
Fontconfig pattern as closely as possible. Many possible Fontconfig
pattern values, such as <link linkend="FC-RASTERIZER:CAPS"><literal>FC_RASTERIZER</literal></link> or <link linkend="FC-DPI:CAPS"><literal>FC_DPI</literal></link>, don't make sense in
the context of <link linkend="PangoFontDescription"><type>PangoFontDescription</type></link>, so will be ignored.</para>
<refsect3 id="pango-fc-font-description-from-pattern.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>pattern</para></entry>
<entry role="parameter_description"><para>a <link linkend="FcPattern"><type>FcPattern</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>include_size</para></entry>
<entry role="parameter_description"><para>if <link linkend="TRUE:CAPS"><literal>TRUE</literal></link>, the pattern will include the size from
the <parameter>pattern</parameter>
; otherwise the resulting pattern will be unsized.
(only <link linkend="FC-SIZE:CAPS"><literal>FC_SIZE</literal></link> is examined, not <link linkend="FC-PIXEL-SIZE:CAPS"><literal>FC_PIXEL_SIZE</literal></link>)</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="pango-fc-font-description-from-pattern.returns" role="returns">
<title>Returns</title>
<para> a new <link linkend="PangoFontDescription"><type>PangoFontDescription</type></link>. Free with
<link linkend="pango-font-description-free"><function>pango_font_description_free()</function></link>.</para>
</refsect3><para role="since">Since: <link linkend="api-index-1.4">1.4</link></para></refsect2>

</refsect1>
<refsect1 id="PangoFcFontMap.other_details" role="details">
<title role="details.title">Types and Values</title>
<refsect2 id="PangoFcFontMap-struct" role="struct">
<title>PangoFcFontMap</title>
<indexterm zone="PangoFcFontMap-struct"><primary>PangoFcFontMap</primary></indexterm>
<programlisting language="C">typedef struct _PangoFcFontMap PangoFcFontMap;</programlisting>
<para><link linkend="PangoFcFontMap"><type>PangoFcFontMap</type></link> 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 <link linkend="new-font"><function>new_font()</function></link> virtual function that creates an
instance deriving from <link linkend="PangoFcFont"><type>PangoFcFont</type></link>.</para>
</refsect2>
<refsect2 id="PangoFcFontMapClass" role="struct">
<title>PangoFcFontMapClass</title>
<indexterm zone="PangoFcFontMapClass"><primary>PangoFcFontMapClass</primary></indexterm>
<programlisting language="C">typedef struct _PangoFcFontMapClass PangoFcFontMapClass;</programlisting>
<para>Class structure for <link linkend="PangoFcFontMap"><type>PangoFcFontMap</type></link>.</para>
<refsect3 id="PangoFcFontMapClass.members" role="struct_members">
<title>Members</title>
<informaltable role="struct_members_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="struct_members_name" colwidth="300px"/>
<colspec colname="struct_members_description"/>
<colspec colname="struct_members_annotations" colwidth="200px"/>
<tbody>
</tbody></tgroup></informaltable>
</refsect3>
</refsect2>
<refsect2 id="PANGO-FC-FONT-FEATURES:CAPS" role="macro" condition="since:1.34">
<title>PANGO_FC_FONT_FEATURES</title>
<indexterm zone="PANGO-FC-FONT-FEATURES:CAPS" role="1.34"><primary>PANGO_FC_FONT_FEATURES</primary></indexterm>
<programlisting language="C">#define PANGO_FC_FONT_FEATURES "fontfeatures"
</programlisting>
<para>String representing a fontconfig property name that Pango reads from font
patterns to populate list of OpenType features to be enabled for the font
by default.</para>
<para>The property will have a number of string elements, each of which is the
OpenType feature tag of one feature to enable.</para>
<para>This is equivalent to FC_FONT_FEATURES in versions of fontconfig that have that.</para>
<para role="since">Since: <link linkend="api-index-1.34">1.34</link></para></refsect2>
<refsect2 id="PANGO-FC-GRAVITY:CAPS" role="macro" condition="since:1.20">
<title>PANGO_FC_GRAVITY</title>
<indexterm zone="PANGO-FC-GRAVITY:CAPS" role="1.20"><primary>PANGO_FC_GRAVITY</primary></indexterm>
<programlisting language="C">#define PANGO_FC_GRAVITY "pangogravity"
</programlisting>
<para>String representing a fontconfig property name that Pango sets on any
fontconfig pattern it passes to fontconfig if a <link linkend="PangoGravity"><type>PangoGravity</type></link> other
than <link linkend="PANGO-GRAVITY-SOUTH:CAPS"><literal>PANGO_GRAVITY_SOUTH</literal></link> is desired.</para>
<para>The property will have a <link linkend="PangoGravity"><type>PangoGravity</type></link> value as a string, like "east".
This can be used to write fontconfig configuration rules to choose
different fonts for horizontal and vertical writing directions.</para>
<para role="since">Since: <link linkend="api-index-1.20">1.20</link></para></refsect2>
<refsect2 id="PANGO-FC-VERSION:CAPS" role="macro" condition="since:1.20">
<title>PANGO_FC_VERSION</title>
<indexterm zone="PANGO-FC-VERSION:CAPS" role="1.20"><primary>PANGO_FC_VERSION</primary></indexterm>
<programlisting language="C">#define PANGO_FC_VERSION "pangoversion"
</programlisting>
<para>String representing a fontconfig property name that Pango sets on any
fontconfig pattern it passes to fontconfig.</para>
<para>The property will have an integer value equal to what
<link linkend="pango-version"><function>pango_version()</function></link> returns.
This can be used to write fontconfig configuration rules that only affect
certain pango versions (or only pango-using applications, or only
non-pango-using applications).</para>
<para role="since">Since: <link linkend="api-index-1.20">1.20</link></para></refsect2>
<refsect2 id="PANGO-FC-PRGNAME:CAPS" role="macro" condition="since:1.24">
<title>PANGO_FC_PRGNAME</title>
<indexterm zone="PANGO-FC-PRGNAME:CAPS" role="1.24"><primary>PANGO_FC_PRGNAME</primary></indexterm>
<programlisting language="C">#define PANGO_FC_PRGNAME "prgname"
</programlisting>
<para>String representing a fontconfig property name that Pango sets on any
fontconfig pattern it passes to fontconfig.</para>
<para>The property will have a string equal to what
<link linkend="g-get-prgname"><function>g_get_prgname()</function></link> returns.
This can be used to write fontconfig configuration rules that only affect
certain applications.</para>
<para>This is equivalent to FC_PRGNAME in versions of fontconfig that have that.</para>
<para role="since">Since: <link linkend="api-index-1.24">1.24</link></para></refsect2>
<refsect2 id="PANGO-FC-FONT-VARIATIONS:CAPS" role="macro">
<title>PANGO_FC_FONT_VARIATIONS</title>
<indexterm zone="PANGO-FC-FONT-VARIATIONS:CAPS"><primary>PANGO_FC_FONT_VARIATIONS</primary></indexterm>
<programlisting language="C">#define PANGO_FC_FONT_VARIATIONS "fontvariations"
</programlisting>
<para>String representing a fontconfig property name that Pango reads from font
patterns to populate list of OpenType font variations to be used for a font.</para>
<para>The property will have a string elements, each of which a comma-separated
list of OpenType axis setting of the form AXIS=VALUE.</para>
</refsect2>

</refsect1>
<refsect1 id="PangoFcFontMap.see-also">
<title>See Also</title>
<variablelist><varlistentry>
<term><link linkend="PangoFcFont"><type>PangoFcFont</type></link></term>
<listitem>The base class for fonts; creating a new
Fontconfig-based backend involves deriving from both
<link linkend="PangoFcFontMap"><type>PangoFcFontMap</type></link> and <link linkend="PangoFcFont"><type>PangoFcFont</type></link>.</listitem>
</varlistentry></variablelist>

</refsect1>

</refentry>
