1/***********************************************************
2Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
3
4                        All Rights Reserved
5
6Permission to use, copy, modify, and distribute this software and its
7documentation for any purpose and without fee is hereby granted,
8provided that the above copyright notice appear in all copies and that
9both that copyright notice and this permission notice appear in
10supporting documentation, and that the name of Digital not be
11used in advertising or publicity pertaining to distribution of the
12software without specific, written prior permission.
13
14DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
15ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
16DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
17ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
18WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
19ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
20SOFTWARE.
21
22******************************************************************/
23
24#ifndef DIXFONT_H
25#define DIXFONT_H 1
26
27#include "dix.h"
28#include <X11/fonts/font.h>
29#include "closure.h"
30#include <X11/fonts/fontstruct.h>
31
32#define NullDIXFontProp ((DIXFontPropPtr)0)
33
34typedef struct _DIXFontProp *DIXFontPropPtr;
35
36extern _X_EXPORT Bool SetDefaultFont(char * /*defaultfontname*/);
37
38extern _X_EXPORT void QueueFontWakeup(FontPathElementPtr /*fpe*/);
39
40extern _X_EXPORT void RemoveFontWakeup(FontPathElementPtr /*fpe*/);
41
42extern _X_EXPORT void FontWakeup(pointer /*data*/,
43		       int /*count*/,
44		       pointer /*LastSelectMask*/);
45
46extern _X_EXPORT int OpenFont(ClientPtr /*client*/,
47		    XID /*fid*/,
48		    Mask /*flags*/,
49		    unsigned /*lenfname*/,
50		    char * /*pfontname*/);
51
52extern _X_EXPORT int CloseFont(pointer /*pfont*/,
53		     XID /*fid*/);
54
55typedef struct _xQueryFontReply *xQueryFontReplyPtr;
56
57extern _X_EXPORT void QueryFont(FontPtr /*pFont*/,
58		      xQueryFontReplyPtr /*pReply*/,
59		      int /*nProtoCCIStructs*/);
60
61extern _X_EXPORT int ListFonts(ClientPtr /*client*/,
62		     unsigned char * /*pattern*/,
63		     unsigned int /*length*/,
64		     unsigned int /*max_names*/);
65
66extern _X_EXPORT int
67doListFontsWithInfo(ClientPtr /*client*/,
68		    LFWIclosurePtr /*c*/);
69
70extern _X_EXPORT int doPolyText(ClientPtr /*client*/,
71		      PTclosurePtr /*c*/
72);
73
74extern _X_EXPORT int PolyText(ClientPtr /*client*/,
75		    DrawablePtr /*pDraw*/,
76		    GCPtr /*pGC*/,
77		    unsigned char * /*pElt*/,
78		    unsigned char * /*endReq*/,
79		    int /*xorg*/,
80		    int /*yorg*/,
81		    int /*reqType*/,
82		    XID /*did*/);
83
84extern _X_EXPORT int doImageText(ClientPtr /*client*/,
85		       ITclosurePtr /*c*/);
86
87extern _X_EXPORT int ImageText(ClientPtr /*client*/,
88		     DrawablePtr /*pDraw*/,
89		     GCPtr /*pGC*/,
90		     int /*nChars*/,
91		     unsigned char * /*data*/,
92		     int /*xorg*/,
93		     int /*yorg*/,
94		     int /*reqType*/,
95		     XID /*did*/);
96
97extern _X_EXPORT int SetFontPath(ClientPtr /*client*/,
98		       int /*npaths*/,
99		       unsigned char * /*paths*/);
100
101extern _X_EXPORT int SetDefaultFontPath(char * /*path*/);
102
103extern _X_EXPORT int GetFontPath(ClientPtr client,
104		       int *count,
105		       int *length,
106		       unsigned char **result);
107
108extern _X_EXPORT void DeleteClientFontStuff(ClientPtr /*client*/);
109
110/* Quartz support on Mac OS X pulls in the QuickDraw
111   framework whose InitFonts function conflicts here. */
112#ifdef __APPLE__
113#define InitFonts Darwin_X_InitFonts
114#endif
115extern _X_EXPORT void InitFonts(void);
116
117extern _X_EXPORT void FreeFonts(void);
118
119extern _X_EXPORT FontPtr find_old_font(XID /*id*/);
120
121extern _X_EXPORT void GetGlyphs(FontPtr     /*font*/,
122		      unsigned long /*count*/,
123		      unsigned char * /*chars*/,
124		      FontEncoding /*fontEncoding*/,
125		      unsigned long * /*glyphcount*/,
126		      CharInfoPtr * /*glyphs*/);
127
128extern _X_EXPORT void QueryGlyphExtents(FontPtr     /*pFont*/,
129			      CharInfoPtr * /*charinfo*/,
130			      unsigned long /*count*/,
131			      ExtentInfoPtr /*info*/);
132
133extern _X_EXPORT Bool QueryTextExtents(FontPtr     /*pFont*/,
134			     unsigned long /*count*/,
135			     unsigned char * /*chars*/,
136			     ExtentInfoPtr /*info*/);
137
138extern _X_EXPORT Bool ParseGlyphCachingMode(char * /*str*/);
139
140extern _X_EXPORT void InitGlyphCaching(void);
141
142extern _X_EXPORT void SetGlyphCachingMode(int /*newmode*/);
143
144extern _X_EXPORT void register_fpe_functions(void);
145
146/*
147 * libXfont stubs.
148 */
149extern _X_EXPORT int client_auth_generation(ClientPtr client);
150
151extern _X_EXPORT void DeleteFontClientID(Font id);
152
153extern _X_EXPORT int GetDefaultPointSize(void);
154
155extern _X_EXPORT Font GetNewFontClientID(void);
156
157extern _X_EXPORT int init_fs_handlers(FontPathElementPtr fpe,
158				      BlockHandlerProcPtr block_handler);
159
160extern _X_EXPORT int RegisterFPEFunctions(NameCheckFunc name_func,
161					  InitFpeFunc init_func,
162					  FreeFpeFunc free_func,
163					  ResetFpeFunc reset_func,
164					  OpenFontFunc open_func,
165					  CloseFontFunc close_func,
166					  ListFontsFunc list_func,
167					  StartLfwiFunc start_lfwi_func,
168					  NextLfwiFunc next_lfwi_func,
169					  WakeupFpeFunc wakeup_func,
170					  ClientDiedFunc client_died,
171					  LoadGlyphsFunc load_glyphs,
172					  StartLaFunc start_list_alias_func,
173					  NextLaFunc next_list_alias_func,
174					  SetPathFunc set_path_func);
175
176extern _X_EXPORT void remove_fs_handlers(FontPathElementPtr fpe,
177					 BlockHandlerProcPtr blockHandler,
178					 Bool all);
179
180extern _X_EXPORT int StoreFontClientFont(FontPtr pfont, Font id);
181
182#endif				/* DIXFONT_H */
183