كيف تعرف ما إذا كان الخط هو Monospace باستخدام GTK و Pango؟
سؤال
انا املك PangoFontDescription
وأريد أن أعرف ما إذا كان يصف خط Monospace.
لقد رأيت الوظيفة pango_font_family_is_monospace()
في وثائق Pango API ولكن بعد عدة ساعات من الحيرة ، لا يزال من غير الواضح بالنسبة لي ما هي العلاقات بين PangoFontFamily
, PangoFontMap
, PangoFont
, PangoFontset
, PangoContext
, ، و PangoFontDescription
وما إذا كنت بحاجة إلى أي أو كل هذه لتحقيق ما أريد. حتى الآن، PangoFontDescription
هو الجزء الوحيد من Pango الذي كنت بحاجة لاستخدامه ، حيث تمكنت GTK من تجريد كل شيء آخر بعيدا.
هل يمكن لأي شخص فعل هذا قبل مساعدتي؟
المحلول
يمكنك استخدام pango_font_description_get_family()
وبعد تلك المكالمة pango_font_family_is_monospace()
على النتيجة.
تعديل:
حيث pango_font_description_get_family()
إرجاع اسم فقط يمكنك القيام بذلك: اتصل pango_context_list_families()
والبحث عن كائن عائلي له هذا الاسم. بعد ذلك ، اتصل pango_font_family_is_monospace()
على الكائن الذي تم العثور عليه. لست متأكدًا مما يجب فعله إذا لم يتم العثور على كائن عائلي بهذا الاسم.