Как определить, является ли шрифт моноширинным с использованием GTK и Pango?

У меня есть PangoFontDescription и я хочу знать, описывает ли он моноширинный шрифт.

Я видел функцию pango_font_family_is_monospace() в документации Pango API, но после нескольких часов недоумения мне все еще не ясно, каковы отношения между PangoFontFamily, PangoFontMap, PangoFont, PangoFontset, PangoContext, а также PangoFontDescription и нужно ли мне это или все из них, чтобы достичь того, чего я хочу. До сих пор, PangoFontDescription это единственная часть Pango, которую мне нужно было использовать, поскольку GTK удается абстрагироваться от всего остального.

Может ли кто-нибудь, кто сделал это раньше, помочь мне?

1 ответ

Решение

Ты можешь использовать pango_font_description_get_family() и после этого звонка pango_font_family_is_monospace() на результат.

РЕДАКТИРОВАТЬ:

поскольку pango_font_description_get_family() возвращает только имя, которое вы можете сделать это: вызов pango_context_list_families() и найдите семейный объект с таким именем. После этого позвоните pango_font_family_is_monospace() на найденный объект. Не уверен, что делать, если не найдено семейного объекта с таким именем.

Другие вопросы по тегам