Bernhard Fischer:
[rrdtool.git] / src / rrd_afm.h
1 /****************************************************************************
2  * RRDtool 1.2.23  Copyright by Tobi Oetiker, 1997-2007
3  ****************************************************************************
4  * rrd_afm.h  Parsing afm tables to find width of strings.
5  ****************************************************************************/
6
7 #ifndef  RRD_AFM_H
8 #define RRD_AFM_H
9
10 #include <stdlib.h>
11
12 #ifdef HAVE_MBSTOWCS
13 #define afm_char wchar_t
14 #else
15 #define afm_char unsigned char
16 #endif
17 /*
18    If the font specified by the name parameter in the routes below
19    is not found
20    (because it is not compiled into rrd_afm_data.c by compile_afm.pl)
21    the font specified by RRD_AFM_DEFAULT_FONT will be used.
22    If it is not installed, it uses the first font compiled
23    into rrd_afm_data.c
24    So they will always use some font.
25 */
26
27 #define RRD_AFM_DEFAULT_FONT "Courier"
28
29 /* measure width of a text string */
30 /* fontname can be full name or postscript name */
31 double    afm_get_text_width(
32     double start,
33     const char *font,
34     double size,
35     double tabwidth,
36     const char *text);
37 double    afm_get_text_width_wide(
38     double start,
39     const char *font,
40     double size,
41     double tabwidth,
42     const afm_char * text);
43
44 double    afm_get_ascender(
45     const char *font,
46     double size);
47 double    afm_get_descender(
48     const char *font,
49     double size);
50
51 /* get postscript name from fullname or postscript name */
52 const char *afm_get_font_postscript_name(
53     const char *font);
54 const char *afm_get_font_name(
55     const char *font);
56
57 /* cc -E -dM /dev/null */
58 #ifdef __APPLE__
59 /* need charset conversion from macintosh to unicode. */
60 extern const unsigned char afm_mac2iso[128];
61
62 #define afm_fix_osx_charset(c) \
63         ( (c) >= 128 && (c) <= 255 ? afm_mac2iso[(c) - 128] : (c))
64 #else
65 /* UNSAFE macro */
66 #define afm_fix_osx_charset(x) (x)
67 #endif
68
69 #endif