1 #ifndef __tkgate_fonts_h
2 #define __tkgate_fonts_h
3 
4 #include <X11/Xlib.h>
5 
6 /*
7  * Font family codes
8  */
9 typedef enum _FontFamily_t {
10 	FF_COURIER = 0,
11 #define FF_COURIER	FF_COURIER
12 	FF_HELVETICA = 1,
13 #define FF_HELVETICA	FF_HELVETICA
14 	FF_TIMES = 2,
15 #define FF_TIMES	FF_TIMES
16 	FF_SYMBOL = 3,
17 #define FF_SYMBOL	FF_SYMBOL
18 	FF_NOKANJI_MAX = 4,
19 #define FF_NOKANJI_MAX	FF_NOKANJI_MAX
20 #define FF_KANJI	4
21 	FF_MAX = 5
22 #define FF_MAX		FF_MAX
23 } fontfamily_t;
24 
25 /*
26  * Font property codes
27  */
28 typedef enum _FontProperty_t {
29 	FP_ROMAN = 0,
30 #define FP_ROMAN	FP_ROMAN
31 	FP_BOLD = 1,
32 #define FP_BOLD		FP_BOLD
33 	FP_ITALIC = 2,
34 #define FP_ITALIC	FP_ITALIC
35 	FP_MAX = 4
36 #define FP_MAX		FP_MAX
37 } fontprop_t;
38 
39 /*
40  * Font size codes
41  */
42 typedef enum _FontSize_t {
43 	FS_TINY = 0,
44 #define FS_TINY		FS_TINY
45 	FS_VSMALL,
46 #define FS_VSMALL	FS_VSMALL
47 	FS_SMALL,
48 #define FS_SMALL	FS_SMALL
49 	FS_NORMAL,
50 #define FS_NORMAL	FS_NORMAL
51 	FS_LARGE,
52 #define FS_LARGE	FS_LARGE
53 	FS_HUGE,
54 #define FS_HUGE		FS_HUGE
55 	FS_XHUGE,
56 #define FS_XHUGE	FS_XHUGE
57 	FS_MAX
58 #define FS_MAX		FS_MAX
59 } fontsize_t;
60 
61 typedef struct _GateFont {
62 	fontfamily_t	family;
63 	fontprop_t	prop;
64 	fontsize_t	size;
65 } GateFont;
66 
67 typedef struct _GateFontMetrics {
68 	int	ascent;
69 	int	descent;
70 } GateFontMetrics;
71 
72 XFontStruct *_GetXFont(fontfamily_t ff,fontprop_t fp,fontsize_t fs,int zoom);
73 XFontStruct *GetXFont(GateFont,int zoom);
74 XFontStruct **GetXFonts(fontfamily_t,fontprop_t,fontsize_t);
75 void UnloadAllFonts();
76 
77 int getKanjiFontSize(int fs);
78 int getFontSize(int fs);
79 const char *getFontFamilyName(fontfamily_t ff);
80 
81 #endif
82