#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <X11/fonts/fntfilst.h>
#include <X11/fonts/bitmap.h>
#include <X11/fonts/fontmod.h>
static int
FontFileCheckOpenFont (pointer client, FontPathElementPtr fpe, Mask flags,
char *name, int namelen,
fsBitmapFormat format, fsBitmapFormatMask fmask,
XID id, FontPtr *pFont, char **aliasName,
FontPtr non_cachable_font)
{
if (XpClientIsBitmapClient(client))
return (FontFileOpenFont (client, fpe, flags, name, namelen, format,
fmask, id, pFont, aliasName, non_cachable_font));
return BadFontName;
}
static int
FontFileCheckListFonts (pointer client, FontPathElementPtr fpe,
char *pat, int len, int max, FontNamesPtr names)
{
if (XpClientIsBitmapClient(client))
return FontFileListFonts (client, fpe, pat, len, max, names);
return BadFontName;
}
static int
FontFileCheckStartListFontsWithInfo(pointer client, FontPathElementPtr fpe,
char *pat, int len, int max,
pointer *privatep)
{
if (XpClientIsBitmapClient(client))
return FontFileStartListFontsWithInfo(client, fpe, pat, len,
max, privatep);
return BadFontName;
}
static int
FontFileCheckListNextFontWithInfo(pointer client, FontPathElementPtr fpe,
char **namep, int *namelenp,
FontInfoPtr *pFontInfo,
int *numFonts, pointer private)
{
if (XpClientIsBitmapClient(client))
return FontFileListNextFontWithInfo(client, fpe, namep, namelenp,
pFontInfo, numFonts, private);
return BadFontName;
}
static int
FontFileCheckStartListFontsAndAliases(pointer client, FontPathElementPtr fpe,
char *pat, int len, int max,
pointer *privatep)
{
if (XpClientIsBitmapClient(client))
return FontFileStartListFontsAndAliases(client, fpe, pat, len,
max, privatep);
return BadFontName;
}
static int
FontFileCheckListNextFontOrAlias(pointer client, FontPathElementPtr fpe,
char **namep, int *namelenp,
char **resolvedp, int *resolvedlenp,
pointer private)
{
if (XpClientIsBitmapClient(client))
return FontFileListNextFontOrAlias(client, fpe, namep, namelenp,
resolvedp, resolvedlenp, private);
return BadFontName;
}
static const FontModule builtinFontModuleList[] = {
#ifdef XFONT_SPEEDO
{
SpeedoRegisterFontFileFunctions,
"speedo",
NULL
},
#endif
#ifdef XFONT_TYPE1
{
Type1RegisterFontFileFunctions,
"type1",
NULL
},
#endif
#ifdef XFONT_FREETYPE
{
FreeTypeRegisterFontFileFunctions,
"freetype",
NULL
},
#endif
{ NULL, NULL, NULL }
};
void
FontFileCheckRegisterFpeFunctions (void)
{
FontModule *fmlist = builtinFontModuleList;
#ifdef XFONT_BITMAP
BitmapRegisterFontFileFunctions ();
#endif
#ifdef LOADABLEFONTS
if (FontModuleList) {
fmlist = FontModuleList;
}
#endif
if (fmlist) {
int i;
for (i = 0; fmlist[i].name; i++) {
if (fmlist[i].initFunc) {
fmlist[i].initFunc();
}
}
}
RegisterFPEFunctions(FontFileNameCheck,
FontFileInitFPE,
FontFileFreeFPE,
FontFileResetFPE,
FontFileCheckOpenFont,
FontFileCloseFont,
FontFileCheckListFonts,
FontFileCheckStartListFontsWithInfo,
FontFileCheckListNextFontWithInfo,
NULL,
NULL,
NULL,
FontFileCheckStartListFontsAndAliases,
FontFileCheckListNextFontOrAlias,
FontFileEmptyBitmapSource);
}