(msymbol_is_managing_key): Extern it.
[m17n/m17n-lib.git] / src / font.h
index cb338f2..54c75d1 100644 (file)
@@ -187,9 +187,12 @@ struct MFontDriver
                  MGlyphString *gstring, MGlyph *from, MGlyph *to,
                  int reverse, MDrawRegion region);
 
-  /** Push to PLIST a list of fonts matching with FONT.  LANGUAGE, if
-      not Mnil, limits fonts to ones that support LANGUAGE.  */
-  void (*list) (MFrame *frame, MPlist *plist, MFont *font, MSymbol language);
+  /** Push to PLIST fonts matching with FONT.  LANGUAGE, if not Mnil,
+      limits fonts to ones that support LANGUAGE.  MAXNUM if greater
+      than 0 limits the number of listed fonts.  Return how many fonts
+      a listed.  */
+  int (*list) (MFrame *frame, MPlist *plist, MFont *font, MSymbol language,
+              int maxnum);
 };
 
 /** Initialize the members of FONT.  */
@@ -206,6 +209,10 @@ extern void mfont__flt_fini ();
 #include <ft2build.h>
 #include FT_FREETYPE_H
 
+#ifdef HAVE_FONTCONFIG
+#include <fontconfig/fontconfig.h>
+#endif
+
 #ifdef HAVE_OTF
 #include <otf.h>
 #endif /* HAVE_OTF */
@@ -223,6 +230,11 @@ typedef struct
 #ifdef HAVE_OTF
   OTF *otf;
 #endif /* HAVE_OTF */
+#ifdef HAVE_FONTCONFIG
+  FcLangSet *langset;
+#else
+  void *langset;
+#endif
   void *extra_info;            /* Xft uses this member.  */
 } MFTInfo;
 
@@ -284,6 +296,8 @@ extern void mfont__set_spec (MFont *font,
 extern int mfont__parse_name_into_font (char *name, MSymbol format,
                                        MFont *font);
 
+extern MPlist *mfont__encoding_list (void);
+
 extern unsigned mfont__flt_encode_char (MSymbol layouter_name, int c);
 
 extern int mfont__flt_run (MGlyphString *gstring, int from, int to,