040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync/*
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncCopyright 1991, 1998 The Open Group
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncPermission to use, copy, modify, distribute, and sell this software and its
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncdocumentation for any purpose is hereby granted without fee, provided that
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncthe above copyright notice appear in all copies and that both that
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynccopyright notice and this permission notice appear in supporting
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncdocumentation.
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncThe above copyright notice and this permission notice shall be included
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncin all copies or substantial portions of the Software.
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncOR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncIN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncOTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncOTHER DEALINGS IN THE SOFTWARE.
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncExcept as contained in this notice, the name of The Open Group shall
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncnot be used in advertising or otherwise to promote the sale, use or
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncother dealings in this Software without prior written authorization
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncfrom The Open Group.
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync*/
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#ifndef CLOSESTR_H
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define CLOSESTR_H
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define NEED_REPLIES
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#include <X11/Xproto.h>
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#include "closure.h"
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#include "dix.h"
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#include "misc.h"
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#include "gcstruct.h"
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync/* closure structures */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync/* OpenFont */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef struct _OFclosure {
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ClientPtr client;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync short current_fpe;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync short num_fpes;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync FontPathElementPtr *fpe_list;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Mask flags;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Bool slept;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync/* XXX -- get these from request buffer instead? */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync char *origFontName;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int origFontNameLen;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XID fontid;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync char *fontname;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int fnamelen;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync FontPtr non_cachable_font;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync} OFclosureRec;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync/* ListFontsWithInfo */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XLFDMAXFONTNAMELEN 256
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef struct _LFWIstate {
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync char pattern[XLFDMAXFONTNAMELEN];
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int patlen;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int current_fpe;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int max_names;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Bool list_started;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync pointer private;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync} LFWIstateRec, *LFWIstatePtr;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef struct _LFWIclosure {
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ClientPtr client;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int num_fpes;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync FontPathElementPtr *fpe_list;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync xListFontsWithInfoReply *reply;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int length;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync LFWIstateRec current;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync LFWIstateRec saved;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int savedNumFonts;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Bool haveSaved;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Bool slept;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync char *savedName;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync} LFWIclosureRec;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync/* ListFonts */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef struct _LFclosure {
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ClientPtr client;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int num_fpes;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync FontPathElementPtr *fpe_list;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync FontNamesPtr names;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync LFWIstateRec current;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync LFWIstateRec saved;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Bool haveSaved;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Bool slept;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync char *savedName;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int savedNameLen;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync} LFclosureRec;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync/* PolyText */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int (* PolyTextPtr)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync DrawablePtr /* pDraw */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync GCPtr /* pGC */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* x */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* y */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* count */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync void * /* chars or shorts */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync );
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef struct _PTclosure {
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ClientPtr client;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync DrawablePtr pDraw;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync GC *pGC;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned char *pElt;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned char *endReq;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned char *data;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int xorg;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int yorg;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync CARD8 reqType;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync PolyTextPtr polyText;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int itemSize;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XID did;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int err;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Bool slept;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync} PTclosureRec;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync/* ImageText */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync void (* ImageTextPtr)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync DrawablePtr /* pDraw */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync GCPtr /* pGC */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* x */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* y */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* count */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync void * /* chars or shorts */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync );
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef struct _ITclosure {
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ClientPtr client;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync DrawablePtr pDraw;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync GC *pGC;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync BYTE nChars;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned char *data;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int xorg;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int yorg;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync CARD8 reqType;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ImageTextPtr imageText;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int itemSize;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XID did;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Bool slept;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync} ITclosureRec;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#endif /* CLOSESTR_H */