public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* Re: c/3843: gcc-3.0 sparc-solaris2.6 leaves local .LL symbols unresolved
@ 2002-04-24 15:36 rth
  0 siblings, 0 replies; 2+ messages in thread
From: rth @ 2002-04-24 15:36 UTC (permalink / raw)
  To: gcc-bugs, gcc-prs, nobody, partain

Synopsis: gcc-3.0 sparc-solaris2.6 leaves local .LL symbols unresolved

State-Changed-From-To: open->closed
State-Changed-By: rth
State-Changed-When: Wed Apr 24 15:36:54 2002
State-Changed-Why:
    Fixed for gcc 3.1.

http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=3843


^ permalink raw reply	[flat|nested] 2+ messages in thread

* c/3843: gcc-3.0 sparc-solaris2.6 leaves local .LL symbols unresolved
@ 2001-07-27  9:26 Will Partain
  0 siblings, 0 replies; 2+ messages in thread
From: Will Partain @ 2001-07-27  9:26 UTC (permalink / raw)
  To: gcc-gnats

>Number:         3843
>Category:       c
>Synopsis:       gcc-3.0 sparc-solaris2.6 leaves local .LL symbols unresolved
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          wrong-code
>Submitter-Id:   net
>Arrival-Date:   Fri Jul 27 09:26:01 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator:     Will Partain
>Release:        3.0
>Organization:
>Environment:
System: SunOS slicker 5.6 Generic_105181-25 sun4u sparc SUNW,Ultra-5_10
Architecture: sun4

	
host: sparc-sun-solaris2.6
build: sparc-sun-solaris2.6
target: sparc-sun-solaris2.6
configured with: ./configure --prefix=/.-ark-deploy/gcc--3.0 --enable-languages=c,c++ --disable-nls : (reconfigured) ./configure --prefix=/.-ark-deploy/gcc--3.0 --enable-languages=c,c++ --disable-nls
>Description:
	Compiling CmplxMenu.c out of x3270-3.2.14 produces assembler
	with unresolving local symbols.
>How-To-Repeat:

% /our/bin/gcc -O2 -fstrict-aliasing -S CmplxMenu.i 
% /our/bin/gcc -c CmplxMenu.s
% nm -g CmplxMenu.o | grep LL
[67]	|         0|       0|NOTY |GLOB |0    |UNDEF  |.LL113
[66]	|         0|       0|NOTY |GLOB |0    |UNDEF  |.LL280

== CmplxMenu.i
typedef __builtin_va_list __gnuc_va_list;
typedef void *__va_list;
typedef unsigned int size_t;
typedef long long __longlong_t;
typedef long off_t;
typedef __longlong_t off64_t;
typedef long fpos_t;
typedef __longlong_t fpos64_t;
typedef struct
{
        int _cnt;
        unsigned char *_ptr;
        unsigned char *_base;
        unsigned char _flag;
        unsigned char _file;
} FILE;
extern FILE __iob[20];
extern FILE *_lastbuf;
extern unsigned char *_bufendtab[];
extern unsigned char _sibuf[], _sobuf[];
extern int remove(const char *);
extern int rename(const char *, const char *);
extern FILE *tmpfile(void);
extern char *tmpnam(char *);
extern int fclose(FILE *);
extern int fflush(FILE *);
extern FILE *fopen(const char *, const char *);
extern FILE *freopen(const char *, const char *, FILE *);
extern void setbuf(FILE *, char *);
extern void setbuffer(FILE *, char *, size_t);
extern int setlinebuf(FILE *);
extern int setvbuf(FILE *, char *, int, size_t);
extern int fprintf(FILE *, const char *, ...);
extern int fscanf(FILE *, const char *, ...);
extern int printf(const char *, ...);
extern int scanf(const char *, ...);
extern int snprintf(char *, size_t, const char *, ...);
extern int sprintf(char *, const char *, ...);
extern int sscanf(const char *, const char *, ...);
extern int vfprintf(FILE *, const char *, __gnuc_va_list);
extern int vprintf(const char *, __gnuc_va_list);
extern int vsnprintf(char *, size_t, const char *, __gnuc_va_list);
extern int vsprintf(char *, const char *, __gnuc_va_list);
extern int fgetc(FILE *);
extern char *fgets(char *, int, FILE *);
extern int fputc(int, FILE *);
extern int fputs(const char *, FILE *);
extern int getc(FILE *);
extern int getchar(void);
extern char *gets(char *);
extern int putc(int, FILE *);
extern int putchar(int);
extern int puts(const char *);
extern int ungetc(int, FILE *);
extern size_t fread(void *, size_t, size_t, FILE *);
extern size_t fwrite(const void *, size_t, size_t, FILE *);
extern int fgetpos(FILE *, fpos_t *);
extern int fseek(FILE *, long, int);
extern int fsetpos(FILE *, const fpos_t *);
extern long ftell(FILE *);
extern void rewind(FILE *);
extern void clearerr(FILE *);
extern int feof(FILE *);
extern int ferror(FILE *);
extern void perror(const char *);
extern int __filbuf(FILE *);
extern int __flsbuf(int, FILE *);
extern FILE *fdopen(int, const char *);
extern char *ctermid(char *);
extern int fileno(FILE *);
extern FILE *popen(const char *, const char *);
extern char *cuserid(char *);
extern char *tempnam(const char *, const char *);
extern int getopt(int, char *const *, const char *);
extern int getsubopt(char **, char *const *, char **);
extern char *optarg;
extern int optind, opterr, optopt;
extern int getw(FILE *);
extern int putw(int, FILE *);
extern int pclose(FILE *);
extern int fseeko(FILE *, off_t, int);
extern off_t ftello(FILE *);
extern FILE *fopen64(const char *, const char *);
extern FILE *freopen64(const char *, const char *, FILE *);
extern FILE *tmpfile64(void);
extern int fgetpos64(FILE *, fpos64_t *);
extern int fsetpos64(FILE *, const fpos64_t *);
extern int fseeko64(FILE *, off64_t, int);
extern off64_t ftello64(FILE *);
typedef struct {
        int quot;
        int rem;
} div_t;
typedef struct {
        long quot;
        long rem;
} ldiv_t;
typedef struct {
        long long quot;
        long long rem;
} lldiv_t;
typedef long uid_t;
typedef long int wchar_t;
extern unsigned char __ctype[];
extern double atof(const char *);
extern int atoi(const char *);
extern long int atol(const char *);
extern double strtod(const char *, char **);
extern long int strtol(const char *, char **, int);
extern unsigned long int strtoul(const char *, char **, int);
extern int rand(void);
extern void srand(unsigned int);
extern void *calloc(size_t, size_t);
extern void free(void *);
extern void *malloc(size_t);
extern void *realloc(void *, size_t);
extern void abort(void);
extern int atexit(void (*)(void));
extern void exit(int);
extern void _exithandle(void);
extern char *getenv(const char *);
extern int system(const char *);
extern void *bsearch(const void *, const void *, size_t, size_t,
        int (*)(const void *, const void *));
extern void qsort(void *, size_t, size_t,
        int (*)(const void *, const void *));
extern int abs(int);
extern div_t div(int, int);
extern long int labs(long);
extern ldiv_t ldiv(long, long);
extern int mbtowc(wchar_t *, const char *, size_t);
extern int mblen(const char *, size_t);
extern int wctomb(char *, wchar_t);
extern size_t mbstowcs(wchar_t *, const char *, size_t);
extern size_t wcstombs(char *, const wchar_t *, size_t);
extern double drand48(void);
extern double erand48(unsigned short *);
extern long jrand48(unsigned short *);
extern void lcong48(unsigned short *);
extern long lrand48(void);
extern long mrand48(void);
extern long nrand48(unsigned short *);
extern unsigned short *seed48(unsigned short *);
extern void srand48(long);
extern int putenv(const char *);
extern void setkey(const char *);
extern void swab(const char *, char *, int);
extern int mkstemp(char *);
extern int mkstemp64(char *);
extern long a64l(const char *);
extern char *ecvt(double, int, int *, int *);
extern char *fcvt(double, int, int *, int *);
extern char *gcvt(double, int, char *);
extern int getsubopt(char **, char *const *, char **);
extern int grantpt(int);
extern char *initstate(unsigned, char *, size_t);
extern char *l64a(long);
extern char *mktemp(char *);
extern char *ptsname(int);
extern long random(void);
extern char *realpath(const char *, char *);
extern char *setstate(const char *);
extern void srandom(unsigned);
extern int ttyslot(void);
extern int unlockpt(int);
extern void *valloc(size_t);
extern int dup2(int, int);
extern char *qecvt(long double, int, int *, int *);
extern char *qfcvt(long double, int, int *, int *);
extern char *qgcvt(long double, int, char *);
extern char *getcwd(char *, size_t);
extern const char *getexecname(void);
extern char *getlogin(void);
extern int getopt(int, char *const *, const char *);
extern char *optarg;
extern int optind, opterr, optopt;
extern char *getpass(const char *);
extern char *getpassphrase(const char *);
extern int getpw(uid_t, char *);
extern int isatty(int);
extern void *memalign(size_t, size_t);
extern char *ttyname(int);
extern long long atoll(const char *);
extern long long llabs(long long);
extern lldiv_t lldiv(long long, long long);
extern char *lltostr(long long, char *);
extern long long strtoll(const char *, char **, int);
extern unsigned long long strtoull(const char *, char **, int);
extern char *ulltostr(unsigned long long, char *);
typedef struct _physadr_t { int r[1]; } *physadr_t;
typedef struct _label_t { int val[2]; } label_t;
typedef unsigned char lock_t;
typedef char int8_t;
typedef short int16_t;
typedef int int32_t;
typedef long long int64_t;
typedef unsigned char uint8_t;
typedef unsigned short uint16_t;
typedef unsigned int uint32_t;
typedef unsigned long long uint64_t;
typedef int64_t intmax_t;
typedef uint64_t uintmax_t;
typedef int intptr_t;
typedef unsigned int uintptr_t;
typedef char int_least8_t;
typedef short int_least16_t;
typedef int int_least32_t;
typedef long long int_least64_t;
typedef unsigned char uint_least8_t;
typedef unsigned short uint_least16_t;
typedef unsigned int uint_least32_t;
typedef unsigned long long uint_least64_t;
typedef long long longlong_t;
typedef unsigned long long u_longlong_t;
typedef unsigned char uchar_t;
typedef unsigned short ushort_t;
typedef unsigned int uint_t;
typedef unsigned long ulong_t;
typedef char * caddr_t;
typedef long daddr_t;
typedef short cnt_t;
typedef ulong_t paddr_t;
typedef uchar_t use_t;
typedef short sysid_t;
typedef short index_t;
typedef ulong_t ino_t;
typedef long blkcnt_t;
typedef ulong_t fsblkcnt_t;
typedef ulong_t fsfilcnt_t;
typedef u_longlong_t ino64_t;
typedef longlong_t blkcnt64_t;
typedef u_longlong_t fsblkcnt64_t;
typedef u_longlong_t fsfilcnt64_t;
typedef enum { B_FALSE, B_TRUE } boolean_t;
typedef int64_t pad64_t;
typedef uint64_t upad64_t;
typedef longlong_t offset_t;
typedef u_longlong_t u_offset_t;
typedef u_longlong_t len_t;
typedef longlong_t diskaddr_t;
typedef union {
        offset_t _f;
        struct {
                long _u;
                off_t _l;
        } _p;
} lloff_t;
typedef union {
        diskaddr_t _f;
        struct {
                long _u;
                daddr_t _l;
        } _p;
} lldaddr_t;
typedef ulong_t k_fltset_t;
typedef long id_t;
typedef uint_t useconds_t;
typedef ulong_t major_t;
typedef ulong_t minor_t;
typedef short pri_t;
typedef ushort_t o_mode_t;
typedef short o_dev_t;
typedef ushort_t o_uid_t;
typedef o_uid_t o_gid_t;
typedef short o_nlink_t;
typedef short o_pid_t;
typedef ushort_t o_ino_t;
typedef int key_t;
typedef ulong_t mode_t;
typedef uid_t gid_t;
typedef ulong_t nlink_t;
typedef ulong_t dev_t;
typedef long pid_t;
typedef unsigned int pthread_t;
typedef unsigned int pthread_key_t;
typedef struct _pthread_mutex {
        struct {
                uint8_t __pthread_mutex_flag[4];
                uint32_t __pthread_mutex_type;
        } __pthread_mutex_flags;
        union {
                struct {
                        uint8_t __pthread_mutex_pad[8];
                } __pthread_mutex_lock64;
                upad64_t __pthread_mutex_owner64;
        } __pthread_mutex_lock;
        upad64_t __pthread_mutex_data;
} pthread_mutex_t;
typedef struct _pthread_cond {
        struct {
                uint8_t __pthread_cond_flag[4];
                uint32_t __pthread_cond_type;
        } __pthread_cond_flags;
        upad64_t __pthread_cond_data;
} pthread_cond_t;
typedef struct _pthread_attr {
        void *__pthread_attrp;
} pthread_attr_t;
typedef struct _pthread_mutexattr {
        void *__pthread_mutexattrp;
} pthread_mutexattr_t;
typedef struct _pthread_condattr {
        void *__pthread_condattrp;
} pthread_condattr_t;
typedef struct _once {
        upad64_t __pthread_once_pad[4];
} pthread_once_t;
typedef int ssize_t;
typedef long time_t;
typedef long clock_t;
typedef int clockid_t;
typedef int timer_t;
typedef unsigned char unchar;
typedef unsigned short ushort;
typedef unsigned int uint;
typedef unsigned long ulong;
typedef long hostid_t;
typedef unsigned char u_char;
typedef unsigned short u_short;
typedef unsigned int u_int;
typedef unsigned long u_long;
typedef struct _quad { long val[2]; } quad;
struct timeval {
        time_t tv_sec;
        long tv_usec;
};
struct timezone {
        int tz_minuteswest;
        int tz_dsttime;
};
struct itimerval {
        struct timeval it_interval;
        struct timeval it_value;
};
typedef struct timespec {
        time_t tv_sec;
        long tv_nsec;
} timespec_t;
typedef struct timespec timestruc_t;
typedef struct itimerspec {
        struct timespec it_interval;
        struct timespec it_value;
} itimerspec_t;
typedef longlong_t hrtime_t;
int adjtime(struct timeval *, struct timeval *);
int getitimer(int, struct itimerval *);
int setitimer(int, struct itimerval *, struct itimerval *);
int settimeofday(struct timeval *, void *);
hrtime_t gethrtime(void);
hrtime_t gethrvtime(void);
int gettimeofday(struct timeval *, void *);
struct tm {
        int tm_sec;
        int tm_min;
        int tm_hour;
        int tm_mday;
        int tm_mon;
        int tm_year;
        int tm_wday;
        int tm_yday;
        int tm_isdst;
};
extern clock_t clock(void);
extern double difftime(time_t, time_t);
extern time_t mktime(struct tm *);
extern time_t time(time_t *);
extern char *asctime(const struct tm *);
extern char *ctime(const time_t *);
extern struct tm *gmtime(const time_t *);
extern struct tm *localtime(const time_t *);
extern size_t strftime(char *, size_t, const char *, const struct tm *);
extern char *strptime(const char *, const char *, struct tm *);
union sigval {
        int sival_int;
        void *sival_ptr;
};
struct sigevent {
        int sigev_notify;
        union {
                int _sigev_signo;
                void (*_sigev_notify_function)(union sigval);
        } _sigev_un;
        union sigval sigev_value;
        int _sigev_pad1;
        void *_sigev_notify_attributes;
        int _sigev_pad2;
};
typedef struct siginfo {
        int si_signo;
        int si_code;
        int si_errno;
        union {
                int __pad[((128 / sizeof (int)) - 3)];
                struct {
                        pid_t __pid;
                        union {
                                struct {
                                        uid_t __uid;
                                        union sigval __value;
                                } __kill;
                                struct {
                                        clock_t __utime;
                                        int __status;
                                        clock_t __stime;
                                } __cld;
                        } __pdata;
                } __proc;
                struct {
                        void *__addr;
                        int __trapno;
                        caddr_t __pc;
                } __fault;
                struct {
                        int __fd;
                        long __band;
                } __file;
                struct {
                        caddr_t __faddr;
                        timestruc_t __tstamp;
                        short __syscall;
                        char __nsysarg;
                        char __fault;
                        long __sysarg[8];
                        long __mstate[17];
                } __prof;
        } __data;
} siginfo_t;
typedef struct k_siginfo {
        int si_signo;
        int si_code;
        int si_errno;
        union {
                struct {
                        pid_t __pid;
                        union {
                                struct {
                                        uid_t __uid;
                                        union sigval __value;
                                } __kill;
                                struct {
                                        clock_t __utime;
                                        int __status;
                                        clock_t __stime;
                                } __cld;
                        } __pdata;
                } __proc;
                struct {
                        void *__addr;
                        int __trapno;
                        caddr_t __pc;
                } __fault;
                struct {
                        int __fd;
                        long __band;
                } __file;
                struct {
                        caddr_t __faddr;
                        timestruc_t __tstamp;
                        short __syscall;
                        char __nsysarg;
                        char __fault;
                } __prof;
        } __data;
} k_siginfo_t;
typedef struct sigqueue {
        struct sigqueue *sq_next;
        k_siginfo_t sq_info;
        void (*sq_func)(struct sigqueue *);
        void *sq_backptr;
} sigqueue_t;
extern int clock_getres(clockid_t, struct timespec *);
extern int clock_gettime(clockid_t, struct timespec *);
extern int clock_settime(clockid_t, const struct timespec *);
extern int timer_create(clockid_t, struct sigevent *, timer_t *);
extern int timer_delete(timer_t);
extern int timer_getoverrun(timer_t);
extern int timer_gettime(timer_t, struct itimerspec *);
extern int timer_settime(timer_t, int, const struct itimerspec *,
                struct itimerspec *);
extern int nanosleep(const struct timespec *, struct timespec *);
extern void tzset(void);
extern char *tzname[2];
extern long _sysconf(int);
extern long timezone;
extern int daylight;
extern int cftime(char *, char *, const time_t *);
extern int ascftime(char *, const char *, const struct tm *);
extern long altzone;
extern struct tm *getdate(const char *);
extern int getdate_err;
typedef long fd_mask;
typedef long fds_mask;
typedef struct fd_set {
        long fds_bits[(((1024)+(((sizeof (fds_mask) * 8))-1))/((sizeof (fds_mask) * 8)))];
} fd_set;
extern int select(int, fd_set *, fd_set *, fd_set *, struct timeval *);
extern int access(const char *, int);
extern int acct(const char *);
extern unsigned alarm(unsigned);
extern int brk(void *);
extern int chdir(const char *);
extern int chown(const char *, uid_t, gid_t);
extern int chroot(const char *);
extern int close(int);
extern char *ctermid(char *);
extern char *cuserid(char *);
extern int dup(int);
extern int dup2(int, int);
extern int execl(const char *, const char *, ...);
extern int execle(const char *, const char *, ...);
extern int execlp(const char *, const char *, ...);
extern int execv(const char *, char *const *);
extern int execve(const char *, char *const *, char *const *);
extern int execvp(const char *, char *const *);
extern void _exit(int);
extern int fattach(int, const char *);
extern int fchdir(int);
extern int fchown(int, uid_t, gid_t);
extern int fchroot(int);
extern int fdatasync(int);
extern int fdetach(const char *);
extern pid_t fork(void);
extern pid_t fork1(void);
extern long fpathconf(int, int);
extern int fsync(int);
extern int ftruncate(int, off_t);
extern char *getcwd(char *, size_t);
extern int getdtablesize(void);
extern gid_t getegid(void);
extern uid_t geteuid(void);
extern gid_t getgid(void);
extern int getgroups(int, gid_t *);
extern long gethostid(void);
extern int gethostname(char *, int);
extern char *getlogin(void);
extern int getpagesize(void);
extern pid_t getpgid(pid_t);
extern pid_t getpid(void);
extern pid_t getppid(void);
extern pid_t getpgrp(void);
char *gettxt(const char *, const char *);
extern pid_t getsid(pid_t);
extern uid_t getuid(void);
extern char *getwd(char *);
extern int ioctl(int, int, ...);
extern int isatty(int);
extern int link(const char *, const char *);
extern int lchown(const char *, uid_t, gid_t);
extern offset_t llseek(int, offset_t, int);
extern int lockf(int, int, off_t);
extern off_t lseek(int, off_t, int);
extern int mincore(caddr_t, size_t, char *);
extern int nice(int);
extern long pathconf(const char *, int);
extern int pause(void);
extern int pipe(int *);
extern ssize_t pread(int, void *, size_t, off_t);
extern void profil(unsigned short *, size_t, int, unsigned int);
extern int ptrace(int, pid_t, int, int);
extern ssize_t pwrite(int, const void *, size_t, off_t);
extern ssize_t read(int, void *, size_t);
extern int readlink(const char *, char *, size_t);
extern int rename(const char *, const char *);
extern int resolvepath(const char *, char *, size_t);
extern int rmdir(const char *);
extern void *sbrk(int);
extern int setgid(gid_t);
extern int setegid(gid_t);
extern int setgroups(int, const gid_t *);
extern int setpgid(pid_t, pid_t);
extern pid_t setpgrp(void);
extern int setregid(gid_t, gid_t);
extern int setreuid(uid_t, uid_t);
extern pid_t setsid(void);
extern int setuid(uid_t);
extern int seteuid(uid_t);
extern unsigned sleep(unsigned);
extern int stime(const time_t *);
extern int symlink(const char *, const char *);
extern void sync(void);
extern long sysconf(int);
extern pid_t tcgetpgrp(int);
extern int tcsetpgrp(int, pid_t);
extern off_t tell(int);
extern int truncate(const char *, off_t);
extern char *ttyname(int);
extern useconds_t ualarm(useconds_t, useconds_t);
extern int unlink(const char *);
extern int usleep(useconds_t);
extern pid_t vfork(void);
extern void vhangup(void);
extern ssize_t write(int, const void *, size_t);
extern void yield(void);
extern int ftruncate64(int, off64_t);
extern off64_t lseek64(int, off64_t, int);
extern ssize_t pread64(int, void *, size_t, off64_t);
extern ssize_t pwrite64(int, const void *, size_t, off64_t);
extern off64_t tell64(int);
extern int truncate64(const char *, off64_t);
extern int lockf64(int, int, off64_t);
extern int isalnum(int);
extern int isalpha(int);
extern int iscntrl(int);
extern int isdigit(int);
extern int isgraph(int);
extern int islower(int);
extern int isprint(int);
extern int ispunct(int);
extern int isspace(int);
extern int isupper(int);
extern int isxdigit(int);
extern int tolower(int);
extern int toupper(int);
extern int isascii(int);
extern int toascii(int);
extern int _tolower(int);
extern int _toupper(int);
extern unsigned char __ctype[];
extern unsigned int *__ctype_mask;
extern long *__trans_upper;
extern long *__trans_lower;
extern void *memcpy(void *, const void *, size_t);
extern void *memmove(void *, const void *, size_t);
extern char *strcpy(char *, const char *);
extern char *strncpy(char *, const char *, size_t);
extern char *strcat(char *, const char *);
extern char *strncat(char *, const char *, size_t);
extern int memcmp(const void *, const void *, size_t);
extern int strcmp(const char *, const char *);
extern int strcoll(const char *, const char *);
extern int strncmp(const char *, const char *, size_t);
extern size_t strxfrm(char *, const char *, size_t);
extern void *memchr(const void *, int, size_t);
extern char *strchr(const char *, int);
extern size_t strcspn(const char *, const char *);
extern char *strpbrk(const char *, const char *);
extern char *strrchr(const char *, int);
extern size_t strspn(const char *, const char *);
extern char *strstr(const char *, const char *);
extern char *strtok(char *, const char *);
extern void *memset(void *, int, size_t);
extern char *strerror(int);
extern size_t strlen(const char *);
extern void *memccpy(void *, const void *, int, size_t);
extern char *strsignal(int);
extern int ffs(int);
extern int strcasecmp(const char *, const char *);
extern int strncasecmp(const char *, const char *, size_t);
extern char *strdup(const char *);
typedef unsigned long XID;
typedef unsigned long Mask;
typedef unsigned long Atom;
typedef unsigned long VisualID;
typedef unsigned long Time;
typedef XID Window;
typedef XID Drawable;
typedef XID Font;
typedef XID Pixmap;
typedef XID Cursor;
typedef XID Colormap;
typedef XID GContext;
typedef XID KeySym;
typedef unsigned char KeyCode;
typedef int ptrdiff_t;
typedef char *XPointer;
typedef struct _XExtData {
        int number;
        struct _XExtData *next;
        int (*free_private)();
        XPointer private_data;
} XExtData;
typedef struct {
        int extension;
        int major_opcode;
        int first_event;
        int first_error;
} XExtCodes;
typedef struct {
    int depth;
    int bits_per_pixel;
    int scanline_pad;
} XPixmapFormatValues;
typedef struct {
        int function;
        unsigned long plane_mask;
        unsigned long foreground;
        unsigned long background;
        int line_width;
        int line_style;
        int cap_style;
        int join_style;
        int fill_style;
        int fill_rule;
        int arc_mode;
        Pixmap tile;
        Pixmap stipple;
        int ts_x_origin;
        int ts_y_origin;
        Font font;
        int subwindow_mode;
        int graphics_exposures;
        int clip_x_origin;
        int clip_y_origin;
        Pixmap clip_mask;
        int dash_offset;
        char dashes;
} XGCValues;
typedef struct _XGC
*GC;
typedef struct {
        XExtData *ext_data;
        VisualID visualid;
        int class;
        unsigned long red_mask, green_mask, blue_mask;
        int bits_per_rgb;
        int map_entries;
} Visual;
typedef struct {
        int depth;
        int nvisuals;
        Visual *visuals;
} Depth;
struct _XDisplay;
typedef struct {
        XExtData *ext_data;
        struct _XDisplay *display;
        Window root;
        int width, height;
        int mwidth, mheight;
        int ndepths;
        Depth *depths;
        int root_depth;
        Visual *root_visual;
        GC default_gc;
        Colormap cmap;
        unsigned long white_pixel;
        unsigned long black_pixel;
        int max_maps, min_maps;
        int backing_store;
        int save_unders;
        long root_input_mask;
} Screen;
typedef struct {
        XExtData *ext_data;
        int depth;
        int bits_per_pixel;
        int scanline_pad;
} ScreenFormat;
typedef struct {
    Pixmap background_pixmap;
    unsigned long background_pixel;
    Pixmap border_pixmap;
    unsigned long border_pixel;
    int bit_gravity;
    int win_gravity;
    int backing_store;
    unsigned long backing_planes;
    unsigned long backing_pixel;
    int save_under;
    long event_mask;
    long do_not_propagate_mask;
    int override_redirect;
    Colormap colormap;
    Cursor cursor;
} XSetWindowAttributes;
typedef struct {
    int x, y;
    int width, height;
    int border_width;
    int depth;
    Visual *visual;
    Window root;
    int class;
    int bit_gravity;
    int win_gravity;
    int backing_store;
    unsigned long backing_planes;
    unsigned long backing_pixel;
    int save_under;
    Colormap colormap;
    int map_installed;
    int map_state;
    long all_event_masks;
    long your_event_mask;
    long do_not_propagate_mask;
    int override_redirect;
    Screen *screen;
} XWindowAttributes;
typedef struct {
        int family;
        int length;
        char *address;
} XHostAddress;
typedef struct _XImage {
    int width, height;
    int xoffset;
    int format;
    char *data;
    int byte_order;
    int bitmap_unit;
    int bitmap_bit_order;
    int bitmap_pad;
    int depth;
    int bytes_per_line;
    int bits_per_pixel;
    unsigned long red_mask;
    unsigned long green_mask;
    unsigned long blue_mask;
    XPointer obdata;
    struct funcs {
        struct _XImage *(*create_image)();
        int (*destroy_image) (struct _XImage *);
        unsigned long (*get_pixel) (struct _XImage *, int, int);
        int (*put_pixel) (struct _XImage *, int, int, unsigned long);
        struct _XImage *(*sub_image)(struct _XImage *, int, int, unsigned int, unsigned int);
        int (*add_pixel) (struct _XImage *, long);
        } f;
} XImage;
typedef struct {
    int x, y;
    int width, height;
    int border_width;
    Window sibling;
    int stack_mode;
} XWindowChanges;
typedef struct {
        unsigned long pixel;
        unsigned short red, green, blue;
        char flags;
        char pad;
} XColor;
typedef struct {
    short x1, y1, x2, y2;
} XSegment;
typedef struct {
    short x, y;
} XPoint;
typedef struct {
    short x, y;
    unsigned short width, height;
} XRectangle;
typedef struct {
    short x, y;
    unsigned short width, height;
    short angle1, angle2;
} XArc;
typedef struct {
        int key_click_percent;
        int bell_percent;
        int bell_pitch;
        int bell_duration;
        int led;
        int led_mode;
        int key;
        int auto_repeat_mode;
} XKeyboardControl;
typedef struct {
        int key_click_percent;
        int bell_percent;
        unsigned int bell_pitch, bell_duration;
        unsigned long led_mask;
        int global_auto_repeat;
        char auto_repeats[32];
} XKeyboardState;
typedef struct {
        Time time;
        short x, y;
} XTimeCoord;
typedef struct {
        int max_keypermod;
        KeyCode *modifiermap;
} XModifierKeymap;
typedef struct _XDisplay Display;
struct _XPrivate;
struct _XrmHashBucketRec;
typedef struct
{
        XExtData *ext_data;
        struct _XPrivate *private1;
        int fd;
        int private2;
        int proto_major_version;
        int proto_minor_version;
        char *vendor;
        XID private3;
        XID private4;
        XID private5;
        int private6;
        XID (*resource_alloc)();
        int byte_order;
        int bitmap_unit;
        int bitmap_pad;
        int bitmap_bit_order;
        int nformats;
        ScreenFormat *pixmap_format;
        int private8;
        int release;
        struct _XPrivate *private9, *private10;
        int qlen;
        unsigned long last_request_read;
        unsigned long request;
        XPointer private11;
        XPointer private12;
        XPointer private13;
        XPointer private14;
        unsigned max_request_size;
        struct _XrmHashBucketRec *db;
        int (*private15)();
        char *display_name;
        int default_screen;
        int nscreens;
        Screen *screens;
        unsigned long motion_buffer;
        unsigned long private16;
        int min_keycode;
        int max_keycode;
        XPointer private17;
        XPointer private18;
        int private19;
        char *xdefaults;
}
*_XPrivDisplay;
typedef struct {
        int type;
        unsigned long serial;
        int send_event;
        Display *display;
        Window window;
        Window root;
        Window subwindow;
        Time time;
        int x, y;
        int x_root, y_root;
        unsigned int state;
        unsigned int keycode;
        int same_screen;
} XKeyEvent;
typedef XKeyEvent XKeyPressedEvent;
typedef XKeyEvent XKeyReleasedEvent;
typedef struct {
        int type;
        unsigned long serial;
        int send_event;
        Display *display;
        Window window;
        Window root;
        Window subwindow;
        Time time;
        int x, y;
        int x_root, y_root;
        unsigned int state;
        unsigned int button;
        int same_screen;
} XButtonEvent;
typedef XButtonEvent XButtonPressedEvent;
typedef XButtonEvent XButtonReleasedEvent;
typedef struct {
        int type;
        unsigned long serial;
        int send_event;
        Display *display;
        Window window;
        Window root;
        Window subwindow;
        Time time;
        int x, y;
        int x_root, y_root;
        unsigned int state;
        char is_hint;
        int same_screen;
} XMotionEvent;
typedef XMotionEvent XPointerMovedEvent;
typedef struct {
        int type;
        unsigned long serial;
        int send_event;
        Display *display;
        Window window;
        Window root;
        Window subwindow;
        Time time;
        int x, y;
        int x_root, y_root;
        int mode;
        int detail;
        int same_screen;
        int focus;
        unsigned int state;
} XCrossingEvent;
typedef XCrossingEvent XEnterWindowEvent;
typedef XCrossingEvent XLeaveWindowEvent;
typedef struct {
        int type;
        unsigned long serial;
        int send_event;
        Display *display;
        Window window;
        int mode;
        int detail;
} XFocusChangeEvent;
typedef XFocusChangeEvent XFocusInEvent;
typedef XFocusChangeEvent XFocusOutEvent;
typedef struct {
        int type;
        unsigned long serial;
        int send_event;
        Display *display;
        Window window;
        char key_vector[32];
} XKeymapEvent;
typedef struct {
        int type;
        unsigned long serial;
        int send_event;
        Display *display;
        Window window;
        int x, y;
        int width, height;
        int count;
} XExposeEvent;
typedef struct {
        int type;
        unsigned long serial;
        int send_event;
        Display *display;
        Drawable drawable;
        int x, y;
        int width, height;
        int count;
        int major_code;
        int minor_code;
} XGraphicsExposeEvent;
typedef struct {
        int type;
        unsigned long serial;
        int send_event;
        Display *display;
        Drawable drawable;
        int major_code;
        int minor_code;
} XNoExposeEvent;
typedef struct {
        int type;
        unsigned long serial;
        int send_event;
        Display *display;
        Window window;
        int state;
} XVisibilityEvent;
typedef struct {
        int type;
        unsigned long serial;
        int send_event;
        Display *display;
        Window parent;
        Window window;
        int x, y;
        int width, height;
        int border_width;
        int override_redirect;
} XCreateWindowEvent;
typedef struct {
        int type;
        unsigned long serial;
        int send_event;
        Display *display;
        Window event;
        Window window;
} XDestroyWindowEvent;
typedef struct {
        int type;
        unsigned long serial;
        int send_event;
        Display *display;
        Window event;
        Window window;
        int from_configure;
} XUnmapEvent;
typedef struct {
        int type;
        unsigned long serial;
        int send_event;
        Display *display;
        Window event;
        Window window;
        int override_redirect;
} XMapEvent;
typedef struct {
        int type;
        unsigned long serial;
        int send_event;
        Display *display;
        Window parent;
        Window window;
} XMapRequestEvent;
typedef struct {
        int type;
        unsigned long serial;
        int send_event;
        Display *display;
        Window event;
        Window window;
        Window parent;
        int x, y;
        int override_redirect;
} XReparentEvent;
typedef struct {
        int type;
        unsigned long serial;
        int send_event;
        Display *display;
        Window event;
        Window window;
        int x, y;
        int width, height;
        int border_width;
        Window above;
        int override_redirect;
} XConfigureEvent;
typedef struct {
        int type;
        unsigned long serial;
        int send_event;
        Display *display;
        Window event;
        Window window;
        int x, y;
} XGravityEvent;
typedef struct {
        int type;
        unsigned long serial;
        int send_event;
        Display *display;
        Window window;
        int width, height;
} XResizeRequestEvent;
typedef struct {
        int type;
        unsigned long serial;
        int send_event;
        Display *display;
        Window parent;
        Window window;
        int x, y;
        int width, height;
        int border_width;
        Window above;
        int detail;
        unsigned long value_mask;
} XConfigureRequestEvent;
typedef struct {
        int type;
        unsigned long serial;
        int send_event;
        Display *display;
        Window event;
        Window window;
        int place;
} XCirculateEvent;
typedef struct {
        int type;
        unsigned long serial;
        int send_event;
        Display *display;
        Window parent;
        Window window;
        int place;
} XCirculateRequestEvent;
typedef struct {
        int type;
        unsigned long serial;
        int send_event;
        Display *display;
        Window window;
        Atom atom;
        Time time;
        int state;
} XPropertyEvent;
typedef struct {
        int type;
        unsigned long serial;
        int send_event;
        Display *display;
        Window window;
        Atom selection;
        Time time;
} XSelectionClearEvent;
typedef struct {
        int type;
        unsigned long serial;
        int send_event;
        Display *display;
        Window owner;
        Window requestor;
        Atom selection;
        Atom target;
        Atom property;
        Time time;
} XSelectionRequestEvent;
typedef struct {
        int type;
        unsigned long serial;
        int send_event;
        Display *display;
        Window requestor;
        Atom selection;
        Atom target;
        Atom property;
        Time time;
} XSelectionEvent;
typedef struct {
        int type;
        unsigned long serial;
        int send_event;
        Display *display;
        Window window;
        Colormap colormap;
        int new;
        int state;
} XColormapEvent;
typedef struct {
        int type;
        unsigned long serial;
        int send_event;
        Display *display;
        Window window;
        Atom message_type;
        int format;
        union {
                char b[20];
                short s[10];
                long l[5];
                } data;
} XClientMessageEvent;
typedef struct {
        int type;
        unsigned long serial;
        int send_event;
        Display *display;
        Window window;
        int request;
        int first_keycode;
        int count;
} XMappingEvent;
typedef struct {
        int type;
        Display *display;
        XID resourceid;
        unsigned long serial;
        unsigned char error_code;
        unsigned char request_code;
        unsigned char minor_code;
} XErrorEvent;
typedef struct {
        int type;
        unsigned long serial;
        int send_event;
        Display *display;
        Window window;
} XAnyEvent;
typedef union _XEvent {
        int type;
        XAnyEvent xany;
        XKeyEvent xkey;
        XButtonEvent xbutton;
        XMotionEvent xmotion;
        XCrossingEvent xcrossing;
        XFocusChangeEvent xfocus;
        XExposeEvent xexpose;
        XGraphicsExposeEvent xgraphicsexpose;
        XNoExposeEvent xnoexpose;
        XVisibilityEvent xvisibility;
        XCreateWindowEvent xcreatewindow;
        XDestroyWindowEvent xdestroywindow;
        XUnmapEvent xunmap;
        XMapEvent xmap;
        XMapRequestEvent xmaprequest;
        XReparentEvent xreparent;
        XConfigureEvent xconfigure;
        XGravityEvent xgravity;
        XResizeRequestEvent xresizerequest;
        XConfigureRequestEvent xconfigurerequest;
        XCirculateEvent xcirculate;
        XCirculateRequestEvent xcirculaterequest;
        XPropertyEvent xproperty;
        XSelectionClearEvent xselectionclear;
        XSelectionRequestEvent xselectionrequest;
        XSelectionEvent xselection;
        XColormapEvent xcolormap;
        XClientMessageEvent xclient;
        XMappingEvent xmapping;
        XErrorEvent xerror;
        XKeymapEvent xkeymap;
        long pad[24];
} XEvent;
typedef struct {
    short lbearing;
    short rbearing;
    short width;
    short ascent;
    short descent;
    unsigned short attributes;
} XCharStruct;
typedef struct {
    Atom name;
    unsigned long card32;
} XFontProp;
typedef struct {
    XExtData *ext_data;
    Font fid;
    unsigned direction;
    unsigned min_char_or_byte2;
    unsigned max_char_or_byte2;
    unsigned min_byte1;
    unsigned max_byte1;
    int all_chars_exist;
    unsigned default_char;
    int n_properties;
    XFontProp *properties;
    XCharStruct min_bounds;
    XCharStruct max_bounds;
    XCharStruct *per_char;
    int ascent;
    int descent;
} XFontStruct;
typedef struct {
    char *chars;
    int nchars;
    int delta;
    Font font;
} XTextItem;
typedef struct {
    unsigned char byte1;
    unsigned char byte2;
} XChar2b;
typedef struct {
    XChar2b *chars;
    int nchars;
    int delta;
    Font font;
} XTextItem16;
typedef union { Display *display;
                GC gc;
                Visual *visual;
                Screen *screen;
                ScreenFormat *pixmap_format;
                XFontStruct *font; } XEDataObject;
typedef struct {
    XRectangle max_ink_extent;
    XRectangle max_logical_extent;
} XFontSetExtents;
typedef void (*XOMProc)();
typedef struct _XOM *XOM;
typedef struct _XOC *XOC, *XFontSet;
typedef struct {
    char *chars;
    int nchars;
    int delta;
    XFontSet font_set;
} XmbTextItem;
typedef struct {
    wchar_t *chars;
    int nchars;
    int delta;
    XFontSet font_set;
} XwcTextItem;
typedef struct {
    int charset_count;
    char **charset_list;
} XOMCharSetList;
typedef enum {
    XOMOrientation_LTR_TTB,
    XOMOrientation_RTL_TTB,
    XOMOrientation_TTB_LTR,
    XOMOrientation_TTB_RTL,
    XOMOrientation_Context
} XOrientation;
typedef struct {
    int num_orientation;
    XOrientation *orientation;
} XOMOrientation;
typedef struct {
    int num_font;
    XFontStruct **font_struct_list;
    char **font_name_list;
} XOMFontInfo;
typedef void (*XIMProc)();
typedef struct _XIM *XIM;
typedef struct _XIC *XIC;
typedef unsigned long XIMStyle;
typedef struct {
    unsigned short count_styles;
    XIMStyle *supported_styles;
} XIMStyles;
typedef void *XVaNestedList;
typedef struct {
    XPointer client_data;
    XIMProc callback;
} XIMCallback;
typedef unsigned long XIMFeedback;
typedef struct _XIMText {
    unsigned short length;
    XIMFeedback *feedback;
    int encoding_is_wchar;
    union {
        char *multi_byte;
        wchar_t *wide_char;
    } string;
} XIMText;
typedef unsigned long XIMPreeditState;
typedef struct _XIMPreeditStateNotifyCallbackStruct {
    XIMPreeditState state;
} XIMPreeditStateNotifyCallbackStruct;
typedef unsigned long XIMResetState;
typedef unsigned long XIMStringConversionFeedback;
typedef struct _XIMStringConversionText {
    unsigned short length;
    XIMStringConversionFeedback *feedback;
    int encoding_is_wchar;
    union {
        char *mbs;
        wchar_t *wcs;
    } string;
} XIMStringConversionText;
typedef unsigned short XIMStringConversionPosition;
typedef unsigned short XIMStringConversionType;
typedef unsigned short XIMStringConversionOperation;
typedef enum {
    XIMForwardChar, XIMBackwardChar,
    XIMForwardWord, XIMBackwardWord,
    XIMCaretUp, XIMCaretDown,
    XIMNextLine, XIMPreviousLine,
    XIMLineStart, XIMLineEnd,
    XIMAbsolutePosition,
    XIMDontChange
} XIMCaretDirection;
typedef struct _XIMStringConversionCallbackStruct {
    XIMStringConversionPosition position;
    XIMCaretDirection direction;
    XIMStringConversionOperation operation;
    unsigned short factor;
    XIMStringConversionText *text;
} XIMStringConversionCallbackStruct;
typedef struct _XIMPreeditDrawCallbackStruct {
    int caret;
    int chg_first;
    int chg_length;
    XIMText *text;
} XIMPreeditDrawCallbackStruct;
typedef enum {
    XIMIsInvisible,
    XIMIsPrimary,
    XIMIsSecondary
} XIMCaretStyle;
typedef struct _XIMPreeditCaretCallbackStruct {
    int position;
    XIMCaretDirection direction;
    XIMCaretStyle style;
} XIMPreeditCaretCallbackStruct;
typedef enum {
    XIMTextType,
    XIMBitmapType
} XIMStatusDataType;
typedef struct _XIMStatusDrawCallbackStruct {
    XIMStatusDataType type;
    union {
        XIMText *text;
        Pixmap bitmap;
    } data;
} XIMStatusDrawCallbackStruct;
typedef struct _XIMHotKeyTrigger {
    KeySym keysym;
    int modifier;
    int modifier_mask;
} XIMHotKeyTrigger;
typedef struct _XIMHotKeyTriggers {
    int num_hot_key;
    XIMHotKeyTrigger *key;
} XIMHotKeyTriggers;
typedef unsigned long XIMHotKeyState;
typedef struct {
    unsigned short count_values;
    char **supported_values;
} XIMValuesList;
extern int _Xdebug;
extern XFontStruct *XLoadQueryFont(
    Display* ,
    const char*
);
extern XFontStruct *XQueryFont(
    Display* ,
    XID
);
extern XTimeCoord *XGetMotionEvents(
    Display* ,
    Window ,
    Time ,
    Time ,
    int*
);
extern XModifierKeymap *XDeleteModifiermapEntry(
    XModifierKeymap* ,
    unsigned int ,
    int
);
extern XModifierKeymap *XGetModifierMapping(
    Display*
);
extern XModifierKeymap *XInsertModifiermapEntry(
    XModifierKeymap* ,
    unsigned int ,
    int
);
extern XModifierKeymap *XNewModifiermap(
    int
);
extern XImage *XCreateImage(
    Display* ,
    Visual* ,
    unsigned int ,
    int ,
    int ,
    char* ,
    unsigned int ,
    unsigned int ,
    int ,
    int
);
extern int XInitImage(
    XImage*
);
extern XImage *XGetImage(
    Display* ,
    Drawable ,
    int ,
    int ,
    unsigned int ,
    unsigned int ,
    unsigned long ,
    int
);
extern XImage *XGetSubImage(
    Display* ,
    Drawable ,
    int ,
    int ,
    unsigned int ,
    unsigned int ,
    unsigned long ,
    int ,
    XImage* ,
    int ,
    int
);
extern Display *XOpenDisplay(
    const char*
);
extern void XrmInitialize(
    void
);
extern char *XFetchBytes(
    Display* ,
    int*
);
extern char *XFetchBuffer(
    Display* ,
    int* ,
    int
);
extern char *XGetAtomName(
    Display* ,
    Atom
);
extern int XGetAtomNames(
    Display* ,
    Atom* ,
    int ,
    char**
);
extern char *XGetDefault(
    Display* ,
    const char* ,
    const char*
);
extern char *XDisplayName(
    const char*
);
extern char *XKeysymToString(
    KeySym
);
extern int (*XSynchronize(
    Display* ,
    int
))();
extern int (*XSetAfterFunction(
    Display* ,
    int (*) (
             Display*
            )
))();
extern Atom XInternAtom(
    Display* ,
    const char* ,
    int
);
extern int XInternAtoms(
    Display* ,
    char** ,
    int ,
    int ,
    Atom*
);
extern Colormap XCopyColormapAndFree(
    Display* ,
    Colormap
);
extern Colormap XCreateColormap(
    Display* ,
    Window ,
    Visual* ,
    int
);
extern Cursor XCreatePixmapCursor(
    Display* ,
    Pixmap ,
    Pixmap ,
    XColor* ,
    XColor* ,
    unsigned int ,
    unsigned int
);
extern Cursor XCreateGlyphCursor(
    Display* ,
    Font ,
    Font ,
    unsigned int ,
    unsigned int ,
    XColor* ,
    XColor*
);
extern Cursor XCreateFontCursor(
    Display* ,
    unsigned int
);
extern Font XLoadFont(
    Display* ,
    const char*
);
extern GC XCreateGC(
    Display* ,
    Drawable ,
    unsigned long ,
    XGCValues*
);
extern GContext XGContextFromGC(
    GC
);
extern void XFlushGC(
    Display* ,
    GC
);
extern Pixmap XCreatePixmap(
    Display* ,
    Drawable ,
    unsigned int ,
    unsigned int ,
    unsigned int
);
extern Pixmap XCreateBitmapFromData(
    Display* ,
    Drawable ,
    const char* ,
    unsigned int ,
    unsigned int
);
extern Pixmap XCreatePixmapFromBitmapData(
    Display* ,
    Drawable ,
    char* ,
    unsigned int ,
    unsigned int ,
    unsigned long ,
    unsigned long ,
    unsigned int
);
extern Window XCreateSimpleWindow(
    Display* ,
    Window ,
    int ,
    int ,
    unsigned int ,
    unsigned int ,
    unsigned int ,
    unsigned long ,
    unsigned long
);
extern Window XGetSelectionOwner(
    Display* ,
    Atom
);
extern Window XCreateWindow(
    Display* ,
    Window ,
    int ,
    int ,
    unsigned int ,
    unsigned int ,
    unsigned int ,
    int ,
    unsigned int ,
    Visual* ,
    unsigned long ,
    XSetWindowAttributes*
);
extern Colormap *XListInstalledColormaps(
    Display* ,
    Window ,
    int*
);
extern char **XListFonts(
    Display* ,
    const char* ,
    int ,
    int*
);
extern char **XListFontsWithInfo(
    Display* ,
    const char* ,
    int ,
    int* ,
    XFontStruct**
);
extern char **XGetFontPath(
    Display* ,
    int*
);
extern char **XListExtensions(
    Display* ,
    int*
);
extern Atom *XListProperties(
    Display* ,
    Window ,
    int*
);
extern XHostAddress *XListHosts(
    Display* ,
    int* ,
    int*
);
extern KeySym XKeycodeToKeysym(
    Display* ,
    unsigned int ,
    int
);
extern KeySym XLookupKeysym(
    XKeyEvent* ,
    int
);
extern KeySym *XGetKeyboardMapping(
    Display* ,
    unsigned int ,
    int ,
    int*
);
extern KeySym XStringToKeysym(
    const char*
);
extern long XMaxRequestSize(
    Display*
);
extern long XExtendedMaxRequestSize(
    Display*
);
extern char *XResourceManagerString(
    Display*
);
extern char *XScreenResourceString(
        Screen*
);
extern unsigned long XDisplayMotionBufferSize(
    Display*
);
extern VisualID XVisualIDFromVisual(
    Visual*
);
extern int XInitThreads(
    void
);
extern void XLockDisplay(
    Display*
);
extern void XUnlockDisplay(
    Display*
);
extern XExtCodes *XInitExtension(
    Display* ,
    const char*
);
extern XExtCodes *XAddExtension(
    Display*
);
extern XExtData *XFindOnExtensionList(
    XExtData** ,
    int
);
extern XExtData **XEHeadOfExtensionList(
    XEDataObject
);
extern Window XRootWindow(
    Display* ,
    int
);
extern Window XDefaultRootWindow(
    Display*
);
extern Window XRootWindowOfScreen(
    Screen*
);
extern Visual *XDefaultVisual(
    Display* ,
    int
);
extern Visual *XDefaultVisualOfScreen(
    Screen*
);
extern GC XDefaultGC(
    Display* ,
    int
);
extern GC XDefaultGCOfScreen(
    Screen*
);
extern unsigned long XBlackPixel(
    Display* ,
    int
);
extern unsigned long XWhitePixel(
    Display* ,
    int
);
extern unsigned long XAllPlanes(
    void
);
extern unsigned long XBlackPixelOfScreen(
    Screen*
);
extern unsigned long XWhitePixelOfScreen(
    Screen*
);
extern unsigned long XNextRequest(
    Display*
);
extern unsigned long XLastKnownRequestProcessed(
    Display*
);
extern char *XServerVendor(
    Display*
);
extern char *XDisplayString(
    Display*
);
extern Colormap XDefaultColormap(
    Display* ,
    int
);
extern Colormap XDefaultColormapOfScreen(
    Screen*
);
extern Display *XDisplayOfScreen(
    Screen*
);
extern Screen *XScreenOfDisplay(
    Display* ,
    int
);
extern Screen *XDefaultScreenOfDisplay(
    Display*
);
extern long XEventMaskOfScreen(
    Screen*
);
extern int XScreenNumberOfScreen(
    Screen*
);
typedef int (*XErrorHandler) (
    Display* ,
    XErrorEvent*
);
extern XErrorHandler XSetErrorHandler (
    XErrorHandler
);
typedef int (*XIOErrorHandler) (
    Display*
);
extern XIOErrorHandler XSetIOErrorHandler (
    XIOErrorHandler
);
extern XPixmapFormatValues *XListPixmapFormats(
    Display* ,
    int*
);
extern int *XListDepths(
    Display* ,
    int ,
    int*
);
extern int XReconfigureWMWindow(
    Display* ,
    Window ,
    int ,
    unsigned int ,
    XWindowChanges*
);
extern int XGetWMProtocols(
    Display* ,
    Window ,
    Atom** ,
    int*
);
extern int XSetWMProtocols(
    Display* ,
    Window ,
    Atom* ,
    int
);
extern int XIconifyWindow(
    Display* ,
    Window ,
    int
);
extern int XWithdrawWindow(
    Display* ,
    Window ,
    int
);
extern int XGetCommand(
    Display* ,
    Window ,
    char*** ,
    int*
);
extern int XGetWMColormapWindows(
    Display* ,
    Window ,
    Window** ,
    int*
);
extern int XSetWMColormapWindows(
    Display* ,
    Window ,
    Window* ,
    int
);
extern void XFreeStringList(
    char**
);
extern XSetTransientForHint(
    Display* ,
    Window ,
    Window
);
extern XActivateScreenSaver(
    Display*
);
extern XAddHost(
    Display* ,
    XHostAddress*
);
extern XAddHosts(
    Display* ,
    XHostAddress* ,
    int
);
extern XAddToExtensionList(
    struct _XExtData** ,
    XExtData*
);
extern XAddToSaveSet(
    Display* ,
    Window
);
extern int XAllocColor(
    Display* ,
    Colormap ,
    XColor*
);
extern int XAllocColorCells(
    Display* ,
    Colormap ,
    int ,
    unsigned long* ,
    unsigned int ,
    unsigned long* ,
    unsigned int
);
extern int XAllocColorPlanes(
    Display* ,
    Colormap ,
    int ,
    unsigned long* ,
    int ,
    int ,
    int ,
    int ,
    unsigned long* ,
    unsigned long* ,
    unsigned long*
);
extern int XAllocNamedColor(
    Display* ,
    Colormap ,
    const char* ,
    XColor* ,
    XColor*
);
extern XAllowEvents(
    Display* ,
    int ,
    Time
);
extern XAutoRepeatOff(
    Display*
);
extern XAutoRepeatOn(
    Display*
);
extern XBell(
    Display* ,
    int
);
extern int XBitmapBitOrder(
    Display*
);
extern int XBitmapPad(
    Display*
);
extern int XBitmapUnit(
    Display*
);
extern int XCellsOfScreen(
    Screen*
);
extern XChangeActivePointerGrab(
    Display* ,
    unsigned int ,
    Cursor ,
    Time
);
extern XChangeGC(
    Display* ,
    GC ,
    unsigned long ,
    XGCValues*
);
extern XChangeKeyboardControl(
    Display* ,
    unsigned long ,
    XKeyboardControl*
);
extern XChangeKeyboardMapping(
    Display* ,
    int ,
    int ,
    KeySym* ,
    int
);
extern XChangePointerControl(
    Display* ,
    int ,
    int ,
    int ,
    int ,
    int
);
extern XChangeProperty(
    Display* ,
    Window ,
    Atom ,
    Atom ,
    int ,
    int ,
    const unsigned char* ,
    int
);
extern XChangeSaveSet(
    Display* ,
    Window ,
    int
);
extern XChangeWindowAttributes(
    Display* ,
    Window ,
    unsigned long ,
    XSetWindowAttributes*
);
extern int XCheckIfEvent(
    Display* ,
    XEvent* ,
    int (*) (
               Display* ,
               XEvent* ,
               XPointer
             ) ,
    XPointer
);
extern int XCheckMaskEvent(
    Display* ,
    long ,
    XEvent*
);
extern int XCheckTypedEvent(
    Display* ,
    int ,
    XEvent*
);
extern int XCheckTypedWindowEvent(
    Display* ,
    Window ,
    int ,
    XEvent*
);
extern int XCheckWindowEvent(
    Display* ,
    Window ,
    long ,
    XEvent*
);
extern XCirculateSubwindows(
    Display* ,
    Window ,
    int
);
extern XCirculateSubwindowsDown(
    Display* ,
    Window
);
extern XCirculateSubwindowsUp(
    Display* ,
    Window
);
extern XClearArea(
    Display* ,
    Window ,
    int ,
    int ,
    unsigned int ,
    unsigned int ,
    int
);
extern XClearWindow(
    Display* ,
    Window
);
extern XCloseDisplay(
    Display*
);
extern XConfigureWindow(
    Display* ,
    Window ,
    unsigned int ,
    XWindowChanges*
);
extern int XConnectionNumber(
    Display*
);
extern XConvertSelection(
    Display* ,
    Atom ,
    Atom ,
    Atom ,
    Window ,
    Time
);
extern XCopyArea(
    Display* ,
    Drawable ,
    Drawable ,
    GC ,
    int ,
    int ,
    unsigned int ,
    unsigned int ,
    int ,
    int
);
extern XCopyGC(
    Display* ,
    GC ,
    unsigned long ,
    GC
);
extern XCopyPlane(
    Display* ,
    Drawable ,
    Drawable ,
    GC ,
    int ,
    int ,
    unsigned int ,
    unsigned int ,
    int ,
    int ,
    unsigned long
);
extern int XDefaultDepth(
    Display* ,
    int
);
extern int XDefaultDepthOfScreen(
    Screen*
);
extern int XDefaultScreen(
    Display*
);
extern XDefineCursor(
    Display* ,
    Window ,
    Cursor
);
extern XDeleteProperty(
    Display* ,
    Window ,
    Atom
);
extern XDestroyWindow(
    Display* ,
    Window
);
extern XDestroySubwindows(
    Display* ,
    Window
);
extern int XDoesBackingStore(
    Screen*
);
extern int XDoesSaveUnders(
    Screen*
);
extern XDisableAccessControl(
    Display*
);
extern int XDisplayCells(
    Display* ,
    int
);
extern int XDisplayHeight(
    Display* ,
    int
);
extern int XDisplayHeightMM(
    Display* ,
    int
);
extern XDisplayKeycodes(
    Display* ,
    int* ,
    int*
);
extern int XDisplayPlanes(
    Display* ,
    int
);
extern int XDisplayWidth(
    Display* ,
    int
);
extern int XDisplayWidthMM(
    Display* ,
    int
);
extern XDrawArc(
    Display* ,
    Drawable ,
    GC ,
    int ,
    int ,
    unsigned int ,
    unsigned int ,
    int ,
    int
);
extern XDrawArcs(
    Display* ,
    Drawable ,
    GC ,
    XArc* ,
    int
);
extern XDrawImageString(
    Display* ,
    Drawable ,
    GC ,
    int ,
    int ,
    const char* ,
    int
);
extern XDrawImageString16(
    Display* ,
    Drawable ,
    GC ,
    int ,
    int ,
    const XChar2b* ,
    int
);
extern XDrawLine(
    Display* ,
    Drawable ,
    GC ,
    int ,
    int ,
    int ,
    int
);
extern XDrawLines(
    Display* ,
    Drawable ,
    GC ,
    XPoint* ,
    int ,
    int
);
extern XDrawPoint(
    Display* ,
    Drawable ,
    GC ,
    int ,
    int
);
extern XDrawPoints(
    Display* ,
    Drawable ,
    GC ,
    XPoint* ,
    int ,
    int
);
extern XDrawRectangle(
    Display* ,
    Drawable ,
    GC ,
    int ,
    int ,
    unsigned int ,
    unsigned int
);
extern XDrawRectangles(
    Display* ,
    Drawable ,
    GC ,
    XRectangle* ,
    int
);
extern XDrawSegments(
    Display* ,
    Drawable ,
    GC ,
    XSegment* ,
    int
);
extern XDrawString(
    Display* ,
    Drawable ,
    GC ,
    int ,
    int ,
    const char* ,
    int
);
extern XDrawString16(
    Display* ,
    Drawable ,
    GC ,
    int ,
    int ,
    const XChar2b* ,
    int
);
extern XDrawText(
    Display* ,
    Drawable ,
    GC ,
    int ,
    int ,
    XTextItem* ,
    int
);
extern XDrawText16(
    Display* ,
    Drawable ,
    GC ,
    int ,
    int ,
    XTextItem16* ,
    int
);
extern XEnableAccessControl(
    Display*
);
extern int XEventsQueued(
    Display* ,
    int
);
extern int XFetchName(
    Display* ,
    Window ,
    char**
);
extern XFillArc(
    Display* ,
    Drawable ,
    GC ,
    int ,
    int ,
    unsigned int ,
    unsigned int ,
    int ,
    int
);
extern XFillArcs(
    Display* ,
    Drawable ,
    GC ,
    XArc* ,
    int
);
extern XFillPolygon(
    Display* ,
    Drawable ,
    GC ,
    XPoint* ,
    int ,
    int ,
    int
);
extern XFillRectangle(
    Display* ,
    Drawable ,
    GC ,
    int ,
    int ,
    unsigned int ,
    unsigned int
);
extern XFillRectangles(
    Display* ,
    Drawable ,
    GC ,
    XRectangle* ,
    int
);
extern XFlush(
    Display*
);
extern XForceScreenSaver(
    Display* ,
    int
);
extern XFree(
    void*
);
extern XFreeColormap(
    Display* ,
    Colormap
);
extern XFreeColors(
    Display* ,
    Colormap ,
    unsigned long* ,
    int ,
    unsigned long
);
extern XFreeCursor(
    Display* ,
    Cursor
);
extern XFreeExtensionList(
    char**
);
extern XFreeFont(
    Display* ,
    XFontStruct*
);
extern XFreeFontInfo(
    char** ,
    XFontStruct* ,
    int
);
extern XFreeFontNames(
    char**
);
extern XFreeFontPath(
    char**
);
extern XFreeGC(
    Display* ,
    GC
);
extern XFreeModifiermap(
    XModifierKeymap*
);
extern XFreePixmap(
    Display* ,
    Pixmap
);
extern int XGeometry(
    Display* ,
    int ,
    const char* ,
    const char* ,
    unsigned int ,
    unsigned int ,
    unsigned int ,
    int ,
    int ,
    int* ,
    int* ,
    int* ,
    int*
);
extern XGetErrorDatabaseText(
    Display* ,
    const char* ,
    const char* ,
    const char* ,
    char* ,
    int
);
extern XGetErrorText(
    Display* ,
    int ,
    char* ,
    int
);
extern int XGetFontProperty(
    XFontStruct* ,
    Atom ,
    unsigned long*
);
extern int XGetGCValues(
    Display* ,
    GC ,
    unsigned long ,
    XGCValues*
);
extern int XGetGeometry(
    Display* ,
    Drawable ,
    Window* ,
    int* ,
    int* ,
    unsigned int* ,
    unsigned int* ,
    unsigned int* ,
    unsigned int*
);
extern int XGetIconName(
    Display* ,
    Window ,
    char**
);
extern XGetInputFocus(
    Display* ,
    Window* ,
    int*
);
extern XGetKeyboardControl(
    Display* ,
    XKeyboardState*
);
extern XGetPointerControl(
    Display* ,
    int* ,
    int* ,
    int*
);
extern int XGetPointerMapping(
    Display* ,
    unsigned char* ,
    int
);
extern XGetScreenSaver(
    Display* ,
    int* ,
    int* ,
    int* ,
    int*
);
extern int XGetTransientForHint(
    Display* ,
    Window ,
    Window*
);
extern int XGetWindowProperty(
    Display* ,
    Window ,
    Atom ,
    long ,
    long ,
    int ,
    Atom ,
    Atom* ,
    int* ,
    unsigned long* ,
    unsigned long* ,
    unsigned char**
);
extern int XGetWindowAttributes(
    Display* ,
    Window ,
    XWindowAttributes*
);
extern XGrabButton(
    Display* ,
    unsigned int ,
    unsigned int ,
    Window ,
    int ,
    unsigned int ,
    int ,
    int ,
    Window ,
    Cursor
);
extern XGrabKey(
    Display* ,
    int ,
    unsigned int ,
    Window ,
    int ,
    int ,
    int
);
extern int XGrabKeyboard(
    Display* ,
    Window ,
    int ,
    int ,
    int ,
    Time
);
extern int XGrabPointer(
    Display* ,
    Window ,
    int ,
    unsigned int ,
    int ,
    int ,
    Window ,
    Cursor ,
    Time
);
extern XGrabServer(
    Display*
);
extern int XHeightMMOfScreen(
    Screen*
);
extern int XHeightOfScreen(
    Screen*
);
extern XIfEvent(
    Display* ,
    XEvent* ,
    int (*) (
               Display* ,
               XEvent* ,
               XPointer
             ) ,
    XPointer
);
extern int XImageByteOrder(
    Display*
);
extern XInstallColormap(
    Display* ,
    Colormap
);
extern KeyCode XKeysymToKeycode(
    Display* ,
    KeySym
);
extern XKillClient(
    Display* ,
    XID
);
extern unsigned long XLastKnownRequestProcessed(
    Display*
);
extern int XLookupColor(
    Display* ,
    Colormap ,
    const char* ,
    XColor* ,
    XColor*
);
extern XLowerWindow(
    Display* ,
    Window
);
extern XMapRaised(
    Display* ,
    Window
);
extern XMapSubwindows(
    Display* ,
    Window
);
extern XMapWindow(
    Display* ,
    Window
);
extern XMaskEvent(
    Display* ,
    long ,
    XEvent*
);
extern int XMaxCmapsOfScreen(
    Screen*
);
extern int XMinCmapsOfScreen(
    Screen*
);
extern XMoveResizeWindow(
    Display* ,
    Window ,
    int ,
    int ,
    unsigned int ,
    unsigned int
);
extern XMoveWindow(
    Display* ,
    Window ,
    int ,
    int
);
extern XNextEvent(
    Display* ,
    XEvent*
);
extern XNoOp(
    Display*
);
extern int XParseColor(
    Display* ,
    Colormap ,
    const char* ,
    XColor*
);
extern int XParseGeometry(
    const char* ,
    int* ,
    int* ,
    unsigned int* ,
    unsigned int*
);
extern XPeekEvent(
    Display* ,
    XEvent*
);
extern XPeekIfEvent(
    Display* ,
    XEvent* ,
    int (*) (
               Display* ,
               XEvent* ,
               XPointer
             ) ,
    XPointer
);
extern int XPending(
    Display*
);
extern int XPlanesOfScreen(
    Screen*
);
extern int XProtocolRevision(
    Display*
);
extern int XProtocolVersion(
    Display*
);
extern XPutBackEvent(
    Display* ,
    XEvent*
);
extern XPutImage(
    Display* ,
    Drawable ,
    GC ,
    XImage* ,
    int ,
    int ,
    int ,
    int ,
    unsigned int ,
    unsigned int
);
extern int XQLength(
    Display*
);
extern int XQueryBestCursor(
    Display* ,
    Drawable ,
    unsigned int ,
    unsigned int ,
    unsigned int* ,
    unsigned int*
);
extern int XQueryBestSize(
    Display* ,
    int ,
    Drawable ,
    unsigned int ,
    unsigned int ,
    unsigned int* ,
    unsigned int*
);
extern int XQueryBestStipple(
    Display* ,
    Drawable ,
    unsigned int ,
    unsigned int ,
    unsigned int* ,
    unsigned int*
);
extern int XQueryBestTile(
    Display* ,
    Drawable ,
    unsigned int ,
    unsigned int ,
    unsigned int* ,
    unsigned int*
);
extern XQueryColor(
    Display* ,
    Colormap ,
    XColor*
);
extern XQueryColors(
    Display* ,
    Colormap ,
    XColor* ,
    int
);
extern int XQueryExtension(
    Display* ,
    const char* ,
    int* ,
    int* ,
    int*
);
extern XQueryKeymap(
    Display* ,
    char [32]
);
extern int XQueryPointer(
    Display* ,
    Window ,
    Window* ,
    Window* ,
    int* ,
    int* ,
    int* ,
    int* ,
    unsigned int*
);
extern XQueryTextExtents(
    Display* ,
    XID ,
    const char* ,
    int ,
    int* ,
    int* ,
    int* ,
    XCharStruct*
);
extern XQueryTextExtents16(
    Display* ,
    XID ,
    const XChar2b* ,
    int ,
    int* ,
    int* ,
    int* ,
    XCharStruct*
);
extern int XQueryTree(
    Display* ,
    Window ,
    Window* ,
    Window* ,
    Window** ,
    unsigned int*
);
extern XRaiseWindow(
    Display* ,
    Window
);
extern int XReadBitmapFile(
    Display* ,
    Drawable ,
    const char* ,
    unsigned int* ,
    unsigned int* ,
    Pixmap* ,
    int* ,
    int*
);
extern int XReadBitmapFileData(
    const char* ,
    unsigned int* ,
    unsigned int* ,
    unsigned char** ,
    int* ,
    int*
);
extern XRebindKeysym(
    Display* ,
    KeySym ,
    KeySym* ,
    int ,
    const unsigned char* ,
    int
);
extern XRecolorCursor(
    Display* ,
    Cursor ,
    XColor* ,
    XColor*
);
extern XRefreshKeyboardMapping(
    XMappingEvent*
);
extern XRemoveFromSaveSet(
    Display* ,
    Window
);
extern XRemoveHost(
    Display* ,
    XHostAddress*
);
extern XRemoveHosts(
    Display* ,
    XHostAddress* ,
    int
);
extern XReparentWindow(
    Display* ,
    Window ,
    Window ,
    int ,
    int
);
extern XResetScreenSaver(
    Display*
);
extern XResizeWindow(
    Display* ,
    Window ,
    unsigned int ,
    unsigned int
);
extern XRestackWindows(
    Display* ,
    Window* ,
    int
);
extern XRotateBuffers(
    Display* ,
    int
);
extern XRotateWindowProperties(
    Display* ,
    Window ,
    Atom* ,
    int ,
    int
);
extern int XScreenCount(
    Display*
);
extern XSelectInput(
    Display* ,
    Window ,
    long
);
extern int XSendEvent(
    Display* ,
    Window ,
    int ,
    long ,
    XEvent*
);
extern XSetAccessControl(
    Display* ,
    int
);
extern XSetArcMode(
    Display* ,
    GC ,
    int
);
extern XSetBackground(
    Display* ,
    GC ,
    unsigned long
);
extern XSetClipMask(
    Display* ,
    GC ,
    Pixmap
);
extern XSetClipOrigin(
    Display* ,
    GC ,
    int ,
    int
);
extern XSetClipRectangles(
    Display* ,
    GC ,
    int ,
    int ,
    XRectangle* ,
    int ,
    int
);
extern XSetCloseDownMode(
    Display* ,
    int
);
extern XSetCommand(
    Display* ,
    Window ,
    char** ,
    int
);
extern XSetDashes(
    Display* ,
    GC ,
    int ,
    const char* ,
    int
);
extern XSetFillRule(
    Display* ,
    GC ,
    int
);
extern XSetFillStyle(
    Display* ,
    GC ,
    int
);
extern XSetFont(
    Display* ,
    GC ,
    Font
);
extern XSetFontPath(
    Display* ,
    char** ,
    int
);
extern XSetForeground(
    Display* ,
    GC ,
    unsigned long
);
extern XSetFunction(
    Display* ,
    GC ,
    int
);
extern XSetGraphicsExposures(
    Display* ,
    GC ,
    int
);
extern XSetIconName(
    Display* ,
    Window ,
    const char*
);
extern XSetInputFocus(
    Display* ,
    Window ,
    int ,
    Time
);
extern XSetLineAttributes(
    Display* ,
    GC ,
    unsigned int ,
    int ,
    int ,
    int
);
extern int XSetModifierMapping(
    Display* ,
    XModifierKeymap*
);
extern XSetPlaneMask(
    Display* ,
    GC ,
    unsigned long
);
extern int XSetPointerMapping(
    Display* ,
    const unsigned char* ,
    int
);
extern XSetScreenSaver(
    Display* ,
    int ,
    int ,
    int ,
    int
);
extern XSetSelectionOwner(
    Display* ,
    Atom ,
    Window ,
    Time
);
extern XSetState(
    Display* ,
    GC ,
    unsigned long ,
    unsigned long ,
    int ,
    unsigned long
);
extern XSetStipple(
    Display* ,
    GC ,
    Pixmap
);
extern XSetSubwindowMode(
    Display* ,
    GC ,
    int
);
extern XSetTSOrigin(
    Display* ,
    GC ,
    int ,
    int
);
extern XSetTile(
    Display* ,
    GC ,
    Pixmap
);
extern XSetWindowBackground(
    Display* ,
    Window ,
    unsigned long
);
extern XSetWindowBackgroundPixmap(
    Display* ,
    Window ,
    Pixmap
);
extern XSetWindowBorder(
    Display* ,
    Window ,
    unsigned long
);
extern XSetWindowBorderPixmap(
    Display* ,
    Window ,
    Pixmap
);
extern XSetWindowBorderWidth(
    Display* ,
    Window ,
    unsigned int
);
extern XSetWindowColormap(
    Display* ,
    Window ,
    Colormap
);
extern XStoreBuffer(
    Display* ,
    const char* ,
    int ,
    int
);
extern XStoreBytes(
    Display* ,
    const char* ,
    int
);
extern XStoreColor(
    Display* ,
    Colormap ,
    XColor*
);
extern XStoreColors(
    Display* ,
    Colormap ,
    XColor* ,
    int
);
extern XStoreName(
    Display* ,
    Window ,
    const char*
);
extern XStoreNamedColor(
    Display* ,
    Colormap ,
    const char* ,
    unsigned long ,
    int
);
extern XSync(
    Display* ,
    int
);
extern XTextExtents(
    XFontStruct* ,
    const char* ,
    int ,
    int* ,
    int* ,
    int* ,
    XCharStruct*
);
extern XTextExtents16(
    XFontStruct* ,
    const XChar2b* ,
    int ,
    int* ,
    int* ,
    int* ,
    XCharStruct*
);
extern int XTextWidth(
    XFontStruct* ,
    const char* ,
    int
);
extern int XTextWidth16(
    XFontStruct* ,
    const XChar2b* ,
    int
);
extern int XTranslateCoordinates(
    Display* ,
    Window ,
    Window ,
    int ,
    int ,
    int* ,
    int* ,
    Window*
);
extern XUndefineCursor(
    Display* ,
    Window
);
extern XUngrabButton(
    Display* ,
    unsigned int ,
    unsigned int ,
    Window
);
extern XUngrabKey(
    Display* ,
    int ,
    unsigned int ,
    Window
);
extern XUngrabKeyboard(
    Display* ,
    Time
);
extern XUngrabPointer(
    Display* ,
    Time
);
extern XUngrabServer(
    Display*
);
extern XUninstallColormap(
    Display* ,
    Colormap
);
extern XUnloadFont(
    Display* ,
    Font
);
extern XUnmapSubwindows(
    Display* ,
    Window
);
extern XUnmapWindow(
    Display* ,
    Window
);
extern int XVendorRelease(
    Display*
);
extern XWarpPointer(
    Display* ,
    Window ,
    Window ,
    int ,
    int ,
    unsigned int ,
    unsigned int ,
    int ,
    int
);
extern int XWidthMMOfScreen(
    Screen*
);
extern int XWidthOfScreen(
    Screen*
);
extern XWindowEvent(
    Display* ,
    Window ,
    long ,
    XEvent*
);
extern int XWriteBitmapFile(
    Display* ,
    const char* ,
    Pixmap ,
    unsigned int ,
    unsigned int ,
    int ,
    int
);
extern int XSupportsLocale(
    void
);
extern char *XSetLocaleModifiers(
    const char*
);
extern XOM XOpenOM(
    Display* ,
    struct _XrmHashBucketRec* ,
    const char* ,
    const char*
);
extern int XCloseOM(
    XOM
);
extern char *XSetOMValues(
    XOM ,
    ...
);
extern char *XGetOMValues(
    XOM ,
    ...
);
extern Display *XDisplayOfOM(
    XOM
);
extern char *XLocaleOfOM(
    XOM
);
extern XOC XCreateOC(
    XOM ,
    ...
);
extern void XDestroyOC(
    XOC
);
extern XOM XOMOfOC(
    XOC
);
extern char *XSetOCValues(
    XOC ,
    ...
);
extern char *XGetOCValues(
    XOC ,
    ...
);
extern XFontSet XCreateFontSet(
    Display* ,
    const char* ,
    char*** ,
    int* ,
    char**
);
extern void XFreeFontSet(
    Display* ,
    XFontSet
);
extern int XFontsOfFontSet(
    XFontSet ,
    XFontStruct*** ,
    char***
);
extern char *XBaseFontNameListOfFontSet(
    XFontSet
);
extern char *XLocaleOfFontSet(
    XFontSet
);
extern int XContextDependentDrawing(
    XFontSet
);
extern int XDirectionalDependentDrawing(
    XFontSet
);
extern int XContextualDrawing(
    XFontSet
);
extern XFontSetExtents *XExtentsOfFontSet(
    XFontSet
);
extern int XmbTextEscapement(
    XFontSet ,
    const char* ,
    int
);
extern int XwcTextEscapement(
    XFontSet ,
    const wchar_t* ,
    int
);
extern int XmbTextExtents(
    XFontSet ,
    const char* ,
    int ,
    XRectangle* ,
    XRectangle*
);
extern int XwcTextExtents(
    XFontSet ,
    const wchar_t* ,
    int ,
    XRectangle* ,
    XRectangle*
);
extern int XmbTextPerCharExtents(
    XFontSet ,
    const char* ,
    int ,
    XRectangle* ,
    XRectangle* ,
    int ,
    int* ,
    XRectangle* ,
    XRectangle*
);
extern int XwcTextPerCharExtents(
    XFontSet ,
    const wchar_t* ,
    int ,
    XRectangle* ,
    XRectangle* ,
    int ,
    int* ,
    XRectangle* ,
    XRectangle*
);
extern void XmbDrawText(
    Display* ,
    Drawable ,
    GC ,
    int ,
    int ,
    XmbTextItem* ,
    int
);
extern void XwcDrawText(
    Display* ,
    Drawable ,
    GC ,
    int ,
    int ,
    XwcTextItem* ,
    int
);
extern void XmbDrawString(
    Display* ,
    Drawable ,
    XFontSet ,
    GC ,
    int ,
    int ,
    const char* ,
    int
);
extern void XwcDrawString(
    Display* ,
    Drawable ,
    XFontSet ,
    GC ,
    int ,
    int ,
    const wchar_t* ,
    int
);
extern void XmbDrawImageString(
    Display* ,
    Drawable ,
    XFontSet ,
    GC ,
    int ,
    int ,
    const char* ,
    int
);
extern void XwcDrawImageString(
    Display* ,
    Drawable ,
    XFontSet ,
    GC ,
    int ,
    int ,
    const wchar_t* ,
    int
);
extern XIM XOpenIM(
    Display* ,
    struct _XrmHashBucketRec* ,
    char* ,
    char*
);
extern int XCloseIM(
    XIM
);
extern char *XGetIMValues(
    XIM , ...
);
extern Display *XDisplayOfIM(
    XIM
);
extern char *XLocaleOfIM(
    XIM
);
extern XIC XCreateIC(
    XIM , ...
);
extern void XDestroyIC(
    XIC
);
extern void XSetICFocus(
    XIC
);
extern void XUnsetICFocus(
    XIC
);
extern wchar_t *XwcResetIC(
    XIC
);
extern char *XmbResetIC(
    XIC
);
extern char *XSetICValues(
    XIC , ...
);
extern char *XGetICValues(
    XIC , ...
);
extern XIM XIMOfIC(
    XIC
);
extern int XFilterEvent(
    XEvent* ,
    Window
);
extern int XmbLookupString(
    XIC ,
    XKeyPressedEvent* ,
    char* ,
    int ,
    KeySym* ,
    int*
);
extern int XwcLookupString(
    XIC ,
    XKeyPressedEvent* ,
    wchar_t* ,
    int ,
    KeySym* ,
    int*
);
extern XVaNestedList XVaCreateNestedList(
    int , ...
);
extern int XRegisterIMInstantiateCallback(
    Display* ,
    struct _XrmHashBucketRec* ,
    char* ,
    char* ,
    XIMProc ,
    XPointer*
);
extern int XUnregisterIMInstantiateCallback(
    Display* ,
    struct _XrmHashBucketRec* ,
    char* ,
    char* ,
    XIMProc ,
    XPointer*
);
typedef void (*XConnectionWatchProc)(
    Display* ,
    XPointer ,
    int ,
    int ,
    XPointer*
);
extern int XInternalConnectionNumbers(
    Display* ,
    int** ,
    int*
);
extern void XProcessInternalConnection(
    Display* ,
    int
);
extern int XAddConnectionWatch(
    Display* ,
    XConnectionWatchProc ,
    XPointer
);
extern void XRemoveConnectionWatch(
    Display* ,
    XConnectionWatchProc ,
    XPointer
);
typedef struct {
        long flags;
        int x, y;
        int width, height;
        int min_width, min_height;
        int max_width, max_height;
        int width_inc, height_inc;
        struct {
                int x;
                int y;
        } min_aspect, max_aspect;
        int base_width, base_height;
        int win_gravity;
} XSizeHints;
typedef struct {
        long flags;
        int input;
        int initial_state;
        Pixmap icon_pixmap;
        Window icon_window;
        int icon_x, icon_y;
        Pixmap icon_mask;
        XID window_group;
} XWMHints;
typedef struct {
    unsigned char *value;
    Atom encoding;
    int format;
    unsigned long nitems;
} XTextProperty;
typedef enum {
    XStringStyle,
    XCompoundTextStyle,
    XTextStyle,
    XStdICCTextStyle
} XICCEncodingStyle;
typedef struct {
        int min_width, min_height;
        int max_width, max_height;
        int width_inc, height_inc;
} XIconSize;
typedef struct {
        char *res_name;
        char *res_class;
} XClassHint;
typedef struct _XComposeStatus {
    XPointer compose_ptr;
    int chars_matched;
} XComposeStatus;
typedef struct _XRegion *Region;
typedef struct {
  Visual *visual;
  VisualID visualid;
  int screen;
  int depth;
  int class;
  unsigned long red_mask;
  unsigned long green_mask;
  unsigned long blue_mask;
  int colormap_size;
  int bits_per_rgb;
} XVisualInfo;
typedef struct {
        Colormap colormap;
        unsigned long red_max;
        unsigned long red_mult;
        unsigned long green_max;
        unsigned long green_mult;
        unsigned long blue_max;
        unsigned long blue_mult;
        unsigned long base_pixel;
        VisualID visualid;
        XID killid;
} XStandardColormap;
typedef int XContext;
extern XClassHint *XAllocClassHint (
    void
);
extern XIconSize *XAllocIconSize (
    void
);
extern XSizeHints *XAllocSizeHints (
    void
);
extern XStandardColormap *XAllocStandardColormap (
    void
);
extern XWMHints *XAllocWMHints (
    void
);
extern XClipBox(
    Region ,
    XRectangle*
);
extern Region XCreateRegion(
    void
);
extern char *XDefaultString(
    void
);
extern int XDeleteContext(
    Display* ,
    XID ,
    XContext
);
extern XDestroyRegion(
    Region
);
extern XEmptyRegion(
    Region
);
extern XEqualRegion(
    Region ,
    Region
);
extern int XFindContext(
    Display* ,
    XID ,
    XContext ,
    XPointer*
);
extern int XGetClassHint(
    Display* ,
    Window ,
    XClassHint*
);
extern int XGetIconSizes(
    Display* ,
    Window ,
    XIconSize** ,
    int*
);
extern int XGetNormalHints(
    Display* ,
    Window ,
    XSizeHints*
);
extern int XGetRGBColormaps(
    Display* ,
    Window ,
    XStandardColormap** ,
    int* ,
    Atom
);
extern int XGetSizeHints(
    Display* ,
    Window ,
    XSizeHints* ,
    Atom
);
extern int XGetStandardColormap(
    Display* ,
    Window ,
    XStandardColormap* ,
    Atom
);
extern int XGetTextProperty(
    Display* ,
    Window ,
    XTextProperty* ,
    Atom
);
extern XVisualInfo *XGetVisualInfo(
    Display* ,
    long ,
    XVisualInfo* ,
    int*
);
extern int XGetWMClientMachine(
    Display* ,
    Window ,
    XTextProperty*
);
extern XWMHints *XGetWMHints(
    Display* ,
    Window
);
extern int XGetWMIconName(
    Display* ,
    Window ,
    XTextProperty*
);
extern int XGetWMName(
    Display* ,
    Window ,
    XTextProperty*
);
extern int XGetWMNormalHints(
    Display* ,
    Window ,
    XSizeHints* ,
    long*
);
extern int XGetWMSizeHints(
    Display* ,
    Window ,
    XSizeHints* ,
    long* ,
    Atom
);
extern int XGetZoomHints(
    Display* ,
    Window ,
    XSizeHints*
);
extern XIntersectRegion(
    Region ,
    Region ,
    Region
);
extern void XConvertCase(
    KeySym ,
    KeySym* ,
    KeySym*
);
extern int XLookupString(
    XKeyEvent* ,
    char* ,
    int ,
    KeySym* ,
    XComposeStatus*
);
extern int XMatchVisualInfo(
    Display* ,
    int ,
    int ,
    int ,
    XVisualInfo*
);
extern XOffsetRegion(
    Region ,
    int ,
    int
);
extern int XPointInRegion(
    Region ,
    int ,
    int
);
extern Region XPolygonRegion(
    XPoint* ,
    int ,
    int
);
extern int XRectInRegion(
    Region ,
    int ,
    int ,
    unsigned int ,
    unsigned int
);
extern int XSaveContext(
    Display* ,
    XID ,
    XContext ,
    const char*
);
extern XSetClassHint(
    Display* ,
    Window ,
    XClassHint*
);
extern XSetIconSizes(
    Display* ,
    Window ,
    XIconSize* ,
    int
);
extern XSetNormalHints(
    Display* ,
    Window ,
    XSizeHints*
);
extern void XSetRGBColormaps(
    Display* ,
    Window ,
    XStandardColormap* ,
    int ,
    Atom
);
extern XSetSizeHints(
    Display* ,
    Window ,
    XSizeHints* ,
    Atom
);
extern XSetStandardProperties(
    Display* ,
    Window ,
    const char* ,
    const char* ,
    Pixmap ,
    char** ,
    int ,
    XSizeHints*
);
extern void XSetTextProperty(
    Display* ,
    Window ,
    XTextProperty* ,
    Atom
);
extern void XSetWMClientMachine(
    Display* ,
    Window ,
    XTextProperty*
);
extern XSetWMHints(
    Display* ,
    Window ,
    XWMHints*
);
extern void XSetWMIconName(
    Display* ,
    Window ,
    XTextProperty*
);
extern void XSetWMName(
    Display* ,
    Window ,
    XTextProperty*
);
extern void XSetWMNormalHints(
    Display* ,
    Window ,
    XSizeHints*
);
extern void XSetWMProperties(
    Display* ,
    Window ,
    XTextProperty* ,
    XTextProperty* ,
    char** ,
    int ,
    XSizeHints* ,
    XWMHints* ,
    XClassHint*
);
extern void XmbSetWMProperties(
    Display* ,
    Window ,
    const char* ,
    const char* ,
    char** ,
    int ,
    XSizeHints* ,
    XWMHints* ,
    XClassHint*
);
extern void XSetWMSizeHints(
    Display* ,
    Window ,
    XSizeHints* ,
    Atom
);
extern XSetRegion(
    Display* ,
    GC ,
    Region
);
extern void XSetStandardColormap(
    Display* ,
    Window ,
    XStandardColormap* ,
    Atom
);
extern XSetZoomHints(
    Display* ,
    Window ,
    XSizeHints*
);
extern XShrinkRegion(
    Region ,
    int ,
    int
);
extern int XStringListToTextProperty(
    char** ,
    int ,
    XTextProperty*
);
extern XSubtractRegion(
    Region ,
    Region ,
    Region
);
extern int XmbTextListToTextProperty(
    Display* ,
    char** ,
    int ,
    XICCEncodingStyle ,
    XTextProperty*
);
extern int XwcTextListToTextProperty(
    Display* ,
    wchar_t** ,
    int ,
    XICCEncodingStyle ,
    XTextProperty*
);
extern void XwcFreeStringList(
    wchar_t**
);
extern int XTextPropertyToStringList(
    XTextProperty* ,
    char*** ,
    int*
);
extern int XmbTextPropertyToTextList(
    Display* ,
    XTextProperty* ,
    char*** ,
    int*
);
extern int XwcTextPropertyToTextList(
    Display* ,
    XTextProperty* ,
    wchar_t*** ,
    int*
);
extern XUnionRectWithRegion(
    XRectangle* ,
    Region ,
    Region
);
extern XUnionRegion(
    Region ,
    Region ,
    Region
);
extern int XWMGeometry(
    Display* ,
    int ,
    const char* ,
    const char* ,
    unsigned int ,
    XSizeHints* ,
    int* ,
    int* ,
    int* ,
    int* ,
    int*
);
extern XXorRegion(
    Region ,
    Region ,
    Region
);
extern char *Xpermalloc(
    unsigned int
);
typedef int XrmQuark, *XrmQuarkList;
typedef char *XrmString;
extern XrmQuark XrmStringToQuark(
    const char*
);
extern XrmQuark XrmPermStringToQuark(
    const char*
);
extern XrmString XrmQuarkToString(
    XrmQuark
);
extern XrmQuark XrmUniqueQuark(
    void
);
typedef enum {XrmBindTightly, XrmBindLoosely} XrmBinding, *XrmBindingList;
extern void XrmStringToQuarkList(
    const char* ,
    XrmQuarkList
);
extern void XrmStringToBindingQuarkList(
    const char* ,
    XrmBindingList ,
    XrmQuarkList
);
typedef XrmQuark XrmName;
typedef XrmQuarkList XrmNameList;
typedef XrmQuark XrmClass;
typedef XrmQuarkList XrmClassList;
typedef XrmQuark XrmRepresentation;
typedef struct {
    unsigned int size;
    XPointer addr;
} XrmValue, *XrmValuePtr;
typedef struct _XrmHashBucketRec *XrmHashBucket;
typedef XrmHashBucket *XrmHashTable;
typedef XrmHashTable XrmSearchList[];
typedef struct _XrmHashBucketRec *XrmDatabase;
extern void XrmDestroyDatabase(
    XrmDatabase
);
extern void XrmQPutResource(
    XrmDatabase* ,
    XrmBindingList ,
    XrmQuarkList ,
    XrmRepresentation ,
    XrmValue*
);
extern void XrmPutResource(
    XrmDatabase* ,
    const char* ,
    const char* ,
    XrmValue*
);
extern void XrmQPutStringResource(
    XrmDatabase* ,
    XrmBindingList ,
    XrmQuarkList ,
    const char*
);
extern void XrmPutStringResource(
    XrmDatabase* ,
    const char* ,
    const char*
);
extern void XrmPutLineResource(
    XrmDatabase* ,
    const char*
);
extern XrmQGetResource(
    XrmDatabase ,
    XrmNameList ,
    XrmClassList ,
    XrmRepresentation* ,
    XrmValue*
);
extern int XrmGetResource(
    XrmDatabase ,
    const char* ,
    const char* ,
    char** ,
    XrmValue*
);
extern int XrmQGetSearchList(
    XrmDatabase ,
    XrmNameList ,
    XrmClassList ,
    XrmSearchList ,
    int
);
extern int XrmQGetSearchResource(
    XrmSearchList ,
    XrmName ,
    XrmClass ,
    XrmRepresentation* ,
    XrmValue*
);
extern void XrmSetDatabase(
    Display* ,
    XrmDatabase
);
extern XrmDatabase XrmGetDatabase(
    Display*
);
extern XrmDatabase XrmGetFileDatabase(
    const char*
);
extern int XrmCombineFileDatabase(
    const char* ,
    XrmDatabase* ,
    int
);
extern XrmDatabase XrmGetStringDatabase(
    const char*
);
extern void XrmPutFileDatabase(
    XrmDatabase ,
    const char*
);
extern void XrmMergeDatabases(
    XrmDatabase ,
    XrmDatabase*
);
extern void XrmCombineDatabase(
    XrmDatabase ,
    XrmDatabase* ,
    int
);
extern int XrmEnumerateDatabase(
    XrmDatabase ,
    XrmNameList ,
    XrmClassList ,
    int ,
    int (*)(
             XrmDatabase* ,
             XrmBindingList ,
             XrmQuarkList ,
             XrmRepresentation* ,
             XrmValue* ,
             XPointer
             ) ,
    XPointer
);
extern char *XrmLocaleOfDatabase(
    XrmDatabase
);
typedef enum {
    XrmoptionNoArg,
    XrmoptionIsArg,
    XrmoptionStickyArg,
    XrmoptionSepArg,
    XrmoptionResArg,
    XrmoptionSkipArg,
    XrmoptionSkipLine,
    XrmoptionSkipNArgs
} XrmOptionKind;
typedef struct {
    char *option;
    char *specifier;
    XrmOptionKind argKind;
    XPointer value;
} XrmOptionDescRec, *XrmOptionDescList;
extern void XrmParseCommand(
    XrmDatabase* ,
    XrmOptionDescList ,
    int ,
    const char* ,
    int* ,
    char**
);
typedef char *String;
typedef struct _WidgetRec *Widget;
typedef Widget *WidgetList;
typedef struct _WidgetClassRec *WidgetClass;
typedef struct _CompositeRec *CompositeWidget;
typedef struct _XtActionsRec *XtActionList;
typedef struct _XtEventRec *XtEventTable;
typedef struct _XtAppStruct *XtAppContext;
typedef unsigned long XtValueMask;
typedef unsigned long XtIntervalId;
typedef unsigned long XtInputId;
typedef unsigned long XtWorkProcId;
typedef unsigned long XtSignalId;
typedef unsigned int XtGeometryMask;
typedef unsigned long XtGCMask;
typedef unsigned long Pixel;
typedef int XtCacheType;
typedef char Boolean;
typedef long XtArgVal;
typedef unsigned char XtEnum;
typedef unsigned int Cardinal;
typedef unsigned short Dimension;
typedef short Position;
typedef void* XtPointer;
typedef XtPointer Opaque;
typedef struct _WidgetClassRec *CoreWidgetClass;
typedef struct _WidgetRec *CoreWidget;
extern WidgetClass coreWidgetClass;
extern WidgetClass widgetClass;
typedef struct _CompositeClassRec *CompositeWidgetClass;
typedef Cardinal (*XtOrderProc)(
    Widget
);
extern void XtManageChildren(
    WidgetList ,
    Cardinal
);
extern void XtManageChild(
    Widget
);
extern void XtUnmanageChildren(
    WidgetList ,
    Cardinal
);
extern void XtUnmanageChild(
    Widget
);
typedef void (*XtDoChangeProc)(
    Widget ,
    WidgetList ,
    Cardinal * ,
    WidgetList ,
    Cardinal * ,
    XtPointer
);
extern void XtChangeManagedSet(
    WidgetList ,
    Cardinal ,
    XtDoChangeProc ,
    XtPointer ,
    WidgetList ,
    Cardinal
);
extern WidgetClass compositeWidgetClass;
typedef struct _ConstraintClassRec *ConstraintWidgetClass;
extern WidgetClass constraintWidgetClass;
typedef struct _ObjectRec *Object;
typedef struct _ObjectClassRec *ObjectClass;
extern WidgetClass objectClass;
typedef struct _RectObjRec *RectObj;
typedef struct _RectObjClassRec *RectObjClass;
extern WidgetClass rectObjClass;
typedef struct _TranslationData *XtTranslations;
typedef struct _TranslationData *XtAccelerators;
typedef unsigned int Modifiers;
typedef void (*XtActionProc)(
    Widget ,
    XEvent* ,
    String* ,
    Cardinal*
);
typedef XtActionProc* XtBoundActions;
typedef struct _XtActionsRec{
    String string;
    XtActionProc proc;
} XtActionsRec;
typedef enum {
    XtAddress,
    XtBaseOffset,
    XtImmediate,
    XtResourceString,
    XtResourceQuark,
    XtWidgetBaseOffset,
    XtProcedureArg
} XtAddressMode;
typedef struct {
    XtAddressMode address_mode;
    XtPointer address_id;
    Cardinal size;
} XtConvertArgRec, *XtConvertArgList;
typedef void (*XtConvertArgProc)(
    Widget ,
    Cardinal* ,
    XrmValue*
);
typedef struct {
    XtGeometryMask request_mode;
    Position x, y;
    Dimension width, height, border_width;
    Widget sibling;
    int stack_mode;
} XtWidgetGeometry;
typedef void (*XtConverter)(
    XrmValue* ,
    Cardinal* ,
    XrmValue* ,
    XrmValue*
);
typedef Boolean (*XtTypeConverter)(
    Display* ,
    XrmValue* ,
    Cardinal* ,
    XrmValue* ,
    XrmValue* ,
    XtPointer*
);
typedef void (*XtDestructor)(
    XtAppContext ,
    XrmValue* ,
    XtPointer ,
    XrmValue* ,
    Cardinal*
);
typedef Opaque XtCacheRef;
typedef Opaque XtActionHookId;
typedef void (*XtActionHookProc)(
    Widget ,
    XtPointer ,
    String ,
    XEvent* ,
    String* ,
    Cardinal*
);
typedef unsigned long XtBlockHookId;
typedef void (*XtBlockHookProc)(
    XtPointer
);
typedef void (*XtKeyProc)(
    Display* ,
    unsigned int ,
    Modifiers ,
    Modifiers* ,
    KeySym*
);
typedef void (*XtCaseProc)(
    Display* ,
    KeySym ,
    KeySym* ,
    KeySym*
);
typedef void (*XtEventHandler)(
    Widget ,
    XtPointer ,
    XEvent* ,
    Boolean*
);
typedef unsigned long EventMask;
typedef enum {XtListHead, XtListTail } XtListPosition;
typedef unsigned long XtInputMask;
typedef void (*XtTimerCallbackProc)(
    XtPointer ,
    XtIntervalId*
);
typedef void (*XtInputCallbackProc)(
    XtPointer ,
    int* ,
    XtInputId*
);
typedef void (*XtSignalCallbackProc)(
    XtPointer ,
    XtSignalId*
);
typedef struct {
    String name;
    XtArgVal value;
} Arg, *ArgList;
typedef XtPointer XtVarArgsList;
typedef void (*XtCallbackProc)(
    Widget ,
    XtPointer ,
    XtPointer
);
typedef struct _XtCallbackRec {
    XtCallbackProc callback;
    XtPointer closure;
} XtCallbackRec, *XtCallbackList;
typedef enum {
        XtCallbackNoList,
        XtCallbackHasNone,
        XtCallbackHasSome
} XtCallbackStatus;
typedef enum {
    XtGeometryYes,
    XtGeometryNo,
    XtGeometryAlmost,
    XtGeometryDone
} XtGeometryResult;
typedef enum {XtGrabNone, XtGrabNonexclusive, XtGrabExclusive} XtGrabKind;
typedef struct {
    Widget shell_widget;
    Widget enable_widget;
} XtPopdownIDRec, *XtPopdownID;
typedef struct _XtResource {
    String resource_name;
    String resource_class;
    String resource_type;
    Cardinal resource_size;
    Cardinal resource_offset;
    String default_type;
    XtPointer default_addr;
} XtResource, *XtResourceList;
typedef void (*XtResourceDefaultProc)(
    Widget ,
    int ,
    XrmValue*
);
typedef String (*XtLanguageProc)(
    Display* ,
    String ,
    XtPointer
);
typedef void (*XtErrorMsgHandler)(
    String ,
    String ,
    String ,
    String ,
    String* ,
    Cardinal*
);
typedef void (*XtErrorHandler)(
  String
);
typedef void (*XtCreatePopupChildProc)(
    Widget
);
typedef Boolean (*XtWorkProc)(
    XtPointer
);
typedef struct {
    char match;
    String substitution;
} SubstitutionRec, *Substitution;
typedef Boolean (*XtFilePredicate)(
   String
);
typedef XtPointer XtRequestId;
typedef Boolean (*XtConvertSelectionProc)(
    Widget ,
    Atom* ,
    Atom* ,
    Atom* ,
    XtPointer* ,
    unsigned long* ,
    int*
);
typedef void (*XtLoseSelectionProc)(
    Widget ,
    Atom*
);
typedef void (*XtSelectionDoneProc)(
    Widget ,
    Atom* ,
    Atom*
);
typedef void (*XtSelectionCallbackProc)(
    Widget ,
    XtPointer ,
    Atom* ,
    Atom* ,
    XtPointer ,
    unsigned long* ,
    int*
);
typedef void (*XtLoseSelectionIncrProc)(
    Widget ,
    Atom* ,
    XtPointer
);
typedef void (*XtSelectionDoneIncrProc)(
    Widget ,
    Atom* ,
    Atom* ,
    XtRequestId* ,
    XtPointer
);
typedef Boolean (*XtConvertSelectionIncrProc)(
    Widget ,
    Atom* ,
    Atom* ,
    Atom* ,
    XtPointer* ,
    unsigned long* ,
    int* ,
    unsigned long* ,
    XtPointer ,
    XtRequestId*
);
typedef void (*XtCancelConvertSelectionProc)(
    Widget ,
    Atom* ,
    Atom* ,
    XtRequestId* ,
    XtPointer
);
typedef Boolean (*XtEventDispatchProc)(
    XEvent*
);
typedef void (*XtExtensionSelectProc)(
    Widget ,
    int* ,
    XtPointer* ,
    int ,
    XtPointer
);
extern Boolean XtConvertAndStore(
    Widget ,
    const char* ,
    XrmValue* ,
    const char* ,
    XrmValue*
);
extern Boolean XtCallConverter(
    Display* ,
    XtTypeConverter ,
    XrmValuePtr ,
    Cardinal ,
    XrmValuePtr ,
    XrmValue* ,
    XtCacheRef*
);
extern Boolean XtDispatchEvent(
    XEvent*
);
extern Boolean XtCallAcceptFocus(
    Widget ,
    Time*
);
extern Boolean XtPeekEvent(
    XEvent*
);
extern Boolean XtAppPeekEvent(
    XtAppContext ,
    XEvent*
);
extern Boolean XtIsSubclass(
    Widget ,
    WidgetClass
);
extern Boolean XtIsObject(
    Widget
);
extern Boolean _XtCheckSubclassFlag(
    Widget ,
    unsigned int
);
extern Boolean _XtIsSubclassOf(
    Widget ,
    WidgetClass ,
    WidgetClass ,
    unsigned int
);
extern Boolean XtIsManaged(
    Widget
);
extern Boolean XtIsRealized(
    Widget
);
extern Boolean XtIsSensitive(
    Widget
);
extern Boolean XtOwnSelection(
    Widget ,
    Atom ,
    Time ,
    XtConvertSelectionProc ,
    XtLoseSelectionProc ,
    XtSelectionDoneProc
);
extern Boolean XtOwnSelectionIncremental(
    Widget ,
    Atom ,
    Time ,
    XtConvertSelectionIncrProc ,
    XtLoseSelectionIncrProc ,
    XtSelectionDoneIncrProc ,
    XtCancelConvertSelectionProc ,
    XtPointer
);
extern XtGeometryResult XtMakeResizeRequest(
    Widget ,
    unsigned int ,
    unsigned int ,
    Dimension* ,
    Dimension*
);
extern void XtTranslateCoords(
    Widget ,
    int ,
    int ,
    Position* ,
    Position*
);
extern KeySym* XtGetKeysymTable(
    Display* ,
    KeyCode* ,
    int*
);
extern void XtKeysymToKeycodeList(
    Display* ,
    KeySym ,
    KeyCode** ,
    Cardinal*
);
extern void XtStringConversionWarning(
    const char* ,
    const char*
);
extern void XtDisplayStringConversionWarning(
    Display* ,
    const char* ,
    const char*
);
extern XtConvertArgRec const colorConvertArgs[];
extern XtConvertArgRec const screenConvertArg[];
extern void XtAppAddConverter(
    XtAppContext ,
    const char* ,
    const char* ,
    XtConverter ,
    XtConvertArgList ,
    Cardinal
);
extern void XtAddConverter(
    const char* ,
    const char* ,
    XtConverter ,
    XtConvertArgList ,
    Cardinal
);
extern void XtSetTypeConverter(
    const char* ,
    const char* ,
    XtTypeConverter ,
    XtConvertArgList ,
    Cardinal ,
    XtCacheType ,
    XtDestructor
);
extern void XtAppSetTypeConverter(
    XtAppContext ,
    const char* ,
    const char* ,
    XtTypeConverter ,
    XtConvertArgList ,
    Cardinal ,
    XtCacheType ,
    XtDestructor
);
extern void XtConvert(
    Widget ,
    const char* ,
    XrmValue* ,
    const char* ,
    XrmValue*
);
extern void XtDirectConvert(
    XtConverter ,
    XrmValuePtr ,
    Cardinal ,
    XrmValuePtr ,
    XrmValue*
);
extern XtTranslations XtParseTranslationTable(
    const char*
);
extern XtAccelerators XtParseAcceleratorTable(
    const char*
);
extern void XtOverrideTranslations(
    Widget ,
    XtTranslations
);
extern void XtAugmentTranslations(
    Widget ,
    XtTranslations
);
extern void XtInstallAccelerators(
    Widget ,
    Widget
);
extern void XtInstallAllAccelerators(
    Widget ,
    Widget
);
extern void XtUninstallTranslations(
    Widget
);
extern void XtAppAddActions(
    XtAppContext ,
    XtActionList ,
    Cardinal
);
extern void XtAddActions(
    XtActionList ,
    Cardinal
);
extern XtActionHookId XtAppAddActionHook(
    XtAppContext ,
    XtActionHookProc ,
    XtPointer
);
extern void XtRemoveActionHook(
    XtActionHookId
);
extern void XtGetActionList(
    WidgetClass ,
    XtActionList* ,
    Cardinal*
);
extern void XtCallActionProc(
    Widget ,
    const char* ,
    XEvent* ,
    String* ,
    Cardinal
);
extern void XtRegisterGrabAction(
    XtActionProc ,
    int ,
    unsigned int ,
    int ,
    int
);
extern void XtSetMultiClickTime(
    Display* ,
    int
);
extern int XtGetMultiClickTime(
    Display*
);
extern KeySym XtGetActionKeysym(
    XEvent* ,
    Modifiers*
);
extern void XtTranslateKeycode(
    Display* ,
    unsigned int ,
    Modifiers ,
    Modifiers* ,
    KeySym*
);
extern void XtTranslateKey(
    Display* ,
    unsigned int ,
    Modifiers ,
    Modifiers* ,
    KeySym*
);
extern void XtSetKeyTranslator(
    Display* ,
    XtKeyProc
);
extern void XtRegisterCaseConverter(
    Display* ,
    XtCaseProc ,
    KeySym ,
    KeySym
);
extern void XtConvertCase(
    Display* ,
    KeySym ,
    KeySym* ,
    KeySym*
);
extern void XtAddEventHandler(
    Widget ,
    EventMask ,
    int ,
    XtEventHandler ,
    XtPointer
);
extern void XtRemoveEventHandler(
    Widget ,
    EventMask ,
    int ,
    XtEventHandler ,
    XtPointer
);
extern void XtAddRawEventHandler(
    Widget ,
    EventMask ,
    int ,
    XtEventHandler ,
    XtPointer
);
extern void XtRemoveRawEventHandler(
    Widget ,
    EventMask ,
    int ,
    XtEventHandler ,
    XtPointer
);
extern void XtInsertEventHandler(
    Widget ,
    EventMask ,
    int ,
    XtEventHandler ,
    XtPointer ,
    XtListPosition
);
extern void XtInsertRawEventHandler(
    Widget ,
    EventMask ,
    int ,
    XtEventHandler ,
    XtPointer ,
    XtListPosition
);
extern XtEventDispatchProc XtSetEventDispatcher(
    Display* ,
    int ,
    XtEventDispatchProc
);
extern Boolean XtDispatchEventToWidget(
    Widget ,
    XEvent*
);
extern void XtInsertEventTypeHandler(
    Widget ,
    int ,
    XtPointer ,
    XtEventHandler ,
    XtPointer ,
    XtListPosition
);
extern void XtRemoveEventTypeHandler(
    Widget ,
    int ,
    XtPointer ,
    XtEventHandler ,
    XtPointer
);
extern EventMask XtBuildEventMask(
    Widget
);
extern void XtRegisterExtensionSelector(
    Display* ,
    int ,
    int ,
    XtExtensionSelectProc ,
    XtPointer
);
extern void XtAddGrab(
    Widget ,
    int ,
    int
);
extern void XtRemoveGrab(
    Widget
);
extern void XtProcessEvent(
    XtInputMask
);
extern void XtAppProcessEvent(
    XtAppContext ,
    XtInputMask
);
extern void XtMainLoop(
    void
);
extern void XtAppMainLoop(
    XtAppContext
);
extern void XtAddExposureToRegion(
    XEvent* ,
    Region
);
extern void XtSetKeyboardFocus(
    Widget ,
    Widget
);
extern Widget XtGetKeyboardFocusWidget(
    Widget
);
extern XEvent* XtLastEventProcessed(
    Display*
);
extern Time XtLastTimestampProcessed(
    Display*
);
extern XtIntervalId XtAddTimeOut(
    unsigned long ,
    XtTimerCallbackProc ,
    XtPointer
);
extern XtIntervalId XtAppAddTimeOut(
    XtAppContext ,
    unsigned long ,
    XtTimerCallbackProc ,
    XtPointer
);
extern void XtRemoveTimeOut(
    XtIntervalId
);
extern XtInputId XtAddInput(
    int ,
    XtPointer ,
    XtInputCallbackProc ,
    XtPointer
);
extern XtInputId XtAppAddInput(
    XtAppContext ,
    int ,
    XtPointer ,
    XtInputCallbackProc ,
    XtPointer
);
extern void XtRemoveInput(
    XtInputId
);
extern XtInputId XtAppAddSignal(
    XtAppContext ,
    XtSignalCallbackProc ,
    XtPointer
);
extern void XtRemoveSignal(
    XtSignalId
);
extern void XtNoticeSignal(
    XtSignalId
);
extern void XtNextEvent(
    XEvent*
);
extern void XtAppNextEvent(
    XtAppContext ,
    XEvent*
);
extern XtInputMask XtPending(
    void
);
extern XtInputMask XtAppPending(
    XtAppContext
);
extern XtBlockHookId XtAppAddBlockHook(
    XtAppContext ,
    XtBlockHookProc ,
    XtPointer
);
extern void XtRemoveBlockHook(
    XtBlockHookId
);
extern void XtRealizeWidget(
    Widget
);
void XtUnrealizeWidget(
    Widget
);
extern void XtDestroyWidget(
    Widget
);
extern void XtSetSensitive(
    Widget ,
    int
);
extern void XtSetMappedWhenManaged(
    Widget ,
    int
);
extern Widget XtNameToWidget(
    Widget ,
    const char*
);
extern Widget XtWindowToWidget(
    Display* ,
    Window
);
extern XtPointer XtGetClassExtension(
    WidgetClass ,
    Cardinal ,
    XrmQuark ,
    long ,
    Cardinal
);
extern ArgList XtMergeArgLists(
    ArgList ,
    Cardinal ,
    ArgList ,
    Cardinal
);
extern XtVarArgsList XtVaCreateArgsList(
    XtPointer , ...
);
extern Display *XtDisplay(
    Widget
);
extern Display *XtDisplayOfObject(
    Widget
);
extern Screen *XtScreen(
    Widget
);
extern Screen *XtScreenOfObject(
    Widget
);
extern Window XtWindow(
    Widget
);
extern Window XtWindowOfObject(
    Widget
);
extern String XtName(
    Widget
);
extern WidgetClass XtSuperclass(
    Widget
);
extern WidgetClass XtClass(
    Widget
);
extern Widget XtParent(
    Widget
);
extern void XtAddCallback(
    Widget ,
    const char* ,
    XtCallbackProc ,
    XtPointer
);
extern void XtRemoveCallback(
    Widget ,
    const char* ,
    XtCallbackProc ,
    XtPointer
);
extern void XtAddCallbacks(
    Widget ,
    const char* ,
    XtCallbackList
);
extern void XtRemoveCallbacks(
    Widget ,
    const char* ,
    XtCallbackList
);
extern void XtRemoveAllCallbacks(
    Widget ,
    const char*
);
extern void XtCallCallbacks(
    Widget ,
    const char* ,
    XtPointer
);
extern void XtCallCallbackList(
    Widget ,
    XtCallbackList ,
    XtPointer
);
extern XtCallbackStatus XtHasCallbacks(
    Widget ,
    const char*
);
extern XtGeometryResult XtMakeGeometryRequest(
    Widget ,
    XtWidgetGeometry* ,
    XtWidgetGeometry*
);
extern XtGeometryResult XtQueryGeometry(
    Widget ,
    XtWidgetGeometry* ,
    XtWidgetGeometry*
);
extern Widget XtCreatePopupShell(
    const char* ,
    WidgetClass ,
    Widget ,
    ArgList ,
    Cardinal
);
extern Widget XtVaCreatePopupShell(
    const char* ,
    WidgetClass ,
    Widget ,
    ...
);
extern void XtPopup(
    Widget ,
    XtGrabKind
);
extern void XtPopupSpringLoaded(
    Widget
);
extern void XtCallbackNone(
    Widget ,
    XtPointer ,
    XtPointer
);
extern void XtCallbackNonexclusive(
    Widget ,
    XtPointer ,
    XtPointer
);
extern void XtCallbackExclusive(
    Widget ,
    XtPointer ,
    XtPointer
);
extern void XtPopdown(
    Widget
);
extern void XtCallbackPopdown(
    Widget ,
    XtPointer ,
    XtPointer
);
extern void XtMenuPopupAction(
    Widget ,
    XEvent* ,
    String* ,
    Cardinal*
);
extern Widget XtCreateWidget(
    const char* ,
    WidgetClass ,
    Widget ,
    ArgList ,
    Cardinal
);
extern Widget XtCreateManagedWidget(
    const char* ,
    WidgetClass ,
    Widget ,
    ArgList ,
    Cardinal
);
extern Widget XtVaCreateWidget(
    const char* ,
    WidgetClass ,
    Widget ,
    ...
);
extern Widget XtVaCreateManagedWidget(
    const char* ,
    WidgetClass ,
    Widget ,
    ...
);
extern Widget XtCreateApplicationShell(
    const char* ,
    WidgetClass ,
    ArgList ,
    Cardinal
);
extern Widget XtAppCreateShell(
    const char* ,
    const char* ,
    WidgetClass ,
    Display* ,
    ArgList ,
    Cardinal
);
extern Widget XtVaAppCreateShell(
    const char* ,
    const char* ,
    WidgetClass ,
    Display* ,
    ...
);
extern void XtToolkitInitialize(
    void
);
extern XtLanguageProc XtSetLanguageProc(
    XtAppContext ,
    XtLanguageProc ,
    XtPointer
);
extern void XtDisplayInitialize(
    XtAppContext ,
    Display* ,
    const char* ,
    const char* ,
    XrmOptionDescRec* ,
    Cardinal ,
    int* ,
    char**
);
extern Widget XtOpenApplication(
    XtAppContext* ,
    const char* ,
    XrmOptionDescList ,
    Cardinal ,
    int* ,
    String* ,
    String* ,
    WidgetClass ,
    ArgList ,
    Cardinal
);
extern Widget XtVaOpenApplication(
    XtAppContext* ,
    const char* ,
    XrmOptionDescList ,
    Cardinal ,
    int* ,
    String* ,
    String* ,
    WidgetClass ,
    ...
);
extern Widget XtAppInitialize(
    XtAppContext* ,
    const char* ,
    XrmOptionDescList ,
    Cardinal ,
    int* ,
    String* ,
    String* ,
    ArgList ,
    Cardinal
);
extern Widget XtVaAppInitialize(
    XtAppContext* ,
    const char* ,
    XrmOptionDescList ,
    Cardinal ,
    int* ,
    String* ,
    String* ,
    ...
);
extern Widget XtInitialize(
    const char* ,
    const char* ,
    XrmOptionDescRec* ,
    Cardinal ,
    int* ,
    char**
);
extern Display *XtOpenDisplay(
    XtAppContext ,
    const char* ,
    const char* ,
    const char* ,
    XrmOptionDescRec* ,
    Cardinal ,
    int* ,
    char**
);
extern XtAppContext XtCreateApplicationContext(
    void
);
extern void XtAppSetFallbackResources(
    XtAppContext ,
    String*
);
extern void XtDestroyApplicationContext(
    XtAppContext
);
extern void XtInitializeWidgetClass(
    WidgetClass
);
extern XtAppContext XtWidgetToApplicationContext(
    Widget
);
extern XtAppContext XtDisplayToApplicationContext(
    Display*
);
extern XrmDatabase XtDatabase(
    Display*
);
extern XrmDatabase XtScreenDatabase(
    Screen*
);
extern void XtCloseDisplay(
    Display*
);
extern void XtGetApplicationResources(
    Widget ,
    XtPointer ,
    XtResourceList ,
    Cardinal ,
    ArgList ,
    Cardinal
);
extern void XtVaGetApplicationResources(
    Widget ,
    XtPointer ,
    XtResourceList ,
    Cardinal ,
    ...
);
extern void XtGetSubresources(
    Widget ,
    XtPointer ,
    const char* ,
    const char* ,
    XtResourceList ,
    Cardinal ,
    ArgList ,
    Cardinal
);
extern void XtVaGetSubresources(
    Widget ,
    XtPointer ,
    const char* ,
    const char* ,
    XtResourceList ,
    Cardinal ,
    ...
);
extern void XtSetValues(
    Widget ,
    ArgList ,
    Cardinal
);
extern void XtVaSetValues(
    Widget ,
    ...
);
extern void XtGetValues(
    Widget ,
    ArgList ,
    Cardinal
);
extern void XtVaGetValues(
    Widget ,
    ...
);
extern void XtSetSubvalues(
    XtPointer ,
    XtResourceList ,
    Cardinal ,
    ArgList ,
    Cardinal
);
extern void XtVaSetSubvalues(
    XtPointer ,
    XtResourceList ,
    Cardinal ,
    ...
);
extern void XtGetSubvalues(
    XtPointer ,
    XtResourceList ,
    Cardinal ,
    ArgList ,
    Cardinal
);
extern void XtVaGetSubvalues(
    XtPointer ,
    XtResourceList ,
    Cardinal ,
    ...
);
extern void XtGetResourceList(
    WidgetClass ,
    XtResourceList* ,
    Cardinal*
);
extern void XtGetConstraintResourceList(
    WidgetClass ,
    XtResourceList* ,
    Cardinal*
);
typedef struct _XtCheckpointTokenRec {
    int save_type;
    int interact_style;
    Boolean shutdown;
    Boolean fast;
    Boolean cancel_shutdown;
    int phase;
    int interact_dialog_type;
    Boolean request_cancel;
    Boolean request_next_phase;
    Boolean save_success;
    int type;
    Widget widget;
} XtCheckpointTokenRec, *XtCheckpointToken;
XtCheckpointToken XtSessionGetToken(
    Widget
);
void XtSessionReturnToken(
    XtCheckpointToken
);
extern XtErrorMsgHandler XtAppSetErrorMsgHandler(
    XtAppContext ,
    XtErrorMsgHandler
);
extern void XtSetErrorMsgHandler(
    XtErrorMsgHandler
);
extern XtErrorMsgHandler XtAppSetWarningMsgHandler(
    XtAppContext ,
    XtErrorMsgHandler
);
extern void XtSetWarningMsgHandler(
    XtErrorMsgHandler
);
extern void XtAppErrorMsg(
    XtAppContext ,
    const char* ,
    const char* ,
    const char* ,
    const char* ,
    String* ,
    Cardinal*
);
extern void XtErrorMsg(
    const char* ,
    const char* ,
    const char* ,
    const char* ,
    String* ,
    Cardinal*
);
extern void XtAppWarningMsg(
    XtAppContext ,
    const char* ,
    const char* ,
    const char* ,
    const char* ,
    String* ,
    Cardinal*
);
extern void XtWarningMsg(
    const char* ,
    const char* ,
    const char* ,
    const char* ,
    String* ,
    Cardinal*
);
extern XtErrorHandler XtAppSetErrorHandler(
    XtAppContext ,
    XtErrorHandler
);
extern void XtSetErrorHandler(
    XtErrorHandler
);
extern XtErrorHandler XtAppSetWarningHandler(
    XtAppContext ,
    XtErrorHandler
);
extern void XtSetWarningHandler(
    XtErrorHandler
);
extern void XtAppError(
    XtAppContext ,
    const char*
);
extern void XtError(
    const char*
);
extern void XtAppWarning(
    XtAppContext ,
    const char*
);
extern void XtWarning(
    const char*
);
extern XrmDatabase *XtAppGetErrorDatabase(
    XtAppContext
);
extern XrmDatabase *XtGetErrorDatabase(
    void
);
extern void XtAppGetErrorDatabaseText(
    XtAppContext ,
    const char* ,
    const char* ,
    const char* ,
    const char* ,
    String ,
    int ,
    XrmDatabase
);
extern void XtGetErrorDatabaseText(
    const char* ,
    const char* ,
    const char* ,
    const char* ,
    String ,
    int
);
extern char *XtMalloc(
    Cardinal
);
extern char *XtCalloc(
    Cardinal ,
    Cardinal
);
extern char *XtRealloc(
    char* ,
    Cardinal
);
extern void XtFree(
    char*
);
extern XtWorkProcId XtAddWorkProc(
    XtWorkProc ,
    XtPointer
);
extern XtWorkProcId XtAppAddWorkProc(
    XtAppContext ,
    XtWorkProc ,
    XtPointer
);
extern void XtRemoveWorkProc(
    XtWorkProcId
);
extern GC XtGetGC(
    Widget ,
    XtGCMask ,
    XGCValues*
);
extern GC XtAllocateGC(
    Widget ,
    Cardinal ,
    XtGCMask ,
    XGCValues* ,
    XtGCMask ,
    XtGCMask
);
extern void XtDestroyGC(
    GC
);
extern void XtReleaseGC(
    Widget ,
    GC
);
extern void XtAppReleaseCacheRefs(
    XtAppContext ,
    XtCacheRef*
);
extern void XtCallbackReleaseCacheRef(
    Widget ,
    XtPointer ,
    XtPointer
);
extern void XtCallbackReleaseCacheRefList(
    Widget ,
    XtPointer ,
    XtPointer
);
extern void XtSetWMColormapWindows(
    Widget ,
    Widget* ,
    Cardinal
);
extern String XtFindFile(
    const char* ,
    Substitution ,
    Cardinal ,
    XtFilePredicate
);
extern String XtResolvePathname(
    Display* ,
    const char* ,
    const char* ,
    const char* ,
    const char* ,
    Substitution ,
    Cardinal ,
    XtFilePredicate
);
extern void XtDisownSelection(
    Widget ,
    Atom ,
    Time
);
extern void XtGetSelectionValue(
    Widget ,
    Atom ,
    Atom ,
    XtSelectionCallbackProc ,
    XtPointer ,
    Time
);
extern void XtGetSelectionValues(
    Widget ,
    Atom ,
    Atom* ,
    int ,
    XtSelectionCallbackProc ,
    XtPointer* ,
    Time
);
extern void XtAppSetSelectionTimeout(
    XtAppContext ,
    unsigned long
);
extern void XtSetSelectionTimeout(
    unsigned long
);
extern unsigned long XtAppGetSelectionTimeout(
    XtAppContext
);
extern unsigned long XtGetSelectionTimeout(
    void
);
extern XSelectionRequestEvent *XtGetSelectionRequest(
    Widget ,
    Atom ,
    XtRequestId
);
extern void XtGetSelectionValueIncremental(
    Widget ,
    Atom ,
    Atom ,
    XtSelectionCallbackProc ,
    XtPointer ,
    Time
);
extern void XtGetSelectionValuesIncremental(
    Widget ,
    Atom ,
    Atom* ,
    int ,
    XtSelectionCallbackProc ,
    XtPointer* ,
    Time
);
extern void XtSetSelectionParameters(
    Widget ,
    Atom ,
    Atom ,
    XtPointer ,
    unsigned long ,
    int
);
extern void XtGetSelectionParameters(
    Widget ,
    Atom ,
    XtRequestId ,
    Atom* ,
    XtPointer* ,
    unsigned long* ,
    int*
);
extern void XtCreateSelectionRequest(
    Widget ,
    Atom
);
extern void XtSendSelectionRequest(
    Widget ,
    Atom ,
    Time
);
extern void XtCancelSelectionRequest(
    Widget ,
    Atom
);
extern Atom XtReservePropertyAtom(
    Widget
);
extern void XtReleasePropertyAtom(
    Widget ,
    Atom
);
extern void XtGrabKey(
    Widget ,
    unsigned int ,
    Modifiers ,
    int ,
    int ,
    int
);
extern void XtUngrabKey(
    Widget ,
    unsigned int ,
    Modifiers
);
extern int XtGrabKeyboard(
    Widget ,
    int ,
    int ,
    int ,
    Time
);
extern void XtUngrabKeyboard(
    Widget ,
    Time
);
extern void XtGrabButton(
    Widget ,
    int ,
    Modifiers ,
    int ,
    unsigned int ,
    int ,
    int ,
    Window ,
    Cursor
);
extern void XtUngrabButton(
    Widget ,
    unsigned int ,
    Modifiers
);
extern int XtGrabPointer(
    Widget ,
    int ,
    unsigned int ,
    int ,
    int ,
    Window ,
    Cursor ,
    Time
);
extern void XtUngrabPointer(
    Widget ,
    Time
);
extern void XtGetApplicationNameAndClass(
    Display* ,
    String* ,
    String*
);
extern void XtRegisterDrawable(
    Display* ,
    Drawable ,
    Widget
);
extern void XtUnregisterDrawable(
    Display* ,
    Drawable
);
extern Widget XtHooksOfDisplay(
    Display*
);
typedef struct {
    String type;
    Widget widget;
    ArgList args;
    Cardinal num_args;
} XtCreateHookDataRec, *XtCreateHookData;
typedef struct {
    String type;
    Widget widget;
    XtPointer event_data;
    Cardinal num_event_data;
} XtChangeHookDataRec, *XtChangeHookData;
typedef struct {
    Widget old, req;
    ArgList args;
    Cardinal num_args;
} XtChangeHookSetValuesDataRec, *XtChangeHookSetValuesData;
typedef struct {
    String type;
    Widget widget;
    XtGeometryMask changeMask;
    XWindowChanges changes;
} XtConfigureHookDataRec, *XtConfigureHookData;
typedef struct {
    String type;
    Widget widget;
    XtWidgetGeometry* request;
    XtWidgetGeometry* reply;
    XtGeometryResult result;
} XtGeometryHookDataRec, *XtGeometryHookData;
typedef struct {
    String type;
    Widget widget;
} XtDestroyHookDataRec, *XtDestroyHookData;
extern void XtGetDisplays(
    XtAppContext ,
    Display*** ,
    Cardinal*
);
extern Boolean XtToolkitThreadInitialize(
    void
);
extern void XtAppSetExitFlag(
    XtAppContext
);
extern Boolean XtAppGetExitFlag(
    XtAppContext
);
extern void XtAppLock(
    XtAppContext
);
extern void XtAppUnlock(
    XtAppContext
);
extern Boolean XtCvtStringToAcceleratorTable(
    Display* ,
    XrmValuePtr ,
    Cardinal* ,
    XrmValuePtr ,
    XrmValuePtr ,
    XtPointer*
);
extern Boolean XtCvtStringToAtom(
    Display* ,
    XrmValuePtr ,
    Cardinal* ,
    XrmValuePtr ,
    XrmValuePtr ,
    XtPointer*
);
extern Boolean XtCvtStringToBool(
    Display* ,
    XrmValuePtr ,
    Cardinal* ,
    XrmValuePtr ,
    XrmValuePtr ,
    XtPointer*
);
extern Boolean XtCvtStringToBoolean(
    Display* ,
    XrmValuePtr ,
    Cardinal* ,
    XrmValuePtr ,
    XrmValuePtr ,
    XtPointer*
);
extern Boolean XtCvtStringToCommandArgArray(
    Display* ,
    XrmValuePtr ,
    Cardinal* ,
    XrmValuePtr ,
    XrmValuePtr ,
    XtPointer*
);
extern Boolean XtCvtStringToCursor(
    Display* ,
    XrmValuePtr ,
    Cardinal* ,
    XrmValuePtr ,
    XrmValuePtr ,
    XtPointer*
);
extern Boolean XtCvtStringToDimension(
    Display* ,
    XrmValuePtr ,
    Cardinal* ,
    XrmValuePtr ,
    XrmValuePtr ,
    XtPointer*
);
extern Boolean XtCvtStringToDirectoryString(
    Display* ,
    XrmValuePtr ,
    Cardinal* ,
    XrmValuePtr ,
    XrmValuePtr ,
    XtPointer*
);
extern Boolean XtCvtStringToDisplay(
    Display* ,
    XrmValuePtr ,
    Cardinal* ,
    XrmValuePtr ,
    XrmValuePtr ,
    XtPointer*
);
extern Boolean XtCvtStringToFile(
    Display* ,
    XrmValuePtr ,
    Cardinal* ,
    XrmValuePtr ,
    XrmValuePtr ,
    XtPointer*
);
extern Boolean XtCvtStringToFloat(
    Display* ,
    XrmValuePtr ,
    Cardinal* ,
    XrmValuePtr ,
    XrmValuePtr ,
    XtPointer*
);
extern Boolean XtCvtStringToFont(
    Display* ,
    XrmValuePtr ,
    Cardinal* ,
    XrmValuePtr ,
    XrmValuePtr ,
    XtPointer*
);
extern Boolean XtCvtStringToFontSet(
    Display* ,
    XrmValuePtr ,
    Cardinal* ,
    XrmValuePtr ,
    XrmValuePtr ,
    XtPointer*
);
extern Boolean XtCvtStringToFontStruct(
    Display* ,
    XrmValuePtr ,
    Cardinal* ,
    XrmValuePtr ,
    XrmValuePtr ,
    XtPointer*
);
extern Boolean XtCvtStringToGravity(
    Display* ,
    XrmValuePtr ,
    Cardinal* ,
    XrmValuePtr ,
    XrmValuePtr ,
    XtPointer*
);
extern Boolean XtCvtStringToInitialState(
    Display* ,
    XrmValuePtr ,
    Cardinal* ,
    XrmValuePtr ,
    XrmValuePtr ,
    XtPointer*
);
extern Boolean XtCvtStringToInt(
    Display* ,
    XrmValuePtr ,
    Cardinal* ,
    XrmValuePtr ,
    XrmValuePtr ,
    XtPointer*
);
extern Boolean XtCvtStringToPixel(
    Display* ,
    XrmValuePtr ,
    Cardinal* ,
    XrmValuePtr ,
    XrmValuePtr ,
    XtPointer*
);
extern Boolean XtCvtStringToRestartStyle(
    Display* ,
    XrmValuePtr ,
    Cardinal* ,
    XrmValuePtr ,
    XrmValuePtr ,
    XtPointer*
);
extern Boolean XtCvtStringToShort(
    Display* ,
    XrmValuePtr ,
    Cardinal* ,
    XrmValuePtr ,
    XrmValuePtr ,
    XtPointer*
);
extern Boolean XtCvtStringToTranslationTable(
    Display* ,
    XrmValuePtr ,
    Cardinal* ,
    XrmValuePtr ,
    XrmValuePtr ,
    XtPointer*
);
extern Boolean XtCvtStringToUnsignedChar(
    Display* ,
    XrmValuePtr ,
    Cardinal* ,
    XrmValuePtr ,
    XrmValuePtr ,
    XtPointer*
);
extern Boolean XtCvtStringToVisual(
    Display* ,
    XrmValuePtr ,
    Cardinal* ,
    XrmValuePtr ,
    XrmValuePtr ,
    XtPointer*
);
extern Boolean XtCvtIntToBool(
    Display* ,
    XrmValuePtr ,
    Cardinal* ,
    XrmValuePtr ,
    XrmValuePtr ,
    XtPointer*
);
extern Boolean XtCvtIntToBoolean(
    Display* ,
    XrmValuePtr ,
    Cardinal* ,
    XrmValuePtr ,
    XrmValuePtr ,
    XtPointer*
);
extern Boolean XtCvtIntToColor(
    Display* ,
    XrmValuePtr ,
    Cardinal* ,
    XrmValuePtr ,
    XrmValuePtr ,
    XtPointer*
);
extern Boolean XtCvtIntToFloat(
    Display* ,
    XrmValuePtr ,
    Cardinal* ,
    XrmValuePtr ,
    XrmValuePtr ,
    XtPointer*
);
extern Boolean XtCvtIntToFont(
    Display* ,
    XrmValuePtr ,
    Cardinal* ,
    XrmValuePtr ,
    XrmValuePtr ,
    XtPointer*
);
extern Boolean XtCvtIntToPixel(
    Display* ,
    XrmValuePtr ,
    Cardinal* ,
    XrmValuePtr ,
    XrmValuePtr ,
    XtPointer*
);
extern Boolean XtCvtIntToPixmap(
    Display* ,
    XrmValuePtr ,
    Cardinal* ,
    XrmValuePtr ,
    XrmValuePtr ,
    XtPointer*
);
extern Boolean XtCvtIntToShort(
    Display* ,
    XrmValuePtr ,
    Cardinal* ,
    XrmValuePtr ,
    XrmValuePtr ,
    XtPointer*
);
extern Boolean XtCvtIntToUnsignedChar(
    Display* ,
    XrmValuePtr ,
    Cardinal* ,
    XrmValuePtr ,
    XrmValuePtr ,
    XtPointer*
);
extern Boolean XtCvtColorToPixel(
    Display* ,
    XrmValuePtr ,
    Cardinal* ,
    XrmValuePtr ,
    XrmValuePtr ,
    XtPointer*
);
extern int COLS;
extern int ROWS;
extern Atom a_3270, a_registry, a_iso8859, a_ISO8859, a_encoding,
                                a_1;
extern XtAppContext appcontext;
extern const char *build;
extern int children;
extern char *connected_lu;
extern char *connected_type;
extern char *current_host;
extern unsigned short current_port;
extern Boolean *debugging_font;
extern char *efontname;
extern Boolean ever_3270;
extern Boolean exiting;
extern Boolean *extended_3270font;
extern Boolean flipped;
extern char *full_current_host;
extern char full_model_name[];
extern char *hostname;
extern Boolean *latin1_font;
extern char luname[];
extern int maxCOLS;
extern int maxROWS;
extern char *model_name;
extern int model_num;
extern Boolean non_tn3270e_host;
extern int ov_cols, ov_rows;
extern Boolean passthru_host;
extern char *programname;
extern char *reconnect_host;
extern int screen_depth;
extern Boolean scroll_initted;
extern Boolean shifted;
extern Boolean *standard_font;
extern Boolean std_ds_host;
extern char *termtype;
extern Widget toplevel;
extern Atom a_delete_me;
extern Atom a_save_yourself;
extern Atom a_state;
extern Pixel colorbg_pixel;
extern Display *display;
extern Pixmap gray;
extern Pixel keypadbg_pixel;
extern XrmDatabase rdb;
extern Window root_window;
enum cstate {
        NOT_CONNECTED,
        PENDING,
        CONNECTED_INITIAL,
        CONNECTED_ANSI,
        CONNECTED_3270,
        CONNECTED_INITIAL_E,
        CONNECTED_NVT,
        CONNECTED_SSCP,
        CONNECTED_TN3270E
};
extern enum cstate cstate;
struct toggle_name {
        const char *name;
        int index;
};
extern struct toggle_name toggle_names[];
struct ea {
        unsigned char fg;
        unsigned char bg;
        unsigned char gr;
        unsigned char cs;
};
struct trans_list {
        char *name;
        char *pathname;
        Boolean is_temp;
        Boolean from_server;
        struct trans_list *next;
};
extern struct trans_list *trans_list;
struct font_list {
        char *label;
        char *font;
        struct font_list *next;
};
extern struct font_list *font_list;
extern int font_count;
enum keytype { KT_STD, KT_GE };
typedef struct {
    long xrm_name;
    long xrm_class;
    long xrm_type;
    Cardinal xrm_size;
    int xrm_offset;
    long xrm_default_type;
    XtPointer xrm_default_addr;
} XrmResource, *XrmResourceList;
typedef unsigned long XtVersionType;
typedef void (*XtProc)(
    void
);
typedef void (*XtWidgetClassProc)(
    WidgetClass
);
typedef void (*XtWidgetProc)(
    Widget
);
typedef Boolean (*XtAcceptFocusProc)(
    Widget ,
    Time*
);
typedef void (*XtArgsProc)(
    Widget ,
    ArgList ,
    Cardinal*
);
typedef void (*XtInitProc)(
    Widget ,
    Widget ,
    ArgList ,
    Cardinal*
);
typedef Boolean (*XtSetValuesFunc)(
    Widget ,
    Widget ,
    Widget ,
    ArgList ,
    Cardinal*
);
typedef Boolean (*XtArgsFunc)(
    Widget ,
    ArgList ,
    Cardinal*
);
typedef void (*XtAlmostProc)(
    Widget ,
    Widget ,
    XtWidgetGeometry* ,
    XtWidgetGeometry*
);
typedef void (*XtExposeProc)(
    Widget ,
    XEvent* ,
    Region
);
typedef void (*XtRealizeProc)(
    Widget ,
    XtValueMask* ,
    XSetWindowAttributes*
);
typedef XtGeometryResult (*XtGeometryHandler)(
    Widget ,
    XtWidgetGeometry* ,
    XtWidgetGeometry*
);
typedef void (*XtStringProc)(
    Widget ,
    String
);
typedef struct {
    String name;
    String type;
    XtArgVal value;
    int size;
} XtTypedArg, *XtTypedArgList;
typedef void (*XtAllocateProc)(
    WidgetClass ,
    Cardinal * ,
    Cardinal * ,
    ArgList ,
    Cardinal * ,
    XtTypedArgList ,
    Cardinal * ,
    Widget * ,
    XtPointer *
);
typedef void (*XtDeallocateProc)(
    Widget ,
    XtPointer
);
struct _XtStateRec;
typedef struct _XtTMRec {
    XtTranslations translations;
    XtBoundActions proc_table;
    struct _XtStateRec *current_state;
    unsigned long lastEventTime;
} XtTMRec, *XtTM;
extern int _XtInheritTranslations;
typedef struct _CorePart {
    Widget self;
    WidgetClass widget_class;
    Widget parent;
    XrmName xrm_name;
    Boolean being_destroyed;
    XtCallbackList destroy_callbacks;
    XtPointer constraints;
    Position x, y;
    Dimension width, height;
    Dimension border_width;
    Boolean managed;
    Boolean sensitive;
    Boolean ancestor_sensitive;
    XtEventTable event_table;
    XtTMRec tm;
    XtTranslations accelerators;
    Pixel border_pixel;
    Pixmap border_pixmap;
    WidgetList popup_list;
    Cardinal num_popups;
    String name;
    Screen *screen;
    Colormap colormap;
    Window window;
    Cardinal depth;
    Pixel background_pixel;
    Pixmap background_pixmap;
    Boolean visible;
    Boolean mapped_when_managed;
} CorePart;
typedef struct _WidgetRec {
    CorePart core;
 } WidgetRec, CoreRec;
