Elementary Fonts
Elementary

These are functions dealing with font rendering, selection and the like for Elementary applications. More...

## Data Structures

struct | _Elm_Font_Properties

## Typedefs

typedef struct _Elm_Font_Properties | Elm_Font_Properties

## Functions

Eina_List * | elm_config_text_classes_list_get (void)
| Get Elementary's list of supported text classes.
void | elm_config_text_classes_list_free (Eina_List *list)
| Free Elementary's list of supported text classes.
const Eina_List * | elm_config_font_overlay_list_get (void)
| Get Elementary's list of font overlays, set with elm_config_font_overlay_set().
void | elm_config_font_overlay_set (const char *text_class, const char *font, Evas_Font_Size size)
| Set a font overlay for a given Elementary text class.
void | elm_config_font_overlay_unset (const char *text_class)
| Unset a font overlay for a given Elementary text class.
void | elm_config_font_overlay_apply (void)
| Apply the changes made with elm_config_font_overlay_set() and elm_config_font_overlay_unset() on the current Elementary window.
void | elm_config_font_hint_type_set (int type)
| Apply the specified font hinting type.
Elm_Font_Properties * | elm_font_properties_get (const char *font)
| Translate a font (family) name string in fontconfig's font names syntax into an `Elm_Font_Properties` struct.
void | elm_font_properties_free (Elm_Font_Properties *efp)
| Free font properties return by elm_font_properties_get().
char * | elm_font_fontconfig_name_get (const char *name, const char *style)
| Translate a font name, bound to a style, into fontconfig's font names syntax.
void | elm_font_fontconfig_name_free (char *name)
| Free the font string return by elm_font_fontconfig_name_get().
Eina_Hash * | elm_font_available_hash_add (Eina_List *list)
| Create a font hash table of available system fonts.
void | elm_font_available_hash_del (Eina_Hash *hash)
| Free the hash returned by elm_font_available_hash_add().
EINA_DEPRECATED void | elm_font_overlay_all_apply (void)
| Apply the changes made with elm_font_overlay_set() and elm_font_overlay_unset() on all Elementary application windows.

## Detailed Description

These are functions dealing with font rendering, selection and the like for Elementary applications.

One might fetch which system fonts are there to use and set custom fonts for individual classes of UI items containing text (text classes).

## Function Documentation

## elm_config_text_classes_list_get()

Eina_List * elm_config_text_classes_list_get | ( | void |  | ) |

Get Elementary's list of supported text classes.

Returns
  The text classes list, with `Elm_Text_Class` blobs as data.

Release the list with elm_text_classes_list_free().

## elm_config_text_classes_list_free()

void elm_config_text_classes_list_free | ( | Eina_List * | list | ) |

Free Elementary's list of supported text classes.

Parameters

  list | The text classes list.

See also
  elm_config_text_classes_list_get().

## elm_config_font_overlay_list_get()

const Eina_List * elm_config_font_overlay_list_get | ( | void |  | ) |

Get Elementary's list of font overlays, set with elm_config_font_overlay_set().

Returns
  The font overlays list, with `Elm_Font_Overlay` blobs as data.

For each text class, one can set a font overlay for it, overriding the default font properties for that class coming from the theme in use. There is no need to free this list.

See also
  elm_config_font_overlay_set() and elm_config_font_overlay_unset().

## elm_config_font_overlay_set()

void elm_config_font_overlay_set | ( | const char * | text_class,
|  | const char * | font,
|  | Evas_Font_Size | size )

Set a font overlay for a given Elementary text class.

Parameters

  text_class | Text class name
  font | Font name and style string
  size | Font size.

Note
  If the `size` is lower than zero, the value will be the amount of the size percentage. ex) -50: half of the current size, -100: current size, -10: 1/10 size.

`font` has to be in the format returned by elm_font_fontconfig_name_get().

See also
  elm_config_font_overlay_list_get()
  elm_config_font_overlay_unset()
  edje_object_text_class_set()

References EINA_SAFETY_ON_NULL_RETURN, and EINA_TRUE.

