Mercurial > hg > xemacs-beta
diff lib-src/mule/bdf.h @ 70:131b0175ea99 r20-0b30
Import from CVS: tag r20-0b30
author | cvs |
---|---|
date | Mon, 13 Aug 2007 09:02:59 +0200 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lib-src/mule/bdf.h Mon Aug 13 09:02:59 2007 +0200 @@ -0,0 +1,91 @@ +/* Header for bdf.c + Copyright (C) 1992 Free Software Foundation, Inc. */ + +/* This file is part of Mule (MULtilingual Enhancement of GNU Emacs). + +Mule is free software distributed in the form of patches to GNU Emacs. +You can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 1, or (at your option) +any later version. + +Mule is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Emacs; see the file COPYING. If not, write to +the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ + +/* 92.10.14 written by K.Handa <handa@etl.go.jp> */ +/* 92.11.3 modified for Mule Ver.0.9.7 + by T.Matsuzawa <mzw_t@hpujisa.yhp.co.jp> + Support NONSPACING characters. */ +/* 92.11.24 modified for Mule Ver.0.9.7 by K.Handa <handa@etl.go.jp> + Modified to reduce memory. */ +/* 92.12.14 modified for Mule Ver.0.9.7 by K.Handa <handa@etl.go.jp> + Support for composite character. */ +/* 93.5.7 modified for Mule Ver.0.9.8 by K.Handa <handa@etl.go.jp> + Support right-to-left character. + Definitions of BDF_xxxx are deleted. */ + +#ifndef _BDF_H +#define _BDF_H + +/* Structure of glyph information of one character. */ +typedef struct { + int dwidth; /* width in pixels */ + int bbw, bbh, bbox, bboy; /* bounding box in pixels */ + int bitmap_size; /* byte lengh of the following slots */ + char *bitmap; /* */ +} glyph_struct; + +extern glyph_struct glyph; + +typedef struct { + char *filename; + int bytes, encoding, direction; /* 93.5.7 by K.Handa */ + FILE *fp; + int loaded; /* flag */ + long last_offset; + long *offset; /* offset to STARTCHAR */ + int chars; /* CHARS */ + int llx, lly, urx, ury; /* FontBBox */ + /* Baseline offset -- value of private property _MULE_BASELINE_OFFSET */ + int yoffset; + int relative_compose; + char **extra; +} font_struct; + +typedef struct { + unsigned int *defined; /* if 1, the character is defined. */ + int fs; /* PIXEL size */ + int code[256]; /* encoding -> character code mapping */ + unsigned int count[256]; /* How often the character appeared. */ + unsigned char new[256]; +} font_extra; + +extern font_struct *font; + +#define FONT_LOADED(lc) font[(lc) & 0x7F].loaded + +#define DEFINED1(lc,idx) \ + (((font_extra *)(font[(lc) & 0x7F].extra))->defined[idx]) +#define DEFINE1(lc,idx) \ + (((font_extra *)(font[(lc) & 0x7F].extra))->defined[idx] = 1) + +#define DEFINED2(lc,idx) \ + (((font_extra *)(font[(lc) & 0x7F].extra))->defined[(idx) / 32] & (1 << ((idx) % 32))) +#define DEFINE2(lc,idx) \ + (((font_extra *)(font[(lc) & 0x7F].extra))->defined[(idx) / 32] |= (1 << ((idx) % 32))) +#define UNDEFINE2(lc,idx) \ + (((font_extra *)(font[(lc) & 0x7F].extra))->defined[(idx) / 32] &= ~(1 << ((idx) % 32))) + +extern FILE *bdf_fopen(); + +#ifndef BDF_PATH +#define BDF_PATH "/usr/share/fonts/X11/ETL,/usr/share/fonts/X11/Chinese,/usr/share/fonts/X11/Japanese,/usr/share/fonts/X11/Korean" +#endif + +#endif /* _BDF_H */