Revert "dtudcfonted, dtudcexch: delete from repository"
[oweals/cde.git] / cde / programs / dtudcfonted / libfal / include / pcf.h
1 /*
2  * CDE - Common Desktop Environment
3  *
4  * Copyright (c) 1993-2012, The Open Group. All rights reserved.
5  *
6  * These libraries and programs are free software; you can
7  * redistribute them and/or modify them under the terms of the GNU
8  * Lesser General Public License as published by the Free Software
9  * Foundation; either version 2 of the License, or (at your option)
10  * any later version.
11  *
12  * These libraries and programs are distributed in the hope that
13  * they will be useful, but WITHOUT ANY WARRANTY; without even the
14  * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15  * PURPOSE. See the GNU Lesser General Public License for more
16  * details.
17  *
18  * You should have received a copy of the GNU Lesser General Public
19  * License along with these libraries and programs; if not, write
20  * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
21  * Floor, Boston, MA 02110-1301 USA
22  */
23 /* $XConsortium: pcf.h /main/2 1996/02/10 16:25:46 cde-fuj $ */
24 /*
25  *
26  * Copyright 1990 Massachusetts Institute of Technology
27  *
28  * Permission to use, copy, modify, distribute, and sell this software and its
29  * documentation for any purpose is hereby granted without fee, provided that
30  * the above copyright notice appear in all copies and that both that
31  * copyright notice and this permission notice appear in supporting
32  * documentation, and that the name of M.I.T. not be used in advertising or
33  * publicity pertaining to distribution of the software without specific,
34  * written prior permission.  M.I.T. makes no representations about the
35  * suitability of this software for any purpose.  It is provided "as is"
36  * without express or implied warranty.
37  *
38  * M.I.T. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
39  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL M.I.T.
40  * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
41  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
42  * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
43  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
44  *
45  (c) Copyright 1995 FUJITSU LIMITED
46  This is source code modified by FUJITSU LIMITED under the Joint
47  Development Agreement for the CDEnext PST.
48  This is unpublished proprietary source code of FUJITSU LIMITED
49  */
50
51 #ifndef _PCF_H_
52 #define _PCF_H_
53
54 /*
55  * Information used to read/write PCF fonts
56  */
57
58 typedef struct _PCFTable {
59     CARD32      type;
60     CARD32      format;
61     CARD32      size;
62     CARD32      offset;
63 }           PCFTableRec, *PCFTablePtr;
64
65 #define PCF_FILE_VERSION        (('p'<<24)|('c'<<16)|('f'<<8)|1)
66 #define PCF_FORMAT_MASK         0xffffff00
67
68 #define PCF_DEFAULT_FORMAT      0x00000000
69 #define PCF_INKBOUNDS           0x00000200
70 #define PCF_ACCEL_W_INKBOUNDS   0x00000100
71 #define PCF_COMPRESSED_METRICS  0x00000100
72
73 #define PCF_FORMAT_MATCH(a,b) (((a)&PCF_FORMAT_MASK) == ((b)&PCF_FORMAT_MASK))
74
75 #define PCF_GLYPH_PAD_MASK      (3<<0)
76 #define PCF_BYTE_MASK           (1<<2)
77 #define PCF_BIT_MASK            (1<<3)
78 #define PCF_SCAN_UNIT_MASK      (3<<4)
79
80 #define PCF_BYTE_ORDER(f)       (((f) & PCF_BYTE_MASK)?MSBFirst:LSBFirst)
81 #define PCF_BIT_ORDER(f)        (((f) & PCF_BIT_MASK)?MSBFirst:LSBFirst)
82 #define PCF_GLYPH_PAD_INDEX(f)  ((f) & PCF_GLYPH_PAD_MASK)
83 #define PCF_GLYPH_PAD(f)        (1<<PCF_GLYPH_PAD_INDEX(f))
84 #define PCF_SCAN_UNIT_INDEX(f)  (((f) & PCF_SCAN_UNIT_MASK) >> 4)
85 #define PCF_SCAN_UNIT(f)        (1<<PCF_SCAN_UNIT_INDEX(f))
86 #define PCF_FORMAT_BITS(f)      ((f) & (PCF_GLYPH_PAD_MASK|PCF_BYTE_MASK|PCF_BIT_MASK|PCF_SCAN_UNIT_MASK))
87
88 #define PCF_SIZE_TO_INDEX(s)    ((s) == 4 ? 2 : (s) == 2 ? 1 : 0)
89 #define PCF_INDEX_TO_SIZE(b)    (1<<b)
90
91 #define PCF_FORMAT(bit,byte,glyph,scan) (\
92     (PCF_SIZE_TO_INDEX(scan) << 4) | \
93     (((bit) == MSBFirst ? 1 : 0) << 3) | \
94     (((byte) == MSBFirst ? 1 : 0) << 2) | \
95     (PCF_SIZE_TO_INDEX(glyph) << 0))
96
97 #define PCF_PROPERTIES              (1<<0)
98 #define PCF_ACCELERATORS            (1<<1)
99 #define PCF_METRICS                 (1<<2)
100 #define PCF_BITMAPS                 (1<<3)
101 #define PCF_INK_METRICS             (1<<4)
102 #define PCF_BDF_ENCODINGS           (1<<5)
103 #define PCF_SWIDTHS                 (1<<6)
104 #define PCF_GLYPH_NAMES             (1<<7)
105 #define PCF_BDF_ACCELERATORS        (1<<8)
106
107 #endif                          /* _PCF_H_ */