closestr.h revision 05b261ec
1/*
2
3Copyright 1991, 1998  The Open Group
4
5Permission to use, copy, modify, distribute, and sell this software and its
6documentation for any purpose is hereby granted without fee, provided that
7the above copyright notice appear in all copies and that both that
8copyright notice and this permission notice appear in supporting
9documentation.
10
11The above copyright notice and this permission notice shall be included
12in all copies or substantial portions of the Software.
13
14THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
15OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
17IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
18OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
19ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
20OTHER DEALINGS IN THE SOFTWARE.
21
22Except as contained in this notice, the name of The Open Group shall
23not be used in advertising or otherwise to promote the sale, use or
24other dealings in this Software without prior written authorization
25from The Open Group.
26
27*/
28
29
30#ifndef CLOSESTR_H
31#define CLOSESTR_H
32
33#define	NEED_REPLIES
34#include <X11/Xproto.h>
35#include "closure.h"
36#include "dix.h"
37#include "misc.h"
38#include "gcstruct.h"
39
40/* closure structures */
41
42/* OpenFont */
43
44typedef struct _OFclosure {
45    ClientPtr   client;
46    short       current_fpe;
47    short       num_fpes;
48    FontPathElementPtr *fpe_list;
49    Mask        flags;
50    Bool        slept;
51
52/* XXX -- get these from request buffer instead? */
53    char       *origFontName;
54    int		origFontNameLen;
55    XID         fontid;
56    char       *fontname;
57    int         fnamelen;
58    FontPtr	non_cachable_font;
59}           OFclosureRec;
60
61/* ListFontsWithInfo */
62
63#define XLFDMAXFONTNAMELEN	256
64typedef struct _LFWIstate {
65    char	pattern[XLFDMAXFONTNAMELEN];
66    int		patlen;
67    int		current_fpe;
68    int		max_names;
69    Bool	list_started;
70    pointer	private;
71} LFWIstateRec, *LFWIstatePtr;
72
73typedef struct _LFWIclosure {
74    ClientPtr		client;
75    int			num_fpes;
76    FontPathElementPtr	*fpe_list;
77    xListFontsWithInfoReply *reply;
78    int			length;
79    LFWIstateRec	current;
80    LFWIstateRec	saved;
81    int			savedNumFonts;
82    Bool		haveSaved;
83    Bool		slept;
84    char		*savedName;
85} LFWIclosureRec;
86
87/* ListFonts */
88
89typedef struct _LFclosure {
90    ClientPtr   client;
91    int         num_fpes;
92    FontPathElementPtr *fpe_list;
93    FontNamesPtr names;
94    LFWIstateRec current;
95    LFWIstateRec saved;
96    Bool        haveSaved;
97    Bool        slept;
98    char	*savedName;
99    int		savedNameLen;
100}	LFclosureRec;
101
102/* PolyText */
103
104typedef
105    int			(* PolyTextPtr)(
106			DrawablePtr /* pDraw */,
107			GCPtr /* pGC */,
108			int /* x */,
109			int /* y */,
110			int /* count */,
111			void * /* chars or shorts */
112			);
113
114typedef struct _PTclosure {
115    ClientPtr		client;
116    DrawablePtr		pDraw;
117    GC			*pGC;
118    unsigned char	*pElt;
119    unsigned char	*endReq;
120    unsigned char	*data;
121    int			xorg;
122    int			yorg;
123    CARD8		reqType;
124    PolyTextPtr		polyText;
125    int			itemSize;
126    XID			did;
127    int			err;
128    Bool		slept;
129} PTclosureRec;
130
131/* ImageText */
132
133typedef
134    void		(* ImageTextPtr)(
135			DrawablePtr /* pDraw */,
136			GCPtr /* pGC */,
137			int /* x */,
138			int /* y */,
139			int /* count */,
140			void * /* chars or shorts */
141			);
142
143typedef struct _ITclosure {
144    ClientPtr		client;
145    DrawablePtr		pDraw;
146    GC			*pGC;
147    BYTE		nChars;
148    unsigned char	*data;
149    int			xorg;
150    int			yorg;
151    CARD8		reqType;
152    ImageTextPtr	imageText;
153    int			itemSize;
154    XID			did;
155    Bool		slept;
156} ITclosureRec;
157#endif				/* CLOSESTR_H */
158