typedef struct _CoreClassPart {
    WidgetClass superclass;
    String class_name;
    Cardinal widget_size;
    XtProc class_initialize;
    XtWidgetClassProc class_part_initialize;
    XtEnum class_inited;
    XtInitProc initialize;
    XtArgsProc initialize_hook;
    XtRealizeProc realize;
    XtActionList actions;
    Cardinal num_actions;
    XtResourceList resources;
    Cardinal num_resources;
    XrmClass xrm_class;
    Boolean compress_motion;
    XtEnum compress_exposure;
    Boolean compress_enterleave;
    Boolean visible_interest;
    XtWidgetProc destroy;
    XtWidgetProc resize;
    XtExposeProc expose;
    XtSetValuesFunc set_values;
    XtArgsFunc set_values_hook;
    XtAlmostProc set_values_almost;
    XtArgsProc get_values_hook;
    XtAcceptFocusProc accept_focus;
    XtVersionType version;
    XtPointer callback_private;
    String tm_table;
    XtGeometryHandler query_geometry;
    XtStringProc display_accelerator;
    XtPointer extension;
 } CoreClassPart;
typedef struct _WidgetClassRec {
    CoreClassPart core_class;
} WidgetClassRec, CoreClassRec;
extern WidgetClassRec widgetClassRec;
typedef struct _CompositePart {
    WidgetList children;
    Cardinal num_children;
    Cardinal num_slots;
    XtOrderProc insert_position;
} CompositePart,*CompositePtr;
typedef struct _CompositeRec {
    CorePart core;
    CompositePart composite;
} CompositeRec;
typedef struct _CompositeClassPart {
    XtGeometryHandler geometry_manager;
    XtWidgetProc change_managed;
    XtWidgetProc insert_child;
    XtWidgetProc delete_child;
    XtPointer extension;
} CompositeClassPart,*CompositePartPtr;
typedef struct {
    XtPointer next_extension;
    XrmQuark record_type;
    long version;
    Cardinal record_size;
    Boolean accepts_objects;
    Boolean allows_change_managed_set;
} CompositeClassExtensionRec, *CompositeClassExtension;
typedef struct _CompositeClassRec {
     CoreClassPart core_class;
     CompositeClassPart composite_class;
} CompositeClassRec;
extern CompositeClassRec compositeClassRec;
typedef struct _ConstraintPart {
    XtPointer mumble;
} ConstraintPart;
typedef struct _ConstraintRec {
    CorePart core;
    CompositePart composite;
    ConstraintPart constraint;
} ConstraintRec, *ConstraintWidget;
typedef struct _ConstraintClassPart {
    XtResourceList resources;
    Cardinal num_resources;
    Cardinal constraint_size;
    XtInitProc initialize;
    XtWidgetProc destroy;
    XtSetValuesFunc set_values;
    XtPointer extension;
} ConstraintClassPart;
typedef struct {
    XtPointer next_extension;
    XrmQuark record_type;
    long version;
    Cardinal record_size;
    XtArgsProc get_values_hook;
} ConstraintClassExtensionRec, *ConstraintClassExtension;
typedef struct _ConstraintClassRec {
    CoreClassPart core_class;
    CompositeClassPart composite_class;
    ConstraintClassPart constraint_class;
} ConstraintClassRec;
extern ConstraintClassRec constraintClassRec;
typedef struct _ObjectPart {
    Widget self;
    WidgetClass widget_class;
    Widget parent;
    XrmName xrm_name;
    Boolean being_destroyed;
    XtCallbackList destroy_callbacks;
    XtPointer constraints;
} ObjectPart;
typedef struct _ObjectRec {
    ObjectPart object;
} ObjectRec;
typedef struct _ObjectClassPart {
    WidgetClass superclass;
    String class_name;
    Cardinal widget_size;
    XtProc class_initialize;
    XtWidgetClassProc class_part_initialize;
    XtEnum class_inited;
    XtInitProc initialize;
    XtArgsProc initialize_hook;
    XtProc obj1;
    XtPointer obj2;
    Cardinal obj3;
    XtResourceList resources;
    Cardinal num_resources;
    XrmClass xrm_class;
    Boolean obj4;
    XtEnum obj5;
    Boolean obj6;
    Boolean obj7;
    XtWidgetProc destroy;
    XtProc obj8;
    XtProc obj9;
    XtSetValuesFunc set_values;
    XtArgsFunc set_values_hook;
    XtProc obj10;
    XtArgsProc get_values_hook;
    XtProc obj11;
    XtVersionType version;
    XtPointer callback_private;
    String obj12;
    XtProc obj13;
    XtProc obj14;
    XtPointer extension;
}ObjectClassPart;
typedef struct {
    XtPointer next_extension;
    XrmQuark record_type;
    long version;
    Cardinal record_size;
    XtAllocateProc allocate;
    XtDeallocateProc deallocate;
} ObjectClassExtensionRec, *ObjectClassExtension;
typedef struct _ObjectClassRec {
    ObjectClassPart object_class;
} ObjectClassRec;
extern ObjectClassRec objectClassRec;
typedef struct _RectObjPart {
    Position x, y;
    Dimension width, height;
    Dimension border_width;
    Boolean managed;
    Boolean sensitive;
    Boolean ancestor_sensitive;
}RectObjPart;
typedef struct _RectObjRec {
    ObjectPart object;
    RectObjPart rectangle;
} RectObjRec;
typedef struct _RectObjClassPart {
    WidgetClass superclass;
    String class_name;
    Cardinal widget_size;
    XtProc class_initialize;
    XtWidgetClassProc class_part_initialize;
    XtEnum class_inited;
    XtInitProc initialize;
    XtArgsProc initialize_hook;
    XtProc rect1;
    XtPointer rect2;
    Cardinal rect3;
    XtResourceList resources;
    Cardinal num_resources;
    XrmClass xrm_class;
    Boolean rect4;
    XtEnum rect5;
    Boolean rect6;
    Boolean rect7;
    XtWidgetProc destroy;
    XtWidgetProc resize;
    XtExposeProc expose;
    XtSetValuesFunc set_values;
    XtArgsFunc set_values_hook;
    XtAlmostProc set_values_almost;
    XtArgsProc get_values_hook;
    XtProc rect9;
    XtVersionType version;
    XtPointer callback_private;
    String rect10;
    XtGeometryHandler query_geometry;
    XtProc rect11;
    XtPointer extension;
} RectObjClassPart;
typedef struct _RectObjClassRec {
    RectObjClassPart rect_class;
} RectObjClassRec;
extern RectObjClassRec rectObjClassRec;
extern Widget _XtWindowedAncestor(
    Widget
);
extern void _XtInherit(
    void
);
extern void XtCreateWindow(
    Widget ,
    unsigned int ,
    Visual* ,
    XtValueMask ,
    XSetWindowAttributes*
);
extern void XtResizeWidget(
    Widget ,
    unsigned int ,
    unsigned int ,
    unsigned int
);
extern void XtMoveWidget(
    Widget ,
    int ,
    int
);
extern void XtConfigureWidget(
    Widget ,
    int ,
    int ,
    unsigned int ,
    unsigned int ,
    unsigned int
);
extern void XtResizeWindow(
    Widget
);
extern void XtProcessLock(
    void
);
extern void XtProcessUnlock(
    void
);
extern const char XtStrings[];
extern const char XtR6Strings[];
extern void XawInitializeWidgetSet();
typedef void *IcePointer;
typedef enum {
    IcePoAuthHaveReply,
    IcePoAuthRejected,
    IcePoAuthFailed,
    IcePoAuthDoneCleanup
} IcePoAuthStatus;
typedef enum {
    IcePaAuthContinue,
    IcePaAuthAccepted,
    IcePaAuthRejected,
    IcePaAuthFailed
} IcePaAuthStatus;
typedef enum {
    IceConnectPending,
    IceConnectAccepted,
    IceConnectRejected,
    IceConnectIOError
} IceConnectStatus;
typedef enum {
    IceProtocolSetupSuccess,
    IceProtocolSetupFailure,
    IceProtocolSetupIOError,
    IceProtocolAlreadyActive
} IceProtocolSetupStatus;
typedef enum {
    IceAcceptSuccess,
    IceAcceptFailure,
    IceAcceptBadMalloc
} IceAcceptStatus;
typedef enum {
    IceClosedNow,
    IceClosedASAP,
    IceConnectionInUse,
    IceStartedShutdownNegotiation
} IceCloseStatus;
typedef enum {
    IceProcessMessagesSuccess,
    IceProcessMessagesIOError,
    IceProcessMessagesConnectionClosed
} IceProcessMessagesStatus;
typedef struct {
    unsigned long sequence_of_request;
    int major_opcode_of_request;
    int minor_opcode_of_request;
    IcePointer reply;
} IceReplyWaitInfo;
typedef struct _IceConn *IceConn;
typedef struct _IceListenObj *IceListenObj;
typedef void (*IceWatchProc) (
    IceConn ,
    IcePointer ,
    int ,
    IcePointer *
);
typedef void (*IcePoProcessMsgProc) (
    IceConn ,
    IcePointer ,
    int ,
    unsigned long ,
    int ,
    IceReplyWaitInfo * ,
    int *
);
typedef void (*IcePaProcessMsgProc) (
    IceConn ,
    IcePointer ,
    int ,
    unsigned long ,
    int
);
typedef struct {
    int major_version;
    int minor_version;
    IcePoProcessMsgProc process_msg_proc;
} IcePoVersionRec;
typedef struct {
    int major_version;
    int minor_version;
    IcePaProcessMsgProc process_msg_proc;
} IcePaVersionRec;
typedef IcePoAuthStatus (*IcePoAuthProc) (
    IceConn ,
    IcePointer * ,
    int ,
    int ,
    int ,
    IcePointer ,
    int * ,
    IcePointer * ,
    char **
);
typedef IcePaAuthStatus (*IcePaAuthProc) (
    IceConn ,
    IcePointer * ,
    int ,
    int ,
    IcePointer ,
    int * ,
    IcePointer * ,
    char **
);
typedef int (*IceHostBasedAuthProc) (
    char *
);
typedef int (*IceProtocolSetupProc) (
    IceConn ,
    int ,
    int ,
    char * ,
    char * ,
    IcePointer * ,
    char **
);
typedef void (*IceProtocolActivateProc) (
    IceConn ,
    IcePointer
);
typedef void (*IceIOErrorProc) (
    IceConn
);
typedef void (*IcePingReplyProc) (
    IceConn ,
    IcePointer
);
typedef void (*IceErrorHandler) (
    IceConn ,
    int ,
    int ,
    unsigned long ,
    int ,
    int ,
    IcePointer
);
typedef void (*IceIOErrorHandler) (
    IceConn
);
extern int IceRegisterForProtocolSetup (
    char * ,
    char * ,
    char * ,
    int ,
    IcePoVersionRec * ,
    int ,
    char ** ,
    IcePoAuthProc * ,
    IceIOErrorProc
);
extern int IceRegisterForProtocolReply (
    char * ,
    char * ,
    char * ,
    int ,
    IcePaVersionRec * ,
    int ,
    char ** ,
    IcePaAuthProc * ,
    IceHostBasedAuthProc ,
    IceProtocolSetupProc ,
    IceProtocolActivateProc ,
    IceIOErrorProc
);
extern IceConn IceOpenConnection (
    char * ,
    IcePointer ,
    int ,
    int ,
    int ,
    char *
);
extern IcePointer IceGetConnectionContext (
    IceConn
);
extern int IceListenForConnections (
    int * ,
    IceListenObj ** ,
    int ,
    char *
);
extern int IceGetListenConnectionNumber (
    IceListenObj
);
extern char *IceGetListenConnectionString (
    IceListenObj
);
extern char *IceComposeNetworkIdList (
    int ,
    IceListenObj *
);
extern void IceFreeListenObjs (
    int ,
    IceListenObj *
);
extern void IceSetHostBasedAuthProc (
    IceListenObj ,
    IceHostBasedAuthProc
);
extern IceConn IceAcceptConnection (
    IceListenObj ,
    IceAcceptStatus *
);
extern void IceSetShutdownNegotiation (
    IceConn ,
    int
);
extern int IceCheckShutdownNegotiation (
    IceConn
);
extern IceCloseStatus IceCloseConnection (
    IceConn
);
extern int IceAddConnectionWatch (
    IceWatchProc ,
    IcePointer
);
extern void IceRemoveConnectionWatch (
    IceWatchProc ,
    IcePointer
);
extern IceProtocolSetupStatus IceProtocolSetup (
    IceConn ,
    int ,
    IcePointer ,
    int ,
    int * ,
    int * ,
    char ** ,
    char ** ,
    int ,
    char *
);
extern int IceProtocolShutdown (
    IceConn ,
    int
);
extern IceProcessMessagesStatus IceProcessMessages (
    IceConn ,
    IceReplyWaitInfo * ,
    int *
);
extern int IcePing (
   IceConn ,
   IcePingReplyProc ,
   IcePointer
);
extern char *IceAllocScratch (
   IceConn ,
   unsigned long
);
extern IceFlush (
   IceConn
);
extern int IceGetOutBufSize (
   IceConn
);
extern int IceGetInBufSize (
   IceConn
);
extern IceConnectStatus IceConnectionStatus (
    IceConn
);
extern char *IceVendor (
    IceConn
);
extern char *IceRelease (
    IceConn
);
extern int IceProtocolVersion (
    IceConn
);
extern int IceProtocolRevision (
    IceConn
);
extern int IceConnectionNumber (
    IceConn
);
extern char *IceConnectionString (
    IceConn
);
extern unsigned long IceLastSentSequenceNumber (
    IceConn
);
extern unsigned long IceLastReceivedSequenceNumber (
    IceConn
);
extern int IceSwapping (
    IceConn
);
extern IceErrorHandler IceSetErrorHandler (
    IceErrorHandler
);
extern IceIOErrorHandler IceSetIOErrorHandler (
    IceIOErrorHandler
);
extern int IceInitThreads (
    void
);
extern void IceAppLockConn (
    IceConn
);
extern void IceAppUnlockConn (
    IceConn
);
typedef IcePointer SmPointer;
typedef struct _SmcConn *SmcConn;
typedef struct _SmsConn *SmsConn;
typedef struct {
    int length;
    SmPointer value;
} SmPropValue;
typedef struct {
    char *name;
    char *type;
    int num_vals;
    SmPropValue *vals;
} SmProp;
typedef enum {
    SmcClosedNow,
    SmcClosedASAP,
    SmcConnectionInUse
} SmcCloseStatus;
typedef void (*SmcSaveYourselfProc) (
    SmcConn ,
    SmPointer ,
    int ,
    int ,
    int ,
    int
);
typedef void (*SmcSaveYourselfPhase2Proc) (
    SmcConn ,
    SmPointer
);
typedef void (*SmcInteractProc) (
    SmcConn ,
    SmPointer
);
typedef void (*SmcDieProc) (
    SmcConn ,
    SmPointer
);
typedef void (*SmcShutdownCancelledProc) (
    SmcConn ,
    SmPointer
);
typedef void (*SmcSaveCompleteProc) (
    SmcConn ,
    SmPointer
);
typedef void (*SmcPropReplyProc) (
    SmcConn ,
    SmPointer ,
    int ,
    SmProp **
);
typedef struct {
    struct {
        SmcSaveYourselfProc callback;
        SmPointer client_data;
    } save_yourself;
    struct {
        SmcDieProc callback;
        SmPointer client_data;
    } die;
    struct {
        SmcSaveCompleteProc callback;
        SmPointer client_data;
    } save_complete;
    struct {
        SmcShutdownCancelledProc callback;
        SmPointer client_data;
    } shutdown_cancelled;
} SmcCallbacks;
typedef int (*SmsRegisterClientProc) (
    SmsConn ,
    SmPointer ,
    char *
);
typedef void (*SmsInteractRequestProc) (
    SmsConn ,
    SmPointer ,
    int
);
typedef void (*SmsInteractDoneProc) (
    SmsConn ,
    SmPointer ,
    int
);
typedef void (*SmsSaveYourselfRequestProc) (
    SmsConn ,
    SmPointer ,
    int ,
    int ,
    int ,
    int ,
    int
);
typedef void (*SmsSaveYourselfPhase2RequestProc) (
    SmsConn ,
    SmPointer
);
typedef void (*SmsSaveYourselfDoneProc) (
    SmsConn ,
    SmPointer ,
    int
);
typedef void (*SmsCloseConnectionProc) (
    SmsConn ,
    SmPointer ,
    int ,
    char **
);
typedef void (*SmsSetPropertiesProc) (
    SmsConn ,
    SmPointer ,
    int ,
    SmProp **
);
typedef void (*SmsDeletePropertiesProc) (
    SmsConn ,
    SmPointer ,
    int ,
    char **
);
typedef void (*SmsGetPropertiesProc) (
    SmsConn ,
    SmPointer
);
typedef struct {
    struct {
        SmsRegisterClientProc callback;
        SmPointer manager_data;
    } register_client;
    struct {
        SmsInteractRequestProc callback;
        SmPointer manager_data;
    } interact_request;
    struct {
        SmsInteractDoneProc callback;
        SmPointer manager_data;
    } interact_done;
    struct {
        SmsSaveYourselfRequestProc callback;
        SmPointer manager_data;
    } save_yourself_request;
    struct {
        SmsSaveYourselfPhase2RequestProc callback;
        SmPointer manager_data;
    } save_yourself_phase2_request;
    struct {
        SmsSaveYourselfDoneProc callback;
        SmPointer manager_data;
    } save_yourself_done;
    struct {
        SmsCloseConnectionProc callback;
        SmPointer manager_data;
    } close_connection;
    struct {
        SmsSetPropertiesProc callback;
        SmPointer manager_data;
    } set_properties;
    struct {
        SmsDeletePropertiesProc callback;
        SmPointer manager_data;
    } delete_properties;
    struct {
        SmsGetPropertiesProc callback;
        SmPointer manager_data;
    } get_properties;
} SmsCallbacks;
typedef int (*SmsNewClientProc) (
    SmsConn ,
    SmPointer ,
    unsigned long * ,
    SmsCallbacks * ,
    char **
);
typedef void (*SmcErrorHandler) (
    SmcConn ,
    int ,
    int ,
    unsigned long ,
    int ,
    int ,
    SmPointer
);
typedef void (*SmsErrorHandler) (
    SmsConn ,
    int ,
    int ,
    unsigned long ,
    int ,
    int ,
    SmPointer
);
extern SmcConn SmcOpenConnection (
    char * ,
    SmPointer ,
    int ,
    int ,
    unsigned long ,
    SmcCallbacks * ,
    char * ,
    char ** ,
    int ,
    char *
);
extern SmcCloseStatus SmcCloseConnection (
    SmcConn ,
    int ,
    char **
);
extern void SmcModifyCallbacks (
    SmcConn ,
    unsigned long ,
    SmcCallbacks *
);
extern void SmcSetProperties (
    SmcConn ,
    int ,
    SmProp **
);
extern void SmcDeleteProperties (
    SmcConn ,
    int ,
    char **
);
extern int SmcGetProperties (
    SmcConn ,
    SmcPropReplyProc ,
    SmPointer
);
extern int SmcInteractRequest (
    SmcConn ,
    int ,
    SmcInteractProc ,
    SmPointer
);
extern void SmcInteractDone (
    SmcConn ,
    int
);
extern void SmcRequestSaveYourself (
    SmcConn ,
    int ,
    int ,
    int ,
    int ,
    int
);
extern int SmcRequestSaveYourselfPhase2 (
    SmcConn ,
    SmcSaveYourselfPhase2Proc ,
    SmPointer
);
extern void SmcSaveYourselfDone (
    SmcConn ,
    int
);
extern int SmcProtocolVersion (
    SmcConn
);
extern int SmcProtocolRevision (
    SmcConn
);
extern char *SmcVendor (
    SmcConn
);
extern char *SmcRelease (
    SmcConn
);
extern char *SmcClientID (
    SmcConn
);
extern IceConn SmcGetIceConnection (
    SmcConn
);
extern int SmsInitialize (
    char * ,
    char * ,
    SmsNewClientProc ,
    SmPointer ,
    IceHostBasedAuthProc ,
    int ,
    char *
);
extern char *SmsClientHostName (
    SmsConn
);
extern char *SmsGenerateClientID (
    SmsConn
);
extern int SmsRegisterClientReply (
    SmsConn ,
    char *
);
extern void SmsSaveYourself (
    SmsConn ,
    int ,
    int ,
    int ,
    int
);
extern void SmsSaveYourselfPhase2 (
    SmsConn
);
extern void SmsInteract (
    SmsConn
);
extern void SmsDie (
    SmsConn
);
extern void SmsSaveComplete (
    SmsConn
);
extern void SmsShutdownCancelled (
    SmsConn
);
extern void SmsReturnProperties (
    SmsConn ,
    int ,
    SmProp **
);
extern void SmsCleanUp (
    SmsConn
);
extern int SmsProtocolVersion (
    SmsConn
);
extern int SmsProtocolRevision (
    SmsConn
);
extern char *SmsClientID (
    SmsConn
);
extern IceConn SmsGetIceConnection (
    SmsConn
);
extern SmcErrorHandler SmcSetErrorHandler (
    SmcErrorHandler
);
extern SmsErrorHandler SmsSetErrorHandler (
    SmsErrorHandler
);
extern void SmFreeProperty (
    SmProp *
);
extern void SmFreeReasons (
    int ,
    char **
);
extern const char XtShellStrings[];
extern const char XtR6ShellStrings[];
typedef struct _ShellClassRec *ShellWidgetClass;
typedef struct _OverrideShellClassRec *OverrideShellWidgetClass;
typedef struct _WMShellClassRec *WMShellWidgetClass;
typedef struct _TransientShellClassRec *TransientShellWidgetClass;
typedef struct _TopLevelShellClassRec *TopLevelShellWidgetClass;
typedef struct _ApplicationShellClassRec *ApplicationShellWidgetClass;
typedef struct _SessionShellClassRec *SessionShellWidgetClass;
extern WidgetClass shellWidgetClass;
extern WidgetClass overrideShellWidgetClass;
extern WidgetClass wmShellWidgetClass;
extern WidgetClass transientShellWidgetClass;
extern WidgetClass topLevelShellWidgetClass;
extern WidgetClass applicationShellWidgetClass;
extern WidgetClass sessionShellWidgetClass;
extern void XmuCvtFunctionToCallback(
    XrmValue* ,
    Cardinal* ,
    XrmValuePtr ,
    XrmValuePtr
);
extern void XmuCvtStringToBackingStore(
    XrmValue* ,
    Cardinal* ,
    XrmValuePtr ,
    XrmValuePtr
);
extern void XmuCvtStringToCursor(
    XrmValue* ,
    Cardinal* ,
    XrmValuePtr ,
    XrmValuePtr
);
extern Boolean XmuCvtStringToColorCursor(
    Display* ,
    XrmValue* ,
    Cardinal* ,
    XrmValuePtr ,
    XrmValuePtr ,
    XtPointer*
);
typedef int XtGravity;
extern void XmuCvtStringToGravity (
    XrmValue* ,
    Cardinal* ,
    XrmValuePtr ,
    XrmValuePtr
);
typedef enum {
    XtJustifyLeft,
    XtJustifyCenter,
    XtJustifyRight
} XtJustify;
extern void XmuCvtStringToJustify(
    XrmValue* ,
    Cardinal* ,
    XrmValuePtr ,
    XrmValuePtr
);
extern void XmuCvtStringToLong(
    XrmValue* ,
    Cardinal* ,
    XrmValuePtr ,
    XrmValuePtr
);
typedef enum {XtorientHorizontal, XtorientVertical} XtOrientation;
extern void XmuCvtStringToOrientation(
    XrmValue* ,
    Cardinal* ,
    XrmValuePtr ,
    XrmValuePtr
);
extern void XmuCvtStringToBitmap(
    XrmValue* ,
    Cardinal* ,
    XrmValuePtr ,
    XrmValuePtr
);
extern Boolean XmuCvtStringToShapeStyle(
    Display* ,
    XrmValue* ,
    Cardinal* ,
    XrmValuePtr ,
    XrmValuePtr ,
    XtPointer*
);
extern Boolean XmuReshapeWidget(
    Widget ,
    int ,
    int ,
    int
);
extern void XmuCvtStringToWidget(
    XrmValue* ,
    Cardinal* ,
    XrmValuePtr ,
    XrmValuePtr
);
extern Boolean XmuNewCvtStringToWidget(
    Display* ,
    XrmValue* ,
    Cardinal* ,
    XrmValue* ,
    XrmValue* ,
    XtPointer*
);
typedef struct _ComplexMenuClassRec* ComplexMenuWidgetClass;
typedef struct _ComplexMenuRec* ComplexMenuWidget;
extern WidgetClass complexMenuWidgetClass;
extern void XawComplexMenuAddGlobalActions(
    XtAppContext
);
extern Widget XawComplexMenuGetActiveEntry(
    Widget
);
extern void XawComplexMenuClearActiveEntry(
    Widget
);
typedef struct _CmeClassRec* CmeObjectClass;
typedef struct _CmeRec* CmeObject;
extern WidgetClass cmeObjectClass;
typedef struct _CmeClassPart {
  void (*highlight)();
  void (*unhighlight)();
  void (*notify)();
  XtPointer extension;
} CmeClassPart;
typedef struct _CmeClassRec {
    RectObjClassPart rect_class;
    CmeClassPart cme_class;
} CmeClassRec;
extern CmeClassRec cmeClassRec;
typedef struct {
    XtCallbackList callbacks;
} CmePart;
typedef struct _CmeRec {
  ObjectPart object;
  RectObjPart rectangle;
  CmePart cme;
} CmeRec;
typedef void (*_XawEntryVoidFunc)();
typedef struct {
    XtPointer extension;
} ShellClassPart;
typedef struct {
    XtPointer next_extension;
    XrmQuark record_type;
    long version;
    Cardinal record_size;
    XtGeometryHandler root_geometry_manager;
} ShellClassExtensionRec, *ShellClassExtension;
typedef struct _ShellClassRec {
        CoreClassPart core_class;
        CompositeClassPart composite_class;
        ShellClassPart shell_class;
} ShellClassRec;
extern ShellClassRec shellClassRec;
typedef struct {
        char *geometry;
        XtCreatePopupChildProc create_popup_child_proc;
        XtGrabKind grab_kind;
        Boolean spring_loaded;
        Boolean popped_up;
        Boolean allow_shell_resize;
        Boolean client_specified;
        Boolean save_under;
        Boolean override_redirect;
        XtCallbackList popup_callback;
        XtCallbackList popdown_callback;
        Visual* visual;
} ShellPart;
typedef struct {
        CorePart core;
        CompositePart composite;
        ShellPart shell;
} ShellRec, *ShellWidget;
typedef struct {
    XtPointer extension;
} OverrideShellClassPart;
typedef struct _OverrideShellClassRec {
        CoreClassPart core_class;
        CompositeClassPart composite_class;
        ShellClassPart shell_class;
        OverrideShellClassPart override_shell_class;
} OverrideShellClassRec;
extern OverrideShellClassRec overrideShellClassRec;
typedef struct {int frabjous;} OverrideShellPart;
typedef struct {
        CorePart core;
        CompositePart composite;
        ShellPart shell;
        OverrideShellPart override;
} OverrideShellRec, *OverrideShellWidget;
typedef struct {
    XtPointer extension;
} WMShellClassPart;
typedef struct _WMShellClassRec {
        CoreClassPart core_class;
        CompositeClassPart composite_class;
        ShellClassPart shell_class;
        WMShellClassPart wm_shell_class;
} WMShellClassRec;
extern WMShellClassRec wmShellClassRec;
typedef struct {
        char *title;
        int wm_timeout;
        Boolean wait_for_wm;
        Boolean transient;
        Boolean urgency;
        Widget client_leader;
        String window_role;
        struct _OldXSizeHints {
            long flags;
            int x, y;
            int width, height;
            int min_width, min_height;
            int max_width, max_height;
            int width_inc, height_inc;
            struct {
                    int x;
                    int y;
            } min_aspect, max_aspect;
        } size_hints;
        XWMHints wm_hints;
        int base_width, base_height;
        int win_gravity;
        Atom title_encoding;
} WMShellPart;
typedef struct {
        CorePart core;
        CompositePart composite;
        ShellPart shell;
        WMShellPart wm;
} WMShellRec, *WMShellWidget;
typedef struct _VendorShellClassRec *VendorShellWidgetClass;
extern WidgetClass vendorShellWidgetClass;
typedef struct {
    XtPointer extension;
} VendorShellClassPart;
typedef struct _VendorShellClassRec {
        CoreClassPart core_class;
        CompositeClassPart composite_class;
        ShellClassPart shell_class;
        WMShellClassPart wm_shell_class;
        VendorShellClassPart vendor_shell_class;
} VendorShellClassRec;
extern VendorShellClassRec vendorShellClassRec;
typedef struct {
        int vendor_specific;
} VendorShellPart;
typedef struct {
        CorePart core;
        CompositePart composite;
        ShellPart shell;
        WMShellPart wm;
        VendorShellPart vendor;
} VendorShellRec, *VendorShellWidget;
typedef struct {
    XtPointer extension;
} TransientShellClassPart;
typedef struct _TransientShellClassRec {
        CoreClassPart core_class;
        CompositeClassPart composite_class;
        ShellClassPart shell_class;
        WMShellClassPart wm_shell_class;
        VendorShellClassPart vendor_shell_class;
        TransientShellClassPart transient_shell_class;
} TransientShellClassRec;
extern TransientShellClassRec transientShellClassRec;
typedef struct {
        Widget transient_for;
} TransientShellPart;
typedef struct {
        CorePart core;
        CompositePart composite;
        ShellPart shell;
        WMShellPart wm;
        VendorShellPart vendor;
        TransientShellPart transient;
} TransientShellRec, *TransientShellWidget;
typedef struct {
    XtPointer extension;
} TopLevelShellClassPart;
typedef struct _TopLevelShellClassRec {
        CoreClassPart core_class;
        CompositeClassPart composite_class;
        ShellClassPart shell_class;
        WMShellClassPart wm_shell_class;
        VendorShellClassPart vendor_shell_class;
        TopLevelShellClassPart top_level_shell_class;
} TopLevelShellClassRec;
extern TopLevelShellClassRec topLevelShellClassRec;
typedef struct {
        char *icon_name;
        Boolean iconic;
        Atom icon_name_encoding;
} TopLevelShellPart;
typedef struct {
        CorePart core;
        CompositePart composite;
        ShellPart shell;
        WMShellPart wm;
        VendorShellPart vendor;
        TopLevelShellPart topLevel;
} TopLevelShellRec, *TopLevelShellWidget;
typedef struct {
    XtPointer extension;
} ApplicationShellClassPart;
typedef struct _ApplicationShellClassRec {
        CoreClassPart core_class;
        CompositeClassPart composite_class;
        ShellClassPart shell_class;
        WMShellClassPart wm_shell_class;
        VendorShellClassPart vendor_shell_class;
        TopLevelShellClassPart top_level_shell_class;
        ApplicationShellClassPart application_shell_class;
} ApplicationShellClassRec;
extern ApplicationShellClassRec applicationShellClassRec;
typedef struct {
    char *class;
    XrmClass xrm_class;
    int argc;
    char **argv;
} ApplicationShellPart;
typedef struct {
        CorePart core;
        CompositePart composite;
        ShellPart shell;
        WMShellPart wm;
        VendorShellPart vendor;
        TopLevelShellPart topLevel;
        ApplicationShellPart application;
} ApplicationShellRec, *ApplicationShellWidget;
typedef struct {
    XtPointer extension;
} SessionShellClassPart;
typedef struct _SessionShellClassRec {
        CoreClassPart core_class;
        CompositeClassPart composite_class;
        ShellClassPart shell_class;
        WMShellClassPart wm_shell_class;
        VendorShellClassPart vendor_shell_class;
        TopLevelShellClassPart top_level_shell_class;
        ApplicationShellClassPart application_shell_class;
        SessionShellClassPart session_shell_class;
} SessionShellClassRec;
extern SessionShellClassRec sessionShellClassRec;
typedef struct _XtSaveYourselfRec *XtSaveYourself;
typedef struct {
    SmcConn connection;
    String session_id;
    String* restart_command;
    String* clone_command;
    String* discard_command;
    String* resign_command;
    String* shutdown_command;
    String* environment;
    String current_dir;
    String program_path;
    unsigned char restart_style;
    unsigned char checkpoint_state;
    Boolean join_session;
    XtCallbackList save_callbacks;
    XtCallbackList interact_callbacks;
    XtCallbackList cancel_callbacks;
    XtCallbackList save_complete_callbacks;
    XtCallbackList die_callbacks;
    XtCallbackList error_callbacks;
    XtSaveYourself save;
    XtInputId input_id;
    XtPointer ses20;
    XtPointer ses19;
    XtPointer ses18;
    XtPointer ses17;
    XtPointer ses16;
    XtPointer ses15;
    XtPointer ses14;
    XtPointer ses13;
    XtPointer ses12;
    XtPointer ses11;
    XtPointer ses10;
    XtPointer ses9;
    XtPointer ses8;
    XtPointer ses7;
    XtPointer ses6;
    XtPointer ses5;
    XtPointer ses4;
    XtPointer ses3;
    XtPointer ses2;
    XtPointer ses1;
} SessionShellPart;
typedef struct {
        CorePart core;
        CompositePart composite;
        ShellPart shell;
        WMShellPart wm;
        VendorShellPart vendor;
        TopLevelShellPart topLevel;
        ApplicationShellPart application;
        SessionShellPart session;
} SessionShellRec, *SessionShellWidget;
typedef struct {
    XtPointer extension;
} ComplexMenuClassPart;
typedef struct _ComplexMenuClassRec {
  CoreClassPart core_class;
  CompositeClassPart composite_class;
  ShellClassPart shell_class;
  OverrideShellClassPart override_shell_class;
  ComplexMenuClassPart complexMenu_class;
} ComplexMenuClassRec;
extern ComplexMenuClassRec complexMenuClassRec;
typedef struct _ComplexMenuPart {
  String label_string;
  CmeObject label;
  WidgetClass label_class;
  Dimension top_margin;
  Dimension bottom_margin;
  Dimension row_height;
  Cursor cursor;
  CmeObject popup_entry;
  Boolean menu_on_screen;
  int backing_store;
  Boolean recursive_set_values;
  Boolean menu_width;
  Boolean menu_height;
  CmeObject entry_set;
  CmeObject prev_entry;
  Widget parent;
  Widget deferred_notify;
} ComplexMenuPart;
typedef struct _ComplexMenuRec {
  CorePart core;
  CompositePart composite;
  ShellPart shell;
  OverrideShellPart override;
  ComplexMenuPart complex_menu;
} ComplexMenuRec;
typedef struct _CmeBSBClassRec *CmeBSBObjectClass;
typedef struct _CmeBSBRec *CmeBSBObject;
extern WidgetClass cmeBSBObjectClass;
typedef struct _SimpleClassRec *SimpleWidgetClass;
typedef struct _SimpleRec *SimpleWidget;
extern WidgetClass simpleWidgetClass;
extern WidgetClass labelWidgetClass;
typedef struct _LabelClassRec *LabelWidgetClass;
typedef struct _LabelRec *LabelWidget;
extern WidgetClass commandWidgetClass;
typedef struct _CommandClassRec *CommandWidgetClass;
typedef struct _CommandRec *CommandWidget;
extern WidgetClass menuButtonWidgetClass;
typedef struct _MenuButtonClassRec *MenuButtonWidgetClass;
typedef struct _MenuButtonRec *MenuButtonWidget;
typedef void (*XmuInitializerProc)(
    XtAppContext ,
    XPointer
);
extern void XmuCallInitializers(
    XtAppContext
);
extern void XmuAddInitializer(
    XmuInitializerProc ,
     XPointer
);
extern void XmuCopyISOLatin1Lowered(
    char * ,
    const char *
);
extern void XmuCopyISOLatin1Uppered(
    char * ,
    const char *
);
extern int XmuCompareISOLatin1(
    const char * ,
    const char *
);
static XtResource resources[] = {
  {((char*)&XtStrings[429]), ((char*)&XtStrings[1151]), ((char*)&XtStrings[1797]), sizeof(String),
     ((size_t) &((ComplexMenuRec *)0)->complex_menu.label_string), ((char*)&XtStrings[1797]), ((void *)0)},
  {"labelClass", "LabelClass", ((char*)&XtStrings[1767]), sizeof(WidgetClass),
     ((size_t) &((ComplexMenuRec *)0)->complex_menu.label_class), ((char*)&XtStrings[1695]), (XtPointer) ((void *)0)},
  {"rowHeight", "RowHeight", ((char*)&XtStrings[1618]), sizeof(Dimension),
     ((size_t) &((ComplexMenuRec *)0)->complex_menu.row_height), ((char*)&XtStrings[1695]), (XtPointer) 0},
  {"topMargin", "VerticalMargins", ((char*)&XtStrings[1618]), sizeof(Dimension),
     ((size_t) &((ComplexMenuRec *)0)->complex_menu.top_margin), ((char*)&XtStrings[1695]), (XtPointer) 0},
  {"bottomMargin", "VerticalMargins", ((char*)&XtStrings[1618]), sizeof(Dimension),
     ((size_t) &((ComplexMenuRec *)0)->complex_menu.bottom_margin), ((char*)&XtStrings[1695]), (XtPointer) 0},
  { ((char*)&XtShellStrings[280]), ((char*)&XtShellStrings[297]), ((char*)&XtStrings[1561]), sizeof(Boolean),
      ((size_t) &((ComplexMenuRec *)0)->shell.allow_shell_resize),
      ((char*)&XtStrings[1695]), (XtPointer) 1 },
  {"cursor", ((char*)&XtStrings[976]), ((char*)&XtStrings[1611]), sizeof(Cursor),
      ((size_t) &((ComplexMenuRec *)0)->complex_menu.cursor), ((char*)&XtStrings[1695]), (XtPointer) 0L},
  {"menuOnScreen", "MenuOnScreen", ((char*)&XtStrings[1561]), sizeof(Boolean),
      ((size_t) &((ComplexMenuRec *)0)->complex_menu.menu_on_screen), ((char*)&XtStrings[1695]), (XtPointer) 1},
  {"popupOnEntry", "PopupOnEntry", ((char*)&XtStrings[1865]), sizeof(Widget),
      ((size_t) &((ComplexMenuRec *)0)->complex_menu.popup_entry), ((char*)&XtStrings[1865]), ((void *)0)},
  {"backingStore", "BackingStore", "BackingStore", sizeof (int),
      ((size_t) &((ComplexMenuRec *)0)->complex_menu.backing_store),
      ((char*)&XtStrings[1695]), (XtPointer) (2 + 1 + 0)},
  {"cMparent", "CMparent", ((char*)&XtStrings[1865]), sizeof(Widget),
      ((size_t) &((ComplexMenuRec *)0)->complex_menu.parent), ((char*)&XtStrings[1865]), ((void *)0)},
  {"cMdefer", "CMdefer", ((char*)&XtStrings[1865]), sizeof(Widget),
      ((size_t) &((ComplexMenuRec *)0)->complex_menu.deferred_notify), ((char*)&XtStrings[1865]), ((void *)0)},
};
static char defaultTranslations[] =
    "<EnterWindow>:     highlight()             \n     <LeaveWindow>:     leftWindow()            \n     <BtnMotion>:       highlight()             \n     <BtnUp>:           saveUnhighlight() MenuPopdown()";
