From mboxrd@z Thu Jan 1 00:00:00 1970 From: Will Partain To: gcc-gnats@gcc.gnu.org Subject: c/3843: gcc-3.0 sparc-solaris2.6 leaves local .LL symbols unresolved Date: Fri, 27 Jul 2001 09:26:00 -0000 Message-id: <200107271621.RAA27901@slicker.dcs.gla.ac.uk> X-SW-Source: 2001-07/msg00737.html List-Id: >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[] = ": highlight() \n : leftWindow() \n : highlight() \n : 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: