New upstream version 3.5.99.27
This commit is contained in:
1
nx-X11/programs/Xserver/include/.gitignore
vendored
Normal file
1
nx-X11/programs/Xserver/include/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
osdep.h
|
||||
55
nx-X11/programs/Xserver/include/Imakefile
Normal file
55
nx-X11/programs/Xserver/include/Imakefile
Normal file
@@ -0,0 +1,55 @@
|
||||
HEADERS = os.h misc.h
|
||||
|
||||
#if defined(XorgVersion) \
|
||||
|| defined(BSDOSArchitecture)
|
||||
#endif
|
||||
|
||||
LinkSourceFile(osdep.h,../os)
|
||||
#ifdef cygwinArchitecture
|
||||
LinkFile(xxwindow.h,window.h)
|
||||
#endif
|
||||
|
||||
all::
|
||||
|
||||
depend::
|
||||
|
||||
InstallDriverSDKNonExecFile(XIstubs.h,$(DRIVERSDKINCLUDEDIR))
|
||||
InstallDriverSDKNonExecFile(Xprintf.h,$(DRIVERSDKINCLUDEDIR))
|
||||
InstallDriverSDKNonExecFile(bstore.h,$(DRIVERSDKINCLUDEDIR))
|
||||
InstallDriverSDKNonExecFile(bstorestr.h,$(DRIVERSDKINCLUDEDIR))
|
||||
InstallDriverSDKNonExecFile(client.h,$(DRIVERSDKINCLUDEDIR))
|
||||
InstallDriverSDKNonExecFile(colormap.h,$(DRIVERSDKINCLUDEDIR))
|
||||
InstallDriverSDKNonExecFile(colormapst.h,$(DRIVERSDKINCLUDEDIR))
|
||||
InstallDriverSDKNonExecFile(cursor.h,$(DRIVERSDKINCLUDEDIR))
|
||||
InstallDriverSDKNonExecFile(cursorstr.h,$(DRIVERSDKINCLUDEDIR))
|
||||
InstallDriverSDKNonExecFile(dix.h,$(DRIVERSDKINCLUDEDIR))
|
||||
InstallDriverSDKNonExecFile(dixstruct.h,$(DRIVERSDKINCLUDEDIR))
|
||||
InstallDriverSDKNonExecFile(exevents.h,$(DRIVERSDKINCLUDEDIR))
|
||||
InstallDriverSDKNonExecFile(extension.h,$(DRIVERSDKINCLUDEDIR))
|
||||
InstallDriverSDKNonExecFile(extnsionst.h,$(DRIVERSDKINCLUDEDIR))
|
||||
InstallDriverSDKNonExecFile(gc.h,$(DRIVERSDKINCLUDEDIR))
|
||||
InstallDriverSDKNonExecFile(gcstruct.h,$(DRIVERSDKINCLUDEDIR))
|
||||
InstallDriverSDKNonExecFile(globals.h,$(DRIVERSDKINCLUDEDIR))
|
||||
InstallDriverSDKNonExecFile(input.h,$(DRIVERSDKINCLUDEDIR))
|
||||
InstallDriverSDKNonExecFile(inputstr.h,$(DRIVERSDKINCLUDEDIR))
|
||||
InstallDriverSDKNonExecFile(list.h,$(DRIVERSDKINCLUDEDIR))
|
||||
InstallDriverSDKNonExecFile(misc.h,$(DRIVERSDKINCLUDEDIR))
|
||||
InstallDriverSDKNonExecFile(miscstruct.h,$(DRIVERSDKINCLUDEDIR))
|
||||
InstallDriverSDKNonExecFile(opaque.h,$(DRIVERSDKINCLUDEDIR))
|
||||
InstallDriverSDKNonExecFile(os.h,$(DRIVERSDKINCLUDEDIR))
|
||||
InstallDriverSDKNonExecFile(pixmap.h,$(DRIVERSDKINCLUDEDIR))
|
||||
InstallDriverSDKNonExecFile(pixmapstr.h,$(DRIVERSDKINCLUDEDIR))
|
||||
InstallDriverSDKNonExecFile(property.h,$(DRIVERSDKINCLUDEDIR))
|
||||
InstallDriverSDKNonExecFile(propertyst.h,$(DRIVERSDKINCLUDEDIR))
|
||||
InstallDriverSDKNonExecFile(region.h,$(DRIVERSDKINCLUDEDIR))
|
||||
InstallDriverSDKNonExecFile(regionstr.h,$(DRIVERSDKINCLUDEDIR))
|
||||
InstallDriverSDKNonExecFile(resource.h,$(DRIVERSDKINCLUDEDIR))
|
||||
InstallDriverSDKNonExecFile(screenint.h,$(DRIVERSDKINCLUDEDIR))
|
||||
InstallDriverSDKNonExecFile(scrnintstr.h,$(DRIVERSDKINCLUDEDIR))
|
||||
InstallDriverSDKNonExecFile(servermd.h,$(DRIVERSDKINCLUDEDIR))
|
||||
InstallDriverSDKNonExecFile(validate.h,$(DRIVERSDKINCLUDEDIR))
|
||||
InstallDriverSDKNonExecFile(window.h,$(DRIVERSDKINCLUDEDIR))
|
||||
InstallDriverSDKNonExecFile(windowstr.h,$(DRIVERSDKINCLUDEDIR))
|
||||
|
||||
BuildIncludes($(HEADERS),nx-X11,..)
|
||||
InstallMultipleFlags($(HEADERS),$(INCDIR)/nx-X11,$(INSTINCFLAGS))
|
||||
75
nx-X11/programs/Xserver/include/XIstubs.h
Normal file
75
nx-X11/programs/Xserver/include/XIstubs.h
Normal file
@@ -0,0 +1,75 @@
|
||||
/************************************************************
|
||||
|
||||
Copyright 1996 by Thomas E. Dickey <dickey@clark.net>
|
||||
|
||||
All Rights Reserved
|
||||
|
||||
Permission to use, copy, modify, and distribute this software and its
|
||||
documentation for any purpose and without fee is hereby granted,
|
||||
provided that the above copyright notice appear in all copies and that
|
||||
both that copyright notice and this permission notice appear in
|
||||
supporting documentation, and that the name of the above listed
|
||||
copyright holder(s) not be used in advertising or publicity pertaining
|
||||
to distribution of the software without specific, written prior
|
||||
permission.
|
||||
|
||||
THE ABOVE LISTED COPYRIGHT HOLDER(S) DISCLAIM ALL WARRANTIES WITH REGARD
|
||||
TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
AND FITNESS, IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE
|
||||
LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
********************************************************/
|
||||
|
||||
#ifndef XI_STUBS_H
|
||||
#define XI_STUBS_H 1
|
||||
|
||||
int
|
||||
ChangeKeyboardDevice (
|
||||
DeviceIntPtr /* old_dev */,
|
||||
DeviceIntPtr /* new_dev */);
|
||||
|
||||
int
|
||||
ChangePointerDevice (
|
||||
DeviceIntPtr /* old_dev */,
|
||||
DeviceIntPtr /* new_dev */,
|
||||
unsigned char /* x */,
|
||||
unsigned char /* y */);
|
||||
|
||||
void
|
||||
CloseInputDevice (
|
||||
DeviceIntPtr /* d */,
|
||||
ClientPtr /* client */);
|
||||
|
||||
void
|
||||
AddOtherInputDevices (void);
|
||||
|
||||
void
|
||||
OpenInputDevice (
|
||||
DeviceIntPtr /* dev */,
|
||||
ClientPtr /* client */,
|
||||
int * /* status */);
|
||||
|
||||
int
|
||||
SetDeviceMode (
|
||||
ClientPtr /* client */,
|
||||
DeviceIntPtr /* dev */,
|
||||
int /* mode */);
|
||||
|
||||
int
|
||||
SetDeviceValuators (
|
||||
ClientPtr /* client */,
|
||||
DeviceIntPtr /* dev */,
|
||||
int * /* valuators */,
|
||||
int /* first_valuator */,
|
||||
int /* num_valuators */);
|
||||
|
||||
int
|
||||
ChangeDeviceControl (
|
||||
ClientPtr /* client */,
|
||||
DeviceIntPtr /* dev */,
|
||||
xDeviceCtl * /* control */);
|
||||
|
||||
#endif /* XI_STUBS_H */
|
||||
81
nx-X11/programs/Xserver/include/Xprintf.h
Normal file
81
nx-X11/programs/Xserver/include/Xprintf.h
Normal file
@@ -0,0 +1,81 @@
|
||||
/*
|
||||
* Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the "Software"),
|
||||
* to deal in the Software without restriction, including without limitation
|
||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
* and/or sell copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice (including the next
|
||||
* paragraph) shall be included in all copies or substantial portions of the
|
||||
* Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
* DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#ifndef XPRINTF_H
|
||||
#define XPRINTF_H
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdarg.h>
|
||||
#include <nx-X11/Xfuncproto.h>
|
||||
|
||||
#ifndef _X_RESTRICT_KYWD
|
||||
#if defined(restrict) /* assume autoconf set it correctly */ || \
|
||||
(defined(__STDC__) && (__STDC_VERSION__ - 0 >= 199901L)) /* C99 */
|
||||
#define _X_RESTRICT_KYWD restrict
|
||||
#elif defined(__GNUC__) && !defined(__STRICT_ANSI__) /* gcc w/C89+extensions */
|
||||
#define _X_RESTRICT_KYWD __restrict__
|
||||
#else
|
||||
#define _X_RESTRICT_KYWD
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/*
|
||||
* These functions provide a portable implementation of the common (but not
|
||||
* yet universal) asprintf & vasprintf routines to allocate a buffer big
|
||||
* enough to sprintf the arguments to. The XNF variants terminate the server
|
||||
* if the allocation fails.
|
||||
* The buffer allocated is returned in the pointer provided in the first
|
||||
* argument. The return value is the size of the allocated buffer, or -1
|
||||
* on failure.
|
||||
*/
|
||||
extern _X_EXPORT int
|
||||
Xasprintf(char **ret, const char *_X_RESTRICT_KYWD fmt, ...)
|
||||
_X_ATTRIBUTE_PRINTF(2, 3);
|
||||
extern _X_EXPORT int
|
||||
Xvasprintf(char **ret, const char *_X_RESTRICT_KYWD fmt, va_list va)
|
||||
_X_ATTRIBUTE_PRINTF(2, 0);
|
||||
extern _X_EXPORT int
|
||||
XNFasprintf(char **ret, const char *_X_RESTRICT_KYWD fmt, ...)
|
||||
_X_ATTRIBUTE_PRINTF(2, 3);
|
||||
extern _X_EXPORT int
|
||||
XNFvasprintf(char **ret, const char *_X_RESTRICT_KYWD fmt, va_list va)
|
||||
_X_ATTRIBUTE_PRINTF(2, 0);
|
||||
|
||||
#if !defined(HAVE_ASPRINTF) && !defined(HAVE_VASPRINTF)
|
||||
#define asprintf Xasprintf
|
||||
#define vasprintf Xvasprintf
|
||||
#endif
|
||||
|
||||
/*
|
||||
* These functions provide a portable implementation of the linux kernel
|
||||
* scnprintf & vscnprintf routines that return the number of bytes actually
|
||||
* copied during a snprintf, (excluding the final '\0').
|
||||
*/
|
||||
extern _X_EXPORT int
|
||||
Xscnprintf(char *s, int n, const char * _X_RESTRICT_KYWD fmt, ...)
|
||||
_X_ATTRIBUTE_PRINTF(3,4);
|
||||
extern _X_EXPORT int
|
||||
Xvscnprintf(char *s, int n, const char * _X_RESTRICT_KYWD fmt, va_list va)
|
||||
_X_ATTRIBUTE_PRINTF(3,0);
|
||||
|
||||
#endif /* XPRINTF_H */
|
||||
22
nx-X11/programs/Xserver/include/bstore.h
Normal file
22
nx-X11/programs/Xserver/include/bstore.h
Normal file
@@ -0,0 +1,22 @@
|
||||
/*
|
||||
* Copyright (c) 1987 by the Regents of the University of California
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software and its
|
||||
* documentation for any purpose and without fee is hereby granted, provided
|
||||
* that the above copyright notice appear in all copies. The University of
|
||||
* California makes no representations about the suitability of this software
|
||||
* for any purpose. It is provided "as is" without express or implied
|
||||
* warranty.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Moved here from mi to allow wrapping of lower level backing store functions.
|
||||
* -- 1997.10.27 Marc Aurele La France (tsi@xfree86.org)
|
||||
*/
|
||||
|
||||
#ifndef _BSTORE_H_
|
||||
#define _BSTORE_H_
|
||||
|
||||
#include "bstorestr.h"
|
||||
|
||||
#endif /* _BSTORE_H_ */
|
||||
57
nx-X11/programs/Xserver/include/bstorestr.h
Normal file
57
nx-X11/programs/Xserver/include/bstorestr.h
Normal file
@@ -0,0 +1,57 @@
|
||||
/*
|
||||
* Copyright (c) 1987 by the Regents of the University of California
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software and its
|
||||
* documentation for any purpose and without fee is hereby granted, provided
|
||||
* that the above copyright notice appear in all copies. The University of
|
||||
* California makes no representations about the suitability of this software
|
||||
* for any purpose. It is provided "as is" without express or implied
|
||||
* warranty.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Moved here from mi to allow wrapping of lower level backing store functions.
|
||||
* -- 1997.10.27 Marc Aurele La France (tsi@xfree86.org)
|
||||
*/
|
||||
|
||||
#ifndef _BSTORESTR_H_
|
||||
#define _BSTORESTR_H_
|
||||
|
||||
#include "gc.h"
|
||||
#include "pixmap.h"
|
||||
#include "region.h"
|
||||
#include "window.h"
|
||||
|
||||
typedef void (* BackingStoreSaveAreasProcPtr)(
|
||||
PixmapPtr /*pBackingPixmap*/,
|
||||
RegionPtr /*pObscured*/,
|
||||
int /*x*/,
|
||||
int /*y*/,
|
||||
WindowPtr /*pWin*/);
|
||||
|
||||
typedef void (* BackingStoreRestoreAreasProcPtr)(
|
||||
PixmapPtr /*pBackingPixmap*/,
|
||||
RegionPtr /*pExposed*/,
|
||||
int /*x*/,
|
||||
int /*y*/,
|
||||
WindowPtr /*pWin*/);
|
||||
|
||||
typedef void (* BackingStoreSetClipmaskRgnProcPtr)(
|
||||
GCPtr /*pBackingGC*/,
|
||||
RegionPtr /*pbackingCompositeClip*/);
|
||||
|
||||
typedef PixmapPtr (* BackingStoreGetImagePixmapProcPtr)(void);
|
||||
|
||||
typedef PixmapPtr (* BackingStoreGetSpansPixmapProcPtr)(void);
|
||||
|
||||
typedef struct _BSFuncs {
|
||||
|
||||
BackingStoreSaveAreasProcPtr SaveAreas;
|
||||
BackingStoreRestoreAreasProcPtr RestoreAreas;
|
||||
BackingStoreSetClipmaskRgnProcPtr SetClipmaskRgn;
|
||||
BackingStoreGetImagePixmapProcPtr GetImagePixmap;
|
||||
BackingStoreGetSpansPixmapProcPtr GetSpansPixmap;
|
||||
|
||||
} BSFuncRec, *BSFuncPtr;
|
||||
|
||||
#endif /* _BSTORESTR_H_ */
|
||||
60
nx-X11/programs/Xserver/include/client.h
Normal file
60
nx-X11/programs/Xserver/include/client.h
Normal file
@@ -0,0 +1,60 @@
|
||||
/*
|
||||
* Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). All
|
||||
* rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
|
||||
/* Author: Rami Ylimäki <rami.ylimaki@vincit.fi> */
|
||||
|
||||
#ifndef CLIENT_H
|
||||
#define CLIENT_H
|
||||
|
||||
#ifdef HAVE_DIX_CONFIG_H
|
||||
#include <dix-config.h>
|
||||
#endif /* HAVE_DIX_CONFIG_H */
|
||||
#include <X11/Xfuncproto.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
/* Client IDs. Use GetClientPid, GetClientCmdName and GetClientCmdArgs
|
||||
* instead of accessing the fields directly. */
|
||||
typedef struct {
|
||||
pid_t pid; /* process ID, -1 if not available */
|
||||
const char *cmdname; /* process name, NULL if not available */
|
||||
const char *cmdargs; /* process arguments, NULL if not available */
|
||||
} ClientIdRec, *ClientIdPtr;
|
||||
|
||||
struct _Client;
|
||||
|
||||
/* Initialize and clean up. */
|
||||
void ReserveClientIds(struct _Client *client);
|
||||
void ReleaseClientIds(struct _Client *client);
|
||||
|
||||
/* Determine client IDs for caching. Exported on purpose for
|
||||
* extensions such as SELinux. */
|
||||
extern _X_EXPORT pid_t DetermineClientPid(struct _Client *client);
|
||||
extern _X_EXPORT void DetermineClientCmd(pid_t, const char **cmdname,
|
||||
const char **cmdargs);
|
||||
|
||||
/* Query cached client IDs. Exported on purpose for drivers. */
|
||||
extern _X_EXPORT pid_t GetClientPid(struct _Client *client);
|
||||
extern _X_EXPORT const char *GetClientCmdName(struct _Client *client);
|
||||
extern _X_EXPORT const char *GetClientCmdArgs(struct _Client *client);
|
||||
|
||||
#endif /* CLIENT_H */
|
||||
156
nx-X11/programs/Xserver/include/closestr.h
Normal file
156
nx-X11/programs/Xserver/include/closestr.h
Normal file
@@ -0,0 +1,156 @@
|
||||
/*
|
||||
|
||||
Copyright 1991, 1998 The Open Group
|
||||
|
||||
Permission to use, copy, modify, distribute, and sell this software and its
|
||||
documentation for any purpose is hereby granted without fee, provided that
|
||||
the above copyright notice appear in all copies and that both that
|
||||
copyright notice and this permission notice appear in supporting
|
||||
documentation.
|
||||
|
||||
The above copyright notice and this permission notice shall be included
|
||||
in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
||||
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name of The Open Group shall
|
||||
not be used in advertising or otherwise to promote the sale, use or
|
||||
other dealings in this Software without prior written authorization
|
||||
from The Open Group.
|
||||
|
||||
*/
|
||||
|
||||
|
||||
#ifndef CLOSESTR_H
|
||||
#define CLOSESTR_H
|
||||
|
||||
#include <nx-X11/Xproto.h>
|
||||
#include "closure.h"
|
||||
#include "dix.h"
|
||||
#include "misc.h"
|
||||
#include "gcstruct.h"
|
||||
|
||||
/* closure structures */
|
||||
|
||||
/* OpenFont */
|
||||
|
||||
typedef struct _OFclosure {
|
||||
ClientPtr client;
|
||||
short current_fpe;
|
||||
short num_fpes;
|
||||
FontPathElementPtr *fpe_list;
|
||||
Mask flags;
|
||||
Bool slept;
|
||||
|
||||
/* XXX -- get these from request buffer instead? */
|
||||
char *origFontName;
|
||||
int origFontNameLen;
|
||||
XID fontid;
|
||||
char *fontname;
|
||||
int fnamelen;
|
||||
FontPtr non_cachable_font;
|
||||
} OFclosureRec;
|
||||
|
||||
/* ListFontsWithInfo */
|
||||
|
||||
#define XLFDMAXFONTNAMELEN 256
|
||||
typedef struct _LFWIstate {
|
||||
char pattern[XLFDMAXFONTNAMELEN];
|
||||
int patlen;
|
||||
int current_fpe;
|
||||
int max_names;
|
||||
Bool list_started;
|
||||
void * private;
|
||||
} LFWIstateRec, *LFWIstatePtr;
|
||||
|
||||
typedef struct _LFWIclosure {
|
||||
ClientPtr client;
|
||||
int num_fpes;
|
||||
FontPathElementPtr *fpe_list;
|
||||
xListFontsWithInfoReply *reply;
|
||||
int length;
|
||||
LFWIstateRec current;
|
||||
LFWIstateRec saved;
|
||||
int savedNumFonts;
|
||||
Bool haveSaved;
|
||||
Bool slept;
|
||||
char *savedName;
|
||||
} LFWIclosureRec;
|
||||
|
||||
/* ListFonts */
|
||||
|
||||
typedef struct _LFclosure {
|
||||
ClientPtr client;
|
||||
int num_fpes;
|
||||
FontPathElementPtr *fpe_list;
|
||||
FontNamesPtr names;
|
||||
LFWIstateRec current;
|
||||
LFWIstateRec saved;
|
||||
Bool haveSaved;
|
||||
Bool slept;
|
||||
char *savedName;
|
||||
int savedNameLen;
|
||||
} LFclosureRec;
|
||||
|
||||
/* PolyText */
|
||||
|
||||
typedef
|
||||
int (* PolyTextPtr)(
|
||||
DrawablePtr /* pDraw */,
|
||||
GCPtr /* pGC */,
|
||||
int /* x */,
|
||||
int /* y */,
|
||||
int /* count */,
|
||||
void * /* chars or shorts */
|
||||
);
|
||||
|
||||
typedef struct _PTclosure {
|
||||
ClientPtr client;
|
||||
DrawablePtr pDraw;
|
||||
GC *pGC;
|
||||
unsigned char *pElt;
|
||||
unsigned char *endReq;
|
||||
unsigned char *data;
|
||||
int xorg;
|
||||
int yorg;
|
||||
CARD8 reqType;
|
||||
PolyTextPtr polyText;
|
||||
int itemSize;
|
||||
XID did;
|
||||
int err;
|
||||
Bool slept;
|
||||
} PTclosureRec;
|
||||
|
||||
/* ImageText */
|
||||
|
||||
typedef
|
||||
void (* ImageTextPtr)(
|
||||
DrawablePtr /* pDraw */,
|
||||
GCPtr /* pGC */,
|
||||
int /* x */,
|
||||
int /* y */,
|
||||
int /* count */,
|
||||
void * /* chars or shorts */
|
||||
);
|
||||
|
||||
typedef struct _ITclosure {
|
||||
ClientPtr client;
|
||||
DrawablePtr pDraw;
|
||||
GC *pGC;
|
||||
BYTE nChars;
|
||||
unsigned char *data;
|
||||
int xorg;
|
||||
int yorg;
|
||||
CARD8 reqType;
|
||||
ImageTextPtr imageText;
|
||||
int itemSize;
|
||||
XID did;
|
||||
Bool slept;
|
||||
} ITclosureRec;
|
||||
#endif /* CLOSESTR_H */
|
||||
57
nx-X11/programs/Xserver/include/closure.h
Normal file
57
nx-X11/programs/Xserver/include/closure.h
Normal file
@@ -0,0 +1,57 @@
|
||||
/***********************************************************
|
||||
|
||||
Copyright 1987, 1998 The Open Group
|
||||
|
||||
Permission to use, copy, modify, distribute, and sell this software and its
|
||||
documentation for any purpose is hereby granted without fee, provided that
|
||||
the above copyright notice appear in all copies and that both that
|
||||
copyright notice and this permission notice appear in supporting
|
||||
documentation.
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name of The Open Group shall not be
|
||||
used in advertising or otherwise to promote the sale, use or other dealings
|
||||
in this Software without prior written authorization from The Open Group.
|
||||
|
||||
|
||||
Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
|
||||
|
||||
All Rights Reserved
|
||||
|
||||
Permission to use, copy, modify, and distribute this software and its
|
||||
documentation for any purpose and without fee is hereby granted,
|
||||
provided that the above copyright notice appear in all copies and that
|
||||
both that copyright notice and this permission notice appear in
|
||||
supporting documentation, and that the name of Digital not be
|
||||
used in advertising or publicity pertaining to distribution of the
|
||||
software without specific, written prior permission.
|
||||
|
||||
DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
|
||||
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
|
||||
DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
|
||||
ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
||||
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
|
||||
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
SOFTWARE.
|
||||
|
||||
******************************************************************/
|
||||
|
||||
#ifndef CLOSURE_H
|
||||
#define CLOSURE_H 1
|
||||
|
||||
typedef struct _LFclosure *LFclosurePtr;
|
||||
typedef struct _LFWIclosure *LFWIclosurePtr;
|
||||
typedef struct _OFclosure *OFclosurePtr;
|
||||
typedef struct _PTclosure *PTclosurePtr;
|
||||
typedef struct _ITclosure *ITclosurePtr;
|
||||
|
||||
#endif /* CLOSURE_H */
|
||||
186
nx-X11/programs/Xserver/include/colormap.h
Normal file
186
nx-X11/programs/Xserver/include/colormap.h
Normal file
@@ -0,0 +1,186 @@
|
||||
/*
|
||||
|
||||
Copyright 1987, 1998 The Open Group
|
||||
|
||||
Permission to use, copy, modify, distribute, and sell this software and its
|
||||
documentation for any purpose is hereby granted without fee, provided that
|
||||
the above copyright notice appear in all copies and that both that
|
||||
copyright notice and this permission notice appear in supporting
|
||||
documentation.
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name of The Open Group shall not be
|
||||
used in advertising or otherwise to promote the sale, use or other dealings
|
||||
in this Software without prior written authorization from The Open Group.
|
||||
|
||||
|
||||
Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
|
||||
|
||||
All Rights Reserved
|
||||
|
||||
Permission to use, copy, modify, and distribute this software and its
|
||||
documentation for any purpose and without fee is hereby granted,
|
||||
provided that the above copyright notice appear in all copies and that
|
||||
both that copyright notice and this permission notice appear in
|
||||
supporting documentation, and that the name of Digital not be
|
||||
used in advertising or publicity pertaining to distribution of the
|
||||
software without specific, written prior permission.
|
||||
|
||||
DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
|
||||
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
|
||||
DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
|
||||
ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
||||
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
|
||||
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
SOFTWARE.
|
||||
|
||||
*/
|
||||
|
||||
#ifndef CMAP_H
|
||||
#define CMAP_H 1
|
||||
|
||||
#include <nx-X11/Xproto.h>
|
||||
#include "screenint.h"
|
||||
#include "window.h"
|
||||
|
||||
/* these follow X.h's AllocNone and AllocAll */
|
||||
#define CM_PSCREEN 2
|
||||
#define CM_PWIN 3
|
||||
/* Passed internally in colormap.c */
|
||||
#define REDMAP 0
|
||||
#define GREENMAP 1
|
||||
#define BLUEMAP 2
|
||||
#define PSEUDOMAP 3
|
||||
#define AllocPrivate (-1)
|
||||
#define AllocTemporary (-2)
|
||||
#define DynamicClass 1
|
||||
|
||||
/* Values for the flags field of a colormap. These should have 1 bit set
|
||||
* and not overlap */
|
||||
#define IsDefault 1
|
||||
#define AllAllocated 2
|
||||
#define BeingCreated 4
|
||||
|
||||
|
||||
typedef CARD32 Pixel;
|
||||
typedef struct _CMEntry *EntryPtr;
|
||||
/* moved to screenint.h: typedef struct _ColormapRec *ColormapPtr */
|
||||
typedef struct _colorResource *colorResourcePtr;
|
||||
|
||||
extern int CreateColormap(
|
||||
Colormap /*mid*/,
|
||||
ScreenPtr /*pScreen*/,
|
||||
VisualPtr /*pVisual*/,
|
||||
ColormapPtr* /*ppcmap*/,
|
||||
int /*alloc*/,
|
||||
int /*client*/);
|
||||
|
||||
extern int FreeColormap(
|
||||
void * /*pmap*/,
|
||||
XID /*mid*/);
|
||||
|
||||
extern int TellLostMap(
|
||||
WindowPtr /*pwin*/,
|
||||
void * /* Colormap *pmid */);
|
||||
|
||||
extern int TellGainedMap(
|
||||
WindowPtr /*pwin*/,
|
||||
void * /* Colormap *pmid */);
|
||||
|
||||
extern int CopyColormapAndFree(
|
||||
Colormap /*mid*/,
|
||||
ColormapPtr /*pSrc*/,
|
||||
int /*client*/);
|
||||
|
||||
extern int AllocColor(
|
||||
ColormapPtr /*pmap*/,
|
||||
unsigned short* /*pred*/,
|
||||
unsigned short* /*pgreen*/,
|
||||
unsigned short* /*pblue*/,
|
||||
Pixel* /*pPix*/,
|
||||
int /*client*/);
|
||||
|
||||
extern void FakeAllocColor(
|
||||
ColormapPtr /*pmap*/,
|
||||
xColorItem * /*item*/);
|
||||
|
||||
extern void FakeFreeColor(
|
||||
ColormapPtr /*pmap*/,
|
||||
Pixel /*pixel*/);
|
||||
|
||||
typedef int (*ColorCompareProcPtr)(
|
||||
EntryPtr /*pent*/,
|
||||
xrgb * /*prgb*/);
|
||||
|
||||
extern int FindColor(
|
||||
ColormapPtr /*pmap*/,
|
||||
EntryPtr /*pentFirst*/,
|
||||
int /*size*/,
|
||||
xrgb* /*prgb*/,
|
||||
Pixel* /*pPixel*/,
|
||||
int /*channel*/,
|
||||
int /*client*/,
|
||||
ColorCompareProcPtr /*comp*/);
|
||||
|
||||
extern int QueryColors(
|
||||
ColormapPtr /*pmap*/,
|
||||
int /*count*/,
|
||||
Pixel* /*ppixIn*/,
|
||||
xrgb* /*prgbList*/);
|
||||
|
||||
extern int FreeClientPixels(
|
||||
void * /*pcr*/,
|
||||
XID /*fakeid*/);
|
||||
|
||||
extern int AllocColorCells(
|
||||
int /*client*/,
|
||||
ColormapPtr /*pmap*/,
|
||||
int /*colors*/,
|
||||
int /*planes*/,
|
||||
Bool /*contig*/,
|
||||
Pixel* /*ppix*/,
|
||||
Pixel* /*masks*/);
|
||||
|
||||
extern int AllocColorPlanes(
|
||||
int /*client*/,
|
||||
ColormapPtr /*pmap*/,
|
||||
int /*colors*/,
|
||||
int /*r*/,
|
||||
int /*g*/,
|
||||
int /*b*/,
|
||||
Bool /*contig*/,
|
||||
Pixel* /*pixels*/,
|
||||
Pixel* /*prmask*/,
|
||||
Pixel* /*pgmask*/,
|
||||
Pixel* /*pbmask*/);
|
||||
|
||||
extern int FreeColors(
|
||||
ColormapPtr /*pmap*/,
|
||||
int /*client*/,
|
||||
int /*count*/,
|
||||
Pixel* /*pixels*/,
|
||||
Pixel /*mask*/);
|
||||
|
||||
extern int StoreColors(
|
||||
ColormapPtr /*pmap*/,
|
||||
int /*count*/,
|
||||
xColorItem* /*defs*/);
|
||||
|
||||
extern int IsMapInstalled(
|
||||
Colormap /*map*/,
|
||||
WindowPtr /*pWin*/);
|
||||
|
||||
extern Bool ResizeVisualArray(ScreenPtr /* pScreen */ ,
|
||||
int /* new_vis_count */ ,
|
||||
DepthPtr /* depth */ );
|
||||
|
||||
#endif /* CMAP_H */
|
||||
133
nx-X11/programs/Xserver/include/colormapst.h
Normal file
133
nx-X11/programs/Xserver/include/colormapst.h
Normal file
@@ -0,0 +1,133 @@
|
||||
/*
|
||||
|
||||
Copyright 1987, 1998 The Open Group
|
||||
|
||||
Permission to use, copy, modify, distribute, and sell this software and its
|
||||
documentation for any purpose is hereby granted without fee, provided that
|
||||
the above copyright notice appear in all copies and that both that
|
||||
copyright notice and this permission notice appear in supporting
|
||||
documentation.
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name of The Open Group shall not be
|
||||
used in advertising or otherwise to promote the sale, use or other dealings
|
||||
in this Software without prior written authorization from The Open Group.
|
||||
|
||||
|
||||
Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
|
||||
|
||||
All Rights Reserved
|
||||
|
||||
Permission to use, copy, modify, and distribute this software and its
|
||||
documentation for any purpose and without fee is hereby granted,
|
||||
provided that the above copyright notice appear in all copies and that
|
||||
both that copyright notice and this permission notice appear in
|
||||
supporting documentation, and that the name of Digital not be
|
||||
used in advertising or publicity pertaining to distribution of the
|
||||
software without specific, written prior permission.
|
||||
|
||||
DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
|
||||
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
|
||||
DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
|
||||
ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
||||
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
|
||||
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
SOFTWARE.
|
||||
|
||||
*/
|
||||
|
||||
#ifndef CMAPSTRUCT_H
|
||||
#define CMAPSTRUCT_H 1
|
||||
|
||||
#include <nx-X11/Xarch.h>
|
||||
|
||||
#include "colormap.h"
|
||||
#include "screenint.h"
|
||||
|
||||
/* Shared color -- the color is used by AllocColorPlanes */
|
||||
typedef struct
|
||||
{
|
||||
unsigned short color;
|
||||
short refcnt;
|
||||
} SHAREDCOLOR;
|
||||
|
||||
/* LOCO -- a local color for a PseudoColor cell. DirectColor maps always
|
||||
* use the first value (called red) in the structure. What channel they
|
||||
* are really talking about depends on which map they are in. */
|
||||
typedef struct
|
||||
{
|
||||
unsigned short red, green, blue;
|
||||
} LOCO;
|
||||
|
||||
/* SHCO -- a shared color for a PseudoColor cell. Used with AllocColorPlanes.
|
||||
* DirectColor maps always use the first value (called red) in the structure.
|
||||
* What channel they are really talking about depends on which map they
|
||||
* are in. */
|
||||
typedef struct
|
||||
{
|
||||
SHAREDCOLOR *red, *green, *blue;
|
||||
} SHCO;
|
||||
|
||||
|
||||
/* color map entry */
|
||||
typedef struct _CMEntry
|
||||
{
|
||||
union
|
||||
{
|
||||
LOCO local;
|
||||
SHCO shco;
|
||||
} co;
|
||||
short refcnt;
|
||||
Bool fShared;
|
||||
} Entry;
|
||||
|
||||
/*
|
||||
* COLORMAPs can be used for either Direct or Pseudo color. PseudoColor
|
||||
* only needs one cell table, we arbitrarily pick red. We keep track
|
||||
* of that table with freeRed, numPixelsRed, and clientPixelsRed
|
||||
*
|
||||
* The padN variables are unfortunate ABI BC. See fdo bug #6924.
|
||||
*/
|
||||
|
||||
typedef struct _ColormapRec
|
||||
{
|
||||
VisualPtr pVisual;
|
||||
short class; /* PseudoColor or DirectColor */
|
||||
#if defined(_XSERVER64)
|
||||
short pad0;
|
||||
XID pad1;
|
||||
#endif
|
||||
XID mid; /* client's name for colormap */
|
||||
#if defined(_XSERVER64) && (X_BYTE_ORDER == X_LITTLE_ENDIAN)
|
||||
XID pad2;
|
||||
#endif
|
||||
ScreenPtr pScreen; /* screen map is associated with */
|
||||
short flags; /* 1 = IsDefault
|
||||
* 2 = AllAllocated */
|
||||
int freeRed;
|
||||
int freeGreen;
|
||||
int freeBlue;
|
||||
int *numPixelsRed;
|
||||
int *numPixelsGreen;
|
||||
int *numPixelsBlue;
|
||||
Pixel **clientPixelsRed;
|
||||
Pixel **clientPixelsGreen;
|
||||
Pixel **clientPixelsBlue;
|
||||
Entry *red;
|
||||
Entry *green;
|
||||
Entry *blue;
|
||||
void * devPriv;
|
||||
DevUnion *devPrivates; /* dynamic devPrivates added after devPriv
|
||||
already existed - must keep devPriv */
|
||||
} ColormapRec;
|
||||
|
||||
#endif /* COLORMAP_H */
|
||||
146
nx-X11/programs/Xserver/include/cursor.h
Normal file
146
nx-X11/programs/Xserver/include/cursor.h
Normal file
@@ -0,0 +1,146 @@
|
||||
/***********************************************************
|
||||
|
||||
Copyright 1987, 1998 The Open Group
|
||||
|
||||
Permission to use, copy, modify, distribute, and sell this software and its
|
||||
documentation for any purpose is hereby granted without fee, provided that
|
||||
the above copyright notice appear in all copies and that both that
|
||||
copyright notice and this permission notice appear in supporting
|
||||
documentation.
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name of The Open Group shall not be
|
||||
used in advertising or otherwise to promote the sale, use or other dealings
|
||||
in this Software without prior written authorization from The Open Group.
|
||||
|
||||
|
||||
Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
|
||||
|
||||
All Rights Reserved
|
||||
|
||||
Permission to use, copy, modify, and distribute this software and its
|
||||
documentation for any purpose and without fee is hereby granted,
|
||||
provided that the above copyright notice appear in all copies and that
|
||||
both that copyright notice and this permission notice appear in
|
||||
supporting documentation, and that the name of Digital not be
|
||||
used in advertising or publicity pertaining to distribution of the
|
||||
software without specific, written prior permission.
|
||||
|
||||
DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
|
||||
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
|
||||
DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
|
||||
ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
||||
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
|
||||
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
SOFTWARE.
|
||||
|
||||
******************************************************************/
|
||||
|
||||
#ifndef CURSOR_H
|
||||
#define CURSOR_H
|
||||
|
||||
#include "misc.h"
|
||||
#include "screenint.h"
|
||||
#include "window.h"
|
||||
|
||||
#define NullCursor ((CursorPtr)NULL)
|
||||
|
||||
/* Provide support for alpha composited cursors */
|
||||
#ifdef RENDER
|
||||
#define ARGB_CURSOR
|
||||
#endif
|
||||
|
||||
typedef struct _Cursor *CursorPtr;
|
||||
typedef struct _CursorMetric *CursorMetricPtr;
|
||||
|
||||
extern CursorPtr rootCursor;
|
||||
|
||||
extern int FreeCursor(
|
||||
void * /*pCurs*/,
|
||||
XID /*cid*/);
|
||||
|
||||
/* Quartz support on Mac OS X pulls in the QuickDraw
|
||||
framework whose AllocCursor function conflicts here. */
|
||||
#ifdef __DARWIN__
|
||||
#define AllocCursor Darwin_X_AllocCursor
|
||||
#endif
|
||||
extern CursorPtr AllocCursor(
|
||||
unsigned char* /*psrcbits*/,
|
||||
unsigned char* /*pmaskbits*/,
|
||||
CursorMetricPtr /*cm*/,
|
||||
unsigned /*foreRed*/,
|
||||
unsigned /*foreGreen*/,
|
||||
unsigned /*foreBlue*/,
|
||||
unsigned /*backRed*/,
|
||||
unsigned /*backGreen*/,
|
||||
unsigned /*backBlue*/);
|
||||
|
||||
extern CursorPtr AllocCursorARGB(
|
||||
unsigned char* /*psrcbits*/,
|
||||
unsigned char* /*pmaskbits*/,
|
||||
CARD32* /*argb*/,
|
||||
CursorMetricPtr /*cm*/,
|
||||
unsigned /*foreRed*/,
|
||||
unsigned /*foreGreen*/,
|
||||
unsigned /*foreBlue*/,
|
||||
unsigned /*backRed*/,
|
||||
unsigned /*backGreen*/,
|
||||
unsigned /*backBlue*/);
|
||||
|
||||
extern int AllocGlyphCursor(
|
||||
Font /*source*/,
|
||||
unsigned int /*sourceChar*/,
|
||||
Font /*mask*/,
|
||||
unsigned int /*maskChar*/,
|
||||
unsigned /*foreRed*/,
|
||||
unsigned /*foreGreen*/,
|
||||
unsigned /*foreBlue*/,
|
||||
unsigned /*backRed*/,
|
||||
unsigned /*backGreen*/,
|
||||
unsigned /*backBlue*/,
|
||||
CursorPtr* /*ppCurs*/,
|
||||
ClientPtr /*client*/);
|
||||
|
||||
extern CursorPtr CreateRootCursor(
|
||||
char* /*pfilename*/,
|
||||
unsigned int /*glyph*/);
|
||||
|
||||
extern int ServerBitsFromGlyph(
|
||||
FontPtr /*pfont*/,
|
||||
unsigned int /*ch*/,
|
||||
register CursorMetricPtr /*cm*/,
|
||||
unsigned char ** /*ppbits*/);
|
||||
|
||||
extern Bool CursorMetricsFromGlyph(
|
||||
FontPtr /*pfont*/,
|
||||
unsigned /*ch*/,
|
||||
CursorMetricPtr /*cm*/);
|
||||
|
||||
extern void CheckCursorConfinement(
|
||||
WindowPtr /*pWin*/);
|
||||
|
||||
extern void NewCurrentScreen(
|
||||
ScreenPtr /*newScreen*/,
|
||||
int /*x*/,
|
||||
int /*y*/);
|
||||
|
||||
extern Bool PointerConfinedToScreen(void);
|
||||
|
||||
extern void GetSpritePosition(
|
||||
int * /*px*/,
|
||||
int * /*py*/);
|
||||
|
||||
#ifdef PANORAMIX
|
||||
extern int XineramaGetCursorScreen(void);
|
||||
#endif /* PANORAMIX */
|
||||
|
||||
#endif /* CURSOR_H */
|
||||
93
nx-X11/programs/Xserver/include/cursorstr.h
Normal file
93
nx-X11/programs/Xserver/include/cursorstr.h
Normal file
@@ -0,0 +1,93 @@
|
||||
/***********************************************************
|
||||
|
||||
Copyright 1987, 1998 The Open Group
|
||||
|
||||
Permission to use, copy, modify, distribute, and sell this software and its
|
||||
documentation for any purpose is hereby granted without fee, provided that
|
||||
the above copyright notice appear in all copies and that both that
|
||||
copyright notice and this permission notice appear in supporting
|
||||
documentation.
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name of The Open Group shall not be
|
||||
used in advertising or otherwise to promote the sale, use or other dealings
|
||||
in this Software without prior written authorization from The Open Group.
|
||||
|
||||
|
||||
Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
|
||||
|
||||
All Rights Reserved
|
||||
|
||||
Permission to use, copy, modify, and distribute this software and its
|
||||
documentation for any purpose and without fee is hereby granted,
|
||||
provided that the above copyright notice appear in all copies and that
|
||||
both that copyright notice and this permission notice appear in
|
||||
supporting documentation, and that the name of Digital not be
|
||||
used in advertising or publicity pertaining to distribution of the
|
||||
software without specific, written prior permission.
|
||||
|
||||
DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
|
||||
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
|
||||
DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
|
||||
ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
||||
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
|
||||
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
SOFTWARE.
|
||||
|
||||
******************************************************************/
|
||||
|
||||
#ifndef CURSORSTRUCT_H
|
||||
#define CURSORSTRUCT_H
|
||||
|
||||
#include "cursor.h"
|
||||
/*
|
||||
* device-independent cursor storage
|
||||
*/
|
||||
|
||||
/*
|
||||
* source and mask point directly to the bits, which are in the server-defined
|
||||
* bitmap format.
|
||||
*/
|
||||
typedef struct _CursorBits {
|
||||
unsigned char *source; /* points to bits */
|
||||
unsigned char *mask; /* points to bits */
|
||||
Bool emptyMask; /* all zeros mask */
|
||||
unsigned short width, height, xhot, yhot; /* metrics */
|
||||
int refcnt; /* can be shared */
|
||||
void * devPriv[MAXSCREENS]; /* set by pScr->RealizeCursor*/
|
||||
#ifdef ARGB_CURSOR
|
||||
CARD32 *argb; /* full-color alpha blended */
|
||||
#endif
|
||||
} CursorBits, *CursorBitsPtr;
|
||||
|
||||
typedef struct _Cursor {
|
||||
CursorBitsPtr bits;
|
||||
unsigned short foreRed, foreGreen, foreBlue; /* device-independent color */
|
||||
unsigned short backRed, backGreen, backBlue; /* device-independent color */
|
||||
int refcnt;
|
||||
void * devPriv[MAXSCREENS]; /* set by pScr->RealizeCursor*/
|
||||
#ifdef XFIXES
|
||||
CARD32 serialNumber;
|
||||
Atom name;
|
||||
#endif
|
||||
} CursorRec;
|
||||
|
||||
typedef struct _CursorMetric {
|
||||
unsigned short width, height, xhot, yhot;
|
||||
} CursorMetricRec;
|
||||
|
||||
typedef struct {
|
||||
int x, y;
|
||||
ScreenPtr pScreen;
|
||||
} HotSpot;
|
||||
|
||||
#endif /* CURSORSTRUCT_H */
|
||||
785
nx-X11/programs/Xserver/include/dix.h
Normal file
785
nx-X11/programs/Xserver/include/dix.h
Normal file
@@ -0,0 +1,785 @@
|
||||
/***********************************************************
|
||||
|
||||
Copyright 1987, 1998 The Open Group
|
||||
|
||||
Permission to use, copy, modify, distribute, and sell this software and its
|
||||
documentation for any purpose is hereby granted without fee, provided that
|
||||
the above copyright notice appear in all copies and that both that
|
||||
copyright notice and this permission notice appear in supporting
|
||||
documentation.
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name of The Open Group shall not be
|
||||
used in advertising or otherwise to promote the sale, use or other dealings
|
||||
in this Software without prior written authorization from The Open Group.
|
||||
|
||||
|
||||
Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
|
||||
|
||||
All Rights Reserved
|
||||
|
||||
Permission to use, copy, modify, and distribute this software and its
|
||||
documentation for any purpose and without fee is hereby granted,
|
||||
provided that the above copyright notice appear in all copies and that
|
||||
both that copyright notice and this permission notice appear in
|
||||
supporting documentation, and that the name of Digital not be
|
||||
used in advertising or publicity pertaining to distribution of the
|
||||
software without specific, written prior permission.
|
||||
|
||||
DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
|
||||
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
|
||||
DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
|
||||
ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
||||
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
|
||||
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
SOFTWARE.
|
||||
|
||||
******************************************************************/
|
||||
|
||||
#ifndef DIX_H
|
||||
#define DIX_H
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#include "gc.h"
|
||||
#include "window.h"
|
||||
#include "input.h"
|
||||
|
||||
#define EARLIER -1
|
||||
#define SAMETIME 0
|
||||
#define LATER 1
|
||||
|
||||
#define NullClient ((ClientPtr) 0)
|
||||
#define REQUEST(type) \
|
||||
register type *stuff = (type *)client->requestBuffer
|
||||
|
||||
|
||||
#define REQUEST_SIZE_MATCH(req)\
|
||||
if ((sizeof(req) >> 2) != client->req_len)\
|
||||
return(BadLength)
|
||||
|
||||
#define REQUEST_AT_LEAST_SIZE(req) \
|
||||
if ((sizeof(req) >> 2) > client->req_len )\
|
||||
return(BadLength)
|
||||
|
||||
#define REQUEST_AT_LEAST_EXTRA_SIZE(req, extra) \
|
||||
if (((sizeof(req) + ((uint64_t) extra)) >> 2) > client->req_len ) \
|
||||
return(BadLength)
|
||||
|
||||
#define REQUEST_FIXED_SIZE(req, n)\
|
||||
if (((sizeof(req) >> 2) > client->req_len) || \
|
||||
((n >> 2) >= client->req_len) || \
|
||||
((((uint64_t) sizeof(req) + (n) + 3) >> 2) != (uint64_t) client->req_len)) \
|
||||
return(BadLength)
|
||||
|
||||
#define LEGAL_NEW_RESOURCE(id,client)\
|
||||
if (!LegalNewID(id,client)) \
|
||||
{\
|
||||
client->errorValue = id;\
|
||||
return(BadIDChoice);\
|
||||
}
|
||||
|
||||
/* XXX if you are using this macro, you are probably not generating Match
|
||||
* errors where appropriate */
|
||||
#define LOOKUP_DRAWABLE(did, client)\
|
||||
((DrawablePtr)LookupDrawable(did, client))
|
||||
|
||||
#ifdef XCSECURITY
|
||||
|
||||
#define SECURITY_VERIFY_DRAWABLE(pDraw, did, client, mode)\
|
||||
{\
|
||||
pDraw = (DrawablePtr) SecurityLookupIDByClass(client, did, \
|
||||
RC_DRAWABLE, mode);\
|
||||
if (!pDraw) \
|
||||
{\
|
||||
client->errorValue = did; \
|
||||
return BadDrawable;\
|
||||
}\
|
||||
if (pDraw->type == UNDRAWABLE_WINDOW)\
|
||||
return BadMatch;\
|
||||
}
|
||||
|
||||
#define SECURITY_VERIFY_GEOMETRABLE(pDraw, did, client, mode)\
|
||||
{\
|
||||
pDraw = (DrawablePtr) SecurityLookupIDByClass(client, did, \
|
||||
RC_DRAWABLE, mode);\
|
||||
if (!pDraw) \
|
||||
{\
|
||||
client->errorValue = did; \
|
||||
return BadDrawable;\
|
||||
}\
|
||||
}
|
||||
|
||||
#define SECURITY_VERIFY_GC(pGC, rid, client, mode)\
|
||||
pGC = (GC *) SecurityLookupIDByType(client, rid, RT_GC, mode);\
|
||||
if (!pGC)\
|
||||
{\
|
||||
client->errorValue = rid;\
|
||||
return (BadGC);\
|
||||
}
|
||||
|
||||
#define VERIFY_DRAWABLE(pDraw, did, client)\
|
||||
SECURITY_VERIFY_DRAWABLE(pDraw, did, client, DixUnknownAccess)
|
||||
|
||||
#define VERIFY_GEOMETRABLE(pDraw, did, client)\
|
||||
SECURITY_VERIFY_GEOMETRABLE(pDraw, did, client, DixUnknownAccess)
|
||||
|
||||
#define VERIFY_GC(pGC, rid, client)\
|
||||
SECURITY_VERIFY_GC(pGC, rid, client, DixUnknownAccess)
|
||||
|
||||
#else /* not XCSECURITY */
|
||||
|
||||
#define VERIFY_DRAWABLE(pDraw, did, client)\
|
||||
{\
|
||||
pDraw = (DrawablePtr) LookupIDByClass(did, RC_DRAWABLE);\
|
||||
if (!pDraw) \
|
||||
{\
|
||||
client->errorValue = did; \
|
||||
return BadDrawable;\
|
||||
}\
|
||||
if (pDraw->type == UNDRAWABLE_WINDOW)\
|
||||
return BadMatch;\
|
||||
}
|
||||
|
||||
#define VERIFY_GEOMETRABLE(pDraw, did, client)\
|
||||
{\
|
||||
pDraw = (DrawablePtr) LookupIDByClass(did, RC_DRAWABLE);\
|
||||
if (!pDraw) \
|
||||
{\
|
||||
client->errorValue = did; \
|
||||
return BadDrawable;\
|
||||
}\
|
||||
}
|
||||
|
||||
#define VERIFY_GC(pGC, rid, client)\
|
||||
pGC = (GC *)LookupIDByType(rid, RT_GC);\
|
||||
if (!pGC)\
|
||||
{\
|
||||
client->errorValue = rid;\
|
||||
return (BadGC);\
|
||||
}
|
||||
|
||||
#define SECURITY_VERIFY_DRAWABLE(pDraw, did, client, mode)\
|
||||
VERIFY_DRAWABLE(pDraw, did, client)
|
||||
|
||||
#define SECURITY_VERIFY_GEOMETRABLE(pDraw, did, client, mode)\
|
||||
VERIFY_GEOMETRABLE(pDraw, did, client)
|
||||
|
||||
#define SECURITY_VERIFY_GC(pGC, rid, client, mode)\
|
||||
VERIFY_GC(pGC, rid, client)
|
||||
|
||||
#endif /* XCSECURITY */
|
||||
|
||||
/*
|
||||
* We think that most hardware implementations of DBE will want
|
||||
* LookupID*(dbe_back_buffer_id) to return the window structure that the
|
||||
* id is a back buffer for. Since both front and back buffers will
|
||||
* return the same structure, you need to be able to distinguish
|
||||
* somewhere what kind of buffer (front/back) was being asked for, so
|
||||
* that ddx can render to the right place. That's the problem that the
|
||||
* following code solves. Note: we couldn't embed this in the LookupID*
|
||||
* functions because the VALIDATE_DRAWABLE_AND_GC macro often circumvents
|
||||
* those functions by checking a one-element cache. That's why we're
|
||||
* mucking with VALIDATE_DRAWABLE_AND_GC.
|
||||
*
|
||||
* If you put -DNEED_DBE_BUF_BITS into PervasiveDBEDefines, the window
|
||||
* structure will have two additional bits defined, srcBuffer and
|
||||
* dstBuffer, and their values will be maintained via the macros
|
||||
* SET_DBE_DSTBUF and SET_DBE_SRCBUF (below). If you also
|
||||
* put -DNEED_DBE_BUF_VALIDATE into PervasiveDBEDefines, the function
|
||||
* DbeValidateBuffer will be called any time the bits change to give you
|
||||
* a chance to do some setup. See the DBE code for more details on this
|
||||
* function. We put in these levels of conditionality so that you can do
|
||||
* just what you need to do, and no more. If neither of these defines
|
||||
* are used, the bits won't be there, and VALIDATE_DRAWABLE_AND_GC will
|
||||
* be unchanged. dpw
|
||||
*/
|
||||
|
||||
#if defined(NEED_DBE_BUF_BITS)
|
||||
#define SET_DBE_DSTBUF(_pDraw, _drawID) \
|
||||
SET_DBE_BUF(_pDraw, _drawID, dstBuffer, TRUE)
|
||||
#define SET_DBE_SRCBUF(_pDraw, _drawID) \
|
||||
SET_DBE_BUF(_pDraw, _drawID, srcBuffer, FALSE)
|
||||
#if defined (NEED_DBE_BUF_VALIDATE)
|
||||
#define SET_DBE_BUF(_pDraw, _drawID, _whichBuffer, _dstbuf) \
|
||||
if (_pDraw->type == DRAWABLE_WINDOW)\
|
||||
{\
|
||||
int thisbuf = (_pDraw->id == _drawID);\
|
||||
if (thisbuf != ((WindowPtr)_pDraw)->_whichBuffer)\
|
||||
{\
|
||||
((WindowPtr)_pDraw)->_whichBuffer = thisbuf;\
|
||||
DbeValidateBuffer((WindowPtr)_pDraw, _drawID, _dstbuf);\
|
||||
}\
|
||||
}
|
||||
#else /* want buffer bits, but don't need to call DbeValidateBuffer */
|
||||
#define SET_DBE_BUF(_pDraw, _drawID, _whichBuffer, _dstbuf) \
|
||||
if (_pDraw->type == DRAWABLE_WINDOW)\
|
||||
{\
|
||||
((WindowPtr)_pDraw)->_whichBuffer = (_pDraw->id == _drawID);\
|
||||
}
|
||||
#endif /* NEED_DBE_BUF_VALIDATE */
|
||||
#else /* don't want buffer bits in window */
|
||||
#define SET_DBE_DSTBUF(_pDraw, _drawID) /**/
|
||||
#define SET_DBE_SRCBUF(_pDraw, _drawID) /**/
|
||||
#endif /* NEED_DBE_BUF_BITS */
|
||||
|
||||
#define VALIDATE_DRAWABLE_AND_GC(drawID, pDraw, pGC, client)\
|
||||
{\
|
||||
SECURITY_VERIFY_GEOMETRABLE(pDraw, drawID, client, DixWriteAccess);\
|
||||
SECURITY_VERIFY_GC(pGC, stuff->gc, client, DixReadAccess);\
|
||||
if ((pGC->depth != pDraw->depth) ||\
|
||||
(pGC->pScreen != pDraw->pScreen))\
|
||||
return (BadMatch);\
|
||||
}\
|
||||
SET_DBE_DSTBUF(pDraw, drawID);\
|
||||
if (pGC->serialNumber != pDraw->serialNumber)\
|
||||
ValidateGC(pDraw, pGC);
|
||||
|
||||
|
||||
#define WriteReplyToClient(pClient, size, pReply) { \
|
||||
if ((pClient)->swapped) \
|
||||
(*ReplySwapVector[((xReq *)(pClient)->requestBuffer)->reqType]) \
|
||||
(pClient, (int)(size), pReply); \
|
||||
else WriteToClient(pClient, (int)(size), (pReply)); }
|
||||
|
||||
#define WriteSwappedDataToClient(pClient, size, pbuf) \
|
||||
if ((pClient)->swapped) \
|
||||
(*(pClient)->pSwapReplyFunc)(pClient, (int)(size), pbuf); \
|
||||
else WriteToClient (pClient, (int)(size), (pbuf));
|
||||
|
||||
typedef struct _TimeStamp *TimeStampPtr;
|
||||
|
||||
#ifndef _XTYPEDEF_CLIENTPTR
|
||||
typedef struct _Client *ClientPtr; /* also in misc.h */
|
||||
#define _XTYPEDEF_CLIENTPTR
|
||||
#endif
|
||||
|
||||
typedef struct _WorkQueue *WorkQueuePtr;
|
||||
|
||||
extern ClientPtr *clients;
|
||||
extern ClientPtr serverClient;
|
||||
extern int currentMaxClients;
|
||||
|
||||
typedef int HWEventQueueType;
|
||||
typedef HWEventQueueType* HWEventQueuePtr;
|
||||
|
||||
extern HWEventQueuePtr checkForInput[2];
|
||||
|
||||
typedef struct _TimeStamp {
|
||||
CARD32 months; /* really ~49.7 days */
|
||||
CARD32 milliseconds;
|
||||
} TimeStamp;
|
||||
|
||||
/* dispatch.c */
|
||||
|
||||
extern void SetInputCheck(
|
||||
HWEventQueuePtr /*c0*/,
|
||||
HWEventQueuePtr /*c1*/);
|
||||
|
||||
extern void CloseDownClient(
|
||||
ClientPtr /*client*/);
|
||||
|
||||
extern void UpdateCurrentTime(void);
|
||||
|
||||
extern void UpdateCurrentTimeIf(void);
|
||||
|
||||
extern void InitSelections(void);
|
||||
|
||||
extern int dixDestroyPixmap(
|
||||
void * /*value*/,
|
||||
XID /*pid*/);
|
||||
|
||||
extern void CloseDownRetainedResources(void);
|
||||
|
||||
extern void InitClient(
|
||||
ClientPtr /*client*/,
|
||||
int /*i*/,
|
||||
void * /*ospriv*/);
|
||||
|
||||
extern ClientPtr NextAvailableClient(
|
||||
void * /*ospriv*/);
|
||||
|
||||
extern void SendErrorToClient(
|
||||
ClientPtr /*client*/,
|
||||
unsigned int /*majorCode*/,
|
||||
unsigned int /*minorCode*/,
|
||||
XID /*resId*/,
|
||||
int /*errorCode*/);
|
||||
|
||||
extern void DeleteWindowFromAnySelections(
|
||||
WindowPtr /*pWin*/);
|
||||
|
||||
extern void MarkClientException(
|
||||
ClientPtr /*client*/);
|
||||
|
||||
extern int GetGeometry(
|
||||
ClientPtr /*client*/,
|
||||
xGetGeometryReply* /* wa */);
|
||||
|
||||
extern int SendConnSetup(
|
||||
ClientPtr /*client*/,
|
||||
char* /*reason*/);
|
||||
|
||||
extern int DoGetImage(
|
||||
ClientPtr /*client*/,
|
||||
int /*format*/,
|
||||
Drawable /*drawable*/,
|
||||
int /*x*/,
|
||||
int /*y*/,
|
||||
int /*width*/,
|
||||
int /*height*/,
|
||||
Mask /*planemask*/,
|
||||
xGetImageReply ** /*im_return*/);
|
||||
|
||||
#if defined(DDXBEFORERESET)
|
||||
extern void ddxBeforeReset (void);
|
||||
#endif
|
||||
|
||||
/* dixutils.c */
|
||||
|
||||
extern void CopyISOLatin1Lowered(
|
||||
char * /*dest*/,
|
||||
const char * /*source*/,
|
||||
int /*length*/);
|
||||
|
||||
extern int CompareISOLatin1Lowered(
|
||||
unsigned char * /*a*/,
|
||||
int alen,
|
||||
unsigned char * /*b*/,
|
||||
int blen);
|
||||
|
||||
#ifdef XCSECURITY
|
||||
|
||||
extern WindowPtr SecurityLookupWindow(
|
||||
XID /*rid*/,
|
||||
ClientPtr /*client*/,
|
||||
Mask /*access_mode*/);
|
||||
|
||||
extern void * SecurityLookupDrawable(
|
||||
XID /*rid*/,
|
||||
ClientPtr /*client*/,
|
||||
Mask /*access_mode*/);
|
||||
|
||||
extern WindowPtr LookupWindow(
|
||||
XID /*rid*/,
|
||||
ClientPtr /*client*/);
|
||||
|
||||
extern void * LookupDrawable(
|
||||
XID /*rid*/,
|
||||
ClientPtr /*client*/);
|
||||
|
||||
#else
|
||||
|
||||
extern WindowPtr LookupWindow(
|
||||
XID /*rid*/,
|
||||
ClientPtr /*client*/);
|
||||
|
||||
extern void * LookupDrawable(
|
||||
XID /*rid*/,
|
||||
ClientPtr /*client*/);
|
||||
|
||||
#define SecurityLookupWindow(rid, client, access_mode) \
|
||||
LookupWindow(rid, client)
|
||||
|
||||
#define SecurityLookupDrawable(rid, client, access_mode) \
|
||||
LookupDrawable(rid, client)
|
||||
|
||||
#endif /* XCSECURITY */
|
||||
|
||||
extern ClientPtr LookupClient(
|
||||
XID /*rid*/,
|
||||
ClientPtr /*client*/);
|
||||
|
||||
extern void NoopDDA(void);
|
||||
|
||||
extern int AlterSaveSetForClient(
|
||||
ClientPtr /*client*/,
|
||||
WindowPtr /*pWin*/,
|
||||
unsigned /*mode*/,
|
||||
Bool /*toRoot*/,
|
||||
Bool /*remap*/);
|
||||
|
||||
extern void DeleteWindowFromAnySaveSet(
|
||||
WindowPtr /*pWin*/);
|
||||
|
||||
extern void BlockHandler(
|
||||
void * /*pTimeout*/,
|
||||
void * /*pReadmask*/);
|
||||
|
||||
extern void WakeupHandler(
|
||||
int /*result*/,
|
||||
void * /*pReadmask*/);
|
||||
|
||||
typedef void (* WakeupHandlerProcPtr)(
|
||||
void * /* blockData */,
|
||||
int /* result */,
|
||||
void * /* pReadmask */);
|
||||
|
||||
extern Bool RegisterBlockAndWakeupHandlers(
|
||||
BlockHandlerProcPtr /*blockHandler*/,
|
||||
WakeupHandlerProcPtr /*wakeupHandler*/,
|
||||
void * /*blockData*/);
|
||||
|
||||
extern void RemoveBlockAndWakeupHandlers(
|
||||
BlockHandlerProcPtr /*blockHandler*/,
|
||||
WakeupHandlerProcPtr /*wakeupHandler*/,
|
||||
void * /*blockData*/);
|
||||
|
||||
extern void InitBlockAndWakeupHandlers(void);
|
||||
|
||||
extern void ProcessWorkQueue(void);
|
||||
|
||||
extern void ProcessWorkQueueZombies(void);
|
||||
|
||||
extern Bool QueueWorkProc(
|
||||
Bool (* /*function*/)(
|
||||
ClientPtr /*clientUnused*/,
|
||||
void * /*closure*/),
|
||||
ClientPtr /*client*/,
|
||||
void * /*closure*/
|
||||
);
|
||||
|
||||
typedef Bool (* ClientSleepProcPtr)(
|
||||
ClientPtr /*client*/,
|
||||
void * /*closure*/);
|
||||
|
||||
extern Bool ClientSleep(
|
||||
ClientPtr /*client*/,
|
||||
ClientSleepProcPtr /* function */,
|
||||
void * /*closure*/);
|
||||
|
||||
#ifndef ___CLIENTSIGNAL_DEFINED___
|
||||
#define ___CLIENTSIGNAL_DEFINED___
|
||||
extern Bool ClientSignal(
|
||||
ClientPtr /*client*/);
|
||||
#endif /* ___CLIENTSIGNAL_DEFINED___ */
|
||||
|
||||
extern void ClientWakeup(
|
||||
ClientPtr /*client*/);
|
||||
|
||||
extern Bool ClientIsAsleep(
|
||||
ClientPtr /*client*/);
|
||||
|
||||
/* atom.c */
|
||||
|
||||
extern Atom MakeAtom(
|
||||
const char * /*string*/,
|
||||
unsigned /*len*/,
|
||||
Bool /*makeit*/);
|
||||
|
||||
extern Bool ValidAtom(
|
||||
Atom /*atom*/);
|
||||
|
||||
extern const char *NameForAtom(
|
||||
Atom /*atom*/);
|
||||
|
||||
extern void AtomError(void);
|
||||
|
||||
extern void FreeAllAtoms(void);
|
||||
|
||||
extern void InitAtoms(void);
|
||||
|
||||
/* events.c */
|
||||
|
||||
extern void SetMaskForEvent(
|
||||
Mask /* mask */,
|
||||
int /* event */);
|
||||
|
||||
|
||||
extern Bool IsParent(
|
||||
WindowPtr /* maybeparent */,
|
||||
WindowPtr /* child */);
|
||||
|
||||
extern WindowPtr GetCurrentRootWindow(void);
|
||||
|
||||
extern WindowPtr GetSpriteWindow(void);
|
||||
|
||||
|
||||
extern void NoticeEventTime(xEventPtr /* xE */);
|
||||
|
||||
extern void EnqueueEvent(
|
||||
xEventPtr /* xE */,
|
||||
DeviceIntPtr /* device */,
|
||||
int /* count */);
|
||||
|
||||
extern void ComputeFreezes(void);
|
||||
|
||||
extern void CheckGrabForSyncs(
|
||||
DeviceIntPtr /* dev */,
|
||||
Bool /* thisMode */,
|
||||
Bool /* otherMode */);
|
||||
|
||||
extern void ActivatePointerGrab(
|
||||
DeviceIntPtr /* mouse */,
|
||||
GrabPtr /* grab */,
|
||||
TimeStamp /* time */,
|
||||
Bool /* autoGrab */);
|
||||
|
||||
extern void DeactivatePointerGrab(
|
||||
DeviceIntPtr /* mouse */);
|
||||
|
||||
extern void ActivateKeyboardGrab(
|
||||
DeviceIntPtr /* keybd */,
|
||||
GrabPtr /* grab */,
|
||||
TimeStamp /* time */,
|
||||
Bool /* passive */);
|
||||
|
||||
extern void DeactivateKeyboardGrab(
|
||||
DeviceIntPtr /* keybd */);
|
||||
|
||||
extern void AllowSome(
|
||||
ClientPtr /* client */,
|
||||
TimeStamp /* time */,
|
||||
DeviceIntPtr /* thisDev */,
|
||||
int /* newState */);
|
||||
|
||||
extern void ReleaseActiveGrabs(
|
||||
ClientPtr client);
|
||||
|
||||
extern int DeliverEventsToWindow(
|
||||
WindowPtr /* pWin */,
|
||||
xEventPtr /* pEvents */,
|
||||
int /* count */,
|
||||
Mask /* filter */,
|
||||
GrabPtr /* grab */,
|
||||
int /* mskidx */);
|
||||
|
||||
extern int DeliverDeviceEvents(
|
||||
WindowPtr /* pWin */,
|
||||
xEventPtr /* xE */,
|
||||
GrabPtr /* grab */,
|
||||
WindowPtr /* stopAt */,
|
||||
DeviceIntPtr /* dev */,
|
||||
int /* count */);
|
||||
|
||||
extern void DefineInitialRootWindow(
|
||||
WindowPtr /* win */);
|
||||
|
||||
extern void WindowHasNewCursor(
|
||||
WindowPtr /* pWin */);
|
||||
|
||||
extern Bool CheckDeviceGrabs(
|
||||
DeviceIntPtr /* device */,
|
||||
xEventPtr /* xE */,
|
||||
int /* checkFirst */,
|
||||
int /* count */);
|
||||
|
||||
extern void DeliverFocusedEvent(
|
||||
DeviceIntPtr /* keybd */,
|
||||
xEventPtr /* xE */,
|
||||
WindowPtr /* window */,
|
||||
int /* count */);
|
||||
|
||||
extern void DeliverGrabbedEvent(
|
||||
xEventPtr /* xE */,
|
||||
DeviceIntPtr /* thisDev */,
|
||||
Bool /* deactivateGrab */,
|
||||
int /* count */);
|
||||
|
||||
#ifdef XKB
|
||||
extern void FixKeyState(
|
||||
xEvent * /* xE */,
|
||||
DeviceIntPtr /* keybd */);
|
||||
#endif /* XKB */
|
||||
|
||||
extern void RecalculateDeliverableEvents(
|
||||
WindowPtr /* pWin */);
|
||||
|
||||
extern int OtherClientGone(
|
||||
void * /* value */,
|
||||
XID /* id */);
|
||||
|
||||
extern void DoFocusEvents(
|
||||
DeviceIntPtr /* dev */,
|
||||
WindowPtr /* fromWin */,
|
||||
WindowPtr /* toWin */,
|
||||
int /* mode */);
|
||||
|
||||
extern int SetInputFocus(
|
||||
ClientPtr /* client */,
|
||||
DeviceIntPtr /* dev */,
|
||||
Window /* focusID */,
|
||||
CARD8 /* revertTo */,
|
||||
Time /* ctime */,
|
||||
Bool /* followOK */);
|
||||
|
||||
extern int GrabDevice(
|
||||
ClientPtr /* client */,
|
||||
DeviceIntPtr /* dev */,
|
||||
unsigned /* this_mode */,
|
||||
unsigned /* other_mode */,
|
||||
Window /* grabWindow */,
|
||||
unsigned /* ownerEvents */,
|
||||
Time /* ctime */,
|
||||
Mask /* mask */,
|
||||
CARD8 * /* status */);
|
||||
|
||||
extern void InitEvents(void);
|
||||
|
||||
extern void CloseDownEvents(void);
|
||||
|
||||
extern void DeleteWindowFromAnyEvents(
|
||||
WindowPtr /* pWin */,
|
||||
Bool /* freeResources */);
|
||||
|
||||
|
||||
extern Mask EventMaskForClient(
|
||||
WindowPtr /* pWin */,
|
||||
ClientPtr /* client */);
|
||||
|
||||
|
||||
|
||||
extern int DeliverEvents(
|
||||
WindowPtr /*pWin*/,
|
||||
xEventPtr /*xE*/,
|
||||
int /*count*/,
|
||||
WindowPtr /*otherParent*/);
|
||||
|
||||
|
||||
extern void WriteEventsToClient(
|
||||
ClientPtr /*pClient*/,
|
||||
int /*count*/,
|
||||
xEventPtr /*events*/);
|
||||
|
||||
extern int TryClientEvents(
|
||||
ClientPtr /*client*/,
|
||||
xEventPtr /*pEvents*/,
|
||||
int /*count*/,
|
||||
Mask /*mask*/,
|
||||
Mask /*filter*/,
|
||||
GrabPtr /*grab*/);
|
||||
|
||||
extern void WindowsRestructured(void);
|
||||
|
||||
|
||||
#ifdef RANDR
|
||||
void
|
||||
ScreenRestructured (ScreenPtr pScreen);
|
||||
#endif
|
||||
|
||||
extern void ResetClientPrivates(void);
|
||||
|
||||
extern int AllocateClientPrivateIndex(void);
|
||||
|
||||
extern Bool AllocateClientPrivate(
|
||||
int /*index*/,
|
||||
unsigned /*amount*/);
|
||||
|
||||
/*
|
||||
* callback manager stuff
|
||||
*/
|
||||
|
||||
#ifndef _XTYPEDEF_CALLBACKLISTPTR
|
||||
typedef struct _CallbackList *CallbackListPtr; /* also in misc.h */
|
||||
#define _XTYPEDEF_CALLBACKLISTPTR
|
||||
#endif
|
||||
|
||||
typedef void (*CallbackProcPtr) (
|
||||
CallbackListPtr *, void *, void *);
|
||||
|
||||
typedef Bool (*AddCallbackProcPtr) (
|
||||
CallbackListPtr *, CallbackProcPtr, void *);
|
||||
|
||||
typedef Bool (*DeleteCallbackProcPtr) (
|
||||
CallbackListPtr *, CallbackProcPtr, void *);
|
||||
|
||||
typedef void (*CallCallbacksProcPtr) (
|
||||
CallbackListPtr *, void *);
|
||||
|
||||
typedef void (*DeleteCallbackListProcPtr) (
|
||||
CallbackListPtr *);
|
||||
|
||||
typedef struct _CallbackProcs {
|
||||
AddCallbackProcPtr AddCallback;
|
||||
DeleteCallbackProcPtr DeleteCallback;
|
||||
CallCallbacksProcPtr CallCallbacks;
|
||||
DeleteCallbackListProcPtr DeleteCallbackList;
|
||||
} CallbackFuncsRec, *CallbackFuncsPtr;
|
||||
|
||||
extern Bool CreateCallbackList(
|
||||
CallbackListPtr * /*pcbl*/,
|
||||
CallbackFuncsPtr /*cbfuncs*/);
|
||||
|
||||
extern Bool AddCallback(
|
||||
CallbackListPtr * /*pcbl*/,
|
||||
CallbackProcPtr /*callback*/,
|
||||
void * /*data*/);
|
||||
|
||||
extern Bool DeleteCallback(
|
||||
CallbackListPtr * /*pcbl*/,
|
||||
CallbackProcPtr /*callback*/,
|
||||
void * /*data*/);
|
||||
|
||||
extern void CallCallbacks(
|
||||
CallbackListPtr * /*pcbl*/,
|
||||
void * /*call_data*/);
|
||||
|
||||
extern void DeleteCallbackList(
|
||||
CallbackListPtr * /*pcbl*/);
|
||||
|
||||
extern void InitCallbackManager(void);
|
||||
|
||||
/*
|
||||
* ServerGrabCallback stuff
|
||||
*/
|
||||
|
||||
extern CallbackListPtr ServerGrabCallback;
|
||||
|
||||
typedef enum {SERVER_GRABBED, SERVER_UNGRABBED,
|
||||
CLIENT_PERVIOUS, CLIENT_IMPERVIOUS } ServerGrabState;
|
||||
|
||||
typedef struct {
|
||||
ClientPtr client;
|
||||
ServerGrabState grabstate;
|
||||
} ServerGrabInfoRec;
|
||||
|
||||
/*
|
||||
* EventCallback stuff
|
||||
*/
|
||||
|
||||
extern CallbackListPtr EventCallback;
|
||||
|
||||
typedef struct {
|
||||
ClientPtr client;
|
||||
xEventPtr events;
|
||||
int count;
|
||||
} EventInfoRec;
|
||||
|
||||
/*
|
||||
* DeviceEventCallback stuff
|
||||
*/
|
||||
|
||||
extern CallbackListPtr DeviceEventCallback;
|
||||
|
||||
typedef struct {
|
||||
xEventPtr events;
|
||||
int count;
|
||||
} DeviceEventInfoRec;
|
||||
|
||||
/*
|
||||
* SelectionCallback stuff
|
||||
*/
|
||||
|
||||
extern CallbackListPtr SelectionCallback;
|
||||
|
||||
typedef enum {
|
||||
SelectionSetOwner,
|
||||
SelectionWindowDestroy,
|
||||
SelectionClientClose
|
||||
} SelectionCallbackKind;
|
||||
|
||||
typedef struct {
|
||||
struct _Selection *selection;
|
||||
SelectionCallbackKind kind;
|
||||
} SelectionInfoRec;
|
||||
|
||||
#endif /* DIX_H */
|
||||
105
nx-X11/programs/Xserver/include/dixevents.h
Normal file
105
nx-X11/programs/Xserver/include/dixevents.h
Normal file
@@ -0,0 +1,105 @@
|
||||
/************************************************************
|
||||
|
||||
Copyright 1996 by Thomas E. Dickey <dickey@clark.net>
|
||||
|
||||
All Rights Reserved
|
||||
|
||||
Permission to use, copy, modify, and distribute this software and its
|
||||
documentation for any purpose and without fee is hereby granted,
|
||||
provided that the above copyright notice appear in all copies and that
|
||||
both that copyright notice and this permission notice appear in
|
||||
supporting documentation, and that the name of the above listed
|
||||
copyright holder(s) not be used in advertising or publicity pertaining
|
||||
to distribution of the software without specific, written prior
|
||||
permission.
|
||||
|
||||
THE ABOVE LISTED COPYRIGHT HOLDER(S) DISCLAIM ALL WARRANTIES WITH REGARD
|
||||
TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
AND FITNESS, IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE
|
||||
LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
********************************************************/
|
||||
|
||||
#ifndef DIXEVENTS_H
|
||||
#define DIXEVENTS_H
|
||||
|
||||
extern void SetCriticalEvent(int /* event */);
|
||||
|
||||
extern CursorPtr GetSpriteCursor(void);
|
||||
|
||||
extern int ProcAllowEvents(ClientPtr /* client */);
|
||||
|
||||
extern int MaybeDeliverEventsToClient(
|
||||
WindowPtr /* pWin */,
|
||||
xEvent * /* pEvents */,
|
||||
int /* count */,
|
||||
Mask /* filter */,
|
||||
ClientPtr /* dontClient */);
|
||||
|
||||
extern int ProcWarpPointer(ClientPtr /* client */);
|
||||
|
||||
#if 0
|
||||
extern void
|
||||
#ifdef XKB
|
||||
CoreProcessKeyboardEvent (
|
||||
#else
|
||||
ProcessKeyboardEvent (
|
||||
#endif
|
||||
xEvent * /* xE */,
|
||||
DeviceIntPtr /* keybd */,
|
||||
int /* count */);
|
||||
|
||||
extern void
|
||||
#ifdef XKB
|
||||
CoreProcessPointerEvent (
|
||||
#else
|
||||
ProcessPointerEvent (
|
||||
#endif
|
||||
xEvent * /* xE */,
|
||||
DeviceIntPtr /* mouse */,
|
||||
int /* count */);
|
||||
#endif
|
||||
|
||||
extern int EventSelectForWindow(
|
||||
WindowPtr /* pWin */,
|
||||
ClientPtr /* client */,
|
||||
Mask /* mask */);
|
||||
|
||||
extern int EventSuppressForWindow(
|
||||
WindowPtr /* pWin */,
|
||||
ClientPtr /* client */,
|
||||
Mask /* mask */,
|
||||
Bool * /* checkOptional */);
|
||||
|
||||
extern int ProcSetInputFocus(ClientPtr /* client */);
|
||||
|
||||
extern int ProcGetInputFocus(ClientPtr /* client */);
|
||||
|
||||
extern int ProcGrabPointer(ClientPtr /* client */);
|
||||
|
||||
extern int ProcChangeActivePointerGrab(ClientPtr /* client */);
|
||||
|
||||
extern int ProcUngrabPointer(ClientPtr /* client */);
|
||||
|
||||
extern int ProcGrabKeyboard(ClientPtr /* client */);
|
||||
|
||||
extern int ProcUngrabKeyboard(ClientPtr /* client */);
|
||||
|
||||
extern int ProcQueryPointer(ClientPtr /* client */);
|
||||
|
||||
extern int ProcSendEvent(ClientPtr /* client */);
|
||||
|
||||
extern int ProcUngrabKey(ClientPtr /* client */);
|
||||
|
||||
extern int ProcGrabKey(ClientPtr /* client */);
|
||||
|
||||
extern int ProcGrabButton(ClientPtr /* client */);
|
||||
|
||||
extern int ProcUngrabButton(ClientPtr /* client */);
|
||||
|
||||
extern int ProcRecolorCursor(ClientPtr /* client */);
|
||||
|
||||
#endif /* DIXEVENTS_H */
|
||||
178
nx-X11/programs/Xserver/include/dixfont.h
Normal file
178
nx-X11/programs/Xserver/include/dixfont.h
Normal file
@@ -0,0 +1,178 @@
|
||||
/***********************************************************
|
||||
Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
|
||||
|
||||
All Rights Reserved
|
||||
|
||||
Permission to use, copy, modify, and distribute this software and its
|
||||
documentation for any purpose and without fee is hereby granted,
|
||||
provided that the above copyright notice appear in all copies and that
|
||||
both that copyright notice and this permission notice appear in
|
||||
supporting documentation, and that the name of Digital not be
|
||||
used in advertising or publicity pertaining to distribution of the
|
||||
software without specific, written prior permission.
|
||||
|
||||
DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
|
||||
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
|
||||
DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
|
||||
ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
||||
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
|
||||
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
SOFTWARE.
|
||||
|
||||
******************************************************************/
|
||||
|
||||
#ifndef DIXFONT_H
|
||||
#define DIXFONT_H 1
|
||||
|
||||
#include "dix.h"
|
||||
#include <X11/fonts/font.h>
|
||||
#include "closure.h"
|
||||
#include <X11/fonts/fontstruct.h>
|
||||
|
||||
#ifdef HAS_XFONT2
|
||||
# include <X11/fonts/libxfont2.h>
|
||||
#else
|
||||
# include <X11/fonts/fontutil.h>
|
||||
#endif /* HAS XFONT2 */
|
||||
|
||||
#define NullDIXFontProp ((DIXFontPropPtr)0)
|
||||
|
||||
typedef struct _DIXFontProp *DIXFontPropPtr;
|
||||
|
||||
#ifdef HAS_XFONT2
|
||||
extern xfont2_fpe_funcs_rec const **fpe_functions;
|
||||
#else
|
||||
extern FPEFunctions *fpe_functions;
|
||||
#endif /* HAS_XFONT2 */
|
||||
|
||||
extern int FontToXError(int /*err*/);
|
||||
|
||||
extern Bool SetDefaultFont(char * /*defaultfontname*/);
|
||||
|
||||
extern void QueueFontWakeup(FontPathElementPtr /*fpe*/);
|
||||
|
||||
extern void RemoveFontWakeup(FontPathElementPtr /*fpe*/);
|
||||
|
||||
extern void FontWakeup(void * /*data*/,
|
||||
int /*count*/,
|
||||
void * /*LastSelectMask*/);
|
||||
|
||||
extern int OpenFont(ClientPtr /*client*/,
|
||||
XID /*fid*/,
|
||||
Mask /*flags*/,
|
||||
unsigned /*lenfname*/,
|
||||
char * /*pfontname*/);
|
||||
|
||||
extern int CloseFont(void * /*pfont*/,
|
||||
XID /*fid*/);
|
||||
|
||||
typedef struct _xQueryFontReply *xQueryFontReplyPtr;
|
||||
|
||||
extern void QueryFont(FontPtr /*pFont*/,
|
||||
xQueryFontReplyPtr /*pReply*/,
|
||||
int /*nProtoCCIStructs*/);
|
||||
|
||||
extern int ListFonts(ClientPtr /*client*/,
|
||||
unsigned char * /*pattern*/,
|
||||
unsigned int /*length*/,
|
||||
unsigned int /*max_names*/);
|
||||
|
||||
int
|
||||
doListFontsWithInfo(ClientPtr /*client*/,
|
||||
LFWIclosurePtr /*c*/);
|
||||
|
||||
extern int doPolyText(ClientPtr /*client*/,
|
||||
PTclosurePtr /*c*/
|
||||
);
|
||||
|
||||
extern int PolyText(ClientPtr /*client*/,
|
||||
DrawablePtr /*pDraw*/,
|
||||
GCPtr /*pGC*/,
|
||||
unsigned char * /*pElt*/,
|
||||
unsigned char * /*endReq*/,
|
||||
int /*xorg*/,
|
||||
int /*yorg*/,
|
||||
int /*reqType*/,
|
||||
XID /*did*/);
|
||||
|
||||
extern int doImageText(ClientPtr /*client*/,
|
||||
ITclosurePtr /*c*/);
|
||||
|
||||
extern int ImageText(ClientPtr /*client*/,
|
||||
DrawablePtr /*pDraw*/,
|
||||
GCPtr /*pGC*/,
|
||||
int /*nChars*/,
|
||||
unsigned char * /*data*/,
|
||||
int /*xorg*/,
|
||||
int /*yorg*/,
|
||||
int /*reqType*/,
|
||||
XID /*did*/);
|
||||
|
||||
extern int SetFontPath(ClientPtr /*client*/,
|
||||
int /*npaths*/,
|
||||
unsigned char * /*paths*/);
|
||||
|
||||
extern int SetDefaultFontPath(char * /*path*/);
|
||||
|
||||
extern unsigned char *GetFontPath(int * /*count*/,
|
||||
int * /*length*/);
|
||||
|
||||
extern int LoadGlyphs(ClientPtr /*client*/,
|
||||
FontPtr /*pfont*/,
|
||||
unsigned /*nchars*/,
|
||||
int /*item_size*/,
|
||||
unsigned char * /*data*/);
|
||||
|
||||
extern void DeleteClientFontStuff(ClientPtr /*client*/);
|
||||
|
||||
/* Quartz support on Mac OS X pulls in the QuickDraw
|
||||
framework whose InitFonts function conflicts here. */
|
||||
#ifdef __DARWIN__
|
||||
#define InitFonts Darwin_X_InitFonts
|
||||
#endif
|
||||
extern void InitFonts(void);
|
||||
|
||||
extern void FreeFonts(void);
|
||||
|
||||
#ifdef HAS_XFONT2
|
||||
extern void GetGlyphs(FontPtr /*font */ ,
|
||||
unsigned long /*count */ ,
|
||||
unsigned char * /*chars */ ,
|
||||
FontEncoding /*fontEncoding */ ,
|
||||
unsigned long * /*glyphcount */ ,
|
||||
CharInfoPtr * /*glyphs */ );
|
||||
#else
|
||||
extern FontPtr find_old_font(XID /*id*/);
|
||||
|
||||
#define GetGlyphs dixGetGlyphs
|
||||
extern void dixGetGlyphs(FontPtr /*font*/,
|
||||
unsigned long /*count*/,
|
||||
unsigned char * /*chars*/,
|
||||
FontEncoding /*fontEncoding*/,
|
||||
unsigned long * /*glyphcount*/,
|
||||
CharInfoPtr * /*glyphs*/);
|
||||
|
||||
#ifdef LEGACY_XFONT1
|
||||
extern void BuiltinRegisterFpeFunctions(void);
|
||||
#else
|
||||
extern void register_fpe_functions(void);
|
||||
#endif
|
||||
|
||||
extern void QueryGlyphExtents(FontPtr /*pFont*/,
|
||||
CharInfoPtr * /*charinfo*/,
|
||||
unsigned long /*count*/,
|
||||
ExtentInfoPtr /*info*/);
|
||||
|
||||
extern Bool QueryTextExtents(FontPtr /*pFont*/,
|
||||
unsigned long /*count*/,
|
||||
unsigned char * /*chars*/,
|
||||
ExtentInfoPtr /*info*/);
|
||||
#endif /* HAS_XFONT2 */
|
||||
|
||||
extern Bool ParseGlyphCachingMode(char * /*str*/);
|
||||
|
||||
extern void InitGlyphCaching(void);
|
||||
|
||||
extern void SetGlyphCachingMode(int /*newmode*/);
|
||||
|
||||
#endif /* DIXFONT_H */
|
||||
96
nx-X11/programs/Xserver/include/dixfontstr.h
Normal file
96
nx-X11/programs/Xserver/include/dixfontstr.h
Normal file
@@ -0,0 +1,96 @@
|
||||
/***********************************************************
|
||||
Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
|
||||
|
||||
All Rights Reserved
|
||||
|
||||
Permission to use, copy, modify, and distribute this software and its
|
||||
documentation for any purpose and without fee is hereby granted,
|
||||
provided that the above copyright notice appear in all copies and that
|
||||
both that copyright notice and this permission notice appear in
|
||||
supporting documentation, and that the name of Digital not be
|
||||
used in advertising or publicity pertaining to distribution of the
|
||||
software without specific, written prior permission.
|
||||
|
||||
DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
|
||||
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
|
||||
DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
|
||||
ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
||||
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
|
||||
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
SOFTWARE.
|
||||
|
||||
******************************************************************/
|
||||
|
||||
#ifndef DIXFONTSTRUCT_H
|
||||
#define DIXFONTSTRUCT_H
|
||||
|
||||
#include "servermd.h"
|
||||
#include "dixfont.h"
|
||||
#include <X11/fonts/fontstruct.h>
|
||||
#ifdef HAS_XFONT2
|
||||
# include <X11/fonts/libxfont2.h>
|
||||
#endif /* HAS_XFONT2 */
|
||||
#include "closure.h"
|
||||
#include <nx-X11/Xproto.h> /* for xQueryFontReply */
|
||||
|
||||
#define FONTCHARSET(font) (font)
|
||||
#define FONTMAXBOUNDS(font,field) (font)->info.maxbounds.field
|
||||
#define FONTMINBOUNDS(font,field) (font)->info.minbounds.field
|
||||
#define TERMINALFONT(font) (font)->info.terminalFont
|
||||
#define FONTASCENT(font) (font)->info.fontAscent
|
||||
#define FONTDESCENT(font) (font)->info.fontDescent
|
||||
#define FONTGLYPHS(font) 0
|
||||
#define FONTCONSTMETRICS(font) (font)->info.constantMetrics
|
||||
#define FONTCONSTWIDTH(font) (font)->info.constantWidth
|
||||
#define FONTALLEXIST(font) (font)->info.allExist
|
||||
#define FONTFIRSTCOL(font) (font)->info.firstCol
|
||||
#define FONTLASTCOL(font) (font)->info.lastCol
|
||||
#define FONTFIRSTROW(font) (font)->info.firstRow
|
||||
#define FONTLASTROW(font) (font)->info.lastRow
|
||||
#define FONTDEFAULTCH(font) (font)->info.defaultCh
|
||||
#define FONTINKMIN(font) (&((font)->info.ink_minbounds))
|
||||
#define FONTINKMAX(font) (&((font)->info.ink_maxbounds))
|
||||
#define FONTPROPS(font) (font)->info.props
|
||||
#define FONTGLYPHBITS(base,pci) ((unsigned char *) (pci)->bits)
|
||||
#define FONTINFONPROPS(font) (font)->info.nprops
|
||||
|
||||
/* some things haven't changed names, but we'll be careful anyway */
|
||||
|
||||
#define FONTREFCNT(font) (font)->refcnt
|
||||
|
||||
/*
|
||||
* for linear char sets
|
||||
*/
|
||||
#define N1dChars(pfont) (FONTLASTCOL(pfont) - FONTFIRSTCOL(pfont) + 1)
|
||||
|
||||
/*
|
||||
* for 2D char sets
|
||||
*/
|
||||
#define N2dChars(pfont) (N1dChars(pfont) * \
|
||||
(FONTLASTROW(pfont) - FONTFIRSTROW(pfont) + 1))
|
||||
|
||||
#ifndef GLYPHPADBYTES
|
||||
#define GLYPHPADBYTES -1
|
||||
#endif
|
||||
|
||||
#if GLYPHPADBYTES == 0 || GLYPHPADBYTES == 1
|
||||
#define GLYPHWIDTHBYTESPADDED(pci) (GLYPHWIDTHBYTES(pci))
|
||||
#define PADGLYPHWIDTHBYTES(w) (((w)+7)>>3)
|
||||
#endif
|
||||
|
||||
#if GLYPHPADBYTES == 2
|
||||
#define GLYPHWIDTHBYTESPADDED(pci) ((GLYPHWIDTHBYTES(pci)+1) & ~0x1)
|
||||
#define PADGLYPHWIDTHBYTES(w) (((((w)+7)>>3)+1) & ~0x1)
|
||||
#endif
|
||||
|
||||
#if GLYPHPADBYTES == 4
|
||||
#define GLYPHWIDTHBYTESPADDED(pci) ((GLYPHWIDTHBYTES(pci)+3) & ~0x3)
|
||||
#define PADGLYPHWIDTHBYTES(w) (((((w)+7)>>3)+3) & ~0x3)
|
||||
#endif
|
||||
|
||||
#if GLYPHPADBYTES == 8 /* for a cray? */
|
||||
#define GLYPHWIDTHBYTESPADDED(pci) ((GLYPHWIDTHBYTES(pci)+7) & ~0x7)
|
||||
#define PADGLYPHWIDTHBYTES(w) (((((w)+7)>>3)+7) & ~0x7)
|
||||
#endif
|
||||
|
||||
#endif /* DIXFONTSTRUCT_H */
|
||||
58
nx-X11/programs/Xserver/include/dixgrabs.h
Normal file
58
nx-X11/programs/Xserver/include/dixgrabs.h
Normal file
@@ -0,0 +1,58 @@
|
||||
/************************************************************
|
||||
|
||||
Copyright 1996 by Thomas E. Dickey <dickey@clark.net>
|
||||
|
||||
All Rights Reserved
|
||||
|
||||
Permission to use, copy, modify, and distribute this software and its
|
||||
documentation for any purpose and without fee is hereby granted,
|
||||
provided that the above copyright notice appear in all copies and that
|
||||
both that copyright notice and this permission notice appear in
|
||||
supporting documentation, and that the name of the above listed
|
||||
copyright holder(s) not be used in advertising or publicity pertaining
|
||||
to distribution of the software without specific, written prior
|
||||
permission.
|
||||
|
||||
THE ABOVE LISTED COPYRIGHT HOLDER(S) DISCLAIM ALL WARRANTIES WITH REGARD
|
||||
TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
AND FITNESS, IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE
|
||||
LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
********************************************************/
|
||||
|
||||
#ifndef DIXGRABS_H
|
||||
#define DIXGRABS_H 1
|
||||
|
||||
extern GrabPtr CreateGrab(
|
||||
int /* client */,
|
||||
DeviceIntPtr /* device */,
|
||||
WindowPtr /* window */,
|
||||
Mask /* eventMask */,
|
||||
Bool /* ownerEvents */,
|
||||
Bool /* keyboardMode */,
|
||||
Bool /* pointerMode */,
|
||||
DeviceIntPtr /* modDevice */,
|
||||
unsigned short /* modifiers */,
|
||||
int /* type */,
|
||||
KeyCode /* keybut */,
|
||||
WindowPtr /* confineTo */,
|
||||
CursorPtr /* cursor */);
|
||||
|
||||
extern int DeletePassiveGrab(
|
||||
void * /* value */,
|
||||
XID /* id */);
|
||||
|
||||
extern Bool GrabMatchesSecond(
|
||||
GrabPtr /* pFirstGrab */,
|
||||
GrabPtr /* pSecondGrab */);
|
||||
|
||||
extern int AddPassiveGrabToList(
|
||||
GrabPtr /* pGrab */);
|
||||
|
||||
extern Bool DeletePassiveGrabFromList(
|
||||
GrabPtr /* pMinuendGrab */);
|
||||
|
||||
#endif /* DIXGRABS_H */
|
||||
212
nx-X11/programs/Xserver/include/dixstruct.h
Normal file
212
nx-X11/programs/Xserver/include/dixstruct.h
Normal file
@@ -0,0 +1,212 @@
|
||||
/***********************************************************
|
||||
Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
|
||||
|
||||
All Rights Reserved
|
||||
|
||||
Permission to use, copy, modify, and distribute this software and its
|
||||
documentation for any purpose and without fee is hereby granted,
|
||||
provided that the above copyright notice appear in all copies and that
|
||||
both that copyright notice and this permission notice appear in
|
||||
supporting documentation, and that the name of Digital not be
|
||||
used in advertising or publicity pertaining to distribution of the
|
||||
software without specific, written prior permission.
|
||||
|
||||
DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
|
||||
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
|
||||
DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
|
||||
ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
||||
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
|
||||
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
SOFTWARE.
|
||||
|
||||
******************************************************************/
|
||||
|
||||
#ifndef DIXSTRUCT_H
|
||||
#define DIXSTRUCT_H
|
||||
|
||||
#include "client.h"
|
||||
#include "dix.h"
|
||||
#include "resource.h"
|
||||
#include "cursor.h"
|
||||
#include "gc.h"
|
||||
#include "pixmap.h"
|
||||
#include <nx-X11/Xmd.h>
|
||||
|
||||
/*
|
||||
* direct-mapped hash table, used by resource manager to store
|
||||
* translation from client ids to server addresses.
|
||||
*/
|
||||
|
||||
extern CallbackListPtr ClientStateCallback;
|
||||
|
||||
typedef struct {
|
||||
ClientPtr client;
|
||||
xConnSetupPrefix *prefix;
|
||||
xConnSetup *setup;
|
||||
} NewClientInfoRec;
|
||||
|
||||
typedef void (*ReplySwapPtr) (
|
||||
ClientPtr /* pClient */,
|
||||
int /* size */,
|
||||
void * /* pbuf */);
|
||||
|
||||
extern void ReplyNotSwappd (
|
||||
ClientPtr /* pClient */,
|
||||
int /* size */,
|
||||
void * /* pbuf */);
|
||||
|
||||
typedef enum {ClientStateInitial,
|
||||
ClientStateAuthenticating,
|
||||
ClientStateRunning,
|
||||
ClientStateRetained,
|
||||
ClientStateGone,
|
||||
ClientStateCheckingSecurity,
|
||||
ClientStateCheckedSecurity} ClientState;
|
||||
|
||||
#ifdef XFIXES
|
||||
typedef struct _saveSet {
|
||||
struct _Window *windowPtr;
|
||||
Bool toRoot;
|
||||
Bool remap;
|
||||
} SaveSetElt;
|
||||
#define SaveSetWindow(ss) ((ss).windowPtr)
|
||||
#define SaveSetToRoot(ss) ((ss).toRoot)
|
||||
#define SaveSetRemap(ss) ((ss).remap)
|
||||
#define SaveSetAssignWindow(ss,w) ((ss).windowPtr = (w))
|
||||
#define SaveSetAssignToRoot(ss,tr) ((ss).toRoot = (tr))
|
||||
#define SaveSetAssignRemap(ss,rm) ((ss).remap = (rm))
|
||||
#else
|
||||
typedef struct _Window *SaveSetElt;
|
||||
#define SaveSetWindow(ss) (ss)
|
||||
#define SaveSetToRoot(ss) FALSE
|
||||
#define SaveSetRemap(ss) TRUE
|
||||
#define SaveSetAssignWindow(ss,w) ((ss) = (w))
|
||||
#define SaveSetAssignToRoot(ss,tr)
|
||||
#define SaveSetAssignRemap(ss,rm)
|
||||
#endif
|
||||
|
||||
typedef struct _Client {
|
||||
int index;
|
||||
Mask clientAsMask;
|
||||
void *requestBuffer;
|
||||
void *osPrivate; /* for OS layer, including scheduler */
|
||||
Bool swapped;
|
||||
Bool local;
|
||||
ReplySwapPtr pSwapReplyFunc;
|
||||
XID errorValue;
|
||||
int sequence;
|
||||
int closeDownMode;
|
||||
int clientGone;
|
||||
int noClientException; /* this client died or needs to be
|
||||
* killed */
|
||||
SaveSetElt *saveSet;
|
||||
int numSaved;
|
||||
void *screenPrivate[MAXSCREENS];
|
||||
int (**requestVector) (
|
||||
ClientPtr /* pClient */);
|
||||
CARD32 req_len; /* length of current request */
|
||||
Bool big_requests; /* supports large requests */
|
||||
int priority;
|
||||
ClientState clientState;
|
||||
DevUnion *devPrivates;
|
||||
#ifdef XKB
|
||||
unsigned short xkbClientFlags;
|
||||
unsigned short mapNotifyMask;
|
||||
unsigned short newKeyboardNotifyMask;
|
||||
unsigned short vMajor,vMinor;
|
||||
KeyCode minKC,maxKC;
|
||||
#endif
|
||||
|
||||
unsigned long replyBytesRemaining;
|
||||
#ifdef XCSECURITY
|
||||
XID authId;
|
||||
unsigned int trustLevel;
|
||||
void * (* CheckAccess)(
|
||||
ClientPtr /*pClient*/,
|
||||
XID /*id*/,
|
||||
RESTYPE /*classes*/,
|
||||
Mask /*access_mode*/,
|
||||
void * /*resourceval*/);
|
||||
#endif
|
||||
struct _FontResolution * (*fontResFunc) ( /* no need for font.h */
|
||||
ClientPtr /* pClient */,
|
||||
int * /* num */);
|
||||
int smart_priority;
|
||||
long smart_start_tick;
|
||||
long smart_stop_tick;
|
||||
long smart_check_tick;
|
||||
|
||||
ClientIdPtr clientIds;
|
||||
} ClientRec;
|
||||
|
||||
/*
|
||||
* Scheduling interface
|
||||
*/
|
||||
extern long SmartScheduleTime;
|
||||
extern long SmartScheduleInterval;
|
||||
extern long SmartScheduleSlice;
|
||||
extern long SmartScheduleMaxSlice;
|
||||
#ifdef HAVE_SETITIMER
|
||||
#if HAVE_SETITIMER
|
||||
extern Bool SmartScheduleSignalEnable;
|
||||
#else
|
||||
#define SmartScheduleSignalEnable FALSE
|
||||
#endif
|
||||
#endif
|
||||
extern void SmartScheduleStartTimer(void);
|
||||
extern void SmartScheduleStopTimer(void);
|
||||
#define SMART_MAX_PRIORITY (20)
|
||||
#define SMART_MIN_PRIORITY (-20)
|
||||
|
||||
extern void SmartScheduleInit(void);
|
||||
|
||||
/* This prototype is used pervasively in Xext, dix */
|
||||
#define DISPATCH_PROC(func) int func(ClientPtr /* client */)
|
||||
|
||||
typedef struct _WorkQueue {
|
||||
struct _WorkQueue *next;
|
||||
Bool (*function) (
|
||||
ClientPtr /* pClient */,
|
||||
void * /* closure */
|
||||
);
|
||||
ClientPtr client;
|
||||
void *closure;
|
||||
} WorkQueueRec;
|
||||
|
||||
extern TimeStamp currentTime;
|
||||
extern TimeStamp lastDeviceEventTime;
|
||||
|
||||
extern int CompareTimeStamps(
|
||||
TimeStamp /*a*/,
|
||||
TimeStamp /*b*/);
|
||||
|
||||
extern TimeStamp ClientTimeToServerTime(CARD32 /*c*/);
|
||||
|
||||
typedef struct _CallbackRec {
|
||||
CallbackProcPtr proc;
|
||||
void * data;
|
||||
Bool deleted;
|
||||
struct _CallbackRec *next;
|
||||
} CallbackRec, *CallbackPtr;
|
||||
|
||||
typedef struct _CallbackList {
|
||||
CallbackFuncsRec funcs;
|
||||
int inCallback;
|
||||
Bool deleted;
|
||||
int numDeleted;
|
||||
CallbackPtr list;
|
||||
} CallbackListRec;
|
||||
|
||||
/* proc vectors */
|
||||
|
||||
extern int (* InitialVector[3]) (ClientPtr /*client*/);
|
||||
|
||||
extern int (* ProcVector[256]) (ClientPtr /*client*/);
|
||||
|
||||
extern int (* SwappedProcVector[256]) (ClientPtr /*client*/);
|
||||
|
||||
extern ReplySwapPtr ReplySwapVector[256];
|
||||
|
||||
extern int ProcBadRequest(ClientPtr /*client*/);
|
||||
|
||||
#endif /* DIXSTRUCT_H */
|
||||
182
nx-X11/programs/Xserver/include/exevents.h
Normal file
182
nx-X11/programs/Xserver/include/exevents.h
Normal file
@@ -0,0 +1,182 @@
|
||||
/************************************************************
|
||||
|
||||
Copyright 1996 by Thomas E. Dickey <dickey@clark.net>
|
||||
|
||||
All Rights Reserved
|
||||
|
||||
Permission to use, copy, modify, and distribute this software and its
|
||||
documentation for any purpose and without fee is hereby granted,
|
||||
provided that the above copyright notice appear in all copies and that
|
||||
both that copyright notice and this permission notice appear in
|
||||
supporting documentation, and that the name of the above listed
|
||||
copyright holder(s) not be used in advertising or publicity pertaining
|
||||
to distribution of the software without specific, written prior
|
||||
permission.
|
||||
|
||||
THE ABOVE LISTED COPYRIGHT HOLDER(S) DISCLAIM ALL WARRANTIES WITH REGARD
|
||||
TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
AND FITNESS, IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE
|
||||
LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
********************************************************/
|
||||
|
||||
/********************************************************************
|
||||
* Interface of 'exevents.c'
|
||||
*/
|
||||
|
||||
#ifndef EXEVENTS_H
|
||||
#define EXEVENTS_H
|
||||
|
||||
extern void RegisterOtherDevice (
|
||||
DeviceIntPtr /* device */);
|
||||
|
||||
extern void ProcessOtherEvent (
|
||||
xEventPtr /* FIXME deviceKeyButtonPointer * xE */,
|
||||
DeviceIntPtr /* other */,
|
||||
int /* count */);
|
||||
|
||||
extern int InitProximityClassDeviceStruct(
|
||||
DeviceIntPtr /* dev */);
|
||||
|
||||
extern void InitValuatorAxisStruct(
|
||||
DeviceIntPtr /* dev */,
|
||||
int /* axnum */,
|
||||
int /* minval */,
|
||||
int /* maxval */,
|
||||
int /* resolution */,
|
||||
int /* min_res */,
|
||||
int /* max_res */);
|
||||
|
||||
extern void DeviceFocusEvent(
|
||||
DeviceIntPtr /* dev */,
|
||||
int /* type */,
|
||||
int /* mode */,
|
||||
int /* detail */,
|
||||
WindowPtr /* pWin */);
|
||||
|
||||
extern int GrabButton(
|
||||
ClientPtr /* client */,
|
||||
DeviceIntPtr /* dev */,
|
||||
BYTE /* this_device_mode */,
|
||||
BYTE /* other_devices_mode */,
|
||||
CARD16 /* modifiers */,
|
||||
DeviceIntPtr /* modifier_device */,
|
||||
CARD8 /* button */,
|
||||
Window /* grabWindow */,
|
||||
BOOL /* ownerEvents */,
|
||||
Cursor /* rcursor */,
|
||||
Window /* rconfineTo */,
|
||||
Mask /* eventMask */);
|
||||
|
||||
extern int GrabKey(
|
||||
ClientPtr /* client */,
|
||||
DeviceIntPtr /* dev */,
|
||||
BYTE /* this_device_mode */,
|
||||
BYTE /* other_devices_mode */,
|
||||
CARD16 /* modifiers */,
|
||||
DeviceIntPtr /* modifier_device */,
|
||||
CARD8 /* key */,
|
||||
Window /* grabWindow */,
|
||||
BOOL /* ownerEvents */,
|
||||
Mask /* mask */);
|
||||
|
||||
extern int SelectForWindow(
|
||||
DeviceIntPtr /* dev */,
|
||||
WindowPtr /* pWin */,
|
||||
ClientPtr /* client */,
|
||||
Mask /* mask */,
|
||||
Mask /* exclusivemasks */,
|
||||
Mask /* validmasks */);
|
||||
|
||||
extern int AddExtensionClient (
|
||||
WindowPtr /* pWin */,
|
||||
ClientPtr /* client */,
|
||||
Mask /* mask */,
|
||||
int /* mskidx */);
|
||||
|
||||
extern void RecalculateDeviceDeliverableEvents(
|
||||
WindowPtr /* pWin */);
|
||||
|
||||
extern int InputClientGone(
|
||||
WindowPtr /* pWin */,
|
||||
XID /* id */);
|
||||
|
||||
extern int SendEvent (
|
||||
ClientPtr /* client */,
|
||||
DeviceIntPtr /* d */,
|
||||
Window /* dest */,
|
||||
Bool /* propagate */,
|
||||
xEvent * /* ev */,
|
||||
Mask /* mask */,
|
||||
int /* count */);
|
||||
|
||||
extern int SetButtonMapping (
|
||||
ClientPtr /* client */,
|
||||
DeviceIntPtr /* dev */,
|
||||
int /* nElts */,
|
||||
BYTE * /* map */);
|
||||
|
||||
extern int SetModifierMapping(
|
||||
ClientPtr /* client */,
|
||||
DeviceIntPtr /* dev */,
|
||||
int /* len */,
|
||||
int /* rlen */,
|
||||
int /* numKeyPerModifier */,
|
||||
KeyCode * /* inputMap */,
|
||||
KeyClassPtr * /* k */);
|
||||
|
||||
extern void SendDeviceMappingNotify(
|
||||
CARD8 /* request, */,
|
||||
KeyCode /* firstKeyCode */,
|
||||
CARD8 /* count */,
|
||||
DeviceIntPtr /* dev */);
|
||||
|
||||
extern int ChangeKeyMapping(
|
||||
ClientPtr /* client */,
|
||||
DeviceIntPtr /* dev */,
|
||||
unsigned /* len */,
|
||||
int /* type */,
|
||||
KeyCode /* firstKeyCode */,
|
||||
CARD8 /* keyCodes */,
|
||||
CARD8 /* keySymsPerKeyCode */,
|
||||
KeySym * /* map */);
|
||||
|
||||
extern void DeleteWindowFromAnyExtEvents(
|
||||
WindowPtr /* pWin */,
|
||||
Bool /* freeResources */);
|
||||
|
||||
extern void DeleteDeviceFromAnyExtEvents(
|
||||
WindowPtr /* pWin */,
|
||||
DeviceIntPtr /* dev */);
|
||||
|
||||
extern int MaybeSendDeviceMotionNotifyHint (
|
||||
deviceKeyButtonPointer * /* pEvents */,
|
||||
Mask /* mask */);
|
||||
|
||||
extern void CheckDeviceGrabAndHintWindow (
|
||||
WindowPtr /* pWin */,
|
||||
int /* type */,
|
||||
deviceKeyButtonPointer * /* xE */,
|
||||
GrabPtr /* grab */,
|
||||
ClientPtr /* client */,
|
||||
Mask /* deliveryMask */);
|
||||
|
||||
extern Mask DeviceEventMaskForClient(
|
||||
DeviceIntPtr /* dev */,
|
||||
WindowPtr /* pWin */,
|
||||
ClientPtr /* client */);
|
||||
|
||||
extern void MaybeStopDeviceHint(
|
||||
DeviceIntPtr /* dev */,
|
||||
ClientPtr /* client */);
|
||||
|
||||
extern int DeviceEventSuppressForWindow(
|
||||
WindowPtr /* pWin */,
|
||||
ClientPtr /* client */,
|
||||
Mask /* mask */,
|
||||
int /* maskndx */);
|
||||
|
||||
#endif /* EXEVENTS_H */
|
||||
77
nx-X11/programs/Xserver/include/extension.h
Normal file
77
nx-X11/programs/Xserver/include/extension.h
Normal file
@@ -0,0 +1,77 @@
|
||||
/***********************************************************
|
||||
|
||||
Copyright 1987, 1998 The Open Group
|
||||
|
||||
Permission to use, copy, modify, distribute, and sell this software and its
|
||||
documentation for any purpose is hereby granted without fee, provided that
|
||||
the above copyright notice appear in all copies and that both that
|
||||
copyright notice and this permission notice appear in supporting
|
||||
documentation.
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name of The Open Group shall not be
|
||||
used in advertising or otherwise to promote the sale, use or other dealings
|
||||
in this Software without prior written authorization from The Open Group.
|
||||
|
||||
|
||||
Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
|
||||
|
||||
All Rights Reserved
|
||||
|
||||
Permission to use, copy, modify, and distribute this software and its
|
||||
documentation for any purpose and without fee is hereby granted,
|
||||
provided that the above copyright notice appear in all copies and that
|
||||
both that copyright notice and this permission notice appear in
|
||||
supporting documentation, and that the name of Digital not be
|
||||
used in advertising or publicity pertaining to distribution of the
|
||||
software without specific, written prior permission.
|
||||
|
||||
DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
|
||||
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
|
||||
DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
|
||||
ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
||||
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
|
||||
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
SOFTWARE.
|
||||
|
||||
******************************************************************/
|
||||
|
||||
#ifndef EXTENSION_H
|
||||
#define EXTENSION_H
|
||||
|
||||
_XFUNCPROTOBEGIN
|
||||
|
||||
extern unsigned short StandardMinorOpcode(ClientPtr /*client*/);
|
||||
|
||||
extern unsigned short MinorOpcodeOfRequest(ClientPtr /*client*/);
|
||||
|
||||
extern Bool EnableDisableExtension(char *name, Bool enable);
|
||||
|
||||
extern void EnableDisableExtensionError(char *name, Bool enable);
|
||||
|
||||
extern void ResetExtensionPrivates(void);
|
||||
|
||||
extern int AllocateExtensionPrivateIndex(void);
|
||||
|
||||
extern Bool AllocateExtensionPrivate(
|
||||
int /*index*/,
|
||||
unsigned /*amount*/);
|
||||
|
||||
extern void InitExtensions(int argc, char **argv);
|
||||
|
||||
extern void InitVisualWrap(void);
|
||||
|
||||
extern void CloseDownExtensions(void);
|
||||
|
||||
_XFUNCPROTOEND
|
||||
|
||||
#endif /* EXTENSION_H */
|
||||
165
nx-X11/programs/Xserver/include/extinit.h
Normal file
165
nx-X11/programs/Xserver/include/extinit.h
Normal file
@@ -0,0 +1,165 @@
|
||||
/************************************************************
|
||||
|
||||
Copyright 1996 by Thomas E. Dickey <dickey@clark.net>
|
||||
|
||||
All Rights Reserved
|
||||
|
||||
Permission to use, copy, modify, and distribute this software and its
|
||||
documentation for any purpose and without fee is hereby granted,
|
||||
provided that the above copyright notice appear in all copies and that
|
||||
both that copyright notice and this permission notice appear in
|
||||
supporting documentation, and that the name of the above listed
|
||||
copyright holder(s) not be used in advertising or publicity pertaining
|
||||
to distribution of the software without specific, written prior
|
||||
permission.
|
||||
|
||||
THE ABOVE LISTED COPYRIGHT HOLDER(S) DISCLAIM ALL WARRANTIES WITH REGARD
|
||||
TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
AND FITNESS, IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE
|
||||
LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
********************************************************/
|
||||
|
||||
/********************************************************************
|
||||
* Interface of extinit.c
|
||||
*/
|
||||
|
||||
#ifndef EXTINIT_H
|
||||
#define EXTINIT_H
|
||||
|
||||
#include "extnsionst.h"
|
||||
|
||||
void
|
||||
XInputExtensionInit(
|
||||
void
|
||||
);
|
||||
|
||||
|
||||
int
|
||||
ProcIDispatch (
|
||||
ClientPtr /* client */
|
||||
);
|
||||
|
||||
int
|
||||
SProcIDispatch(
|
||||
ClientPtr /* client */
|
||||
);
|
||||
|
||||
void
|
||||
SReplyIDispatch (
|
||||
ClientPtr /* client */,
|
||||
int /* len */,
|
||||
xGrabDeviceReply * /* rep */
|
||||
);
|
||||
|
||||
void
|
||||
SEventIDispatch (
|
||||
xEvent * /* from */,
|
||||
xEvent * /* to */
|
||||
);
|
||||
|
||||
void
|
||||
SEventDeviceValuator (
|
||||
deviceValuator * /* from */,
|
||||
deviceValuator * /* to */
|
||||
);
|
||||
|
||||
void
|
||||
SEventFocus (
|
||||
deviceFocus * /* from */,
|
||||
deviceFocus * /* to */
|
||||
);
|
||||
|
||||
void
|
||||
SDeviceStateNotifyEvent (
|
||||
deviceStateNotify * /* from */,
|
||||
deviceStateNotify * /* to */
|
||||
);
|
||||
|
||||
void
|
||||
SDeviceKeyStateNotifyEvent (
|
||||
deviceKeyStateNotify * /* from */,
|
||||
deviceKeyStateNotify * /* to */
|
||||
);
|
||||
|
||||
void
|
||||
SDeviceButtonStateNotifyEvent (
|
||||
deviceButtonStateNotify * /* from */,
|
||||
deviceButtonStateNotify * /* to */
|
||||
);
|
||||
|
||||
void
|
||||
SChangeDeviceNotifyEvent (
|
||||
changeDeviceNotify * /* from */,
|
||||
changeDeviceNotify * /* to */
|
||||
);
|
||||
|
||||
void
|
||||
SDeviceMappingNotifyEvent (
|
||||
deviceMappingNotify * /* from */,
|
||||
deviceMappingNotify * /* to */
|
||||
);
|
||||
|
||||
void
|
||||
FixExtensionEvents (
|
||||
ExtensionEntry * /* extEntry */
|
||||
);
|
||||
|
||||
void
|
||||
RestoreExtensionEvents (
|
||||
void
|
||||
);
|
||||
|
||||
void
|
||||
IResetProc(
|
||||
ExtensionEntry * /* unused */
|
||||
);
|
||||
|
||||
void
|
||||
AssignTypeAndName (
|
||||
DeviceIntPtr /* dev */,
|
||||
Atom /* type */,
|
||||
char * /* name */
|
||||
);
|
||||
|
||||
void
|
||||
MakeDeviceTypeAtoms (
|
||||
void
|
||||
);
|
||||
|
||||
DeviceIntPtr
|
||||
LookupDeviceIntRec (
|
||||
CARD8 /* id */
|
||||
);
|
||||
|
||||
void
|
||||
SetExclusiveAccess (
|
||||
Mask /* mask */
|
||||
);
|
||||
|
||||
void
|
||||
AllowPropagateSuppress (
|
||||
Mask /* mask */
|
||||
);
|
||||
|
||||
Mask
|
||||
GetNextExtEventMask (
|
||||
void
|
||||
);
|
||||
|
||||
void
|
||||
SetMaskForExtEvent(
|
||||
Mask /* mask */,
|
||||
int /* event */
|
||||
);
|
||||
|
||||
void
|
||||
SetEventInfo(
|
||||
Mask /* mask */,
|
||||
int /* constant */
|
||||
);
|
||||
|
||||
#endif /* EXTINIT_H */
|
||||
153
nx-X11/programs/Xserver/include/extnsionst.h
Normal file
153
nx-X11/programs/Xserver/include/extnsionst.h
Normal file
@@ -0,0 +1,153 @@
|
||||
/***********************************************************
|
||||
|
||||
Copyright 1987, 1998 The Open Group
|
||||
|
||||
Permission to use, copy, modify, distribute, and sell this software and its
|
||||
documentation for any purpose is hereby granted without fee, provided that
|
||||
the above copyright notice appear in all copies and that both that
|
||||
copyright notice and this permission notice appear in supporting
|
||||
documentation.
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name of The Open Group shall not be
|
||||
used in advertising or otherwise to promote the sale, use or other dealings
|
||||
in this Software without prior written authorization from The Open Group.
|
||||
|
||||
|
||||
Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
|
||||
|
||||
All Rights Reserved
|
||||
|
||||
Permission to use, copy, modify, and distribute this software and its
|
||||
documentation for any purpose and without fee is hereby granted,
|
||||
provided that the above copyright notice appear in all copies and that
|
||||
both that copyright notice and this permission notice appear in
|
||||
supporting documentation, and that the name of Digital not be
|
||||
used in advertising or publicity pertaining to distribution of the
|
||||
software without specific, written prior permission.
|
||||
|
||||
DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
|
||||
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
|
||||
DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
|
||||
ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
||||
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
|
||||
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
SOFTWARE.
|
||||
|
||||
******************************************************************/
|
||||
|
||||
#ifndef EXTENSIONSTRUCT_H
|
||||
#define EXTENSIONSTRUCT_H
|
||||
|
||||
#include "dix.h"
|
||||
#include "misc.h"
|
||||
#include "screenint.h"
|
||||
#include "extension.h"
|
||||
#include "gc.h"
|
||||
|
||||
typedef struct _ExtensionEntry {
|
||||
int index;
|
||||
void (* CloseDown)( /* called at server shutdown */
|
||||
struct _ExtensionEntry * /* extension */);
|
||||
char *name; /* extension name */
|
||||
int base; /* base request number */
|
||||
int eventBase;
|
||||
int eventLast;
|
||||
int errorBase;
|
||||
int errorLast;
|
||||
int num_aliases;
|
||||
char **aliases;
|
||||
void * extPrivate;
|
||||
unsigned short (* MinorOpcode)( /* called for errors */
|
||||
ClientPtr /* client */);
|
||||
#ifdef XCSECURITY
|
||||
Bool secure; /* extension visible to untrusted clients? */
|
||||
#endif
|
||||
DevUnion *devPrivates;
|
||||
} ExtensionEntry;
|
||||
|
||||
/*
|
||||
* The arguments may be different for extension event swapping functions.
|
||||
* Deal with this by casting when initializing the event's EventSwapVector[]
|
||||
* entries.
|
||||
*/
|
||||
typedef void (*EventSwapPtr) (xEvent *, xEvent *);
|
||||
|
||||
extern EventSwapPtr EventSwapVector[128];
|
||||
|
||||
extern void NotImplemented ( /* FIXME: this may move to another file... */
|
||||
xEvent *,
|
||||
xEvent *);
|
||||
|
||||
typedef void (* ExtensionLookupProc)(
|
||||
#ifdef EXTENSION_PROC_ARGS
|
||||
EXTENSION_PROC_ARGS
|
||||
#else
|
||||
/* args no longer indeterminate */
|
||||
char *name,
|
||||
GCPtr pGC
|
||||
#endif
|
||||
);
|
||||
|
||||
typedef struct _ProcEntry {
|
||||
char *name;
|
||||
ExtensionLookupProc proc;
|
||||
} ProcEntryRec, *ProcEntryPtr;
|
||||
|
||||
typedef struct _ScreenProcEntry {
|
||||
int num;
|
||||
ProcEntryPtr procList;
|
||||
} ScreenProcEntry;
|
||||
|
||||
#define SetGCVector(pGC, VectorElement, NewRoutineAddress, Atom) \
|
||||
pGC->VectorElement = NewRoutineAddress;
|
||||
|
||||
#define GetGCValue(pGC, GCElement) (pGC->GCElement)
|
||||
|
||||
|
||||
extern ExtensionEntry *AddExtension(
|
||||
char* /*name*/,
|
||||
int /*NumEvents*/,
|
||||
int /*NumErrors*/,
|
||||
int (* /*MainProc*/)(ClientPtr /*client*/),
|
||||
int (* /*SwappedMainProc*/)(ClientPtr /*client*/),
|
||||
void (* /*CloseDownProc*/)(ExtensionEntry * /*extension*/),
|
||||
unsigned short (* /*MinorOpcodeProc*/)(ClientPtr /*client*/)
|
||||
);
|
||||
|
||||
extern Bool AddExtensionAlias(
|
||||
char* /*alias*/,
|
||||
ExtensionEntry * /*extension*/);
|
||||
|
||||
extern ExtensionEntry *CheckExtension(const char *extname);
|
||||
extern ExtensionEntry *GetExtensionEntry(int major);
|
||||
|
||||
extern ExtensionLookupProc LookupProc(
|
||||
char* /*name*/,
|
||||
GCPtr /*pGC*/);
|
||||
|
||||
extern Bool RegisterProc(
|
||||
char* /*name*/,
|
||||
GCPtr /*pGC*/,
|
||||
ExtensionLookupProc /*proc*/);
|
||||
|
||||
extern Bool RegisterScreenProc(
|
||||
char* /*name*/,
|
||||
ScreenPtr /*pScreen*/,
|
||||
ExtensionLookupProc /*proc*/);
|
||||
|
||||
extern void DeclareExtensionSecurity(
|
||||
char * /*extname*/,
|
||||
Bool /*secure*/);
|
||||
|
||||
#endif /* EXTENSIONSTRUCT_H */
|
||||
|
||||
190
nx-X11/programs/Xserver/include/gc.h
Normal file
190
nx-X11/programs/Xserver/include/gc.h
Normal file
@@ -0,0 +1,190 @@
|
||||
/***********************************************************
|
||||
|
||||
Copyright 1987, 1998 The Open Group
|
||||
|
||||
Permission to use, copy, modify, distribute, and sell this software and its
|
||||
documentation for any purpose is hereby granted without fee, provided that
|
||||
the above copyright notice appear in all copies and that both that
|
||||
copyright notice and this permission notice appear in supporting
|
||||
documentation.
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name of The Open Group shall not be
|
||||
used in advertising or otherwise to promote the sale, use or other dealings
|
||||
in this Software without prior written authorization from The Open Group.
|
||||
|
||||
|
||||
Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
|
||||
|
||||
All Rights Reserved
|
||||
|
||||
Permission to use, copy, modify, and distribute this software and its
|
||||
documentation for any purpose and without fee is hereby granted,
|
||||
provided that the above copyright notice appear in all copies and that
|
||||
both that copyright notice and this permission notice appear in
|
||||
supporting documentation, and that the name of Digital not be
|
||||
used in advertising or publicity pertaining to distribution of the
|
||||
software without specific, written prior permission.
|
||||
|
||||
DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
|
||||
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
|
||||
DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
|
||||
ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
||||
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
|
||||
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
SOFTWARE.
|
||||
|
||||
******************************************************************/
|
||||
|
||||
#ifndef GC_H
|
||||
#define GC_H
|
||||
|
||||
#include <nx-X11/X.h> /* for GContext, Mask */
|
||||
|
||||
#ifndef _XTYPEDEF_POINTER
|
||||
/* Don't let Xdefs.h define 'pointer' */
|
||||
#define _XTYPEDEF_POINTER 1
|
||||
#endif /* _XTYPEDEF_POINTER */
|
||||
|
||||
/* FIXME: for building this code against Xlib versions older than apprx. 04/2014
|
||||
* we still have to define the pointer type via Xdefs.h.
|
||||
*
|
||||
* The nx-libs code itself does not require the pointer definition.
|
||||
*/
|
||||
#undef _XTYPEDEF_POINTER
|
||||
|
||||
#include <nx-X11/Xdefs.h> /* for Bool */
|
||||
|
||||
#include <nx-X11/Xproto.h>
|
||||
#include "screenint.h" /* for ScreenPtr */
|
||||
#include "pixmap.h" /* for DrawablePtr */
|
||||
|
||||
/* clientClipType field in GC */
|
||||
#define CT_NONE 0
|
||||
#define CT_PIXMAP 1
|
||||
#define CT_REGION 2
|
||||
#define CT_UNSORTED 6
|
||||
#define CT_YSORTED 10
|
||||
#define CT_YXSORTED 14
|
||||
#define CT_YXBANDED 18
|
||||
|
||||
#define GCQREASON_VALIDATE 1
|
||||
#define GCQREASON_CHANGE 2
|
||||
#define GCQREASON_COPY_SRC 3
|
||||
#define GCQREASON_COPY_DST 4
|
||||
#define GCQREASON_DESTROY 5
|
||||
|
||||
#define GC_CHANGE_SERIAL_BIT (((unsigned long)1)<<31)
|
||||
#define GC_CALL_VALIDATE_BIT (1L<<30)
|
||||
#define GCExtensionInterest (1L<<29)
|
||||
|
||||
#define DRAWABLE_SERIAL_BITS (~(GC_CHANGE_SERIAL_BIT))
|
||||
|
||||
#define MAX_SERIAL_NUM (1L<<28)
|
||||
|
||||
#define NEXT_SERIAL_NUMBER ((++globalSerialNumber) > MAX_SERIAL_NUM ? \
|
||||
(globalSerialNumber = 1): globalSerialNumber)
|
||||
|
||||
typedef struct _GCInterest *GCInterestPtr;
|
||||
typedef struct _GC *GCPtr;
|
||||
typedef struct _GCOps *GCOpsPtr;
|
||||
|
||||
extern void ValidateGC(
|
||||
DrawablePtr /*pDraw*/,
|
||||
GCPtr /*pGC*/);
|
||||
|
||||
extern int ChangeGC(
|
||||
GCPtr/*pGC*/,
|
||||
BITS32 /*mask*/,
|
||||
XID* /*pval*/);
|
||||
|
||||
extern int DoChangeGC(
|
||||
GCPtr/*pGC*/,
|
||||
BITS32 /*mask*/,
|
||||
XID* /*pval*/,
|
||||
int /*fPointer*/);
|
||||
|
||||
typedef union {
|
||||
CARD32 val;
|
||||
void * ptr;
|
||||
} ChangeGCVal, *ChangeGCValPtr;
|
||||
|
||||
extern int dixChangeGC(
|
||||
ClientPtr /*client*/,
|
||||
GCPtr /*pGC*/,
|
||||
BITS32 /*mask*/,
|
||||
CARD32 * /*pval*/,
|
||||
ChangeGCValPtr /*pCGCV*/);
|
||||
|
||||
extern GCPtr CreateGC(
|
||||
DrawablePtr /*pDrawable*/,
|
||||
BITS32 /*mask*/,
|
||||
XID* /*pval*/,
|
||||
int* /*pStatus*/);
|
||||
|
||||
extern int CopyGC(
|
||||
GCPtr/*pgcSrc*/,
|
||||
GCPtr/*pgcDst*/,
|
||||
BITS32 /*mask*/);
|
||||
|
||||
extern int FreeGC(
|
||||
void * /*pGC*/,
|
||||
XID /*gid*/);
|
||||
|
||||
extern void SetGCMask(
|
||||
GCPtr /*pGC*/,
|
||||
Mask /*selectMask*/,
|
||||
Mask /*newDataMask*/);
|
||||
|
||||
extern GCPtr CreateScratchGC(
|
||||
ScreenPtr /*pScreen*/,
|
||||
unsigned /*depth*/);
|
||||
|
||||
extern void FreeGCperDepth(
|
||||
int /*screenNum*/);
|
||||
|
||||
extern Bool CreateGCperDepth(
|
||||
int /*screenNum*/);
|
||||
|
||||
extern Bool CreateDefaultStipple(
|
||||
int /*screenNum*/);
|
||||
|
||||
extern void FreeDefaultStipple(
|
||||
int /*screenNum*/);
|
||||
|
||||
extern int SetDashes(
|
||||
GCPtr /*pGC*/,
|
||||
unsigned /*offset*/,
|
||||
unsigned /*ndash*/,
|
||||
unsigned char* /*pdash*/);
|
||||
|
||||
extern int VerifyRectOrder(
|
||||
int /*nrects*/,
|
||||
xRectangle* /*prects*/,
|
||||
int /*ordering*/);
|
||||
|
||||
extern int SetClipRects(
|
||||
GCPtr /*pGC*/,
|
||||
int /*xOrigin*/,
|
||||
int /*yOrigin*/,
|
||||
int /*nrects*/,
|
||||
xRectangle* /*prects*/,
|
||||
int /*ordering*/);
|
||||
|
||||
extern GCPtr GetScratchGC(
|
||||
unsigned /*depth*/,
|
||||
ScreenPtr /*pScreen*/);
|
||||
|
||||
extern void FreeScratchGC(
|
||||
GCPtr /*pGC*/);
|
||||
|
||||
#endif /* GC_H */
|
||||
326
nx-X11/programs/Xserver/include/gcstruct.h
Normal file
326
nx-X11/programs/Xserver/include/gcstruct.h
Normal file
@@ -0,0 +1,326 @@
|
||||
/***********************************************************
|
||||
|
||||
Copyright 1987, 1998 The Open Group
|
||||
|
||||
Permission to use, copy, modify, distribute, and sell this software and its
|
||||
documentation for any purpose is hereby granted without fee, provided that
|
||||
the above copyright notice appear in all copies and that both that
|
||||
copyright notice and this permission notice appear in supporting
|
||||
documentation.
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name of The Open Group shall not be
|
||||
used in advertising or otherwise to promote the sale, use or other dealings
|
||||
in this Software without prior written authorization from The Open Group.
|
||||
|
||||
|
||||
Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
|
||||
|
||||
All Rights Reserved
|
||||
|
||||
Permission to use, copy, modify, and distribute this software and its
|
||||
documentation for any purpose and without fee is hereby granted,
|
||||
provided that the above copyright notice appear in all copies and that
|
||||
both that copyright notice and this permission notice appear in
|
||||
supporting documentation, and that the name of Digital not be
|
||||
used in advertising or publicity pertaining to distribution of the
|
||||
software without specific, written prior permission.
|
||||
|
||||
DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
|
||||
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
|
||||
DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
|
||||
ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
||||
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
|
||||
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
SOFTWARE.
|
||||
|
||||
******************************************************************/
|
||||
|
||||
|
||||
|
||||
#ifndef GCSTRUCT_H
|
||||
#define GCSTRUCT_H
|
||||
|
||||
#include "gc.h"
|
||||
|
||||
#include "regionstr.h"
|
||||
#include "region.h"
|
||||
#include "pixmap.h"
|
||||
#include "screenint.h"
|
||||
#include <nx-X11/Xprotostr.h>
|
||||
|
||||
/*
|
||||
* functions which modify the state of the GC
|
||||
*/
|
||||
|
||||
typedef struct _GCFuncs {
|
||||
void (* ValidateGC)(
|
||||
GCPtr /*pGC*/,
|
||||
unsigned long /*stateChanges*/,
|
||||
DrawablePtr /*pDrawable*/);
|
||||
|
||||
void (* ChangeGC)(
|
||||
GCPtr /*pGC*/,
|
||||
unsigned long /*mask*/);
|
||||
|
||||
void (* CopyGC)(
|
||||
GCPtr /*pGCSrc*/,
|
||||
unsigned long /*mask*/,
|
||||
GCPtr /*pGCDst*/);
|
||||
|
||||
void (* DestroyGC)(
|
||||
GCPtr /*pGC*/);
|
||||
|
||||
void (* ChangeClip)(
|
||||
GCPtr /*pGC*/,
|
||||
int /*type*/,
|
||||
void * /*pvalue*/,
|
||||
int /*nrects*/);
|
||||
|
||||
void (* DestroyClip)(
|
||||
GCPtr /*pGC*/);
|
||||
|
||||
void (* CopyClip)(
|
||||
GCPtr /*pgcDst*/,
|
||||
GCPtr /*pgcSrc*/);
|
||||
DevUnion devPrivate;
|
||||
} GCFuncs;
|
||||
|
||||
/*
|
||||
* graphics operations invoked through a GC
|
||||
*/
|
||||
|
||||
typedef struct _GCOps {
|
||||
void (* FillSpans)(
|
||||
DrawablePtr /*pDrawable*/,
|
||||
GCPtr /*pGC*/,
|
||||
int /*nInit*/,
|
||||
DDXPointPtr /*pptInit*/,
|
||||
int * /*pwidthInit*/,
|
||||
int /*fSorted*/);
|
||||
|
||||
void (* SetSpans)(
|
||||
DrawablePtr /*pDrawable*/,
|
||||
GCPtr /*pGC*/,
|
||||
char * /*psrc*/,
|
||||
DDXPointPtr /*ppt*/,
|
||||
int * /*pwidth*/,
|
||||
int /*nspans*/,
|
||||
int /*fSorted*/);
|
||||
|
||||
void (* PutImage)(
|
||||
DrawablePtr /*pDrawable*/,
|
||||
GCPtr /*pGC*/,
|
||||
int /*depth*/,
|
||||
int /*x*/,
|
||||
int /*y*/,
|
||||
int /*w*/,
|
||||
int /*h*/,
|
||||
int /*leftPad*/,
|
||||
int /*format*/,
|
||||
char * /*pBits*/);
|
||||
|
||||
RegionPtr (* CopyArea)(
|
||||
DrawablePtr /*pSrc*/,
|
||||
DrawablePtr /*pDst*/,
|
||||
GCPtr /*pGC*/,
|
||||
int /*srcx*/,
|
||||
int /*srcy*/,
|
||||
int /*w*/,
|
||||
int /*h*/,
|
||||
int /*dstx*/,
|
||||
int /*dsty*/);
|
||||
|
||||
RegionPtr (* CopyPlane)(
|
||||
DrawablePtr /*pSrcDrawable*/,
|
||||
DrawablePtr /*pDstDrawable*/,
|
||||
GCPtr /*pGC*/,
|
||||
int /*srcx*/,
|
||||
int /*srcy*/,
|
||||
int /*width*/,
|
||||
int /*height*/,
|
||||
int /*dstx*/,
|
||||
int /*dsty*/,
|
||||
unsigned long /*bitPlane*/);
|
||||
void (* PolyPoint)(
|
||||
DrawablePtr /*pDrawable*/,
|
||||
GCPtr /*pGC*/,
|
||||
int /*mode*/,
|
||||
int /*npt*/,
|
||||
DDXPointPtr /*pptInit*/);
|
||||
|
||||
void (* Polylines)(
|
||||
DrawablePtr /*pDrawable*/,
|
||||
GCPtr /*pGC*/,
|
||||
int /*mode*/,
|
||||
int /*npt*/,
|
||||
DDXPointPtr /*pptInit*/);
|
||||
|
||||
void (* PolySegment)(
|
||||
DrawablePtr /*pDrawable*/,
|
||||
GCPtr /*pGC*/,
|
||||
int /*nseg*/,
|
||||
xSegment * /*pSegs*/);
|
||||
|
||||
void (* PolyRectangle)(
|
||||
DrawablePtr /*pDrawable*/,
|
||||
GCPtr /*pGC*/,
|
||||
int /*nrects*/,
|
||||
xRectangle * /*pRects*/);
|
||||
|
||||
void (* PolyArc)(
|
||||
DrawablePtr /*pDrawable*/,
|
||||
GCPtr /*pGC*/,
|
||||
int /*narcs*/,
|
||||
xArc * /*parcs*/);
|
||||
|
||||
void (* FillPolygon)(
|
||||
DrawablePtr /*pDrawable*/,
|
||||
GCPtr /*pGC*/,
|
||||
int /*shape*/,
|
||||
int /*mode*/,
|
||||
int /*count*/,
|
||||
DDXPointPtr /*pPts*/);
|
||||
|
||||
void (* PolyFillRect)(
|
||||
DrawablePtr /*pDrawable*/,
|
||||
GCPtr /*pGC*/,
|
||||
int /*nrectFill*/,
|
||||
xRectangle * /*prectInit*/);
|
||||
|
||||
void (* PolyFillArc)(
|
||||
DrawablePtr /*pDrawable*/,
|
||||
GCPtr /*pGC*/,
|
||||
int /*narcs*/,
|
||||
xArc * /*parcs*/);
|
||||
|
||||
int (* PolyText8)(
|
||||
DrawablePtr /*pDrawable*/,
|
||||
GCPtr /*pGC*/,
|
||||
int /*x*/,
|
||||
int /*y*/,
|
||||
int /*count*/,
|
||||
char * /*chars*/);
|
||||
|
||||
int (* PolyText16)(
|
||||
DrawablePtr /*pDrawable*/,
|
||||
GCPtr /*pGC*/,
|
||||
int /*x*/,
|
||||
int /*y*/,
|
||||
int /*count*/,
|
||||
unsigned short * /*chars*/);
|
||||
|
||||
void (* ImageText8)(
|
||||
DrawablePtr /*pDrawable*/,
|
||||
GCPtr /*pGC*/,
|
||||
int /*x*/,
|
||||
int /*y*/,
|
||||
int /*count*/,
|
||||
char * /*chars*/);
|
||||
|
||||
void (* ImageText16)(
|
||||
DrawablePtr /*pDrawable*/,
|
||||
GCPtr /*pGC*/,
|
||||
int /*x*/,
|
||||
int /*y*/,
|
||||
int /*count*/,
|
||||
unsigned short * /*chars*/);
|
||||
|
||||
void (* ImageGlyphBlt)(
|
||||
DrawablePtr /*pDrawable*/,
|
||||
GCPtr /*pGC*/,
|
||||
int /*x*/,
|
||||
int /*y*/,
|
||||
unsigned int /*nglyph*/,
|
||||
CharInfoPtr * /*ppci*/,
|
||||
void * /*pglyphBase*/);
|
||||
|
||||
void (* PolyGlyphBlt)(
|
||||
DrawablePtr /*pDrawable*/,
|
||||
GCPtr /*pGC*/,
|
||||
int /*x*/,
|
||||
int /*y*/,
|
||||
unsigned int /*nglyph*/,
|
||||
CharInfoPtr * /*ppci*/,
|
||||
void * /*pglyphBase*/);
|
||||
|
||||
void (* PushPixels)(
|
||||
GCPtr /*pGC*/,
|
||||
PixmapPtr /*pBitMap*/,
|
||||
DrawablePtr /*pDst*/,
|
||||
int /*w*/,
|
||||
int /*h*/,
|
||||
int /*x*/,
|
||||
int /*y*/);
|
||||
|
||||
#ifdef NEED_LINEHELPER
|
||||
void (* LineHelper)();
|
||||
#endif
|
||||
|
||||
DevUnion devPrivate;
|
||||
} GCOps;
|
||||
|
||||
/* there is padding in the bit fields because the Sun compiler doesn't
|
||||
* force alignment to 32-bit boundaries. losers.
|
||||
*/
|
||||
typedef struct _GC {
|
||||
ScreenPtr pScreen;
|
||||
unsigned char depth;
|
||||
unsigned char alu;
|
||||
unsigned short lineWidth;
|
||||
unsigned short dashOffset;
|
||||
unsigned short numInDashList;
|
||||
unsigned char *dash;
|
||||
unsigned int lineStyle : 2;
|
||||
unsigned int capStyle : 2;
|
||||
unsigned int joinStyle : 2;
|
||||
unsigned int fillStyle : 2;
|
||||
unsigned int fillRule : 1;
|
||||
unsigned int arcMode : 1;
|
||||
unsigned int subWindowMode : 1;
|
||||
unsigned int graphicsExposures : 1;
|
||||
unsigned int clientClipType : 2; /* CT_<kind> */
|
||||
unsigned int miTranslate:1; /* should mi things translate? */
|
||||
unsigned int tileIsPixel:1; /* tile is solid pixel */
|
||||
unsigned int fExpose:1; /* Call exposure handling */
|
||||
unsigned int freeCompClip:1; /* Free composite clip */
|
||||
unsigned int unused:14; /* see comment above */
|
||||
unsigned long planemask;
|
||||
unsigned long fgPixel;
|
||||
unsigned long bgPixel;
|
||||
/*
|
||||
* alas -- both tile and stipple must be here as they
|
||||
* are independently specifiable
|
||||
*/
|
||||
PixUnion tile;
|
||||
PixmapPtr stipple;
|
||||
DDXPointRec patOrg; /* origin for (tile, stipple) */
|
||||
struct _Font *font;
|
||||
DDXPointRec clipOrg;
|
||||
DDXPointRec lastWinOrg; /* position of window last validated */
|
||||
void * clientClip;
|
||||
unsigned long stateChanges; /* masked with GC_<kind> */
|
||||
unsigned long serialNumber;
|
||||
GCFuncs *funcs;
|
||||
GCOps *ops;
|
||||
DevUnion *devPrivates;
|
||||
/*
|
||||
* The following were moved here from private storage to allow device-
|
||||
* independent access to them from screen wrappers.
|
||||
* --- 1997.11.03 Marc Aurele La France (tsi@xfree86.org)
|
||||
*/
|
||||
PixmapPtr pRotatedPixmap; /* tile/stipple rotated for alignment */
|
||||
RegionPtr pCompositeClip;
|
||||
/* fExpose & freeCompClip defined above */
|
||||
} GC;
|
||||
|
||||
#endif /* GCSTRUCT_H */
|
||||
146
nx-X11/programs/Xserver/include/globals.h
Normal file
146
nx-X11/programs/Xserver/include/globals.h
Normal file
@@ -0,0 +1,146 @@
|
||||
|
||||
#ifndef _XSERV_GLOBAL_H_
|
||||
#define _XSERV_GLOBAL_H_
|
||||
|
||||
#include "window.h" /* for WindowPtr */
|
||||
|
||||
/* Global X server variables that are visible to mi, dix, os, and ddx */
|
||||
|
||||
extern CARD32 defaultScreenSaverTime;
|
||||
extern CARD32 defaultScreenSaverInterval;
|
||||
extern CARD32 ScreenSaverTime;
|
||||
extern CARD32 ScreenSaverInterval;
|
||||
|
||||
#ifdef SCREENSAVER
|
||||
extern Bool screenSaverSuspended;
|
||||
#endif
|
||||
|
||||
extern char *defaultFontPath;
|
||||
extern int monitorResolution;
|
||||
extern Bool loadableFonts;
|
||||
extern int defaultColorVisualClass;
|
||||
|
||||
extern int GrabInProgress;
|
||||
extern char *ConnectionInfo;
|
||||
extern Bool noTestExtensions;
|
||||
|
||||
extern DDXPointRec dixScreenOrigins[MAXSCREENS];
|
||||
|
||||
#ifdef DPMSExtension
|
||||
extern CARD32 defaultDPMSStandbyTime;
|
||||
extern CARD32 defaultDPMSSuspendTime;
|
||||
extern CARD32 defaultDPMSOffTime;
|
||||
extern CARD32 DPMSStandbyTime;
|
||||
extern CARD32 DPMSSuspendTime;
|
||||
extern CARD32 DPMSOffTime;
|
||||
extern CARD16 DPMSPowerLevel;
|
||||
extern Bool defaultDPMSEnabled;
|
||||
extern Bool DPMSEnabled;
|
||||
extern Bool DPMSEnabledSwitch;
|
||||
extern Bool DPMSDisabledSwitch;
|
||||
extern Bool DPMSCapableFlag;
|
||||
#endif
|
||||
|
||||
#ifdef PANORAMIX
|
||||
extern Bool PanoramiXMapped;
|
||||
extern Bool PanoramiXVisibilityNotifySent;
|
||||
extern Bool PanoramiXWindowExposureSent;
|
||||
extern Bool PanoramiXOneExposeRequest;
|
||||
extern Bool PanoramiXExtensionDisabledHack;
|
||||
#endif
|
||||
|
||||
#ifdef BIGREQS
|
||||
extern Bool noBigReqExtension;
|
||||
#endif
|
||||
|
||||
#ifdef COMPOSITE
|
||||
extern Bool noCompositeExtension;
|
||||
#endif
|
||||
|
||||
#ifdef DAMAGE
|
||||
extern Bool noDamageExtension;
|
||||
#endif
|
||||
|
||||
#ifdef DBE
|
||||
extern Bool noDbeExtension;
|
||||
#endif
|
||||
|
||||
#ifdef DPMSExtension
|
||||
extern Bool noDPMSExtension;
|
||||
#endif
|
||||
|
||||
#ifdef GLXEXT
|
||||
extern Bool noGlxExtension;
|
||||
#endif
|
||||
|
||||
#ifdef SCREENSAVER
|
||||
extern Bool noScreenSaverExtension;
|
||||
#endif
|
||||
|
||||
#ifdef MITSHM
|
||||
extern Bool noMITShmExtension;
|
||||
#endif
|
||||
|
||||
#ifdef RANDR
|
||||
extern Bool noRRExtension;
|
||||
extern Bool noRRXineramaExtension;
|
||||
#endif
|
||||
|
||||
#ifdef RENDER
|
||||
extern Bool noRenderExtension;
|
||||
#endif
|
||||
|
||||
#ifdef SHAPE
|
||||
extern Bool noShapeExtension;
|
||||
#endif
|
||||
|
||||
#ifdef XCSECURITY
|
||||
extern Bool noSecurityExtension;
|
||||
#endif
|
||||
|
||||
#ifdef XSYNC
|
||||
extern Bool noSyncExtension;
|
||||
#endif
|
||||
|
||||
#ifdef RES
|
||||
extern Bool noResExtension;
|
||||
#endif
|
||||
|
||||
#ifdef XCMISC
|
||||
extern Bool noXCMiscExtension;
|
||||
#endif
|
||||
|
||||
#ifdef XF86BIGFONT
|
||||
extern Bool noXFree86BigfontExtension;
|
||||
#endif
|
||||
|
||||
#ifdef XF86DRI
|
||||
extern Bool noXFree86DRIExtension;
|
||||
#endif
|
||||
|
||||
#ifdef XFIXES
|
||||
extern Bool noXFixesExtension;
|
||||
#endif
|
||||
|
||||
#ifdef XKB
|
||||
/* |noXkbExtension| is defined in xc/programs/Xserver/xkb/xkbInit.c */
|
||||
extern Bool noXkbExtension;
|
||||
#endif
|
||||
|
||||
#ifdef PANORAMIX
|
||||
extern Bool noPanoramiXExtension;
|
||||
#endif
|
||||
|
||||
#ifdef XINPUT
|
||||
extern Bool noXInputExtension;
|
||||
#endif
|
||||
|
||||
#ifdef XIDLE
|
||||
extern Bool noXIdleExtension;
|
||||
#endif
|
||||
|
||||
#ifdef XV
|
||||
extern Bool noXvExtension;
|
||||
#endif
|
||||
|
||||
#endif /* !_XSERV_GLOBAL_H_ */
|
||||
389
nx-X11/programs/Xserver/include/input.h
Normal file
389
nx-X11/programs/Xserver/include/input.h
Normal file
@@ -0,0 +1,389 @@
|
||||
/************************************************************
|
||||
|
||||
Copyright 1987, 1998 The Open Group
|
||||
|
||||
Permission to use, copy, modify, distribute, and sell this software and its
|
||||
documentation for any purpose is hereby granted without fee, provided that
|
||||
the above copyright notice appear in all copies and that both that
|
||||
copyright notice and this permission notice appear in supporting
|
||||
documentation.
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name of The Open Group shall not be
|
||||
used in advertising or otherwise to promote the sale, use or other dealings
|
||||
in this Software without prior written authorization from The Open Group.
|
||||
|
||||
|
||||
Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
|
||||
|
||||
All Rights Reserved
|
||||
|
||||
Permission to use, copy, modify, and distribute this software and its
|
||||
documentation for any purpose and without fee is hereby granted,
|
||||
provided that the above copyright notice appear in all copies and that
|
||||
both that copyright notice and this permission notice appear in
|
||||
supporting documentation, and that the name of Digital not be
|
||||
used in advertising or publicity pertaining to distribution of the
|
||||
software without specific, written prior permission.
|
||||
|
||||
DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
|
||||
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
|
||||
DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
|
||||
ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
||||
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
|
||||
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
SOFTWARE.
|
||||
|
||||
********************************************************/
|
||||
|
||||
#ifndef INPUT_H
|
||||
#define INPUT_H
|
||||
|
||||
#include "misc.h"
|
||||
#include "screenint.h"
|
||||
#include <nx-X11/Xmd.h>
|
||||
#include <nx-X11/Xproto.h>
|
||||
#include "window.h" /* for WindowPtr */
|
||||
|
||||
#define DEVICE_INIT 0
|
||||
#define DEVICE_ON 1
|
||||
#define DEVICE_OFF 2
|
||||
#define DEVICE_CLOSE 3
|
||||
|
||||
#define MAP_LENGTH 256
|
||||
#define DOWN_LENGTH 32 /* 256/8 => number of bytes to hold 256 bits */
|
||||
#define NullGrab ((GrabPtr)NULL)
|
||||
#define PointerRootWin ((WindowPtr)PointerRoot)
|
||||
#define NoneWin ((WindowPtr)None)
|
||||
#define NullDevice ((DevicePtr)NULL)
|
||||
|
||||
#ifndef FollowKeyboard
|
||||
#define FollowKeyboard 3
|
||||
#endif
|
||||
#ifndef FollowKeyboardWin
|
||||
#define FollowKeyboardWin ((WindowPtr) FollowKeyboard)
|
||||
#endif
|
||||
#ifndef RevertToFollowKeyboard
|
||||
#define RevertToFollowKeyboard 3
|
||||
#endif
|
||||
|
||||
typedef unsigned long Leds;
|
||||
typedef struct _OtherClients *OtherClientsPtr;
|
||||
typedef struct _InputClients *InputClientsPtr;
|
||||
typedef struct _DeviceIntRec *DeviceIntPtr;
|
||||
|
||||
typedef int (*DeviceProc)(
|
||||
DeviceIntPtr /*device*/,
|
||||
int /*what*/);
|
||||
|
||||
typedef void (*ProcessInputProc)(
|
||||
xEventPtr /*events*/,
|
||||
DeviceIntPtr /*device*/,
|
||||
int /*count*/);
|
||||
|
||||
typedef Bool (*DeviceHandleProc)(
|
||||
DeviceIntPtr /*device*/,
|
||||
void* /*data*/
|
||||
);
|
||||
|
||||
typedef void (*DeviceUnwrapProc)(
|
||||
DeviceIntPtr /*device*/,
|
||||
DeviceHandleProc /*proc*/,
|
||||
void* /*data*/
|
||||
);
|
||||
|
||||
typedef struct _DeviceRec {
|
||||
void * devicePrivate;
|
||||
ProcessInputProc processInputProc; /* current */
|
||||
ProcessInputProc realInputProc; /* deliver */
|
||||
ProcessInputProc enqueueInputProc; /* enqueue */
|
||||
Bool on; /* used by DDX to keep state */
|
||||
} DeviceRec, *DevicePtr;
|
||||
|
||||
typedef struct {
|
||||
int click, bell, bell_pitch, bell_duration;
|
||||
Bool autoRepeat;
|
||||
unsigned char autoRepeats[32];
|
||||
Leds leds;
|
||||
unsigned char id;
|
||||
} KeybdCtrl;
|
||||
|
||||
typedef struct {
|
||||
KeySym *map;
|
||||
KeyCode minKeyCode,
|
||||
maxKeyCode;
|
||||
int mapWidth;
|
||||
} KeySymsRec, *KeySymsPtr;
|
||||
|
||||
typedef struct {
|
||||
int num, den, threshold;
|
||||
unsigned char id;
|
||||
} PtrCtrl;
|
||||
|
||||
typedef struct {
|
||||
int resolution, min_value, max_value;
|
||||
int integer_displayed;
|
||||
unsigned char id;
|
||||
} IntegerCtrl;
|
||||
|
||||
typedef struct {
|
||||
int max_symbols, num_symbols_supported;
|
||||
int num_symbols_displayed;
|
||||
KeySym *symbols_supported;
|
||||
KeySym *symbols_displayed;
|
||||
unsigned char id;
|
||||
} StringCtrl;
|
||||
|
||||
typedef struct {
|
||||
int percent, pitch, duration;
|
||||
unsigned char id;
|
||||
} BellCtrl;
|
||||
|
||||
typedef struct {
|
||||
Leds led_values;
|
||||
Mask led_mask;
|
||||
unsigned char id;
|
||||
} LedCtrl;
|
||||
|
||||
extern int AllocateDevicePrivateIndex(void);
|
||||
extern Bool AllocateDevicePrivate(DeviceIntPtr device, int index);
|
||||
extern void ResetDevicePrivateIndex(void);
|
||||
|
||||
extern KeybdCtrl defaultKeyboardControl;
|
||||
extern PtrCtrl defaultPointerControl;
|
||||
|
||||
#undef AddInputDevice
|
||||
extern DevicePtr AddInputDevice(
|
||||
DeviceProc /*deviceProc*/,
|
||||
Bool /*autoStart*/);
|
||||
|
||||
#define AddInputDevice(deviceProc, autoStart) \
|
||||
_AddInputDevice(deviceProc, autoStart)
|
||||
|
||||
extern DeviceIntPtr _AddInputDevice(
|
||||
DeviceProc /*deviceProc*/,
|
||||
Bool /*autoStart*/);
|
||||
|
||||
extern Bool EnableDevice(
|
||||
DeviceIntPtr /*device*/);
|
||||
|
||||
extern Bool DisableDevice(
|
||||
DeviceIntPtr /*device*/);
|
||||
|
||||
extern int InitAndStartDevices(void);
|
||||
|
||||
extern void CloseDownDevices(void);
|
||||
|
||||
extern void RemoveDevice(
|
||||
DeviceIntPtr /*dev*/);
|
||||
|
||||
extern int NumMotionEvents(void);
|
||||
|
||||
#undef RegisterPointerDevice
|
||||
extern void RegisterPointerDevice(
|
||||
DevicePtr /*device*/);
|
||||
|
||||
#define RegisterPointerDevice(device) \
|
||||
_RegisterPointerDevice(device)
|
||||
|
||||
extern void _RegisterPointerDevice(
|
||||
DeviceIntPtr /*device*/);
|
||||
|
||||
#undef RegisterKeyboardDevice
|
||||
extern void RegisterKeyboardDevice(
|
||||
DevicePtr /*device*/);
|
||||
|
||||
#define RegisterKeyboardDevice(device) \
|
||||
_RegisterKeyboardDevice(device)
|
||||
|
||||
extern void _RegisterKeyboardDevice(
|
||||
DeviceIntPtr /*device*/);
|
||||
|
||||
extern DevicePtr LookupKeyboardDevice(void);
|
||||
|
||||
extern DevicePtr LookupPointerDevice(void);
|
||||
|
||||
extern DevicePtr LookupDevice(
|
||||
int /* id */);
|
||||
|
||||
extern void QueryMinMaxKeyCodes(
|
||||
KeyCode* /*minCode*/,
|
||||
KeyCode* /*maxCode*/);
|
||||
|
||||
extern Bool SetKeySymsMap(
|
||||
KeySymsPtr /*dst*/,
|
||||
KeySymsPtr /*src*/);
|
||||
|
||||
extern Bool InitKeyClassDeviceStruct(
|
||||
DeviceIntPtr /*device*/,
|
||||
KeySymsPtr /*pKeySyms*/,
|
||||
CARD8 /*pModifiers*/[]);
|
||||
|
||||
extern Bool InitButtonClassDeviceStruct(
|
||||
DeviceIntPtr /*device*/,
|
||||
int /*numButtons*/,
|
||||
CARD8* /*map*/);
|
||||
|
||||
typedef int (*ValuatorMotionProcPtr)(
|
||||
DeviceIntPtr /*pdevice*/,
|
||||
xTimecoord * /*coords*/,
|
||||
unsigned long /*start*/,
|
||||
unsigned long /*stop*/,
|
||||
ScreenPtr /*pScreen*/);
|
||||
|
||||
extern Bool InitValuatorClassDeviceStruct(
|
||||
DeviceIntPtr /*device*/,
|
||||
int /*numAxes*/,
|
||||
ValuatorMotionProcPtr /* motionProc */,
|
||||
int /*numMotionEvents*/,
|
||||
int /*mode*/);
|
||||
|
||||
extern Bool InitFocusClassDeviceStruct(
|
||||
DeviceIntPtr /*device*/);
|
||||
|
||||
typedef void (*BellProcPtr)(
|
||||
int /*percent*/,
|
||||
DeviceIntPtr /*device*/,
|
||||
void * /*ctrl*/,
|
||||
int);
|
||||
|
||||
typedef void (*KbdCtrlProcPtr)(
|
||||
DeviceIntPtr /*device*/,
|
||||
KeybdCtrl * /*ctrl*/);
|
||||
|
||||
extern Bool InitKbdFeedbackClassDeviceStruct(
|
||||
DeviceIntPtr /*device*/,
|
||||
BellProcPtr /*bellProc*/,
|
||||
KbdCtrlProcPtr /*controlProc*/);
|
||||
|
||||
typedef void (*PtrCtrlProcPtr)(
|
||||
DeviceIntPtr /*device*/,
|
||||
PtrCtrl * /*ctrl*/);
|
||||
|
||||
extern Bool InitPtrFeedbackClassDeviceStruct(
|
||||
DeviceIntPtr /*device*/,
|
||||
PtrCtrlProcPtr /*controlProc*/);
|
||||
|
||||
typedef void (*StringCtrlProcPtr)(
|
||||
DeviceIntPtr /*device*/,
|
||||
StringCtrl * /*ctrl*/);
|
||||
|
||||
extern Bool InitStringFeedbackClassDeviceStruct(
|
||||
DeviceIntPtr /*device*/,
|
||||
StringCtrlProcPtr /*controlProc*/,
|
||||
int /*max_symbols*/,
|
||||
int /*num_symbols_supported*/,
|
||||
KeySym* /*symbols*/);
|
||||
|
||||
typedef void (*BellCtrlProcPtr)(
|
||||
DeviceIntPtr /*device*/,
|
||||
BellCtrl * /*ctrl*/);
|
||||
|
||||
extern Bool InitBellFeedbackClassDeviceStruct(
|
||||
DeviceIntPtr /*device*/,
|
||||
BellProcPtr /*bellProc*/,
|
||||
BellCtrlProcPtr /*controlProc*/);
|
||||
|
||||
typedef void (*LedCtrlProcPtr)(
|
||||
DeviceIntPtr /*device*/,
|
||||
LedCtrl * /*ctrl*/);
|
||||
|
||||
extern Bool InitLedFeedbackClassDeviceStruct(
|
||||
DeviceIntPtr /*device*/,
|
||||
LedCtrlProcPtr /*controlProc*/);
|
||||
|
||||
typedef void (*IntegerCtrlProcPtr)(
|
||||
DeviceIntPtr /*device*/,
|
||||
IntegerCtrl * /*ctrl*/);
|
||||
|
||||
|
||||
extern Bool InitIntegerFeedbackClassDeviceStruct(
|
||||
DeviceIntPtr /*device*/,
|
||||
IntegerCtrlProcPtr /*controlProc*/);
|
||||
|
||||
extern Bool InitPointerDeviceStruct(
|
||||
DevicePtr /*device*/,
|
||||
CARD8* /*map*/,
|
||||
int /*numButtons*/,
|
||||
ValuatorMotionProcPtr /*motionProc*/,
|
||||
PtrCtrlProcPtr /*controlProc*/,
|
||||
int /*numMotionEvents*/);
|
||||
|
||||
extern Bool InitKeyboardDeviceStruct(
|
||||
DevicePtr /*device*/,
|
||||
KeySymsPtr /*pKeySyms*/,
|
||||
CARD8 /*pModifiers*/[],
|
||||
BellProcPtr /*bellProc*/,
|
||||
KbdCtrlProcPtr /*controlProc*/);
|
||||
|
||||
extern void SendMappingNotify(
|
||||
unsigned int /*request*/,
|
||||
unsigned int /*firstKeyCode*/,
|
||||
unsigned int /*count*/,
|
||||
ClientPtr /* client */);
|
||||
|
||||
extern Bool BadDeviceMap(
|
||||
BYTE* /*buff*/,
|
||||
int /*length*/,
|
||||
unsigned /*low*/,
|
||||
unsigned /*high*/,
|
||||
XID* /*errval*/);
|
||||
|
||||
extern Bool AllModifierKeysAreUp(
|
||||
DeviceIntPtr /*device*/,
|
||||
CARD8* /*map1*/,
|
||||
int /*per1*/,
|
||||
CARD8* /*map2*/,
|
||||
int /*per2*/);
|
||||
|
||||
extern void NoteLedState(
|
||||
DeviceIntPtr /*keybd*/,
|
||||
int /*led*/,
|
||||
Bool /*on*/);
|
||||
|
||||
extern void MaybeStopHint(
|
||||
DeviceIntPtr /*device*/,
|
||||
ClientPtr /*client*/);
|
||||
|
||||
extern void ProcessPointerEvent(
|
||||
xEventPtr /*xE*/,
|
||||
DeviceIntPtr /*mouse*/,
|
||||
int /*count*/);
|
||||
|
||||
extern void ProcessKeyboardEvent(
|
||||
xEventPtr /*xE*/,
|
||||
DeviceIntPtr /*keybd*/,
|
||||
int /*count*/);
|
||||
|
||||
#ifdef XKB
|
||||
extern void CoreProcessPointerEvent(
|
||||
xEventPtr /*xE*/,
|
||||
DeviceIntPtr /*mouse*/,
|
||||
int /*count*/);
|
||||
|
||||
extern void CoreProcessKeyboardEvent(
|
||||
xEventPtr /*xE*/,
|
||||
DeviceIntPtr /*keybd*/,
|
||||
int /*count*/);
|
||||
#endif
|
||||
|
||||
extern Bool LegalModifier(
|
||||
unsigned int /*key*/,
|
||||
DevicePtr /*pDev*/);
|
||||
|
||||
extern void ProcessInputEvents(void);
|
||||
|
||||
extern void InitInput(
|
||||
int /*argc*/,
|
||||
char ** /*argv*/);
|
||||
|
||||
#endif /* INPUT_H */
|
||||
317
nx-X11/programs/Xserver/include/inputstr.h
Normal file
317
nx-X11/programs/Xserver/include/inputstr.h
Normal file
@@ -0,0 +1,317 @@
|
||||
/************************************************************
|
||||
|
||||
Copyright 1987, 1998 The Open Group
|
||||
|
||||
Permission to use, copy, modify, distribute, and sell this software and its
|
||||
documentation for any purpose is hereby granted without fee, provided that
|
||||
the above copyright notice appear in all copies and that both that
|
||||
copyright notice and this permission notice appear in supporting
|
||||
documentation.
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name of The Open Group shall not be
|
||||
used in advertising or otherwise to promote the sale, use or other dealings
|
||||
in this Software without prior written authorization from The Open Group.
|
||||
|
||||
|
||||
Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
|
||||
|
||||
All Rights Reserved
|
||||
|
||||
Permission to use, copy, modify, and distribute this software and its
|
||||
documentation for any purpose and without fee is hereby granted,
|
||||
provided that the above copyright notice appear in all copies and that
|
||||
both that copyright notice and this permission notice appear in
|
||||
supporting documentation, and that the name of Digital not be
|
||||
used in advertising or publicity pertaining to distribution of the
|
||||
software without specific, written prior permission.
|
||||
|
||||
DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
|
||||
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
|
||||
DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
|
||||
ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
||||
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
|
||||
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
SOFTWARE.
|
||||
|
||||
********************************************************/
|
||||
|
||||
|
||||
#ifndef INPUTSTRUCT_H
|
||||
#define INPUTSTRUCT_H
|
||||
|
||||
#include "input.h"
|
||||
#include "window.h"
|
||||
#include "dixstruct.h"
|
||||
|
||||
#define BitIsOn(ptr, bit) (((BYTE *) (ptr))[(bit)>>3] & (1 << ((bit) & 7)))
|
||||
|
||||
#define SameClient(obj,client) \
|
||||
(CLIENT_BITS((obj)->resource) == (client)->clientAsMask)
|
||||
|
||||
#define MAX_DEVICES 20
|
||||
|
||||
#define EMASKSIZE MAX_DEVICES
|
||||
|
||||
/* Kludge: OtherClients and InputClients must be compatible, see code */
|
||||
|
||||
typedef struct _OtherClients {
|
||||
OtherClientsPtr next;
|
||||
XID resource; /* id for putting into resource manager */
|
||||
Mask mask;
|
||||
} OtherClients;
|
||||
|
||||
typedef struct _InputClients {
|
||||
InputClientsPtr next;
|
||||
XID resource; /* id for putting into resource manager */
|
||||
Mask mask[EMASKSIZE];
|
||||
} InputClients;
|
||||
|
||||
typedef struct _OtherInputMasks {
|
||||
Mask deliverableEvents[EMASKSIZE];
|
||||
Mask inputEvents[EMASKSIZE];
|
||||
Mask dontPropagateMask[EMASKSIZE];
|
||||
InputClientsPtr inputClients;
|
||||
} OtherInputMasks;
|
||||
|
||||
/*
|
||||
* The following structure gets used for both active and passive grabs. For
|
||||
* active grabs some of the fields (e.g. modifiers) are not used. However,
|
||||
* that is not much waste since there aren't many active grabs (one per
|
||||
* keyboard/pointer device) going at once in the server.
|
||||
*/
|
||||
|
||||
#define MasksPerDetailMask 8 /* 256 keycodes and 256 possible
|
||||
modifier combinations, but only
|
||||
3 buttons. */
|
||||
|
||||
typedef struct _DetailRec { /* Grab details may be bit masks */
|
||||
unsigned short exact;
|
||||
Mask *pMask;
|
||||
} DetailRec;
|
||||
|
||||
typedef struct _GrabRec {
|
||||
GrabPtr next; /* for chain of passive grabs */
|
||||
XID resource;
|
||||
DeviceIntPtr device;
|
||||
WindowPtr window;
|
||||
unsigned ownerEvents:1;
|
||||
unsigned keyboardMode:1;
|
||||
unsigned pointerMode:1;
|
||||
unsigned coreGrab:1; /* grab is on core device */
|
||||
unsigned coreMods:1; /* modifiers are on core keyboard */
|
||||
CARD8 type; /* event type */
|
||||
DetailRec modifiersDetail;
|
||||
DeviceIntPtr modifierDevice;
|
||||
DetailRec detail; /* key or button */
|
||||
WindowPtr confineTo; /* always NULL for keyboards */
|
||||
CursorPtr cursor; /* always NULL for keyboards */
|
||||
Mask eventMask;
|
||||
} GrabRec;
|
||||
|
||||
typedef struct _KeyClassRec {
|
||||
CARD8 down[DOWN_LENGTH];
|
||||
KeyCode *modifierKeyMap;
|
||||
KeySymsRec curKeySyms;
|
||||
int modifierKeyCount[8];
|
||||
CARD8 modifierMap[MAP_LENGTH];
|
||||
CARD8 maxKeysPerModifier;
|
||||
unsigned short state;
|
||||
unsigned short prev_state;
|
||||
#ifdef XKB
|
||||
struct _XkbSrvInfo *xkbInfo;
|
||||
#endif
|
||||
} KeyClassRec, *KeyClassPtr;
|
||||
|
||||
typedef struct _AxisInfo {
|
||||
int resolution;
|
||||
int min_resolution;
|
||||
int max_resolution;
|
||||
int min_value;
|
||||
int max_value;
|
||||
} AxisInfo, *AxisInfoPtr;
|
||||
|
||||
typedef struct _ValuatorClassRec {
|
||||
ValuatorMotionProcPtr GetMotionProc;
|
||||
int numMotionEvents;
|
||||
WindowPtr motionHintWindow;
|
||||
AxisInfoPtr axes;
|
||||
unsigned short numAxes;
|
||||
int *axisVal;
|
||||
/* the next two are only written by xtest and never read currently. They exist
|
||||
to satisfy the compiler. Once Xi is updated, too, they will be a regular member
|
||||
anyway */
|
||||
int lastx, lasty; /* last event recorded, not posted to
|
||||
* client; see dix/devices.c */
|
||||
CARD8 mode;
|
||||
} ValuatorClassRec, *ValuatorClassPtr;
|
||||
|
||||
typedef struct _ButtonClassRec {
|
||||
CARD8 numButtons;
|
||||
CARD8 buttonsDown; /* number of buttons currently down */
|
||||
unsigned short state;
|
||||
Mask motionMask;
|
||||
CARD8 down[DOWN_LENGTH];
|
||||
CARD8 map[MAP_LENGTH];
|
||||
#ifdef XKB
|
||||
union _XkbAction * xkb_acts;
|
||||
#endif
|
||||
} ButtonClassRec, *ButtonClassPtr;
|
||||
|
||||
typedef struct _FocusClassRec {
|
||||
WindowPtr win;
|
||||
int revert;
|
||||
TimeStamp time;
|
||||
WindowPtr *trace;
|
||||
int traceSize;
|
||||
int traceGood;
|
||||
} FocusClassRec, *FocusClassPtr;
|
||||
|
||||
typedef struct _ProximityClassRec {
|
||||
char pad;
|
||||
} ProximityClassRec, *ProximityClassPtr;
|
||||
|
||||
typedef struct _KbdFeedbackClassRec *KbdFeedbackPtr;
|
||||
typedef struct _PtrFeedbackClassRec *PtrFeedbackPtr;
|
||||
typedef struct _IntegerFeedbackClassRec *IntegerFeedbackPtr;
|
||||
typedef struct _StringFeedbackClassRec *StringFeedbackPtr;
|
||||
typedef struct _BellFeedbackClassRec *BellFeedbackPtr;
|
||||
typedef struct _LedFeedbackClassRec *LedFeedbackPtr;
|
||||
|
||||
typedef struct _KbdFeedbackClassRec {
|
||||
BellProcPtr BellProc;
|
||||
KbdCtrlProcPtr CtrlProc;
|
||||
KeybdCtrl ctrl;
|
||||
KbdFeedbackPtr next;
|
||||
#ifdef XKB
|
||||
struct _XkbSrvLedInfo *xkb_sli;
|
||||
#endif
|
||||
} KbdFeedbackClassRec;
|
||||
|
||||
typedef struct _PtrFeedbackClassRec {
|
||||
PtrCtrlProcPtr CtrlProc;
|
||||
PtrCtrl ctrl;
|
||||
PtrFeedbackPtr next;
|
||||
} PtrFeedbackClassRec;
|
||||
|
||||
typedef struct _IntegerFeedbackClassRec {
|
||||
IntegerCtrlProcPtr CtrlProc;
|
||||
IntegerCtrl ctrl;
|
||||
IntegerFeedbackPtr next;
|
||||
} IntegerFeedbackClassRec;
|
||||
|
||||
typedef struct _StringFeedbackClassRec {
|
||||
StringCtrlProcPtr CtrlProc;
|
||||
StringCtrl ctrl;
|
||||
StringFeedbackPtr next;
|
||||
} StringFeedbackClassRec;
|
||||
|
||||
typedef struct _BellFeedbackClassRec {
|
||||
BellProcPtr BellProc;
|
||||
BellCtrlProcPtr CtrlProc;
|
||||
BellCtrl ctrl;
|
||||
BellFeedbackPtr next;
|
||||
} BellFeedbackClassRec;
|
||||
|
||||
typedef struct _LedFeedbackClassRec {
|
||||
LedCtrlProcPtr CtrlProc;
|
||||
LedCtrl ctrl;
|
||||
LedFeedbackPtr next;
|
||||
#ifdef XKB
|
||||
struct _XkbSrvLedInfo *xkb_sli;
|
||||
#endif
|
||||
} LedFeedbackClassRec;
|
||||
|
||||
/* states for devices */
|
||||
|
||||
#define NOT_GRABBED 0
|
||||
#define THAWED 1
|
||||
#define THAWED_BOTH 2 /* not a real state */
|
||||
#define FREEZE_NEXT_EVENT 3
|
||||
#define FREEZE_BOTH_NEXT_EVENT 4
|
||||
#define FROZEN 5 /* any state >= has device frozen */
|
||||
#define FROZEN_NO_EVENT 5
|
||||
#define FROZEN_WITH_EVENT 6
|
||||
#define THAW_OTHERS 7
|
||||
|
||||
typedef struct _DeviceIntRec {
|
||||
DeviceRec public;
|
||||
DeviceIntPtr next;
|
||||
TimeStamp grabTime;
|
||||
Bool startup; /* true if needs to be turned on at
|
||||
server intialization time */
|
||||
DeviceProc deviceProc; /* proc(DevicePtr, DEVICE_xx). It is
|
||||
used to initialize, turn on, or
|
||||
turn off the device */
|
||||
Bool inited; /* TRUE if INIT returns Success */
|
||||
GrabPtr grab; /* the grabber - used by DIX */
|
||||
struct {
|
||||
Bool frozen;
|
||||
int state;
|
||||
GrabPtr other; /* if other grab has this frozen */
|
||||
xEvent *event; /* saved to be replayed */
|
||||
int evcount;
|
||||
} sync;
|
||||
Atom type;
|
||||
char *name;
|
||||
CARD8 id;
|
||||
CARD8 activatingKey;
|
||||
Bool fromPassiveGrab;
|
||||
GrabRec activeGrab;
|
||||
void (*ActivateGrab) (
|
||||
DeviceIntPtr /*device*/,
|
||||
GrabPtr /*grab*/,
|
||||
TimeStamp /*time*/,
|
||||
Bool /*autoGrab*/);
|
||||
void (*DeactivateGrab)(
|
||||
DeviceIntPtr /*device*/);
|
||||
KeyClassPtr key;
|
||||
ValuatorClassPtr valuator;
|
||||
ButtonClassPtr button;
|
||||
FocusClassPtr focus;
|
||||
ProximityClassPtr proximity;
|
||||
KbdFeedbackPtr kbdfeed;
|
||||
PtrFeedbackPtr ptrfeed;
|
||||
IntegerFeedbackPtr intfeed;
|
||||
StringFeedbackPtr stringfeed;
|
||||
BellFeedbackPtr bell;
|
||||
LedFeedbackPtr leds;
|
||||
#ifdef XKB
|
||||
struct _XkbInterest * xkb_interest;
|
||||
#endif
|
||||
DevUnion *devPrivates;
|
||||
int nPrivates;
|
||||
DeviceUnwrapProc unwrapProc;
|
||||
} DeviceIntRec;
|
||||
|
||||
typedef struct {
|
||||
int numDevices; /* total number of devices */
|
||||
DeviceIntPtr devices; /* all devices turned on */
|
||||
DeviceIntPtr off_devices; /* all devices turned off */
|
||||
DeviceIntPtr keyboard; /* the main one for the server */
|
||||
DeviceIntPtr pointer;
|
||||
} InputInfo;
|
||||
|
||||
extern InputInfo inputInfo;
|
||||
|
||||
/* for keeping the events for devices grabbed synchronously */
|
||||
typedef struct _QdEvent *QdEventPtr;
|
||||
typedef struct _QdEvent {
|
||||
QdEventPtr next;
|
||||
DeviceIntPtr device;
|
||||
ScreenPtr pScreen; /* what screen the pointer was on */
|
||||
unsigned long months; /* milliseconds is in the event */
|
||||
xEvent *event;
|
||||
int evcount;
|
||||
} QdEventRec;
|
||||
|
||||
#endif /* INPUTSTRUCT_H */
|
||||
494
nx-X11/programs/Xserver/include/list.h
Normal file
494
nx-X11/programs/Xserver/include/list.h
Normal file
@@ -0,0 +1,494 @@
|
||||
/*
|
||||
* Copyright © 2010 Intel Corporation
|
||||
* Copyright © 2010 Francisco Jerez <currojerez@riseup.net>
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the "Software"),
|
||||
* to deal in the Software without restriction, including without limitation
|
||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
* and/or sell copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice (including the next
|
||||
* paragraph) shall be included in all copies or substantial portions of the
|
||||
* Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
* IN THE SOFTWARE.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _XORG_LIST_H_
|
||||
#define _XORG_LIST_H_
|
||||
|
||||
#include <stddef.h> /* offsetof() */
|
||||
|
||||
/**
|
||||
* @file Classic doubly-link circular list implementation.
|
||||
* For real usage examples of the linked list, see the file test/list.c
|
||||
*
|
||||
* Example:
|
||||
* We need to keep a list of struct foo in the parent struct bar, i.e. what
|
||||
* we want is something like this.
|
||||
*
|
||||
* struct bar {
|
||||
* ...
|
||||
* struct foo *list_of_foos; -----> struct foo {}, struct foo {}, struct foo{}
|
||||
* ...
|
||||
* }
|
||||
*
|
||||
* We need one list head in bar and a list element in all list_of_foos (both are of
|
||||
* data type 'struct xorg_list').
|
||||
*
|
||||
* struct bar {
|
||||
* ...
|
||||
* struct xorg_list list_of_foos;
|
||||
* ...
|
||||
* }
|
||||
*
|
||||
* struct foo {
|
||||
* ...
|
||||
* struct xorg_list entry;
|
||||
* ...
|
||||
* }
|
||||
*
|
||||
* Now we initialize the list head:
|
||||
*
|
||||
* struct bar bar;
|
||||
* ...
|
||||
* xorg_list_init(&bar.list_of_foos);
|
||||
*
|
||||
* Then we create the first element and add it to this list:
|
||||
*
|
||||
* struct foo *foo = malloc(...);
|
||||
* ....
|
||||
* xorg_list_add(&foo->entry, &bar.list_of_foos);
|
||||
*
|
||||
* Repeat the above for each element you want to add to the list. Deleting
|
||||
* works with the element itself.
|
||||
* xorg_list_del(&foo->entry);
|
||||
* free(foo);
|
||||
*
|
||||
* Note: calling xorg_list_del(&bar.list_of_foos) will set bar.list_of_foos to an empty
|
||||
* list again.
|
||||
*
|
||||
* Looping through the list requires a 'struct foo' as iterator and the
|
||||
* name of the field the subnodes use.
|
||||
*
|
||||
* struct foo *iterator;
|
||||
* xorg_list_for_each_entry(iterator, &bar.list_of_foos, entry) {
|
||||
* if (iterator->something == ...)
|
||||
* ...
|
||||
* }
|
||||
*
|
||||
* Note: You must not call xorg_list_del() on the iterator if you continue the
|
||||
* loop. You need to run the safe for-each loop instead:
|
||||
*
|
||||
* struct foo *iterator, *next;
|
||||
* xorg_list_for_each_entry_safe(iterator, next, &bar.list_of_foos, entry) {
|
||||
* if (...)
|
||||
* xorg_list_del(&iterator->entry);
|
||||
* }
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* The linkage struct for list nodes. This struct must be part of your
|
||||
* to-be-linked struct. struct xorg_list is required for both the head of the
|
||||
* list and for each list node.
|
||||
*
|
||||
* Position and name of the struct xorg_list field is irrelevant.
|
||||
* There are no requirements that elements of a list are of the same type.
|
||||
* There are no requirements for a list head, any struct xorg_list can be a list
|
||||
* head.
|
||||
*/
|
||||
struct xorg_list {
|
||||
struct xorg_list *next, *prev;
|
||||
};
|
||||
|
||||
/**
|
||||
* Initialize the list as an empty list.
|
||||
*
|
||||
* Example:
|
||||
* xorg_list_init(&bar->list_of_foos);
|
||||
*
|
||||
* @param list The list to initialize
|
||||
*/
|
||||
static inline void
|
||||
xorg_list_init(struct xorg_list *list)
|
||||
{
|
||||
list->next = list->prev = list;
|
||||
}
|
||||
|
||||
static inline void
|
||||
__xorg_list_add(struct xorg_list *entry,
|
||||
struct xorg_list *prev, struct xorg_list *next)
|
||||
{
|
||||
next->prev = entry;
|
||||
entry->next = next;
|
||||
entry->prev = prev;
|
||||
prev->next = entry;
|
||||
}
|
||||
|
||||
/**
|
||||
* Insert a new element after the given list head. The new element does not
|
||||
* need to be initialised as empty list.
|
||||
* The list changes from:
|
||||
* head → some element → ...
|
||||
* to
|
||||
* head → new element → older element → ...
|
||||
*
|
||||
* Example:
|
||||
* struct foo *newfoo = malloc(...);
|
||||
* xorg_list_add(&newfoo->entry, &bar->list_of_foos);
|
||||
*
|
||||
* @param entry The new element to prepend to the list.
|
||||
* @param head The existing list.
|
||||
*/
|
||||
static inline void
|
||||
xorg_list_add(struct xorg_list *entry, struct xorg_list *head)
|
||||
{
|
||||
__xorg_list_add(entry, head, head->next);
|
||||
}
|
||||
|
||||
/**
|
||||
* Append a new element to the end of the list given with this list head.
|
||||
*
|
||||
* The list changes from:
|
||||
* head → some element → ... → lastelement
|
||||
* to
|
||||
* head → some element → ... → lastelement → new element
|
||||
*
|
||||
* Example:
|
||||
* struct foo *newfoo = malloc(...);
|
||||
* xorg_list_append(&newfoo->entry, &bar->list_of_foos);
|
||||
*
|
||||
* @param entry The new element to prepend to the list.
|
||||
* @param head The existing list.
|
||||
*/
|
||||
static inline void
|
||||
xorg_list_append(struct xorg_list *entry, struct xorg_list *head)
|
||||
{
|
||||
__xorg_list_add(entry, head->prev, head);
|
||||
}
|
||||
|
||||
static inline void
|
||||
__xorg_list_del(struct xorg_list *prev, struct xorg_list *next)
|
||||
{
|
||||
next->prev = prev;
|
||||
prev->next = next;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the element from the list it is in. Using this function will reset
|
||||
* the pointers to/from this element so it is removed from the list. It does
|
||||
* NOT free the element itself or manipulate it otherwise.
|
||||
*
|
||||
* Using xorg_list_del on a pure list head (like in the example at the top of
|
||||
* this file) will NOT remove the first element from
|
||||
* the list but rather reset the list as empty list.
|
||||
*
|
||||
* Example:
|
||||
* xorg_list_del(&foo->entry);
|
||||
*
|
||||
* @param entry The element to remove.
|
||||
*/
|
||||
static inline void
|
||||
xorg_list_del(struct xorg_list *entry)
|
||||
{
|
||||
__xorg_list_del(entry->prev, entry->next);
|
||||
xorg_list_init(entry);
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if the list is empty.
|
||||
*
|
||||
* Example:
|
||||
* xorg_list_is_empty(&bar->list_of_foos);
|
||||
*
|
||||
* @return True if the list contains one or more elements or False otherwise.
|
||||
*/
|
||||
static inline int
|
||||
xorg_list_is_empty(struct xorg_list *head)
|
||||
{
|
||||
return head->next == head;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a pointer to the container of this list element.
|
||||
*
|
||||
* Example:
|
||||
* struct foo* f;
|
||||
* f = container_of(&foo->entry, struct foo, entry);
|
||||
* assert(f == foo);
|
||||
*
|
||||
* @param ptr Pointer to the struct xorg_list.
|
||||
* @param type Data type of the list element.
|
||||
* @param member Member name of the struct xorg_list field in the list element.
|
||||
* @return A pointer to the data struct containing the list head.
|
||||
*/
|
||||
#ifndef container_of
|
||||
#define container_of(ptr, type, member) \
|
||||
(type *)((char *)(ptr) - offsetof(type, member))
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Alias of container_of
|
||||
*/
|
||||
#define xorg_list_entry(ptr, type, member) \
|
||||
container_of(ptr, type, member)
|
||||
|
||||
/**
|
||||
* Retrieve the first list entry for the given list pointer.
|
||||
*
|
||||
* Example:
|
||||
* struct foo *first;
|
||||
* first = xorg_list_first_entry(&bar->list_of_foos, struct foo, list_of_foos);
|
||||
*
|
||||
* @param ptr The list head
|
||||
* @param type Data type of the list element to retrieve
|
||||
* @param member Member name of the struct xorg_list field in the list element.
|
||||
* @return A pointer to the first list element.
|
||||
*/
|
||||
#define xorg_list_first_entry(ptr, type, member) \
|
||||
xorg_list_entry((ptr)->next, type, member)
|
||||
|
||||
/**
|
||||
* Retrieve the last list entry for the given listpointer.
|
||||
*
|
||||
* Example:
|
||||
* struct foo *first;
|
||||
* first = xorg_list_last_entry(&bar->list_of_foos, struct foo, list_of_foos);
|
||||
*
|
||||
* @param ptr The list head
|
||||
* @param type Data type of the list element to retrieve
|
||||
* @param member Member name of the struct xorg_list field in the list element.
|
||||
* @return A pointer to the last list element.
|
||||
*/
|
||||
#define xorg_list_last_entry(ptr, type, member) \
|
||||
xorg_list_entry((ptr)->prev, type, member)
|
||||
|
||||
#ifdef HAVE_TYPEOF
|
||||
#define __container_of(ptr, sample, member) \
|
||||
container_of(ptr, typeof(*sample), member)
|
||||
#else
|
||||
/* This implementation of __container_of has undefined behavior according
|
||||
* to the C standard, but it works in many cases. If your compiler doesn't
|
||||
* support typeof() and fails with this implementation, please try a newer
|
||||
* compiler.
|
||||
*/
|
||||
#define __container_of(ptr, sample, member) \
|
||||
(void *)((char *)(ptr) \
|
||||
- ((char *)&(sample)->member - (char *)(sample)))
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Loop through the list given by head and set pos to struct in the list.
|
||||
*
|
||||
* Example:
|
||||
* struct foo *iterator;
|
||||
* xorg_list_for_each_entry(iterator, &bar->list_of_foos, entry) {
|
||||
* [modify iterator]
|
||||
* }
|
||||
*
|
||||
* This macro is not safe for node deletion. Use xorg_list_for_each_entry_safe
|
||||
* instead.
|
||||
*
|
||||
* @param pos Iterator variable of the type of the list elements.
|
||||
* @param head List head
|
||||
* @param member Member name of the struct xorg_list in the list elements.
|
||||
*
|
||||
*/
|
||||
#define xorg_list_for_each_entry(pos, head, member) \
|
||||
for (pos = NULL, \
|
||||
pos = __container_of((head)->next, pos, member); \
|
||||
&pos->member != (head); \
|
||||
pos = __container_of(pos->member.next, pos, member))
|
||||
|
||||
/**
|
||||
* Loop through the list, keeping a backup pointer to the element. This
|
||||
* macro allows for the deletion of a list element while looping through the
|
||||
* list.
|
||||
*
|
||||
* See xorg_list_for_each_entry for more details.
|
||||
*/
|
||||
#define xorg_list_for_each_entry_safe(pos, tmp, head, member) \
|
||||
for (pos = NULL, \
|
||||
pos = __container_of((head)->next, pos, member), \
|
||||
tmp = __container_of(pos->member.next, pos, member); \
|
||||
&pos->member != (head); \
|
||||
pos = tmp, tmp = __container_of(pos->member.next, tmp, member))
|
||||
|
||||
/* NULL-Terminated List Interface
|
||||
*
|
||||
* The interface below does _not_ use the struct xorg_list as described above.
|
||||
* It is mainly for legacy structures that cannot easily be switched to
|
||||
* struct xorg_list.
|
||||
*
|
||||
* This interface is for structs like
|
||||
* struct foo {
|
||||
* [...]
|
||||
* struct foo *next;
|
||||
* [...]
|
||||
* };
|
||||
*
|
||||
* The position and field name of "next" are arbitrary.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Init the element as null-terminated list.
|
||||
*
|
||||
* Example:
|
||||
* struct foo *list = malloc();
|
||||
* nt_list_init(list, next);
|
||||
*
|
||||
* @param list The list element that will be the start of the list
|
||||
* @param member Member name of the field pointing to next struct
|
||||
*/
|
||||
#define nt_list_init(_list, _member) \
|
||||
(_list)->_member = NULL
|
||||
|
||||
/**
|
||||
* Returns the next element in the list or NULL on termination.
|
||||
*
|
||||
* Example:
|
||||
* struct foo *element = list;
|
||||
* while ((element = nt_list_next(element, next)) { }
|
||||
*
|
||||
* This macro is not safe for node deletion. Use nt_list_for_each_entry_safe
|
||||
* instead.
|
||||
*
|
||||
* @param list The list or current element.
|
||||
* @param member Member name of the field pointing to next struct.
|
||||
*/
|
||||
#define nt_list_next(_list, _member) \
|
||||
(_list)->_member
|
||||
|
||||
/**
|
||||
* Iterate through each element in the list.
|
||||
*
|
||||
* Example:
|
||||
* struct foo *iterator;
|
||||
* nt_list_for_each_entry(iterator, list, next) {
|
||||
* [modify iterator]
|
||||
* }
|
||||
*
|
||||
* @param entry Assigned to the current list element
|
||||
* @param list The list to iterate through.
|
||||
* @param member Member name of the field pointing to next struct.
|
||||
*/
|
||||
#define nt_list_for_each_entry(_entry, _list, _member) \
|
||||
for (_entry = _list; _entry; _entry = (_entry)->_member)
|
||||
|
||||
/**
|
||||
* Iterate through each element in the list, keeping a backup pointer to the
|
||||
* element. This macro allows for the deletion of a list element while
|
||||
* looping through the list.
|
||||
*
|
||||
* See nt_list_for_each_entry for more details.
|
||||
*
|
||||
* @param entry Assigned to the current list element
|
||||
* @param tmp The pointer to the next element
|
||||
* @param list The list to iterate through.
|
||||
* @param member Member name of the field pointing to next struct.
|
||||
*/
|
||||
#define nt_list_for_each_entry_safe(_entry, _tmp, _list, _member) \
|
||||
for (_entry = _list, _tmp = (_entry) ? (_entry)->_member : NULL;\
|
||||
_entry; \
|
||||
_entry = _tmp, _tmp = (_tmp) ? (_tmp)->_member: NULL)
|
||||
|
||||
/**
|
||||
* Append the element to the end of the list. This macro may be used to
|
||||
* merge two lists.
|
||||
*
|
||||
* Example:
|
||||
* struct foo *elem = malloc(...);
|
||||
* nt_list_init(elem, next)
|
||||
* nt_list_append(elem, list, struct foo, next);
|
||||
*
|
||||
* Resulting list order:
|
||||
* list_item_0 -> list_item_1 -> ... -> elem_item_0 -> elem_item_1 ...
|
||||
*
|
||||
* @param entry An entry (or list) to append to the list
|
||||
* @param list The list to append to. This list must be a valid list, not
|
||||
* NULL.
|
||||
* @param type The list type
|
||||
* @param member Member name of the field pointing to next struct
|
||||
*/
|
||||
#define nt_list_append(_entry, _list, _type, _member) \
|
||||
do { \
|
||||
_type *__iterator = _list; \
|
||||
while (__iterator->_member) { __iterator = __iterator->_member;}\
|
||||
__iterator->_member = _entry; \
|
||||
} while (0)
|
||||
|
||||
/**
|
||||
* Insert the element at the next position in the list. This macro may be
|
||||
* used to insert a list into a list.
|
||||
*
|
||||
* struct foo *elem = malloc(...);
|
||||
* nt_list_init(elem, next)
|
||||
* nt_list_insert(elem, list, struct foo, next);
|
||||
*
|
||||
* Resulting list order:
|
||||
* list_item_0 -> elem_item_0 -> elem_item_1 ... -> list_item_1 -> ...
|
||||
*
|
||||
* @param entry An entry (or list) to append to the list
|
||||
* @param list The list to insert to. This list must be a valid list, not
|
||||
* NULL.
|
||||
* @param type The list type
|
||||
* @param member Member name of the field pointing to next struct
|
||||
*/
|
||||
#define nt_list_insert(_entry, _list, _type, _member) \
|
||||
do { \
|
||||
nt_list_append((_list)->_member, _entry, _type, _member); \
|
||||
(_list)->_member = _entry; \
|
||||
} while (0)
|
||||
|
||||
/**
|
||||
* Delete the entry from the list by iterating through the list and
|
||||
* removing any reference from the list to the entry.
|
||||
*
|
||||
* Example:
|
||||
* struct foo *elem = <assign to right element>
|
||||
* nt_list_del(elem, list, struct foo, next);
|
||||
*
|
||||
* @param entry The entry to delete from the list. entry is always
|
||||
* re-initialized as a null-terminated list.
|
||||
* @param list The list containing the entry, set to the new list without
|
||||
* the removed entry.
|
||||
* @param type The list type
|
||||
* @param member Member name of the field pointing to the next entry
|
||||
*/
|
||||
#define nt_list_del(_entry, _list, _type, _member) \
|
||||
do { \
|
||||
_type *__e = _entry; \
|
||||
if (__e == NULL || _list == NULL) break; \
|
||||
if ((_list) == __e) { \
|
||||
_list = __e->_member; \
|
||||
} else { \
|
||||
_type *__prev = _list; \
|
||||
while (__prev->_member && __prev->_member != __e) \
|
||||
__prev = nt_list_next(__prev, _member); \
|
||||
if (__prev->_member) \
|
||||
__prev->_member = __e->_member; \
|
||||
} \
|
||||
nt_list_init(__e, _member); \
|
||||
} while(0)
|
||||
|
||||
/**
|
||||
* DO NOT USE THIS.
|
||||
* This is a remainder of the xfree86 DDX attempt of having a set of generic
|
||||
* list functions. Unfortunately, the xf86OptionRec uses it and we can't
|
||||
* easily get rid of it. Do not use for new code.
|
||||
*/
|
||||
typedef struct generic_list_rec {
|
||||
void *next;
|
||||
} GenericListRec, *GenericListPtr, *glp;
|
||||
|
||||
#endif
|
||||
400
nx-X11/programs/Xserver/include/misc.h
Normal file
400
nx-X11/programs/Xserver/include/misc.h
Normal file
@@ -0,0 +1,400 @@
|
||||
/***********************************************************
|
||||
|
||||
Copyright 1987, 1998 The Open Group
|
||||
|
||||
Permission to use, copy, modify, distribute, and sell this software and its
|
||||
documentation for any purpose is hereby granted without fee, provided that
|
||||
the above copyright notice appear in all copies and that both that
|
||||
copyright notice and this permission notice appear in supporting
|
||||
documentation.
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name of The Open Group shall not be
|
||||
used in advertising or otherwise to promote the sale, use or other dealings
|
||||
in this Software without prior written authorization from The Open Group.
|
||||
|
||||
|
||||
Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
|
||||
|
||||
All Rights Reserved
|
||||
|
||||
Permission to use, copy, modify, and distribute this software and its
|
||||
documentation for any purpose and without fee is hereby granted,
|
||||
provided that the above copyright notice appear in all copies and that
|
||||
both that copyright notice and this permission notice appear in
|
||||
supporting documentation, and that the name of Digital not be
|
||||
used in advertising or publicity pertaining to distribution of the
|
||||
software without specific, written prior permission.
|
||||
|
||||
DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
|
||||
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
|
||||
DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
|
||||
ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
||||
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
|
||||
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
SOFTWARE.
|
||||
|
||||
Copyright 1992, 1993 Data General Corporation;
|
||||
Copyright 1992, 1993 OMRON Corporation
|
||||
|
||||
Permission to use, copy, modify, distribute, and sell this software and its
|
||||
documentation for any purpose is hereby granted without fee, provided that the
|
||||
above copyright notice appear in all copies and that both that copyright
|
||||
notice and this permission notice appear in supporting documentation, and that
|
||||
neither the name OMRON or DATA GENERAL be used in advertising or publicity
|
||||
pertaining to distribution of the software without specific, written prior
|
||||
permission of the party whose name is to be used. Neither OMRON or
|
||||
DATA GENERAL make any representation about the suitability of this software
|
||||
for any purpose. It is provided "as is" without express or implied warranty.
|
||||
|
||||
OMRON AND DATA GENERAL EACH DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
|
||||
SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS,
|
||||
IN NO EVENT SHALL OMRON OR DATA GENERAL BE LIABLE FOR ANY SPECIAL, INDIRECT
|
||||
OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
|
||||
DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
|
||||
TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
|
||||
OF THIS SOFTWARE.
|
||||
|
||||
******************************************************************/
|
||||
#ifndef MISC_H
|
||||
#define MISC_H 1
|
||||
/*
|
||||
* X internal definitions
|
||||
*
|
||||
*/
|
||||
|
||||
extern unsigned long globalSerialNumber;
|
||||
extern unsigned long serverGeneration;
|
||||
|
||||
#include <nx-X11/Xosdefs.h>
|
||||
#include <nx-X11/Xfuncproto.h>
|
||||
#include <nx-X11/Xmd.h>
|
||||
#include <nx-X11/X.h>
|
||||
#include <stdint.h>
|
||||
|
||||
#ifndef _XTYPEDEF_POINTER
|
||||
/* Don't let Xdefs.h define 'pointer' */
|
||||
#define _XTYPEDEF_POINTER 1
|
||||
#endif /* _XTYPEDEF_POINTER */
|
||||
|
||||
/* FIXME: for building this code against Xlib versions older than apprx. 04/2014
|
||||
* we still have to define the pointer type via Xdefs.h.
|
||||
*
|
||||
* The nx-libs code itself does not require the pointer definition.
|
||||
*
|
||||
*/
|
||||
#undef _XTYPEDEF_POINTER
|
||||
|
||||
#include <nx-X11/Xdefs.h>
|
||||
|
||||
#ifndef NULL
|
||||
#include <stddef.h>
|
||||
#endif
|
||||
|
||||
#ifndef MAXSCREENS
|
||||
#define MAXSCREENS 16
|
||||
#endif
|
||||
#define MAXCLIENTS 256
|
||||
#define MAXDITS 1
|
||||
#define MAXEXTENSIONS 128
|
||||
#define MAXFORMATS 8
|
||||
#define MAXVISUALS_PER_SCREEN 50
|
||||
|
||||
typedef unsigned long PIXEL;
|
||||
typedef unsigned long ATOM;
|
||||
|
||||
|
||||
#ifndef TRUE
|
||||
#define TRUE 1
|
||||
#define FALSE 0
|
||||
#endif
|
||||
|
||||
#ifndef _XTYPEDEF_CALLBACKLISTPTR
|
||||
typedef struct _CallbackList *CallbackListPtr; /* also in dix.h */
|
||||
#define _XTYPEDEF_CALLBACKLISTPTR
|
||||
#endif
|
||||
|
||||
typedef struct _xReq *xReqPtr;
|
||||
|
||||
#include "os.h" /* for ALLOCATE_LOCAL and DEALLOCATE_LOCAL */
|
||||
#include <nx-X11/Xfuncs.h> /* for bcopy, bzero, and bcmp */
|
||||
|
||||
#define NullBox ((BoxPtr)0)
|
||||
#define MILLI_PER_MIN (1000 * 60)
|
||||
#define MILLI_PER_SECOND (1000)
|
||||
|
||||
/* this next is used with None and ParentRelative to tell
|
||||
PaintWin() what to use to paint the background. Also used
|
||||
in the macro IS_VALID_PIXMAP */
|
||||
|
||||
#define USE_BACKGROUND_PIXEL 3
|
||||
#define USE_BORDER_PIXEL 3
|
||||
|
||||
|
||||
/* byte swap a 32-bit literal */
|
||||
#define lswapl(x) ((((x) & 0xff) << 24) |\
|
||||
(((x) & 0xff00) << 8) |\
|
||||
(((x) & 0xff0000) >> 8) |\
|
||||
(((x) >> 24) & 0xff))
|
||||
|
||||
/* byte swap a short literal */
|
||||
#define lswaps(x) ((((x) & 0xff) << 8) | (((x) >> 8) & 0xff))
|
||||
|
||||
#undef min
|
||||
#undef max
|
||||
|
||||
#define min(a, b) (((a) < (b)) ? (a) : (b))
|
||||
#define max(a, b) (((a) > (b)) ? (a) : (b))
|
||||
/* abs() is a function, not a macro; include the file declaring
|
||||
* it in case we haven't done that yet.
|
||||
*/
|
||||
#include <stdlib.h>
|
||||
#ifndef Fabs
|
||||
#define Fabs(a) ((a) > 0.0 ? (a) : -(a)) /* floating absolute value */
|
||||
#endif
|
||||
#define sign(x) ((x) < 0 ? -1 : ((x) > 0 ? 1 : 0))
|
||||
/* this assumes b > 0 */
|
||||
#define modulus(a, b, d) if (((d) = (a) % (b)) < 0) (d) += (b)
|
||||
/*
|
||||
* return the least significant bit in x which is set
|
||||
*
|
||||
* This works on 1's complement and 2's complement machines.
|
||||
* If you care about the extra instruction on 2's complement
|
||||
* machines, change to ((x) & (-(x)))
|
||||
*/
|
||||
#define lowbit(x) ((x) & (~(x) + 1))
|
||||
|
||||
/* XXX Not for modules */
|
||||
#include <limits.h>
|
||||
#if !defined(MAXSHORT) || !defined(MINSHORT) || \
|
||||
!defined(MAXINT) || !defined(MININT)
|
||||
/*
|
||||
* Some implementations #define these through <math.h>, so preclude
|
||||
* #include'ing it later.
|
||||
*/
|
||||
|
||||
#include <math.h>
|
||||
#endif
|
||||
#undef MAXSHORT
|
||||
#define MAXSHORT SHRT_MAX
|
||||
#undef MINSHORT
|
||||
#define MINSHORT SHRT_MIN
|
||||
#undef MAXINT
|
||||
#define MAXINT INT_MAX
|
||||
#undef MININT
|
||||
#define MININT INT_MIN
|
||||
|
||||
#include <assert.h>
|
||||
#include <ctype.h>
|
||||
#include <stdio.h> /* for fopen, etc... */
|
||||
|
||||
/**
|
||||
* Calculate the number of bytes needed to hold bits.
|
||||
* @param bits The minimum number of bits needed.
|
||||
* @return The number of bytes needed to hold bits.
|
||||
*/
|
||||
static __inline__ int
|
||||
bits_to_bytes(const int bits) {
|
||||
return ((bits + 7) >> 3);
|
||||
}
|
||||
/**
|
||||
* Calculate the number of 4-byte units needed to hold the given number of
|
||||
* bytes.
|
||||
* @param bytes The minimum number of bytes needed.
|
||||
* @return The number of 4-byte units needed to hold bytes.
|
||||
*/
|
||||
static __inline__ int
|
||||
bytes_to_int32(const int bytes) {
|
||||
return (((bytes) + 3) >> 2);
|
||||
}
|
||||
|
||||
/**
|
||||
* Calculate the number of bytes (in multiples of 4) needed to hold bytes.
|
||||
* @param bytes The minimum number of bytes needed.
|
||||
* @return The closest multiple of 4 that is equal or higher than bytes.
|
||||
*/
|
||||
static __inline__ int
|
||||
pad_to_int32(const int bytes) {
|
||||
return (((bytes) + 3) & ~3);
|
||||
}
|
||||
|
||||
/**
|
||||
* Compare the two version numbers comprising of major.minor.
|
||||
*
|
||||
* @return A value less than 0 if a is less than b, 0 if a is equal to b,
|
||||
* or a value greater than 0
|
||||
*/
|
||||
static inline int
|
||||
version_compare(uint32_t a_major, uint32_t a_minor,
|
||||
uint32_t b_major, uint32_t b_minor)
|
||||
{
|
||||
if (a_major > b_major)
|
||||
return 1;
|
||||
if (a_major < b_major)
|
||||
return -1;
|
||||
if (a_minor > b_minor)
|
||||
return 1;
|
||||
if (a_minor < b_minor)
|
||||
return -1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* some macros to help swap requests, replies, and events */
|
||||
|
||||
#define LengthRestB(stuff) \
|
||||
((client->req_len << 2) - sizeof(*stuff))
|
||||
|
||||
#define LengthRestS(stuff) \
|
||||
((client->req_len << 1) - (sizeof(*stuff) >> 1))
|
||||
|
||||
#define LengthRestL(stuff) \
|
||||
(client->req_len - (sizeof(*stuff) >> 2))
|
||||
|
||||
#define SwapRestS(stuff) \
|
||||
SwapShorts((short *)(stuff + 1), LengthRestS(stuff))
|
||||
|
||||
#define SwapRestL(stuff) \
|
||||
SwapLongs((CARD32 *)(stuff + 1), LengthRestL(stuff))
|
||||
|
||||
#if defined(__GNUC__) && ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))
|
||||
void __attribute__ ((error("wrong sized variable passed to swap")))
|
||||
wrong_size(void);
|
||||
#else
|
||||
static inline void
|
||||
wrong_size(void)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
#if !(defined(__GNUC__) || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590)))
|
||||
static inline int
|
||||
__builtin_constant_p(int x)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* byte swap a 64-bit value */
|
||||
static inline void
|
||||
swap_uint64(uint64_t *x)
|
||||
{
|
||||
char n;
|
||||
|
||||
n = ((char *) x)[0];
|
||||
((char *) x)[0] = ((char *) x)[7];
|
||||
((char *) x)[7] = n;
|
||||
|
||||
n = ((char *) x)[1];
|
||||
((char *) x)[1] = ((char *) x)[6];
|
||||
((char *) x)[6] = n;
|
||||
|
||||
n = ((char *) x)[2];
|
||||
((char *) x)[2] = ((char *) x)[5];
|
||||
((char *) x)[5] = n;
|
||||
|
||||
n = ((char *) x)[3];
|
||||
((char *) x)[3] = ((char *) x)[4];
|
||||
((char *) x)[4] = n;
|
||||
}
|
||||
|
||||
#define swapll(x) do { \
|
||||
if (sizeof(*(x)) != 8) \
|
||||
wrong_size(); \
|
||||
swap_uint64((uint64_t *)(x)); \
|
||||
} while (0)
|
||||
|
||||
/* byte swap a 32-bit value */
|
||||
static inline void
|
||||
swap_uint32(uint32_t * x)
|
||||
{
|
||||
char n = ((char *) x)[0];
|
||||
|
||||
((char *) x)[0] = ((char *) x)[3];
|
||||
((char *) x)[3] = n;
|
||||
n = ((char *) x)[1];
|
||||
((char *) x)[1] = ((char *) x)[2];
|
||||
((char *) x)[2] = n;
|
||||
}
|
||||
|
||||
#define swapl(x) do { \
|
||||
if (sizeof(*(x)) != 4) \
|
||||
wrong_size(); \
|
||||
if (__builtin_constant_p((uintptr_t)(x) & 3) && ((uintptr_t)(x) & 3) == 0) \
|
||||
*(x) = lswapl(*(x)); \
|
||||
else \
|
||||
swap_uint32((uint32_t *)(x)); \
|
||||
} while (0)
|
||||
|
||||
/* byte swap a 16-bit value */
|
||||
static inline void
|
||||
swap_uint16(uint16_t * x)
|
||||
{
|
||||
char n = ((char *) x)[0];
|
||||
|
||||
((char *) x)[0] = ((char *) x)[1];
|
||||
((char *) x)[1] = n;
|
||||
}
|
||||
|
||||
#define swaps(x) do { \
|
||||
if (sizeof(*(x)) != 2) \
|
||||
wrong_size(); \
|
||||
if (__builtin_constant_p((uintptr_t)(x) & 1) && ((uintptr_t)(x) & 1) == 0) \
|
||||
*(x) = lswaps(*(x)); \
|
||||
else \
|
||||
swap_uint16((uint16_t *)(x)); \
|
||||
} while (0)
|
||||
|
||||
/* copy 32-bit value from src to dst byteswapping on the way */
|
||||
#define cpswapl(src, dst) do { \
|
||||
if (sizeof((src)) != 4 || sizeof((dst)) != 4) \
|
||||
wrong_size(); \
|
||||
(dst) = lswapl((src)); \
|
||||
} while (0)
|
||||
|
||||
/* copy short from src to dst byteswapping on the way */
|
||||
#define cpswaps(src, dst) do { \
|
||||
if (sizeof((src)) != 2 || sizeof((dst)) != 2) \
|
||||
wrong_size(); \
|
||||
(dst) = lswaps((src)); \
|
||||
} while (0)
|
||||
|
||||
extern void SwapLongs(
|
||||
CARD32 *list,
|
||||
unsigned long count);
|
||||
|
||||
extern void SwapShorts(
|
||||
short *list,
|
||||
unsigned long count);
|
||||
|
||||
extern void MakePredeclaredAtoms(void);
|
||||
|
||||
extern int Ones(
|
||||
unsigned long /*mask*/);
|
||||
|
||||
typedef struct _xPoint *DDXPointPtr;
|
||||
typedef struct pixman_box16 *BoxPtr;
|
||||
typedef struct _xEvent *xEventPtr;
|
||||
typedef struct _xRectangle *xRectanglePtr;
|
||||
typedef struct _GrabRec *GrabPtr;
|
||||
|
||||
/* typedefs from other places - duplicated here to minimize the amount
|
||||
* of unnecessary junk that one would normally have to include to get
|
||||
* these symbols defined
|
||||
*/
|
||||
|
||||
#ifndef _XTYPEDEF_CHARINFOPTR
|
||||
typedef struct _CharInfo *CharInfoPtr; /* also in fonts/include/font.h */
|
||||
#define _XTYPEDEF_CHARINFOPTR
|
||||
#endif
|
||||
|
||||
#endif /* MISC_H */
|
||||
78
nx-X11/programs/Xserver/include/miscstruct.h
Normal file
78
nx-X11/programs/Xserver/include/miscstruct.h
Normal file
@@ -0,0 +1,78 @@
|
||||
/***********************************************************
|
||||
|
||||
Copyright 1987, 1998 The Open Group
|
||||
|
||||
Permission to use, copy, modify, distribute, and sell this software and its
|
||||
documentation for any purpose is hereby granted without fee, provided that
|
||||
the above copyright notice appear in all copies and that both that
|
||||
copyright notice and this permission notice appear in supporting
|
||||
documentation.
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name of The Open Group shall not be
|
||||
used in advertising or otherwise to promote the sale, use or other dealings
|
||||
in this Software without prior written authorization from The Open Group.
|
||||
|
||||
|
||||
Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
|
||||
|
||||
All Rights Reserved
|
||||
|
||||
Permission to use, copy, modify, and distribute this software and its
|
||||
documentation for any purpose and without fee is hereby granted,
|
||||
provided that the above copyright notice appear in all copies and that
|
||||
both that copyright notice and this permission notice appear in
|
||||
supporting documentation, and that the name of Digital not be
|
||||
used in advertising or publicity pertaining to distribution of the
|
||||
software without specific, written prior permission.
|
||||
|
||||
DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
|
||||
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
|
||||
DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
|
||||
ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
||||
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
|
||||
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
SOFTWARE.
|
||||
|
||||
******************************************************************/
|
||||
|
||||
#ifndef MISCSTRUCT_H
|
||||
#define MISCSTRUCT_H 1
|
||||
|
||||
#include <pixman.h>
|
||||
|
||||
#include "misc.h"
|
||||
#include <nx-X11/Xprotostr.h>
|
||||
#include "gc.h"
|
||||
|
||||
typedef xPoint DDXPointRec;
|
||||
|
||||
typedef struct pixman_box16 BoxRec;
|
||||
|
||||
typedef union _DevUnion {
|
||||
void * ptr;
|
||||
long val;
|
||||
unsigned long uval;
|
||||
RegionPtr (*fptr)(
|
||||
DrawablePtr /* pSrcDrawable */,
|
||||
DrawablePtr /* pDstDrawable */,
|
||||
GCPtr /* pGC */,
|
||||
int /* srcx */,
|
||||
int /* srcy */,
|
||||
int /* width */,
|
||||
int /* height */,
|
||||
int /* dstx */,
|
||||
int /* dsty */,
|
||||
unsigned long /* bitPlane */);
|
||||
} DevUnion;
|
||||
|
||||
#endif /* MISCSTRUCT_H */
|
||||
83
nx-X11/programs/Xserver/include/opaque.h
Normal file
83
nx-X11/programs/Xserver/include/opaque.h
Normal file
@@ -0,0 +1,83 @@
|
||||
/*
|
||||
|
||||
Copyright 1987, 1998 The Open Group
|
||||
|
||||
Permission to use, copy, modify, distribute, and sell this software and its
|
||||
documentation for any purpose is hereby granted without fee, provided that
|
||||
the above copyright notice appear in all copies and that both that
|
||||
copyright notice and this permission notice appear in supporting
|
||||
documentation.
|
||||
|
||||
The above copyright notice and this permission notice shall be included
|
||||
in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
||||
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name of The Open Group shall
|
||||
not be used in advertising or otherwise to promote the sale, use or
|
||||
other dealings in this Software without prior written authorization
|
||||
from The Open Group.
|
||||
|
||||
*/
|
||||
|
||||
#ifndef OPAQUE_H
|
||||
#define OPAQUE_H
|
||||
|
||||
#include <nx-X11/Xmd.h>
|
||||
|
||||
#include "globals.h"
|
||||
|
||||
extern char *defaultTextFont;
|
||||
extern char *defaultCursorFont;
|
||||
extern int MaxClients;
|
||||
extern volatile char isItTimeToYield;
|
||||
extern volatile char dispatchException;
|
||||
|
||||
/* bit values for dispatchException */
|
||||
#define DE_RESET 1
|
||||
#define DE_TERMINATE 2
|
||||
#define DE_PRIORITYCHANGE 4 /* set when a client's priority changes */
|
||||
|
||||
extern CARD32 TimeOutValue;
|
||||
extern int ScreenSaverBlanking;
|
||||
extern int ScreenSaverAllowExposures;
|
||||
extern int defaultScreenSaverBlanking;
|
||||
extern int defaultScreenSaverAllowExposures;
|
||||
extern int argcGlobal;
|
||||
extern char **argvGlobal;
|
||||
extern char *display;
|
||||
extern int displayfd;
|
||||
extern Bool explicit_display;
|
||||
|
||||
extern int defaultBackingStore;
|
||||
extern Bool disableBackingStore;
|
||||
extern Bool enableBackingStore;
|
||||
extern Bool disableSaveUnders;
|
||||
extern Bool PartialNetwork;
|
||||
#ifndef NOLOGOHACK
|
||||
extern int logoScreenSaver;
|
||||
#endif
|
||||
#ifdef RLIMIT_DATA
|
||||
extern int limitDataSpace;
|
||||
#endif
|
||||
#ifdef RLIMIT_STACK
|
||||
extern int limitStackSpace;
|
||||
#endif
|
||||
#ifdef RLIMIT_NOFILE
|
||||
extern int limitNoFile;
|
||||
#endif
|
||||
extern Bool defeatAccessControl;
|
||||
extern long maxBigRequestSize;
|
||||
extern Bool blackRoot;
|
||||
extern Bool whiteRoot;
|
||||
|
||||
extern Bool CoreDump;
|
||||
extern Bool NoListenAll;
|
||||
|
||||
#endif /* OPAQUE_H */
|
||||
566
nx-X11/programs/Xserver/include/os.h
Normal file
566
nx-X11/programs/Xserver/include/os.h
Normal file
@@ -0,0 +1,566 @@
|
||||
/***********************************************************
|
||||
|
||||
Copyright 1987, 1998 The Open Group
|
||||
|
||||
Permission to use, copy, modify, distribute, and sell this software and its
|
||||
documentation for any purpose is hereby granted without fee, provided that
|
||||
the above copyright notice appear in all copies and that both that
|
||||
copyright notice and this permission notice appear in supporting
|
||||
documentation.
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name of The Open Group shall not be
|
||||
used in advertising or otherwise to promote the sale, use or other dealings
|
||||
in this Software without prior written authorization from The Open Group.
|
||||
|
||||
|
||||
Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
|
||||
|
||||
All Rights Reserved
|
||||
|
||||
Permission to use, copy, modify, and distribute this software and its
|
||||
documentation for any purpose and without fee is hereby granted,
|
||||
provided that the above copyright notice appear in all copies and that
|
||||
both that copyright notice and this permission notice appear in
|
||||
supporting documentation, and that the name of Digital not be
|
||||
used in advertising or publicity pertaining to distribution of the
|
||||
software without specific, written prior permission.
|
||||
|
||||
DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
|
||||
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
|
||||
DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
|
||||
ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
||||
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
|
||||
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
SOFTWARE.
|
||||
|
||||
******************************************************************/
|
||||
|
||||
|
||||
#ifndef OS_H
|
||||
#define OS_H
|
||||
|
||||
#include "misc.h"
|
||||
#include <stdarg.h>
|
||||
|
||||
#define NullFID ((FID) 0)
|
||||
|
||||
#define SCREEN_SAVER_ON 0
|
||||
#define SCREEN_SAVER_OFF 1
|
||||
#define SCREEN_SAVER_FORCER 2
|
||||
#define SCREEN_SAVER_CYCLE 3
|
||||
|
||||
#ifndef MAX_REQUEST_SIZE
|
||||
#define MAX_REQUEST_SIZE 65535
|
||||
#endif
|
||||
#ifndef MAX_BIG_REQUEST_SIZE
|
||||
#define MAX_BIG_REQUEST_SIZE 4194303
|
||||
#endif
|
||||
|
||||
typedef void * FID;
|
||||
typedef struct _FontPathRec *FontPathPtr;
|
||||
typedef struct _NewClientRec *NewClientPtr;
|
||||
|
||||
#ifndef xnfalloc
|
||||
#define xnfalloc(size) XNFalloc((unsigned long)(size))
|
||||
#define xnfcalloc(_num, _size) XNFcalloc((unsigned long)(_num)*(unsigned long)(_size))
|
||||
#define xnfrealloc(ptr, size) XNFrealloc((void *)(ptr), (unsigned long)(size))
|
||||
|
||||
#define xstrdup(s) Xstrdup(s)
|
||||
#define xnfstrdup(s) XNFstrdup(s)
|
||||
|
||||
#define xallocarray(num, size) reallocarray(NULL, (num), (size))
|
||||
#endif
|
||||
|
||||
#ifdef __SCO__
|
||||
#include <stdio.h>
|
||||
#endif
|
||||
#include <string.h>
|
||||
|
||||
/* have to put $(SIGNAL_DEFINES) in DEFINES in Imakefile to get this right */
|
||||
#ifdef SIGNALRETURNSINT
|
||||
#define SIGVAL int
|
||||
#else
|
||||
#define SIGVAL void
|
||||
#endif
|
||||
|
||||
extern void (*OsVendorVErrorFProc)(const char *, va_list args);
|
||||
|
||||
extern int WaitForSomething(
|
||||
int* /*pClientsReady*/
|
||||
);
|
||||
|
||||
extern int ReadRequestFromClient(ClientPtr /*client*/);
|
||||
|
||||
extern Bool InsertFakeRequest(
|
||||
ClientPtr /*client*/,
|
||||
char* /*data*/,
|
||||
int /*count*/);
|
||||
|
||||
extern void ResetCurrentRequest(ClientPtr /*client*/);
|
||||
|
||||
extern void FlushAllOutput(void);
|
||||
|
||||
extern void FlushIfCriticalOutputPending(void);
|
||||
|
||||
extern void SetCriticalOutputPending(void);
|
||||
|
||||
extern int WriteToClient(ClientPtr /*who*/, int /*count*/, const void* /*__buf*/);
|
||||
|
||||
extern void ResetOsBuffers(void);
|
||||
|
||||
extern void InitConnectionLimits(void);
|
||||
|
||||
extern void NotifyParentProcess(void);
|
||||
|
||||
extern void CreateWellKnownSockets(void);
|
||||
|
||||
extern void ResetWellKnownSockets(void);
|
||||
|
||||
extern void CloseWellKnownConnections(void);
|
||||
|
||||
extern XID AuthorizationIDOfClient(ClientPtr /*client*/);
|
||||
|
||||
extern char *ClientAuthorized(
|
||||
ClientPtr /*client*/,
|
||||
unsigned int /*proto_n*/,
|
||||
char* /*auth_proto*/,
|
||||
unsigned int /*string_n*/,
|
||||
char* /*auth_string*/);
|
||||
|
||||
extern void CheckConnections(void);
|
||||
|
||||
extern void CloseDownConnection(ClientPtr /*client*/);
|
||||
|
||||
typedef void (*NotifyFdProcPtr)(int fd, int ready, void *data);
|
||||
|
||||
#define X_NOTIFY_NONE 0
|
||||
#define X_NOTIFY_READ 1
|
||||
#define X_NOTIFY_WRITE 2
|
||||
|
||||
extern Bool SetNotifyFd(int fd, NotifyFdProcPtr notify_fd, int mask, void *data);
|
||||
|
||||
static inline void RemoveNotifyFd(int fd)
|
||||
{
|
||||
(void) SetNotifyFd(fd, NULL, X_NOTIFY_NONE, NULL);
|
||||
}
|
||||
|
||||
extern void OnlyListenToOneClient(ClientPtr /*client*/);
|
||||
|
||||
extern void ListenToAllClients(void);
|
||||
|
||||
extern void IgnoreClient(ClientPtr /*client*/);
|
||||
|
||||
extern void AttendClient(ClientPtr /*client*/);
|
||||
|
||||
extern void MakeClientGrabImpervious(ClientPtr /*client*/);
|
||||
|
||||
extern void MakeClientGrabPervious(ClientPtr /*client*/);
|
||||
|
||||
extern void AvailableClientInput(ClientPtr /* client */);
|
||||
|
||||
extern CARD32 GetTimeInMillis(void);
|
||||
|
||||
extern void AdjustWaitForDelay(
|
||||
void * /*waitTime*/,
|
||||
unsigned long /*newdelay*/);
|
||||
|
||||
typedef struct _OsTimerRec *OsTimerPtr;
|
||||
|
||||
typedef CARD32 (*OsTimerCallback)(
|
||||
OsTimerPtr /* timer */,
|
||||
CARD32 /* time */,
|
||||
void * /* arg */);
|
||||
|
||||
extern void TimerInit(void);
|
||||
|
||||
extern Bool TimerForce(OsTimerPtr /* timer */);
|
||||
|
||||
#define TimerAbsolute (1<<0)
|
||||
#define TimerForceOld (1<<1)
|
||||
|
||||
extern OsTimerPtr TimerSet(
|
||||
OsTimerPtr /* timer */,
|
||||
int /* flags */,
|
||||
CARD32 /* millis */,
|
||||
OsTimerCallback /* func */,
|
||||
void * /* arg */);
|
||||
|
||||
extern void TimerCheck(void);
|
||||
extern void TimerCancel(OsTimerPtr /* pTimer */);
|
||||
extern void TimerFree(OsTimerPtr /* pTimer */);
|
||||
|
||||
extern void SetScreenSaverTimer(void);
|
||||
extern void FreeScreenSaverTimer(void);
|
||||
|
||||
#ifdef DPMSExtension
|
||||
extern void SetDPMSTimers(void);
|
||||
extern void FreeDPMSTimers(void);
|
||||
#endif
|
||||
|
||||
extern SIGVAL AutoResetServer(int /*sig*/);
|
||||
|
||||
extern SIGVAL GiveUp(int /*sig*/);
|
||||
|
||||
extern void UseMsg(void);
|
||||
|
||||
extern void InitGlobals(void);
|
||||
|
||||
extern void ProcessCommandLine(int /*argc*/, char* /*argv*/[]);
|
||||
|
||||
extern int set_font_authorizations(
|
||||
char ** /* authorizations */,
|
||||
int * /*authlen */,
|
||||
void * /* client */);
|
||||
|
||||
extern void * XNFalloc(unsigned long /*amount*/);
|
||||
extern void * XNFcalloc(unsigned long /*amount*/);
|
||||
extern void * XNFrealloc(void * /*ptr*/, unsigned long /*amount*/);
|
||||
|
||||
extern void OsInitAllocator(void);
|
||||
|
||||
extern char *Xstrdup(const char *s);
|
||||
extern char *XNFstrdup(const char *s);
|
||||
|
||||
/* Include new X*asprintf API */
|
||||
#include "Xprintf.h"
|
||||
|
||||
/* Older api deprecated in favor of the asprintf versions */
|
||||
extern _X_EXPORT char *Xprintf(const char *fmt, ...) _X_ATTRIBUTE_PRINTF(1,2) _X_DEPRECATED;
|
||||
extern _X_EXPORT char *Xvprintf(const char *fmt, va_list va)_X_ATTRIBUTE_PRINTF(1,0) _X_DEPRECATED;
|
||||
extern _X_EXPORT char *XNFprintf(const char *fmt, ...) _X_ATTRIBUTE_PRINTF(1,2) _X_DEPRECATED;
|
||||
extern _X_EXPORT char *XNFvprintf(const char *fmt, va_list va)_X_ATTRIBUTE_PRINTF(1,0) _X_DEPRECATED;
|
||||
|
||||
typedef SIGVAL (*OsSigHandlerPtr)(int /* sig */);
|
||||
|
||||
extern OsSigHandlerPtr OsSignal(int /* sig */, OsSigHandlerPtr /* handler */);
|
||||
|
||||
extern int auditTrailLevel;
|
||||
|
||||
#ifdef SERVER_LOCK
|
||||
extern void LockServer(void);
|
||||
extern void UnlockServer(void);
|
||||
#endif
|
||||
|
||||
extern int OsLookupColor(
|
||||
int /*screen*/,
|
||||
char * /*name*/,
|
||||
unsigned /*len*/,
|
||||
unsigned short * /*pred*/,
|
||||
unsigned short * /*pgreen*/,
|
||||
unsigned short * /*pblue*/);
|
||||
|
||||
extern void OsInit(void);
|
||||
|
||||
extern void OsCleanup(Bool);
|
||||
|
||||
extern void OsVendorFatalError(void);
|
||||
|
||||
extern void OsVendorInit(void);
|
||||
|
||||
extern int OsInitColors(void);
|
||||
|
||||
void OsBlockSignals (void);
|
||||
|
||||
void OsReleaseSignals (void);
|
||||
|
||||
#if !defined(WIN32)
|
||||
extern int System(char *);
|
||||
extern void * Popen(char *, char *);
|
||||
extern int Pclose(void *);
|
||||
extern void * Fopen(char *, char *);
|
||||
extern int Fclose(void *);
|
||||
#else
|
||||
#define System(a) system(a)
|
||||
#define Popen(a,b) popen(a,b)
|
||||
#define Pclose(a) pclose(a)
|
||||
#define Fopen(a,b) fopen(a,b)
|
||||
#define Fclose(a) fclose(a)
|
||||
#endif
|
||||
|
||||
extern void CheckUserParameters(int argc, char **argv, char **envp);
|
||||
extern void CheckUserAuthorization(void);
|
||||
|
||||
extern int AddHost(
|
||||
ClientPtr /*client*/,
|
||||
int /*family*/,
|
||||
unsigned /*length*/,
|
||||
void * /*pAddr*/);
|
||||
|
||||
extern Bool ForEachHostInFamily (
|
||||
int /*family*/,
|
||||
Bool (* /*func*/ )(
|
||||
unsigned char * /* addr */,
|
||||
short /* len */,
|
||||
void * /* closure */),
|
||||
void * /*closure*/);
|
||||
|
||||
extern int RemoveHost(
|
||||
ClientPtr /*client*/,
|
||||
int /*family*/,
|
||||
unsigned /*length*/,
|
||||
void * /*pAddr*/);
|
||||
|
||||
extern int GetHosts(
|
||||
void ** /*data*/,
|
||||
int * /*pnHosts*/,
|
||||
int * /*pLen*/,
|
||||
BOOL * /*pEnabled*/);
|
||||
|
||||
typedef struct sockaddr * sockaddrPtr;
|
||||
|
||||
extern int InvalidHost(sockaddrPtr /*saddr*/, int /*len*/, ClientPtr client);
|
||||
|
||||
extern int LocalClientCred(ClientPtr, int *, int *);
|
||||
|
||||
#define LCC_UID_SET (1 << 0)
|
||||
#define LCC_GID_SET (1 << 1)
|
||||
#define LCC_PID_SET (1 << 2)
|
||||
#define LCC_ZID_SET (1 << 3)
|
||||
|
||||
typedef struct {
|
||||
int fieldsSet; /* Bit mask of fields set */
|
||||
int euid; /* Effective uid */
|
||||
int egid; /* Primary effective group id */
|
||||
int nSuppGids; /* Number of supplementary group ids */
|
||||
int *pSuppGids; /* Array of supplementary group ids */
|
||||
int pid; /* Process id */
|
||||
int zoneid; /* Only set on Solaris 10 & later */
|
||||
} LocalClientCredRec;
|
||||
|
||||
extern int GetLocalClientCreds(ClientPtr, LocalClientCredRec **);
|
||||
extern void FreeLocalClientCreds(LocalClientCredRec *);
|
||||
|
||||
extern int ChangeAccessControl(ClientPtr /*client*/, int /*fEnabled*/);
|
||||
|
||||
extern int GetAccessControl(void);
|
||||
|
||||
|
||||
extern void AddLocalHosts(void);
|
||||
|
||||
extern void ResetHosts(char *display);
|
||||
|
||||
extern void EnableLocalHost(void);
|
||||
|
||||
extern void DisableLocalHost(void);
|
||||
|
||||
extern void AccessUsingXdmcp(void);
|
||||
|
||||
extern void DefineSelf(int /*fd*/);
|
||||
|
||||
extern void AugmentSelf(void * /*from*/, int /*len*/);
|
||||
|
||||
extern void InitAuthorization(char * /*filename*/);
|
||||
|
||||
/* extern int LoadAuthorization(void); */
|
||||
|
||||
extern void RegisterAuthorizations(void);
|
||||
|
||||
extern XID AuthorizationToID (
|
||||
unsigned short name_length,
|
||||
char *name,
|
||||
unsigned short data_length,
|
||||
char *data);
|
||||
|
||||
extern int AuthorizationFromID (
|
||||
XID id,
|
||||
unsigned short *name_lenp,
|
||||
char **namep,
|
||||
unsigned short *data_lenp,
|
||||
char **datap);
|
||||
|
||||
extern XID CheckAuthorization(
|
||||
unsigned int /*namelength*/,
|
||||
char * /*name*/,
|
||||
unsigned int /*datalength*/,
|
||||
char * /*data*/,
|
||||
ClientPtr /*client*/,
|
||||
char ** /*reason*/
|
||||
);
|
||||
|
||||
extern void ResetAuthorization(void);
|
||||
|
||||
extern int RemoveAuthorization (
|
||||
unsigned short name_length,
|
||||
char *name,
|
||||
unsigned short data_length,
|
||||
char *data);
|
||||
|
||||
extern int AddAuthorization(
|
||||
unsigned int /*name_length*/,
|
||||
char * /*name*/,
|
||||
unsigned int /*data_length*/,
|
||||
char * /*data*/);
|
||||
|
||||
extern XID GenerateAuthorization(
|
||||
unsigned int /* name_length */,
|
||||
char * /* name */,
|
||||
unsigned int /* data_length */,
|
||||
char * /* data */,
|
||||
unsigned int * /* data_length_return */,
|
||||
char ** /* data_return */);
|
||||
|
||||
#ifdef COMMANDLINE_CHALLENGED_OPERATING_SYSTEMS
|
||||
extern void ExpandCommandLine(int * /*pargc*/, char *** /*pargv*/);
|
||||
#endif
|
||||
|
||||
extern void ddxInitGlobals(void);
|
||||
|
||||
extern int ddxProcessArgument(int /*argc*/, char * /*argv*/ [], int /*i*/);
|
||||
|
||||
extern void ddxUseMsg(void);
|
||||
|
||||
/*
|
||||
* idiom processing stuff
|
||||
*/
|
||||
|
||||
extern xReqPtr PeekNextRequest(xReqPtr req, ClientPtr client, Bool readmore);
|
||||
|
||||
extern void SkipRequests(xReqPtr req, ClientPtr client, int numskipped);
|
||||
|
||||
/* int ReqLen(xReq *req, ClientPtr client)
|
||||
* Given a pointer to a *complete* request, return its length in bytes.
|
||||
* Note that if the request is a big request (as defined in the Big
|
||||
* Requests extension), the macro lies by returning 4 less than the
|
||||
* length that it actually occupies in the request buffer. This is so you
|
||||
* can blindly compare the length with the various sz_<request> constants
|
||||
* in Xproto.h without having to know/care about big requests.
|
||||
*/
|
||||
#define ReqLen(_pxReq, _client) \
|
||||
((_pxReq->length ? \
|
||||
(_client->swapped ? lswaps(_pxReq->length) : _pxReq->length) \
|
||||
: ((_client->swapped ? \
|
||||
lswapl(((CARD32*)_pxReq)[1]) : ((CARD32*)_pxReq)[1])-1) \
|
||||
) << 2)
|
||||
|
||||
/* otherReqTypePtr CastxReq(xReq *req, otherReqTypePtr)
|
||||
* Cast the given request to one of type otherReqTypePtr to access
|
||||
* fields beyond the length field.
|
||||
*/
|
||||
#define CastxReq(_pxReq, otherReqTypePtr) \
|
||||
(_pxReq->length ? (otherReqTypePtr)_pxReq \
|
||||
: (otherReqTypePtr)(((CARD32*)_pxReq)+1))
|
||||
|
||||
/* stuff for SkippedRequestsCallback */
|
||||
extern CallbackListPtr SkippedRequestsCallback;
|
||||
typedef struct {
|
||||
xReqPtr req;
|
||||
ClientPtr client;
|
||||
int numskipped;
|
||||
} SkippedRequestInfoRec;
|
||||
|
||||
/* stuff for ReplyCallback */
|
||||
extern CallbackListPtr ReplyCallback;
|
||||
typedef struct {
|
||||
ClientPtr client;
|
||||
const void * replyData;
|
||||
unsigned long dataLenBytes;
|
||||
unsigned long bytesRemaining;
|
||||
Bool startOfReply;
|
||||
} ReplyInfoRec;
|
||||
|
||||
/* stuff for FlushCallback */
|
||||
extern CallbackListPtr FlushCallback;
|
||||
|
||||
extern void AbortDDX(void);
|
||||
extern void ddxGiveUp(void);
|
||||
extern int TimeSinceLastInputEvent(void);
|
||||
|
||||
#ifndef HAVE_REALLOCARRAY
|
||||
#define reallocarray xreallocarray
|
||||
extern _X_EXPORT void *
|
||||
reallocarray(void *optr, size_t nmemb, size_t size);
|
||||
#endif
|
||||
|
||||
#ifndef HAVE_STRLCPY
|
||||
extern _X_EXPORT size_t
|
||||
strlcpy(char *dst, const char *src, size_t siz);
|
||||
extern _X_EXPORT size_t
|
||||
strlcat(char *dst, const char *src, size_t siz);
|
||||
#endif
|
||||
|
||||
#ifndef HAVE_TIMINGSAFE_MEMCMP
|
||||
extern _X_EXPORT int
|
||||
timingsafe_memcmp(const void *b1, const void *b2, size_t len);
|
||||
#endif
|
||||
|
||||
/* Logging. */
|
||||
typedef enum _LogParameter {
|
||||
XLOG_FLUSH,
|
||||
XLOG_SYNC,
|
||||
XLOG_VERBOSITY,
|
||||
XLOG_FILE_VERBOSITY
|
||||
} LogParameter;
|
||||
|
||||
/* Flags for log messages. */
|
||||
typedef enum {
|
||||
X_PROBED, /* Value was probed */
|
||||
X_CONFIG, /* Value was given in the config file */
|
||||
X_DEFAULT, /* Value is a default */
|
||||
X_CMDLINE, /* Value was given on the command line */
|
||||
X_NOTICE, /* Notice */
|
||||
X_ERROR, /* Error message */
|
||||
X_WARNING, /* Warning message */
|
||||
X_INFO, /* Informational message */
|
||||
X_NONE, /* No prefix */
|
||||
X_NOT_IMPLEMENTED, /* Not implemented */
|
||||
X_UNKNOWN = -1 /* unknown -- this must always be last */
|
||||
} MessageType;
|
||||
|
||||
/* XXX Need to check which GCC versions have the format(printf) attribute. */
|
||||
#if defined(__GNUC__) && \
|
||||
((__GNUC__ > 2) || ((__GNUC__ == 2) && (__GNUC_MINOR__ > 4)))
|
||||
#define _printf_attribute(a,b) __attribute((format(__printf__,a,b)))
|
||||
#else
|
||||
#define _printf_attribute(a,b) /**/
|
||||
#endif
|
||||
|
||||
extern const char *LogInit(const char *fname, const char *backup);
|
||||
extern void LogSetDisplay(void);
|
||||
extern void LogClose(void);
|
||||
extern Bool LogSetParameter(LogParameter param, int value);
|
||||
extern void LogVWrite(int verb, const char *f, va_list args);
|
||||
extern void LogWrite(int verb, const char *f, ...) _printf_attribute(2,3);
|
||||
extern void LogVMessageVerb(MessageType type, int verb, const char *format,
|
||||
va_list args);
|
||||
extern void LogMessageVerb(MessageType type, int verb, const char *format,
|
||||
...) _printf_attribute(3,4);
|
||||
extern void LogMessage(MessageType type, const char *format, ...)
|
||||
_printf_attribute(2,3);
|
||||
extern void FreeAuditTimer(void);
|
||||
extern void AuditF(const char *f, ...) _printf_attribute(1,2);
|
||||
extern void VAuditF(const char *f, va_list args);
|
||||
extern void FatalError(const char *f, ...) _printf_attribute(1,2)
|
||||
#if defined(__GNUC__) && \
|
||||
((__GNUC__ > 2) || ((__GNUC__ == 2) && (__GNUC_MINOR__ > 4)))
|
||||
__attribute((noreturn))
|
||||
#endif
|
||||
;
|
||||
|
||||
extern void VErrorF(const char *f, va_list args);
|
||||
extern void ErrorF(const char *f, ...) _printf_attribute(1,2);
|
||||
extern void Error(char *str);
|
||||
extern void LogPrintMarkers(void);
|
||||
|
||||
#if defined(NEED_SNPRINTF)
|
||||
extern int snprintf(char *str, size_t size, const char *format, ...)
|
||||
_printf_attribute(3,4);
|
||||
extern int vsnprintf(char *str, size_t size, const char *format, va_list ap);
|
||||
#endif
|
||||
|
||||
#ifdef DEBUG
|
||||
#define DebugF ErrorF
|
||||
#else
|
||||
#define DebugF(...) /* */
|
||||
#endif
|
||||
|
||||
#endif /* OS_H */
|
||||
108
nx-X11/programs/Xserver/include/pixmap.h
Normal file
108
nx-X11/programs/Xserver/include/pixmap.h
Normal file
@@ -0,0 +1,108 @@
|
||||
/***********************************************************
|
||||
|
||||
Copyright 1987, 1998 The Open Group
|
||||
|
||||
Permission to use, copy, modify, distribute, and sell this software and its
|
||||
documentation for any purpose is hereby granted without fee, provided that
|
||||
the above copyright notice appear in all copies and that both that
|
||||
copyright notice and this permission notice appear in supporting
|
||||
documentation.
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name of The Open Group shall not be
|
||||
used in advertising or otherwise to promote the sale, use or other dealings
|
||||
in this Software without prior written authorization from The Open Group.
|
||||
|
||||
|
||||
Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
|
||||
|
||||
All Rights Reserved
|
||||
|
||||
Permission to use, copy, modify, and distribute this software and its
|
||||
documentation for any purpose and without fee is hereby granted,
|
||||
provided that the above copyright notice appear in all copies and that
|
||||
both that copyright notice and this permission notice appear in
|
||||
supporting documentation, and that the name of Digital not be
|
||||
used in advertising or publicity pertaining to distribution of the
|
||||
software without specific, written prior permission.
|
||||
|
||||
DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
|
||||
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
|
||||
DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
|
||||
ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
||||
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
|
||||
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
SOFTWARE.
|
||||
|
||||
******************************************************************/
|
||||
|
||||
#ifndef PIXMAP_H
|
||||
#define PIXMAP_H
|
||||
|
||||
#include "misc.h"
|
||||
#include "screenint.h"
|
||||
|
||||
/* types for Drawable */
|
||||
#define DRAWABLE_WINDOW 0
|
||||
#define DRAWABLE_PIXMAP 1
|
||||
#define UNDRAWABLE_WINDOW 2
|
||||
#define DRAWABLE_BUFFER 3
|
||||
|
||||
/* flags to PaintWindow() */
|
||||
#define PW_BACKGROUND 0
|
||||
#define PW_BORDER 1
|
||||
|
||||
#define NullPixmap ((PixmapPtr)0)
|
||||
|
||||
typedef struct _Drawable *DrawablePtr;
|
||||
typedef struct _Pixmap *PixmapPtr;
|
||||
|
||||
typedef union _PixUnion {
|
||||
PixmapPtr pixmap;
|
||||
unsigned long pixel;
|
||||
} PixUnion;
|
||||
|
||||
#define SamePixUnion(a,b,isPixel)\
|
||||
((isPixel) ? (a).pixel == (b).pixel : (a).pixmap == (b).pixmap)
|
||||
|
||||
#define EqualPixUnion(as, a, bs, b) \
|
||||
((as) == (bs) && (SamePixUnion (a, b, as)))
|
||||
|
||||
#define OnScreenDrawable(type) \
|
||||
((type == DRAWABLE_WINDOW) || (type == DRAWABLE_BUFFER))
|
||||
|
||||
#define WindowDrawable(type) \
|
||||
((type == DRAWABLE_WINDOW) || (type == UNDRAWABLE_WINDOW))
|
||||
|
||||
extern PixmapPtr GetScratchPixmapHeader(
|
||||
ScreenPtr /*pScreen*/,
|
||||
int /*width*/,
|
||||
int /*height*/,
|
||||
int /*depth*/,
|
||||
int /*bitsPerPixel*/,
|
||||
int /*devKind*/,
|
||||
void * /*pPixData*/);
|
||||
|
||||
extern void FreeScratchPixmapHeader(
|
||||
PixmapPtr /*pPixmap*/);
|
||||
|
||||
extern Bool CreateScratchPixmapsForScreen(
|
||||
int /*scrnum*/);
|
||||
|
||||
extern void FreeScratchPixmapsForScreen(
|
||||
int /*scrnum*/);
|
||||
|
||||
extern PixmapPtr AllocatePixmap(
|
||||
ScreenPtr /*pScreen*/,
|
||||
int /*pixDataSize*/);
|
||||
|
||||
#endif /* PIXMAP_H */
|
||||
98
nx-X11/programs/Xserver/include/pixmapstr.h
Normal file
98
nx-X11/programs/Xserver/include/pixmapstr.h
Normal file
@@ -0,0 +1,98 @@
|
||||
/***********************************************************
|
||||
|
||||
Copyright 1987, 1998 The Open Group
|
||||
|
||||
Permission to use, copy, modify, distribute, and sell this software and its
|
||||
documentation for any purpose is hereby granted without fee, provided that
|
||||
the above copyright notice appear in all copies and that both that
|
||||
copyright notice and this permission notice appear in supporting
|
||||
documentation.
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name of The Open Group shall not be
|
||||
used in advertising or otherwise to promote the sale, use or other dealings
|
||||
in this Software without prior written authorization from The Open Group.
|
||||
|
||||
|
||||
Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
|
||||
|
||||
All Rights Reserved
|
||||
|
||||
Permission to use, copy, modify, and distribute this software and its
|
||||
documentation for any purpose and without fee is hereby granted,
|
||||
provided that the above copyright notice appear in all copies and that
|
||||
both that copyright notice and this permission notice appear in
|
||||
supporting documentation, and that the name of Digital not be
|
||||
used in advertising or publicity pertaining to distribution of the
|
||||
software without specific, written prior permission.
|
||||
|
||||
DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
|
||||
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
|
||||
DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
|
||||
ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
||||
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
|
||||
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
SOFTWARE.
|
||||
|
||||
******************************************************************/
|
||||
|
||||
#ifndef PIXMAPSTRUCT_H
|
||||
#define PIXMAPSTRUCT_H
|
||||
#include <nx-X11/Xarch.h>
|
||||
#include "pixmap.h"
|
||||
#include "screenint.h"
|
||||
#include "regionstr.h"
|
||||
|
||||
/*
|
||||
* The padN members are unfortunate ABI BC. See fdo bug #6924.
|
||||
*/
|
||||
|
||||
typedef struct _Drawable {
|
||||
unsigned char type; /* DRAWABLE_<type> */
|
||||
unsigned char class; /* specific to type */
|
||||
unsigned char depth;
|
||||
unsigned char bitsPerPixel;
|
||||
#if defined(_XSERVER64)
|
||||
XID pad0;
|
||||
#endif
|
||||
XID id; /* resource id */
|
||||
#if defined(_XSERVER64)
|
||||
XID pad1;
|
||||
#endif
|
||||
short x; /* window: screen absolute, pixmap: 0 */
|
||||
short y; /* window: screen absolute, pixmap: 0 */
|
||||
unsigned short width;
|
||||
unsigned short height;
|
||||
ScreenPtr pScreen;
|
||||
unsigned long serialNumber;
|
||||
} DrawableRec;
|
||||
|
||||
/*
|
||||
* PIXMAP -- device dependent
|
||||
*/
|
||||
|
||||
typedef struct _Pixmap {
|
||||
DrawableRec drawable;
|
||||
int refcnt;
|
||||
int devKind;
|
||||
DevUnion devPrivate;
|
||||
#ifdef PIXPRIV
|
||||
DevUnion *devPrivates; /* real devPrivates like gcs & windows */
|
||||
#endif
|
||||
#ifdef COMPOSITE
|
||||
short screen_x;
|
||||
short screen_y;
|
||||
#endif
|
||||
unsigned usage_hint; /* see CREATE_PIXMAP_USAGE_* */
|
||||
} PixmapRec;
|
||||
|
||||
#endif /* PIXMAPSTRUCT_H */
|
||||
72
nx-X11/programs/Xserver/include/property.h
Normal file
72
nx-X11/programs/Xserver/include/property.h
Normal file
@@ -0,0 +1,72 @@
|
||||
/***********************************************************
|
||||
|
||||
Copyright 1987, 1998 The Open Group
|
||||
|
||||
Permission to use, copy, modify, distribute, and sell this software and its
|
||||
documentation for any purpose is hereby granted without fee, provided that
|
||||
the above copyright notice appear in all copies and that both that
|
||||
copyright notice and this permission notice appear in supporting
|
||||
documentation.
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name of The Open Group shall not be
|
||||
used in advertising or otherwise to promote the sale, use or other dealings
|
||||
in this Software without prior written authorization from The Open Group.
|
||||
|
||||
|
||||
Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
|
||||
|
||||
All Rights Reserved
|
||||
|
||||
Permission to use, copy, modify, and distribute this software and its
|
||||
documentation for any purpose and without fee is hereby granted,
|
||||
provided that the above copyright notice appear in all copies and that
|
||||
both that copyright notice and this permission notice appear in
|
||||
supporting documentation, and that the name of Digital not be
|
||||
used in advertising or publicity pertaining to distribution of the
|
||||
software without specific, written prior permission.
|
||||
|
||||
DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
|
||||
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
|
||||
DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
|
||||
ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
||||
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
|
||||
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
SOFTWARE.
|
||||
|
||||
******************************************************************/
|
||||
|
||||
#ifndef PROPERTY_H
|
||||
#define PROPERTY_H
|
||||
|
||||
#include "window.h"
|
||||
|
||||
typedef struct _Property *PropertyPtr;
|
||||
|
||||
extern int ChangeWindowProperty(
|
||||
WindowPtr /*pWin*/,
|
||||
Atom /*property*/,
|
||||
Atom /*type*/,
|
||||
int /*format*/,
|
||||
int /*mode*/,
|
||||
unsigned long /*len*/,
|
||||
void * /*value*/,
|
||||
Bool /*sendevent*/);
|
||||
|
||||
extern int DeleteProperty(
|
||||
WindowPtr /*pWin*/,
|
||||
Atom /*propName*/);
|
||||
|
||||
extern void DeleteAllWindowProperties(
|
||||
WindowPtr /*pWin*/);
|
||||
|
||||
#endif /* PROPERTY_H */
|
||||
66
nx-X11/programs/Xserver/include/propertyst.h
Normal file
66
nx-X11/programs/Xserver/include/propertyst.h
Normal file
@@ -0,0 +1,66 @@
|
||||
/***********************************************************
|
||||
|
||||
Copyright 1987, 1998 The Open Group
|
||||
|
||||
Permission to use, copy, modify, distribute, and sell this software and its
|
||||
documentation for any purpose is hereby granted without fee, provided that
|
||||
the above copyright notice appear in all copies and that both that
|
||||
copyright notice and this permission notice appear in supporting
|
||||
documentation.
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name of The Open Group shall not be
|
||||
used in advertising or otherwise to promote the sale, use or other dealings
|
||||
in this Software without prior written authorization from The Open Group.
|
||||
|
||||
|
||||
Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
|
||||
|
||||
All Rights Reserved
|
||||
|
||||
Permission to use, copy, modify, and distribute this software and its
|
||||
documentation for any purpose and without fee is hereby granted,
|
||||
provided that the above copyright notice appear in all copies and that
|
||||
both that copyright notice and this permission notice appear in
|
||||
supporting documentation, and that the name of Digital not be
|
||||
used in advertising or publicity pertaining to distribution of the
|
||||
software without specific, written prior permission.
|
||||
|
||||
DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
|
||||
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
|
||||
DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
|
||||
ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
||||
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
|
||||
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
SOFTWARE.
|
||||
|
||||
******************************************************************/
|
||||
|
||||
#ifndef PROPERTYSTRUCT_H
|
||||
#define PROPERTYSTRUCT_H
|
||||
#include "misc.h"
|
||||
#include "property.h"
|
||||
/*
|
||||
* PROPERTY -- property element
|
||||
*/
|
||||
|
||||
typedef struct _Property {
|
||||
struct _Property *next;
|
||||
ATOM propertyName;
|
||||
ATOM type; /* ignored by server */
|
||||
short format; /* format of data for swapping - 8,16,32 */
|
||||
long size; /* size of data in (format/8) bytes */
|
||||
void *data; /* private to client */
|
||||
} PropertyRec;
|
||||
|
||||
#endif /* PROPERTYSTRUCT_H */
|
||||
|
||||
182
nx-X11/programs/Xserver/include/protocol-versions.h
Normal file
182
nx-X11/programs/Xserver/include/protocol-versions.h
Normal file
@@ -0,0 +1,182 @@
|
||||
/*
|
||||
* Copyright © 2009 Red Hat, Inc.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the "Software"),
|
||||
* to deal in the Software without restriction, including without limitation
|
||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
* and/or sell copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice (including the next
|
||||
* paragraph) shall be included in all copies or substantial portions of the
|
||||
* Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
* DEALINGS IN THE SOFTWARE.
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* This file specifies the server-supported protocol versions.
|
||||
*/
|
||||
#ifndef PROTOCOL_VERSIONS_H
|
||||
#define PROTOCOL_VERSIONS_H
|
||||
|
||||
#ifdef NXAGENT_SERVER
|
||||
# define XTRANS_SEND_FDS 0
|
||||
#endif
|
||||
|
||||
/* Composite */
|
||||
#define SERVER_COMPOSITE_MAJOR_VERSION 0
|
||||
#define SERVER_COMPOSITE_MINOR_VERSION 4
|
||||
|
||||
/* Damage */
|
||||
#define SERVER_DAMAGE_MAJOR_VERSION 1
|
||||
#ifndef NXAGENT_SERVER
|
||||
#define SERVER_DAMAGE_MINOR_VERSION 1
|
||||
#else /* !defined(NXAGENT_SERVER) */
|
||||
#define SERVER_DAMAGE_MINOR_VERSION 0
|
||||
#endif /* !defined(NXAGENT_SERVER) */
|
||||
|
||||
#ifndef NXAGENT_SERVER
|
||||
/* DRI3 */
|
||||
#define SERVER_DRI3_MAJOR_VERSION 1
|
||||
#define SERVER_DRI3_MINOR_VERSION 0
|
||||
#endif /* !defined(NXAGENT_SERVER) */
|
||||
|
||||
#ifndef NXAGENT_SERVER
|
||||
/* DMX */
|
||||
#define SERVER_DMX_MAJOR_VERSION 2
|
||||
#define SERVER_DMX_MINOR_VERSION 2
|
||||
#define SERVER_DMX_PATCH_VERSION 20040604
|
||||
#endif /* !defined(NXAGENT_SERVER) */
|
||||
|
||||
#ifndef NXAGENT_SERVER
|
||||
/* Generic event extension */
|
||||
#define SERVER_GE_MAJOR_VERSION 1
|
||||
#define SERVER_GE_MINOR_VERSION 0
|
||||
#endif /* !defined(NXAGENT_SERVER) */
|
||||
|
||||
/* GLX */
|
||||
#define SERVER_GLX_MAJOR_VERSION 1
|
||||
#ifndef NXAGENT_SERVER
|
||||
#define SERVER_GLX_MINOR_VERSION 4
|
||||
#else
|
||||
#define SERVER_GLX_MINOR_VERSION 2
|
||||
#endif
|
||||
|
||||
/* Xinerama */
|
||||
#define SERVER_PANORAMIX_MAJOR_VERSION 1
|
||||
#define SERVER_PANORAMIX_MINOR_VERSION 1
|
||||
|
||||
#ifndef NXAGENT_SERVER
|
||||
/* Present */
|
||||
#define SERVER_PRESENT_MAJOR_VERSION 1
|
||||
#define SERVER_PRESENT_MINOR_VERSION 0
|
||||
#endif /* !defined(NXAGENT_SERVER) */
|
||||
|
||||
/* RandR */
|
||||
#define SERVER_RANDR_MAJOR_VERSION 1
|
||||
#define SERVER_RANDR_MINOR_VERSION 5
|
||||
|
||||
/* Record */
|
||||
#define SERVER_RECORD_MAJOR_VERSION 1
|
||||
#define SERVER_RECORD_MINOR_VERSION 13
|
||||
|
||||
/* Render */
|
||||
#define SERVER_RENDER_MAJOR_VERSION 0
|
||||
#ifndef NXAGENT_SERVER
|
||||
#define SERVER_RENDER_MINOR_VERSION 11
|
||||
#else /* !defined(NXAGENT_SERVER) */
|
||||
#define SERVER_RENDER_MINOR_VERSION 10
|
||||
#endif /* !defined(NXAGENT_SERVER) */
|
||||
|
||||
/* RandR Xinerama */
|
||||
#define SERVER_RRXINERAMA_MAJOR_VERSION 1
|
||||
#define SERVER_RRXINERAMA_MINOR_VERSION 1
|
||||
|
||||
/* Screensaver */
|
||||
#define SERVER_SAVER_MAJOR_VERSION 1
|
||||
#define SERVER_SAVER_MINOR_VERSION 1
|
||||
|
||||
/* Security */
|
||||
#define SERVER_SECURITY_MAJOR_VERSION 1
|
||||
#define SERVER_SECURITY_MINOR_VERSION 0
|
||||
|
||||
/* Shape */
|
||||
#define SERVER_SHAPE_MAJOR_VERSION 1
|
||||
#define SERVER_SHAPE_MINOR_VERSION 1
|
||||
|
||||
/* SHM */
|
||||
#define SERVER_SHM_MAJOR_VERSION 1
|
||||
#ifndef NXAGENT_SERVER
|
||||
#if XTRANS_SEND_FDS
|
||||
#define SERVER_SHM_MINOR_VERSION 2
|
||||
#else
|
||||
#define SERVER_SHM_MINOR_VERSION 1
|
||||
#endif
|
||||
#else /* !defined(NXAGENT_SERVER) */
|
||||
#define SERVER_SHM_MINOR_VERSION 1
|
||||
#endif /* !defined(NXAGENT_SERVER) */
|
||||
|
||||
/* Sync */
|
||||
#define SERVER_SYNC_MAJOR_VERSION 3
|
||||
#ifndef NXAGENT_SERVER
|
||||
#define SERVER_SYNC_MINOR_VERSION 1
|
||||
#else /* !defined(NXAGENT_SERVER) */
|
||||
#define SERVER_SYNC_MINOR_VERSION 0
|
||||
#endif /* !defined(NXAGENT_SERVER) */
|
||||
|
||||
/* Big Font */
|
||||
#define SERVER_XF86BIGFONT_MAJOR_VERSION 1
|
||||
#define SERVER_XF86BIGFONT_MINOR_VERSION 1
|
||||
|
||||
#ifndef NXAGENT_SERVER
|
||||
/* Vidmode */
|
||||
#define SERVER_XF86VIDMODE_MAJOR_VERSION 2
|
||||
#define SERVER_XF86VIDMODE_MINOR_VERSION 2
|
||||
#endif /* !defined(NXAGENT_SERVER) */
|
||||
|
||||
/* Fixes */
|
||||
#ifndef NXAGENT_SERVER
|
||||
#define SERVER_XFIXES_MAJOR_VERSION 5
|
||||
#define SERVER_XFIXES_MINOR_VERSION 0
|
||||
#else /* !defined(NXAGENT_SERVER) */
|
||||
#define SERVER_XFIXES_MAJOR_VERSION 4
|
||||
#define SERVER_XFIXES_MINOR_VERSION 0
|
||||
#endif /* !defined(NXAGENT_SERVER) */
|
||||
|
||||
/* X Input */
|
||||
#ifndef NXAGENT_SERVER
|
||||
#define SERVER_XI_MAJOR_VERSION 2
|
||||
#define SERVER_XI_MINOR_VERSION 3
|
||||
#else /* !defined(NXAGENT_SERVER) */
|
||||
#define SERVER_XI_MAJOR_VERSION 1
|
||||
#define SERVER_XI_MINOR_VERSION 3
|
||||
#endif /* !defined(NXAGENT_SERVER) */
|
||||
|
||||
/* XKB */
|
||||
#define SERVER_XKB_MAJOR_VERSION 1
|
||||
#define SERVER_XKB_MINOR_VERSION 0
|
||||
|
||||
/* Resource */
|
||||
#define SERVER_XRES_MAJOR_VERSION 1
|
||||
#ifndef NXAGENT_SERVER
|
||||
#define SERVER_XRES_MINOR_VERSION 2
|
||||
#else /* !defined(NXAGENT_SERVER) */
|
||||
#define SERVER_XRES_MINOR_VERSION 0
|
||||
#endif /* !defined(NXAGENT_SERVER) */
|
||||
|
||||
#ifndef NXAGENT_SERVER
|
||||
/* XvMC */
|
||||
#define SERVER_XVMC_MAJOR_VERSION 1
|
||||
#define SERVER_XVMC_MINOR_VERSION 1
|
||||
#endif /* !defined(NXAGENT_SERVER) */
|
||||
|
||||
#endif /* PROTOCOL_VERSIONS_H */
|
||||
53
nx-X11/programs/Xserver/include/region.h
Normal file
53
nx-X11/programs/Xserver/include/region.h
Normal file
@@ -0,0 +1,53 @@
|
||||
/***********************************************************
|
||||
|
||||
Copyright 1987, 1998 The Open Group
|
||||
|
||||
Permission to use, copy, modify, distribute, and sell this software and its
|
||||
documentation for any purpose is hereby granted without fee, provided that
|
||||
the above copyright notice appear in all copies and that both that
|
||||
copyright notice and this permission notice appear in supporting
|
||||
documentation.
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name of The Open Group shall not be
|
||||
used in advertising or otherwise to promote the sale, use or other dealings
|
||||
in this Software without prior written authorization from The Open Group.
|
||||
|
||||
|
||||
Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
|
||||
|
||||
All Rights Reserved
|
||||
|
||||
Permission to use, copy, modify, and distribute this software and its
|
||||
documentation for any purpose and without fee is hereby granted,
|
||||
provided that the above copyright notice appear in all copies and that
|
||||
both that copyright notice and this permission notice appear in
|
||||
supporting documentation, and that the name of Digital not be
|
||||
used in advertising or publicity pertaining to distribution of the
|
||||
software without specific, written prior permission.
|
||||
|
||||
DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
|
||||
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
|
||||
DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
|
||||
ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
||||
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
|
||||
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
SOFTWARE.
|
||||
|
||||
******************************************************************/
|
||||
|
||||
#ifndef REGION_H
|
||||
#define REGION_H
|
||||
|
||||
#include "regionstr.h"
|
||||
|
||||
#endif /* REGION_H */
|
||||
411
nx-X11/programs/Xserver/include/regionstr.h
Normal file
411
nx-X11/programs/Xserver/include/regionstr.h
Normal file
@@ -0,0 +1,411 @@
|
||||
/***********************************************************
|
||||
|
||||
Copyright 1987, 1998 The Open Group
|
||||
|
||||
Permission to use, copy, modify, distribute, and sell this software and its
|
||||
documentation for any purpose is hereby granted without fee, provided that
|
||||
the above copyright notice appear in all copies and that both that
|
||||
copyright notice and this permission notice appear in supporting
|
||||
documentation.
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name of The Open Group shall not be
|
||||
used in advertising or otherwise to promote the sale, use or other dealings
|
||||
in this Software without prior written authorization from The Open Group.
|
||||
|
||||
|
||||
Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
|
||||
|
||||
All Rights Reserved
|
||||
|
||||
Permission to use, copy, modify, and distribute this software and its
|
||||
documentation for any purpose and without fee is hereby granted,
|
||||
provided that the above copyright notice appear in all copies and that
|
||||
both that copyright notice and this permission notice appear in
|
||||
supporting documentation, and that the name of Digital not be
|
||||
used in advertising or publicity pertaining to distribution of the
|
||||
software without specific, written prior permission.
|
||||
|
||||
DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
|
||||
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
|
||||
DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
|
||||
ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
||||
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
|
||||
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
SOFTWARE.
|
||||
|
||||
******************************************************************/
|
||||
|
||||
#ifndef REGIONSTRUCT_H
|
||||
#define REGIONSTRUCT_H
|
||||
|
||||
#include <pixman.h>
|
||||
|
||||
typedef struct pixman_region16 RegionRec, *RegionPtr;
|
||||
|
||||
#include <stddef.h>
|
||||
#include <limits.h>
|
||||
|
||||
#include "miscstruct.h"
|
||||
|
||||
/* Return values from RectIn() */
|
||||
|
||||
#define rgnOUT 0
|
||||
#define rgnIN 1
|
||||
#define rgnPART 2
|
||||
|
||||
#define NullRegion ((RegionPtr)0)
|
||||
|
||||
/*
|
||||
* clip region
|
||||
*/
|
||||
|
||||
typedef struct pixman_region16_data RegDataRec, *RegDataPtr;
|
||||
|
||||
extern BoxRec RegionEmptyBox;
|
||||
extern RegDataRec RegionEmptyData;
|
||||
extern RegDataRec RegionBrokenData;
|
||||
|
||||
static inline Bool RegionNil(RegionPtr reg) {
|
||||
return ((reg)->data && !(reg)->data->numRects);
|
||||
}
|
||||
|
||||
static inline Bool RegionNar(RegionPtr reg) {
|
||||
return ((reg)->data == &RegionBrokenData);
|
||||
}
|
||||
|
||||
static inline int RegionNumRects(RegionPtr reg) {
|
||||
return ((reg)->data ? (reg)->data->numRects : 1);
|
||||
}
|
||||
|
||||
static inline int RegionSize(RegionPtr reg) {
|
||||
return ((reg)->data ? (reg)->data->size : 0);
|
||||
}
|
||||
|
||||
static inline BoxPtr RegionRects(RegionPtr reg) {
|
||||
return ((reg)->data ? (BoxPtr)((reg)->data + 1) : &(reg)->extents);
|
||||
}
|
||||
|
||||
static inline BoxPtr RegionBoxptr(RegionPtr reg) {
|
||||
return ((BoxPtr)((reg)->data + 1));
|
||||
}
|
||||
|
||||
static inline BoxPtr RegionBox(RegionPtr reg, int i) {
|
||||
return (&RegionBoxptr(reg)[i]);
|
||||
}
|
||||
|
||||
static inline BoxPtr RegionTop(RegionPtr reg) {
|
||||
return RegionBox(reg, (reg)->data->numRects);
|
||||
}
|
||||
|
||||
static inline BoxPtr RegionEnd(RegionPtr reg) {
|
||||
return RegionBox(reg, (reg)->data->numRects - 1);
|
||||
}
|
||||
|
||||
static inline size_t RegionSizeof(int n) {
|
||||
return (sizeof(RegDataRec) + ((n) * sizeof(BoxRec)));
|
||||
}
|
||||
|
||||
static inline void RegionInit(RegionPtr _pReg, BoxPtr _rect, int _size)
|
||||
{
|
||||
if ((_rect) != NULL)
|
||||
{
|
||||
(_pReg)->extents = *(_rect);
|
||||
(_pReg)->data = (RegDataPtr)NULL;
|
||||
}
|
||||
else
|
||||
{
|
||||
(_pReg)->extents = RegionEmptyBox;
|
||||
if (((_size) > 1) && ((_pReg)->data =
|
||||
(RegDataPtr)malloc(RegionSizeof(_size))))
|
||||
{
|
||||
(_pReg)->data->size = (_size);
|
||||
(_pReg)->data->numRects = 0;
|
||||
}
|
||||
else
|
||||
(_pReg)->data = &RegionEmptyData;
|
||||
}
|
||||
}
|
||||
|
||||
static inline void RegionUninit(RegionPtr _pReg)
|
||||
{
|
||||
if ((_pReg)->data && (_pReg)->data->size) {
|
||||
free((_pReg)->data);
|
||||
(_pReg)->data = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
static inline void RegionReset(RegionPtr _pReg, BoxPtr _pBox)
|
||||
{
|
||||
(_pReg)->extents = *(_pBox);
|
||||
RegionUninit(_pReg);
|
||||
(_pReg)->data = (RegDataPtr)NULL;
|
||||
}
|
||||
|
||||
static inline Bool RegionNotEmpty(RegionPtr _pReg) {
|
||||
return !RegionNil(_pReg);
|
||||
}
|
||||
|
||||
static inline Bool RegionBroken(RegionPtr _pReg) {
|
||||
return RegionNar(_pReg);
|
||||
}
|
||||
|
||||
static inline void RegionEmpty(RegionPtr _pReg)
|
||||
{
|
||||
RegionUninit(_pReg);
|
||||
(_pReg)->extents.x2 = (_pReg)->extents.x1;
|
||||
(_pReg)->extents.y2 = (_pReg)->extents.y1;
|
||||
(_pReg)->data = &RegionEmptyData;
|
||||
}
|
||||
|
||||
static inline BoxPtr RegionExtents(RegionPtr _pReg)
|
||||
{
|
||||
return (&(_pReg)->extents);
|
||||
}
|
||||
|
||||
static inline void RegionNull(RegionPtr _pReg)
|
||||
{
|
||||
(_pReg)->extents = RegionEmptyBox;
|
||||
(_pReg)->data = &RegionEmptyData;
|
||||
}
|
||||
|
||||
static inline Bool
|
||||
RegionCopy(RegionPtr dst, RegionPtr src)
|
||||
{
|
||||
return pixman_region_copy (dst, src);
|
||||
}
|
||||
|
||||
static inline Bool
|
||||
RegionIntersect(
|
||||
RegionPtr newReg, /* destination Region */
|
||||
RegionPtr reg1,
|
||||
RegionPtr reg2 /* source regions */
|
||||
)
|
||||
{
|
||||
return pixman_region_intersect (newReg, reg1, reg2);
|
||||
}
|
||||
|
||||
static inline Bool
|
||||
RegionUnion(
|
||||
RegionPtr newReg, /* destination Region */
|
||||
RegionPtr reg1,
|
||||
RegionPtr reg2 /* source regions */
|
||||
)
|
||||
{
|
||||
return pixman_region_union (newReg, reg1, reg2);
|
||||
}
|
||||
|
||||
/*
|
||||
*-----------------------------------------------------------------------
|
||||
* Subtract --
|
||||
* Subtract regS from regM and leave the result in regD.
|
||||
* S stands for subtrahend, M for minuend and D for difference.
|
||||
*
|
||||
* Results:
|
||||
* TRUE if successful.
|
||||
*
|
||||
* Side Effects:
|
||||
* regD is overwritten.
|
||||
*
|
||||
*-----------------------------------------------------------------------
|
||||
*/
|
||||
static inline Bool
|
||||
RegionSubtract(RegionPtr regD, RegionPtr regM, RegionPtr regS)
|
||||
{
|
||||
return pixman_region_subtract (regD, regM, regS);
|
||||
}
|
||||
|
||||
/*
|
||||
*-----------------------------------------------------------------------
|
||||
* Inverse --
|
||||
* Take a region and a box and return a region that is everything
|
||||
* in the box but not in the region. The careful reader will note
|
||||
* that this is the same as subtracting the region from the box...
|
||||
*
|
||||
* Results:
|
||||
* TRUE.
|
||||
*
|
||||
* Side Effects:
|
||||
* newReg is overwritten.
|
||||
*
|
||||
*-----------------------------------------------------------------------
|
||||
*/
|
||||
static inline Bool
|
||||
RegionInverse(
|
||||
RegionPtr newReg, /* Destination region */
|
||||
RegionPtr reg1, /* Region to invert */
|
||||
BoxPtr invRect /* Bounding box for inversion */
|
||||
)
|
||||
{
|
||||
return pixman_region_inverse (newReg, reg1, invRect);
|
||||
}
|
||||
|
||||
static inline int
|
||||
RegionContainsRect(RegionPtr region, BoxPtr prect)
|
||||
{
|
||||
return pixman_region_contains_rectangle (region, prect);
|
||||
}
|
||||
|
||||
/* TranslateRegion(pReg, x, y)
|
||||
* translates in place
|
||||
*/
|
||||
|
||||
static inline void
|
||||
RegionTranslate(RegionPtr pReg, int x, int y)
|
||||
{
|
||||
pixman_region_translate (pReg, x, y);
|
||||
}
|
||||
|
||||
static inline Bool
|
||||
RegionContainsPoint(
|
||||
RegionPtr pReg,
|
||||
int x,
|
||||
int y,
|
||||
BoxPtr box /* "return" value */
|
||||
)
|
||||
{
|
||||
return pixman_region_contains_point (pReg, x, y, box);
|
||||
}
|
||||
|
||||
static inline Bool
|
||||
RegionEqual(RegionPtr reg1, RegionPtr reg2)
|
||||
{
|
||||
return pixman_region_equal (reg1, reg2);
|
||||
}
|
||||
|
||||
extern RegionPtr RegionCreate(
|
||||
BoxPtr /*rect*/,
|
||||
int /*size*/);
|
||||
|
||||
extern void RegionInit(
|
||||
RegionPtr /*pReg*/,
|
||||
BoxPtr /*rect*/,
|
||||
int /*size*/);
|
||||
|
||||
extern void RegionDestroy(
|
||||
RegionPtr /*pReg*/);
|
||||
|
||||
extern void RegionUninit(
|
||||
RegionPtr /*pReg*/);
|
||||
|
||||
extern Bool RegionCopy(
|
||||
RegionPtr /*dst*/,
|
||||
RegionPtr /*src*/);
|
||||
|
||||
extern Bool RegionIntersect(
|
||||
RegionPtr /*newReg*/,
|
||||
RegionPtr /*reg1*/,
|
||||
RegionPtr /*reg2*/);
|
||||
|
||||
extern Bool RegionUnion(
|
||||
RegionPtr /*newReg*/,
|
||||
RegionPtr /*reg1*/,
|
||||
RegionPtr /*reg2*/);
|
||||
|
||||
extern Bool RegionAppend(
|
||||
RegionPtr /*dstrgn*/,
|
||||
RegionPtr /*rgn*/);
|
||||
|
||||
extern Bool RegionValidate(
|
||||
RegionPtr /*badreg*/,
|
||||
Bool * /*pOverlap*/);
|
||||
|
||||
extern RegionPtr RegionFromRects(
|
||||
int /*nrects*/,
|
||||
xRectanglePtr /*prect*/,
|
||||
int /*ctype*/);
|
||||
|
||||
extern Bool RegionSubtract(
|
||||
RegionPtr /*regD*/,
|
||||
RegionPtr /*regM*/,
|
||||
RegionPtr /*regS*/);
|
||||
|
||||
extern Bool RegionInverse(
|
||||
RegionPtr /*newReg*/,
|
||||
RegionPtr /*reg1*/,
|
||||
BoxPtr /*invRect*/);
|
||||
|
||||
extern int RegionContainsRect(
|
||||
RegionPtr /*region*/,
|
||||
BoxPtr /*prect*/);
|
||||
|
||||
extern void RegionTranslate(
|
||||
RegionPtr /*pReg*/,
|
||||
int /*x*/,
|
||||
int /*y*/);
|
||||
|
||||
extern void RegionReset(
|
||||
RegionPtr /*pReg*/,
|
||||
BoxPtr /*pBox*/);
|
||||
|
||||
extern Bool RegionBreak(
|
||||
RegionPtr /*pReg*/);
|
||||
|
||||
extern Bool RegionContainsPoint(
|
||||
RegionPtr /*pReg*/,
|
||||
int /*x*/,
|
||||
int /*y*/,
|
||||
BoxPtr /*box*/);
|
||||
|
||||
extern Bool RegionEqual(
|
||||
RegionPtr /*pReg1*/,
|
||||
RegionPtr /*pReg2*/);
|
||||
|
||||
extern Bool RegionNotEmpty(
|
||||
RegionPtr /*pReg*/);
|
||||
|
||||
extern void RegionEmpty(
|
||||
RegionPtr /*pReg*/);
|
||||
|
||||
extern BoxPtr RegionExtents(
|
||||
RegionPtr /*pReg*/);
|
||||
|
||||
#define INCLUDE_LEGACY_REGION_DEFINES
|
||||
#ifdef INCLUDE_LEGACY_REGION_DEFINES
|
||||
|
||||
#define REGION_NIL RegionNil
|
||||
#define REGION_NAR RegionNar
|
||||
#define REGION_NUM_RECTS RegionNumRects
|
||||
#define REGION_SIZE RegionSize
|
||||
#define REGION_RECTS RegionRects
|
||||
#define REGION_BOXPTR RegionBoxptr
|
||||
#define REGION_BOX RegionBox
|
||||
#define REGION_TOP RegionTop
|
||||
#define REGION_END RegionEnd
|
||||
#define REGION_SZOF RegionSizeof
|
||||
#define BitmapToRegion BitmapToRegion
|
||||
#define REGION_CREATE(pScreen, r, s) RegionCreate(r,s)
|
||||
#define REGION_COPY(pScreen, d, r) RegionCopy(d, r)
|
||||
#define REGION_DESTROY(pScreen, r) RegionDestroy(r)
|
||||
#define REGION_INTERSECT(pScreen, res, r1, r2) RegionIntersect(res, r1, r2)
|
||||
#define REGION_UNION(pScreen, res, r1, r2) RegionUnion(res, r1, r2)
|
||||
#define REGION_SUBTRACT(pScreen, res, r1, r2) RegionSubtract(res, r1, r2)
|
||||
#define REGION_INVERSE(pScreen, n, r, b) RegionInverse(n, r, b)
|
||||
#define REGION_TRANSLATE(pScreen, r, x, y) RegionTranslate(r, x, y)
|
||||
#define RECT_IN_REGION(pScreen, r, b) RegionContainsRect(r, b)
|
||||
#define POINT_IN_REGION(pScreen, r, x, y, b) RegionContainsPoint(r, x, y, b)
|
||||
#define REGION_EQUAL(pScreen, r1, r2) RegionEqual(r1, r2)
|
||||
#define REGION_APPEND(pScreen, d, r) RegionAppend(d, r)
|
||||
#define REGION_VALIDATE(pScreen, r, o) RegionValidate(r, o)
|
||||
#define RECTS_TO_REGION(pScreen, n, r, c) RegionFromRects(n, r, c)
|
||||
#define REGION_BREAK(pScreen, r) RegionBreak(r)
|
||||
#define REGION_INIT(pScreen, r, b, s) RegionInit(r, b, s)
|
||||
#define REGION_UNINIT(pScreen, r) RegionUninit(r)
|
||||
#define REGION_RESET(pScreen, r, b) RegionReset(r, b)
|
||||
#define REGION_NOTEMPTY(pScreen, r) RegionNotEmpty(r)
|
||||
#define REGION_BROKEN(pScreen, r) RegionBroken(r)
|
||||
#define REGION_EMPTY(pScreen, r) RegionEmpty(r)
|
||||
#define REGION_EXTENTS(pScreen, r) RegionExtents(r)
|
||||
#define REGION_NULL(pScreen, r) RegionNull(r)
|
||||
|
||||
#endif /* INCLUDE_LEGACY_REGION_DEFINES */
|
||||
#endif /* REGIONSTRUCT_H */
|
||||
272
nx-X11/programs/Xserver/include/resource.h
Normal file
272
nx-X11/programs/Xserver/include/resource.h
Normal file
@@ -0,0 +1,272 @@
|
||||
/***********************************************************
|
||||
|
||||
Copyright 1987, 1989, 1998 The Open Group
|
||||
|
||||
Permission to use, copy, modify, distribute, and sell this software and its
|
||||
documentation for any purpose is hereby granted without fee, provided that
|
||||
the above copyright notice appear in all copies and that both that
|
||||
copyright notice and this permission notice appear in supporting
|
||||
documentation.
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name of The Open Group shall not be
|
||||
used in advertising or otherwise to promote the sale, use or other dealings
|
||||
in this Software without prior written authorization from The Open Group.
|
||||
|
||||
|
||||
Copyright 1987, 1989 by Digital Equipment Corporation, Maynard, Massachusetts.
|
||||
|
||||
All Rights Reserved
|
||||
|
||||
Permission to use, copy, modify, and distribute this software and its
|
||||
documentation for any purpose and without fee is hereby granted,
|
||||
provided that the above copyright notice appear in all copies and that
|
||||
both that copyright notice and this permission notice appear in
|
||||
supporting documentation, and that the name of Digital not be
|
||||
used in advertising or publicity pertaining to distribution of the
|
||||
software without specific, written prior permission.
|
||||
|
||||
DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
|
||||
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
|
||||
DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
|
||||
ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
||||
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
|
||||
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
SOFTWARE.
|
||||
|
||||
******************************************************************/
|
||||
|
||||
#ifndef RESOURCE_H
|
||||
#define RESOURCE_H 1
|
||||
#include "misc.h"
|
||||
|
||||
/*****************************************************************
|
||||
* STUFF FOR RESOURCES
|
||||
*****************************************************************/
|
||||
|
||||
/* classes for Resource routines */
|
||||
|
||||
typedef unsigned long RESTYPE;
|
||||
|
||||
#define RC_VANILLA ((RESTYPE)0)
|
||||
#define RC_CACHED ((RESTYPE)1<<31)
|
||||
#define RC_DRAWABLE ((RESTYPE)1<<30)
|
||||
/* Use class RC_NEVERRETAIN for resources that should not be retained
|
||||
* regardless of the close down mode when the client dies. (A client's
|
||||
* event selections on objects that it doesn't own are good candidates.)
|
||||
* Extensions can use this too!
|
||||
*/
|
||||
#define RC_NEVERRETAIN ((RESTYPE)1<<29)
|
||||
#define RC_LASTPREDEF RC_NEVERRETAIN
|
||||
#define RC_ANY (~(RESTYPE)0)
|
||||
|
||||
/* types for Resource routines */
|
||||
|
||||
#define RT_WINDOW ((RESTYPE)1|RC_DRAWABLE)
|
||||
#define RT_PIXMAP ((RESTYPE)2|RC_DRAWABLE)
|
||||
#define RT_GC ((RESTYPE)3)
|
||||
#undef RT_FONT
|
||||
#undef RT_CURSOR
|
||||
#define RT_FONT ((RESTYPE)4)
|
||||
#define RT_CURSOR ((RESTYPE)5)
|
||||
#define RT_COLORMAP ((RESTYPE)6)
|
||||
#define RT_CMAPENTRY ((RESTYPE)7)
|
||||
#define RT_OTHERCLIENT ((RESTYPE)8|RC_NEVERRETAIN)
|
||||
#define RT_PASSIVEGRAB ((RESTYPE)9|RC_NEVERRETAIN)
|
||||
#define RT_LASTPREDEF ((RESTYPE)9)
|
||||
#define RT_NONE ((RESTYPE)0)
|
||||
|
||||
/* bits and fields within a resource id */
|
||||
#define RESOURCE_AND_CLIENT_COUNT 29 /* 29 bits for XIDs */
|
||||
#if MAXCLIENTS == 64
|
||||
#define RESOURCE_CLIENT_BITS 6
|
||||
#endif
|
||||
#if MAXCLIENTS == 128
|
||||
#define RESOURCE_CLIENT_BITS 7
|
||||
#endif
|
||||
#if MAXCLIENTS == 256
|
||||
#define RESOURCE_CLIENT_BITS 8
|
||||
#endif
|
||||
#if MAXCLIENTS == 512
|
||||
#define RESOURCE_CLIENT_BITS 9
|
||||
#endif
|
||||
/* client field offset */
|
||||
#define CLIENTOFFSET (RESOURCE_AND_CLIENT_COUNT - RESOURCE_CLIENT_BITS)
|
||||
/* resource field */
|
||||
#define RESOURCE_ID_MASK ((1 << CLIENTOFFSET) - 1)
|
||||
/* client field */
|
||||
#define RESOURCE_CLIENT_MASK (((1 << RESOURCE_CLIENT_BITS) - 1) << CLIENTOFFSET)
|
||||
/* extract the client mask from an XID */
|
||||
#define CLIENT_BITS(id) ((id) & RESOURCE_CLIENT_MASK)
|
||||
/* extract the client id from an XID */
|
||||
#define CLIENT_ID(id) ((int)(CLIENT_BITS(id) >> CLIENTOFFSET))
|
||||
#define SERVER_BIT (Mask)0x40000000 /* use illegal bit */
|
||||
|
||||
#ifdef INVALID
|
||||
#undef INVALID /* needed on HP/UX */
|
||||
#endif
|
||||
|
||||
/* Invalid resource id */
|
||||
#define INVALID (0)
|
||||
|
||||
#define BAD_RESOURCE 0xe0000000
|
||||
|
||||
typedef int (*DeleteType)(
|
||||
void * /*value*/,
|
||||
XID /*id*/);
|
||||
|
||||
typedef void (*FindResType)(
|
||||
void * /*value*/,
|
||||
XID /*id*/,
|
||||
void * /*cdata*/);
|
||||
|
||||
typedef void (*FindAllRes)(
|
||||
void * /*value*/,
|
||||
XID /*id*/,
|
||||
RESTYPE /*type*/,
|
||||
void * /*cdata*/);
|
||||
|
||||
typedef Bool (*FindComplexResType)(
|
||||
void * /*value*/,
|
||||
XID /*id*/,
|
||||
void * /*cdata*/);
|
||||
|
||||
extern RESTYPE CreateNewResourceType(
|
||||
DeleteType /*deleteFunc*/);
|
||||
|
||||
extern RESTYPE CreateNewResourceClass(void);
|
||||
|
||||
extern Bool InitClientResources(
|
||||
ClientPtr /*client*/);
|
||||
|
||||
extern XID FakeClientID(
|
||||
int /*client*/);
|
||||
|
||||
/* Quartz support on Mac OS X uses the CarbonCore
|
||||
framework whose AddResource function conflicts here. */
|
||||
#ifdef __DARWIN__
|
||||
#define AddResource Darwin_X_AddResource
|
||||
#endif
|
||||
extern Bool AddResource(
|
||||
XID /*id*/,
|
||||
RESTYPE /*type*/,
|
||||
void * /*value*/);
|
||||
|
||||
extern void FreeResource(
|
||||
XID /*id*/,
|
||||
RESTYPE /*skipDeleteFuncType*/);
|
||||
|
||||
extern void FreeResourceByType(
|
||||
XID /*id*/,
|
||||
RESTYPE /*type*/,
|
||||
Bool /*skipFree*/);
|
||||
|
||||
extern Bool ChangeResourceValue(
|
||||
XID /*id*/,
|
||||
RESTYPE /*rtype*/,
|
||||
void * /*value*/);
|
||||
|
||||
extern void FindClientResourcesByType(
|
||||
ClientPtr /*client*/,
|
||||
RESTYPE /*type*/,
|
||||
FindResType /*func*/,
|
||||
void * /*cdata*/);
|
||||
|
||||
extern void FindAllClientResources(
|
||||
ClientPtr /*client*/,
|
||||
FindAllRes /*func*/,
|
||||
void * /*cdata*/);
|
||||
|
||||
extern void FreeClientNeverRetainResources(
|
||||
ClientPtr /*client*/);
|
||||
|
||||
extern void FreeClientResources(
|
||||
ClientPtr /*client*/);
|
||||
|
||||
extern void FreeAllResources(void);
|
||||
|
||||
extern Bool LegalNewID(
|
||||
XID /*id*/,
|
||||
ClientPtr /*client*/);
|
||||
|
||||
extern void * LookupIDByType(
|
||||
XID /*id*/,
|
||||
RESTYPE /*rtype*/);
|
||||
|
||||
extern void * LookupIDByClass(
|
||||
XID /*id*/,
|
||||
RESTYPE /*classes*/);
|
||||
|
||||
extern void * LookupClientResourceComplex(
|
||||
ClientPtr client,
|
||||
RESTYPE type,
|
||||
FindComplexResType func,
|
||||
void * cdata);
|
||||
|
||||
/* These are the access modes that can be passed in the last parameter
|
||||
* to SecurityLookupIDByType/Class. The Security extension doesn't
|
||||
* currently make much use of these; they're mainly provided as an
|
||||
* example of what you might need for discretionary access control.
|
||||
* You can or these values together to indicate multiple modes
|
||||
* simultaneously.
|
||||
*/
|
||||
|
||||
#define DixUnknownAccess 0 /* don't know intentions */
|
||||
#define DixReadAccess (1<<0) /* inspecting the object */
|
||||
#define DixWriteAccess (1<<1) /* changing the object */
|
||||
#define DixDestroyAccess (1<<2) /* destroying the object */
|
||||
|
||||
#ifdef XCSECURITY
|
||||
|
||||
extern void * SecurityLookupIDByType(
|
||||
ClientPtr /*client*/,
|
||||
XID /*id*/,
|
||||
RESTYPE /*rtype*/,
|
||||
Mask /*access_mode*/);
|
||||
|
||||
extern void * SecurityLookupIDByClass(
|
||||
ClientPtr /*client*/,
|
||||
XID /*id*/,
|
||||
RESTYPE /*classes*/,
|
||||
Mask /*access_mode*/);
|
||||
|
||||
#else /* not XCSECURITY */
|
||||
|
||||
#define SecurityLookupIDByType(client, id, rtype, access_mode) \
|
||||
LookupIDByType(id, rtype)
|
||||
|
||||
#define SecurityLookupIDByClass(client, id, classes, access_mode) \
|
||||
LookupIDByClass(id, classes)
|
||||
|
||||
#endif /* XCSECURITY */
|
||||
|
||||
extern void GetXIDRange(
|
||||
int /*client*/,
|
||||
Bool /*server*/,
|
||||
XID * /*minp*/,
|
||||
XID * /*maxp*/);
|
||||
|
||||
extern unsigned int GetXIDList(
|
||||
ClientPtr /*client*/,
|
||||
unsigned int /*count*/,
|
||||
XID * /*pids*/);
|
||||
|
||||
extern RESTYPE lastResourceType;
|
||||
extern RESTYPE TypeMask;
|
||||
|
||||
#ifdef XResExtension
|
||||
extern Atom *ResourceNames;
|
||||
void RegisterResourceName(RESTYPE type, char* name);
|
||||
#endif
|
||||
|
||||
#endif /* RESOURCE_H */
|
||||
|
||||
110
nx-X11/programs/Xserver/include/screenint.h
Normal file
110
nx-X11/programs/Xserver/include/screenint.h
Normal file
@@ -0,0 +1,110 @@
|
||||
/***********************************************************
|
||||
|
||||
Copyright 1987, 1998 The Open Group
|
||||
|
||||
Permission to use, copy, modify, distribute, and sell this software and its
|
||||
documentation for any purpose is hereby granted without fee, provided that
|
||||
the above copyright notice appear in all copies and that both that
|
||||
copyright notice and this permission notice appear in supporting
|
||||
documentation.
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name of The Open Group shall not be
|
||||
used in advertising or otherwise to promote the sale, use or other dealings
|
||||
in this Software without prior written authorization from The Open Group.
|
||||
|
||||
|
||||
Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
|
||||
|
||||
All Rights Reserved
|
||||
|
||||
Permission to use, copy, modify, and distribute this software and its
|
||||
documentation for any purpose and without fee is hereby granted,
|
||||
provided that the above copyright notice appear in all copies and that
|
||||
both that copyright notice and this permission notice appear in
|
||||
supporting documentation, and that the name of Digital not be
|
||||
used in advertising or publicity pertaining to distribution of the
|
||||
software without specific, written prior permission.
|
||||
|
||||
DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
|
||||
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
|
||||
DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
|
||||
ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
||||
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
|
||||
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
SOFTWARE.
|
||||
|
||||
******************************************************************/
|
||||
|
||||
#ifndef SCREENINT_H
|
||||
#define SCREENINT_H
|
||||
|
||||
#include "misc.h"
|
||||
|
||||
typedef struct _PixmapFormat *PixmapFormatPtr;
|
||||
typedef struct _Visual *VisualPtr;
|
||||
typedef struct _Depth *DepthPtr;
|
||||
typedef struct _Screen *ScreenPtr;
|
||||
|
||||
extern void ResetScreenPrivates(void);
|
||||
|
||||
extern int AllocateScreenPrivateIndex(void);
|
||||
|
||||
extern void ResetWindowPrivates(void);
|
||||
|
||||
extern int AllocateWindowPrivateIndex(void);
|
||||
|
||||
extern Bool AllocateWindowPrivate(
|
||||
ScreenPtr /* pScreen */,
|
||||
int /* index */,
|
||||
unsigned /* amount */);
|
||||
|
||||
extern void ResetGCPrivates(void);
|
||||
|
||||
extern int AllocateGCPrivateIndex(void);
|
||||
|
||||
extern Bool AllocateGCPrivate(
|
||||
ScreenPtr /* pScreen */,
|
||||
int /* index */,
|
||||
unsigned /* amount */);
|
||||
|
||||
extern int AddScreen(
|
||||
Bool (* /*pfnInit*/)(
|
||||
ScreenPtr /*pScreen*/,
|
||||
int /*argc*/,
|
||||
char ** /*argv*/),
|
||||
int /*argc*/,
|
||||
char** /*argv*/);
|
||||
|
||||
#ifdef PIXPRIV
|
||||
|
||||
extern void ResetPixmapPrivates(void);
|
||||
|
||||
extern int AllocatePixmapPrivateIndex(void);
|
||||
|
||||
extern Bool AllocatePixmapPrivate(
|
||||
ScreenPtr /* pScreen */,
|
||||
int /* index */,
|
||||
unsigned /* amount */);
|
||||
|
||||
#endif /* PIXPRIV */
|
||||
|
||||
extern void ResetColormapPrivates(void);
|
||||
|
||||
|
||||
typedef struct _ColormapRec *ColormapPtr;
|
||||
typedef int (*InitCmapPrivFunc)(ColormapPtr, int);
|
||||
|
||||
extern int AllocateColormapPrivateIndex(
|
||||
InitCmapPrivFunc /* initPrivFunc */);
|
||||
|
||||
#endif /* SCREENINT_H */
|
||||
756
nx-X11/programs/Xserver/include/scrnintstr.h
Normal file
756
nx-X11/programs/Xserver/include/scrnintstr.h
Normal file
@@ -0,0 +1,756 @@
|
||||
/***********************************************************
|
||||
|
||||
Copyright 1987, 1998 The Open Group
|
||||
|
||||
Permission to use, copy, modify, distribute, and sell this software and its
|
||||
documentation for any purpose is hereby granted without fee, provided that
|
||||
the above copyright notice appear in all copies and that both that
|
||||
copyright notice and this permission notice appear in supporting
|
||||
documentation.
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name of The Open Group shall not be
|
||||
used in advertising or otherwise to promote the sale, use or other dealings
|
||||
in this Software without prior written authorization from The Open Group.
|
||||
|
||||
|
||||
Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
|
||||
|
||||
All Rights Reserved
|
||||
|
||||
Permission to use, copy, modify, and distribute this software and its
|
||||
documentation for any purpose and without fee is hereby granted,
|
||||
provided that the above copyright notice appear in all copies and that
|
||||
both that copyright notice and this permission notice appear in
|
||||
supporting documentation, and that the name of Digital not be
|
||||
used in advertising or publicity pertaining to distribution of the
|
||||
software without specific, written prior permission.
|
||||
|
||||
DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
|
||||
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
|
||||
DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
|
||||
ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
||||
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
|
||||
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
SOFTWARE.
|
||||
|
||||
******************************************************************/
|
||||
|
||||
#ifndef SCREENINTSTRUCT_H
|
||||
#define SCREENINTSTRUCT_H
|
||||
|
||||
#include "screenint.h"
|
||||
#include "regionstr.h"
|
||||
#include "bstore.h"
|
||||
#include "colormap.h"
|
||||
#include "cursor.h"
|
||||
#include "validate.h"
|
||||
#include <nx-X11/Xproto.h>
|
||||
#include "dix.h"
|
||||
|
||||
typedef struct _PixmapFormat {
|
||||
unsigned char depth;
|
||||
unsigned char bitsPerPixel;
|
||||
unsigned char scanlinePad;
|
||||
} PixmapFormatRec;
|
||||
|
||||
typedef struct _Visual {
|
||||
VisualID vid;
|
||||
short class;
|
||||
short bitsPerRGBValue;
|
||||
short ColormapEntries;
|
||||
short nplanes;/* = log2 (ColormapEntries). This does not
|
||||
* imply that the screen has this many planes.
|
||||
* it may have more or fewer */
|
||||
unsigned long redMask, greenMask, blueMask;
|
||||
int offsetRed, offsetGreen, offsetBlue;
|
||||
} VisualRec;
|
||||
|
||||
typedef struct _Depth {
|
||||
unsigned char depth;
|
||||
short numVids;
|
||||
VisualID *vids; /* block of visual ids for this depth */
|
||||
} DepthRec;
|
||||
|
||||
|
||||
/*
|
||||
* There is a typedef for each screen function void * so that code that
|
||||
* needs to declare a screen function void * (e.g. in a screen private
|
||||
* or as a local variable) can easily do so and retain full type checking.
|
||||
*/
|
||||
|
||||
typedef Bool (* CloseScreenProcPtr)(
|
||||
ScreenPtr /*pScreen*/);
|
||||
|
||||
typedef void (* QueryBestSizeProcPtr)(
|
||||
int /*class*/,
|
||||
unsigned short * /*pwidth*/,
|
||||
unsigned short * /*pheight*/,
|
||||
ScreenPtr /*pScreen*/);
|
||||
|
||||
typedef Bool (* SaveScreenProcPtr)(
|
||||
ScreenPtr /*pScreen*/,
|
||||
int /*on*/);
|
||||
|
||||
typedef void (* GetImageProcPtr)(
|
||||
DrawablePtr /*pDrawable*/,
|
||||
int /*sx*/,
|
||||
int /*sy*/,
|
||||
int /*w*/,
|
||||
int /*h*/,
|
||||
unsigned int /*format*/,
|
||||
unsigned long /*planeMask*/,
|
||||
char * /*pdstLine*/);
|
||||
|
||||
typedef void (* GetSpansProcPtr)(
|
||||
DrawablePtr /*pDrawable*/,
|
||||
int /*wMax*/,
|
||||
DDXPointPtr /*ppt*/,
|
||||
int* /*pwidth*/,
|
||||
int /*nspans*/,
|
||||
char * /*pdstStart*/);
|
||||
|
||||
typedef void (* PointerNonInterestBoxProcPtr)(
|
||||
ScreenPtr /*pScreen*/,
|
||||
BoxPtr /*pBox*/);
|
||||
|
||||
typedef void (* SourceValidateProcPtr)(
|
||||
DrawablePtr /*pDrawable*/,
|
||||
int /*x*/,
|
||||
int /*y*/,
|
||||
int /*width*/,
|
||||
int /*height*/);
|
||||
|
||||
typedef Bool (* CreateWindowProcPtr)(
|
||||
WindowPtr /*pWindow*/);
|
||||
|
||||
typedef Bool (* DestroyWindowProcPtr)(
|
||||
WindowPtr /*pWindow*/);
|
||||
|
||||
typedef Bool (* PositionWindowProcPtr)(
|
||||
WindowPtr /*pWindow*/,
|
||||
int /*x*/,
|
||||
int /*y*/);
|
||||
|
||||
typedef Bool (* ChangeWindowAttributesProcPtr)(
|
||||
WindowPtr /*pWindow*/,
|
||||
unsigned long /*mask*/);
|
||||
|
||||
typedef Bool (* RealizeWindowProcPtr)(
|
||||
WindowPtr /*pWindow*/);
|
||||
|
||||
typedef Bool (* UnrealizeWindowProcPtr)(
|
||||
WindowPtr /*pWindow*/);
|
||||
|
||||
typedef void (* RestackWindowProcPtr)(
|
||||
WindowPtr /*pWindow*/,
|
||||
WindowPtr /*pOldNextSib*/);
|
||||
|
||||
typedef int (* ValidateTreeProcPtr)(
|
||||
WindowPtr /*pParent*/,
|
||||
WindowPtr /*pChild*/,
|
||||
VTKind /*kind*/);
|
||||
|
||||
typedef void (* PostValidateTreeProcPtr)(
|
||||
WindowPtr /*pParent*/,
|
||||
WindowPtr /*pChild*/,
|
||||
VTKind /*kind*/);
|
||||
|
||||
typedef void (* WindowExposuresProcPtr)(
|
||||
WindowPtr /*pWindow*/,
|
||||
RegionPtr /*prgn*/,
|
||||
RegionPtr /*other_exposed*/);
|
||||
|
||||
typedef void (* PaintWindowProcPtr)(
|
||||
WindowPtr /*pWindow*/,
|
||||
RegionPtr /*pRegion*/,
|
||||
int /*what*/);
|
||||
|
||||
typedef PaintWindowProcPtr PaintWindowBackgroundProcPtr;
|
||||
typedef PaintWindowProcPtr PaintWindowBorderProcPtr;
|
||||
|
||||
typedef void (* CopyWindowProcPtr)(
|
||||
WindowPtr /*pWindow*/,
|
||||
DDXPointRec /*ptOldOrg*/,
|
||||
RegionPtr /*prgnSrc*/);
|
||||
|
||||
typedef void (* ClearToBackgroundProcPtr)(
|
||||
WindowPtr /*pWindow*/,
|
||||
int /*x*/,
|
||||
int /*y*/,
|
||||
int /*w*/,
|
||||
int /*h*/,
|
||||
Bool /*generateExposures*/);
|
||||
|
||||
typedef void (* ClipNotifyProcPtr)(
|
||||
WindowPtr /*pWindow*/,
|
||||
int /*dx*/,
|
||||
int /*dy*/);
|
||||
|
||||
/* pixmap will exist only for the duration of the current rendering operation */
|
||||
#define CREATE_PIXMAP_USAGE_SCRATCH 1
|
||||
/* pixmap will be the backing pixmap for a redirected window */
|
||||
#define CREATE_PIXMAP_USAGE_BACKING_PIXMAP 2
|
||||
/* pixmap will contain a glyph */
|
||||
#define CREATE_PIXMAP_USAGE_GLYPH_PICTURE 3
|
||||
|
||||
typedef PixmapPtr (* CreatePixmapProcPtr)(
|
||||
ScreenPtr /*pScreen*/,
|
||||
int /*width*/,
|
||||
int /*height*/,
|
||||
int /*depth*/,
|
||||
unsigned /*usage_hint*/);
|
||||
|
||||
typedef Bool (* DestroyPixmapProcPtr)(
|
||||
PixmapPtr /*pPixmap*/);
|
||||
|
||||
typedef void (* SaveDoomedAreasProcPtr)(
|
||||
WindowPtr /*pWindow*/,
|
||||
RegionPtr /*prgnSave*/,
|
||||
int /*xorg*/,
|
||||
int /*yorg*/);
|
||||
|
||||
typedef RegionPtr (* RestoreAreasProcPtr)(
|
||||
WindowPtr /*pWindow*/,
|
||||
RegionPtr /*prgnRestore*/);
|
||||
|
||||
typedef void (* ExposeCopyProcPtr)(
|
||||
WindowPtr /*pSrc*/,
|
||||
DrawablePtr /*pDst*/,
|
||||
GCPtr /*pGC*/,
|
||||
RegionPtr /*prgnExposed*/,
|
||||
int /*srcx*/,
|
||||
int /*srcy*/,
|
||||
int /*dstx*/,
|
||||
int /*dsty*/,
|
||||
unsigned long /*plane*/);
|
||||
|
||||
typedef RegionPtr (* TranslateBackingStoreProcPtr)(
|
||||
WindowPtr /*pWindow*/,
|
||||
int /*windx*/,
|
||||
int /*windy*/,
|
||||
RegionPtr /*oldClip*/,
|
||||
int /*oldx*/,
|
||||
int /*oldy*/);
|
||||
|
||||
typedef RegionPtr (* ClearBackingStoreProcPtr)(
|
||||
WindowPtr /*pWindow*/,
|
||||
int /*x*/,
|
||||
int /*y*/,
|
||||
int /*w*/,
|
||||
int /*h*/,
|
||||
Bool /*generateExposures*/);
|
||||
|
||||
typedef void (* DrawGuaranteeProcPtr)(
|
||||
WindowPtr /*pWindow*/,
|
||||
GCPtr /*pGC*/,
|
||||
int /*guarantee*/);
|
||||
|
||||
typedef Bool (* RealizeFontProcPtr)(
|
||||
ScreenPtr /*pScreen*/,
|
||||
FontPtr /*pFont*/);
|
||||
|
||||
typedef Bool (* UnrealizeFontProcPtr)(
|
||||
ScreenPtr /*pScreen*/,
|
||||
FontPtr /*pFont*/);
|
||||
|
||||
typedef void (* ConstrainCursorProcPtr)(
|
||||
ScreenPtr /*pScreen*/,
|
||||
BoxPtr /*pBox*/);
|
||||
|
||||
typedef void (* CursorLimitsProcPtr)(
|
||||
ScreenPtr /*pScreen*/,
|
||||
CursorPtr /*pCursor*/,
|
||||
BoxPtr /*pHotBox*/,
|
||||
BoxPtr /*pTopLeftBox*/);
|
||||
|
||||
typedef Bool (* DisplayCursorProcPtr)(
|
||||
ScreenPtr /*pScreen*/,
|
||||
CursorPtr /*pCursor*/);
|
||||
|
||||
typedef Bool (* RealizeCursorProcPtr)(
|
||||
ScreenPtr /*pScreen*/,
|
||||
CursorPtr /*pCursor*/);
|
||||
|
||||
typedef Bool (* UnrealizeCursorProcPtr)(
|
||||
ScreenPtr /*pScreen*/,
|
||||
CursorPtr /*pCursor*/);
|
||||
|
||||
typedef void (* RecolorCursorProcPtr)(
|
||||
ScreenPtr /*pScreen*/,
|
||||
CursorPtr /*pCursor*/,
|
||||
Bool /*displayed*/);
|
||||
|
||||
typedef Bool (* SetCursorPositionProcPtr)(
|
||||
ScreenPtr /*pScreen*/,
|
||||
int /*x*/,
|
||||
int /*y*/,
|
||||
Bool /*generateEvent*/);
|
||||
|
||||
typedef Bool (* CreateGCProcPtr)(
|
||||
GCPtr /*pGC*/);
|
||||
|
||||
typedef Bool (* CreateColormapProcPtr)(
|
||||
ColormapPtr /*pColormap*/);
|
||||
|
||||
typedef void (* DestroyColormapProcPtr)(
|
||||
ColormapPtr /*pColormap*/);
|
||||
|
||||
typedef void (* InstallColormapProcPtr)(
|
||||
ColormapPtr /*pColormap*/);
|
||||
|
||||
typedef void (* UninstallColormapProcPtr)(
|
||||
ColormapPtr /*pColormap*/);
|
||||
|
||||
typedef int (* ListInstalledColormapsProcPtr) (
|
||||
ScreenPtr /*pScreen*/,
|
||||
XID* /*pmaps */);
|
||||
|
||||
typedef void (* StoreColorsProcPtr)(
|
||||
ColormapPtr /*pColormap*/,
|
||||
int /*ndef*/,
|
||||
xColorItem * /*pdef*/);
|
||||
|
||||
typedef void (* ResolveColorProcPtr)(
|
||||
unsigned short* /*pred*/,
|
||||
unsigned short* /*pgreen*/,
|
||||
unsigned short* /*pblue*/,
|
||||
VisualPtr /*pVisual*/);
|
||||
|
||||
#ifdef NEED_SCREEN_REGIONS
|
||||
|
||||
typedef RegionPtr (* RegionCreateProcPtr)(
|
||||
BoxPtr /*rect*/,
|
||||
int /*size*/);
|
||||
|
||||
typedef void (* RegionInitProcPtr)(
|
||||
RegionPtr /*pReg*/,
|
||||
BoxPtr /*rect*/,
|
||||
int /*size*/);
|
||||
|
||||
typedef Bool (* RegionCopyProcPtr)(
|
||||
RegionPtr /*dst*/,
|
||||
RegionPtr /*src*/);
|
||||
|
||||
typedef void (* RegionDestroyProcPtr)(
|
||||
RegionPtr /*pReg*/);
|
||||
|
||||
typedef void (* RegionUninitProcPtr)(
|
||||
RegionPtr /*pReg*/);
|
||||
|
||||
typedef Bool (* IntersectProcPtr)(
|
||||
RegionPtr /*newReg*/,
|
||||
RegionPtr /*reg1*/,
|
||||
RegionPtr /*reg2*/);
|
||||
|
||||
typedef Bool (* UnionProcPtr)(
|
||||
RegionPtr /*newReg*/,
|
||||
RegionPtr /*reg1*/,
|
||||
RegionPtr /*reg2*/);
|
||||
|
||||
typedef Bool (* SubtractProcPtr)(
|
||||
RegionPtr /*regD*/,
|
||||
RegionPtr /*regM*/,
|
||||
RegionPtr /*regS*/);
|
||||
|
||||
typedef Bool (* InverseProcPtr)(
|
||||
RegionPtr /*newReg*/,
|
||||
RegionPtr /*reg1*/,
|
||||
BoxPtr /*invRect*/);
|
||||
|
||||
typedef void (* RegionResetProcPtr)(
|
||||
RegionPtr /*pReg*/,
|
||||
BoxPtr /*pBox*/);
|
||||
|
||||
typedef void (* TranslateRegionProcPtr)(
|
||||
RegionPtr /*pReg*/,
|
||||
int /*x*/,
|
||||
int /*y*/);
|
||||
|
||||
typedef int (* RectInProcPtr)(
|
||||
RegionPtr /*region*/,
|
||||
BoxPtr /*prect*/);
|
||||
|
||||
typedef Bool (* PointInRegionProcPtr)(
|
||||
RegionPtr /*pReg*/,
|
||||
int /*x*/,
|
||||
int /*y*/,
|
||||
BoxPtr /*box*/);
|
||||
|
||||
typedef Bool (* RegionNotEmptyProcPtr)(
|
||||
RegionPtr /*pReg*/);
|
||||
|
||||
typedef Bool (* RegionEqualProcPtr)(
|
||||
RegionPtr /*pReg1*/,
|
||||
RegionPtr /*pReg2*/);
|
||||
|
||||
typedef Bool (* RegionBrokenProcPtr)(
|
||||
RegionPtr /*pReg*/);
|
||||
|
||||
typedef Bool (* RegionBreakProcPtr)(
|
||||
RegionPtr /*pReg*/);
|
||||
|
||||
typedef void (* RegionEmptyProcPtr)(
|
||||
RegionPtr /*pReg*/);
|
||||
|
||||
typedef BoxPtr (* RegionExtentsProcPtr)(
|
||||
RegionPtr /*pReg*/);
|
||||
|
||||
typedef Bool (* RegionAppendProcPtr)(
|
||||
RegionPtr /*dstrgn*/,
|
||||
RegionPtr /*rgn*/);
|
||||
|
||||
typedef Bool (* RegionValidateProcPtr)(
|
||||
RegionPtr /*badreg*/,
|
||||
Bool* /*pOverlap*/);
|
||||
|
||||
#endif /* NEED_SCREEN_REGIONS */
|
||||
|
||||
typedef RegionPtr (* BitmapToRegionProcPtr)(
|
||||
PixmapPtr /*pPix*/);
|
||||
|
||||
#ifdef NEED_SCREEN_REGIONS
|
||||
|
||||
typedef RegionPtr (* RectsToRegionProcPtr)(
|
||||
int /*nrects*/,
|
||||
xRectangle* /*prect*/,
|
||||
int /*ctype*/);
|
||||
|
||||
#endif /* NEED_SCREEN_REGIONS */
|
||||
|
||||
typedef void (* SendGraphicsExposeProcPtr)(
|
||||
ClientPtr /*client*/,
|
||||
RegionPtr /*pRgn*/,
|
||||
XID /*drawable*/,
|
||||
int /*major*/,
|
||||
int /*minor*/);
|
||||
|
||||
typedef void (* ScreenBlockHandlerProcPtr)(
|
||||
int /*screenNum*/,
|
||||
void * /*blockData*/,
|
||||
void * /*pTimeout*/,
|
||||
void * /*pReadmask*/);
|
||||
|
||||
typedef void (* ScreenWakeupHandlerProcPtr)(
|
||||
int /*screenNum*/,
|
||||
void * /*wakeupData*/,
|
||||
unsigned long /*result*/,
|
||||
void * /*pReadMask*/);
|
||||
|
||||
typedef Bool (* CreateScreenResourcesProcPtr)(
|
||||
ScreenPtr /*pScreen*/);
|
||||
|
||||
typedef Bool (* ModifyPixmapHeaderProcPtr)(
|
||||
PixmapPtr /*pPixmap*/,
|
||||
int /*width*/,
|
||||
int /*height*/,
|
||||
int /*depth*/,
|
||||
int /*bitsPerPixel*/,
|
||||
int /*devKind*/,
|
||||
void * /*pPixData*/);
|
||||
|
||||
typedef PixmapPtr (* GetWindowPixmapProcPtr)(
|
||||
WindowPtr /*pWin*/);
|
||||
|
||||
typedef void (* SetWindowPixmapProcPtr)(
|
||||
WindowPtr /*pWin*/,
|
||||
PixmapPtr /*pPix*/);
|
||||
|
||||
typedef PixmapPtr (* GetScreenPixmapProcPtr)(
|
||||
ScreenPtr /*pScreen*/);
|
||||
|
||||
typedef void (* SetScreenPixmapProcPtr)(
|
||||
PixmapPtr /*pPix*/);
|
||||
|
||||
typedef void (* MarkWindowProcPtr)(
|
||||
WindowPtr /*pWin*/);
|
||||
|
||||
typedef Bool (* MarkOverlappedWindowsProcPtr)(
|
||||
WindowPtr /*parent*/,
|
||||
WindowPtr /*firstChild*/,
|
||||
WindowPtr * /*pLayerWin*/);
|
||||
|
||||
typedef Bool (* ChangeSaveUnderProcPtr)(
|
||||
WindowPtr /*pLayerWin*/,
|
||||
WindowPtr /*firstChild*/);
|
||||
|
||||
typedef void (* PostChangeSaveUnderProcPtr)(
|
||||
WindowPtr /*pLayerWin*/,
|
||||
WindowPtr /*firstChild*/);
|
||||
|
||||
typedef void (* MoveWindowProcPtr)(
|
||||
WindowPtr /*pWin*/,
|
||||
int /*x*/,
|
||||
int /*y*/,
|
||||
WindowPtr /*pSib*/,
|
||||
VTKind /*kind*/);
|
||||
|
||||
typedef void (* ResizeWindowProcPtr)(
|
||||
WindowPtr /*pWin*/,
|
||||
int /*x*/,
|
||||
int /*y*/,
|
||||
unsigned int /*w*/,
|
||||
unsigned int /*h*/,
|
||||
WindowPtr /*pSib*/
|
||||
);
|
||||
|
||||
typedef WindowPtr (* GetLayerWindowProcPtr)(
|
||||
WindowPtr /*pWin*/
|
||||
);
|
||||
|
||||
typedef void (* HandleExposuresProcPtr)(
|
||||
WindowPtr /*pWin*/);
|
||||
|
||||
typedef void (* ReparentWindowProcPtr)(
|
||||
WindowPtr /*pWin*/,
|
||||
WindowPtr /*pPriorParent*/);
|
||||
|
||||
#ifdef SHAPE
|
||||
typedef void (* SetShapeProcPtr)(
|
||||
WindowPtr /*pWin*/);
|
||||
#endif /* SHAPE */
|
||||
|
||||
typedef void (* ChangeBorderWidthProcPtr)(
|
||||
WindowPtr /*pWin*/,
|
||||
unsigned int /*width*/);
|
||||
|
||||
typedef void (* MarkUnrealizedWindowProcPtr)(
|
||||
WindowPtr /*pChild*/,
|
||||
WindowPtr /*pWin*/,
|
||||
Bool /*fromConfigure*/);
|
||||
|
||||
typedef void (*ConstrainCursorHarderProcPtr)(
|
||||
ScreenPtr, /*pScreen*/
|
||||
int, /*mode*/
|
||||
int *, /*x*/
|
||||
int * /*y*/);
|
||||
|
||||
typedef Bool (*ReplaceScanoutPixmapProcPtr)(
|
||||
DrawablePtr, /*pDrawable*/
|
||||
PixmapPtr, /*pPixmap*/
|
||||
Bool /*enable*/);
|
||||
|
||||
typedef struct _Screen {
|
||||
int myNum; /* index of this instance in Screens[] */
|
||||
ATOM id;
|
||||
short width, height;
|
||||
short mmWidth, mmHeight;
|
||||
short numDepths;
|
||||
unsigned char rootDepth;
|
||||
DepthPtr allowedDepths;
|
||||
unsigned long rootVisual;
|
||||
unsigned long defColormap;
|
||||
short minInstalledCmaps, maxInstalledCmaps;
|
||||
char backingStoreSupport, saveUnderSupport;
|
||||
unsigned long whitePixel, blackPixel;
|
||||
unsigned long rgf; /* array of flags; she's -- HUNGARIAN */
|
||||
GCPtr GCperDepth[MAXFORMATS+1];
|
||||
/* next field is a stipple to use as default in
|
||||
a GC. we don't build default tiles of all depths
|
||||
because they are likely to be of a color
|
||||
different from the default fg pixel, so
|
||||
we don't win anything by building
|
||||
a standard one.
|
||||
*/
|
||||
PixmapPtr PixmapPerDepth[1];
|
||||
void * devPrivate;
|
||||
short numVisuals;
|
||||
VisualPtr visuals;
|
||||
WindowPtr root;
|
||||
int WindowPrivateLen;
|
||||
unsigned *WindowPrivateSizes;
|
||||
unsigned totalWindowSize;
|
||||
int GCPrivateLen;
|
||||
unsigned *GCPrivateSizes;
|
||||
unsigned totalGCSize;
|
||||
|
||||
/* Random screen procedures */
|
||||
|
||||
CloseScreenProcPtr CloseScreen;
|
||||
QueryBestSizeProcPtr QueryBestSize;
|
||||
SaveScreenProcPtr SaveScreen;
|
||||
GetImageProcPtr GetImage;
|
||||
GetSpansProcPtr GetSpans;
|
||||
PointerNonInterestBoxProcPtr PointerNonInterestBox;
|
||||
SourceValidateProcPtr SourceValidate;
|
||||
|
||||
/* Window Procedures */
|
||||
|
||||
CreateWindowProcPtr CreateWindow;
|
||||
DestroyWindowProcPtr DestroyWindow;
|
||||
PositionWindowProcPtr PositionWindow;
|
||||
ChangeWindowAttributesProcPtr ChangeWindowAttributes;
|
||||
RealizeWindowProcPtr RealizeWindow;
|
||||
UnrealizeWindowProcPtr UnrealizeWindow;
|
||||
ValidateTreeProcPtr ValidateTree;
|
||||
PostValidateTreeProcPtr PostValidateTree;
|
||||
WindowExposuresProcPtr WindowExposures;
|
||||
PaintWindowBackgroundProcPtr PaintWindowBackground;
|
||||
PaintWindowBorderProcPtr PaintWindowBorder;
|
||||
CopyWindowProcPtr CopyWindow;
|
||||
ClearToBackgroundProcPtr ClearToBackground;
|
||||
ClipNotifyProcPtr ClipNotify;
|
||||
RestackWindowProcPtr RestackWindow;
|
||||
|
||||
/* Pixmap procedures */
|
||||
|
||||
CreatePixmapProcPtr CreatePixmap;
|
||||
DestroyPixmapProcPtr DestroyPixmap;
|
||||
|
||||
/* Backing store procedures */
|
||||
|
||||
SaveDoomedAreasProcPtr SaveDoomedAreas;
|
||||
RestoreAreasProcPtr RestoreAreas;
|
||||
ExposeCopyProcPtr ExposeCopy;
|
||||
TranslateBackingStoreProcPtr TranslateBackingStore;
|
||||
ClearBackingStoreProcPtr ClearBackingStore;
|
||||
DrawGuaranteeProcPtr DrawGuarantee;
|
||||
/*
|
||||
* A read/write copy of the lower level backing store vector is needed now
|
||||
* that the functions can be wrapped.
|
||||
*/
|
||||
BSFuncRec BackingStoreFuncs;
|
||||
|
||||
/* Font procedures */
|
||||
|
||||
RealizeFontProcPtr RealizeFont;
|
||||
UnrealizeFontProcPtr UnrealizeFont;
|
||||
|
||||
/* Cursor Procedures */
|
||||
|
||||
ConstrainCursorProcPtr ConstrainCursor;
|
||||
ConstrainCursorHarderProcPtr ConstrainCursorHarder;
|
||||
CursorLimitsProcPtr CursorLimits;
|
||||
DisplayCursorProcPtr DisplayCursor;
|
||||
RealizeCursorProcPtr RealizeCursor;
|
||||
UnrealizeCursorProcPtr UnrealizeCursor;
|
||||
RecolorCursorProcPtr RecolorCursor;
|
||||
SetCursorPositionProcPtr SetCursorPosition;
|
||||
|
||||
/* GC procedures */
|
||||
|
||||
CreateGCProcPtr CreateGC;
|
||||
|
||||
/* Colormap procedures */
|
||||
|
||||
CreateColormapProcPtr CreateColormap;
|
||||
DestroyColormapProcPtr DestroyColormap;
|
||||
InstallColormapProcPtr InstallColormap;
|
||||
UninstallColormapProcPtr UninstallColormap;
|
||||
ListInstalledColormapsProcPtr ListInstalledColormaps;
|
||||
StoreColorsProcPtr StoreColors;
|
||||
ResolveColorProcPtr ResolveColor;
|
||||
|
||||
/* Region procedures */
|
||||
|
||||
#ifdef NEED_SCREEN_REGIONS
|
||||
RegionCreateProcPtr RegionCreate;
|
||||
RegionInitProcPtr RegionInit;
|
||||
RegionCopyProcPtr RegionCopy;
|
||||
RegionDestroyProcPtr RegionDestroy;
|
||||
RegionUninitProcPtr RegionUninit;
|
||||
IntersectProcPtr Intersect;
|
||||
UnionProcPtr Union;
|
||||
SubtractProcPtr Subtract;
|
||||
InverseProcPtr Inverse;
|
||||
RegionResetProcPtr RegionReset;
|
||||
TranslateRegionProcPtr TranslateRegion;
|
||||
RectInProcPtr RectIn;
|
||||
PointInRegionProcPtr PointInRegion;
|
||||
RegionNotEmptyProcPtr RegionNotEmpty;
|
||||
RegionEqualProcPtr RegionEqual;
|
||||
RegionBrokenProcPtr RegionBroken;
|
||||
RegionBreakProcPtr RegionBreak;
|
||||
RegionEmptyProcPtr RegionEmpty;
|
||||
RegionExtentsProcPtr RegionExtents;
|
||||
RegionAppendProcPtr RegionAppend;
|
||||
RegionValidateProcPtr RegionValidate;
|
||||
#endif /* NEED_SCREEN_REGIONS */
|
||||
BitmapToRegionProcPtr BitmapToRegion;
|
||||
#ifdef NEED_SCREEN_REGIONS
|
||||
RectsToRegionProcPtr RectsToRegion;
|
||||
#endif /* NEED_SCREEN_REGIONS */
|
||||
SendGraphicsExposeProcPtr SendGraphicsExpose;
|
||||
|
||||
/* os layer procedures */
|
||||
|
||||
ScreenBlockHandlerProcPtr BlockHandler;
|
||||
ScreenWakeupHandlerProcPtr WakeupHandler;
|
||||
|
||||
void * blockData;
|
||||
void * wakeupData;
|
||||
|
||||
/* anybody can get a piece of this array */
|
||||
DevUnion *devPrivates;
|
||||
|
||||
CreateScreenResourcesProcPtr CreateScreenResources;
|
||||
ModifyPixmapHeaderProcPtr ModifyPixmapHeader;
|
||||
|
||||
GetWindowPixmapProcPtr GetWindowPixmap;
|
||||
SetWindowPixmapProcPtr SetWindowPixmap;
|
||||
GetScreenPixmapProcPtr GetScreenPixmap;
|
||||
SetScreenPixmapProcPtr SetScreenPixmap;
|
||||
|
||||
PixmapPtr pScratchPixmap; /* scratch pixmap "pool" */
|
||||
|
||||
#ifdef PIXPRIV
|
||||
int PixmapPrivateLen;
|
||||
unsigned int *PixmapPrivateSizes;
|
||||
unsigned int totalPixmapSize;
|
||||
#endif
|
||||
|
||||
MarkWindowProcPtr MarkWindow;
|
||||
MarkOverlappedWindowsProcPtr MarkOverlappedWindows;
|
||||
ChangeSaveUnderProcPtr ChangeSaveUnder;
|
||||
PostChangeSaveUnderProcPtr PostChangeSaveUnder;
|
||||
MoveWindowProcPtr MoveWindow;
|
||||
ResizeWindowProcPtr ResizeWindow;
|
||||
GetLayerWindowProcPtr GetLayerWindow;
|
||||
HandleExposuresProcPtr HandleExposures;
|
||||
ReparentWindowProcPtr ReparentWindow;
|
||||
|
||||
#ifdef SHAPE
|
||||
SetShapeProcPtr SetShape;
|
||||
#endif /* SHAPE */
|
||||
|
||||
ChangeBorderWidthProcPtr ChangeBorderWidth;
|
||||
MarkUnrealizedWindowProcPtr MarkUnrealizedWindow;
|
||||
|
||||
ReplaceScanoutPixmapProcPtr ReplaceScanoutPixmap;
|
||||
} ScreenRec;
|
||||
|
||||
static inline RegionPtr BitmapToRegion(ScreenPtr _pScreen, PixmapPtr pPix) {
|
||||
return (*(_pScreen)->BitmapToRegion)(pPix); /* no mi version?! */
|
||||
}
|
||||
|
||||
typedef struct _ScreenInfo {
|
||||
int imageByteOrder;
|
||||
int bitmapScanlineUnit;
|
||||
int bitmapScanlinePad;
|
||||
int bitmapBitOrder;
|
||||
int numPixmapFormats;
|
||||
PixmapFormatRec
|
||||
formats[MAXFORMATS];
|
||||
int arraySize;
|
||||
int numScreens;
|
||||
ScreenPtr screens[MAXSCREENS];
|
||||
int unused;
|
||||
} ScreenInfo;
|
||||
|
||||
extern ScreenInfo screenInfo;
|
||||
|
||||
extern void InitOutput(
|
||||
ScreenInfo * /*pScreenInfo*/,
|
||||
int /*argc*/,
|
||||
char ** /*argv*/);
|
||||
|
||||
#endif /* SCREENINTSTRUCT_H */
|
||||
68
nx-X11/programs/Xserver/include/selection.h
Normal file
68
nx-X11/programs/Xserver/include/selection.h
Normal file
@@ -0,0 +1,68 @@
|
||||
|
||||
#ifndef SELECTION_H
|
||||
#define SELECTION_H 1
|
||||
|
||||
/***********************************************************
|
||||
|
||||
Copyright 1987, 1998 The Open Group
|
||||
|
||||
Permission to use, copy, modify, distribute, and sell this software and its
|
||||
documentation for any purpose is hereby granted without fee, provided that
|
||||
the above copyright notice appear in all copies and that both that
|
||||
copyright notice and this permission notice appear in supporting
|
||||
documentation.
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name of The Open Group shall not be
|
||||
used in advertising or otherwise to promote the sale, use or other dealings
|
||||
in this Software without prior written authorization from The Open Group.
|
||||
|
||||
|
||||
Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
|
||||
|
||||
All Rights Reserved
|
||||
|
||||
Permission to use, copy, modify, and distribute this software and its
|
||||
documentation for any purpose and without fee is hereby granted,
|
||||
provided that the above copyright notice appear in all copies and that
|
||||
both that copyright notice and this permission notice appear in
|
||||
supporting documentation, and that the name of Digital not be
|
||||
used in advertising or publicity pertaining to distribution of the
|
||||
software without specific, written prior permission.
|
||||
|
||||
DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
|
||||
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
|
||||
DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
|
||||
ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
||||
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
|
||||
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
SOFTWARE.
|
||||
|
||||
******************************************************************/
|
||||
|
||||
#include "dixstruct.h"
|
||||
/*
|
||||
*
|
||||
* Selection data structures
|
||||
*/
|
||||
|
||||
typedef struct _Selection {
|
||||
Atom selection;
|
||||
TimeStamp lastTimeChanged;
|
||||
Window window;
|
||||
WindowPtr pWin;
|
||||
ClientPtr client;
|
||||
} Selection;
|
||||
|
||||
#endif /* SELECTION_H */
|
||||
|
||||
|
||||
128
nx-X11/programs/Xserver/include/servermd.h
Normal file
128
nx-X11/programs/Xserver/include/servermd.h
Normal file
@@ -0,0 +1,128 @@
|
||||
/***********************************************************
|
||||
|
||||
Copyright 1987, 1998 The Open Group
|
||||
|
||||
Permission to use, copy, modify, distribute, and sell this software and its
|
||||
documentation for any purpose is hereby granted without fee, provided that
|
||||
the above copyright notice appear in all copies and that both that
|
||||
copyright notice and this permission notice appear in supporting
|
||||
documentation.
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name of The Open Group shall not be
|
||||
used in advertising or otherwise to promote the sale, use or other dealings
|
||||
in this Software without prior written authorization from The Open Group.
|
||||
|
||||
|
||||
Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
|
||||
|
||||
All Rights Reserved
|
||||
|
||||
Permission to use, copy, modify, and distribute this software and its
|
||||
documentation for any purpose and without fee is hereby granted,
|
||||
provided that the above copyright notice appear in all copies and that
|
||||
both that copyright notice and this permission notice appear in
|
||||
supporting documentation, and that the name of Digital not be
|
||||
used in advertising or publicity pertaining to distribution of the
|
||||
software without specific, written prior permission.
|
||||
|
||||
DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
|
||||
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
|
||||
DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
|
||||
ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
||||
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
|
||||
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
SOFTWARE.
|
||||
|
||||
******************************************************************/
|
||||
|
||||
#ifndef SERVERMD_H
|
||||
#define SERVERMD_H 1
|
||||
|
||||
#include <nx-X11/Xarch.h> /* for X_LITTLE_ENDIAN/X_BIG_ENDIAN */
|
||||
|
||||
#if X_BYTE_ORDER == X_LITTLE_ENDIAN
|
||||
#define IMAGE_BYTE_ORDER LSBFirst
|
||||
#define BITMAP_BIT_ORDER LSBFirst
|
||||
#elif X_BYTE_ORDER == X_BIG_ENDIAN
|
||||
#define IMAGE_BYTE_ORDER MSBFirst
|
||||
#define BITMAP_BIT_ORDER MSBFirst
|
||||
#else
|
||||
#error "Too weird to live."
|
||||
#endif
|
||||
|
||||
#ifndef GLYPHPADBYTES
|
||||
#define GLYPHPADBYTES 4
|
||||
#endif
|
||||
|
||||
/* size of buffer to use with GetImage, measured in bytes. There's obviously
|
||||
* a trade-off between the amount of stack (or whatever ALLOCATE_LOCAL gives
|
||||
* you) used and the number of times the ddx routine has to be called.
|
||||
*/
|
||||
#ifndef IMAGE_BUFSIZE
|
||||
#define IMAGE_BUFSIZE (64*1024)
|
||||
#endif
|
||||
|
||||
/* pad scanline to a longword */
|
||||
#ifndef BITMAP_SCANLINE_UNIT
|
||||
#define BITMAP_SCANLINE_UNIT 32
|
||||
#endif
|
||||
|
||||
#ifndef BITMAP_SCANLINE_PAD
|
||||
#define BITMAP_SCANLINE_PAD 32
|
||||
#define LOG2_BITMAP_PAD 5
|
||||
#define LOG2_BYTES_PER_SCANLINE_PAD 2
|
||||
#endif
|
||||
|
||||
/*
|
||||
* This returns the number of padding units, for depth d and width w.
|
||||
* For bitmaps this can be calculated with the macros above.
|
||||
* Other depths require either grovelling over the formats field of the
|
||||
* screenInfo or hardwired constants.
|
||||
*/
|
||||
|
||||
typedef struct _PaddingInfo {
|
||||
int padRoundUp; /* pixels per pad unit - 1 */
|
||||
int padPixelsLog2; /* log 2 (pixels per pad unit) */
|
||||
int padBytesLog2; /* log 2 (bytes per pad unit) */
|
||||
int notPower2; /* bitsPerPixel not a power of 2 */
|
||||
int bytesPerPixel; /* only set when notPower2 is TRUE */
|
||||
int bitsPerPixel; /* bits per pixel */
|
||||
} PaddingInfo;
|
||||
extern PaddingInfo PixmapWidthPaddingInfo[];
|
||||
|
||||
/* The only portable way to get the bpp from the depth is to look it up */
|
||||
#define BitsPerPixel(d) (PixmapWidthPaddingInfo[d].bitsPerPixel)
|
||||
|
||||
#define PixmapWidthInPadUnits(w, d) \
|
||||
(PixmapWidthPaddingInfo[d].notPower2 ? \
|
||||
(((int)(w) * PixmapWidthPaddingInfo[d].bytesPerPixel + \
|
||||
PixmapWidthPaddingInfo[d].bytesPerPixel) >> \
|
||||
PixmapWidthPaddingInfo[d].padBytesLog2) : \
|
||||
((int)((w) + PixmapWidthPaddingInfo[d].padRoundUp) >> \
|
||||
PixmapWidthPaddingInfo[d].padPixelsLog2))
|
||||
|
||||
/*
|
||||
* Return the number of bytes to which a scanline of the given
|
||||
* depth and width will be padded.
|
||||
*/
|
||||
#define PixmapBytePad(w, d) \
|
||||
(PixmapWidthInPadUnits(w, d) << PixmapWidthPaddingInfo[d].padBytesLog2)
|
||||
|
||||
#define BitmapBytePad(w) \
|
||||
(((int)((w) + BITMAP_SCANLINE_PAD - 1) >> LOG2_BITMAP_PAD) << LOG2_BYTES_PER_SCANLINE_PAD)
|
||||
|
||||
#define PixmapWidthInPadUnitsProto(w, d) PixmapWidthInPadUnits(w, d)
|
||||
#define PixmapBytePadProto(w, d) PixmapBytePad(w, d)
|
||||
#define BitmapBytePadProto(w) BitmapBytePad(w)
|
||||
|
||||
#endif /* SERVERMD_H */
|
||||
133
nx-X11/programs/Xserver/include/site.h
Normal file
133
nx-X11/programs/Xserver/include/site.h
Normal file
@@ -0,0 +1,133 @@
|
||||
/************************************************************
|
||||
|
||||
Copyright 1987, 1998 The Open Group
|
||||
|
||||
Permission to use, copy, modify, distribute, and sell this software and its
|
||||
documentation for any purpose is hereby granted without fee, provided that
|
||||
the above copyright notice appear in all copies and that both that
|
||||
copyright notice and this permission notice appear in supporting
|
||||
documentation.
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name of The Open Group shall not be
|
||||
used in advertising or otherwise to promote the sale, use or other dealings
|
||||
in this Software without prior written authorization from The Open Group.
|
||||
|
||||
|
||||
Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
|
||||
|
||||
All Rights Reserved
|
||||
|
||||
Permission to use, copy, modify, and distribute this software and its
|
||||
documentation for any purpose and without fee is hereby granted,
|
||||
provided that the above copyright notice appear in all copies and that
|
||||
both that copyright notice and this permission notice appear in
|
||||
supporting documentation, and that the name of Digital not be
|
||||
used in advertising or publicity pertaining to distribution of the
|
||||
software without specific, written prior permission.
|
||||
|
||||
DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
|
||||
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
|
||||
DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
|
||||
ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
||||
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
|
||||
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
SOFTWARE.
|
||||
|
||||
********************************************************/
|
||||
|
||||
#ifndef SITE_H
|
||||
#define SITE_H
|
||||
/*
|
||||
* The vendor string identifies the vendor responsible for the
|
||||
* server executable.
|
||||
*/
|
||||
#ifndef VENDOR_STRING
|
||||
#define VENDOR_STRING "The X.Org Group"
|
||||
#endif
|
||||
|
||||
/*
|
||||
* The vendor release number identifies, for the purpose of submitting
|
||||
* traceable bug reports, the release number of software produced
|
||||
* by the vendor.
|
||||
*/
|
||||
#ifndef VENDOR_RELEASE
|
||||
#define VENDOR_RELEASE 6600
|
||||
#endif
|
||||
|
||||
/*
|
||||
* The following constant is provided solely as a last line of defense. The
|
||||
* normal build ALWAYS overrides it using a special rule given in
|
||||
* server/dix/Imakefile. If you want to change this constant, you should set
|
||||
* the DefaultFontPath configuration parameter.
|
||||
* DO NOT CHANGE THESE VALUES OR THE DIX IMAKEFILE!
|
||||
*/
|
||||
#ifndef COMPILEDDEFAULTFONTPATH
|
||||
#define COMPILEDDEFAULTFONTPATH "/usr/lib/X11/fonts/misc/"
|
||||
#endif
|
||||
|
||||
/*
|
||||
* The following constants contain default values for all of the variables
|
||||
* that can be initialized on the server command line or in the environment.
|
||||
*/
|
||||
#define COMPILEDDEFAULTFONT "fixed"
|
||||
#define COMPILEDCURSORFONT "cursor"
|
||||
#ifndef COMPILEDDISPLAYCLASS
|
||||
#define COMPILEDDISPLAYCLASS "MIT-unspecified"
|
||||
#endif
|
||||
#define DEFAULT_TIMEOUT 60 /* seconds */
|
||||
#define DEFAULT_KEYBOARD_CLICK 0
|
||||
#define DEFAULT_BELL 50
|
||||
#define DEFAULT_BELL_PITCH 400
|
||||
#define DEFAULT_BELL_DURATION 100
|
||||
#ifdef XKB
|
||||
#define DEFAULT_AUTOREPEAT TRUE
|
||||
#else
|
||||
#define DEFAULT_AUTOREPEAT FALSE
|
||||
#endif
|
||||
#define DEFAULT_AUTOREPEATS {\
|
||||
0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,\
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,\
|
||||
0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
|
||||
|
||||
#define DEFAULT_LEDS 0x0 /* all off */
|
||||
#define DEFAULT_LEDS_MASK 0xffffffff /* 32 */
|
||||
#define DEFAULT_INT_RESOLUTION 1000
|
||||
#define DEFAULT_INT_MIN_VALUE 0
|
||||
#define DEFAULT_INT_MAX_VALUE 100
|
||||
#define DEFAULT_INT_DISPLAYED 0
|
||||
|
||||
#define DEFAULT_PTR_NUMERATOR 2
|
||||
#define DEFAULT_PTR_DENOMINATOR 1
|
||||
#define DEFAULT_PTR_THRESHOLD 4
|
||||
|
||||
#define DEFAULT_SCREEN_SAVER_TIME (10 * (60 * 1000))
|
||||
#define DEFAULT_SCREEN_SAVER_INTERVAL (10 * (60 * 1000))
|
||||
#define DEFAULT_SCREEN_SAVER_BLANKING PreferBlanking
|
||||
#define DEFAULT_SCREEN_SAVER_EXPOSURES AllowExposures
|
||||
#ifndef NOLOGOHACK
|
||||
#define DEFAULT_LOGO_SCREEN_SAVER 1
|
||||
#endif
|
||||
#ifndef DEFAULT_ACCESS_CONTROL
|
||||
#define DEFAULT_ACCESS_CONTROL TRUE
|
||||
#endif
|
||||
|
||||
/* Default logging parameters. */
|
||||
#ifndef DEFAULT_LOG_VERBOSITY
|
||||
#define DEFAULT_LOG_VERBOSITY 0
|
||||
#endif
|
||||
#ifndef DEFAULT_LOG_FILE_VERBOSITY
|
||||
#define DEFAULT_LOG_FILE_VERBOSITY 3
|
||||
#endif
|
||||
|
||||
#endif /* SITE_H */
|
||||
310
nx-X11/programs/Xserver/include/swaprep.h
Normal file
310
nx-X11/programs/Xserver/include/swaprep.h
Normal file
@@ -0,0 +1,310 @@
|
||||
/************************************************************
|
||||
|
||||
Copyright 1996 by Thomas E. Dickey <dickey@clark.net>
|
||||
|
||||
All Rights Reserved
|
||||
|
||||
Permission to use, copy, modify, and distribute this software and its
|
||||
documentation for any purpose and without fee is hereby granted,
|
||||
provided that the above copyright notice appear in all copies and that
|
||||
both that copyright notice and this permission notice appear in
|
||||
supporting documentation, and that the name of the above listed
|
||||
copyright holder(s) not be used in advertising or publicity pertaining
|
||||
to distribution of the software without specific, written prior
|
||||
permission.
|
||||
|
||||
THE ABOVE LISTED COPYRIGHT HOLDER(S) DISCLAIM ALL WARRANTIES WITH REGARD
|
||||
TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
AND FITNESS, IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE
|
||||
LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
********************************************************/
|
||||
|
||||
#ifndef SWAPREP_H
|
||||
#define SWAPREP_H 1
|
||||
|
||||
extern void Swap32Write(
|
||||
ClientPtr /* pClient */,
|
||||
int /* size */,
|
||||
CARD32 * /* pbuf */);
|
||||
|
||||
extern void CopySwap32Write(
|
||||
ClientPtr /* pClient */,
|
||||
int /* size */,
|
||||
CARD32 * /* pbuf */);
|
||||
|
||||
extern void CopySwap16Write(
|
||||
ClientPtr /* pClient */,
|
||||
int /* size */,
|
||||
short * /* pbuf */);
|
||||
|
||||
extern void SGenericReply(
|
||||
ClientPtr /* pClient */,
|
||||
int /* size */,
|
||||
xGenericReply * /* pRep */);
|
||||
|
||||
extern void SGetWindowAttributesReply(
|
||||
ClientPtr /* pClient */,
|
||||
int /* size */,
|
||||
xGetWindowAttributesReply * /* pRep */);
|
||||
|
||||
extern void SGetGeometryReply(
|
||||
ClientPtr /* pClient */,
|
||||
int /* size */,
|
||||
xGetGeometryReply * /* pRep */);
|
||||
|
||||
extern void SQueryTreeReply(
|
||||
ClientPtr /* pClient */,
|
||||
int /* size */,
|
||||
xQueryTreeReply * /* pRep */);
|
||||
|
||||
extern void SInternAtomReply(
|
||||
ClientPtr /* pClient */,
|
||||
int /* size */,
|
||||
xInternAtomReply * /* pRep */);
|
||||
|
||||
extern void SGetAtomNameReply(
|
||||
ClientPtr /* pClient */,
|
||||
int /* size */,
|
||||
xGetAtomNameReply * /* pRep */);
|
||||
|
||||
extern void SGetPropertyReply(
|
||||
ClientPtr /* pClient */,
|
||||
int /* size */,
|
||||
xGetPropertyReply * /* pRep */);
|
||||
|
||||
extern void SListPropertiesReply(
|
||||
ClientPtr /* pClient */,
|
||||
int /* size */,
|
||||
xListPropertiesReply * /* pRep */);
|
||||
|
||||
extern void SGetSelectionOwnerReply(
|
||||
ClientPtr /* pClient */,
|
||||
int /* size */,
|
||||
xGetSelectionOwnerReply * /* pRep */);
|
||||
|
||||
extern void SQueryPointerReply(
|
||||
ClientPtr /* pClient */,
|
||||
int /* size */,
|
||||
xQueryPointerReply * /* pRep */);
|
||||
|
||||
extern void SwapTimecoord(
|
||||
xTimecoord * /* pCoord */);
|
||||
|
||||
extern void SwapTimeCoordWrite(
|
||||
ClientPtr /* pClient */,
|
||||
int /* size */,
|
||||
xTimecoord * /* pRep */);
|
||||
|
||||
extern void SGetMotionEventsReply(
|
||||
ClientPtr /* pClient */,
|
||||
int /* size */,
|
||||
xGetMotionEventsReply * /* pRep */);
|
||||
|
||||
extern void STranslateCoordsReply(
|
||||
ClientPtr /* pClient */,
|
||||
int /* size */,
|
||||
xTranslateCoordsReply * /* pRep */);
|
||||
|
||||
extern void SGetInputFocusReply(
|
||||
ClientPtr /* pClient */,
|
||||
int /* size */,
|
||||
xGetInputFocusReply * /* pRep */);
|
||||
|
||||
extern void SQueryKeymapReply(
|
||||
ClientPtr /* pClient */,
|
||||
int /* size */,
|
||||
xQueryKeymapReply * /* pRep */);
|
||||
|
||||
extern void SQueryFontReply(
|
||||
ClientPtr /* pClient */,
|
||||
int /* size */,
|
||||
xQueryFontReply * /* pRep */);
|
||||
|
||||
extern void SQueryTextExtentsReply(
|
||||
ClientPtr /* pClient */,
|
||||
int /* size */,
|
||||
xQueryTextExtentsReply * /* pRep */);
|
||||
|
||||
extern void SListFontsReply(
|
||||
ClientPtr /* pClient */,
|
||||
int /* size */,
|
||||
xListFontsReply * /* pRep */);
|
||||
|
||||
extern void SListFontsWithInfoReply(
|
||||
ClientPtr /* pClient */,
|
||||
int /* size */,
|
||||
xListFontsWithInfoReply * /* pRep */);
|
||||
|
||||
extern void SGetFontPathReply(
|
||||
ClientPtr /* pClient */,
|
||||
int /* size */,
|
||||
xGetFontPathReply * /* pRep */);
|
||||
|
||||
extern void SGetImageReply(
|
||||
ClientPtr /* pClient */,
|
||||
int /* size */,
|
||||
xGetImageReply * /* pRep */);
|
||||
|
||||
extern void SListInstalledColormapsReply(
|
||||
ClientPtr /* pClient */,
|
||||
int /* size */,
|
||||
xListInstalledColormapsReply * /* pRep */);
|
||||
|
||||
extern void SAllocColorReply(
|
||||
ClientPtr /* pClient */,
|
||||
int /* size */,
|
||||
xAllocColorReply * /* pRep */);
|
||||
|
||||
extern void SAllocNamedColorReply(
|
||||
ClientPtr /* pClient */,
|
||||
int /* size */,
|
||||
xAllocNamedColorReply * /* pRep */);
|
||||
|
||||
extern void SAllocColorCellsReply(
|
||||
ClientPtr /* pClient */,
|
||||
int /* size */,
|
||||
xAllocColorCellsReply * /* pRep */);
|
||||
|
||||
extern void SAllocColorPlanesReply(
|
||||
ClientPtr /* pClient */,
|
||||
int /* size */,
|
||||
xAllocColorPlanesReply * /* pRep */);
|
||||
|
||||
extern void SwapRGB(
|
||||
xrgb * /* prgb */);
|
||||
|
||||
extern void SQColorsExtend(
|
||||
ClientPtr /* pClient */,
|
||||
int /* size */,
|
||||
xrgb * /* prgb */);
|
||||
|
||||
extern void SQueryColorsReply(
|
||||
ClientPtr /* pClient */,
|
||||
int /* size */,
|
||||
xQueryColorsReply * /* pRep */);
|
||||
|
||||
extern void SLookupColorReply(
|
||||
ClientPtr /* pClient */,
|
||||
int /* size */,
|
||||
xLookupColorReply * /* pRep */);
|
||||
|
||||
extern void SQueryBestSizeReply(
|
||||
ClientPtr /* pClient */,
|
||||
int /* size */,
|
||||
xQueryBestSizeReply * /* pRep */);
|
||||
|
||||
extern void SListExtensionsReply(
|
||||
ClientPtr /* pClient */,
|
||||
int /* size */,
|
||||
xListExtensionsReply * /* pRep */);
|
||||
|
||||
extern void SGetKeyboardMappingReply(
|
||||
ClientPtr /* pClient */,
|
||||
int /* size */,
|
||||
xGetKeyboardMappingReply * /* pRep */);
|
||||
|
||||
extern void SGetPointerMappingReply(
|
||||
ClientPtr /* pClient */,
|
||||
int /* size */,
|
||||
xGetPointerMappingReply * /* pRep */);
|
||||
|
||||
extern void SGetModifierMappingReply(
|
||||
ClientPtr /* pClient */,
|
||||
int /* size */,
|
||||
xGetModifierMappingReply * /* pRep */);
|
||||
|
||||
extern void SGetKeyboardControlReply(
|
||||
ClientPtr /* pClient */,
|
||||
int /* size */,
|
||||
xGetKeyboardControlReply * /* pRep */);
|
||||
|
||||
extern void SGetPointerControlReply(
|
||||
ClientPtr /* pClient */,
|
||||
int /* size */,
|
||||
xGetPointerControlReply * /* pRep */);
|
||||
|
||||
extern void SGetScreenSaverReply(
|
||||
ClientPtr /* pClient */,
|
||||
int /* size */,
|
||||
xGetScreenSaverReply * /* pRep */);
|
||||
|
||||
extern void SLHostsExtend(
|
||||
ClientPtr /* pClient */,
|
||||
int /* size */,
|
||||
char * /* buf */);
|
||||
|
||||
extern void SListHostsReply(
|
||||
ClientPtr /* pClient */,
|
||||
int /* size */,
|
||||
xListHostsReply * /* pRep */);
|
||||
|
||||
extern void SErrorEvent(
|
||||
xError * /* from */,
|
||||
xError * /* to */);
|
||||
|
||||
extern void SwapConnSetupInfo(
|
||||
char * /* pInfo */,
|
||||
char * /* pInfoTBase */);
|
||||
|
||||
extern void WriteSConnectionInfo(
|
||||
ClientPtr /* pClient */,
|
||||
unsigned long /* size */,
|
||||
char * /* pInfo */);
|
||||
|
||||
extern void SwapConnSetup(
|
||||
xConnSetup * /* pConnSetup */,
|
||||
xConnSetup * /* pConnSetupT */);
|
||||
|
||||
extern void SwapWinRoot(
|
||||
xWindowRoot * /* pRoot */,
|
||||
xWindowRoot * /* pRootT */);
|
||||
|
||||
extern void SwapVisual(
|
||||
xVisualType * /* pVis */,
|
||||
xVisualType * /* pVisT */);
|
||||
|
||||
extern void SwapConnSetupPrefix(
|
||||
xConnSetupPrefix * /* pcspFrom */,
|
||||
xConnSetupPrefix * /* pcspTo */);
|
||||
|
||||
extern void WriteSConnSetupPrefix(
|
||||
ClientPtr /* pClient */,
|
||||
xConnSetupPrefix * /* pcsp */);
|
||||
|
||||
#undef SWAPREP_PROC
|
||||
#define SWAPREP_PROC(func) void func(xEvent * /* from */, xEvent * /* to */)
|
||||
|
||||
SWAPREP_PROC(SCirculateEvent);
|
||||
SWAPREP_PROC(SClientMessageEvent);
|
||||
SWAPREP_PROC(SColormapEvent);
|
||||
SWAPREP_PROC(SConfigureNotifyEvent);
|
||||
SWAPREP_PROC(SConfigureRequestEvent);
|
||||
SWAPREP_PROC(SCreateNotifyEvent);
|
||||
SWAPREP_PROC(SDestroyNotifyEvent);
|
||||
SWAPREP_PROC(SEnterLeaveEvent);
|
||||
SWAPREP_PROC(SExposeEvent);
|
||||
SWAPREP_PROC(SFocusEvent);
|
||||
SWAPREP_PROC(SGraphicsExposureEvent);
|
||||
SWAPREP_PROC(SGravityEvent);
|
||||
SWAPREP_PROC(SKeyButtonPtrEvent);
|
||||
SWAPREP_PROC(SKeymapNotifyEvent);
|
||||
SWAPREP_PROC(SMapNotifyEvent);
|
||||
SWAPREP_PROC(SMapRequestEvent);
|
||||
SWAPREP_PROC(SMappingEvent);
|
||||
SWAPREP_PROC(SNoExposureEvent);
|
||||
SWAPREP_PROC(SPropertyEvent);
|
||||
SWAPREP_PROC(SReparentEvent);
|
||||
SWAPREP_PROC(SResizeRequestEvent);
|
||||
SWAPREP_PROC(SSelectionClearEvent);
|
||||
SWAPREP_PROC(SSelectionNotifyEvent);
|
||||
SWAPREP_PROC(SSelectionRequestEvent);
|
||||
SWAPREP_PROC(SUnmapNotifyEvent);
|
||||
SWAPREP_PROC(SVisibilityEvent);
|
||||
|
||||
#undef SWAPREP_PROC
|
||||
|
||||
#endif /* SWAPREP_H */
|
||||
119
nx-X11/programs/Xserver/include/swapreq.h
Normal file
119
nx-X11/programs/Xserver/include/swapreq.h
Normal file
@@ -0,0 +1,119 @@
|
||||
/************************************************************
|
||||
|
||||
Copyright 1996 by Thomas E. Dickey <dickey@clark.net>
|
||||
|
||||
All Rights Reserved
|
||||
|
||||
Permission to use, copy, modify, and distribute this software and its
|
||||
documentation for any purpose and without fee is hereby granted,
|
||||
provided that the above copyright notice appear in all copies and that
|
||||
both that copyright notice and this permission notice appear in
|
||||
supporting documentation, and that the name of the above listed
|
||||
copyright holder(s) not be used in advertising or publicity pertaining
|
||||
to distribution of the software without specific, written prior
|
||||
permission.
|
||||
|
||||
THE ABOVE LISTED COPYRIGHT HOLDER(S) DISCLAIM ALL WARRANTIES WITH REGARD
|
||||
TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
AND FITNESS, IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE
|
||||
LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
********************************************************/
|
||||
|
||||
#ifndef SWAPREQ_H
|
||||
#define SWAPREQ_H 1
|
||||
|
||||
/* The first two are in misc.h */
|
||||
#if 0
|
||||
extern void SwapLongs (
|
||||
CARD32 * /* list */,
|
||||
unsigned long /* count */);
|
||||
|
||||
extern void SwapShorts (
|
||||
short * /* list */,
|
||||
unsigned long /* count */);
|
||||
#endif
|
||||
|
||||
extern void SwapColorItem(
|
||||
xColorItem * /* pItem */);
|
||||
|
||||
extern void SwapConnClientPrefix(
|
||||
xConnClientPrefix * /* pCCP */);
|
||||
|
||||
#undef SWAPREQ_PROC
|
||||
|
||||
#define SWAPREQ_PROC(func) int func(ClientPtr /* client */)
|
||||
|
||||
SWAPREQ_PROC(SProcAllocColor);
|
||||
SWAPREQ_PROC(SProcAllocColorCells);
|
||||
SWAPREQ_PROC(SProcAllocColorPlanes);
|
||||
SWAPREQ_PROC(SProcAllocNamedColor);
|
||||
SWAPREQ_PROC(SProcChangeActivePointerGrab);
|
||||
SWAPREQ_PROC(SProcChangeGC);
|
||||
SWAPREQ_PROC(SProcChangeHosts);
|
||||
SWAPREQ_PROC(SProcChangeKeyboardControl);
|
||||
SWAPREQ_PROC(SProcChangeKeyboardMapping);
|
||||
SWAPREQ_PROC(SProcChangePointerControl);
|
||||
SWAPREQ_PROC(SProcChangeProperty);
|
||||
SWAPREQ_PROC(SProcChangeWindowAttributes);
|
||||
SWAPREQ_PROC(SProcClearToBackground);
|
||||
SWAPREQ_PROC(SProcConfigureWindow);
|
||||
SWAPREQ_PROC(SProcConvertSelection);
|
||||
SWAPREQ_PROC(SProcCopyArea);
|
||||
SWAPREQ_PROC(SProcCopyColormapAndFree);
|
||||
SWAPREQ_PROC(SProcCopyGC);
|
||||
SWAPREQ_PROC(SProcCopyPlane);
|
||||
SWAPREQ_PROC(SProcCreateColormap);
|
||||
SWAPREQ_PROC(SProcCreateCursor);
|
||||
SWAPREQ_PROC(SProcCreateGC);
|
||||
SWAPREQ_PROC(SProcCreateGlyphCursor);
|
||||
SWAPREQ_PROC(SProcCreatePixmap);
|
||||
SWAPREQ_PROC(SProcCreateWindow);
|
||||
SWAPREQ_PROC(SProcDeleteProperty);
|
||||
SWAPREQ_PROC(SProcFillPoly);
|
||||
SWAPREQ_PROC(SProcFreeColors);
|
||||
SWAPREQ_PROC(SProcGetImage);
|
||||
SWAPREQ_PROC(SProcGetMotionEvents);
|
||||
SWAPREQ_PROC(SProcGetProperty);
|
||||
SWAPREQ_PROC(SProcGrabButton);
|
||||
SWAPREQ_PROC(SProcGrabKey);
|
||||
SWAPREQ_PROC(SProcGrabKeyboard);
|
||||
SWAPREQ_PROC(SProcGrabPointer);
|
||||
SWAPREQ_PROC(SProcImageText);
|
||||
SWAPREQ_PROC(SProcInternAtom);
|
||||
SWAPREQ_PROC(SProcListFonts);
|
||||
SWAPREQ_PROC(SProcListFontsWithInfo);
|
||||
SWAPREQ_PROC(SProcLookupColor);
|
||||
SWAPREQ_PROC(SProcNoOperation);
|
||||
SWAPREQ_PROC(SProcOpenFont);
|
||||
SWAPREQ_PROC(SProcPoly);
|
||||
SWAPREQ_PROC(SProcPolyText);
|
||||
SWAPREQ_PROC(SProcPutImage);
|
||||
SWAPREQ_PROC(SProcQueryBestSize);
|
||||
SWAPREQ_PROC(SProcQueryColors);
|
||||
SWAPREQ_PROC(SProcQueryExtension);
|
||||
SWAPREQ_PROC(SProcRecolorCursor);
|
||||
SWAPREQ_PROC(SProcReparentWindow);
|
||||
SWAPREQ_PROC(SProcResourceReq);
|
||||
SWAPREQ_PROC(SProcRotateProperties);
|
||||
SWAPREQ_PROC(SProcSendEvent);
|
||||
SWAPREQ_PROC(SProcSetClipRectangles);
|
||||
SWAPREQ_PROC(SProcSetDashes);
|
||||
SWAPREQ_PROC(SProcSetFontPath);
|
||||
SWAPREQ_PROC(SProcSetInputFocus);
|
||||
SWAPREQ_PROC(SProcSetScreenSaver);
|
||||
SWAPREQ_PROC(SProcSetSelectionOwner);
|
||||
SWAPREQ_PROC(SProcSimpleReq);
|
||||
SWAPREQ_PROC(SProcStoreColors);
|
||||
SWAPREQ_PROC(SProcStoreNamedColor);
|
||||
SWAPREQ_PROC(SProcTranslateCoords);
|
||||
SWAPREQ_PROC(SProcUngrabButton);
|
||||
SWAPREQ_PROC(SProcUngrabKey);
|
||||
SWAPREQ_PROC(SProcWarpPointer);
|
||||
|
||||
#undef SWAPREQ_PROC
|
||||
|
||||
#endif /* SWAPREQ_H */
|
||||
40
nx-X11/programs/Xserver/include/validate.h
Normal file
40
nx-X11/programs/Xserver/include/validate.h
Normal file
@@ -0,0 +1,40 @@
|
||||
|
||||
/*
|
||||
|
||||
Copyright 1989, 1998 The Open Group
|
||||
|
||||
Permission to use, copy, modify, distribute, and sell this software and its
|
||||
documentation for any purpose is hereby granted without fee, provided that
|
||||
the above copyright notice appear in all copies and that both that
|
||||
copyright notice and this permission notice appear in supporting
|
||||
documentation.
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name of The Open Group shall not be
|
||||
used in advertising or otherwise to promote the sale, use or other dealings
|
||||
in this Software without prior written authorization from The Open Group.
|
||||
*/
|
||||
|
||||
#ifndef VALIDATE_H
|
||||
#define VALIDATE_H
|
||||
|
||||
#include "miscstruct.h"
|
||||
#include "regionstr.h"
|
||||
|
||||
typedef enum { VTOther, VTStack, VTMove, VTUnmap, VTMap, VTBroken } VTKind;
|
||||
|
||||
/* union _Validate is now device dependent; see mivalidate.h for an example */
|
||||
typedef union _Validate *ValidatePtr;
|
||||
|
||||
#define UnmapValData ((ValidatePtr)1)
|
||||
|
||||
#endif /* VALIDATE_H */
|
||||
274
nx-X11/programs/Xserver/include/window.h
Normal file
274
nx-X11/programs/Xserver/include/window.h
Normal file
@@ -0,0 +1,274 @@
|
||||
/***********************************************************
|
||||
|
||||
Copyright 1987, 1998 The Open Group
|
||||
|
||||
Permission to use, copy, modify, distribute, and sell this software and its
|
||||
documentation for any purpose is hereby granted without fee, provided that
|
||||
the above copyright notice appear in all copies and that both that
|
||||
copyright notice and this permission notice appear in supporting
|
||||
documentation.
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name of The Open Group shall not be
|
||||
used in advertising or otherwise to promote the sale, use or other dealings
|
||||
in this Software without prior written authorization from The Open Group.
|
||||
|
||||
|
||||
Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
|
||||
|
||||
All Rights Reserved
|
||||
|
||||
Permission to use, copy, modify, and distribute this software and its
|
||||
documentation for any purpose and without fee is hereby granted,
|
||||
provided that the above copyright notice appear in all copies and that
|
||||
both that copyright notice and this permission notice appear in
|
||||
supporting documentation, and that the name of Digital not be
|
||||
used in advertising or publicity pertaining to distribution of the
|
||||
software without specific, written prior permission.
|
||||
|
||||
DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
|
||||
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
|
||||
DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
|
||||
ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
||||
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
|
||||
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
SOFTWARE.
|
||||
|
||||
******************************************************************/
|
||||
|
||||
#ifndef WINDOW_H
|
||||
#define WINDOW_H
|
||||
|
||||
#include "misc.h"
|
||||
#include "region.h"
|
||||
#include "screenint.h"
|
||||
#include <nx-X11/Xproto.h>
|
||||
|
||||
#define TOTALLY_OBSCURED 0
|
||||
#define UNOBSCURED 1
|
||||
#define OBSCURED 2
|
||||
|
||||
#define VisibilityNotViewable 3
|
||||
|
||||
/* return values for tree-walking callback procedures */
|
||||
#define WT_STOPWALKING 0
|
||||
#define WT_WALKCHILDREN 1
|
||||
#define WT_DONTWALKCHILDREN 2
|
||||
#define WT_NOMATCH 3
|
||||
#define NullWindow ((WindowPtr) 0)
|
||||
|
||||
typedef struct _BackingStore *BackingStorePtr;
|
||||
typedef struct _Window *WindowPtr;
|
||||
|
||||
typedef int (*VisitWindowProcPtr)(
|
||||
WindowPtr /*pWin*/,
|
||||
void * /*data*/);
|
||||
|
||||
extern int TraverseTree(
|
||||
WindowPtr /*pWin*/,
|
||||
VisitWindowProcPtr /*func*/,
|
||||
void * /*data*/);
|
||||
|
||||
extern int WalkTree(
|
||||
ScreenPtr /*pScreen*/,
|
||||
VisitWindowProcPtr /*func*/,
|
||||
void * /*data*/);
|
||||
|
||||
extern WindowPtr AllocateWindow(
|
||||
ScreenPtr /*pScreen*/);
|
||||
|
||||
extern Bool CreateRootWindow(
|
||||
ScreenPtr /*pScreen*/);
|
||||
|
||||
extern void InitRootWindow(
|
||||
WindowPtr /*pWin*/);
|
||||
|
||||
extern void ClippedRegionFromBox(
|
||||
WindowPtr /*pWin*/,
|
||||
RegionPtr /*Rgn*/,
|
||||
int /*x*/,
|
||||
int /*y*/,
|
||||
int /*w*/,
|
||||
int /*h*/);
|
||||
|
||||
typedef WindowPtr (* RealChildHeadProc) (WindowPtr pWin);
|
||||
|
||||
void RegisterRealChildHeadProc (RealChildHeadProc proc);
|
||||
|
||||
extern WindowPtr RealChildHead(
|
||||
WindowPtr /*pWin*/);
|
||||
|
||||
extern WindowPtr CreateWindow(
|
||||
Window /*wid*/,
|
||||
WindowPtr /*pParent*/,
|
||||
int /*x*/,
|
||||
int /*y*/,
|
||||
unsigned int /*w*/,
|
||||
unsigned int /*h*/,
|
||||
unsigned int /*bw*/,
|
||||
unsigned int /*class*/,
|
||||
Mask /*vmask*/,
|
||||
XID* /*vlist*/,
|
||||
int /*depth*/,
|
||||
ClientPtr /*client*/,
|
||||
VisualID /*visual*/,
|
||||
int* /*error*/);
|
||||
|
||||
extern int DeleteWindow(
|
||||
void * /*pWin*/,
|
||||
XID /*wid*/);
|
||||
|
||||
extern void DestroySubwindows(
|
||||
WindowPtr /*pWin*/,
|
||||
ClientPtr /*client*/);
|
||||
|
||||
/* Quartz support on Mac OS X uses the HIToolbox
|
||||
framework whose ChangeWindowAttributes function conflicts here. */
|
||||
#ifdef __DARWIN__
|
||||
#define ChangeWindowAttributes Darwin_X_ChangeWindowAttributes
|
||||
#endif
|
||||
extern int ChangeWindowAttributes(
|
||||
WindowPtr /*pWin*/,
|
||||
Mask /*vmask*/,
|
||||
XID* /*vlist*/,
|
||||
ClientPtr /*client*/);
|
||||
|
||||
/* Quartz support on Mac OS X uses the HIToolbox
|
||||
framework whose GetWindowAttributes function conflicts here. */
|
||||
#ifdef __DARWIN__
|
||||
#define GetWindowAttributes(w,c,x) Darwin_X_GetWindowAttributes(w,c,x)
|
||||
extern void Darwin_X_GetWindowAttributes(
|
||||
#else
|
||||
extern void GetWindowAttributes(
|
||||
#endif
|
||||
WindowPtr /*pWin*/,
|
||||
ClientPtr /*client*/,
|
||||
xGetWindowAttributesReply* /* wa */);
|
||||
|
||||
extern RegionPtr CreateUnclippedWinSize(
|
||||
WindowPtr /*pWin*/);
|
||||
|
||||
extern void GravityTranslate(
|
||||
int /*x*/,
|
||||
int /*y*/,
|
||||
int /*oldx*/,
|
||||
int /*oldy*/,
|
||||
int /*dw*/,
|
||||
int /*dh*/,
|
||||
unsigned /*gravity*/,
|
||||
int* /*destx*/,
|
||||
int* /*desty*/);
|
||||
|
||||
extern int ConfigureWindow(
|
||||
WindowPtr /*pWin*/,
|
||||
Mask /*mask*/,
|
||||
XID* /*vlist*/,
|
||||
ClientPtr /*client*/);
|
||||
|
||||
extern int CirculateWindow(
|
||||
WindowPtr /*pParent*/,
|
||||
int /*direction*/,
|
||||
ClientPtr /*client*/);
|
||||
|
||||
extern int ReparentWindow(
|
||||
WindowPtr /*pWin*/,
|
||||
WindowPtr /*pParent*/,
|
||||
int /*x*/,
|
||||
int /*y*/,
|
||||
ClientPtr /*client*/);
|
||||
|
||||
extern int MapWindow(
|
||||
WindowPtr /*pWin*/,
|
||||
ClientPtr /*client*/);
|
||||
|
||||
extern void MapSubwindows(
|
||||
WindowPtr /*pParent*/,
|
||||
ClientPtr /*client*/);
|
||||
|
||||
extern int UnmapWindow(
|
||||
WindowPtr /*pWin*/,
|
||||
Bool /*fromConfigure*/);
|
||||
|
||||
extern void UnmapSubwindows(
|
||||
WindowPtr /*pWin*/);
|
||||
|
||||
extern void HandleSaveSet(
|
||||
ClientPtr /*client*/);
|
||||
|
||||
extern Bool VisibleBoundingBoxFromPoint(
|
||||
WindowPtr /*pWin*/,
|
||||
int /*x*/,
|
||||
int /*y*/,
|
||||
BoxPtr /*box*/);
|
||||
|
||||
extern Bool PointInWindowIsVisible(
|
||||
WindowPtr /*pWin*/,
|
||||
int /*x*/,
|
||||
int /*y*/);
|
||||
|
||||
extern RegionPtr NotClippedByChildren(
|
||||
WindowPtr /*pWin*/);
|
||||
|
||||
extern void SendVisibilityNotify(
|
||||
WindowPtr /*pWin*/);
|
||||
|
||||
extern void SaveScreens(
|
||||
int /*on*/,
|
||||
int /*mode*/);
|
||||
|
||||
extern WindowPtr FindWindowWithOptional(
|
||||
WindowPtr /*w*/);
|
||||
|
||||
extern void CheckWindowOptionalNeed(
|
||||
WindowPtr /*w*/);
|
||||
|
||||
extern Bool MakeWindowOptional(
|
||||
WindowPtr /*pWin*/);
|
||||
|
||||
extern void DisposeWindowOptional(
|
||||
WindowPtr /*pWin*/);
|
||||
|
||||
extern WindowPtr MoveWindowInStack(
|
||||
WindowPtr /*pWin*/,
|
||||
WindowPtr /*pNextSib*/);
|
||||
|
||||
void SetWinSize(
|
||||
WindowPtr /*pWin*/);
|
||||
|
||||
void SetBorderSize(
|
||||
WindowPtr /*pWin*/);
|
||||
|
||||
void ResizeChildrenWinSize(
|
||||
WindowPtr /*pWin*/,
|
||||
int /*dx*/,
|
||||
int /*dy*/,
|
||||
int /*dw*/,
|
||||
int /*dh*/);
|
||||
|
||||
extern void SendShapeNotify(
|
||||
WindowPtr /* pWin */,
|
||||
int /* which */ );
|
||||
|
||||
extern RegionPtr CreateBoundingShape(
|
||||
WindowPtr /* pWin */ );
|
||||
|
||||
extern RegionPtr CreateClipShape(
|
||||
WindowPtr /* pWin */ );
|
||||
|
||||
extern void DisableMapUnmapEvents(
|
||||
WindowPtr /* pWin */ );
|
||||
extern void EnableMapUnmapEvents(
|
||||
WindowPtr /* pWin */ );
|
||||
extern Bool MapUnmapEventsEnabled(
|
||||
WindowPtr /* pWin */ );
|
||||
|
||||
#endif /* WINDOW_H */
|
||||
255
nx-X11/programs/Xserver/include/windowstr.h
Normal file
255
nx-X11/programs/Xserver/include/windowstr.h
Normal file
@@ -0,0 +1,255 @@
|
||||
/***********************************************************
|
||||
|
||||
Copyright 1987, 1998 The Open Group
|
||||
|
||||
Permission to use, copy, modify, distribute, and sell this software and its
|
||||
documentation for any purpose is hereby granted without fee, provided that
|
||||
the above copyright notice appear in all copies and that both that
|
||||
copyright notice and this permission notice appear in supporting
|
||||
documentation.
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name of The Open Group shall not be
|
||||
used in advertising or otherwise to promote the sale, use or other dealings
|
||||
in this Software without prior written authorization from The Open Group.
|
||||
|
||||
|
||||
Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
|
||||
|
||||
All Rights Reserved
|
||||
|
||||
Permission to use, copy, modify, and distribute this software and its
|
||||
documentation for any purpose and without fee is hereby granted,
|
||||
provided that the above copyright notice appear in all copies and that
|
||||
both that copyright notice and this permission notice appear in
|
||||
supporting documentation, and that the name of Digital not be
|
||||
used in advertising or publicity pertaining to distribution of the
|
||||
software without specific, written prior permission.
|
||||
|
||||
DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
|
||||
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
|
||||
DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
|
||||
ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
||||
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
|
||||
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
SOFTWARE.
|
||||
|
||||
******************************************************************/
|
||||
|
||||
#ifndef WINDOWSTRUCT_H
|
||||
#define WINDOWSTRUCT_H
|
||||
|
||||
#include "window.h"
|
||||
#include "pixmapstr.h"
|
||||
#include "regionstr.h"
|
||||
#include "cursor.h"
|
||||
#include "property.h"
|
||||
#include "resource.h" /* for ROOT_WINDOW_ID_BASE */
|
||||
#include "dix.h"
|
||||
#include "miscstruct.h"
|
||||
#include <nx-X11/Xprotostr.h>
|
||||
#include "opaque.h"
|
||||
|
||||
#define GuaranteeNothing 0
|
||||
#define GuaranteeVisBack 1
|
||||
|
||||
#define SameBackground(as, a, bs, b) \
|
||||
((as) == (bs) && ((as) == None || \
|
||||
(as) == ParentRelative || \
|
||||
SamePixUnion(a,b,as == BackgroundPixel)))
|
||||
|
||||
#define SameBorder(as, a, bs, b) \
|
||||
EqualPixUnion(as, a, bs, b)
|
||||
|
||||
typedef struct _WindowOpt {
|
||||
VisualID visual; /* default: same as parent */
|
||||
CursorPtr cursor; /* default: window.cursorNone */
|
||||
Colormap colormap; /* default: same as parent */
|
||||
Mask dontPropagateMask; /* default: window.dontPropagate */
|
||||
Mask otherEventMasks; /* default: 0 */
|
||||
struct _OtherClients *otherClients; /* default: NULL */
|
||||
struct _GrabRec *passiveGrabs; /* default: NULL */
|
||||
PropertyPtr userProps; /* default: NULL */
|
||||
unsigned long backingBitPlanes; /* default: ~0L */
|
||||
unsigned long backingPixel; /* default: 0 */
|
||||
#ifdef SHAPE
|
||||
RegionPtr boundingShape; /* default: NULL */
|
||||
RegionPtr clipShape; /* default: NULL */
|
||||
RegionPtr inputShape; /* default: NULL */
|
||||
#endif
|
||||
#ifdef XINPUT
|
||||
struct _OtherInputMasks *inputMasks; /* default: NULL */
|
||||
#endif
|
||||
} WindowOptRec, *WindowOptPtr;
|
||||
|
||||
#define BackgroundPixel 2L
|
||||
#define BackgroundPixmap 3L
|
||||
|
||||
/*
|
||||
* The redirectDraw field can have one of three values:
|
||||
*
|
||||
* RedirectDrawNone
|
||||
* A normal window; painted into the same pixmap as the parent
|
||||
* and clipping parent and siblings to its geometry. These
|
||||
* windows get a clip list equal to the intersection of their
|
||||
* geometry with the parent geometry, minus the geometry
|
||||
* of overlapping None and Clipped siblings.
|
||||
* RedirectDrawAutomatic
|
||||
* A redirected window which clips parent and sibling drawing.
|
||||
* Contents for these windows are manage inside the server.
|
||||
* These windows get an internal clip list equal to their
|
||||
* geometry.
|
||||
* RedirectDrawManual
|
||||
* A redirected window which does not clip parent and sibling
|
||||
* drawing; the window must be represented within the parent
|
||||
* geometry by the client performing the redirection management.
|
||||
* Contents for these windows are managed outside the server.
|
||||
* These windows get an internal clip list equal to their
|
||||
* geometry.
|
||||
*/
|
||||
|
||||
#define RedirectDrawNone 0
|
||||
#define RedirectDrawAutomatic 1
|
||||
#define RedirectDrawManual 2
|
||||
|
||||
typedef struct _Window {
|
||||
DrawableRec drawable;
|
||||
WindowPtr parent; /* ancestor chain */
|
||||
WindowPtr nextSib; /* next lower sibling */
|
||||
WindowPtr prevSib; /* next higher sibling */
|
||||
WindowPtr firstChild; /* top-most child */
|
||||
WindowPtr lastChild; /* bottom-most child */
|
||||
RegionRec clipList; /* clipping rectangle for output */
|
||||
RegionRec borderClip; /* NotClippedByChildren + border */
|
||||
union _Validate *valdata;
|
||||
RegionRec winSize;
|
||||
RegionRec borderSize;
|
||||
DDXPointRec origin; /* position relative to parent */
|
||||
unsigned short borderWidth;
|
||||
unsigned short deliverableEvents;
|
||||
Mask eventMask;
|
||||
PixUnion background;
|
||||
PixUnion border;
|
||||
void * backStorage; /* null when BS disabled */
|
||||
WindowOptPtr optional;
|
||||
unsigned backgroundState:2; /* None, Relative, Pixel, Pixmap */
|
||||
unsigned borderIsPixel:1;
|
||||
unsigned cursorIsNone:1; /* else real cursor (might inherit) */
|
||||
unsigned backingStore:2;
|
||||
unsigned saveUnder:1;
|
||||
unsigned DIXsaveUnder:1;
|
||||
unsigned bitGravity:4;
|
||||
unsigned winGravity:4;
|
||||
unsigned overrideRedirect:1;
|
||||
unsigned visibility:2;
|
||||
unsigned mapped:1;
|
||||
unsigned realized:1; /* ancestors are all mapped */
|
||||
unsigned viewable:1; /* realized && InputOutput */
|
||||
unsigned dontPropagate:3;/* index into DontPropagateMasks */
|
||||
unsigned forcedBS:1; /* system-supplied backingStore */
|
||||
#ifdef NEED_DBE_BUF_BITS
|
||||
#define DBE_FRONT_BUFFER 1
|
||||
#define DBE_BACK_BUFFER 0
|
||||
unsigned dstBuffer:1; /* destination buffer for rendering */
|
||||
unsigned srcBuffer:1; /* source buffer for rendering */
|
||||
#endif
|
||||
#ifdef COMPOSITE
|
||||
unsigned redirectDraw:2; /* rendering is redirected from here */
|
||||
#endif
|
||||
DevUnion *devPrivates;
|
||||
} WindowRec;
|
||||
|
||||
/*
|
||||
* Ok, a bunch of macros for accessing the optional record
|
||||
* fields (or filling the appropriate default value)
|
||||
*/
|
||||
|
||||
extern Mask DontPropagateMasks[];
|
||||
|
||||
#define wTrackParent(w,field) ((w)->optional ? \
|
||||
(w)->optional->field \
|
||||
: FindWindowWithOptional(w)->optional->field)
|
||||
#define wUseDefault(w,field,def) ((w)->optional ? \
|
||||
(w)->optional->field \
|
||||
: def)
|
||||
|
||||
#define wVisual(w) wTrackParent(w, visual)
|
||||
#define wCursor(w) ((w)->cursorIsNone ? None : wTrackParent(w, cursor))
|
||||
#define wColormap(w) ((w)->drawable.class == InputOnly ? None : wTrackParent(w, colormap))
|
||||
#define wDontPropagateMask(w) wUseDefault(w, dontPropagateMask, DontPropagateMasks[(w)->dontPropagate])
|
||||
#define wOtherEventMasks(w) wUseDefault(w, otherEventMasks, 0)
|
||||
#define wOtherClients(w) wUseDefault(w, otherClients, NULL)
|
||||
#ifdef XINPUT
|
||||
#define wOtherInputMasks(w) wUseDefault(w, inputMasks, NULL)
|
||||
#else
|
||||
#define wOtherInputMasks(w) NULL
|
||||
#endif
|
||||
#define wPassiveGrabs(w) wUseDefault(w, passiveGrabs, NULL)
|
||||
#define wUserProps(w) wUseDefault(w, userProps, NULL)
|
||||
#define wBackingBitPlanes(w) wUseDefault(w, backingBitPlanes, ~0L)
|
||||
#define wBackingPixel(w) wUseDefault(w, backingPixel, 0)
|
||||
#ifdef SHAPE
|
||||
#define wBoundingShape(w) wUseDefault(w, boundingShape, NULL)
|
||||
#define wClipShape(w) wUseDefault(w, clipShape, NULL)
|
||||
#define wInputShape(w) wUseDefault(w, inputShape, NULL)
|
||||
#endif
|
||||
#define wClient(w) (clients[CLIENT_ID((w)->drawable.id)])
|
||||
#define wBorderWidth(w) ((int) (w)->borderWidth)
|
||||
|
||||
/* true when w needs a border drawn. */
|
||||
|
||||
#ifdef SHAPE
|
||||
#define HasBorder(w) ((w)->borderWidth || wClipShape(w))
|
||||
#else
|
||||
#define HasBorder(w) ((w)->borderWidth)
|
||||
#endif
|
||||
|
||||
typedef struct _ScreenSaverStuff {
|
||||
WindowPtr pWindow;
|
||||
XID wid;
|
||||
char blanked;
|
||||
Bool (*ExternalScreenSaver)(
|
||||
ScreenPtr /*pScreen*/,
|
||||
int /*xstate*/,
|
||||
Bool /*force*/);
|
||||
} ScreenSaverStuffRec, *ScreenSaverStuffPtr;
|
||||
|
||||
#define SCREEN_IS_BLANKED 0
|
||||
#define SCREEN_ISNT_SAVED 1
|
||||
#define SCREEN_IS_TILED 2
|
||||
#define SCREEN_IS_BLACK 3
|
||||
|
||||
#define HasSaverWindow(i) (savedScreenInfo[i].pWindow != NullWindow)
|
||||
|
||||
extern int screenIsSaved;
|
||||
extern ScreenSaverStuffRec savedScreenInfo[MAXSCREENS];
|
||||
|
||||
/*
|
||||
* this is the configuration parameter "NO_BACK_SAVE"
|
||||
* it means that any existant backing store should not
|
||||
* be used to implement save unders.
|
||||
*/
|
||||
|
||||
#ifndef NO_BACK_SAVE
|
||||
#define DO_SAVE_UNDERS(pWin) ((pWin)->drawable.pScreen->saveUnderSupport ==\
|
||||
USE_DIX_SAVE_UNDERS)
|
||||
/*
|
||||
* saveUnderSupport is set to this magic value when using DIXsaveUnders
|
||||
*/
|
||||
|
||||
#define USE_DIX_SAVE_UNDERS 0x40
|
||||
#endif
|
||||
|
||||
extern int numSaveUndersViewable;
|
||||
extern int deltaSaveUndersViewable;
|
||||
|
||||
#endif /* WINDOWSTRUCT_H */
|
||||
481
nx-X11/programs/Xserver/include/xkbfile.h
Normal file
481
nx-X11/programs/Xserver/include/xkbfile.h
Normal file
@@ -0,0 +1,481 @@
|
||||
|
||||
#ifndef _XKBFILE_H_
|
||||
#define _XKBFILE_H_ 1
|
||||
|
||||
/************************************************************
|
||||
Copyright (c) 1994 by Silicon Graphics Computer Systems, Inc.
|
||||
|
||||
Permission to use, copy, modify, and distribute this
|
||||
software and its documentation for any purpose and without
|
||||
fee is hereby granted, provided that the above copyright
|
||||
notice appear in all copies and that both that copyright
|
||||
notice and this permission notice appear in supporting
|
||||
documentation, and that the name of Silicon Graphics not be
|
||||
used in advertising or publicity pertaining to distribution
|
||||
of the software without specific prior written permission.
|
||||
Silicon Graphics makes no representation about the suitability
|
||||
of this software for any purpose. It is provided "as is"
|
||||
without any express or implied warranty.
|
||||
|
||||
SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
|
||||
SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
|
||||
GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
|
||||
DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
|
||||
DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
|
||||
OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
|
||||
THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
********************************************************/
|
||||
|
||||
/***====================================================================***/
|
||||
|
||||
#define XkbXKMFile 0
|
||||
#define XkbCFile 1
|
||||
#define XkbXKBFile 2
|
||||
#define XkbMessage 3
|
||||
|
||||
#define XkbMapDefined (1<<0)
|
||||
#define XkbStateDefined (1<<1)
|
||||
|
||||
typedef struct _XkbFileInfo {
|
||||
unsigned type;
|
||||
unsigned defined;
|
||||
XkbDescPtr xkb;
|
||||
} XkbFileInfo,*XkbFileInfoPtr;
|
||||
|
||||
typedef void (*XkbFileAddOnFunc)(
|
||||
FILE * /* file */,
|
||||
XkbFileInfo * /* result */,
|
||||
Bool /* topLevel */,
|
||||
Bool /* showImplicit */,
|
||||
int /* fileSection */,
|
||||
void * /* priv */
|
||||
);
|
||||
|
||||
/***====================================================================***/
|
||||
|
||||
#define _XkbSuccess 0
|
||||
#define _XkbErrMissingNames 1
|
||||
#define _XkbErrMissingTypes 2
|
||||
#define _XkbErrMissingReqTypes 3
|
||||
#define _XkbErrMissingSymbols 4
|
||||
#define _XkbErrMissingVMods 5
|
||||
#define _XkbErrMissingIndicators 6
|
||||
#define _XkbErrMissingCompatMap 7
|
||||
#define _XkbErrMissingSymInterps 8
|
||||
#define _XkbErrMissingGeometry 9
|
||||
#define _XkbErrIllegalDoodad 10
|
||||
#define _XkbErrIllegalTOCType 11
|
||||
#define _XkbErrIllegalContents 12
|
||||
#define _XkbErrEmptyFile 13
|
||||
#define _XkbErrFileNotFound 14
|
||||
#define _XkbErrFileCannotOpen 15
|
||||
#define _XkbErrBadValue 16
|
||||
#define _XkbErrBadMatch 17
|
||||
#define _XkbErrBadTypeName 18
|
||||
#define _XkbErrBadTypeWidth 19
|
||||
#define _XkbErrBadFileType 20
|
||||
#define _XkbErrBadFileVersion 21
|
||||
#define _XkbErrBadFileFormat 22
|
||||
#define _XkbErrBadAlloc 23
|
||||
#define _XkbErrBadLength 24
|
||||
#define _XkbErrXReqFailure 25
|
||||
#define _XkbErrBadImplementation 26
|
||||
|
||||
extern const char * _XkbErrMessages[];
|
||||
extern unsigned _XkbErrCode;
|
||||
extern const char * _XkbErrLocation;
|
||||
extern unsigned _XkbErrData;
|
||||
|
||||
/***====================================================================***/
|
||||
|
||||
_XFUNCPROTOBEGIN
|
||||
|
||||
extern char * XkbIndentText(
|
||||
unsigned /* size */
|
||||
);
|
||||
|
||||
extern char * XkbAtomText(
|
||||
Display * /* dpy */,
|
||||
Atom /* atm */,
|
||||
unsigned /* format */
|
||||
);
|
||||
|
||||
extern char * XkbKeysymText(
|
||||
KeySym /* sym */,
|
||||
unsigned /* format */
|
||||
);
|
||||
|
||||
extern char * XkbStringText(
|
||||
char * /* str */,
|
||||
unsigned /* format */
|
||||
);
|
||||
|
||||
extern char * XkbKeyNameText(
|
||||
char * /* name */,
|
||||
unsigned /* format */
|
||||
);
|
||||
|
||||
extern char *
|
||||
XkbModIndexText(
|
||||
unsigned /* ndx */,
|
||||
unsigned /* format */
|
||||
);
|
||||
|
||||
extern char *
|
||||
XkbModMaskText(
|
||||
unsigned /* mask */,
|
||||
unsigned /* format */
|
||||
);
|
||||
|
||||
extern char * XkbVModIndexText(
|
||||
Display * /* dpy */,
|
||||
XkbDescPtr /* xkb */,
|
||||
unsigned /* ndx */,
|
||||
unsigned /* format */
|
||||
);
|
||||
|
||||
extern char * XkbVModMaskText(
|
||||
Display * /* dpy */,
|
||||
XkbDescPtr /* xkb */,
|
||||
unsigned /* modMask */,
|
||||
unsigned /* mask */,
|
||||
unsigned /* format */
|
||||
);
|
||||
|
||||
extern char * XkbConfigText(
|
||||
unsigned /* config */,
|
||||
unsigned /* format */
|
||||
);
|
||||
|
||||
extern char * XkbSIMatchText(
|
||||
unsigned /* type */,
|
||||
unsigned /* format */
|
||||
);
|
||||
|
||||
extern char * XkbIMWhichStateMaskText(
|
||||
unsigned /* use_which */,
|
||||
unsigned /* format */
|
||||
);
|
||||
|
||||
extern char * XkbAccessXDetailText(
|
||||
unsigned /* state */,
|
||||
unsigned /* format */
|
||||
);
|
||||
|
||||
extern char * XkbNKNDetailMaskText(
|
||||
unsigned /* detail */,
|
||||
unsigned /* format */
|
||||
);
|
||||
|
||||
extern char * XkbControlsMaskText(
|
||||
unsigned /* ctrls */,
|
||||
unsigned /* format */
|
||||
);
|
||||
|
||||
extern char * XkbGeomFPText(
|
||||
int /* val */,
|
||||
unsigned /* format */
|
||||
);
|
||||
|
||||
extern char * XkbDoodadTypeText(
|
||||
unsigned /* type */,
|
||||
unsigned /* format */
|
||||
);
|
||||
|
||||
extern char * XkbActionTypeText(
|
||||
unsigned /* type */,
|
||||
unsigned /* format */
|
||||
);
|
||||
|
||||
extern char * XkbActionText(
|
||||
Display * /* dpy */,
|
||||
XkbDescPtr /* xkb */,
|
||||
XkbAction * /* action */,
|
||||
unsigned /* format */
|
||||
);
|
||||
|
||||
extern char * XkbBehaviorText(
|
||||
XkbDescPtr /* xkb */,
|
||||
XkbBehavior * /* behavior */,
|
||||
unsigned /* format */
|
||||
);
|
||||
|
||||
/***====================================================================***/
|
||||
|
||||
#define _XkbKSLower (1<<0)
|
||||
#define _XkbKSUpper (1<<1)
|
||||
|
||||
#define XkbKSIsLower(k) (_XkbKSCheckCase(k)&_XkbKSLower)
|
||||
#define XkbKSIsUpper(k) (_XkbKSCheckCase(k)&_XkbKSUpper)
|
||||
#define XkbKSIsKeypad(k) (((k)>=XK_KP_Space)&&((k)<=XK_KP_Equal))
|
||||
#define XkbKSIsDeadKey(k) \
|
||||
(((k)>=XK_dead_grave)&&((k)<=XK_dead_semivoiced_sound))
|
||||
|
||||
extern unsigned _XkbKSCheckCase(
|
||||
KeySym /* sym */
|
||||
);
|
||||
|
||||
extern int XkbFindKeycodeByName(
|
||||
XkbDescPtr /* xkb */,
|
||||
char * /* name */,
|
||||
Bool /* use_aliases */
|
||||
);
|
||||
|
||||
extern Bool XkbLookupGroupAndLevel(
|
||||
XkbDescPtr /* xkb */,
|
||||
int /* key */,
|
||||
int * /* mods_inout */,
|
||||
int * /* grp_inout */,
|
||||
int * /* lvl_rtrn */
|
||||
);
|
||||
|
||||
/***====================================================================***/
|
||||
|
||||
extern char * XkbAtomGetString(
|
||||
Display * /* dpy */,
|
||||
Atom /* atm */
|
||||
);
|
||||
|
||||
extern Atom XkbInternAtom(
|
||||
Display * /* dpy */,
|
||||
char * /* name */,
|
||||
Bool /* onlyIfExists */
|
||||
);
|
||||
|
||||
extern Status XkbChangeKbdDisplay(
|
||||
Display * /* newDpy */,
|
||||
XkbFileInfo * /* result */
|
||||
);
|
||||
|
||||
extern Atom XkbChangeAtomDisplay(
|
||||
Display * /* oldDpy */,
|
||||
Display * /* newDpy */,
|
||||
Atom /* atm */
|
||||
);
|
||||
|
||||
extern void XkbInitAtoms(
|
||||
Display * /* dpy */
|
||||
);
|
||||
|
||||
/***====================================================================***/
|
||||
|
||||
#ifdef _XKBGEOM_H_
|
||||
|
||||
#define XkbDW_Unknown 0
|
||||
#define XkbDW_Doodad 1
|
||||
#define XkbDW_Section 2
|
||||
typedef struct _XkbDrawable {
|
||||
int type;
|
||||
int priority;
|
||||
union {
|
||||
XkbDoodadPtr doodad;
|
||||
XkbSectionPtr section;
|
||||
} u;
|
||||
struct _XkbDrawable * next;
|
||||
} XkbDrawableRec,*XkbDrawablePtr;
|
||||
|
||||
extern XkbDrawablePtr
|
||||
XkbGetOrderedDrawables(
|
||||
XkbGeometryPtr /* geom */,
|
||||
XkbSectionPtr /* section */
|
||||
);
|
||||
|
||||
extern void
|
||||
XkbFreeOrderedDrawables(
|
||||
XkbDrawablePtr /* draw */
|
||||
);
|
||||
|
||||
#endif
|
||||
|
||||
/***====================================================================***/
|
||||
|
||||
extern unsigned XkbConvertGetByNameComponents(
|
||||
Bool /* toXkm */,
|
||||
unsigned /* orig */
|
||||
);
|
||||
|
||||
extern unsigned XkbConvertXkbComponents(
|
||||
Bool /* toXkm */,
|
||||
unsigned /* orig */
|
||||
);
|
||||
|
||||
extern Bool XkbDetermineFileType(
|
||||
XkbFileInfo * /* xkb */,
|
||||
int /* format */,
|
||||
int * /* opts_missing */
|
||||
);
|
||||
|
||||
extern Bool XkbNameMatchesPattern(
|
||||
char * /* name */,
|
||||
char * /* pattern */
|
||||
);
|
||||
|
||||
/***====================================================================***/
|
||||
|
||||
extern Bool XkbWriteXKBKeycodes(
|
||||
FILE * /* file */,
|
||||
XkbFileInfo * /* result */,
|
||||
Bool /* topLevel */,
|
||||
Bool /* showImplicit */,
|
||||
XkbFileAddOnFunc /* addOn */,
|
||||
void * /* priv */
|
||||
);
|
||||
|
||||
extern Bool XkbWriteXKBKeyTypes(
|
||||
FILE * /* file */,
|
||||
XkbFileInfo * /* result */,
|
||||
Bool /* topLevel */,
|
||||
Bool /* showImplicit */,
|
||||
XkbFileAddOnFunc /* addOn */,
|
||||
void * /* priv */
|
||||
);
|
||||
|
||||
extern Bool XkbWriteXKBCompatMap(
|
||||
FILE * /* file */,
|
||||
XkbFileInfo * /* result */,
|
||||
Bool /* topLevel */,
|
||||
Bool /* showImplicit */,
|
||||
XkbFileAddOnFunc /* addOn */,
|
||||
void * /* priv */
|
||||
);
|
||||
|
||||
extern Bool XkbWriteXKBSymbols(
|
||||
FILE * /* file */,
|
||||
XkbFileInfo * /* result */,
|
||||
Bool /* topLevel */,
|
||||
Bool /* showImplicit */,
|
||||
XkbFileAddOnFunc /* addOn */,
|
||||
void * /* priv */
|
||||
);
|
||||
|
||||
extern Bool XkbWriteXKBGeometry(
|
||||
FILE * /* file */,
|
||||
XkbFileInfo * /* result */,
|
||||
Bool /* topLevel */,
|
||||
Bool /* showImplicit */,
|
||||
XkbFileAddOnFunc /* addOn */,
|
||||
void * /* priv */
|
||||
);
|
||||
|
||||
extern Bool XkbWriteXKBSemantics(
|
||||
FILE * /* file */,
|
||||
XkbFileInfo * /* result */,
|
||||
Bool /* topLevel */,
|
||||
Bool /* showImplicit */,
|
||||
XkbFileAddOnFunc /* addOn */,
|
||||
void * /* priv */
|
||||
);
|
||||
|
||||
extern Bool XkbWriteXKBLayout(
|
||||
FILE * /* file */,
|
||||
XkbFileInfo * /* result */,
|
||||
Bool /* topLevel */,
|
||||
Bool /* showImplicit */,
|
||||
XkbFileAddOnFunc /* addOn */,
|
||||
void * /* priv */
|
||||
);
|
||||
|
||||
extern Bool XkbWriteXKBKeymap(
|
||||
FILE * /* file */,
|
||||
XkbFileInfo * /* result */,
|
||||
Bool /* topLevel */,
|
||||
Bool /* showImplicit */,
|
||||
XkbFileAddOnFunc /* addOn */,
|
||||
void * /* priv */
|
||||
);
|
||||
|
||||
extern Bool XkbWriteXKBFile(
|
||||
FILE * /* file */,
|
||||
XkbFileInfo * /* result */,
|
||||
Bool /* showImplicit */,
|
||||
XkbFileAddOnFunc /* addOn */,
|
||||
void * /* priv */
|
||||
);
|
||||
|
||||
extern Bool XkbWriteCFile(
|
||||
FILE * /* file */,
|
||||
char * /* name */,
|
||||
XkbFileInfo * /* info */
|
||||
);
|
||||
|
||||
extern Bool XkbWriteXKMFile(
|
||||
FILE * /* file */,
|
||||
XkbFileInfo * /* result */
|
||||
);
|
||||
|
||||
extern Bool XkbWriteToServer(
|
||||
XkbFileInfo * /* result */
|
||||
);
|
||||
|
||||
extern void XkbEnsureSafeMapName(
|
||||
char * /* name */
|
||||
);
|
||||
|
||||
extern Bool XkbWriteXKBKeymapForNames(
|
||||
FILE * /* file */,
|
||||
XkbComponentNamesPtr /* names */,
|
||||
Display * /* dpy */,
|
||||
XkbDescPtr /* xkb */,
|
||||
unsigned /* want */,
|
||||
unsigned /* need */
|
||||
);
|
||||
|
||||
extern Status XkbMergeFile(
|
||||
XkbDescPtr /* xkb */,
|
||||
XkbFileInfo /* finfo */
|
||||
);
|
||||
|
||||
/***====================================================================***/
|
||||
|
||||
extern Bool XkmProbe(
|
||||
FILE * /* file */
|
||||
);
|
||||
|
||||
extern unsigned XkbReadFromServer(
|
||||
Display * /* dpy */,
|
||||
unsigned /* need */,
|
||||
unsigned /* want */,
|
||||
XkbFileInfo * /* result */
|
||||
);
|
||||
|
||||
extern unsigned XkmReadFile(
|
||||
FILE * /* file */,
|
||||
unsigned /* need */,
|
||||
unsigned /* want */,
|
||||
XkbFileInfo * /* result */
|
||||
);
|
||||
|
||||
#ifdef _XKMFORMAT_H_
|
||||
|
||||
extern Bool XkmReadTOC(
|
||||
FILE * /* file */,
|
||||
xkmFileInfo * /* file_info */,
|
||||
int /* max_toc */,
|
||||
xkmSectionInfo * /* toc */
|
||||
);
|
||||
|
||||
extern xkmSectionInfo *XkmFindTOCEntry(
|
||||
xkmFileInfo * /* finfo */,
|
||||
xkmSectionInfo * /* toc */,
|
||||
unsigned /* type */
|
||||
);
|
||||
|
||||
extern Bool XkmReadFileSection(
|
||||
FILE * /* file */,
|
||||
xkmSectionInfo * /* toc */,
|
||||
XkbFileInfo * /* result */,
|
||||
unsigned * /* loaded_rtrn */
|
||||
);
|
||||
|
||||
extern char * XkmReadFileSectionName(
|
||||
FILE * /* file */,
|
||||
xkmSectionInfo * /* toc */
|
||||
);
|
||||
|
||||
#endif /* _XKMFORMAT_H */
|
||||
|
||||
_XFUNCPROTOEND
|
||||
|
||||
#endif /* _XKBFILE_H_ */
|
||||
184
nx-X11/programs/Xserver/include/xkbrules.h
Normal file
184
nx-X11/programs/Xserver/include/xkbrules.h
Normal file
@@ -0,0 +1,184 @@
|
||||
#ifndef _XKBRULES_H_
|
||||
#define _XKBRULES_H_ 1
|
||||
|
||||
/************************************************************
|
||||
Copyright (c) 1996 by Silicon Graphics Computer Systems, Inc.
|
||||
|
||||
Permission to use, copy, modify, and distribute this
|
||||
software and its documentation for any purpose and without
|
||||
fee is hereby granted, provided that the above copyright
|
||||
notice appear in all copies and that both that copyright
|
||||
notice and this permission notice appear in supporting
|
||||
documentation, and that the name of Silicon Graphics not be
|
||||
used in advertising or publicity pertaining to distribution
|
||||
of the software without specific prior written permission.
|
||||
Silicon Graphics makes no representation about the suitability
|
||||
of this software for any purpose. It is provided "as is"
|
||||
without any express or implied warranty.
|
||||
|
||||
SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
|
||||
SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
|
||||
GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
|
||||
DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
|
||||
DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
|
||||
OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
|
||||
THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
********************************************************/
|
||||
|
||||
/***====================================================================***/
|
||||
|
||||
typedef struct _XkbRF_VarDefs {
|
||||
char * model;
|
||||
char * layout;
|
||||
char * variant;
|
||||
char * options;
|
||||
unsigned short sz_extra;
|
||||
unsigned short num_extra;
|
||||
char * extra_names;
|
||||
char ** extra_values;
|
||||
} XkbRF_VarDefsRec,*XkbRF_VarDefsPtr;
|
||||
|
||||
typedef struct _XkbRF_VarDesc {
|
||||
char * name;
|
||||
char * desc;
|
||||
} XkbRF_VarDescRec, *XkbRF_VarDescPtr;
|
||||
|
||||
typedef struct _XkbRF_DescribeVars {
|
||||
int sz_desc;
|
||||
int num_desc;
|
||||
XkbRF_VarDescPtr desc;
|
||||
} XkbRF_DescribeVarsRec,*XkbRF_DescribeVarsPtr;
|
||||
|
||||
typedef struct _XkbRF_Rule {
|
||||
int number;
|
||||
int layout_num;
|
||||
int variant_num;
|
||||
char * model;
|
||||
char * layout;
|
||||
char * variant;
|
||||
char * option;
|
||||
/* yields */
|
||||
char * keycodes;
|
||||
char * symbols;
|
||||
char * types;
|
||||
char * compat;
|
||||
char * geometry;
|
||||
char * keymap;
|
||||
unsigned flags;
|
||||
} XkbRF_RuleRec,*XkbRF_RulePtr;
|
||||
|
||||
typedef struct _XkbRF_Group {
|
||||
int number;
|
||||
char * name;
|
||||
char * words;
|
||||
} XkbRF_GroupRec, *XkbRF_GroupPtr;
|
||||
|
||||
#define XkbRF_PendingMatch (1L<<1)
|
||||
#define XkbRF_Option (1L<<2)
|
||||
#define XkbRF_Append (1L<<3)
|
||||
#define XkbRF_Normal (1L<<4)
|
||||
#define XkbRF_Invalid (1L<<5)
|
||||
|
||||
typedef struct _XkbRF_Rules {
|
||||
XkbRF_DescribeVarsRec models;
|
||||
XkbRF_DescribeVarsRec layouts;
|
||||
XkbRF_DescribeVarsRec variants;
|
||||
XkbRF_DescribeVarsRec options;
|
||||
unsigned short sz_extra;
|
||||
unsigned short num_extra;
|
||||
char ** extra_names;
|
||||
XkbRF_DescribeVarsPtr extra;
|
||||
|
||||
unsigned short sz_rules;
|
||||
unsigned short num_rules;
|
||||
XkbRF_RulePtr rules;
|
||||
unsigned short sz_groups;
|
||||
unsigned short num_groups;
|
||||
XkbRF_GroupPtr groups;
|
||||
} XkbRF_RulesRec, *XkbRF_RulesPtr;
|
||||
|
||||
/***====================================================================***/
|
||||
|
||||
_XFUNCPROTOBEGIN
|
||||
|
||||
extern Bool XkbRF_GetComponents(
|
||||
XkbRF_RulesPtr /* rules */,
|
||||
XkbRF_VarDefsPtr /* var_defs */,
|
||||
XkbComponentNamesPtr /* names */
|
||||
);
|
||||
|
||||
extern XkbRF_RulePtr XkbRF_AddRule(
|
||||
XkbRF_RulesPtr /* rules */
|
||||
);
|
||||
|
||||
extern XkbRF_GroupPtr XkbRF_AddGroup(XkbRF_RulesPtr rules);
|
||||
|
||||
extern Bool XkbRF_LoadRules(
|
||||
FILE * /* file */,
|
||||
XkbRF_RulesPtr /* rules */
|
||||
);
|
||||
|
||||
extern Bool XkbRF_LoadRulesByName(
|
||||
char * /* base */,
|
||||
char * /* locale */,
|
||||
XkbRF_RulesPtr /* rules */
|
||||
);
|
||||
|
||||
/***====================================================================***/
|
||||
|
||||
extern XkbRF_VarDescPtr XkbRF_AddVarDesc(
|
||||
XkbRF_DescribeVarsPtr /* vars */
|
||||
);
|
||||
|
||||
extern XkbRF_VarDescPtr XkbRF_AddVarDescCopy(
|
||||
XkbRF_DescribeVarsPtr /* vars */,
|
||||
XkbRF_VarDescPtr /* copy_from */
|
||||
);
|
||||
|
||||
extern XkbRF_DescribeVarsPtr XkbRF_AddVarToDescribe(
|
||||
XkbRF_RulesPtr /* rules */,
|
||||
char * /* name */
|
||||
);
|
||||
|
||||
extern Bool XkbRF_LoadDescriptions(
|
||||
FILE * /* file */,
|
||||
XkbRF_RulesPtr /* rules */
|
||||
);
|
||||
|
||||
extern Bool XkbRF_LoadDescriptionsByName(
|
||||
char * /* base */,
|
||||
char * /* locale */,
|
||||
XkbRF_RulesPtr /* rules */
|
||||
);
|
||||
|
||||
extern XkbRF_RulesPtr XkbRF_Load(
|
||||
char * /* base */,
|
||||
char * /* locale */,
|
||||
Bool /* wantDesc */,
|
||||
Bool /* wantRules */
|
||||
);
|
||||
|
||||
extern XkbRF_RulesPtr XkbRF_Create(
|
||||
int /* sz_rules */,
|
||||
int /* sz_extra */
|
||||
);
|
||||
|
||||
/***====================================================================***/
|
||||
|
||||
extern void XkbRF_Free(
|
||||
XkbRF_RulesPtr /* rules */,
|
||||
Bool /* freeRules */
|
||||
);
|
||||
|
||||
|
||||
/***====================================================================***/
|
||||
|
||||
#define _XKB_RF_NAMES_PROP_ATOM "_XKB_RULES_NAMES"
|
||||
#define _XKB_RF_NAMES_PROP_MAXLEN 1024
|
||||
|
||||
|
||||
_XFUNCPROTOEND
|
||||
|
||||
#endif /* _XKBRULES_H_ */
|
||||
1092
nx-X11/programs/Xserver/include/xkbsrv.h
Normal file
1092
nx-X11/programs/Xserver/include/xkbsrv.h
Normal file
File diff suppressed because it is too large
Load Diff
608
nx-X11/programs/Xserver/include/xkbstr.h
Normal file
608
nx-X11/programs/Xserver/include/xkbstr.h
Normal file
@@ -0,0 +1,608 @@
|
||||
/************************************************************
|
||||
Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc.
|
||||
|
||||
Permission to use, copy, modify, and distribute this
|
||||
software and its documentation for any purpose and without
|
||||
fee is hereby granted, provided that the above copyright
|
||||
notice appear in all copies and that both that copyright
|
||||
notice and this permission notice appear in supporting
|
||||
documentation, and that the name of Silicon Graphics not be
|
||||
used in advertising or publicity pertaining to distribution
|
||||
of the software without specific prior written permission.
|
||||
Silicon Graphics makes no representation about the suitability
|
||||
of this software for any purpose. It is provided "as is"
|
||||
without any express or implied warranty.
|
||||
|
||||
SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
|
||||
SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
|
||||
GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
|
||||
DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
|
||||
DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
|
||||
OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
|
||||
THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
********************************************************/
|
||||
|
||||
#ifndef _XKBSTR_H_
|
||||
#define _XKBSTR_H_
|
||||
|
||||
#include <nx-X11/extensions/XKB.h>
|
||||
|
||||
#define XkbCharToInt(v) ((v)&0x80?(int)((v)|(~0xff)):(int)((v)&0x7f))
|
||||
#define XkbIntTo2Chars(i,h,l) (((h)=((i>>8)&0xff)),((l)=((i)&0xff)))
|
||||
|
||||
#define Xkb2CharsToInt(h,l) ((short)(((h)<<8)|(l)))
|
||||
|
||||
/*
|
||||
* Common data structures and access macros
|
||||
*/
|
||||
|
||||
typedef struct _XkbStateRec {
|
||||
unsigned char group;
|
||||
unsigned char locked_group;
|
||||
unsigned short base_group;
|
||||
unsigned short latched_group;
|
||||
unsigned char mods;
|
||||
unsigned char base_mods;
|
||||
unsigned char latched_mods;
|
||||
unsigned char locked_mods;
|
||||
unsigned char compat_state;
|
||||
unsigned char grab_mods;
|
||||
unsigned char compat_grab_mods;
|
||||
unsigned char lookup_mods;
|
||||
unsigned char compat_lookup_mods;
|
||||
unsigned short ptr_buttons;
|
||||
} XkbStateRec,*XkbStatePtr;
|
||||
#define XkbModLocks(s) ((s)->locked_mods)
|
||||
#define XkbStateMods(s) ((s)->base_mods|(s)->latched_mods|XkbModLocks(s))
|
||||
#define XkbGroupLock(s) ((s)->locked_group)
|
||||
#define XkbStateGroup(s) ((s)->base_group+(s)->latched_group+XkbGroupLock(s))
|
||||
#define XkbStateFieldFromRec(s) XkbBuildCoreState((s)->lookup_mods,(s)->group)
|
||||
#define XkbGrabStateFromRec(s) XkbBuildCoreState((s)->grab_mods,(s)->group)
|
||||
|
||||
typedef struct _XkbMods {
|
||||
unsigned char mask; /* effective mods */
|
||||
unsigned char real_mods;
|
||||
unsigned short vmods;
|
||||
} XkbModsRec,*XkbModsPtr;
|
||||
|
||||
typedef struct _XkbKTMapEntry {
|
||||
Bool active;
|
||||
unsigned char level;
|
||||
XkbModsRec mods;
|
||||
} XkbKTMapEntryRec,*XkbKTMapEntryPtr;
|
||||
|
||||
typedef struct _XkbKeyType {
|
||||
XkbModsRec mods;
|
||||
unsigned char num_levels;
|
||||
unsigned char map_count;
|
||||
XkbKTMapEntryPtr map;
|
||||
XkbModsPtr preserve;
|
||||
Atom name;
|
||||
Atom * level_names;
|
||||
} XkbKeyTypeRec, *XkbKeyTypePtr;
|
||||
|
||||
#define XkbNumGroups(g) ((g)&0x0f)
|
||||
#define XkbOutOfRangeGroupInfo(g) ((g)&0xf0)
|
||||
#define XkbOutOfRangeGroupAction(g) ((g)&0xc0)
|
||||
#define XkbOutOfRangeGroupNumber(g) (((g)&0x30)>>4)
|
||||
#define XkbSetGroupInfo(g,w,n) (((w)&0xc0)|(((n)&3)<<4)|((g)&0x0f))
|
||||
#define XkbSetNumGroups(g,n) (((g)&0xf0)|((n)&0x0f))
|
||||
|
||||
/*
|
||||
* Structures and access macros used primarily by the server
|
||||
*/
|
||||
|
||||
typedef struct _XkbBehavior {
|
||||
unsigned char type;
|
||||
unsigned char data;
|
||||
} XkbBehavior;
|
||||
|
||||
#define XkbAnyActionDataSize 7
|
||||
typedef struct _XkbAnyAction {
|
||||
unsigned char type;
|
||||
unsigned char data[XkbAnyActionDataSize];
|
||||
} XkbAnyAction;
|
||||
|
||||
typedef struct _XkbModAction {
|
||||
unsigned char type;
|
||||
unsigned char flags;
|
||||
unsigned char mask;
|
||||
unsigned char real_mods;
|
||||
unsigned char vmods1;
|
||||
unsigned char vmods2;
|
||||
} XkbModAction;
|
||||
#define XkbModActionVMods(a) \
|
||||
((short)(((a)->vmods1<<8)|((a)->vmods2)))
|
||||
#define XkbSetModActionVMods(a,v) \
|
||||
(((a)->vmods1=(((v)>>8)&0xff)),(a)->vmods2=((v)&0xff))
|
||||
|
||||
typedef struct _XkbGroupAction {
|
||||
unsigned char type;
|
||||
unsigned char flags;
|
||||
char group_XXX;
|
||||
} XkbGroupAction;
|
||||
#define XkbSAGroup(a) (XkbCharToInt((a)->group_XXX))
|
||||
#define XkbSASetGroup(a,g) ((a)->group_XXX=(g))
|
||||
|
||||
typedef struct _XkbISOAction {
|
||||
unsigned char type;
|
||||
unsigned char flags;
|
||||
unsigned char mask;
|
||||
unsigned char real_mods;
|
||||
char group_XXX;
|
||||
unsigned char affect;
|
||||
unsigned char vmods1;
|
||||
unsigned char vmods2;
|
||||
} XkbISOAction;
|
||||
|
||||
typedef struct _XkbPtrAction {
|
||||
unsigned char type;
|
||||
unsigned char flags;
|
||||
unsigned char high_XXX;
|
||||
unsigned char low_XXX;
|
||||
unsigned char high_YYY;
|
||||
unsigned char low_YYY;
|
||||
} XkbPtrAction;
|
||||
#define XkbPtrActionX(a) (Xkb2CharsToInt((a)->high_XXX,(a)->low_XXX))
|
||||
#define XkbPtrActionY(a) (Xkb2CharsToInt((a)->high_YYY,(a)->low_YYY))
|
||||
#define XkbSetPtrActionX(a,x) (XkbIntTo2Chars(x,(a)->high_XXX,(a)->low_XXX))
|
||||
#define XkbSetPtrActionY(a,y) (XkbIntTo2Chars(y,(a)->high_YYY,(a)->low_YYY))
|
||||
|
||||
typedef struct _XkbPtrBtnAction {
|
||||
unsigned char type;
|
||||
unsigned char flags;
|
||||
unsigned char count;
|
||||
unsigned char button;
|
||||
} XkbPtrBtnAction;
|
||||
|
||||
typedef struct _XkbPtrDfltAction {
|
||||
unsigned char type;
|
||||
unsigned char flags;
|
||||
unsigned char affect;
|
||||
char valueXXX;
|
||||
} XkbPtrDfltAction;
|
||||
#define XkbSAPtrDfltValue(a) (XkbCharToInt((a)->valueXXX))
|
||||
#define XkbSASetPtrDfltValue(a,c) ((a)->valueXXX= ((c)&0xff))
|
||||
|
||||
typedef struct _XkbSwitchScreenAction {
|
||||
unsigned char type;
|
||||
unsigned char flags;
|
||||
char screenXXX;
|
||||
} XkbSwitchScreenAction;
|
||||
#define XkbSAScreen(a) (XkbCharToInt((a)->screenXXX))
|
||||
#define XkbSASetScreen(a,s) ((a)->screenXXX= ((s)&0xff))
|
||||
|
||||
typedef struct _XkbCtrlsAction {
|
||||
unsigned char type;
|
||||
unsigned char flags;
|
||||
unsigned char ctrls3;
|
||||
unsigned char ctrls2;
|
||||
unsigned char ctrls1;
|
||||
unsigned char ctrls0;
|
||||
} XkbCtrlsAction;
|
||||
#define XkbActionSetCtrls(a,c) (((a)->ctrls3=(((c)>>24)&0xff)),\
|
||||
((a)->ctrls2=(((c)>>16)&0xff)),\
|
||||
((a)->ctrls1=(((c)>>8)&0xff)),\
|
||||
((a)->ctrls0=((c)&0xff)))
|
||||
#define XkbActionCtrls(a) ((((unsigned int)(a)->ctrls3)<<24)|\
|
||||
(((unsigned int)(a)->ctrls2)<<16)|\
|
||||
(((unsigned int)(a)->ctrls1)<<8)|\
|
||||
((unsigned int)((a)->ctrls0)))
|
||||
|
||||
typedef struct _XkbMessageAction {
|
||||
unsigned char type;
|
||||
unsigned char flags;
|
||||
unsigned char message[6];
|
||||
} XkbMessageAction;
|
||||
|
||||
typedef struct _XkbRedirectKeyAction {
|
||||
unsigned char type;
|
||||
unsigned char new_key;
|
||||
unsigned char mods_mask;
|
||||
unsigned char mods;
|
||||
unsigned char vmods_mask0;
|
||||
unsigned char vmods_mask1;
|
||||
unsigned char vmods0;
|
||||
unsigned char vmods1;
|
||||
} XkbRedirectKeyAction;
|
||||
|
||||
#define XkbSARedirectVMods(a) ((((unsigned int)(a)->vmods1)<<8)|\
|
||||
((unsigned int)(a)->vmods0))
|
||||
#define XkbSARedirectSetVMods(a,m) (((a)->vmods_mask1=(((m)>>8)&0xff)),\
|
||||
((a)->vmods_mask0=((m)&0xff)))
|
||||
#define XkbSARedirectVModsMask(a) ((((unsigned int)(a)->vmods_mask1)<<8)|\
|
||||
((unsigned int)(a)->vmods_mask0))
|
||||
#define XkbSARedirectSetVModsMask(a,m) (((a)->vmods_mask1=(((m)>>8)&0xff)),\
|
||||
((a)->vmods_mask0=((m)&0xff)))
|
||||
|
||||
typedef struct _XkbDeviceBtnAction {
|
||||
unsigned char type;
|
||||
unsigned char flags;
|
||||
unsigned char count;
|
||||
unsigned char button;
|
||||
unsigned char device;
|
||||
} XkbDeviceBtnAction;
|
||||
|
||||
typedef struct _XkbDeviceValuatorAction {
|
||||
unsigned char type;
|
||||
unsigned char device;
|
||||
unsigned char v1_what;
|
||||
unsigned char v1_ndx;
|
||||
unsigned char v1_value;
|
||||
unsigned char v2_what;
|
||||
unsigned char v2_ndx;
|
||||
unsigned char v2_value;
|
||||
} XkbDeviceValuatorAction;
|
||||
|
||||
typedef union _XkbAction {
|
||||
XkbAnyAction any;
|
||||
XkbModAction mods;
|
||||
XkbGroupAction group;
|
||||
XkbISOAction iso;
|
||||
XkbPtrAction ptr;
|
||||
XkbPtrBtnAction btn;
|
||||
XkbPtrDfltAction dflt;
|
||||
XkbSwitchScreenAction screen;
|
||||
XkbCtrlsAction ctrls;
|
||||
XkbMessageAction msg;
|
||||
XkbRedirectKeyAction redirect;
|
||||
XkbDeviceBtnAction devbtn;
|
||||
XkbDeviceValuatorAction devval;
|
||||
unsigned char type;
|
||||
} XkbAction;
|
||||
|
||||
typedef struct _XkbControls {
|
||||
unsigned char mk_dflt_btn;
|
||||
unsigned char num_groups;
|
||||
unsigned char groups_wrap;
|
||||
XkbModsRec internal;
|
||||
XkbModsRec ignore_lock;
|
||||
unsigned int enabled_ctrls;
|
||||
unsigned short repeat_delay;
|
||||
unsigned short repeat_interval;
|
||||
unsigned short slow_keys_delay;
|
||||
unsigned short debounce_delay;
|
||||
unsigned short mk_delay;
|
||||
unsigned short mk_interval;
|
||||
unsigned short mk_time_to_max;
|
||||
unsigned short mk_max_speed;
|
||||
short mk_curve;
|
||||
unsigned short ax_options;
|
||||
unsigned short ax_timeout;
|
||||
unsigned short axt_opts_mask;
|
||||
unsigned short axt_opts_values;
|
||||
unsigned int axt_ctrls_mask;
|
||||
unsigned int axt_ctrls_values;
|
||||
unsigned char per_key_repeat[XkbPerKeyBitArraySize];
|
||||
} XkbControlsRec, *XkbControlsPtr;
|
||||
|
||||
#define XkbAX_AnyFeedback(c) ((c)->enabled_ctrls&XkbAccessXFeedbackMask)
|
||||
#define XkbAX_NeedOption(c,w) ((c)->ax_options&(w))
|
||||
#define XkbAX_NeedFeedback(c,w) (XkbAX_AnyFeedback(c)&&XkbAX_NeedOption(c,w))
|
||||
|
||||
typedef struct _XkbServerMapRec {
|
||||
unsigned short num_acts;
|
||||
unsigned short size_acts;
|
||||
XkbAction *acts;
|
||||
|
||||
XkbBehavior *behaviors;
|
||||
unsigned short *key_acts;
|
||||
#if defined(__cplusplus) || defined(c_plusplus)
|
||||
/* explicit is a C++ reserved word */
|
||||
unsigned char *c_explicit;
|
||||
#else
|
||||
unsigned char *explicit;
|
||||
#endif
|
||||
unsigned char vmods[XkbNumVirtualMods];
|
||||
unsigned short *vmodmap;
|
||||
} XkbServerMapRec, *XkbServerMapPtr;
|
||||
|
||||
#define XkbSMKeyActionsPtr(m,k) (&(m)->acts[(m)->key_acts[k]])
|
||||
|
||||
/*
|
||||
* Structures and access macros used primarily by clients
|
||||
*/
|
||||
|
||||
typedef struct _XkbSymMapRec {
|
||||
unsigned char kt_index[XkbNumKbdGroups];
|
||||
unsigned char group_info;
|
||||
unsigned char width;
|
||||
unsigned short offset;
|
||||
} XkbSymMapRec, *XkbSymMapPtr;
|
||||
|
||||
typedef struct _XkbClientMapRec {
|
||||
unsigned char size_types;
|
||||
unsigned char num_types;
|
||||
XkbKeyTypePtr types;
|
||||
|
||||
unsigned short size_syms;
|
||||
unsigned short num_syms;
|
||||
KeySym *syms;
|
||||
XkbSymMapPtr key_sym_map;
|
||||
|
||||
unsigned char *modmap;
|
||||
} XkbClientMapRec, *XkbClientMapPtr;
|
||||
|
||||
#define XkbCMKeyGroupInfo(m,k) ((m)->key_sym_map[k].group_info)
|
||||
#define XkbCMKeyNumGroups(m,k) (XkbNumGroups((m)->key_sym_map[k].group_info))
|
||||
#define XkbCMKeyGroupWidth(m,k,g) (XkbCMKeyType(m,k,g)->num_levels)
|
||||
#define XkbCMKeyGroupsWidth(m,k) ((m)->key_sym_map[k].width)
|
||||
#define XkbCMKeyTypeIndex(m,k,g) ((m)->key_sym_map[k].kt_index[g&0x3])
|
||||
#define XkbCMKeyType(m,k,g) (&(m)->types[XkbCMKeyTypeIndex(m,k,g)])
|
||||
#define XkbCMKeyNumSyms(m,k) (XkbCMKeyGroupsWidth(m,k)*XkbCMKeyNumGroups(m,k))
|
||||
#define XkbCMKeySymsOffset(m,k) ((m)->key_sym_map[k].offset)
|
||||
#define XkbCMKeySymsPtr(m,k) (&(m)->syms[XkbCMKeySymsOffset(m,k)])
|
||||
|
||||
/*
|
||||
* Compatibility structures and access macros
|
||||
*/
|
||||
|
||||
typedef struct _XkbSymInterpretRec {
|
||||
KeySym sym;
|
||||
unsigned char flags;
|
||||
unsigned char match;
|
||||
unsigned char mods;
|
||||
unsigned char virtual_mod;
|
||||
XkbAnyAction act;
|
||||
} XkbSymInterpretRec,*XkbSymInterpretPtr;
|
||||
|
||||
typedef struct _XkbCompatMapRec {
|
||||
XkbSymInterpretPtr sym_interpret;
|
||||
XkbModsRec groups[XkbNumKbdGroups];
|
||||
unsigned short num_si;
|
||||
unsigned short size_si;
|
||||
} XkbCompatMapRec, *XkbCompatMapPtr;
|
||||
|
||||
typedef struct _XkbIndicatorMapRec {
|
||||
unsigned char flags;
|
||||
unsigned char which_groups;
|
||||
unsigned char groups;
|
||||
unsigned char which_mods;
|
||||
XkbModsRec mods;
|
||||
unsigned int ctrls;
|
||||
} XkbIndicatorMapRec, *XkbIndicatorMapPtr;
|
||||
|
||||
#define XkbIM_IsAuto(i) ((((i)->flags&XkbIM_NoAutomatic)==0)&&\
|
||||
(((i)->which_groups&&(i)->groups)||\
|
||||
((i)->which_mods&&(i)->mods.mask)||\
|
||||
((i)->ctrls)))
|
||||
#define XkbIM_InUse(i) (((i)->flags)||((i)->which_groups)||\
|
||||
((i)->which_mods)||((i)->ctrls))
|
||||
|
||||
|
||||
typedef struct _XkbIndicatorRec {
|
||||
unsigned long phys_indicators;
|
||||
XkbIndicatorMapRec maps[XkbNumIndicators];
|
||||
} XkbIndicatorRec,*XkbIndicatorPtr;
|
||||
|
||||
typedef struct _XkbKeyNameRec {
|
||||
char name[XkbKeyNameLength];
|
||||
} XkbKeyNameRec,*XkbKeyNamePtr;
|
||||
|
||||
typedef struct _XkbKeyAliasRec {
|
||||
char real[XkbKeyNameLength];
|
||||
char alias[XkbKeyNameLength];
|
||||
} XkbKeyAliasRec,*XkbKeyAliasPtr;
|
||||
|
||||
/*
|
||||
* Names for everything
|
||||
*/
|
||||
typedef struct _XkbNamesRec {
|
||||
Atom keycodes;
|
||||
Atom geometry;
|
||||
Atom symbols;
|
||||
Atom types;
|
||||
Atom compat;
|
||||
Atom vmods[XkbNumVirtualMods];
|
||||
Atom indicators[XkbNumIndicators];
|
||||
Atom groups[XkbNumKbdGroups];
|
||||
XkbKeyNamePtr keys;
|
||||
XkbKeyAliasPtr key_aliases;
|
||||
Atom *radio_groups;
|
||||
Atom phys_symbols;
|
||||
|
||||
unsigned char num_keys;
|
||||
unsigned char num_key_aliases;
|
||||
unsigned short num_rg;
|
||||
} XkbNamesRec,*XkbNamesPtr;
|
||||
|
||||
typedef struct _XkbGeometry *XkbGeometryPtr;
|
||||
/*
|
||||
* Tie it all together into one big keyboard description
|
||||
*/
|
||||
typedef struct _XkbDesc {
|
||||
struct _XDisplay * dpy;
|
||||
unsigned short flags;
|
||||
unsigned short device_spec;
|
||||
KeyCode min_key_code;
|
||||
KeyCode max_key_code;
|
||||
|
||||
XkbControlsPtr ctrls;
|
||||
XkbServerMapPtr server;
|
||||
XkbClientMapPtr map;
|
||||
XkbIndicatorPtr indicators;
|
||||
XkbNamesPtr names;
|
||||
XkbCompatMapPtr compat;
|
||||
XkbGeometryPtr geom;
|
||||
} XkbDescRec, *XkbDescPtr;
|
||||
#define XkbKeyKeyTypeIndex(d,k,g) (XkbCMKeyTypeIndex((d)->map,k,g))
|
||||
#define XkbKeyKeyType(d,k,g) (XkbCMKeyType((d)->map,k,g))
|
||||
#define XkbKeyGroupWidth(d,k,g) (XkbCMKeyGroupWidth((d)->map,k,g))
|
||||
#define XkbKeyGroupsWidth(d,k) (XkbCMKeyGroupsWidth((d)->map,k))
|
||||
#define XkbKeyGroupInfo(d,k) (XkbCMKeyGroupInfo((d)->map,(k)))
|
||||
#define XkbKeyNumGroups(d,k) (XkbCMKeyNumGroups((d)->map,(k)))
|
||||
#define XkbKeyNumSyms(d,k) (XkbCMKeyNumSyms((d)->map,(k)))
|
||||
#define XkbKeySymsPtr(d,k) (XkbCMKeySymsPtr((d)->map,(k)))
|
||||
#define XkbKeySym(d,k,n) (XkbKeySymsPtr(d,k)[n])
|
||||
#define XkbKeySymEntry(d,k,sl,g) \
|
||||
(XkbKeySym(d,k,((XkbKeyGroupsWidth(d,k)*(g))+(sl))))
|
||||
#define XkbKeyAction(d,k,n) \
|
||||
(XkbKeyHasActions(d,k)?&XkbKeyActionsPtr(d,k)[n]:NULL)
|
||||
#define XkbKeyActionEntry(d,k,sl,g) \
|
||||
(XkbKeyHasActions(d,k)?\
|
||||
XkbKeyAction(d,k,((XkbKeyGroupsWidth(d,k)*(g))+(sl))):NULL)
|
||||
|
||||
#define XkbKeyHasActions(d,k) ((d)->server->key_acts[k]!=0)
|
||||
#define XkbKeyNumActions(d,k) (XkbKeyHasActions(d,k)?XkbKeyNumSyms(d,k):1)
|
||||
#define XkbKeyActionsPtr(d,k) (XkbSMKeyActionsPtr((d)->server,k))
|
||||
#define XkbKeycodeInRange(d,k) (((k)>=(d)->min_key_code)&&\
|
||||
((k)<=(d)->max_key_code))
|
||||
#define XkbNumKeys(d) ((d)->max_key_code-(d)->min_key_code+1)
|
||||
|
||||
|
||||
/*
|
||||
* The following structures can be used to track changes
|
||||
* to a keyboard device
|
||||
*/
|
||||
typedef struct _XkbMapChanges {
|
||||
unsigned short changed;
|
||||
KeyCode min_key_code;
|
||||
KeyCode max_key_code;
|
||||
unsigned char first_type;
|
||||
unsigned char num_types;
|
||||
KeyCode first_key_sym;
|
||||
unsigned char num_key_syms;
|
||||
KeyCode first_key_act;
|
||||
unsigned char num_key_acts;
|
||||
KeyCode first_key_behavior;
|
||||
unsigned char num_key_behaviors;
|
||||
KeyCode first_key_explicit;
|
||||
unsigned char num_key_explicit;
|
||||
KeyCode first_modmap_key;
|
||||
unsigned char num_modmap_keys;
|
||||
KeyCode first_vmodmap_key;
|
||||
unsigned char num_vmodmap_keys;
|
||||
unsigned char pad;
|
||||
unsigned short vmods;
|
||||
} XkbMapChangesRec,*XkbMapChangesPtr;
|
||||
|
||||
typedef struct _XkbControlsChanges {
|
||||
unsigned int changed_ctrls;
|
||||
unsigned int enabled_ctrls_changes;
|
||||
Bool num_groups_changed;
|
||||
} XkbControlsChangesRec,*XkbControlsChangesPtr;
|
||||
|
||||
typedef struct _XkbIndicatorChanges {
|
||||
unsigned int state_changes;
|
||||
unsigned int map_changes;
|
||||
} XkbIndicatorChangesRec,*XkbIndicatorChangesPtr;
|
||||
|
||||
typedef struct _XkbNameChanges {
|
||||
unsigned int changed;
|
||||
unsigned char first_type;
|
||||
unsigned char num_types;
|
||||
unsigned char first_lvl;
|
||||
unsigned char num_lvls;
|
||||
unsigned char num_aliases;
|
||||
unsigned char num_rg;
|
||||
unsigned char first_key;
|
||||
unsigned char num_keys;
|
||||
unsigned short changed_vmods;
|
||||
unsigned long changed_indicators;
|
||||
unsigned char changed_groups;
|
||||
} XkbNameChangesRec,*XkbNameChangesPtr;
|
||||
|
||||
typedef struct _XkbCompatChanges {
|
||||
unsigned char changed_groups;
|
||||
unsigned short first_si;
|
||||
unsigned short num_si;
|
||||
} XkbCompatChangesRec,*XkbCompatChangesPtr;
|
||||
|
||||
typedef struct _XkbChanges {
|
||||
unsigned short device_spec;
|
||||
unsigned short state_changes;
|
||||
XkbMapChangesRec map;
|
||||
XkbControlsChangesRec ctrls;
|
||||
XkbIndicatorChangesRec indicators;
|
||||
XkbNameChangesRec names;
|
||||
XkbCompatChangesRec compat;
|
||||
} XkbChangesRec, *XkbChangesPtr;
|
||||
|
||||
/*
|
||||
* These data structures are used to construct a keymap from
|
||||
* a set of components or to list components in the server
|
||||
* database.
|
||||
*/
|
||||
typedef struct _XkbComponentNames {
|
||||
char * keymap;
|
||||
char * keycodes;
|
||||
char * types;
|
||||
char * compat;
|
||||
char * symbols;
|
||||
char * geometry;
|
||||
} XkbComponentNamesRec, *XkbComponentNamesPtr;
|
||||
|
||||
typedef struct _XkbComponentName {
|
||||
unsigned short flags;
|
||||
char * name;
|
||||
} XkbComponentNameRec,*XkbComponentNamePtr;
|
||||
|
||||
typedef struct _XkbComponentList {
|
||||
int num_keymaps;
|
||||
int num_keycodes;
|
||||
int num_types;
|
||||
int num_compat;
|
||||
int num_symbols;
|
||||
int num_geometry;
|
||||
XkbComponentNamePtr keymaps;
|
||||
XkbComponentNamePtr keycodes;
|
||||
XkbComponentNamePtr types;
|
||||
XkbComponentNamePtr compat;
|
||||
XkbComponentNamePtr symbols;
|
||||
XkbComponentNamePtr geometry;
|
||||
} XkbComponentListRec, *XkbComponentListPtr;
|
||||
|
||||
/*
|
||||
* The following data structures describe and track changes to a
|
||||
* non-keyboard extension device
|
||||
*/
|
||||
typedef struct _XkbDeviceLedInfo {
|
||||
unsigned short led_class;
|
||||
unsigned short led_id;
|
||||
unsigned int phys_indicators;
|
||||
unsigned int maps_present;
|
||||
unsigned int names_present;
|
||||
unsigned int state;
|
||||
Atom names[XkbNumIndicators];
|
||||
XkbIndicatorMapRec maps[XkbNumIndicators];
|
||||
} XkbDeviceLedInfoRec,*XkbDeviceLedInfoPtr;
|
||||
|
||||
typedef struct _XkbDeviceInfo {
|
||||
char * name;
|
||||
Atom type;
|
||||
unsigned short device_spec;
|
||||
Bool has_own_state;
|
||||
unsigned short supported;
|
||||
unsigned short unsupported;
|
||||
|
||||
unsigned short num_btns;
|
||||
XkbAction * btn_acts;
|
||||
|
||||
unsigned short sz_leds;
|
||||
unsigned short num_leds;
|
||||
unsigned short dflt_kbd_fb;
|
||||
unsigned short dflt_led_fb;
|
||||
XkbDeviceLedInfoPtr leds;
|
||||
} XkbDeviceInfoRec,*XkbDeviceInfoPtr;
|
||||
|
||||
#define XkbXI_DevHasBtnActs(d) (((d)->num_btns>0)&&((d)->btn_acts!=NULL))
|
||||
#define XkbXI_LegalDevBtn(d,b) (XkbXI_DevHasBtnActs(d)&&((b)<(d)->num_btns))
|
||||
#define XkbXI_DevHasLeds(d) (((d)->num_leds>0)&&((d)->leds!=NULL))
|
||||
|
||||
typedef struct _XkbDeviceLedChanges {
|
||||
unsigned short led_class;
|
||||
unsigned short led_id;
|
||||
unsigned int defined; /* names or maps changed */
|
||||
struct _XkbDeviceLedChanges *next;
|
||||
} XkbDeviceLedChangesRec,*XkbDeviceLedChangesPtr;
|
||||
|
||||
typedef struct _XkbDeviceChanges {
|
||||
unsigned int changed;
|
||||
unsigned short first_btn;
|
||||
unsigned short num_btns;
|
||||
XkbDeviceLedChangesRec leds;
|
||||
} XkbDeviceChangesRec,*XkbDeviceChangesPtr;
|
||||
|
||||
#endif /* _XKBSTR_H_ */
|
||||
Reference in New Issue
Block a user