static void Redisplay(Widget, XEvent *, Region);
static void Realize(Widget, XtValueMask *, XSetWindowAttributes *);
static void ChangeManaged(Widget);
static void Resize(Widget);
static void Initialize(Widget, Widget, ArgList, Cardinal *);
static void ClassInitialize(void);
static void ClassPartInitialize(WidgetClass);
static Boolean SetValues(Widget, Widget, Widget, ArgList, Cardinal *);
static Boolean SetValuesHook(Widget, ArgList, Cardinal *);
static XtGeometryResult GeometryManager(Widget, XtWidgetGeometry *,
        XtWidgetGeometry *);
static void PositionMenuAction(Widget, XEvent *, String *, Cardinal *);
static void SaveUnhighlight(Widget, XEvent *, String *, Cardinal *);
static void LeftWindow(Widget, XEvent *, String *, Cardinal *);
static void Highlight(Widget, XEvent *, String *, Cardinal *);
static void Unhighlight(), Notify();
static void MakeSetValuesRequest(Widget, Dimension, Dimension);
static void Layout(Widget, Dimension *, Dimension *);
static void CreateLabel(Widget);
static void AddPositionAction(XtAppContext, caddr_t);
static void ChangeCursorOnGrab(Widget, XtPointer junk, XtPointer);
static void PositionMenu(Widget, XPoint *);
static void ClearParent(Widget, XtPointer, XtPointer);
static Dimension GetMenuWidth(Widget, Widget);
static Dimension GetMenuHeight(Widget);
static Widget FindMenu(Widget, String);
static CmeObject GetEventEntry(Widget, XEvent *);
static CmeObject GetRightEntry(Widget, XEvent *);
static void MoveMenu(Widget, Position, Position);
static XtActionsRec actionsList[] =
{
  {"highlight", Highlight},
  {"saveUnhighlight", SaveUnhighlight},
  {"leftWindow", LeftWindow},
};
static CompositeClassExtensionRec extension_rec = {
                          ((void *)0),
                          ((XrmQuark) 0),
                          2L,
                          sizeof(CompositeClassExtensionRec),
                          1,
};
ComplexMenuClassRec complexMenuClassRec = {
  {
                                (WidgetClass) (&overrideShellClassRec),
                                "ComplexMenu",
                                sizeof(ComplexMenuRec),
                                ClassInitialize,
                                ClassPartInitialize,
                                0,
                                Initialize,
                                ((void *)0),
                                Realize,
                                actionsList,
                                ((Cardinal) (sizeof(actionsList) / sizeof(actionsList[0]))),
                                resources,
                                ((Cardinal) (sizeof(resources) / sizeof(resources[0]))),
                                ((XrmQuark) 0),
                                1,
                                1,
                                1,
                                0,
                                ((void *)0),
                                Resize,
                                Redisplay,
                                SetValues,
                                SetValuesHook,
                                ((XtAlmostProc) _XtInherit),
                                ((void *)0),
                                ((void *)0),
                                (11 * 1000 + 6),
                                ((void *)0),
                                defaultTranslations,
                                ((void *)0),
                                ((void *)0),
                                ((void *)0)
  },{
                                GeometryManager,
                                ChangeManaged,
                                ((XtWidgetProc) _XtInherit),
                                ((XtWidgetProc) _XtInherit),
                                ((void *)0)
  },{
                                ((void *)0)
  },{
                                ((void *)0)
  },{
                                 ((void *)0)
  }
};
WidgetClass complexMenuWidgetClass = (WidgetClass)&complexMenuClassRec;
static void
ClassInitialize(void)
{
  XawInitializeWidgetSet();
  XtAddConverter( ((char*)&XtStrings[1797]), "BackingStore", XmuCvtStringToBackingStore,
                 ((void *)0), 0 );
  XmuAddInitializer( AddPositionAction, ((void *)0));
}
static void
ClassPartInitialize(WidgetClass wc)
{
    ComplexMenuWidgetClass cmwc = (ComplexMenuWidgetClass) wc;
    extension_rec.next_extension = cmwc->composite_class.extension;
    cmwc->composite_class.extension = (XtPointer) &extension_rec;
}
static void
Initialize(Widget request __attribute__((__unused__)), Widget new, ArgList args __attribute__((__unused__)),
        Cardinal *num_args __attribute__((__unused__)))
{
  ComplexMenuWidget cmw = (ComplexMenuWidget) new;
  XmuCallInitializers(XtWidgetToApplicationContext(new));
  if (cmw->complex_menu.label_class == ((void *)0))
      cmw->complex_menu.label_class = cmeBSBObjectClass;
  cmw->complex_menu.label = ((void *)0);
  cmw->complex_menu.entry_set = ((void *)0);
  cmw->complex_menu.prev_entry = ((void *)0);
  cmw->complex_menu.recursive_set_values = 0;
  if (cmw->complex_menu.label_string != ((void *)0))
      CreateLabel(new);
  cmw->complex_menu.menu_width = 1;
  if (cmw->core.width == 0) {
      cmw->complex_menu.menu_width = 0;
      cmw->core.width = GetMenuWidth(new, (Widget)((void *)0));
  }
  cmw->complex_menu.menu_height = 1;
  if (cmw->core.height == 0) {
      cmw->complex_menu.menu_height = 0;
      cmw->core.height = GetMenuHeight(new);
  }
  XtAddCallback(new, ((char*)&XtStrings[534]), ChangeCursorOnGrab, ((void *)0));
  XtAddCallback(new, ((char*)&XtStrings[548]), ClearParent, ((void *)0));
}
static void
Redisplay(Widget w, XEvent *event __attribute__((__unused__)), Region region)
{
    ComplexMenuWidget cmw = (ComplexMenuWidget) w;
    CmeObject * entry;
    CmeObjectClass class;
    if (region == ((void *)0))
        XClearWindow((((w)->core.screen)->display), ((w)->core.window));
    for ( (entry) = (CmeObject *) (cmw)->composite.children ; (entry) < (CmeObject *) ( (cmw)->composite.children + (cmw)->composite.num_children ) ; (entry)++ ) {
        if (!XtIsManaged ( (Widget) *entry)) continue;
        if (region != ((void *)0))
            switch(XRectInRegion(region, (int) (*entry)->rectangle.x,
                                 (int) (*entry)->rectangle.y,
                                 (unsigned int) (*entry)->rectangle.width,
                                 (unsigned int) (*entry)->rectangle.height)) {
            case 1:
            case 2:
                break;
            default:
                continue;
            }
        class = (CmeObjectClass) (*entry)->object.widget_class;
        if (class->rect_class.expose != ((void *)0))
            (class->rect_class.expose)( (Widget) *entry, ((void *)0), ((void *)0));
    }
}
static void
Realize(Widget w, XtValueMask *mask, XSetWindowAttributes *attrs)
{
    ComplexMenuWidget cmw = (ComplexMenuWidget) w;
    attrs->cursor = cmw->complex_menu.cursor;
    *mask |= (1L<<14);
    if ((cmw->complex_menu.backing_store == 2) ||
        (cmw->complex_menu.backing_store == 0) ||
        (cmw->complex_menu.backing_store == 1) ) {
        *mask |= (1L<<6);
        attrs->backing_store = cmw->complex_menu.backing_store;
    }
    else
        *mask &= ~(1L<<6);
    (*(&overrideShellClassRec)->core_class.realize) (w, mask, attrs);
}
static void
Resize(Widget w)
{
    ComplexMenuWidget cmw = (ComplexMenuWidget) w;
    CmeObject * entry;
    if ( !(XtWindowOfObject(w) != 0L) ) return;
    for ( (entry) = (CmeObject *) (cmw)->composite.children ; (entry) < (CmeObject *) ( (cmw)->composite.children + (cmw)->composite.num_children ) ; (entry)++ )
        if (XtIsManaged( (Widget) *entry))
            (*entry)->rectangle.width = cmw->core.width;
    Redisplay(w, (XEvent *) ((void *)0), (Region) ((void *)0));
}
static Boolean
SetValues(Widget current, Widget request __attribute__((__unused__)), Widget new,
        ArgList args __attribute__((__unused__)), Cardinal *num_args __attribute__((__unused__)))
{
    ComplexMenuWidget cmw_old = (ComplexMenuWidget) current;
    ComplexMenuWidget cmw_new = (ComplexMenuWidget) new;
    Boolean ret_val = 0, layout = 0;
    if (!(XtWindowOfObject(current) != 0L)) return(0);
    if (!cmw_new->complex_menu.recursive_set_values) {
        if (cmw_new->core.width != cmw_old->core.width) {
            cmw_new->complex_menu.menu_width = (cmw_new->core.width != 0);
            layout = 1;
        }
        if (cmw_new->core.height != cmw_old->core.height) {
            cmw_new->complex_menu.menu_height = (cmw_new->core.height != 0);
            layout = 1;
        }
    }
    if (cmw_old->complex_menu.cursor != cmw_new->complex_menu.cursor)
        XDefineCursor((((new)->core.screen)->display),
                      ((new)->core.window), cmw_new->complex_menu.cursor);
    if (cmw_old->complex_menu.label_string !=cmw_new->complex_menu.label_string) {
        if (cmw_new->complex_menu.label_string == ((void *)0))
            XtDestroyWidget((Widget) cmw_old->complex_menu.label);
        else if (cmw_old->complex_menu.label_string == ((void *)0))
            CreateLabel(new);
        else {
            Arg arglist[1];
            ((void)( (arglist[0]).name = (((char*)&XtStrings[429])), (arglist[0]).value = (XtArgVal)(cmw_new->complex_menu.label_string) ));
            XtSetValues((Widget) cmw_new->complex_menu.label, arglist, ((Cardinal)1));
        }
    }
    if (cmw_old->complex_menu.label_class != cmw_new->complex_menu.label_class)
        XtAppWarning(XtWidgetToApplicationContext(new),
                     "No Dynamic class change of the ComplexMenu Label.");
    if ((cmw_old->complex_menu.top_margin != cmw_new->complex_menu.top_margin) ||
        (cmw_old->complex_menu.bottom_margin !=
         cmw_new->complex_menu.bottom_margin) ) {
        layout = 1;
        ret_val = 1;
    }
    if (layout)
        Layout(new, (Dimension *)((void *)0), (Dimension *)((void *)0));
    return(ret_val);
}
static Boolean
SetValuesHook(Widget w, ArgList arglist, Cardinal *num_args)
{
    register Cardinal i;
    Dimension width, height;
    width = w->core.width;
    height = w->core.height;
    for ( i = 0 ; i < *num_args ; i++) {
        if ( ( strcmp((arglist[i].name), (((char*)&XtStrings[872]))) == 0 ) )
            width = (Dimension) arglist[i].value;
        if ( ( strcmp((arglist[i].name), (((char*)&XtStrings[234]))) == 0 ) )
            height = (Dimension) arglist[i].value;
    }
    if ((width != w->core.width) || (height != w->core.height))
        MakeSetValuesRequest(w, width, height);
    return(0);
}
static XtGeometryResult
GeometryManager(Widget w, XtWidgetGeometry *request, XtWidgetGeometry *reply)
{
    ComplexMenuWidget cmw = (ComplexMenuWidget) ((w)->core.parent);
    CmeObject entry = (CmeObject) w;
    XtGeometryMask mode = request->request_mode;
    XtGeometryResult answer;
    Dimension old_height, old_width;
    if ( !(mode & (1<<2)) && !(mode & (1<<3)) )
        return(XtGeometryNo);
    reply->width = request->width;
    reply->height = request->height;
    old_width = entry->rectangle.width;
    old_height = entry->rectangle.height;
    Layout(w, &(reply->width), &(reply->height) );
    if ( (reply->width == request->width) &&
         (reply->height == request->height) ) {
        if ( mode & (1 << 7) ) {
            entry->rectangle.width = old_width;
            entry->rectangle.height = old_height;
        }
        else {
            Layout(( Widget) cmw, (Dimension *)((void *)0), (Dimension *)((void *)0));
        }
        answer = XtGeometryDone;
    }
    else {
        entry->rectangle.width = old_width;
        entry->rectangle.height = old_height;
        if ( ((reply->width == request->width) && !(mode & (1<<3))) ||
              ((reply->height == request->height) && !(mode & (1<<2))) ||
              ((reply->width == request->width) &&
               (reply->height == request->height)) )
            answer = XtGeometryNo;
        else {
            answer = XtGeometryAlmost;
            reply->request_mode = 0;
            if (reply->width != request->width)
                reply->request_mode |= (1<<2);
            if (reply->height != request->height)
                reply->request_mode |= (1<<3);
        }
    }
    return(answer);
}
static void
ChangeManaged(Widget w)
{
    Layout(w, (Dimension *)((void *)0), (Dimension *)((void *)0));
}
static void
PositionMenuAction(Widget w, XEvent *event, String *params,
        Cardinal *num_params)
{
  Widget menu;
  XPoint loc;
  if (*num_params != 1) {
    char error_buf[1024];
    (void) sprintf(error_buf, "%s %s",
            "Xaw - ComplexMenuWidget: position menu action expects only one",
            "parameter which is the name of the menu.");
    XtAppWarning(XtWidgetToApplicationContext(w), error_buf);
    return;
  }
  if ( (menu = FindMenu(w, params[0])) == ((void *)0)) {
    char error_buf[1024];
    (void) sprintf(error_buf, "%s '%s'",
            "Xaw - ComplexMenuWidget: could not find menu named: ", params[0]);
    XtAppWarning(XtWidgetToApplicationContext(w), error_buf);
    return;
  }
  switch (event->type) {
  case 4:
  case 5:
    loc.x = event->xbutton.x_root;
    loc.y = event->xbutton.y_root;
    PositionMenu(menu, &loc);
    break;
  case 7:
  case 8:
    loc.x = event->xcrossing.x_root;
    loc.y = event->xcrossing.y_root;
    PositionMenu(menu, &loc);
    break;
  case 6:
    loc.x = event->xmotion.x_root;
    loc.y = event->xmotion.y_root;
    PositionMenu(menu, &loc);
    break;
  default:
    PositionMenu(menu, (XPoint *)((void *)0));
    break;
  }
}
static void
Unhighlight(Widget w, XEvent *event __attribute__((__unused__)), String *params __attribute__((__unused__)),
        Cardinal *num_params __attribute__((__unused__)))
{
    ComplexMenuWidget cmw = (ComplexMenuWidget) w;
    CmeObject entry = cmw->complex_menu.entry_set;
    CmeObjectClass class;
    if ( entry == ((void *)0)) return;
    cmw->complex_menu.entry_set = ((void *)0);
    class = (CmeObjectClass) entry->object.widget_class;
    (class->cme_class.unhighlight) ( (Widget) entry);
}
static void
SaveUnhighlight(Widget w, XEvent *event __attribute__((__unused__)), String *params __attribute__((__unused__)),
        Cardinal *num_params __attribute__((__unused__)))
{
    ComplexMenuWidget cmw = (ComplexMenuWidget) w;
    CmeObject entry = cmw->complex_menu.entry_set;
    CmeObjectClass class;
    if ( entry == ((void *)0)) return;
    cmw->complex_menu.prev_entry = entry;
    cmw->complex_menu.entry_set = ((void *)0);
    class = (CmeObjectClass) entry->object.widget_class;
    (class->cme_class.unhighlight) ( (Widget) entry);
}
static void
LeftWindow(Widget w, XEvent *event, String *params __attribute__((__unused__)),
        Cardinal *num_params __attribute__((__unused__)))
{
    ComplexMenuWidget cmw = (ComplexMenuWidget) w;
    CmeObject entry = cmw->complex_menu.entry_set;
    CmeObjectClass class;
    String mn;
    if ( entry == ((void *)0)) return;
    mn = ((void *)0);
    XtVaGetValues((Widget) entry, "menuName", &mn, ((void *)0));
    if (mn != ((void *)0) && GetRightEntry(w, event) == entry)
        return;
    cmw->complex_menu.prev_entry = ((void *)0);
    cmw->complex_menu.entry_set = ((void *)0);
    class = (CmeObjectClass) entry->object.widget_class;
    (class->cme_class.unhighlight) ( (Widget) entry);
}
static void
Highlight(Widget w, XEvent *event, String *params, Cardinal *num_params)
{
    ComplexMenuWidget cmw = (ComplexMenuWidget) w;
    CmeObject entry;
    CmeObjectClass class;
    ShellWidget shell_widget = (ShellWidget)w;
    if (shell_widget->shell.popped_up != 1) {
        return;
    }
    if ( !XtIsSensitive(w) ) return;
    entry = GetEventEntry(w, event);
    if (entry == cmw->complex_menu.entry_set) return;
    Unhighlight(w, event, params, num_params);
    if (entry == ((void *)0)) return;
    if ( !XtIsSensitive( (Widget) entry)) {
        cmw->complex_menu.entry_set = ((void *)0);
        return;
    }
    cmw->complex_menu.entry_set = entry;
    class = (CmeObjectClass) entry->object.widget_class;
    (class->cme_class.highlight) ( (Widget) entry);
}
static void
Notify(Widget w, XEvent *event __attribute__((__unused__)), String *params __attribute__((__unused__)),
        Cardinal *num_params __attribute__((__unused__)))
{
    ComplexMenuWidget cmw = (ComplexMenuWidget) w;
    CmeObject entry = cmw->complex_menu.entry_set;
    CmeObjectClass class;
    if (entry == ((void *)0))
        entry = cmw->complex_menu.prev_entry;
    if ( (entry == ((void *)0)) || !XtIsSensitive((Widget) entry) ) return;
    if (cmw->complex_menu.parent != ((void *)0)) {
        XtVaSetValues(cmw->complex_menu.parent, "cMdefer", (Widget)entry,
            ((void *)0));
        return;
    }
    if (cmw->complex_menu.deferred_notify != ((void *)0)) {
        entry = (CmeObject)cmw->complex_menu.deferred_notify;
    }
    class = (CmeObjectClass) entry->object.widget_class;
    (class->cme_class.notify)( (Widget) entry );
}
void
XawComplexMenuAddGlobalActions(XtAppContext app_con)
{
    XtInitializeWidgetClass(complexMenuWidgetClass);
    XmuCallInitializers( app_con );
}
Widget
XawComplexMenuGetActiveEntry(Widget w)
{
    ComplexMenuWidget cmw = (ComplexMenuWidget) w;
    return( (Widget) cmw->complex_menu.entry_set);
}
void
XawComplexMenuClearActiveEntry(Widget w)
{
    ComplexMenuWidget cmw = (ComplexMenuWidget) w;
    cmw->complex_menu.entry_set = ((void *)0);
    cmw->complex_menu.prev_entry = ((void *)0);
}
static void
CreateLabel(Widget w)
{
    ComplexMenuWidget cmw = (ComplexMenuWidget) w;
    register Widget * child, * next_child;
    register int i;
    Arg args[2];
    if ( (cmw->complex_menu.label_string == ((void *)0)) ||
         (cmw->complex_menu.label != ((void *)0)) ) {
        char error_buf[1024];
        (void) sprintf(error_buf, "Xaw Complex Menu Widget: %s or %s, %s",
                "label string is NULL", "label already exists",
                "no label is being created.");
        XtAppWarning(XtWidgetToApplicationContext(w), error_buf);
        return;
    }
    ((void)( (args[0]).name = (((char*)&XtStrings[429])), (args[0]).value = (XtArgVal)(cmw->complex_menu.label_string) ));
    ((void)( (args[1]).name = (((char*)&XtStrings[379])), (args[1]).value = (XtArgVal)(XtJustifyCenter) ));
    cmw->complex_menu.label = (CmeObject)
                              XtCreateManagedWidget("menuLabel",
                                            cmw->complex_menu.label_class, w,
                                            args, ((Cardinal)2));
    next_child = ((void *)0);
    for (child = cmw->composite.children + cmw->composite.num_children,
         i = cmw->composite.num_children ; i > 0 ; i--, child--) {
        if (next_child != ((void *)0))
            *next_child = *child;
        next_child = child;
    }
    *child = (Widget) cmw->complex_menu.label;
}
static void
Layout(Widget w, Dimension *width_ret, Dimension *height_ret)
{
    CmeObject current_entry, *entry;
    ComplexMenuWidget cmw;
    Dimension width, height;
    Boolean do_layout = ((height_ret == ((void *)0)) || (width_ret == ((void *)0)));
    Boolean allow_change_size;
    height = 0;
    if ( XtIsSubclass(w, complexMenuWidgetClass) ) {
        cmw = (ComplexMenuWidget) w;
        current_entry = ((void *)0);
    }
    else {
        cmw = (ComplexMenuWidget) ((w)->core.parent);
        current_entry = (CmeObject) w;
    }
    allow_change_size = (!(XtWindowOfObject((Widget)cmw) != 0L) ||
                         (cmw->shell.allow_shell_resize));
    if ( cmw->complex_menu.menu_height )
        height = cmw->core.height;
    else
        if (do_layout) {
            height = cmw->complex_menu.top_margin;
            for ( (entry) = (CmeObject *) (cmw)->composite.children ; (entry) < (CmeObject *) ( (cmw)->composite.children + (cmw)->composite.num_children ) ; (entry)++ ) {
                if (!XtIsManaged( (Widget) *entry)) continue;
                if ( (cmw->complex_menu.row_height != 0) &&
                    (*entry != cmw->complex_menu.label) )
                    (*entry)->rectangle.height = cmw->complex_menu.row_height;
                (*entry)->rectangle.y = height;
                (*entry)->rectangle.x = 0;
                height += (*entry)->rectangle.height;
            }
            height += cmw->complex_menu.bottom_margin;
        }
        else {
            if ((cmw->complex_menu.row_height != 0) &&
                (current_entry != cmw->complex_menu.label) )
                height = cmw->complex_menu.row_height;
        }
    if (cmw->complex_menu.menu_width)
        width = cmw->core.width;
    else if ( allow_change_size )
        width = GetMenuWidth((Widget) cmw, (Widget) current_entry);
    else
        width = cmw->core.width;
    if (do_layout) {
        for ( (entry) = (CmeObject *) (cmw)->composite.children ; (entry) < (CmeObject *) ( (cmw)->composite.children + (cmw)->composite.num_children ) ; (entry)++ )
            if (XtIsManaged( (Widget) *entry))
                (*entry)->rectangle.width = width;
        if (allow_change_size)
            MakeSetValuesRequest((Widget) cmw, width, height);
    }
    else {
        *width_ret = width;
        if (height != 0)
            *height_ret = height;
    }
}
static void
AddPositionAction(XtAppContext app_con, caddr_t data __attribute__((__unused__)))
{
    static XtActionsRec pos_action[] = {
        { "XawPositionComplexMenu", PositionMenuAction },
    };
    XtAppAddActions(app_con, pos_action, ((Cardinal) (sizeof(pos_action) / sizeof(pos_action[0]))));
}
static Widget
FindMenu(Widget widget, String name)
{
    register Widget w, menu;
    for ( w = widget ; w != ((void *)0) ; w = ((w)->core.parent) )
        if ( (menu = XtNameToWidget(w, name)) != ((void *)0) )
            return(menu);
    return(((void *)0));
}
static void
PositionMenu(Widget w, XPoint *location)
{
    ComplexMenuWidget cmw = (ComplexMenuWidget) w;
    CmeObject entry;
    XPoint t_point;
    if (location == ((void *)0)) {
        Window junk1, junk2;
        int root_x, root_y, junkX, junkY;
        unsigned int junkM;
        location = &t_point;
        if (XQueryPointer((((w)->core.screen)->display), ((w)->core.window), &junk1, &junk2,
                          &root_x, &root_y, &junkX, &junkY, &junkM) == 0) {
            char error_buf[1024];
            (void) sprintf(error_buf, "%s %s", "Xaw - ComplexMenuWidget:",
                    "Could not find location of mouse pointer");
            XtAppWarning(XtWidgetToApplicationContext(w), error_buf);
            return;
        }
        location->x = (short) root_x;
        location->y = (short) root_y;
    }
    XtRealizeWidget(w);
    location->x -= (Position) w->core.width/2;
    if (cmw->complex_menu.popup_entry == ((void *)0))
        entry = cmw->complex_menu.label;
    else
        entry = cmw->complex_menu.popup_entry;
    if (entry != ((void *)0))
        location->y -= entry->rectangle.y + entry->rectangle.height/2;
    MoveMenu(w, (Position) location->x, (Position) location->y);
}
static void
MoveMenu(Widget w, Position x, Position y)
{
    Arg arglist[2];
    Cardinal num_args = 0;
    ComplexMenuWidget cmw = (ComplexMenuWidget) w;
    if (cmw->complex_menu.menu_on_screen) {
        int width = w->core.width + 2 * w->core.border_width;
        int height = w->core.height + 2 * w->core.border_width;
        if (x >= 0) {
            int scr_width = ((((w)->core.screen))->width);
            if (x + width > scr_width)
                x = scr_width - width;
        }
        if (x < 0)
            x = 0;
        if (y >= 0) {
            int scr_height = ((((w)->core.screen))->height);
            if (y + height > scr_height)
                y = scr_height - height;
        }
        if (y < 0)
            y = 0;
    }
    ((void)( (arglist[num_args]).name = (((char*)&XtStrings[885])), (arglist[num_args]).value = (XtArgVal)(x) )); num_args++;
    ((void)( (arglist[num_args]).name = (((char*)&XtStrings[887])), (arglist[num_args]).value = (XtArgVal)(y) )); num_args++;
    XtSetValues(w, arglist, num_args);
}
static void
ChangeCursorOnGrab(Widget w, XtPointer junk __attribute__((__unused__)), XtPointer garbage __attribute__((__unused__)))
{
    ComplexMenuWidget cmw = (ComplexMenuWidget) w;
    cmw->complex_menu.deferred_notify = ((void *)0);
    cmw->complex_menu.prev_entry = ((void *)0);
    XChangeActivePointerGrab((((w)->core.screen)->display), (1L<<2)|(1L<<3),
                             cmw->complex_menu.cursor,
                             XtLastTimestampProcessed((((w)->core.screen)->display)));
}
static void
ClearParent(Widget w, XtPointer junk __attribute__((__unused__)), XtPointer garbage __attribute__((__unused__)))
{
    ComplexMenuWidget cmw = (ComplexMenuWidget) w;
    Notify(w, (XEvent *)((void *)0), (String *)((void *)0), (Cardinal *)((void *)0));
    cmw->complex_menu.parent = ((void *)0);
}
static void
MakeSetValuesRequest(Widget w, Dimension width, Dimension height)
{
    ComplexMenuWidget cmw = (ComplexMenuWidget) w;
    Arg arglist[2];
    Cardinal num_args = (Cardinal) 0;
    if ( !cmw->complex_menu.recursive_set_values ) {
        if ( (cmw->core.width != width) || (cmw->core.height != height) ) {
            cmw->complex_menu.recursive_set_values = 1;
            ((void)( (arglist[num_args]).name = (((char*)&XtStrings[872])), (arglist[num_args]).value = (XtArgVal)(width) )); num_args++;
            ((void)( (arglist[num_args]).name = (((char*)&XtStrings[234])), (arglist[num_args]).value = (XtArgVal)(height) )); num_args++;
            XtSetValues(w, arglist, num_args);
        }
        else if ((XtWindowOfObject((Widget) cmw) != 0L))
            Redisplay((Widget) cmw, (XEvent *) ((void *)0), (Region) ((void *)0));
    }
    cmw->complex_menu.recursive_set_values = 0;
}
static Dimension
GetMenuWidth(Widget w, Widget w_ent)
{
    CmeObject cur_entry = (CmeObject) w_ent;
    ComplexMenuWidget cmw = (ComplexMenuWidget) w;
    Dimension width, widest = (Dimension) 0;
    CmeObject * entry;
    if ( cmw->complex_menu.menu_width )
        return(cmw->core.width);
    for ( (entry) = (CmeObject *) (cmw)->composite.children ; (entry) < (CmeObject *) ( (cmw)->composite.children + (cmw)->composite.num_children ) ; (entry)++ ) {
        XtWidgetGeometry preferred;
        if (!XtIsManaged( (Widget) *entry)) continue;
        if (*entry != cur_entry) {
            XtQueryGeometry((Widget) *entry, ((void *)0), &preferred);
            if (preferred.request_mode & (1<<2))
                width = preferred.width;
            else
                width = (*entry)->rectangle.width;
        }
        else
            width = (*entry)->rectangle.width;
        if ( width > widest )
            widest = width;
    }
    return(widest);
}
static Dimension
GetMenuHeight(Widget w)
{
    ComplexMenuWidget cmw = (ComplexMenuWidget) w;
    CmeObject * entry;
    Dimension height;
    if (cmw->complex_menu.menu_height)
        return(cmw->core.height);
    height = cmw->complex_menu.top_margin + cmw->complex_menu.bottom_margin;
    if (cmw->complex_menu.row_height == 0) {
        for ( (entry) = (CmeObject *) (cmw)->composite.children ; (entry) < (CmeObject *) ( (cmw)->composite.children + (cmw)->composite.num_children ) ; (entry)++ )
            if (XtIsManaged ((Widget) *entry))
                height += (*entry)->rectangle.height;
    } else
        height += cmw->complex_menu.row_height * cmw->composite.num_children;
    return(height);
}
static CmeObject
GetEventEntry(Widget w, XEvent *event)
{
    Position x_loc = 0, y_loc = 0;
    ComplexMenuWidget cmw = (ComplexMenuWidget) w;
    CmeObject * entry;
    switch (event->type) {
    case 6:
        x_loc = event->xmotion.x;
        y_loc = event->xmotion.y;
        break;
    case 7:
    case 8:
        x_loc = event->xcrossing.x;
        y_loc = event->xcrossing.y;
        break;
    case 4:
    case 5:
        x_loc = event->xbutton.x;
        y_loc = event->xbutton.y;
        break;
    default:
        XtAppError(XtWidgetToApplicationContext(w),
                   "Unknown event type in GetEventEntry().");
        break;
    }
    if ( (x_loc < 0) || (x_loc >= (int)cmw->core.width) || (y_loc < 0) ||
        (y_loc >= (int)cmw->core.height) )
        return(((void *)0));
    for ( (entry) = (CmeObject *) (cmw)->composite.children ; (entry) < (CmeObject *) ( (cmw)->composite.children + (cmw)->composite.num_children ) ; (entry)++ ) {
        if (!XtIsManaged ((Widget) *entry)) continue;
        if ( ((*entry)->rectangle.y < y_loc) &&
            ((*entry)->rectangle.y + (int) (*entry)->rectangle.height > y_loc) ) {
            if ( *entry == cmw->complex_menu.label )
                return(((void *)0));
            else
                return(*entry);
        }
    }
    return(((void *)0));
}
static CmeObject
GetRightEntry(Widget w, XEvent *event)
{
    Position x_loc, y_loc;
    ComplexMenuWidget cmw = (ComplexMenuWidget) w;
    CmeObject * entry;
    x_loc = event->xcrossing.x;
    y_loc = event->xcrossing.y;
    if ( (x_loc < 0) || (y_loc < 0) ||
        (y_loc >= (int)cmw->core.height) )
        return(((void *)0));
    for ( (entry) = (CmeObject *) (cmw)->composite.children ; (entry) < (CmeObject *) ( (cmw)->composite.children + (cmw)->composite.num_children ) ; (entry)++ ) {
        if (!XtIsManaged ((Widget) *entry)) continue;
        if ( ((*entry)->rectangle.y < y_loc) &&
            ((*entry)->rectangle.y + (int) (*entry)->rectangle.height > y_loc) ) {
            if ( *entry == cmw->complex_menu.label )
                return(((void *)0));
            else
                return(*entry);
        }
    }
    return(((void *)0));
}
== end of CmplxMenu.i
>Fix:
	Only happens with -O2, not -O.

>Release-Note:
>Audit-Trail:
>Unformatted:


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2002-04-24 22:36 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-04-24 15:36 c/3843: gcc-3.0 sparc-solaris2.6 leaves local .LL symbols unresolved rth
  -- strict thread matches above, loose matches on Subject: below --
2001-07-27  9:26 Will Partain

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).