1 /*
2  * Copyright © 2001 Keith Packard
3  *
4  * Permission to use, copy, modify, distribute, and sell this software and its
5  * documentation for any purpose is hereby granted without fee, provided that
6  * the above copyright notice appear in all copies and that both that
7  * copyright notice and this permission notice appear in supporting
8  * documentation, and that the name of Keith Packard not be used in
9  * advertising or publicity pertaining to distribution of the software without
10  * specific, written prior permission.  Keith Packard makes no
11  * representations about the suitability of this software for any purpose.  It
12  * is provided "as is" without express or implied warranty.
13  *
14  * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
15  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
16  * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
17  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
18  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
19  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
20  * PERFORMANCE OF THIS SOFTWARE.
21  */
22 
23 #ifndef _XFTCOMPAT_H_
24 #define _XFTCOMPAT_H_
25 #include <X11/Xfuncproto.h>
26 
27 /*
28  * Compatibility definitions -- map Fc names to Xft names
29  */
30 
31 typedef FcChar8	    XftChar8;
32 typedef FcChar16    XftChar16;
33 typedef FcChar32    XftChar32;
34 
35 #define XFT_FAMILY	FC_FAMILY
36 #define XFT_STYLE	FC_STYLE
37 #define XFT_SLANT	FC_SLANT
38 #define XFT_WEIGHT	FC_WEIGHT
39 #define XFT_SIZE	FC_SIZE
40 #define XFT_PIXEL_SIZE	FC_PIXEL_SIZE
41 #define XFT_SPACING	FC_SPACING
42 #define XFT_FOUNDRY	FC_FOUNDRY
43 #define XFT_ANTIALIAS	FC_ANTIALIAS
44 #define XFT_FILE	FC_FILE
45 #define XFT_INDEX	FC_INDEX
46 #define XFT_RASTERIZER	FC_RASTERIZER
47 #define XFT_OUTLINE	FC_OUTLINE
48 #define XFT_SCALABLE	FC_SCALABLE
49 #define XFT_RGBA	FC_RGBA
50 
51 /* defaults from resources */
52 #define XFT_SCALE	FC_SCALE
53 #define XFT_MINSPACE	FC_MINSPACE
54 #define XFT_DPI		FC_DPI
55 
56 /* specific to FreeType rasterizer */
57 #define XFT_CHAR_WIDTH	FC_CHAR_WIDTH
58 #define XFT_CHAR_HEIGHT	FC_CHAR_HEIGHT
59 #define XFT_MATRIX	FC_MATRIX
60 
61 #define XFT_WEIGHT_LIGHT	FC_WEIGHT_LIGHT
62 #define XFT_WEIGHT_MEDIUM	FC_WEIGHT_MEDIUM
63 #define XFT_WEIGHT_DEMIBOLD	FC_WEIGHT_DEMIBOLD
64 #define XFT_WEIGHT_BOLD		FC_WEIGHT_BOLD
65 #define XFT_WEIGHT_BLACK	FC_WEIGHT_BLACK
66 
67 #define XFT_SLANT_ROMAN		FC_SLANT_ROMAN
68 #define XFT_SLANT_ITALIC	FC_SLANT_ITALIC
69 #define XFT_SLANT_OBLIQUE	FC_SLANT_OBLIQUE
70 
71 #define XFT_PROPORTIONAL	FC_PROPORTIONAL
72 #define XFT_MONO		FC_MONO
73 #define XFT_CHARCELL		FC_CHARCELL
74 
75 #define XFT_RGBA_UNKNOWN	FC_RGBA_UNKNOWN
76 #define XFT_RGBA_RGB		FC_RGBA_RGB
77 #define XFT_RGBA_BGR		FC_RGBA_BGR
78 #define XFT_RGBA_VRGB		FC_RGBA_VRGB
79 #define XFT_RGBA_VBGR		FC_RGBA_VBGR
80 #define XFT_RGBA_NONE		FC_RGBA_NONE
81 
82 /*
83  * Old constants
84  */
85 #define XFT_ENCODING		"encoding"
86 
87 typedef FcType XftType;
88 
89 typedef FcMatrix XftMatrix;
90 
91 #define XftMatrixInit(m)	FcMatrixInit(m)
92 
93 typedef FcResult    XftResult;
94 
95 #define XftResultMatch		FcResultMatch
96 #define XftResultNoMatch	FcResultNoMatch
97 #define XftResultTypeMismatch	FcResultTypeMismatch
98 #define XftResultNoId		FcResultNoId
99 
100 typedef FcValue		XftValue;
101 typedef FcPattern	XftPattern;
102 typedef FcFontSet	XftFontSet;
103 typedef FcObjectSet	XftObjectSet;
104 
105 #define XftGlyphExists		XftCharExists
106 
107 #define XftObjectSetCreate	FcObjectSetCreate
108 #define XftObjectSetAdd		FcObjectSetAdd
109 #define XftObjectSetDestroy	FcObjectSetDestroy
110 #define XftObjectSetVaBuild	FcObjectSetVaBuild
111 #define XftObjectSetBuild	FcObjectSetBuild
112 
113 #define XftFontSetMatch		FcFontSetMatch
114 #define XftFontSetDestroy	FcFontSetDestroy
115 
116 #define XftMatrixEqual		FcMatrixEqual
117 #define XftMatrixMultiply	FcMatrixMultiply
118 #define XftMatrixRotate		FcMatrixRotate
119 #define XftMatrixScale		FcMatrixScale
120 #define XftMatrixShear		FcMatrixShear
121 
122 #define XftPatternCreate	FcPatternCreate
123 #define XftPatternDuplicate	FcPatternDuplicate
124 #define XftValueDestroy		FcValueDestroy
125 #define XftValueListDestroy	FcValueListDestroy
126 #define XftPatternDestroy	FcPatternDestroy
127 #define XftPatternFind		FcPatternFind
128 #define XftPatternAdd		FcPatternAdd
129 #define XftPatternGet		FcPatternGet
130 #define XftPatternDel		FcPatternDel
131 #define XftPatternAddInteger	FcPatternAddInteger
132 #define XftPatternAddDouble	FcPatternAddDouble
133 #define XftPatternAddString(p,e,s)	FcPatternAddString(p,e,(FcChar8 *)(s))
134 #define XftPatternAddMatrix	FcPatternAddMatrix
135 #define XftPatternAddBool	FcPatternAddBool
136 #define XftPatternGetInteger	FcPatternGetInteger
137 #define XftPatternGetDouble	FcPatternGetDouble
138 #define XftPatternGetString(p,e,i,n)	FcPatternGetString(p,e,i,(FcChar8 **) (n))
139 #define XftPatternGetMatrix	FcPatternGetMatrix
140 #define XftPatternGetBool	FcPatternGetBool
141 #define XftPatternVaBuild	FcPatternVaBuild
142 #define XftPatternBuild		FcPatternBuild
143 
144 #define XftUtf8ToUcs4		FcUtf8ToUcs4
145 #define XftUtf8Len		FcUtf8Len
146 
147 #define XftTypeVoid	FcTypeVoid
148 #define XftTypeInteger	FcTypeInteger
149 #define XftTypeDouble	FcTypeDouble
150 #define XftTypeString	FcTypeString
151 #define XftTypeBool	FcTypeBool
152 #define XftTypeMatrix	FcTypeMatrix
153 
154 #define XftConfigSubstitute(p) FcConfigSubstitute (0, p, FcMatchPattern)
155 
156 _XFUNCPROTOBEGIN
157 
158 FcBool
159 XftNameUnparse (XftPattern *pat, char *dest, int len);
160 
161 _XFUNCPROTOEND
162 
163 #endif /* _XFTCOMPAT_H_ */
164