Как определить, является ли шрифт моноширинным с использованием GTK и Pango? - PullRequest
3 голосов
/ 25 апреля 2010

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

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

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

1 Ответ

3 голосов
/ 25 апреля 2010

Вы можете использовать pango_font_description_get_family() и после этого вызвать pango_font_family_is_monospace() для результата.

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

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

...