2025-08-08 20:00:36 +02:00

202 lines
5.6 KiB
C

/**************************************************************************/
/* */
/* Copyright (c) 2001, 2011 NoMachine (http://www.nomachine.com) */
/* Copyright (c) 2008-2017 Oleksandr Shneyder <o.shneyder@phoca-gmbh.de> */
/* Copyright (c) 2014-2022 Ulrich Sibiller <uli42@gmx.de> */
/* Copyright (c) 2014-2019 Mihai Moldovan <ionic@ionic.de> */
/* Copyright (c) 2011-2022 Mike Gabriel <mike.gabriel@das-netzwerkteam.de>*/
/* Copyright (c) 2015-2016 Qindel Group (http://www.qindel.com) */
/* */
/* NXCOMP, NX protocol compression and NX extensions to this software */
/* are copyright of the aforementioned persons and companies. */
/* */
/* Redistribution and use of the present software is allowed according */
/* to terms specified in the file LICENSE.nxcomp which comes in the */
/* source distribution. */
/* */
/* All rights reserved. */
/* */
/* NOTE: This software has received contributions from various other */
/* contributors, only the core maintainers and supporters are listed as */
/* copyright holders. Please contact us, if you feel you should be listed */
/* as copyright holder, as well. */
/* */
/**************************************************************************/
#ifndef NXvars_H
#define NXvars_H
/*
* This can be included by the proxy or another
* layer that doesn't use Xlib.
*/
#if !defined(_XLIB_H_) && !defined(_XKBSRV_H_)
#define NeedFunctionPrototypes 1
#define Display void
#endif
#ifdef __cplusplus
extern "C" {
#endif
/*
* Display flush policies.
*/
#define NXPolicyImmediate 1
#define NXPolicyDeferred 2
/*
* Type of flush.
*/
#define NXFlushBuffer 0
#define NXFlushLink 1
/*
* Type of statistics.
*/
#define NXStatisticsPartial 0
#define NXStatisticsTotal 1
/*
* Reason why the display is blocking.
*/
#define NXBlockRead 1
#define NXBlockWrite 2
/*
* Set if the client is interested in ignoring
* the display error and continue with the exe-
* cution of the program. By default the usual
* Xlib behaviour is gotten, and the library
* will call an exit().
*/
extern int _NXHandleDisplayError;
/*
* The function below is called whenever Xlib is
* going to perform an I/O operation. The funct-
* ion can be redefined to include additional
* checks aimed at detecting if the display needs
* to be closed, for example because of an event
* or a signal mandating the end of the session.
* In this way the client program can regain the
* control before Xlib blocks waiting for input
* from the network.
*/
typedef int (*NXDisplayErrorPredicate)(
#if NeedFunctionPrototypes
Display* /* display */,
int /* reason */
#endif
);
extern NXDisplayErrorPredicate _NXDisplayErrorFunction;
/*
* This is called when Xlib is going to block
* waiting for the display to become readable or
* writable. The client can use the hook to run
* any arbitrary operation that may require some
* time to complete. The user should not try to
* read or write to the display inside the call-
* back routine.
*/
typedef void (*NXDisplayBlockHandler)(
#if NeedFunctionPrototypes
Display* /* display */,
int /* reason */
#endif
);
extern NXDisplayBlockHandler _NXDisplayBlockFunction;
/*
* Used to notify the program when more data
* is written to the socket.
*/
typedef void (*NXDisplayWriteHandler)(
#if NeedFunctionPrototypes
Display* /* display */,
int /* length */
#endif
);
extern NXDisplayWriteHandler _NXDisplayWriteFunction;
/*
* This callback is used to notify the agent
* that the proxy link has been flushed.
*/
typedef void (*NXDisplayFlushHandler)(
#if NeedFunctionPrototypes
Display* /* display */,
int /* length */
#endif
);
extern NXDisplayFlushHandler _NXDisplayFlushFunction;
/*
* Used by the NX transport to get an arbitrary
* string to add to its protocol statistics.
*/
typedef void (*NXDisplayStatisticsHandler)(
#if NeedFunctionPrototypes
Display* /* display */,
char* /* buffer */,
int /* size */
#endif
);
extern NXDisplayStatisticsHandler _NXDisplayStatisticsFunction;
/*
* Let users redefine the function printing an
* error message in the case of a out-of-order
* sequence number.
*/
typedef void (*NXLostSequenceHandler)(
#if NeedFunctionPrototypes
Display* /* display */,
unsigned long /* newseq */,
unsigned long /* lastseq */,
unsigned int /* type */
#endif
);
extern NXLostSequenceHandler _NXLostSequenceFunction;
/*
* Let the X server run the children processes
* (as for example the keyboard initialization
* utilities) by using the native system libra-
* ries, instead of the libraries shipped with
* the NX environment. If set, the Popen() in
* the X server will remove the LD_LIBRARY_PATH
* setting from the environment before calling
* the execl() function in the child process.
*/
extern int _NXUnsetLibraryPath;
#ifdef __cplusplus
}
#endif
#endif /* NXvars_H */