## elm_config_font_overlay_unset()

void elm_config_font_overlay_unset | ( | const char * | text_class | ) |

Unset a font overlay for a given Elementary text class.

Parameters

  text_class | Text class name

This will bring back text elements belonging to text class `text_class` back to their default font settings.

References EINA_SAFETY_ON_NULL_RETURN, and EINA_TRUE.

## elm_config_font_overlay_apply()

void elm_config_font_overlay_apply | ( | void |  | ) |

Apply the changes made with elm_config_font_overlay_set() and elm_config_font_overlay_unset() on the current Elementary window.

This applies all font overlays set to all objects in the UI.

## elm_config_font_hint_type_set()

void elm_config_font_hint_type_set | ( | int | type | ) |

Apply the specified font hinting type.

EVAS_FONT_HINTING_NONE < No font hinting EVAS_FONT_HINTING_AUTO < Automatic font hinting EVAS_FONT_HINTING_BYTECODE < Bytecode font hinting

Parameters

  type | The font hinting type

This applies font hint changes to all windows of the current application.

Since
  1.13

References EINA_LIST_FOREACH, EINA_TRUE, EVAS_FONT_HINTING_AUTO, EVAS_FONT_HINTING_BYTECODE, EVAS_FONT_HINTING_NONE, evas_font_hinting_set(), and evas_object_evas_get().

## elm_font_properties_get()

Elm_Font_Properties * elm_font_properties_get | ( | const char * | font | ) |

Translate a font (family) name string in fontconfig's font names syntax into an `Elm_Font_Properties` struct.

Parameters

  font | The font name and styles string

Returns
  the font properties struct

Note
  The reverse translation can be achieved with elm_font_fontconfig_name_get(), for one style only (single font instance, not family).

References EINA_SAFETY_ON_NULL_RETURN_VAL.

## elm_font_properties_free()

void elm_font_properties_free | ( | Elm_Font_Properties * | efp | ) |

Free font properties return by elm_font_properties_get().

Parameters

  efp | the font properties struct

References EINA_LIST_FREE, EINA_SAFETY_ON_NULL_RETURN, and eina_stringshare_del().

## elm_font_fontconfig_name_get()

char * elm_font_fontconfig_name_get | ( | const char * | name,
|  | const char * | style )

Translate a font name, bound to a style, into fontconfig's font names syntax.

Parameters

  name | The font (family) name
  style | The given style (may be `NULL`)

Returns
  the font name and style string

Note
  The reverse translation can be achieved with elm_font_properties_get(), for one style only (single font instance, not family).

References EINA_SAFETY_ON_NULL_RETURN_VAL, and eina_stringshare_add().

## elm_font_fontconfig_name_free()

void elm_font_fontconfig_name_free | ( | char * | name | ) |

Free the font string return by elm_font_fontconfig_name_get().

Parameters

  name | the font properties struct

References eina_stringshare_del().

## elm_font_available_hash_add()

Eina_Hash * elm_font_available_hash_add | ( | Eina_List * | list | ) |

Create a font hash table of available system fonts.

One must call it with `list` being the return value of evas_font_available_list(). The hash will be indexed by font (family) names, being its values `Elm_Font_Properties` blobs.

Parameters

  list | The list of available system fonts, as returned by evas_font_available_list().

Returns
  the font hash.

Note
  The user is supposed to get it populated at least with 3 default font families (Sans, Serif, Monospace), which should be present on most systems.

References EINA_LIST_FOREACH.

## elm_font_available_hash_del()

void elm_font_available_hash_del | ( | Eina_Hash * | hash | ) |

Free the hash returned by elm_font_available_hash_add().

Parameters

  hash | the hash to be freed.

## elm_font_overlay_all_apply()

EINA_DEPRECATED void elm_font_overlay_all_apply | ( | void |  | ) |

Apply the changes made with elm_font_overlay_set() and elm_font_overlay_unset() on all Elementary application windows.

This applies all font overlays set to all objects in the UI.

Deprecated
  Use elm_font_overlay_apply and elm_config_all_flush()

References EINA_DEPRECATED.