Xinqi Bao's Git
1 /* See LICENSE file for copyright and license details. */
5 #define MAX(a, b) ((a) > (b) ? (a) : (b))
8 initfont(DC
*dc
, const char *fontstr
) {
9 char *def
, **missing
= NULL
;
12 if(!fontstr
|| !*fontstr
)
13 eprint("cannot load null font\n");
14 dc
->font
.set
= XCreateFontSet(dc
->dpy
, fontstr
, &missing
, &n
, &def
);
16 XFreeStringList(missing
);
20 dc
->font
.ascent
= dc
->font
.descent
= 0;
21 n
= XFontsOfFontSet(dc
->font
.set
, &xfonts
, &font_names
);
22 for(i
= 0; i
< n
; i
++) {
23 dc
->font
.ascent
= MAX(dc
->font
.ascent
, (*xfonts
)->ascent
);
24 dc
->font
.descent
= MAX(dc
->font
.descent
, (*xfonts
)->descent
);
29 if(!(dc
->font
.xfont
= XLoadQueryFont(dc
->dpy
, fontstr
))
30 && !(dc
->font
.xfont
= XLoadQueryFont(dc
->dpy
, "fixed")))
31 eprint("cannot load font '%s'\n", fontstr
);
32 dc
->font
.ascent
= dc
->font
.xfont
->ascent
;
33 dc
->font
.descent
= dc
->font
.xfont
->descent
;
35 dc
->font
.height
= dc
->font
.ascent
+ dc
->font
.descent
;