1 /* Control codes (used internally when rendering a label, i.e. a
2    user-specified text string).  The header file is #include'd by
3    g_cntrlify.c, and g_alabel_her.c (which renders labels in Hershey
4    fonts), and by the generic renderer g_alabel.c. */
5 
6 /* the order of these must agree with the order in g_cntrlify.h */
7 #define C_BEGIN_SUPERSCRIPT 0
8 #define C_END_SUPERSCRIPT 1
9 #define C_BEGIN_SUBSCRIPT 2
10 #define C_END_SUBSCRIPT 3
11 #define C_PUSH_LOCATION 4
12 #define C_POP_LOCATION 5
13 #define C_RIGHT_ONE_EM 6
14 #define C_RIGHT_HALF_EM 7
15 #define C_RIGHT_QUARTER_EM 8
16 #define C_RIGHT_SIXTH_EM 9
17 #define C_RIGHT_EIGHTH_EM 10
18 #define C_RIGHT_TWELFTH_EM 11
19 #define C_LEFT_ONE_EM 12
20 #define C_LEFT_HALF_EM 13
21 #define C_LEFT_QUARTER_EM 14
22 #define C_LEFT_SIXTH_EM 15
23 #define C_LEFT_EIGHTH_EM 16
24 #define C_LEFT_TWELFTH_EM 17
25 
26 #define C_RIGHT_RADICAL_SHIFT 254	/* for \rn in PS and PCL fonts */
27 #define C_LEFT_RADICAL_SHIFT 255
28 #define PS_RADICAL_WIDTH 0.515	/* shifts to make radical, radicalex line up */
29 #define PCL_RADICAL_WIDTH 0.080
30 #define RADICALEX 96
31 
32 /* flags in each unsigned short in a `controlified' text string (mutually
33    exclusive) */
34 #define CONTROL_CODE 0x8000
35 #define RAW_HERSHEY_GLYPH 0x4000
36 #define RAW_ORIENTAL_HERSHEY_GLYPH 0x2000
37 
38 /* masks for extracting, from an unsigned short in a controlified text string,
39    (1) the font, if none of the above flags is set, or (2) the raw glyph
40    number, if either of the latter two flags is set */
41 #define ONE_BYTE 0xff
42 #define FONT_SHIFT 8
43 #define FONT_SPEC (ONE_BYTE << FONT_SHIFT)
44 #define GLYPH_SPEC 0x1fff
45