7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync/***********************************************************
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsyncCopyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync All Rights Reserved
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsyncPermission to use, copy, modify, and distribute this software and its
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsyncdocumentation for any purpose and without fee is hereby granted,
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsyncprovided that the above copyright notice appear in all copies and that
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsyncboth that copyright notice and this permission notice appear in
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsyncsupporting documentation, and that the name of Digital not be
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsyncused in advertising or publicity pertaining to distribution of the
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsyncsoftware without specific, written prior permission.
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsyncDIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsyncALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsyncDIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsyncANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsyncWHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsyncARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsyncSOFTWARE.
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync******************************************************************/
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#ifndef FONT_H
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define FONT_H
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#ifndef BitmapFormatByteOrderMask
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#include "fsmasks.h"
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#endif
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync/* data structures */
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#ifndef _XTYPEDEF_FONTPTR
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsynctypedef struct _Font *FontPtr;
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define _XTYPEDEF_FONTPTR
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#endif
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsynctypedef struct _FontInfo *FontInfoPtr;
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsynctypedef struct _FontProp *FontPropPtr;
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsynctypedef struct _ExtentInfo *ExtentInfoPtr;
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsynctypedef struct _FontPathElement *FontPathElementPtr;
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#ifndef _XTYPEDEF_CHARINFOPTR
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsynctypedef struct _CharInfo *CharInfoPtr;
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define _XTYPEDEF_CHARINFOPTR
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#endif
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsynctypedef struct _FontNames *FontNamesPtr;
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsynctypedef struct _FontResolution *FontResolutionPtr;
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define NullCharInfo ((CharInfoPtr) 0)
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define NullFont ((FontPtr) 0)
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define NullFontInfo ((FontInfoPtr) 0)
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync /* draw direction */
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define LeftToRight 0
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define RightToLeft 1
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define BottomToTop 2
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define TopToBottom 3
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsynctypedef int DrawDirection;
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define NO_SUCH_CHAR -1
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define FontAliasType 0x1000
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define AllocError 80
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define StillWorking 81
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define FontNameAlias 82
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define BadFontName 83
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define Suspended 84
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define Successful 85
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define BadFontPath 86
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define BadCharRange 87
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define BadFontFormat 88
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define FPEResetFailed 89 /* for when an FPE reset won't work */
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync/* OpenFont flags */
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define FontLoadInfo 0x0001
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define FontLoadProps 0x0002
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define FontLoadMetrics 0x0004
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define FontLoadBitmaps 0x0008
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define FontLoadAll 0x000f
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define FontOpenSync 0x0010
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define FontReopen 0x0020
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync/* Query flags */
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define LoadAll 0x1
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define FinishRamge 0x2
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define EightBitFont 0x4
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define SixteenBitFont 0x8
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync/* Glyph Caching Modes */
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define CACHING_OFF 0
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define CACHE_16_BIT_GLYPHS 1
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define CACHE_ALL_GLYPHS 2
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define DEFAULT_GLYPH_CACHING_MODE CACHE_16_BIT_GLYPHS
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsyncextern int glyphCachingMode;
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsyncstruct _Client;
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsyncextern int StartListFontsWithInfo(
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync struct _Client * /*client*/,
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync int /*length*/,
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync unsigned char * /*pattern*/,
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync int /*max_names*/
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync);
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsyncextern FontNamesPtr MakeFontNamesRecord(
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync unsigned /* size */
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync);
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsyncextern void FreeFontNames(
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync FontNamesPtr /* pFN*/
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync);
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsyncextern int AddFontNamesName(
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync FontNamesPtr /* names */,
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync char * /* name */,
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync int /* length */
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync);
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#if 0 /* unused */
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsyncextern int FontToFSError();
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsyncextern FontResolutionPtr GetClientResolution();
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#endif
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsynctypedef struct _FontPatternCache *FontPatternCachePtr;
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsyncextern FontPatternCachePtr MakeFontPatternCache (
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync void
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync);
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsyncextern void FreeFontPatternCache (
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync FontPatternCachePtr /* cache */
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync);
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsyncextern void EmptyFontPatternCache (
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync FontPatternCachePtr /* cache */
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync);
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsyncextern void CacheFontPattern (
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync FontPatternCachePtr /* cache */,
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync char * /* pattern */,
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync int /* patlen */,
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync FontPtr /* pFont */
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync);
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsyncextern FontResolutionPtr GetClientResolutions(
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync int * /* num */
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync);
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsyncextern FontPtr FindCachedFontPattern (
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync FontPatternCachePtr /* cache */,
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync char * /* pattern */,
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync int /* patlen */
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync);
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsyncextern void RemoveCachedFontPattern (
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync FontPatternCachePtr /* cache */,
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync FontPtr /* pFont */
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync);
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsynctypedef enum {
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync Linear8Bit, TwoD8Bit, Linear16Bit, TwoD16Bit
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync} FontEncoding;
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#endif /* FONT_H */