siemens-rtl/manage.vim.c
2023-07-11 14:40:13 +02:00

9778 lines
352 KiB
C

# 1 "manage.c"
# 1 "<eingebaut>"
# 1 "<Kommandozeile>"
# 1 "manage.c"
static char sccs_id[] = "@(#)manage.c 5.7 9/1/88";
# 27 "manage.c"
# 1 "/usr/include/stdlib.h" 1 3 4
# 25 "/usr/include/stdlib.h" 3 4
# 1 "/usr/include/features.h" 1 3 4
# 358 "/usr/include/features.h" 3 4
# 1 "/usr/include/sys/cdefs.h" 1 3 4
# 353 "/usr/include/sys/cdefs.h" 3 4
# 1 "/usr/include/bits/wordsize.h" 1 3 4
# 354 "/usr/include/sys/cdefs.h" 2 3 4
# 359 "/usr/include/features.h" 2 3 4
# 382 "/usr/include/features.h" 3 4
# 1 "/usr/include/gnu/stubs.h" 1 3 4
# 1 "/usr/include/bits/wordsize.h" 1 3 4
# 5 "/usr/include/gnu/stubs.h" 2 3 4
# 1 "/usr/include/gnu/stubs-64.h" 1 3 4
# 10 "/usr/include/gnu/stubs.h" 2 3 4
# 383 "/usr/include/features.h" 2 3 4
# 26 "/usr/include/stdlib.h" 2 3 4
# 1 "/usr/lib/gcc/x86_64-unknown-linux-gnu/4.6.2/include/stddef.h" 1 3 4
# 212 "/usr/lib/gcc/x86_64-unknown-linux-gnu/4.6.2/include/stddef.h" 3 4
typedef long unsigned int size_t;
# 324 "/usr/lib/gcc/x86_64-unknown-linux-gnu/4.6.2/include/stddef.h" 3 4
typedef int wchar_t;
# 34 "/usr/include/stdlib.h" 2 3 4
# 1 "/usr/include/bits/waitflags.h" 1 3 4
# 43 "/usr/include/stdlib.h" 2 3 4
# 1 "/usr/include/bits/waitstatus.h" 1 3 4
# 65 "/usr/include/bits/waitstatus.h" 3 4
# 1 "/usr/include/endian.h" 1 3 4
# 37 "/usr/include/endian.h" 3 4
# 1 "/usr/include/bits/endian.h" 1 3 4
# 38 "/usr/include/endian.h" 2 3 4
# 61 "/usr/include/endian.h" 3 4
# 1 "/usr/include/bits/byteswap.h" 1 3 4
# 28 "/usr/include/bits/byteswap.h" 3 4
# 1 "/usr/include/bits/wordsize.h" 1 3 4
# 29 "/usr/include/bits/byteswap.h" 2 3 4
# 62 "/usr/include/endian.h" 2 3 4
# 66 "/usr/include/bits/waitstatus.h" 2 3 4
union wait
{
int w_status;
struct
{
unsigned int __w_termsig:7;
unsigned int __w_coredump:1;
unsigned int __w_retcode:8;
unsigned int:16;
} __wait_terminated;
struct
{
unsigned int __w_stopval:8;
unsigned int __w_stopsig:8;
unsigned int:16;
} __wait_stopped;
};
# 44 "/usr/include/stdlib.h" 2 3 4
# 68 "/usr/include/stdlib.h" 3 4
typedef union
{
union wait *__uptr;
int *__iptr;
} __WAIT_STATUS __attribute__ ((__transparent_union__));
# 96 "/usr/include/stdlib.h" 3 4
typedef struct
{
int quot;
int rem;
} div_t;
typedef struct
{
long int quot;
long int rem;
} ldiv_t;
__extension__ typedef struct
{
long long int quot;
long long int rem;
} lldiv_t;
# 140 "/usr/include/stdlib.h" 3 4
extern size_t __ctype_get_mb_cur_max (void) __attribute__ ((__nothrow__)) ;
extern double atof (__const char *__nptr)
__attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
extern int atoi (__const char *__nptr)
__attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
extern long int atol (__const char *__nptr)
__attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
__extension__ extern long long int atoll (__const char *__nptr)
__attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
extern double strtod (__const char *__restrict __nptr,
char **__restrict __endptr)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
extern float strtof (__const char *__restrict __nptr,
char **__restrict __endptr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
extern long double strtold (__const char *__restrict __nptr,
char **__restrict __endptr)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
extern long int strtol (__const char *__restrict __nptr,
char **__restrict __endptr, int __base)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
extern unsigned long int strtoul (__const char *__restrict __nptr,
char **__restrict __endptr, int __base)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
__extension__
extern long long int strtoq (__const char *__restrict __nptr,
char **__restrict __endptr, int __base)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
__extension__
extern unsigned long long int strtouq (__const char *__restrict __nptr,
char **__restrict __endptr, int __base)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
__extension__
extern long long int strtoll (__const char *__restrict __nptr,
char **__restrict __endptr, int __base)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
__extension__
extern unsigned long long int strtoull (__const char *__restrict __nptr,
char **__restrict __endptr, int __base)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
# 311 "/usr/include/stdlib.h" 3 4
extern char *l64a (long int __n) __attribute__ ((__nothrow__)) ;
extern long int a64l (__const char *__s)
__attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
# 1 "/usr/include/sys/types.h" 1 3 4
# 28 "/usr/include/sys/types.h" 3 4
# 1 "/usr/include/bits/types.h" 1 3 4
# 28 "/usr/include/bits/types.h" 3 4
# 1 "/usr/include/bits/wordsize.h" 1 3 4
# 29 "/usr/include/bits/types.h" 2 3 4
typedef unsigned char __u_char;
typedef unsigned short int __u_short;
typedef unsigned int __u_int;
typedef unsigned long int __u_long;
typedef signed char __int8_t;
typedef unsigned char __uint8_t;
typedef signed short int __int16_t;
typedef unsigned short int __uint16_t;
typedef signed int __int32_t;
typedef unsigned int __uint32_t;
typedef signed long int __int64_t;
typedef unsigned long int __uint64_t;
typedef long int __quad_t;
typedef unsigned long int __u_quad_t;
# 131 "/usr/include/bits/types.h" 3 4
# 1 "/usr/include/bits/typesizes.h" 1 3 4
# 132 "/usr/include/bits/types.h" 2 3 4
typedef unsigned long int __dev_t;
typedef unsigned int __uid_t;
typedef unsigned int __gid_t;
typedef unsigned long int __ino_t;
typedef unsigned long int __ino64_t;
typedef unsigned int __mode_t;
typedef unsigned long int __nlink_t;
typedef long int __off_t;
typedef long int __off64_t;
typedef int __pid_t;
typedef struct { int __val[2]; } __fsid_t;
typedef long int __clock_t;
typedef unsigned long int __rlim_t;
typedef unsigned long int __rlim64_t;
typedef unsigned int __id_t;
typedef long int __time_t;
typedef unsigned int __useconds_t;
typedef long int __suseconds_t;
typedef int __daddr_t;
typedef long int __swblk_t;
typedef int __key_t;
typedef int __clockid_t;
typedef void * __timer_t;
typedef long int __blksize_t;
typedef long int __blkcnt_t;
typedef long int __blkcnt64_t;
typedef unsigned long int __fsblkcnt_t;
typedef unsigned long int __fsblkcnt64_t;
typedef unsigned long int __fsfilcnt_t;
typedef unsigned long int __fsfilcnt64_t;
typedef long int __ssize_t;
typedef __off64_t __loff_t;
typedef __quad_t *__qaddr_t;
typedef char *__caddr_t;
typedef long int __intptr_t;
typedef unsigned int __socklen_t;
# 31 "/usr/include/sys/types.h" 2 3 4
typedef __u_char u_char;
typedef __u_short u_short;
typedef __u_int u_int;
typedef __u_long u_long;
typedef __quad_t quad_t;
typedef __u_quad_t u_quad_t;
typedef __fsid_t fsid_t;
typedef __loff_t loff_t;
typedef __ino_t ino_t;
# 61 "/usr/include/sys/types.h" 3 4
typedef __dev_t dev_t;
typedef __gid_t gid_t;
typedef __mode_t mode_t;
typedef __nlink_t nlink_t;
typedef __uid_t uid_t;
typedef __off_t off_t;
# 99 "/usr/include/sys/types.h" 3 4
typedef __pid_t pid_t;
typedef __id_t id_t;
typedef __ssize_t ssize_t;
typedef __daddr_t daddr_t;
typedef __caddr_t caddr_t;
typedef __key_t key_t;
# 133 "/usr/include/sys/types.h" 3 4
# 1 "/usr/include/time.h" 1 3 4
# 58 "/usr/include/time.h" 3 4
typedef __clock_t clock_t;
# 74 "/usr/include/time.h" 3 4
typedef __time_t time_t;
# 92 "/usr/include/time.h" 3 4
typedef __clockid_t clockid_t;
# 104 "/usr/include/time.h" 3 4
typedef __timer_t timer_t;
# 134 "/usr/include/sys/types.h" 2 3 4
# 147 "/usr/include/sys/types.h" 3 4
# 1 "/usr/lib/gcc/x86_64-unknown-linux-gnu/4.6.2/include/stddef.h" 1 3 4
# 148 "/usr/include/sys/types.h" 2 3 4
typedef unsigned long int ulong;
typedef unsigned short int ushort;
typedef unsigned int uint;
# 195 "/usr/include/sys/types.h" 3 4
typedef int int8_t __attribute__ ((__mode__ (__QI__)));
typedef int int16_t __attribute__ ((__mode__ (__HI__)));
typedef int int32_t __attribute__ ((__mode__ (__SI__)));
typedef int int64_t __attribute__ ((__mode__ (__DI__)));
typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__)));
typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__)));
typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__)));
typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__)));
typedef int register_t __attribute__ ((__mode__ (__word__)));
# 220 "/usr/include/sys/types.h" 3 4
# 1 "/usr/include/sys/select.h" 1 3 4
# 31 "/usr/include/sys/select.h" 3 4
# 1 "/usr/include/bits/select.h" 1 3 4
# 23 "/usr/include/bits/select.h" 3 4
# 1 "/usr/include/bits/wordsize.h" 1 3 4
# 24 "/usr/include/bits/select.h" 2 3 4
# 32 "/usr/include/sys/select.h" 2 3 4
# 1 "/usr/include/bits/sigset.h" 1 3 4
# 24 "/usr/include/bits/sigset.h" 3 4
typedef int __sig_atomic_t;
typedef struct
{
unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];
} __sigset_t;
# 35 "/usr/include/sys/select.h" 2 3 4
typedef __sigset_t sigset_t;
# 1 "/usr/include/time.h" 1 3 4
# 120 "/usr/include/time.h" 3 4
struct timespec
{
__time_t tv_sec;
long int tv_nsec;
};
# 45 "/usr/include/sys/select.h" 2 3 4
# 1 "/usr/include/bits/time.h" 1 3 4
# 31 "/usr/include/bits/time.h" 3 4
struct timeval
{
__time_t tv_sec;
__suseconds_t tv_usec;
};
# 47 "/usr/include/sys/select.h" 2 3 4
typedef __suseconds_t suseconds_t;
typedef long int __fd_mask;
# 67 "/usr/include/sys/select.h" 3 4
typedef struct
{
__fd_mask __fds_bits[1024 / (8 * (int) sizeof (__fd_mask))];
} fd_set;
typedef __fd_mask fd_mask;
# 99 "/usr/include/sys/select.h" 3 4
# 109 "/usr/include/sys/select.h" 3 4
extern int select (int __nfds, fd_set *__restrict __readfds,
fd_set *__restrict __writefds,
fd_set *__restrict __exceptfds,
struct timeval *__restrict __timeout);
# 121 "/usr/include/sys/select.h" 3 4
extern int pselect (int __nfds, fd_set *__restrict __readfds,
fd_set *__restrict __writefds,
fd_set *__restrict __exceptfds,
const struct timespec *__restrict __timeout,
const __sigset_t *__restrict __sigmask);
# 221 "/usr/include/sys/types.h" 2 3 4
# 1 "/usr/include/sys/sysmacros.h" 1 3 4
# 30 "/usr/include/sys/sysmacros.h" 3 4
__extension__
extern unsigned int gnu_dev_major (unsigned long long int __dev)
__attribute__ ((__nothrow__));
__extension__
extern unsigned int gnu_dev_minor (unsigned long long int __dev)
__attribute__ ((__nothrow__));
__extension__
extern unsigned long long int gnu_dev_makedev (unsigned int __major,
unsigned int __minor)
__attribute__ ((__nothrow__));
# 64 "/usr/include/sys/sysmacros.h" 3 4
# 224 "/usr/include/sys/types.h" 2 3 4
typedef __blksize_t blksize_t;
typedef __blkcnt_t blkcnt_t;
typedef __fsblkcnt_t fsblkcnt_t;
typedef __fsfilcnt_t fsfilcnt_t;
# 271 "/usr/include/sys/types.h" 3 4
# 1 "/usr/include/bits/pthreadtypes.h" 1 3 4
# 23 "/usr/include/bits/pthreadtypes.h" 3 4
# 1 "/usr/include/bits/wordsize.h" 1 3 4
# 24 "/usr/include/bits/pthreadtypes.h" 2 3 4
# 50 "/usr/include/bits/pthreadtypes.h" 3 4
typedef unsigned long int pthread_t;
typedef union
{
char __size[56];
long int __align;
} pthread_attr_t;
typedef struct __pthread_internal_list
{
struct __pthread_internal_list *__prev;
struct __pthread_internal_list *__next;
} __pthread_list_t;
# 76 "/usr/include/bits/pthreadtypes.h" 3 4
typedef union
{
struct __pthread_mutex_s
{
int __lock;
unsigned int __count;
int __owner;
unsigned int __nusers;
int __kind;
int __spins;
__pthread_list_t __list;
# 101 "/usr/include/bits/pthreadtypes.h" 3 4
} __data;
char __size[40];
long int __align;
} pthread_mutex_t;
typedef union
{
char __size[4];
int __align;
} pthread_mutexattr_t;
typedef union
{
struct
{
int __lock;
unsigned int __futex;
__extension__ unsigned long long int __total_seq;
__extension__ unsigned long long int __wakeup_seq;
__extension__ unsigned long long int __woken_seq;
void *__mutex;
unsigned int __nwaiters;
unsigned int __broadcast_seq;
} __data;
char __size[48];
__extension__ long long int __align;
} pthread_cond_t;
typedef union
{
char __size[4];
int __align;
} pthread_condattr_t;
typedef unsigned int pthread_key_t;
typedef int pthread_once_t;
typedef union
{
struct
{
int __lock;
unsigned int __nr_readers;
unsigned int __readers_wakeup;
unsigned int __writer_wakeup;
unsigned int __nr_readers_queued;
unsigned int __nr_writers_queued;
int __writer;
int __shared;
unsigned long int __pad1;
unsigned long int __pad2;
unsigned int __flags;
} __data;
# 187 "/usr/include/bits/pthreadtypes.h" 3 4
char __size[56];
long int __align;
} pthread_rwlock_t;
typedef union
{
char __size[8];
long int __align;
} pthread_rwlockattr_t;
typedef volatile int pthread_spinlock_t;
typedef union
{
char __size[32];
long int __align;
} pthread_barrier_t;
typedef union
{
char __size[4];
int __align;
} pthread_barrierattr_t;
# 272 "/usr/include/sys/types.h" 2 3 4
# 321 "/usr/include/stdlib.h" 2 3 4
extern long int random (void) __attribute__ ((__nothrow__));
extern void srandom (unsigned int __seed) __attribute__ ((__nothrow__));
extern char *initstate (unsigned int __seed, char *__statebuf,
size_t __statelen) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
extern char *setstate (char *__statebuf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
struct random_data
{
int32_t *fptr;
int32_t *rptr;
int32_t *state;
int rand_type;
int rand_deg;
int rand_sep;
int32_t *end_ptr;
};
extern int random_r (struct random_data *__restrict __buf,
int32_t *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
extern int srandom_r (unsigned int __seed, struct random_data *__buf)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
extern int initstate_r (unsigned int __seed, char *__restrict __statebuf,
size_t __statelen,
struct random_data *__restrict __buf)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4)));
extern int setstate_r (char *__restrict __statebuf,
struct random_data *__restrict __buf)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
extern int rand (void) __attribute__ ((__nothrow__));
extern void srand (unsigned int __seed) __attribute__ ((__nothrow__));
extern int rand_r (unsigned int *__seed) __attribute__ ((__nothrow__));
extern double drand48 (void) __attribute__ ((__nothrow__));
extern double erand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
extern long int lrand48 (void) __attribute__ ((__nothrow__));
extern long int nrand48 (unsigned short int __xsubi[3])
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
extern long int mrand48 (void) __attribute__ ((__nothrow__));
extern long int jrand48 (unsigned short int __xsubi[3])
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
extern void srand48 (long int __seedval) __attribute__ ((__nothrow__));
extern unsigned short int *seed48 (unsigned short int __seed16v[3])
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
extern void lcong48 (unsigned short int __param[7]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
struct drand48_data
{
unsigned short int __x[3];
unsigned short int __old_x[3];
unsigned short int __c;
unsigned short int __init;
unsigned long long int __a;
};
extern int drand48_r (struct drand48_data *__restrict __buffer,
double *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
extern int erand48_r (unsigned short int __xsubi[3],
struct drand48_data *__restrict __buffer,
double *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
extern int lrand48_r (struct drand48_data *__restrict __buffer,
long int *__restrict __result)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
extern int nrand48_r (unsigned short int __xsubi[3],
struct drand48_data *__restrict __buffer,
long int *__restrict __result)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
extern int mrand48_r (struct drand48_data *__restrict __buffer,
long int *__restrict __result)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
extern int jrand48_r (unsigned short int __xsubi[3],
struct drand48_data *__restrict __buffer,
long int *__restrict __result)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
extern int srand48_r (long int __seedval, struct drand48_data *__buffer)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
extern int seed48_r (unsigned short int __seed16v[3],
struct drand48_data *__buffer) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
extern int lcong48_r (unsigned short int __param[7],
struct drand48_data *__buffer)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
extern void *malloc (size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) ;
extern void *calloc (size_t __nmemb, size_t __size)
__attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) ;
extern void *realloc (void *__ptr, size_t __size)
__attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
extern void free (void *__ptr) __attribute__ ((__nothrow__));
extern void cfree (void *__ptr) __attribute__ ((__nothrow__));
# 1 "/usr/include/alloca.h" 1 3 4
# 25 "/usr/include/alloca.h" 3 4
# 1 "/usr/lib/gcc/x86_64-unknown-linux-gnu/4.6.2/include/stddef.h" 1 3 4
# 26 "/usr/include/alloca.h" 2 3 4
extern void *alloca (size_t __size) __attribute__ ((__nothrow__));
# 498 "/usr/include/stdlib.h" 2 3 4
extern void *valloc (size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) ;
extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
extern void abort (void) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
extern int atexit (void (*__func) (void)) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
# 531 "/usr/include/stdlib.h" 3 4
extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
extern void exit (int __status) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
# 554 "/usr/include/stdlib.h" 3 4
extern void _Exit (int __status) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
extern char *getenv (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
extern char *__secure_getenv (__const char *__name)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
extern int putenv (char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
extern int setenv (__const char *__name, __const char *__value, int __replace)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
extern int unsetenv (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
extern int clearenv (void) __attribute__ ((__nothrow__));
# 606 "/usr/include/stdlib.h" 3 4
extern char *mktemp (char *__template) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
# 620 "/usr/include/stdlib.h" 3 4
extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) ;
# 642 "/usr/include/stdlib.h" 3 4
extern int mkstemps (char *__template, int __suffixlen) __attribute__ ((__nonnull__ (1))) ;
# 663 "/usr/include/stdlib.h" 3 4
extern char *mkdtemp (char *__template) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
# 712 "/usr/include/stdlib.h" 3 4
extern int system (__const char *__command) ;
# 734 "/usr/include/stdlib.h" 3 4
extern char *realpath (__const char *__restrict __name,
char *__restrict __resolved) __attribute__ ((__nothrow__)) ;
typedef int (*__compar_fn_t) (__const void *, __const void *);
# 752 "/usr/include/stdlib.h" 3 4
extern void *bsearch (__const void *__key, __const void *__base,
size_t __nmemb, size_t __size, __compar_fn_t __compar)
__attribute__ ((__nonnull__ (1, 2, 5))) ;
extern void qsort (void *__base, size_t __nmemb, size_t __size,
__compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4)));
# 771 "/usr/include/stdlib.h" 3 4
extern int abs (int __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ;
extern long int labs (long int __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ;
__extension__ extern long long int llabs (long long int __x)
__attribute__ ((__nothrow__)) __attribute__ ((__const__)) ;
extern div_t div (int __numer, int __denom)
__attribute__ ((__nothrow__)) __attribute__ ((__const__)) ;
extern ldiv_t ldiv (long int __numer, long int __denom)
__attribute__ ((__nothrow__)) __attribute__ ((__const__)) ;
__extension__ extern lldiv_t lldiv (long long int __numer,
long long int __denom)
__attribute__ ((__nothrow__)) __attribute__ ((__const__)) ;
# 808 "/usr/include/stdlib.h" 3 4
extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,
int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) ;
extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) ;
extern char *gcvt (double __value, int __ndigit, char *__buf)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))) ;
extern char *qecvt (long double __value, int __ndigit,
int *__restrict __decpt, int *__restrict __sign)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) ;
extern char *qfcvt (long double __value, int __ndigit,
int *__restrict __decpt, int *__restrict __sign)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) ;
extern char *qgcvt (long double __value, int __ndigit, char *__buf)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))) ;
extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
int *__restrict __sign, char *__restrict __buf,
size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5)));
extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt,
int *__restrict __sign, char *__restrict __buf,
size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5)));
extern int qecvt_r (long double __value, int __ndigit,
int *__restrict __decpt, int *__restrict __sign,
char *__restrict __buf, size_t __len)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5)));
extern int qfcvt_r (long double __value, int __ndigit,
int *__restrict __decpt, int *__restrict __sign,
char *__restrict __buf, size_t __len)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5)));
extern int mblen (__const char *__s, size_t __n) __attribute__ ((__nothrow__)) ;
extern int mbtowc (wchar_t *__restrict __pwc,
__const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__)) ;
extern int wctomb (char *__s, wchar_t __wchar) __attribute__ ((__nothrow__)) ;
extern size_t mbstowcs (wchar_t *__restrict __pwcs,
__const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__));
extern size_t wcstombs (char *__restrict __s,
__const wchar_t *__restrict __pwcs, size_t __n)
__attribute__ ((__nothrow__));
extern int rpmatch (__const char *__response) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
# 896 "/usr/include/stdlib.h" 3 4
extern int getsubopt (char **__restrict __optionp,
char *__const *__restrict __tokens,
char **__restrict __valuep)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2, 3))) ;
# 948 "/usr/include/stdlib.h" 3 4
extern int getloadavg (double __loadavg[], int __nelem)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
# 964 "/usr/include/stdlib.h" 3 4
# 28 "manage.c" 2
# 1 "copyright.h" 1
# 29 "copyright.h"
static char copyright[] = "";
# 29 "manage.c" 2
# 1 "basetype.h" 1
# 38 "basetype.h"
# 1 "std_defs.h" 1
# 42 "std_defs.h"
typedef int bool;
typedef char *pointer;
typedef void (*VoidFunc)();
# 121 "std_defs.h"
# 1 "/usr/include/X11/Xos.h" 1 3 4
# 36 "/usr/include/X11/Xos.h" 3 4
# 1 "/usr/include/X11/Xosdefs.h" 1 3 4
# 37 "/usr/include/X11/Xos.h" 2 3 4
# 62 "/usr/include/X11/Xos.h" 3 4
# 1 "/usr/include/string.h" 1 3 4
# 29 "/usr/include/string.h" 3 4
# 1 "/usr/lib/gcc/x86_64-unknown-linux-gnu/4.6.2/include/stddef.h" 1 3 4
# 35 "/usr/include/string.h" 2 3 4
extern void *memcpy (void *__restrict __dest,
__const void *__restrict __src, size_t __n)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
extern void *memmove (void *__dest, __const void *__src, size_t __n)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
extern void *memccpy (void *__restrict __dest, __const void *__restrict __src,
int __c, size_t __n)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
extern void *memset (void *__s, int __c, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
extern int memcmp (__const void *__s1, __const void *__s2, size_t __n)
__attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
# 95 "/usr/include/string.h" 3 4
extern void *memchr (__const void *__s, int __c, size_t __n)
__attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
# 126 "/usr/include/string.h" 3 4
extern char *strcpy (char *__restrict __dest, __const char *__restrict __src)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
extern char *strncpy (char *__restrict __dest,
__const char *__restrict __src, size_t __n)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
extern char *strcat (char *__restrict __dest, __const char *__restrict __src)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
extern char *strncat (char *__restrict __dest, __const char *__restrict __src,
size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
extern int strcmp (__const char *__s1, __const char *__s2)
__attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
extern int strncmp (__const char *__s1, __const char *__s2, size_t __n)
__attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
extern int strcoll (__const char *__s1, __const char *__s2)
__attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
extern size_t strxfrm (char *__restrict __dest,
__const char *__restrict __src, size_t __n)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
# 1 "/usr/include/xlocale.h" 1 3 4
# 28 "/usr/include/xlocale.h" 3 4
typedef struct __locale_struct
{
struct __locale_data *__locales[13];
const unsigned short int *__ctype_b;
const int *__ctype_tolower;
const int *__ctype_toupper;
const char *__names[13];
} *__locale_t;
typedef __locale_t locale_t;
# 163 "/usr/include/string.h" 2 3 4
extern int strcoll_l (__const char *__s1, __const char *__s2, __locale_t __l)
__attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
extern size_t strxfrm_l (char *__dest, __const char *__src, size_t __n,
__locale_t __l) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4)));
extern char *strdup (__const char *__s)
__attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
extern char *strndup (__const char *__string, size_t __n)
__attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
# 210 "/usr/include/string.h" 3 4
# 235 "/usr/include/string.h" 3 4
extern char *strchr (__const char *__s, int __c)
__attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
# 262 "/usr/include/string.h" 3 4
extern char *strrchr (__const char *__s, int __c)
__attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
# 281 "/usr/include/string.h" 3 4
extern size_t strcspn (__const char *__s, __const char *__reject)
__attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
extern size_t strspn (__const char *__s, __const char *__accept)
__attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
# 314 "/usr/include/string.h" 3 4
extern char *strpbrk (__const char *__s, __const char *__accept)
__attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
# 342 "/usr/include/string.h" 3 4
extern char *strstr (__const char *__haystack, __const char *__needle)
__attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
extern char *strtok (char *__restrict __s, __const char *__restrict __delim)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
extern char *__strtok_r (char *__restrict __s,
__const char *__restrict __delim,
char **__restrict __save_ptr)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3)));
extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim,
char **__restrict __save_ptr)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3)));
# 397 "/usr/include/string.h" 3 4
extern size_t strlen (__const char *__s)
__attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
extern size_t strnlen (__const char *__string, size_t __maxlen)
__attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
extern char *strerror (int __errnum) __attribute__ ((__nothrow__));
# 427 "/usr/include/string.h" 3 4
extern int strerror_r (int __errnum, char *__buf, size_t __buflen) __asm__ ("" "__xpg_strerror_r") __attribute__ ((__nothrow__))
__attribute__ ((__nonnull__ (2)));
# 445 "/usr/include/string.h" 3 4
extern char *strerror_l (int __errnum, __locale_t __l) __attribute__ ((__nothrow__));
extern void __bzero (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
extern void bcopy (__const void *__src, void *__dest, size_t __n)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
extern void bzero (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
extern int bcmp (__const void *__s1, __const void *__s2, size_t __n)
__attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
# 489 "/usr/include/string.h" 3 4
extern char *index (__const char *__s, int __c)
__attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
# 517 "/usr/include/string.h" 3 4
extern char *rindex (__const char *__s, int __c)
__attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
extern int ffs (int __i) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
# 536 "/usr/include/string.h" 3 4
extern int strcasecmp (__const char *__s1, __const char *__s2)
__attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n)
__attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
# 559 "/usr/include/string.h" 3 4
extern char *strsep (char **__restrict __stringp,
__const char *__restrict __delim)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
extern char *strsignal (int __sig) __attribute__ ((__nothrow__));
extern char *__stpcpy (char *__restrict __dest, __const char *__restrict __src)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
extern char *stpcpy (char *__restrict __dest, __const char *__restrict __src)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
extern char *__stpncpy (char *__restrict __dest,
__const char *__restrict __src, size_t __n)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
extern char *stpncpy (char *__restrict __dest,
__const char *__restrict __src, size_t __n)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
# 646 "/usr/include/string.h" 3 4
# 63 "/usr/include/X11/Xos.h" 2 3 4
# 88 "/usr/include/X11/Xos.h" 3 4
# 1 "/usr/include/fcntl.h" 1 3 4
# 30 "/usr/include/fcntl.h" 3 4
# 1 "/usr/include/bits/fcntl.h" 1 3 4
# 26 "/usr/include/bits/fcntl.h" 3 4
# 1 "/usr/include/bits/wordsize.h" 1 3 4
# 27 "/usr/include/bits/fcntl.h" 2 3 4
# 168 "/usr/include/bits/fcntl.h" 3 4
struct flock
{
short int l_type;
short int l_whence;
__off_t l_start;
__off_t l_len;
__pid_t l_pid;
};
# 266 "/usr/include/bits/fcntl.h" 3 4
# 340 "/usr/include/bits/fcntl.h" 3 4
# 35 "/usr/include/fcntl.h" 2 3 4
# 1 "/usr/include/time.h" 1 3 4
# 41 "/usr/include/fcntl.h" 2 3 4
# 1 "/usr/include/bits/stat.h" 1 3 4
# 46 "/usr/include/bits/stat.h" 3 4
struct stat
{
__dev_t st_dev;
__ino_t st_ino;
__nlink_t st_nlink;
__mode_t st_mode;
__uid_t st_uid;
__gid_t st_gid;
int __pad0;
__dev_t st_rdev;
__off_t st_size;
__blksize_t st_blksize;
__blkcnt_t st_blocks;
# 91 "/usr/include/bits/stat.h" 3 4
struct timespec st_atim;
struct timespec st_mtim;
struct timespec st_ctim;
# 106 "/usr/include/bits/stat.h" 3 4
long int __unused[3];
# 115 "/usr/include/bits/stat.h" 3 4
};
# 42 "/usr/include/fcntl.h" 2 3 4
# 125 "/usr/include/fcntl.h" 3 4
extern int fcntl (int __fd, int __cmd, ...);
# 134 "/usr/include/fcntl.h" 3 4
extern int open (__const char *__file, int __oflag, ...) __attribute__ ((__nonnull__ (1)));
# 158 "/usr/include/fcntl.h" 3 4
extern int openat (int __fd, __const char *__file, int __oflag, ...)
__attribute__ ((__nonnull__ (2)));
# 180 "/usr/include/fcntl.h" 3 4
extern int creat (__const char *__file, __mode_t __mode) __attribute__ ((__nonnull__ (1)));
# 209 "/usr/include/fcntl.h" 3 4
extern int lockf (int __fd, int __cmd, __off_t __len);
# 226 "/usr/include/fcntl.h" 3 4
extern int posix_fadvise (int __fd, __off_t __offset, __off_t __len,
int __advise) __attribute__ ((__nothrow__));
# 248 "/usr/include/fcntl.h" 3 4
extern int posix_fallocate (int __fd, __off_t __offset, __off_t __len);
# 270 "/usr/include/fcntl.h" 3 4
# 89 "/usr/include/X11/Xos.h" 2 3 4
# 1 "/usr/include/unistd.h" 1 3 4
# 28 "/usr/include/unistd.h" 3 4
# 203 "/usr/include/unistd.h" 3 4
# 1 "/usr/include/bits/posix_opt.h" 1 3 4
# 204 "/usr/include/unistd.h" 2 3 4
# 1 "/usr/include/bits/environments.h" 1 3 4
# 23 "/usr/include/bits/environments.h" 3 4
# 1 "/usr/include/bits/wordsize.h" 1 3 4
# 24 "/usr/include/bits/environments.h" 2 3 4
# 208 "/usr/include/unistd.h" 2 3 4
# 227 "/usr/include/unistd.h" 3 4
# 1 "/usr/lib/gcc/x86_64-unknown-linux-gnu/4.6.2/include/stddef.h" 1 3 4
# 228 "/usr/include/unistd.h" 2 3 4
# 256 "/usr/include/unistd.h" 3 4
typedef __useconds_t useconds_t;
# 268 "/usr/include/unistd.h" 3 4
typedef __intptr_t intptr_t;
typedef __socklen_t socklen_t;
# 288 "/usr/include/unistd.h" 3 4
extern int access (__const char *__name, int __type) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
# 305 "/usr/include/unistd.h" 3 4
extern int faccessat (int __fd, __const char *__file, int __type, int __flag)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))) ;
# 331 "/usr/include/unistd.h" 3 4
extern __off_t lseek (int __fd, __off_t __offset, int __whence) __attribute__ ((__nothrow__));
# 350 "/usr/include/unistd.h" 3 4
extern int close (int __fd);
extern ssize_t read (int __fd, void *__buf, size_t __nbytes) ;
extern ssize_t write (int __fd, __const void *__buf, size_t __n) ;
# 373 "/usr/include/unistd.h" 3 4
extern ssize_t pread (int __fd, void *__buf, size_t __nbytes,
__off_t __offset) ;
extern ssize_t pwrite (int __fd, __const void *__buf, size_t __n,
__off_t __offset) ;
# 414 "/usr/include/unistd.h" 3 4
extern int pipe (int __pipedes[2]) __attribute__ ((__nothrow__)) ;
# 429 "/usr/include/unistd.h" 3 4
extern unsigned int alarm (unsigned int __seconds) __attribute__ ((__nothrow__));
# 441 "/usr/include/unistd.h" 3 4
extern unsigned int sleep (unsigned int __seconds);
extern __useconds_t ualarm (__useconds_t __value, __useconds_t __interval)
__attribute__ ((__nothrow__));
extern int usleep (__useconds_t __useconds);
# 466 "/usr/include/unistd.h" 3 4
extern int pause (void);
extern int chown (__const char *__file, __uid_t __owner, __gid_t __group)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
extern int fchown (int __fd, __uid_t __owner, __gid_t __group) __attribute__ ((__nothrow__)) ;
extern int lchown (__const char *__file, __uid_t __owner, __gid_t __group)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
extern int fchownat (int __fd, __const char *__file, __uid_t __owner,
__gid_t __group, int __flag)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))) ;
extern int chdir (__const char *__path) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
extern int fchdir (int __fd) __attribute__ ((__nothrow__)) ;
# 508 "/usr/include/unistd.h" 3 4
extern char *getcwd (char *__buf, size_t __size) __attribute__ ((__nothrow__)) ;
# 522 "/usr/include/unistd.h" 3 4
extern char *getwd (char *__buf)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)) ;
extern int dup (int __fd) __attribute__ ((__nothrow__)) ;
extern int dup2 (int __fd, int __fd2) __attribute__ ((__nothrow__));
# 540 "/usr/include/unistd.h" 3 4
extern char **__environ;
extern int execve (__const char *__path, char *__const __argv[],
char *__const __envp[]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
extern int fexecve (int __fd, char *__const __argv[], char *__const __envp[])
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
extern int execv (__const char *__path, char *__const __argv[])
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
extern int execle (__const char *__path, __const char *__arg, ...)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
extern int execl (__const char *__path, __const char *__arg, ...)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
extern int execvp (__const char *__file, char *__const __argv[])
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
extern int execlp (__const char *__file, __const char *__arg, ...)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
# 595 "/usr/include/unistd.h" 3 4
extern int nice (int __inc) __attribute__ ((__nothrow__)) ;
extern void _exit (int __status) __attribute__ ((__noreturn__));
# 1 "/usr/include/bits/confname.h" 1 3 4
# 26 "/usr/include/bits/confname.h" 3 4
enum
{
_PC_LINK_MAX,
_PC_MAX_CANON,
_PC_MAX_INPUT,
_PC_NAME_MAX,
_PC_PATH_MAX,
_PC_PIPE_BUF,
_PC_CHOWN_RESTRICTED,
_PC_NO_TRUNC,
_PC_VDISABLE,
_PC_SYNC_IO,
_PC_ASYNC_IO,
_PC_PRIO_IO,
_PC_SOCK_MAXBUF,
_PC_FILESIZEBITS,
_PC_REC_INCR_XFER_SIZE,
_PC_REC_MAX_XFER_SIZE,
_PC_REC_MIN_XFER_SIZE,
_PC_REC_XFER_ALIGN,
_PC_ALLOC_SIZE_MIN,
_PC_SYMLINK_MAX,
_PC_2_SYMLINKS
};
enum
{
_SC_ARG_MAX,
_SC_CHILD_MAX,
_SC_CLK_TCK,
_SC_NGROUPS_MAX,
_SC_OPEN_MAX,
_SC_STREAM_MAX,
_SC_TZNAME_MAX,
_SC_JOB_CONTROL,
_SC_SAVED_IDS,
_SC_REALTIME_SIGNALS,
_SC_PRIORITY_SCHEDULING,
_SC_TIMERS,
_SC_ASYNCHRONOUS_IO,
_SC_PRIORITIZED_IO,
_SC_SYNCHRONIZED_IO,
_SC_FSYNC,
_SC_MAPPED_FILES,
_SC_MEMLOCK,
_SC_MEMLOCK_RANGE,
_SC_MEMORY_PROTECTION,
_SC_MESSAGE_PASSING,
_SC_SEMAPHORES,
_SC_SHARED_MEMORY_OBJECTS,
_SC_AIO_LISTIO_MAX,
_SC_AIO_MAX,
_SC_AIO_PRIO_DELTA_MAX,
_SC_DELAYTIMER_MAX,
_SC_MQ_OPEN_MAX,
_SC_MQ_PRIO_MAX,
_SC_VERSION,
_SC_PAGESIZE,
_SC_RTSIG_MAX,
_SC_SEM_NSEMS_MAX,
_SC_SEM_VALUE_MAX,
_SC_SIGQUEUE_MAX,
_SC_TIMER_MAX,
_SC_BC_BASE_MAX,
_SC_BC_DIM_MAX,
_SC_BC_SCALE_MAX,
_SC_BC_STRING_MAX,
_SC_COLL_WEIGHTS_MAX,
_SC_EQUIV_CLASS_MAX,
_SC_EXPR_NEST_MAX,
_SC_LINE_MAX,
_SC_RE_DUP_MAX,
_SC_CHARCLASS_NAME_MAX,
_SC_2_VERSION,
_SC_2_C_BIND,
_SC_2_C_DEV,
_SC_2_FORT_DEV,
_SC_2_FORT_RUN,
_SC_2_SW_DEV,
_SC_2_LOCALEDEF,
_SC_PII,
_SC_PII_XTI,
_SC_PII_SOCKET,
_SC_PII_INTERNET,
_SC_PII_OSI,
_SC_POLL,
_SC_SELECT,
_SC_UIO_MAXIOV,
_SC_IOV_MAX = _SC_UIO_MAXIOV,
_SC_PII_INTERNET_STREAM,
_SC_PII_INTERNET_DGRAM,
_SC_PII_OSI_COTS,
_SC_PII_OSI_CLTS,
_SC_PII_OSI_M,
_SC_T_IOV_MAX,
_SC_THREADS,
_SC_THREAD_SAFE_FUNCTIONS,
_SC_GETGR_R_SIZE_MAX,
_SC_GETPW_R_SIZE_MAX,
_SC_LOGIN_NAME_MAX,
_SC_TTY_NAME_MAX,
_SC_THREAD_DESTRUCTOR_ITERATIONS,
_SC_THREAD_KEYS_MAX,
_SC_THREAD_STACK_MIN,
_SC_THREAD_THREADS_MAX,
_SC_THREAD_ATTR_STACKADDR,
_SC_THREAD_ATTR_STACKSIZE,
_SC_THREAD_PRIORITY_SCHEDULING,
_SC_THREAD_PRIO_INHERIT,
_SC_THREAD_PRIO_PROTECT,
_SC_THREAD_PROCESS_SHARED,
_SC_NPROCESSORS_CONF,
_SC_NPROCESSORS_ONLN,
_SC_PHYS_PAGES,
_SC_AVPHYS_PAGES,
_SC_ATEXIT_MAX,
_SC_PASS_MAX,
_SC_XOPEN_VERSION,
_SC_XOPEN_XCU_VERSION,
_SC_XOPEN_UNIX,
_SC_XOPEN_CRYPT,
_SC_XOPEN_ENH_I18N,
_SC_XOPEN_SHM,
_SC_2_CHAR_TERM,
_SC_2_C_VERSION,
_SC_2_UPE,
_SC_XOPEN_XPG2,
_SC_XOPEN_XPG3,
_SC_XOPEN_XPG4,
_SC_CHAR_BIT,
_SC_CHAR_MAX,
_SC_CHAR_MIN,
_SC_INT_MAX,
_SC_INT_MIN,
_SC_LONG_BIT,
_SC_WORD_BIT,
_SC_MB_LEN_MAX,
_SC_NZERO,
_SC_SSIZE_MAX,
_SC_SCHAR_MAX,
_SC_SCHAR_MIN,
_SC_SHRT_MAX,
_SC_SHRT_MIN,
_SC_UCHAR_MAX,
_SC_UINT_MAX,
_SC_ULONG_MAX,
_SC_USHRT_MAX,
_SC_NL_ARGMAX,
_SC_NL_LANGMAX,
_SC_NL_MSGMAX,
_SC_NL_NMAX,
_SC_NL_SETMAX,
_SC_NL_TEXTMAX,
_SC_XBS5_ILP32_OFF32,
_SC_XBS5_ILP32_OFFBIG,
_SC_XBS5_LP64_OFF64,
_SC_XBS5_LPBIG_OFFBIG,
_SC_XOPEN_LEGACY,
_SC_XOPEN_REALTIME,
_SC_XOPEN_REALTIME_THREADS,
_SC_ADVISORY_INFO,
_SC_BARRIERS,
_SC_BASE,
_SC_C_LANG_SUPPORT,
_SC_C_LANG_SUPPORT_R,
_SC_CLOCK_SELECTION,
_SC_CPUTIME,
_SC_THREAD_CPUTIME,
_SC_DEVICE_IO,
_SC_DEVICE_SPECIFIC,
_SC_DEVICE_SPECIFIC_R,
_SC_FD_MGMT,
_SC_FIFO,
_SC_PIPE,
_SC_FILE_ATTRIBUTES,
_SC_FILE_LOCKING,
_SC_FILE_SYSTEM,
_SC_MONOTONIC_CLOCK,
_SC_MULTI_PROCESS,
_SC_SINGLE_PROCESS,
_SC_NETWORKING,
_SC_READER_WRITER_LOCKS,
_SC_SPIN_LOCKS,
_SC_REGEXP,
_SC_REGEX_VERSION,
_SC_SHELL,
_SC_SIGNALS,
_SC_SPAWN,
_SC_SPORADIC_SERVER,
_SC_THREAD_SPORADIC_SERVER,
_SC_SYSTEM_DATABASE,
_SC_SYSTEM_DATABASE_R,
_SC_TIMEOUTS,
_SC_TYPED_MEMORY_OBJECTS,
_SC_USER_GROUPS,
_SC_USER_GROUPS_R,
_SC_2_PBS,
_SC_2_PBS_ACCOUNTING,
_SC_2_PBS_LOCATE,
_SC_2_PBS_MESSAGE,
_SC_2_PBS_TRACK,
_SC_SYMLOOP_MAX,
_SC_STREAMS,
_SC_2_PBS_CHECKPOINT,
_SC_V6_ILP32_OFF32,
_SC_V6_ILP32_OFFBIG,
_SC_V6_LP64_OFF64,
_SC_V6_LPBIG_OFFBIG,
_SC_HOST_NAME_MAX,
_SC_TRACE,
_SC_TRACE_EVENT_FILTER,
_SC_TRACE_INHERIT,
_SC_TRACE_LOG,
_SC_LEVEL1_ICACHE_SIZE,
_SC_LEVEL1_ICACHE_ASSOC,
_SC_LEVEL1_ICACHE_LINESIZE,
_SC_LEVEL1_DCACHE_SIZE,
_SC_LEVEL1_DCACHE_ASSOC,
_SC_LEVEL1_DCACHE_LINESIZE,
_SC_LEVEL2_CACHE_SIZE,
_SC_LEVEL2_CACHE_ASSOC,
_SC_LEVEL2_CACHE_LINESIZE,
_SC_LEVEL3_CACHE_SIZE,
_SC_LEVEL3_CACHE_ASSOC,
_SC_LEVEL3_CACHE_LINESIZE,
_SC_LEVEL4_CACHE_SIZE,
_SC_LEVEL4_CACHE_ASSOC,
_SC_LEVEL4_CACHE_LINESIZE,
_SC_IPV6 = _SC_LEVEL1_ICACHE_SIZE + 50,
_SC_RAW_SOCKETS,
_SC_V7_ILP32_OFF32,
_SC_V7_ILP32_OFFBIG,
_SC_V7_LP64_OFF64,
_SC_V7_LPBIG_OFFBIG,
_SC_SS_REPL_MAX,
_SC_TRACE_EVENT_NAME_MAX,
_SC_TRACE_NAME_MAX,
_SC_TRACE_SYS_MAX,
_SC_TRACE_USER_EVENT_MAX,
_SC_XOPEN_STREAMS,
_SC_THREAD_ROBUST_PRIO_INHERIT,
_SC_THREAD_ROBUST_PRIO_PROTECT
};
enum
{
_CS_PATH,
_CS_V6_WIDTH_RESTRICTED_ENVS,
_CS_GNU_LIBC_VERSION,
_CS_GNU_LIBPTHREAD_VERSION,
_CS_V5_WIDTH_RESTRICTED_ENVS,
_CS_V7_WIDTH_RESTRICTED_ENVS,
_CS_LFS_CFLAGS = 1000,
_CS_LFS_LDFLAGS,
_CS_LFS_LIBS,
_CS_LFS_LINTFLAGS,
_CS_LFS64_CFLAGS,
_CS_LFS64_LDFLAGS,
_CS_LFS64_LIBS,
_CS_LFS64_LINTFLAGS,
_CS_XBS5_ILP32_OFF32_CFLAGS = 1100,
_CS_XBS5_ILP32_OFF32_LDFLAGS,
_CS_XBS5_ILP32_OFF32_LIBS,
_CS_XBS5_ILP32_OFF32_LINTFLAGS,
_CS_XBS5_ILP32_OFFBIG_CFLAGS,
_CS_XBS5_ILP32_OFFBIG_LDFLAGS,
_CS_XBS5_ILP32_OFFBIG_LIBS,
_CS_XBS5_ILP32_OFFBIG_LINTFLAGS,
_CS_XBS5_LP64_OFF64_CFLAGS,
_CS_XBS5_LP64_OFF64_LDFLAGS,
_CS_XBS5_LP64_OFF64_LIBS,
_CS_XBS5_LP64_OFF64_LINTFLAGS,
_CS_XBS5_LPBIG_OFFBIG_CFLAGS,
_CS_XBS5_LPBIG_OFFBIG_LDFLAGS,
_CS_XBS5_LPBIG_OFFBIG_LIBS,
_CS_XBS5_LPBIG_OFFBIG_LINTFLAGS,
_CS_POSIX_V6_ILP32_OFF32_CFLAGS,
_CS_POSIX_V6_ILP32_OFF32_LDFLAGS,
_CS_POSIX_V6_ILP32_OFF32_LIBS,
_CS_POSIX_V6_ILP32_OFF32_LINTFLAGS,
_CS_POSIX_V6_ILP32_OFFBIG_CFLAGS,
_CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS,
_CS_POSIX_V6_ILP32_OFFBIG_LIBS,
_CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS,
_CS_POSIX_V6_LP64_OFF64_CFLAGS,
_CS_POSIX_V6_LP64_OFF64_LDFLAGS,
_CS_POSIX_V6_LP64_OFF64_LIBS,
_CS_POSIX_V6_LP64_OFF64_LINTFLAGS,
_CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS,
_CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS,
_CS_POSIX_V6_LPBIG_OFFBIG_LIBS,
_CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS,
_CS_POSIX_V7_ILP32_OFF32_CFLAGS,
_CS_POSIX_V7_ILP32_OFF32_LDFLAGS,
_CS_POSIX_V7_ILP32_OFF32_LIBS,
_CS_POSIX_V7_ILP32_OFF32_LINTFLAGS,
_CS_POSIX_V7_ILP32_OFFBIG_CFLAGS,
_CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS,
_CS_POSIX_V7_ILP32_OFFBIG_LIBS,
_CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS,
_CS_POSIX_V7_LP64_OFF64_CFLAGS,
_CS_POSIX_V7_LP64_OFF64_LDFLAGS,
_CS_POSIX_V7_LP64_OFF64_LIBS,
_CS_POSIX_V7_LP64_OFF64_LINTFLAGS,
_CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS,
_CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS,
_CS_POSIX_V7_LPBIG_OFFBIG_LIBS,
_CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS,
_CS_V6_ENV,
_CS_V7_ENV
};
# 607 "/usr/include/unistd.h" 2 3 4
extern long int pathconf (__const char *__path, int __name)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
extern long int fpathconf (int __fd, int __name) __attribute__ ((__nothrow__));
extern long int sysconf (int __name) __attribute__ ((__nothrow__));
extern size_t confstr (int __name, char *__buf, size_t __len) __attribute__ ((__nothrow__));
extern __pid_t getpid (void) __attribute__ ((__nothrow__));
extern __pid_t getppid (void) __attribute__ ((__nothrow__));
extern __pid_t getpgrp (void) __attribute__ ((__nothrow__));
# 643 "/usr/include/unistd.h" 3 4
extern __pid_t __getpgid (__pid_t __pid) __attribute__ ((__nothrow__));
extern __pid_t getpgid (__pid_t __pid) __attribute__ ((__nothrow__));
extern int setpgid (__pid_t __pid, __pid_t __pgid) __attribute__ ((__nothrow__));
# 669 "/usr/include/unistd.h" 3 4
extern int setpgrp (void) __attribute__ ((__nothrow__));
# 686 "/usr/include/unistd.h" 3 4
extern __pid_t setsid (void) __attribute__ ((__nothrow__));
extern __pid_t getsid (__pid_t __pid) __attribute__ ((__nothrow__));
extern __uid_t getuid (void) __attribute__ ((__nothrow__));
extern __uid_t geteuid (void) __attribute__ ((__nothrow__));
extern __gid_t getgid (void) __attribute__ ((__nothrow__));
extern __gid_t getegid (void) __attribute__ ((__nothrow__));
extern int getgroups (int __size, __gid_t __list[]) __attribute__ ((__nothrow__)) ;
# 719 "/usr/include/unistd.h" 3 4
extern int setuid (__uid_t __uid) __attribute__ ((__nothrow__));
extern int setreuid (__uid_t __ruid, __uid_t __euid) __attribute__ ((__nothrow__));
extern int seteuid (__uid_t __uid) __attribute__ ((__nothrow__));
extern int setgid (__gid_t __gid) __attribute__ ((__nothrow__));
extern int setregid (__gid_t __rgid, __gid_t __egid) __attribute__ ((__nothrow__));
extern int setegid (__gid_t __gid) __attribute__ ((__nothrow__));
# 775 "/usr/include/unistd.h" 3 4
extern __pid_t fork (void) __attribute__ ((__nothrow__));
extern __pid_t vfork (void) __attribute__ ((__nothrow__));
extern char *ttyname (int __fd) __attribute__ ((__nothrow__));
extern int ttyname_r (int __fd, char *__buf, size_t __buflen)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))) ;
extern int isatty (int __fd) __attribute__ ((__nothrow__));
extern int ttyslot (void) __attribute__ ((__nothrow__));
extern int link (__const char *__from, __const char *__to)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) ;
extern int linkat (int __fromfd, __const char *__from, int __tofd,
__const char *__to, int __flags)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4))) ;
extern int symlink (__const char *__from, __const char *__to)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) ;
extern ssize_t readlink (__const char *__restrict __path,
char *__restrict __buf, size_t __len)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) ;
extern int symlinkat (__const char *__from, int __tofd,
__const char *__to) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))) ;
extern ssize_t readlinkat (int __fd, __const char *__restrict __path,
char *__restrict __buf, size_t __len)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))) ;
extern int unlink (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
extern int unlinkat (int __fd, __const char *__name, int __flag)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
extern int rmdir (__const char *__path) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
extern __pid_t tcgetpgrp (int __fd) __attribute__ ((__nothrow__));
extern int tcsetpgrp (int __fd, __pid_t __pgrp_id) __attribute__ ((__nothrow__));
extern char *getlogin (void);
extern int getlogin_r (char *__name, size_t __name_len) __attribute__ ((__nonnull__ (1)));
extern int setlogin (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
# 890 "/usr/include/unistd.h" 3 4
# 1 "/usr/include/getopt.h" 1 3 4
# 59 "/usr/include/getopt.h" 3 4
extern char *optarg;
# 73 "/usr/include/getopt.h" 3 4
extern int optind;
extern int opterr;
extern int optopt;
# 152 "/usr/include/getopt.h" 3 4
extern int getopt (int ___argc, char *const *___argv, const char *__shortopts)
__attribute__ ((__nothrow__));
# 891 "/usr/include/unistd.h" 2 3 4
extern int gethostname (char *__name, size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
extern int sethostname (__const char *__name, size_t __len)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
extern int sethostid (long int __id) __attribute__ ((__nothrow__)) ;
extern int getdomainname (char *__name, size_t __len)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
extern int setdomainname (__const char *__name, size_t __len)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
extern int vhangup (void) __attribute__ ((__nothrow__));
extern int revoke (__const char *__file) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
extern int profil (unsigned short int *__sample_buffer, size_t __size,
size_t __offset, unsigned int __scale)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
extern int acct (__const char *__name) __attribute__ ((__nothrow__));
extern char *getusershell (void) __attribute__ ((__nothrow__));
extern void endusershell (void) __attribute__ ((__nothrow__));
extern void setusershell (void) __attribute__ ((__nothrow__));
extern int daemon (int __nochdir, int __noclose) __attribute__ ((__nothrow__)) ;
extern int chroot (__const char *__path) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
extern char *getpass (__const char *__prompt) __attribute__ ((__nonnull__ (1)));
# 976 "/usr/include/unistd.h" 3 4
extern int fsync (int __fd);
# 990 "/usr/include/unistd.h" 3 4
extern long int gethostid (void);
extern void sync (void) __attribute__ ((__nothrow__));
extern int getpagesize (void) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
extern int getdtablesize (void) __attribute__ ((__nothrow__));
# 1014 "/usr/include/unistd.h" 3 4
extern int truncate (__const char *__file, __off_t __length)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;
# 1036 "/usr/include/unistd.h" 3 4
extern int ftruncate (int __fd, __off_t __length) __attribute__ ((__nothrow__)) ;
# 1057 "/usr/include/unistd.h" 3 4
extern int brk (void *__addr) __attribute__ ((__nothrow__)) ;
extern void *sbrk (intptr_t __delta) __attribute__ ((__nothrow__));
# 1078 "/usr/include/unistd.h" 3 4
extern long int syscall (long int __sysno, ...) __attribute__ ((__nothrow__));
# 1132 "/usr/include/unistd.h" 3 4
extern int fdatasync (int __fildes);
# 1161 "/usr/include/unistd.h" 3 4
extern char *ctermid (char *__s) __attribute__ ((__nothrow__));
# 1170 "/usr/include/unistd.h" 3 4
# 90 "/usr/include/X11/Xos.h" 2 3 4
# 119 "/usr/include/X11/Xos.h" 3 4
# 1 "/usr/include/sys/time.h" 1 3 4
# 27 "/usr/include/sys/time.h" 3 4
# 1 "/usr/include/time.h" 1 3 4
# 28 "/usr/include/sys/time.h" 2 3 4
# 1 "/usr/include/bits/time.h" 1 3 4
# 30 "/usr/include/sys/time.h" 2 3 4
# 39 "/usr/include/sys/time.h" 3 4
# 57 "/usr/include/sys/time.h" 3 4
struct timezone
{
int tz_minuteswest;
int tz_dsttime;
};
typedef struct timezone *__restrict __timezone_ptr_t;
# 73 "/usr/include/sys/time.h" 3 4
extern int gettimeofday (struct timeval *__restrict __tv,
__timezone_ptr_t __tz) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
extern int settimeofday (__const struct timeval *__tv,
__const struct timezone *__tz)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
extern int adjtime (__const struct timeval *__delta,
struct timeval *__olddelta) __attribute__ ((__nothrow__));
enum __itimer_which
{
ITIMER_REAL = 0,
ITIMER_VIRTUAL = 1,
ITIMER_PROF = 2
};
struct itimerval
{
struct timeval it_interval;
struct timeval it_value;
};
typedef int __itimer_which_t;
extern int getitimer (__itimer_which_t __which,
struct itimerval *__value) __attribute__ ((__nothrow__));
extern int setitimer (__itimer_which_t __which,
__const struct itimerval *__restrict __new,
struct itimerval *__restrict __old) __attribute__ ((__nothrow__));
extern int utimes (__const char *__file, __const struct timeval __tvp[2])
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
extern int lutimes (__const char *__file, __const struct timeval __tvp[2])
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
extern int futimes (int __fd, __const struct timeval __tvp[2]) __attribute__ ((__nothrow__));
# 191 "/usr/include/sys/time.h" 3 4
# 120 "/usr/include/X11/Xos.h" 2 3 4
# 1 "/usr/include/time.h" 1 3 4
# 30 "/usr/include/time.h" 3 4
# 1 "/usr/lib/gcc/x86_64-unknown-linux-gnu/4.6.2/include/stddef.h" 1 3 4
# 39 "/usr/include/time.h" 2 3 4
# 1 "/usr/include/bits/time.h" 1 3 4
# 43 "/usr/include/time.h" 2 3 4
# 131 "/usr/include/time.h" 3 4
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;
long int tm_gmtoff;
__const char *tm_zone;
};
struct itimerspec
{
struct timespec it_interval;
struct timespec it_value;
};
struct sigevent;
# 180 "/usr/include/time.h" 3 4
extern clock_t clock (void) __attribute__ ((__nothrow__));
extern time_t time (time_t *__timer) __attribute__ ((__nothrow__));
extern double difftime (time_t __time1, time_t __time0)
__attribute__ ((__nothrow__)) __attribute__ ((__const__));
extern time_t mktime (struct tm *__tp) __attribute__ ((__nothrow__));
extern size_t strftime (char *__restrict __s, size_t __maxsize,
__const char *__restrict __format,
__const struct tm *__restrict __tp) __attribute__ ((__nothrow__));
# 217 "/usr/include/time.h" 3 4
extern size_t strftime_l (char *__restrict __s, size_t __maxsize,
__const char *__restrict __format,
__const struct tm *__restrict __tp,
__locale_t __loc) __attribute__ ((__nothrow__));
# 230 "/usr/include/time.h" 3 4
extern struct tm *gmtime (__const time_t *__timer) __attribute__ ((__nothrow__));
extern struct tm *localtime (__const time_t *__timer) __attribute__ ((__nothrow__));
extern struct tm *gmtime_r (__const time_t *__restrict __timer,
struct tm *__restrict __tp) __attribute__ ((__nothrow__));
extern struct tm *localtime_r (__const time_t *__restrict __timer,
struct tm *__restrict __tp) __attribute__ ((__nothrow__));
extern char *asctime (__const struct tm *__tp) __attribute__ ((__nothrow__));
extern char *ctime (__const time_t *__timer) __attribute__ ((__nothrow__));
extern char *asctime_r (__const struct tm *__restrict __tp,
char *__restrict __buf) __attribute__ ((__nothrow__));
extern char *ctime_r (__const time_t *__restrict __timer,
char *__restrict __buf) __attribute__ ((__nothrow__));
extern char *__tzname[2];
extern int __daylight;
extern long int __timezone;
extern char *tzname[2];
extern void tzset (void) __attribute__ ((__nothrow__));
extern int daylight;
extern long int timezone;
extern int stime (__const time_t *__when) __attribute__ ((__nothrow__));
# 313 "/usr/include/time.h" 3 4
extern time_t timegm (struct tm *__tp) __attribute__ ((__nothrow__));
extern time_t timelocal (struct tm *__tp) __attribute__ ((__nothrow__));
extern int dysize (int __year) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
# 328 "/usr/include/time.h" 3 4
extern int nanosleep (__const struct timespec *__requested_time,
struct timespec *__remaining);
extern int clock_getres (clockid_t __clock_id, struct timespec *__res) __attribute__ ((__nothrow__));
extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) __attribute__ ((__nothrow__));
extern int clock_settime (clockid_t __clock_id, __const struct timespec *__tp)
__attribute__ ((__nothrow__));
extern int clock_nanosleep (clockid_t __clock_id, int __flags,
__const struct timespec *__req,
struct timespec *__rem);
extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) __attribute__ ((__nothrow__));
extern int timer_create (clockid_t __clock_id,
struct sigevent *__restrict __evp,
timer_t *__restrict __timerid) __attribute__ ((__nothrow__));
extern int timer_delete (timer_t __timerid) __attribute__ ((__nothrow__));
extern int timer_settime (timer_t __timerid, int __flags,
__const struct itimerspec *__restrict __value,
struct itimerspec *__restrict __ovalue) __attribute__ ((__nothrow__));
extern int timer_gettime (timer_t __timerid, struct itimerspec *__value)
__attribute__ ((__nothrow__));
extern int timer_getoverrun (timer_t __timerid) __attribute__ ((__nothrow__));
# 417 "/usr/include/time.h" 3 4
# 121 "/usr/include/X11/Xos.h" 2 3 4
# 146 "/usr/include/X11/Xos.h" 3 4
# 1 "/usr/include/X11/Xarch.h" 1 3 4
# 147 "/usr/include/X11/Xos.h" 2 3 4
# 122 "std_defs.h" 2
# 39 "basetype.h" 2
typedef int Basetype;
typedef struct
{
Basetype width,
height;
} Size;
typedef struct
{
Basetype left_x,
top_y,
right_x,
bottom_y;
} TWRectangle;
typedef enum
{
Top, Bottom, Left, Right,
Top_Left, Top_Right, Bottom_Left, Bottom_Right,
NoSide
} Side;
typedef struct
{
Basetype x, y;
} TWPoint;
# 31 "manage.c" 2
# 1 "userglobD.h" 1
# 34 "userglobD.h"
# 1 "uservalsP.h" 1
# 30 "uservalsP.h"
typedef enum
{
Icon_None,
Icon_Top, Icon_Bottom,
Icon_Left, Icon_Right,
Icon_Middle
} Icon_Position;
typedef enum {
ABS_MIN_WIDTH,
ABS_MIN_HEIGHT,
RTL_LEFT_X,
RTL_TOP_Y,
FULL_WIDTH,
FULL_HEIGHT,
RTL_WIDTH,
RTL_HEIGHT,
ICON_AREA_TOP,
ICON_AREA_BOTTOM,
ICON_AREA_LEFT,
ICON_AREA_RIGHT,
BORDER_SIZE,
OUTER_BORDER_LINEWIDTH,
INNER_BORDER_LINEWIDTH,
GADGET_WIDTH,
GRAVITY,
ICON_PLACEMENT,
SECONDARY_ICON_PLACEMENT,
NEIGHBORHOOD_SHRINK_FACTOR,
LENGTH_USER_GLOBAL_VALUES
} User_Global_Values;
# 35 "userglobD.h" 2
# 1 "useroptsP.h" 1
# 29 "useroptsP.h"
typedef enum {
ACCEPT_NON_LISTENER_IN_BODY,
ACCEPT_NON_LISTENER_IN_BORDER,
ACCEPT_NON_LISTENER_IN_GADGET,
ACCEPT_NON_LISTENER_IN_HEADER,
ALLOW_AGGRESSIVE_REPOPULATION,
ALLOW_AUTO_SHRINK_ON_AUTO_REPOP,
ALLOW_AUTO_SHRINK_ON_EXPL_REPOP,
ALLOW_AUTO_SHRINK_ON_EXCHANGE,
ALLOW_AUTO_CLOSE_ON_EXCHANGE,
ALLOW_AUTOMATIC_SHRINK_BY_CLIENT,
ALLOW_AUTOMATIC_CLOSE_BY_CLIENT,
ALLOW_LISTENER_TO_CLOSE,
ALLOW_LSNR_TO_CHANGE_BY_CLIENT,
ALLOW_LSNR_TO_CLOSE_BY_CLIENT,
ALLOW_SHRINK_ON_AUTO_OPEN,
ALLOW_SHRINK_ON_CENTER_OPEN,
ALLOW_SHRINK_ON_CORNER_OPEN,
ALLOW_SHRINK_ON_RESIZE,
AUTO_DESIRED_ENLARGE,
AUTO_PLACE_ON_ICON_OPEN,
AUTO_PLACE_ON_MENU_OPEN,
AUTO_PLACE_ON_UNSIZED_OPEN,
AUTO_PRORATE,
AUTO_PRORATE_LOCALLY,
AUTO_REPOPULATE_LAST,
AUTO_REPOPULATE_ON_AUTO_UNZOOM,
AUTO_REPOPULATE_ON_CLOSE,
AUTO_REPOP_ON_DESKTOP_RESIZE,
AUTO_REPOP_ON_EXPLICIT_UNZOOM,
BIASED_AUTO_PRORATE,
BIASED_EXPLICIT_PRORATE,
BUTTON_MAKES_LISTENER_IN_BODY,
BUTTON_MAKES_LISTENER_IN_HEADER,
CENTER_CURSOR_ON_MOVE,
CENTER_CURSOR_ON_RELOCATE,
CLEAR_BODY_ON_REDRAW,
CLOSE_IN_HEADER,
CLOSE_IN_CORNER_BORDER,
CLOSE_IN_SIDE_BORDER,
CLOSE_IN_MOVE_GADGET,
CLOSE_IN_ZOOM_GADGET,
DESIRE_IN_HEADER,
DESIRE_IN_CORNER_BORDER,
DESIRE_IN_SIDE_BORDER,
DESIRE_IN_MOVE_GADGET,
DESIRE_IN_ZOOM_GADGET,
DISTINGUISH_CORNER_BORDERS,
DISTNGSH_CORNER_BORDERS_BY_INV,
DRAW_X_ON_MOVE,
DRAW_X_ON_OPEN,
DRAW_X_ON_RESIZE,
ENABLE_AUTO_REPOP_DURING_LAYOUT,
ENABLE_AUTO_SIZING_DURING_LAYOUT,
ENLARGE_IN_HEADER,
ENLARGE_IN_CORNER_BORDER,
ENLARGE_IN_SIDE_BORDER,
ENLARGE_IN_MOVE_GADGET,
ENLARGE_IN_ZOOM_GADGET,
EXCHANGE_IN_HEADER,
EXCHANGE_IN_ICON,
EXCHANGE_IN_CORNER_BORDER,
EXCHANGE_IN_SIDE_BORDER,
EXCHANGE_IN_MOVE_GADGET,
EXCHANGE_IN_ZOOM_GADGET,
FULL_SCREEN,
INCL_BGRND_MENU_IN_WINDOW_MENU,
KEY_MAKES_LISTENER_IN_BODY,
KEY_MAKES_LISTENER_IN_BORDER,
KEY_MAKES_LISTENER_IN_GADGET,
KEY_MAKES_LISTENER_IN_HEADER,
FOCUS_FOLLOWS_CURSOR,
MANAGER_MENU_IN_BODY,
MANAGER_MENU_IN_CORNER_BORDER,
MANAGER_MENU_IN_HEADER,
MANAGER_MENU_IN_ICON,
MANAGER_MENU_IN_SIDE_BORDER,
MANAGER_MENU_IN_MOVE_GADGET,
MANAGER_MENU_IN_ZOOM_GADGET,
MIDDLE_MENU,
MOVE_CURSOR_ON_CLIENT_OPEN,
MOVE_CURSOR_ON_MANUAL_OPEN,
MOVE_CURSOR_TO_ICON_ON_CLOSE,
MOVE_IN_HEADER,
MOVE_IN_ICON,
MOVE_IN_CORNER_BORDER,
MOVE_IN_SIDE_BORDER,
MOVE_IN_MOVE_GADGET,
MOVE_IN_ZOOM_GADGET,
ONLY_REPOP_SINCE_ON_AUTO_UNZOOM,
ONLY_REPOPULATE_SINCE_ON_CLOSE,
ONLY_REPOP_SINCE_ON_EXPL_UNZOOM,
PLACE_CSR_IN_BODY_NOT_BORDER,
PLACE_CSR_IN_BODY_NOT_GADGET,
PLACE_CSR_IN_BORDER_AFTER_RESIZE,
PLACE_CSR_GDGT_AFT_CL_AUTO_OPEN,
PLACE_CSR_GDGT_AFT_US_AUTO_OPEN,
PLACE_CSR_IN_GADGET_AFT_MAN_OPEN,
PLACE_CSR_IN_GADGET_AFT_EXCHANGE,
PLACE_CSR_IN_GADGET_AFT_MOVE,
PLACE_CSR_IN_ICON_AFTER_CLOSE,
PLACE_CSR_BACK_AFTER_MENU_OP,
PLACE_CSR_BACK_ON_CANCEL,
PREFER_CL_TO_SHR_ON_AUTO_OPEN,
PREFER_CL_TO_SHR_ON_CENTER_OPEN,
PREFER_CL_TO_SHR_ON_CORNER_OPEN,
PREFER_CL_TO_SHR_ON_EXCHANGE,
PREFER_CL_TO_SHR_ON_RESIZE,
PREFER_EXC_LOC_ON_ICONIZING,
PREFER_EXCHANGED_LOC_ON_OPENING,
PREFER_PREV_POS_ON_AUTO_REPOP,
PREFER_PREV_POS_ON_EXPL_REPOP,
PF_CTR_NBR_2_AUTO_CL_ON_OPEN,
PF_CTR_NBR_2_AUTO_SHR_ON_OPEN,
PF_CTR_NBR_2_SHRINK_ON_OPEN,
PF_EDGE_NBR_2_AUTO_CL_ON_OPEN,
PF_EDGE_NBR_2_AUTO_SHR_ON_OPEN,
PF_EDGE_NBR_2_SHRINK_ON_OPEN,
PF_DTOP_2_AUTO_CL_ON_AUTO_OPEN,
PF_DTOP_2_AUTO_SHR_ON_AUTO_OPEN,
PF_DTOP_2_SHRINK_ON_AUTO_OPEN,
PREF_SLD_TO_AUTO_CL_ON_RESIZE,
PREF_SLD_TO_AUTO_SHR_ON_RESIZE,
PREF_SLD_TO_SHRINK_ON_RESIZE,
PF_CTR_NBR_2_AUTO_CL_ON_RESIZE,
PF_CTR_NBR_2_AUTO_SHR_ON_RESIZE,
PF_CTR_NBR_2_SHRINK_ON_RESIZE,
PF_EDGE_NBR_2_AUTO_CL_ON_RESIZE,
PF_EDGE_NBR_2_AUTO_SHR_ON_RESIZE,
PF_EDGE_NBR_2_SHRINK_ON_RESIZE,
PREFER_UNZOOM_TO_CLOSE,
PRORATE_LOCALLY,
REDRAW_IN_HEADER,
REDRAW_IN_ICON,
REDRAW_IN_CORNER_BORDER,
REDRAW_IN_SIDE_BORDER,
REDRAW_IN_MOVE_GADGET,
REDRAW_IN_ZOOM_GADGET,
RELOCATE_IN_HEADER,
RELOCATE_IN_CORNER_BORDER,
RELOCATE_IN_SIDE_BORDER,
RELOCATE_IN_MOVE_GADGET,
RELOCATE_IN_ZOOM_GADGET,
REPOPULATE_STRICTLY,
REPOPULATE_AUTO_CLOSED_ONLY,
REQUIRE_PREV_POS_ON_AUTO_REPOP,
REQUIRE_PREV_POS_ON_EXPL_REPOP,
RESET_MAX_ON_INCREASE,
RESET_MAX_ON_SHRINK,
RESET_MIN_ON_DECREASE,
RESET_MIN_ON_ENLARGE,
RESET_MIN_MAX_ON_UNSZD_MAN_OPEN,
RESET_TIED_ZOOMED_MIN_ON_ENLARGE,
RESET_ZOOM_MIN,
RESET_ZOOM_MIN_ALLOWS_DECREASE,
RESET_ZOOM_MIN_USES_DESIRE,
RESIZE_IN_HEADER,
RESIZE_IN_CORNER_BORDER,
RESIZE_IN_SIDE_BORDER,
RESIZE_IN_MOVE_GADGET,
RESIZE_IN_ZOOM_GADGET,
SHOW_LISTENER_IN_BORDERS,
SHOW_LISTENER_IN_HEADER,
SHOW_FOCUS_IN_BORDERS,
SHOW_FOCUS_IN_HEADER,
TREAT_MOVE_LIKE_RELOCATE,
TRY_CTR_NBRHD_ON_EXCHANGE,
TRY_CTR_NBRHD_ON_OPEN,
TRY_EDGE_NEIGHBORHOOD_ON_OPEN,
TRY_SLIDING_ON_RESIZE,
TRY_CTR_NBRHD_ON_RESIZE,
TRY_EDGE_NEIGHBORHOOD_ON_RESIZE,
TRY_REPOP_AGAIN_AFT_AUTO_PRORATE,
UNZOOM_TIED_LSNR_IF_NECESSARY,
USE_CORNER_BORDERS,
USE_ICON_AREA,
USE_ICONS,
USE_RTL_ICON,
USER_MENU_IN_BODY,
USER_MENU_IN_HEADER,
USER_MENU_IN_SIDE_BORDER,
USER_MENU_IN_CORNER_BORDER,
USER_MENU_IN_ICON,
USER_MENU_IN_MOVE_GADGET,
USER_MENU_IN_ZOOM_GADGET,
ZOOM_IN_HEADER,
ZOOM_IN_CORNER_BORDER,
ZOOM_IN_SIDE_BORDER,
ZOOM_IN_MOVE_GADGET,
ZOOM_IN_ZOOM_GADGET,
ZOOM_ON_CREATE,
LENGTH_USER_GLOBAL_OPTIONS
} User_Global_Options;
# 36 "userglobD.h" 2
# 1 "exploptsP.h" 1
# 29 "exploptsP.h"
typedef enum {
EXPLICIT_AUTO_PRORATE,
EXPLICIT_ALLOW_AUTOMATIC_CLOSE,
LENGTH_EXPLICIT_GLOBAL_OPTIONS
} Explicit_Global_Options;
# 37 "userglobD.h" 2
extern bool user_global_options[];
# 50 "userglobD.h"
extern int user_global_values[];
# 65 "userglobD.h"
extern bool explicit[];
# 33 "manage.c" 2
# 1 "twin.h" 1
# 30 "twin.h"
# 1 "twinP.h" 1
# 39 "twinP.h"
# 1 "twinoptsP.h" 1
# 30 "twinoptsP.h"
typedef enum
{
EXPENSIVE_TO_REDRAW,
FIXED_COMPLETELY,
FIXED_BOTTOM_EDGE,
FIXED_TOP_EDGE,
FIXED_LEFT_EDGE,
FIXED_RIGHT_EDGE,
FIXED_SIZE,
FIXED_HEIGHT,
FIXED_WIDTH,
REQUIRE_MANUAL_CLOSE,
SHRINK_BASED_ON_CURRENT_SIZE,
WEIGHTED_SHRINK,
LENGTH_WINDOW_OPTIONS
} Window_Options;
# 40 "twinP.h" 2
typedef long TimeStamp;
typedef int Priority;
typedef pointer Tilwinp;
# 31 "twin.h" 2
# 1 "state.h" 1
# 30 "state.h"
# 1 "stateP.h" 1
# 34 "stateP.h"
# 1 "twinI.h" 1
# 36 "twinI.h"
typedef struct str_window Tilwin;
struct str_window
{
pointer id;
pointer data;
TWRectangle rect,
prev_rect,
modify_rect;
Size min_size,
max_size,
size,
modify_size,
open_size,
prev_size,
desired_size;
Side modify_side;
TWPoint center,
prev_center;
TWPoint position;
bool options[ (int) LENGTH_WINDOW_OPTIONS ];
bool Am_I_Open;
bool prev_Am_I_Open;
bool Was_Auto_Closed;
long affect_stamp;
long modify_stamp;
long timestamp,
prev_timestamp;
long open_priority;
long size_priority;
pointer tilep;
Tilwin *openp;
Tilwin *closedp;
Tilwin *justp;
Tilwin *potentmp;
Tilwin *potentcp;
long height_stamp;
long width_stamp;
};
# 35 "stateP.h" 2
typedef struct
{
Tilwin *winp;
int offset;
} WinpHandle;
# 31 "state.h" 2
extern int State_Transaction_Depth();
extern void State_Set_Window_Timestamp();
extern void State_Note_Use();
extern bool State_Was_Just_Modified();
extern void State_Act_Modified();
extern void State_Insert_Just_Modified();
extern void State_Start_Operation();
extern void State_Start_Transaction();
extern void State_Commit_Transaction();
extern void State_Abort_Transaction();
extern void State_Continue_Transaction();
extern void State_Create();
extern void State_Destroy();
extern void State_Manual_Close();
extern void State_Auto_Close();
extern void State_Open();
extern TimeStamp State_Get_Timestamp();
extern WinpHandle State_Gen_Open_Windows();
extern WinpHandle State_Gen_Closed_Windows();
extern WinpHandle State_Gen_Just_Opened_Windows();
extern WinpHandle State_Gen_Just_Modified_Windows();
extern WinpHandle State_Gen_Just_Closed_Windows();
extern void State_Next_Window();
extern void State_Undo();
extern void State_Potential_Clear();
extern WinpHandle State_Gen_Potentially_Modfd();
extern WinpHandle State_Gen_Potentially_Closed();
extern void State_Insert_Potentially_Modfd();
extern void State_Insert_Potentially_Closed();
extern void State_Remove_Potentially_Modfd();
extern void State_Remove_Potentially_Closed();
extern void State_Flip_Just_Lists();
extern bool State_Currently_Transacting();
extern void State_Swap();
# 34 "twin.h" 2
extern Size desktop_size;
extern TWRectangle desktop_rect;
extern TWPoint desktop_center;
extern Size absolute_mins;
extern int gravity;
# 53 "twin.h"
extern void Tilwin_Set_Desktop_Size();
extern Tilwinp Tilwin_Create_Window();
extern void Tilwin_Destroy_Window();
extern Tilwinp Tilwin_Locate();
extern bool Tilwin_Check_Center_Open();
extern bool Tilwin_Check_Corner_Open();
extern bool Tilwin_Check_Resize();
# 91 "twin.h"
extern bool Tilwin_Open();
extern void Tilwin_Close();
extern void Tilwin_Auto_Close();
extern bool Tilwin_Set();
extern bool Tilwin_Set_Size();
extern bool Tilwin_Is_Satisfied();
extern bool Tilwin_Resize();
extern bool Tilwin_Enlarge_Nearest();
extern bool Tilwin_Enlarge_Farthest();
extern void Tilwin_Enlarge_Nearest_In_Area();
extern void Tilwin_Enlarge_Farthest_In_Area();
extern bool Tilwin_Open_Nearest_In_Area();
extern bool Tilwin_Open_Farthest_In_Area();
extern bool Tilwin_Open_Best_In_Area();
extern void Tilwin_Prorate();
extern void Tilwin_Gen_Open_Windows();
extern void Tilwin_Gen_Closed_Windows();
extern void Tilwin_Gen_Just_Opened_Windows();
extern void Tilwin_Gen_Just_Modified_Windows();
extern void Tilwin_Gen_Just_Closed_Windows();
extern Tilwinp Tilwin_Next_Window();
extern void Tilwin_Modify_Covered_Windows();
extern bool Tilwin_Is_Covered();
extern void Tilwin_Undo();
extern void Tilwin_Abort_Transaction();
# 241 "twin.h"
extern bool Tilwin_Slide_Nearest();
extern bool Tilwin_Slide_Farthest();
extern bool Tilwin_Slide_Nearest_In_Area();
extern bool Tilwin_Slide_Farthest_In_Area();
extern void Tilwin_Slide_Horizly_Farthest();
extern void Tilwin_Slide_Vertly_Farthest();
extern void Tilwin_Slide_Horizly_Nearest();
extern void Tilwin_Slide_Vertly_Nearest();
extern Tilwinp Tilwin_Thread_Nearest();
extern Tilwinp Tilwin_Thread_Farthest();
extern Tilwinp Tilwin_Reverse_Thread();
extern Tilwinp Tilwin_Thread_Nearest_Position();
extern Tilwinp Tilwin_Thread_Vertly_Nearest();
extern Tilwinp Tilwin_Thread_Horizly_Nearest();
extern Tilwinp Tilwin_Thread_Vertly_Farthest();
extern Tilwinp Tilwin_Thread_Horizly_Farthest();
extern TWPoint Tilwin_Center_Of_Gravity();
extern TWPoint Tilwin_Position_Ctr_Of_Gravity();
extern Size Tilwin_Good_Size();
extern Size Tilwin_Checked_Size();
extern Size Tilwin_Checked_Previous_Size();
extern Size Tilwin_Checked_Min_Size();
extern Size Tilwin_Checked_Desired_Size();
extern Size Tilwin_Checked_Good_Desired_Size();
extern Size Tilwin_Checked_Max_Size();
extern Size Tilwin_Checked_Good_Max_Size();
extern Tilwinp Tilwin_Get_Latest_Height();
extern Tilwinp Tilwin_Get_Latest_Width();
# 34 "manage.c" 2
# 1 "twinD.h" 1
# 38 "twinD.h"
# 1 "tileoptsP.h" 1
# 30 "tileoptsP.h"
typedef enum {
ADJUST_PLACEMENT_FAIRLY,
ALLOW_AUTOMATIC_CLOSE,
ALLOW_AUTO_CLOSE_MORE_RECENT,
ALLOW_AUTOMATIC_SHRINK,
ALLOW_AUTO_SHRINK_MORE_RECENT,
BEST_FIT_IS_TIGHT,
BREAK_MINIMUMS_FAIRLY,
ENABLE_GRAVITY,
ENFORCE_MAXIMUMS,
ENFORCE_MINIMUMS,
FIRST_FIT,
PREFER_CLOSE_TO_SHRINK,
PREFER_AUTOMATIC_CLOSE_TO_SEARCH,
PREFER_AUTO_SHRINK_TO_SEARCH,
PREFER_SHRINK_TO_SEARCH,
PRORATE_VERTICALLY_FIRST,
LENGTH_GLOBAL_OPTIONS
} Global_Options;
# 39 "twinD.h" 2
# 138 "twinD.h"
extern bool globals[];
# 37 "manage.c" 2
# 1 "uwinD.h" 1
# 31 "uwinD.h"
# 1 "uwinP.h" 1
# 35 "uwinP.h"
# 1 "regionP.h" 1
# 39 "regionP.h"
# 1 "bodyregP.h" 1
# 36 "bodyregP.h"
# 1 "listsP.h" 1
# 36 "listsP.h"
typedef struct node Node;
struct node
{
struct node *prev, *next;
pointer info;
int id;
};
typedef struct {
Node *head, *tail;
}
List;
# 37 "bodyregP.h" 2
# 1 "tilemenuP.h" 1
# 33 "tilemenuP.h"
typedef pointer TileMenu;
typedef pointer TileMenuItem;
# 41 "bodyregP.h" 2
# 1 "tilecrsrP.h" 1
# 33 "tilecrsrP.h"
typedef long TileCursor;
# 45 "bodyregP.h" 2
typedef struct {
TileMenu menu;
TileCursor cursor;
} MenuAndCurs;
typedef struct bodyregion {
int regionid;
int menucursor_regionid;
struct bodyregion *menucursor_bodyregion;
TWRectangle *rect;
TileMenu menu;
TileCursor cursor;
char *regionname;
} *BodyRegion;
# 40 "regionP.h" 2
typedef enum
{
background,
body, header,
zoom_gadget, move_gadget,
edge, corner,
icon,
rtl
} Region_Enum;
typedef union
{
Side side;
BodyRegion bodyregion;
} Region_Info;
typedef struct
{
Region_Enum region_enum;
Region_Info region_info;
} TWRegion;
# 36 "uwinP.h" 2
# 1 "uwinoptP.h" 1
# 29 "uwinoptP.h"
typedef enum {
ACCEPT_BUTTON_IN_BODY,
ACCEPT_BUTTON_IN_HEADER,
ACCEPT_BUTTON_IN_ICON,
ACCEPT_KEY_IN_BODY,
ACCEPT_KEY_IN_HEADER,
ACCEPT_KEY_IN_GADGET,
ACCEPT_KEY_IN_BORDER,
ACCEPT_KEY_IN_ICON,
AGGRESSIVELY_REPOPULATE,
ALLOW_SHRINK_ON_UNZOOM,
ALLOW_SHRINK_ON_AUTO_UNZOOM,
ALLOW_ZOOM_CLOSE,
AUTO_OPEN_ON_CREATE,
AUTO_OPEN_ON_WRITE,
AUTO_PLACE_ON_CLIENT_OPEN,
AUTO_RESATISFY_ON_RESET_MINMAX,
CLIENT_DRAWS_ICON,
CLIENT_PROVIDES_HEADER,
CONSIDER_FOR_REPOPULATION,
ENFORCE_CLIENT_MINIMUMS,
ENFORCE_CLIENT_MAXIMUMS,
LISTENER_TIED_TO_ZOOM,
FORCE_SHRINK_ON_UNZOOM,
FORCE_SHRINK_ON_AUTO_UNZOOM,
GLASS_CLIENT,
ICON_DRAWN_BY_CLIENT,
IGNORE_INITIAL_POSITION_HINTS,
IGNORE_INITIAL_SIZE_HINTS,
IGNORE_POSITION_HINTS,
IGNORE_SIZE_HINTS,
INCLUDE_RES_CLASS_IN_TITLE,
INCLUDE_RES_CLASS_IN_ICON_TITLE,
INCLUDE_RES_NAME_IN_TITLE,
INCLUDE_RES_NAME_IN_ICON_TITLE,
INCLUDE_NAME_IN_TITLE,
INCLUDE_NAME_IN_ICON_TITLE,
INCLUDE_HOST_IN_TITLE,
INCLUDE_HOST_IN_ICON_TITLE,
INCLUDE_TITLE_IN_HEADER,
INCLUDE_TITLE_IN_PIXMAP_ICON,
INCLUDE_TITLE_IN_CLIENT_ICON,
INVERT_ICON_WHEN_PENDING,
NOTE_LISTENER,
NOTE_LISTENER_INPUT,
NOTE_CLOSED_INPUT,
NOTE_OPEN_INPUT,
NOTE_CLOSED_OUTPUT,
NOTE_OPEN_OUTPUT,
PREFER_PREVIOUS_ICON_POSITION,
PREFER_PREV_POS,
REQUIRE_PREVIOUS_ICON_POSITION,
REQUIRE_PREV_POS,
SAVE_IN_LAYOUT,
SHOW_ICON,
USE_BORDERS,
USE_GADGETS,
USE_HEADER,
USE_MOVE_GADGET,
ZOOM_FULL_EXPLICIT,
ZOOM_FULL_HEIGHT,
ZOOM_FULL_WIDTH,
ZOOM_ON_OPEN,
ZOOM_TIED_TO_DESIRE,
LENGTH_USER_WINDOW_OPTIONS
} User_Window_Options;
# 43 "uwinP.h" 2
# 1 "explwoptsP.h" 1
# 31 "explwoptsP.h"
typedef enum {
EXPLICIT_LISTENER_TIED_TO_ZOOM,
EXPLICIT_FIXED_COMPLETELY,
EXPLICIT_FIXED_HEIGHT,
EXPLICIT_FIXED_WIDTH,
EXPLICIT_REQUIRE_MANUAL_CLOSE,
EXPLICIT_ZOOM_TIED_TO_DESIRE,
LENGTH_EXPLICIT_WINDOW_OPTIONS
} Explicit_Window_Options;
# 44 "uwinP.h" 2
# 1 "platformP.h" 1
# 31 "platformP.h"
# 1 "/usr/include/X11/X.h" 1 3 4
# 66 "/usr/include/X11/X.h" 3 4
typedef unsigned long XID;
typedef unsigned long Mask;
typedef unsigned long Atom;
typedef unsigned long VisualID;
typedef unsigned long Time;
# 96 "/usr/include/X11/X.h" 3 4
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;
# 32 "platformP.h" 2
typedef struct
{
Window parent;
Window top_border;
Window left_border;
Window right_border;
Window bottom_border;
Window top_left;
Window top_right;
Window bottom_left;
Window bottom_right;
Window header;
Window zoom_gadget;
Window move_gadget;
Window client;
Window icon;
Window client_icon;
Window transient_for;
} XFrame;
# 46 "uwinP.h" 2
typedef struct str_userwin Userwin;
struct str_userwin {
Tilwinp winp;
Tilwinp iconp;
Region_Enum current_type;
int winnum;
pointer data;
char *hostname;
char *res_class;
char *res_name;
char *wmname;
char *iconname;
char *command;
char *identity;
char *title;
bool options[(int)LENGTH_USER_WINDOW_OPTIONS];
bool explicit[(int)LENGTH_EXPLICIT_WINDOW_OPTIONS];
bool prepared;
bool layout;
bool layout_found;
bool positioned;
bool ever_opened;
bool sized;
bool listener;
bool regular_manual_close;
bool icon_positioned;
bool focus;
int client_state;
int wm_state;
int startup_state;
int group_state;
TimeStamp open_stamp;
TimeStamp zoom_stamp;
bool zoomed;
TWRectangle rezoom_rect;
Size regular_min;
Size regular_size;
Size zoom_min;
Size zoom_size;
bool prev_positioned;
bool prev_sized;
bool prev_zoomed;
int prev_group_state;
TWRectangle prev_rezoom_rect;
Size prev_min;
Size prev_max;
Size prev_desire;
TimeStamp undo_stamp;
Size body_min;
Size body_max;
Size client_min;
Size client_max;
int header_height;
bool input_enabled;
bool output_sent;
bool saving_state;
bool soft_kill;
int connection;
Userwin *group;
long messages;
TWRectangle icon_res_rect;
TWRectangle icon_host_rect;
TWRectangle icon_name_rect;
TWRectangle icon_body_rect;
bool initially_mapped;
bool initially_icon_mapped;
int border_width; Pixmap iconmask; Pixmap iconpix; Pixmap iconpix_pending; bool ignore_unmap; XFrame xframe;
};
# 32 "uwinD.h" 2
# 42 "uwinD.h"
# 1 "twin.h" 1
# 33 "twin.h"
# 1 "state.h" 1
# 33 "state.h"
extern int State_Transaction_Depth();
extern void State_Set_Window_Timestamp();
extern void State_Note_Use();
extern bool State_Was_Just_Modified();
extern void State_Act_Modified();
extern void State_Insert_Just_Modified();
extern void State_Start_Operation();
extern void State_Start_Transaction();
extern void State_Commit_Transaction();
extern void State_Abort_Transaction();
extern void State_Continue_Transaction();
extern void State_Create();
extern void State_Destroy();
extern void State_Manual_Close();
extern void State_Auto_Close();
extern void State_Open();
extern TimeStamp State_Get_Timestamp();
extern WinpHandle State_Gen_Open_Windows();
extern WinpHandle State_Gen_Closed_Windows();
extern WinpHandle State_Gen_Just_Opened_Windows();
extern WinpHandle State_Gen_Just_Modified_Windows();
extern WinpHandle State_Gen_Just_Closed_Windows();
extern void State_Next_Window();
extern void State_Undo();
extern void State_Potential_Clear();
extern WinpHandle State_Gen_Potentially_Modfd();
extern WinpHandle State_Gen_Potentially_Closed();
extern void State_Insert_Potentially_Modfd();
extern void State_Insert_Potentially_Closed();
extern void State_Remove_Potentially_Modfd();
extern void State_Remove_Potentially_Closed();
extern void State_Flip_Just_Lists();
extern bool State_Currently_Transacting();
extern void State_Swap();
# 34 "twin.h" 2
extern Size desktop_size;
extern TWRectangle desktop_rect;
extern TWPoint desktop_center;
extern Size absolute_mins;
extern int gravity;
# 53 "twin.h"
extern void Tilwin_Set_Desktop_Size();
extern Tilwinp Tilwin_Create_Window();
extern void Tilwin_Destroy_Window();
extern Tilwinp Tilwin_Locate();
extern bool Tilwin_Check_Center_Open();
extern bool Tilwin_Check_Corner_Open();
extern bool Tilwin_Check_Resize();
# 91 "twin.h"
extern bool Tilwin_Open();
extern void Tilwin_Close();
extern void Tilwin_Auto_Close();
extern bool Tilwin_Set();
extern bool Tilwin_Set_Size();
extern bool Tilwin_Is_Satisfied();
extern bool Tilwin_Resize();
extern bool Tilwin_Enlarge_Nearest();
extern bool Tilwin_Enlarge_Farthest();
extern void Tilwin_Enlarge_Nearest_In_Area();
extern void Tilwin_Enlarge_Farthest_In_Area();
extern bool Tilwin_Open_Nearest_In_Area();
extern bool Tilwin_Open_Farthest_In_Area();
extern bool Tilwin_Open_Best_In_Area();
extern void Tilwin_Prorate();
extern void Tilwin_Gen_Open_Windows();
extern void Tilwin_Gen_Closed_Windows();
extern void Tilwin_Gen_Just_Opened_Windows();
extern void Tilwin_Gen_Just_Modified_Windows();
extern void Tilwin_Gen_Just_Closed_Windows();
extern Tilwinp Tilwin_Next_Window();
extern void Tilwin_Modify_Covered_Windows();
extern bool Tilwin_Is_Covered();
extern void Tilwin_Undo();
extern void Tilwin_Abort_Transaction();
# 241 "twin.h"
extern bool Tilwin_Slide_Nearest();
extern bool Tilwin_Slide_Farthest();
extern bool Tilwin_Slide_Nearest_In_Area();
extern bool Tilwin_Slide_Farthest_In_Area();
extern void Tilwin_Slide_Horizly_Farthest();
extern void Tilwin_Slide_Vertly_Farthest();
extern void Tilwin_Slide_Horizly_Nearest();
extern void Tilwin_Slide_Vertly_Nearest();
extern Tilwinp Tilwin_Thread_Nearest();
extern Tilwinp Tilwin_Thread_Farthest();
extern Tilwinp Tilwin_Reverse_Thread();
extern Tilwinp Tilwin_Thread_Nearest_Position();
extern Tilwinp Tilwin_Thread_Vertly_Nearest();
extern Tilwinp Tilwin_Thread_Horizly_Nearest();
extern Tilwinp Tilwin_Thread_Vertly_Farthest();
extern Tilwinp Tilwin_Thread_Horizly_Farthest();
extern TWPoint Tilwin_Center_Of_Gravity();
extern TWPoint Tilwin_Position_Ctr_Of_Gravity();
extern Size Tilwin_Good_Size();
extern Size Tilwin_Checked_Size();
extern Size Tilwin_Checked_Previous_Size();
extern Size Tilwin_Checked_Min_Size();
extern Size Tilwin_Checked_Desired_Size();
extern Size Tilwin_Checked_Good_Desired_Size();
extern Size Tilwin_Checked_Max_Size();
extern Size Tilwin_Checked_Good_Max_Size();
extern Tilwinp Tilwin_Get_Latest_Height();
extern Tilwinp Tilwin_Get_Latest_Width();
# 43 "uwinD.h" 2
# 82 "uwinD.h"
extern Size abs_min_siz, abs_max_siz;
# 41 "manage.c" 2
# 1 "uwinL.h" 1
# 44 "manage.c" 2
# 1 "uwinvalP.h" 1
# 29 "uwinvalP.h"
typedef enum {
HEADER_HEIGHT,
ICON_WIDTH,
ICON_HEIGHT,
ICON_BODY_TOP,
ICON_BODY_BOTTOM,
ICON_BODY_LEFT,
ICON_BODY_RIGHT,
ICON_RES_TOP,
ICON_RES_BOTTOM,
ICON_RES_LEFT,
ICON_RES_RIGHT,
ICON_HOST_TOP,
ICON_HOST_BOTTOM,
ICON_HOST_LEFT,
ICON_HOST_RIGHT,
ICON_NAME_TOP,
ICON_NAME_BOTTOM,
ICON_NAME_LEFT,
ICON_NAME_RIGHT,
CLIENT_MIN_WIDTH,
CLIENT_MIN_HEIGHT,
CLIENT_MAX_WIDTH,
CLIENT_MAX_HEIGHT,
NORMAL_DESIRED_WIDTH,
NORMAL_DESIRED_HEIGHT,
ZOOM_DESIRED_WIDTH,
ZOOM_DESIRED_HEIGHT,
USER_NORMAL_MIN_WIDTH,
USER_NORMAL_MIN_HEIGHT,
USER_ZOOM_MIN_WIDTH,
USER_ZOOM_MIN_HEIGHT,
USER_MAX_WIDTH,
USER_MAX_HEIGHT,
LENGTH_USER_WINDOW_VALUES
} User_Window_Values;
# 45 "manage.c" 2
# 1 "client.h" 1
# 30 "client.h"
extern void Client_Enter();
extern void Client_Send_Mouse();
extern void Client_Send_Button();
extern void Client_Send_Key();
extern void Client_Ignore_Key();
extern void Client_Ignore_Button();
extern void Client_Send_String();
extern void Client_Menu_Button_Number();
extern void Client_Kill();
extern void Client_Redraw();
extern void Client_Window_Create();
extern void Client_Startup();
extern void Client_Take_Focus();
extern void Client_Bang();
extern void Client_Set_State();
extern void Client_Configure_Denied();
extern void Client_Window_Moved();
extern void Client_Delete_Window();
extern void Client_Icon_Notify();
# 47 "manage.c" 2
# 1 "closed.h" 1
# 37 "closed.h"
extern TileMenu Closed_Init();
extern void Closed_Retitle();
extern void Closed_Add();
extern void Closed_Remove();
# 48 "manage.c" 2
# 1 "draw.h" 1
# 30 "draw.h"
# 1 "drawP.h" 1
# 35 "drawP.h"
typedef pointer DrawRegion;
# 31 "draw.h" 2
extern void Draw_Init();
extern void Draw_Create();
extern void Draw_ConfigWin();
extern void Draw_Start();
extern void Draw_Finish();
extern void Draw_Flash();
extern void Draw_Line();
extern void Draw_Horizontal();
extern void Draw_Vertical();
extern void Draw_Xor_Line();
extern void Draw_Xor_Horizontal();
extern void Draw_Xor_Vertical();
extern void Draw_Clear_Rectangle();
extern void Draw_Background_Rectangle();
extern void Draw_Fill_Rectangle();
extern void Draw_Fill_Xor_Rectangle();
extern void Draw_Rectangle();
extern void Draw_Xor_Rectangle();
extern void Draw_Pixrect();
extern int Draw_Open();
extern int Draw_Font_Height();
extern int Draw_Num_Drawables();
extern void Draw_Centered_String();
extern void Draw_Vert_Centered_String();
extern int Draw_Get_Frame_Width();
extern int Draw_Get_Frame_Height();
# 49 "manage.c" 2
# 1 "drawicon.h" 1
# 34 "drawicon.h"
extern void DrawIcon_Init();
extern void DrawIcon_Flash();
extern void DrawIcon_Init_Rtl();
extern void DrawIcon_Initial_Size();
extern void DrawIcon_Create();
extern void DrawIcon_Destroy();
extern void DrawIcon_Close();
extern void DrawIcon_Open();
extern void DrawIcon_Move_Open();
extern void DrawIcon_Move_Close();
extern void DrawIcon_Redraw();
extern void DrawIcon_Draw();
extern void DrawIcon_Retitle();
extern void DrawIcon_Note_Output();
extern void DrawIcon_Good_Move_Box();
extern void DrawIcon_Bad_Move_Box();
extern void DrawIcon_Undo_Move_Box();
extern void DrawIcon_Show_Moving();
extern void DrawIcon_Unshow_Moving();
extern void DrawIcon_Show_Opening();
extern void DrawIcon_Unshow_Opening();
# 50 "manage.c" 2
# 1 "drawwin.h" 1
# 34 "drawwin.h"
extern void Drawwin_Init();
extern void Drawwin_Flash();
extern void Drawwin_Initial_Size();
extern void Drawwin_Start();
extern void Drawwin_Finish();
extern void Drawwin_Create();
extern void Drawwin_Prepare();
extern void Drawwin_Insert();
extern void Drawwin_Withdraw();
extern void Drawwin_Destroy();
extern void Drawwin_Draw_Background();
extern bool Drawwin_Redraw_All();
extern void Drawwin_Unmap();
extern void Drawwin_Close();
extern void Drawwin_Open();
extern void Drawwin_Move_Open();
extern void Drawwin_Move_Close();
extern void Drawwin_Listener_Move_Open();
extern void Drawwin_Listener_Move_Close();
extern void Drawwin_Redraw();
extern void Drawwin_Draw();
extern void Drawwin_Display_Focus();
extern void Drawwin_Display_Wrapping();
extern void Drawwin_Retitle();
extern void Drawwin_Show_Moving();
extern void Drawwin_Unshow_Moving();
extern void Drawwin_Good_Open_Box();
extern void Drawwin_Bad_Open_Box();
extern void Drawwin_Undo_Open_Box();
extern void Drawwin_Edge_Resize();
extern void Drawwin_Undo_Edge_Resize();
extern void Drawwin_Corner_Resize();
extern void Drawwin_Undo_Corner_Resize();
extern void Drawwin_Good_Move_Box();
extern void Drawwin_Bad_Move_Box();
extern void Drawwin_Undo_Move_Box();
# 51 "manage.c" 2
# 1 "layout.h" 1
# 30 "layout.h"
typedef pointer Layoutp;
extern bool Layout_Save();
extern int unmatched_layouts;
extern Layoutp Layout_Find();
extern void Layout_Set_Values();
extern void Layout_Set_Options();
extern char *Layout_Init();
extern void Layout_Read();
extern void Layout_Update();
# 52 "manage.c" 2
# 1 "profile.h" 1
# 30 "profile.h"
extern void Profile_Init();
extern void Profile_Create();
extern void Profile_Prepare();
extern void Profile_Update();
extern void Profile_Layout();
extern bool Profile_Supplies_User_Value();
extern bool Profile_Supplies_User_String();
extern bool Profile_Supplies_Pixmap();
# 53 "manage.c" 2
# 1 "region.h" 1
# 45 "region.h"
extern TWRegion back_region;
extern TWRegion header_region;
extern TWRegion body_region;
extern TWRegion left_region;
extern TWRegion right_region;
extern TWRegion top_region;
extern TWRegion bottom_region;
extern TWRegion top_left_region;
extern TWRegion top_right_region;
extern TWRegion bottom_left_region;
extern TWRegion bottom_right_region;
extern TWRegion zoom_gadget_region;
extern TWRegion move_gadget_region;
extern TWRegion rtl_region;
extern TWRegion icon_region;
extern void Region_Init();
extern Size Region_Minimum_Size();
extern TWPoint Region_Translate();
extern Size Region_Body_Size();
extern Size Region_Icon_Body_Size();
extern TWRectangle Region_Body_Rectangle();
extern TWRectangle Region_Adjust_Rectangle();
extern Size Region_Adjust_Size();
extern Size Region_Unadjust_Size();
extern TWRegion Region_Locate();
extern TWRegion Region_Make_Edge();
extern TWRegion Region_Make_Corner();
extern TWRectangle Region_Header_Rect();
extern TWPoint Region_Get_Header_Pos();
extern TWPoint Region_Gadget_Center();
extern TWPoint Region_Get_Edge_Pos();
extern TWPoint Region_Get_Corner_Pos();
extern TWRegion Region_Nearest_Border();
extern bool Region_Nearby();
extern bool Region_Equal();
extern TileCursor Region_Get_Cursor();
extern TileMenu Region_Get_Menu();
# 54 "manage.c" 2
# 266 "manage.c"
static void Manage_Do_Unzoom(Userwin *uwinp, bool explicit);
static void Manage_Start_Trying();
static void Manage_Finish_Trying(bool result);
TimeStamp last_stamp;
static int winnum = 0;
Userwin *focus = (Userwin *)((void *)0);
Userwin *listener = (Userwin *)((void *)0);
Userwin *sublistener = (Userwin *)((void *)0);
Userwin *switch_listener = (Userwin *)((void *)0);
Userwin *prev_listener = (Userwin *)((void *)0);
Userwin *last_zoom = (Userwin *)((void *)0);
Userwin *touch = (Userwin *)((void *)0);
Userwin *prev_touch = (Userwin *)((void *)0);
Userwin *rtl_uwinp;
void Manage_Init()
{
Draw_Init();
Region_Init();
Drawwin_Init();
DrawIcon_Init();
last_stamp = 0;
}
static Userwin *Manage_Init_Window()
{
Userwin *uwinp;
uwinp = ( ( (Userwin *) malloc(sizeof(Userwin) * (1)) ) );
uwinp->prepared = 0;
uwinp->layout = 0;
uwinp->layout_found = 0;
uwinp->output_sent = 0;
uwinp->ever_opened = 0;
uwinp->soft_kill = 0;
uwinp->saving_state = 0;
uwinp->client_state = -1;
uwinp->wm_state = -2;
uwinp->group_state = -3;
uwinp->current_type = body;
uwinp->group = (Userwin *)((void *)0);
uwinp->messages = 0;
uwinp->hostname = ((void *)0);
uwinp->res_class = ((void *)0);
uwinp->res_name = ((void *)0);
uwinp->wmname = ((void *)0);
uwinp->iconname = ((void *)0);
uwinp->command = ((void *)0);
uwinp->identity = ((void *)0);
uwinp->title = ((void *)0);
uwinp->positioned = 0;
uwinp->sized = 0;
uwinp->focus = 0;
uwinp->listener = 0;
uwinp->zoomed = 0;
uwinp->icon_positioned = 0;
uwinp->winp = Tilwin_Create_Window( (pointer)uwinp );
uwinp->iconp = Tilwin_Create_Window( (pointer)uwinp );
uwinp->open_stamp = 0;
uwinp->zoom_stamp = 0;
( ((Tilwin *)(uwinp->iconp)) -> options[ (int) FIXED_LEFT_EDGE ] ) = (0);
( ((Tilwin *)(uwinp->iconp)) -> options[ (int) FIXED_RIGHT_EDGE ] ) = (0);
( ((Tilwin *)(uwinp->iconp)) -> options[ (int) FIXED_TOP_EDGE ] ) = (0);
( ((Tilwin *)(uwinp->iconp)) -> options[ (int) FIXED_BOTTOM_EDGE ] ) = (0);
( ((Tilwin *)(uwinp->iconp)) -> options[ (int) FIXED_SIZE ] ) = (1);
( ((Tilwin *)(uwinp->iconp)) -> options[ (int) FIXED_COMPLETELY ] ) = (0);
( ((Tilwin *)(uwinp->iconp)) -> options[ (int) EXPENSIVE_TO_REDRAW ] ) = (0);
( ((Tilwin *)(uwinp->iconp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (1);
Profile_Create( uwinp );
return uwinp;
}
Userwin *Manage_Create_Window( )
{
Userwin *uwinp;
uwinp = Manage_Init_Window();
uwinp->winnum = ++winnum;
Drawwin_Create( uwinp );
DrawIcon_Create( uwinp );
return uwinp;
}
static void Manage_Untitle( uwinp )
Userwin *uwinp;
{
if ( (uwinp->hostname) != ((void *)0) )
free( uwinp->hostname );
if ( (uwinp->res_class) != ((void *)0) )
free( uwinp->res_class );
if ( (uwinp->res_name) != ((void *)0) )
free( uwinp->res_name );
if ( (uwinp->wmname) != ((void *)0) )
free( uwinp->wmname );
if ( (uwinp->iconname) != ((void *)0) )
free( uwinp->iconname );
if ( (uwinp->command) != ((void *)0) )
free( uwinp->command );
if ( (uwinp->identity) != ((void *)0) )
free( uwinp->identity );
if ( (uwinp->title) != ((void *)0) )
free( uwinp->title );
}
static void Manage_Retitle( uwinp )
Userwin *uwinp;
{
int strsiz;
bool has_class, has_name;
if ( (uwinp->title) != ((void *)0) )
free( uwinp->title );
strsiz = 1;
has_class = (uwinp->res_class != ((void *)0)) &&
( (uwinp)->options[(int)(INCLUDE_RES_CLASS_IN_TITLE)] );
has_name = (uwinp->res_name != ((void *)0)) &&
( (uwinp)->options[(int)(INCLUDE_RES_NAME_IN_TITLE)] );
if ( has_class || has_name )
{
strsiz +=1;
if ( has_class )
strsiz += strlen(uwinp->res_class);
if ( has_class && has_name )
strsiz +=1;
if ( has_name )
strsiz += strlen(uwinp->res_name);
strsiz +=2;
}
if ( (uwinp->wmname != ((void *)0)) &&
( (uwinp)->options[(int)(INCLUDE_NAME_IN_TITLE)] ) )
strsiz += strlen(uwinp->wmname);
if ( (uwinp->hostname != ((void *)0)) &&
( (uwinp)->options[(int)(INCLUDE_HOST_IN_TITLE)] ) )
strsiz += (3 + strlen(uwinp->hostname));
uwinp->title = ( (char *) malloc(sizeof(char) * (strsiz)) );
uwinp->title[0] = '\0';
if ( has_class || has_name )
{
(void)strcat( uwinp->title, "[" );
if ( has_class )
(void)strcat( uwinp->title, uwinp->res_class );
if ( has_class && has_name )
(void)strcat( uwinp->title, ":" );
if ( has_name )
(void)strcat( uwinp->title, uwinp->res_name );
(void)strcat( uwinp->title, "] " );
}
if ( (uwinp->wmname != ((void *)0)) &&
( (uwinp)->options[(int)(INCLUDE_NAME_IN_TITLE)] ) )
{
(void)strcat( uwinp->title, uwinp->wmname );
}
if ( (uwinp->hostname != ((void *)0)) &&
( (uwinp)->options[(int)(INCLUDE_HOST_IN_TITLE)] ) )
{
(void)strcat( uwinp->title, " (" );
(void)strcat( uwinp->title, uwinp->hostname );
(void)strcat( uwinp->title, ")" );
}
if ( (((Tilwin *)(uwinp->winp)) -> Am_I_Open) )
Drawwin_Retitle( uwinp );
else if ( uwinp->ever_opened )
{
Closed_Retitle( uwinp );
if ( (((Tilwin *)(uwinp->iconp)) -> Am_I_Open) )
DrawIcon_Retitle(uwinp);
}
}
void Manage_Set_Class( uwinp, res_class, res_name )
Userwin *uwinp;
char *res_class;
char *res_name;
{
if ( ( ( ( (uwinp->res_class) == ((void *)0) ) || ( uwinp->res_class[0] == ((void *)0) ) ) ? ( ( (res_class) == ((void *)0) ) || ( res_class[0] == ((void *)0) ) ) : ( ( (res_class) != ((void *)0) ) && ( strcmp(uwinp->res_class,res_class) == 0 ) ) ) &&
( ( ( (uwinp->res_name) == ((void *)0) ) || ( uwinp->res_name[0] == ((void *)0) ) ) ? ( ( (res_name) == ((void *)0) ) || ( res_name[0] == ((void *)0) ) ) : ( ( (res_name) != ((void *)0) ) && ( strcmp(uwinp->res_name,res_name) == 0 ) ) ) )
return;
if ( (uwinp->res_class) != ((void *)0) )
free( uwinp->res_class );
if ( res_class == ((void *)0) )
uwinp->res_class = ((void *)0);
else
{
uwinp->res_class =
( (char *) malloc(sizeof(char) * (1 + strlen(res_class))) );
(void)strcpy( uwinp->res_class, res_class );
}
if ( (uwinp->res_name) != ((void *)0) )
free( uwinp->res_name );
if ( res_name == ((void *)0) )
uwinp->res_name = ((void *)0);
else
{
uwinp->res_name =
( (char *) malloc(sizeof(char) * (1 + strlen(res_name))) );
(void)strcpy( uwinp->res_name, res_name );
}
Profile_Prepare( uwinp );
uwinp->prepared = 1;
Manage_Retitle( uwinp );
}
void Manage_Set_Name( uwinp, str )
Userwin *uwinp;
char *str;
{
if ( (uwinp->wmname) != ((void *)0) )
free( uwinp->wmname );
uwinp->wmname = ( (char *) malloc(sizeof(char) * (1 + strlen(str))) );
(void)strcpy( uwinp->wmname, str );
if ( uwinp->identity == ((void *)0) )
{
uwinp->identity = ( (char *) malloc(sizeof(char) * (1 + strlen(str))) );
(void)strcpy( uwinp->identity, str );
}
Manage_Retitle( uwinp );
}
void Manage_Set_Icon_Name( uwinp, str )
Userwin *uwinp;
char *str;
{
if ( (uwinp->iconname) != ((void *)0) )
free( uwinp->iconname );
uwinp->iconname = ( (char *) malloc(sizeof(char) * (1 + strlen(str))) );
(void)strcpy( uwinp->iconname, str );
Manage_Retitle( uwinp );
}
void Manage_Set_Hostname( uwinp, str )
Userwin *uwinp;
char *str;
{
if ( (uwinp->hostname) != ((void *)0) )
free( uwinp->hostname );
uwinp->hostname = ( (char *) malloc(sizeof(char) * (1 + strlen(str))) );
(void)strcpy( uwinp->hostname, str );
Manage_Retitle( uwinp );
}
void Manage_Set_Command( uwinp, str )
Userwin *uwinp;
char *str;
{
if ( uwinp->soft_kill )
{
extern void Manage_Client_Destroy();
Manage_Client_Destroy( uwinp );
return;
}
uwinp->saving_state = 0;
if ( (uwinp->command) != ((void *)0) )
free( uwinp->command );
uwinp->command = ( (char *) malloc(sizeof(char) * (1 + strlen(str))) );
(void)strcpy( uwinp->command, str );
Manage_Retitle( uwinp );
}
static void Manage_Prepare( uwinp )
Userwin *uwinp;
{
if ( (uwinp->res_class == ((void *)0)) && (uwinp->res_name == ((void *)0)) &&
(uwinp->wmname != ((void *)0)) )
Manage_Set_Class( uwinp, uwinp->wmname, ((void *)0) );
}
void Manage_Layout( uwinp )
Userwin *uwinp;
{
if (! uwinp->prepared)
Manage_Prepare( uwinp );
Profile_Layout( uwinp );
uwinp->layout = 1;
}
Userwin *Manage_Locate(pos)
TWPoint pos;
{
return ((Userwin *)(( ((Tilwin_Locate(pos)) == (Tilwinp)((void *)0)) ? (pointer)((void *)0) : (((Tilwin *)(Tilwin_Locate(pos)))->id) )));
}
void Manage_Set_Focus( uwinp )
Userwin *uwinp;
{
focus = uwinp;
if (focus != (Userwin *)((void *)0))
{
focus->focus = 1;
if ( (((Tilwin *)(focus->winp)) -> Am_I_Open) )
Drawwin_Display_Focus( focus );
}
}
void Manage_Unset_Focus()
{
if (focus != (Userwin *)((void *)0))
{
focus->focus = 0;
if ( (((Tilwin *)(focus->winp)) -> Am_I_Open) )
Drawwin_Display_Focus( focus );
focus = (Userwin *)((void *)0);
}
}
void Manage_Switch_Focus( uwinp )
Userwin *uwinp;
{
if ( uwinp != focus )
{
Manage_Unset_Focus();
Manage_Set_Focus( uwinp );
}
}
# 714 "manage.c"
void Manage_Set_Sublistener( uwinp )
Userwin *uwinp;
{
sublistener = uwinp;
if ( ( (sublistener)->options[(int)(NOTE_LISTENER)] ) )
State_Note_Use(sublistener->winp);
if (! ( user_global_options[(int)(ALLOW_LISTENER_TO_CLOSE)] ))
{
sublistener->regular_manual_close =
( ((Tilwin *)(sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] );
( ((Tilwin *)(sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (1);
}
}
void Manage_Unset_Sublistener()
{
if ( sublistener != (Userwin *)((void *)0) )
{
if ( ( listener != (Userwin *)((void *)0) ) &&
( (listener)->options[(int)(NOTE_LISTENER)] ) )
State_Note_Use(listener->winp);
if (! ( user_global_options[(int)(ALLOW_LISTENER_TO_CLOSE)] ))
( ((Tilwin *)(sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (sublistener->regular_manual_close)
;
sublistener = (Userwin *)((void *)0);
}
}
void Manage_Switch_Sublistener( uwinp )
Userwin *uwinp;
{
if ( uwinp != sublistener )
{
Manage_Unset_Sublistener();
if ( uwinp != (Userwin *)((void *)0) )
Manage_Set_Sublistener( uwinp );
}
}
static void Manage_Set_Listener( uwinp )
Userwin *uwinp;
{
listener = uwinp;
if ( listener != (Userwin *)((void *)0) )
{
Manage_Unset_Sublistener();
listener->listener = 1;
State_Act_Modified(listener->winp);
if ( ( (listener)->options[(int)(NOTE_LISTENER)] ) )
State_Note_Use(listener->winp);
if (! ( user_global_options[(int)(ALLOW_LISTENER_TO_CLOSE)] ))
{
listener->regular_manual_close =
( ((Tilwin *)(listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] );
( ((Tilwin *)(listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (1)
;
}
}
}
static void Manage_Unset_Listener()
{
listener->listener = 0;
State_Act_Modified(listener->winp);
if (! ( user_global_options[(int)(ALLOW_LISTENER_TO_CLOSE)] ))
( ((Tilwin *)(listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (listener->regular_manual_close)
;
listener = (Userwin *)((void *)0);
}
static void Manage_Unset( uwinp )
Userwin *uwinp;
{
extern void Manage_Do_Unzoom();
if ( uwinp == focus )
Manage_Unset_Focus();
if ( uwinp == listener )
{
if ( ( (listener)->options[(int)(LISTENER_TIED_TO_ZOOM)] ) &&
listener->zoomed )
Manage_Do_Unzoom( listener, 0 );
Manage_Unset_Listener();
}
else if ( uwinp == sublistener )
Manage_Unset_Sublistener();
}
TWRectangle Manage_Neighborhood_Rectangle( nbhd, center, siz )
float nbhd;
TWPoint center;
Size siz;
{
TWRectangle rect;
int horiz, vert;
int dhoriz, dvert;
int factor;
factor = ( user_global_values[(int)(NEIGHBORHOOD_SHRINK_FACTOR)] );
dhoriz = 100 * ( desktop_size ).width;
dvert = 100 * ( desktop_size ).height;
horiz = nbhd * siz.width * (dhoriz - (factor*siz.width)) / dhoriz;
horiz += (siz.width/2);
rect.left_x = center.x - horiz;
rect.right_x = center.x + horiz;
vert = nbhd * siz.height * (dvert - (factor*siz.height)) / dvert;
vert += (siz.height/2);
rect.top_y = center.y - vert;
rect.bottom_y = center.y + vert;
return rect;
}
static bool Manage_Neighborhood_Icon_Open( uwinp, center )
Userwin *uwinp;
TWPoint center;
{
TWRectangle rect;
Size siz;
bool result;
extern void Manage_Start_Trying();
extern bool Manage_Can_Try_Listener_Unzoom();
extern void Manage_Finish_Trying();
siz = (((Tilwin *)(uwinp->iconp)) -> size);
Manage_Start_Trying();
{ bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && 0)); { result = Tilwin_Open( uwinp->iconp, center, siz ); if ( (! result) && Manage_Can_Try_Listener_Unzoom() ) result = Tilwin_Open( uwinp->iconp, center, siz ); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }
Manage_Finish_Trying( result );
if ( result ) return 1;
rect = Manage_Neighborhood_Rectangle( 0.75, center, siz );
return Tilwin_Open_Nearest_In_Area( uwinp->iconp, rect, center, siz );
}
bool Manage_Icon_Open( uwinp )
Userwin *uwinp;
{
TWRectangle desk,iconarea, rect, area, bigger_area;
TWPoint center;
Size siz;
bool first_none = 0;
bool second_none = 0;
bool icon_positioned;
bool result;
if ( ( uwinp->client_state == 4 ) ||
( uwinp->client_state == 5 ) ||
( ( (uwinp)->group_state != -3 ) &&
( uwinp->group != uwinp ) ) ||
( ! ( (uwinp)->options[(int)(SHOW_ICON)] ) ) )
return 0;
if ( (uwinp->icon_positioned) &&
( (uwinp)->options[(int)(REQUIRE_PREVIOUS_ICON_POSITION)] )
)
{
if ( Manage_Neighborhood_Icon_Open( uwinp,
(((Tilwin *)(uwinp->iconp)) -> position) ) )
return 1;
}
icon_positioned = (uwinp->icon_positioned) &&
( ( (uwinp)->options[(int)(PREFER_PREVIOUS_ICON_POSITION)] )
||
( (uwinp)->options[(int)(REQUIRE_PREVIOUS_ICON_POSITION)] )
);
siz = (((Tilwin *)(uwinp->iconp)) -> size);
desk = ( desktop_rect );
if ( ( user_global_options[(int)(USE_ICON_AREA)] ) )
{
iconarea.left_x = ( user_global_values[(int)(ICON_AREA_LEFT)] );
iconarea.right_x = ( user_global_values[(int)(ICON_AREA_RIGHT)] );
iconarea.top_y = ( user_global_values[(int)(ICON_AREA_TOP)] );
iconarea.bottom_y = ( user_global_values[(int)(ICON_AREA_BOTTOM)] );
}
else
iconarea = desk;
bigger_area = area = rect = iconarea;
switch ( (Icon_Position)( user_global_values[(int)(SECONDARY_ICON_PLACEMENT)] )
)
{
case Icon_Top:
rect.bottom_y = iconarea.top_y + siz.height - 1;
break;
case Icon_Bottom:
rect.top_y = iconarea.bottom_y - siz.height + 1;
break;
case Icon_Left:
rect.right_x = iconarea.left_x + siz.width - 1;
break;
case Icon_Right:
rect.left_x = iconarea.right_x - siz.width + 1;
break;
case Icon_None:
second_none = 1;
case Icon_Middle:
default:
break;
}
switch ( (Icon_Position)( user_global_values[(int)(ICON_PLACEMENT)] ) )
{
case Icon_None:
first_none = 1;
default:
break;
case Icon_Top:
rect.top_y = iconarea.top_y;
rect.bottom_y = iconarea.top_y + siz.height - 1;
area.bottom_y = iconarea.top_y + siz.height - 1;
bigger_area.bottom_y = iconarea.top_y + (2* siz.height) - 1;
break;
case Icon_Bottom:
rect.bottom_y = iconarea.bottom_y;
rect.top_y = iconarea.bottom_y - siz.height + 1;
area.top_y = iconarea.bottom_y - siz.height + 1;
bigger_area.top_y = iconarea.bottom_y - (2*siz.height) + 1;
break;
case Icon_Left:
rect.left_x = iconarea.left_x;
rect.right_x = iconarea.left_x + siz.width - 1;
area.right_x = iconarea.left_x + siz.width - 1;
bigger_area.right_x = iconarea.left_x + (2*siz.width) - 1;
break;
case Icon_Right:
rect.right_x = iconarea.right_x;
rect.left_x = iconarea.right_x - siz.width + 1;
area.left_x = iconarea.right_x - siz.width + 1;
bigger_area.left_x = iconarea.right_x - (2*siz.width) + 1;
break;
}
{ ((center)).x = 1 + (((rect)).left_x + ((rect)).right_x) / 2; ((center)).y = 1 + (((rect)).top_y + ((rect)).bottom_y) / 2; };
if ( icon_positioned )
{
center = (((Tilwin *)(uwinp->iconp)) -> position);
if ( first_none )
result = Manage_Neighborhood_Icon_Open( uwinp, center );
else
result = Tilwin_Open_Nearest_In_Area( uwinp->iconp,
area, center, siz );
if (! result)
result = Tilwin_Open_Nearest_In_Area( uwinp->iconp,
iconarea, center, siz );
if (! result)
result = Tilwin_Open_Nearest_In_Area( uwinp->iconp,
desk, center, siz );
}
else if ( first_none )
{
result = Tilwin_Open_Best_In_Area( uwinp->iconp,
iconarea, siz );
if (! result)
result = Tilwin_Open_Best_In_Area( uwinp->iconp,
desk, siz );
}
else if (second_none)
{
result = Tilwin_Open_Best_In_Area( uwinp->iconp,
area, siz );
if (! result)
result = Tilwin_Open_Best_In_Area( uwinp->iconp,
bigger_area, siz );
if (! result)
result = Tilwin_Open_Nearest_In_Area( uwinp->iconp,
iconarea, center, siz );
if (! result)
result = Tilwin_Open_Nearest_In_Area( uwinp->iconp,
desk, center, siz );
}
else
{
result = Tilwin_Open_Nearest_In_Area( uwinp->iconp,
area, center, siz );
if (! result)
result = Tilwin_Open_Nearest_In_Area( uwinp->iconp,
bigger_area, center, siz );
if (! result)
result = Tilwin_Open_Nearest_In_Area( uwinp->iconp,
iconarea, center, siz );
if (! result)
result = Tilwin_Open_Nearest_In_Area( uwinp->iconp,
desk, center, siz );
}
if ( result && !uwinp->icon_positioned )
{
uwinp->icon_positioned = 1;
(((Tilwin *)(uwinp->iconp)) -> position = ((((Tilwin *)(uwinp->iconp))->center)))
;
}
return result;
}
void Manage_Update_Icons()
{
Tilwinp winp;
Userwin *uwinp;
bool keep_updating;
if ( ( user_global_options[(int)(USE_ICONS)] ) )
{
Tilwin_Gen_Just_Opened_Windows();
while ( (winp = Tilwin_Next_Window()) != (Tilwinp)((void *)0) )
{
uwinp = ((Userwin *)(( ((winp) == (Tilwinp)((void *)0)) ? (pointer)((void *)0) : (((Tilwin *)(winp))->id) )));
if ( ( uwinp->winp == winp ) && (((Tilwin *)(uwinp->iconp)) -> Am_I_Open) )
Tilwin_Close( uwinp->iconp );
}
Tilwin_Gen_Just_Modified_Windows();
while ( (winp = Tilwin_Next_Window()) != (Tilwinp)((void *)0) )
{
uwinp = ((Userwin *)(( ((winp) == (Tilwinp)((void *)0)) ? (pointer)((void *)0) : (((Tilwin *)(winp))->id) )));
if ( ( uwinp->winp == winp ) && (((Tilwin *)(uwinp->iconp)) -> Am_I_Open) )
Tilwin_Close( uwinp->iconp );
}
keep_updating = 1;
while ( keep_updating )
{
keep_updating = 0;
Tilwin_Gen_Closed_Windows();
while ( (winp = Tilwin_Next_Window()) != (Tilwinp)((void *)0) )
{
uwinp = ((Userwin *)(( ((winp) == (Tilwinp)((void *)0)) ? (pointer)((void *)0) : (((Tilwin *)(winp))->id) )));
if ( ( uwinp->iconp == winp )
&& ( ! (((Tilwin *)(uwinp->winp)) -> Am_I_Open) )
&& uwinp->ever_opened )
keep_updating |= Manage_Icon_Open( uwinp );
}
}
}
}
static bool drawing = 0;
static bool redrawing = 0;
static void Manage_Update_Desktop()
{
Tilwinp winp;
Userwin *uwinp;
Drawwin_Start();
Tilwin_Gen_Just_Closed_Windows();
while ( (winp = Tilwin_Next_Window()) != (Tilwinp)((void *)0) )
{
uwinp = ((Userwin *)(( ((winp) == (Tilwinp)((void *)0)) ? (pointer)((void *)0) : (((Tilwin *)(winp))->id) )));
if ( uwinp->current_type == body )
{
Manage_Unset( uwinp );
Drawwin_Close( uwinp,
(! Tilwin_Is_Covered(
(((Tilwin *)(winp)) -> prev_rect) ) ) );
uwinp->output_sent = 0;
if ( ( uwinp->client_state != 5 ) &&
( uwinp->client_state != -2 ) )
Closed_Add( uwinp );
}
else
{
DrawIcon_Close( uwinp );
}
if (! ( (((Tilwin *)(uwinp->winp)) -> Am_I_Open) ||
(((Tilwin *)(uwinp->iconp)) -> Am_I_Open) ) )
{
if ( uwinp->client_state == 5 )
uwinp->wm_state = 5;
else
uwinp->wm_state = 4;
if ( uwinp->client_state != -2 )
Client_Set_State( uwinp );
}
}
Tilwin_Gen_Just_Modified_Windows();
while ( (winp = Tilwin_Next_Window()) != (Tilwinp)((void *)0) )
{
uwinp = ((Userwin *)(( ((winp) == (Tilwinp)((void *)0)) ? (pointer)((void *)0) : (((Tilwin *)(winp))->id) )));
if ( ( ! uwinp->positioned ) &&
( uwinp->current_type == body ) )
(((Tilwin *)(winp)) -> position = ((((Tilwin *)(winp))->center)))
;
}
if ( drawing )
{
Tilwin_Gen_Just_Modified_Windows();
while ( (winp = Tilwin_Next_Window()) != (Tilwinp)((void *)0) )
{
uwinp = ((Userwin *)(( ((winp) == (Tilwinp)((void *)0)) ? (pointer)((void *)0) : (((Tilwin *)(winp))->id) )));
if ( uwinp->current_type == body )
Drawwin_Draw( uwinp );
else
DrawIcon_Draw( uwinp );
}
}
else
{
Tilwin_Gen_Just_Modified_Windows();
while ( (winp = Tilwin_Next_Window()) != (Tilwinp)((void *)0) )
if ( (! ( ( (((Tilwin *)(winp))->rect).left_x == (((Tilwin *)(winp))->prev_rect).left_x ) && ( (((Tilwin *)(winp))->rect).right_x == (((Tilwin *)(winp))->prev_rect).right_x ) && ( (((Tilwin *)(winp))->rect).top_y == (((Tilwin *)(winp))->prev_rect).top_y ) && ( (((Tilwin *)(winp))->rect).bottom_y == (((Tilwin *)(winp))->prev_rect).bottom_y ) ) ) || redrawing )
{
uwinp = ((Userwin *)(( ((winp) == (Tilwinp)((void *)0)) ? (pointer)((void *)0) : (((Tilwin *)(winp))->id) )));
if ( uwinp->current_type != body )
DrawIcon_Move_Close( uwinp );
else if ( uwinp == switch_listener )
Drawwin_Listener_Move_Close( uwinp,
(! Tilwin_Is_Covered(
(((Tilwin *)(winp)) -> prev_rect) ) ) );
else
Drawwin_Move_Close( uwinp,
(! Tilwin_Is_Covered(
(((Tilwin *)(winp)) -> prev_rect) ) ) );
}
Tilwin_Gen_Just_Modified_Windows();
while ( (winp = Tilwin_Next_Window()) != (Tilwinp)((void *)0) )
{
uwinp = ((Userwin *)(( ((winp) == (Tilwinp)((void *)0)) ? (pointer)((void *)0) : (((Tilwin *)(winp))->id) )));
if ( (! ( ( (((Tilwin *)(winp))->rect).left_x == (((Tilwin *)(winp))->prev_rect).left_x ) && ( (((Tilwin *)(winp))->rect).right_x == (((Tilwin *)(winp))->prev_rect).right_x ) && ( (((Tilwin *)(winp))->rect).top_y == (((Tilwin *)(winp))->prev_rect).top_y ) && ( (((Tilwin *)(winp))->rect).bottom_y == (((Tilwin *)(winp))->prev_rect).bottom_y ) ) ) || redrawing )
{
if ( uwinp->current_type != body )
{
DrawIcon_Move_Open( uwinp );
if ( redrawing )
DrawIcon_Redraw( uwinp );
}
else if ( uwinp == switch_listener )
Drawwin_Listener_Move_Open( uwinp );
else
{
Drawwin_Move_Open( uwinp );
if ( redrawing )
Drawwin_Retitle( uwinp );
}
}
}
if ( listener != prev_listener )
{
if ( ( listener != (Userwin *)((void *)0) ) &&
State_Was_Just_Modified(listener->winp) &&
(! (! ( ( (((Tilwin *)(listener->winp))->rect).left_x == (((Tilwin *)(listener->winp))->prev_rect).left_x ) && ( (((Tilwin *)(listener->winp))->rect).right_x == (((Tilwin *)(listener->winp))->prev_rect).right_x ) && ( (((Tilwin *)(listener->winp))->rect).top_y == (((Tilwin *)(listener->winp))->prev_rect).top_y ) && ( (((Tilwin *)(listener->winp))->rect).bottom_y == (((Tilwin *)(listener->winp))->prev_rect).bottom_y ) ) )) &&
( listener->current_type == body ) )
Drawwin_Display_Wrapping( listener );
if ( ( prev_listener != (Userwin *)((void *)0) ) &&
State_Was_Just_Modified(prev_listener->winp) &&
(! (! ( ( (((Tilwin *)(prev_listener->winp))->rect).left_x == (((Tilwin *)(prev_listener->winp))->prev_rect).left_x ) && ( (((Tilwin *)(prev_listener->winp))->rect).right_x == (((Tilwin *)(prev_listener->winp))->prev_rect).right_x ) && ( (((Tilwin *)(prev_listener->winp))->rect).top_y == (((Tilwin *)(prev_listener->winp))->prev_rect).top_y ) && ( (((Tilwin *)(prev_listener->winp))->rect).bottom_y == (((Tilwin *)(prev_listener->winp))->prev_rect).bottom_y ) ) )) &&
( prev_listener->current_type == body ) )
Drawwin_Display_Wrapping( prev_listener );
}
else
{
if ( ( touch != (Userwin *)((void *)0) ) &&
State_Was_Just_Modified(touch->winp) &&
(! (! ( ( (((Tilwin *)(touch->winp))->rect).left_x == (((Tilwin *)(touch->winp))->prev_rect).left_x ) && ( (((Tilwin *)(touch->winp))->rect).right_x == (((Tilwin *)(touch->winp))->prev_rect).right_x ) && ( (((Tilwin *)(touch->winp))->rect).top_y == (((Tilwin *)(touch->winp))->prev_rect).top_y ) && ( (((Tilwin *)(touch->winp))->rect).bottom_y == (((Tilwin *)(touch->winp))->prev_rect).bottom_y ) ) )) &&
( touch->current_type == body ) )
Drawwin_Display_Wrapping( touch );
}
}
Tilwin_Gen_Just_Opened_Windows();
while ( (winp = Tilwin_Next_Window()) != (Tilwinp)((void *)0) )
{
uwinp = ((Userwin *)(( ((winp) == (Tilwinp)((void *)0)) ? (pointer)((void *)0) : (((Tilwin *)(winp))->id) )));
if ( winp == uwinp->winp )
{
uwinp->current_type = body;
uwinp->sized = 1;
if ( ! uwinp->positioned )
(((Tilwin *)(winp)) -> position = ((((Tilwin *)(winp))->center)))
;
Drawwin_Open( uwinp );
Closed_Remove( uwinp );
uwinp->wm_state = 1;
}
else
{
if ( uwinp != rtl_uwinp )
uwinp->current_type = icon;
DrawIcon_Open( uwinp );
if ( ( (uwinp)->options[(int)(CLIENT_DRAWS_ICON)] ) )
uwinp->wm_state = 2;
else
uwinp->wm_state = 3;
}
if ( uwinp->current_type != rtl )
Client_Set_State( uwinp );
}
if (! drawing )
{
Tilwin_Gen_Just_Closed_Windows();
while ( (winp = Tilwin_Next_Window()) != (Tilwinp)((void *)0) )
{
uwinp = ((Userwin *)(( ((winp) == (Tilwinp)((void *)0)) ? (pointer)((void *)0) : (((Tilwin *)(winp))->id) )));
if ( uwinp->winp == winp )
Drawwin_Unmap( uwinp );
}
}
Drawwin_Finish();
switch_listener = (Userwin *)((void *)0);
prev_touch = touch;
touch = (Userwin *)((void *)0);
}
void Manage_Save_State( uwinp )
Userwin *uwinp;
{
uwinp->undo_stamp = State_Get_Timestamp();
uwinp->prev_positioned = uwinp->positioned;
uwinp->prev_sized = uwinp->sized;
uwinp->prev_zoomed = uwinp->zoomed;
uwinp->prev_group_state = uwinp->group_state;
uwinp->prev_desire = (((Tilwin *)(uwinp->winp)) -> desired_size);
uwinp->prev_min = (((Tilwin *)(uwinp->winp)) -> min_size);
uwinp->prev_max = (((Tilwin *)(uwinp->winp)) -> max_size);
uwinp->prev_rezoom_rect = uwinp->rezoom_rect;
}
static void Manage_Exchange_State( uwinp )
Userwin *uwinp;
{
Size temp_size;
if ( last_stamp != uwinp->undo_stamp )
return;
{ bool temp; temp = uwinp->prev_positioned; uwinp->prev_positioned = uwinp->positioned; uwinp->positioned = temp; }
{ bool temp; temp = uwinp->prev_sized; uwinp->prev_sized = uwinp->sized; uwinp->sized = temp; }
{ bool temp; temp = uwinp->prev_zoomed; uwinp->prev_zoomed = uwinp->zoomed; uwinp->zoomed = temp; }
{ int temp; temp = uwinp->prev_group_state; uwinp->prev_group_state = uwinp->group_state; uwinp->group_state = temp; }
{ TWRectangle temp; temp = uwinp->prev_rezoom_rect; uwinp->prev_rezoom_rect = uwinp->rezoom_rect; uwinp->rezoom_rect = temp; }
temp_size = (((Tilwin *)(uwinp->winp)) -> desired_size);
{ (((Tilwin *)(uwinp->winp)) -> desired_size).height = ( (uwinp->prev_desire).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> desired_size).width = ( (uwinp->prev_desire).width ) & (~1); };
uwinp->prev_desire = temp_size;
temp_size = (((Tilwin *)(uwinp->winp)) -> min_size);
{ (((Tilwin *)(uwinp->winp)) -> min_size).height = (1+ (uwinp->prev_min).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> min_size).width = (1+ (uwinp->prev_min).width ) & (~1); };
uwinp->prev_min = temp_size;
temp_size = (((Tilwin *)(uwinp->winp)) -> max_size);
{ (((Tilwin *)(uwinp->winp)) -> max_size).height = (1+ (uwinp->prev_max).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> max_size).width = (1+ (uwinp->prev_max).width ) & (~1); };
uwinp->prev_max = temp_size;
}
static void Manage_Cant_Undo()
{
prev_listener = listener;
State_Start_Transaction();
State_Commit_Transaction();
last_stamp = State_Get_Timestamp();
}
void Manage_Start()
{
if ( State_Transaction_Depth() == 0 )
prev_listener = listener;
State_Start_Transaction();
}
static void Manage_Restart()
{
Tilwin_Abort_Transaction();
State_Start_Transaction();
}
extern bool Manage_Repopulate_Since();
extern bool Manage_Aggressive_Repopulation();
static bool Manage_Unzoom_Repopulation()
{
TimeStamp repop_since;
Tilwinp winp;
Userwin *uwinp;
bool result = 0;
repop_since = last_stamp;
Tilwin_Gen_Just_Closed_Windows();
while ( (winp = Tilwin_Next_Window()) != (Tilwinp)((void *)0) )
{
uwinp = ((Userwin *)(( ((winp) == (Tilwinp)((void *)0)) ? (pointer)((void *)0) : (((Tilwin *)(winp))->id) )));
if ( ( uwinp->current_type == body ) &&
( ( uwinp->zoomed ) ||
( ( uwinp->undo_stamp == last_stamp ) &&
( uwinp->prev_zoomed ) ) ) )
{
if (! ( user_global_options[(int)(ONLY_REPOP_SINCE_ON_AUTO_UNZOOM)] )
)
repop_since = (TimeStamp)0;
else if ( uwinp->zoom_stamp < repop_since )
repop_since = uwinp->zoom_stamp;
}
}
Tilwin_Gen_Just_Modified_Windows();
while ( (winp = Tilwin_Next_Window()) != (Tilwinp)((void *)0) )
{
uwinp = ((Userwin *)(( ((winp) == (Tilwinp)((void *)0)) ? (pointer)((void *)0) : (((Tilwin *)(winp))->id) )));
if ( ( uwinp->current_type == body ) &&
(! uwinp->zoomed ) &&
( uwinp->undo_stamp == last_stamp ) &&
( uwinp->prev_zoomed ) )
{
if (! ( user_global_options[(int)(ONLY_REPOP_SINCE_ON_AUTO_UNZOOM)] )
)
repop_since = (TimeStamp)0;
else if ( uwinp->zoom_stamp < repop_since )
repop_since = uwinp->zoom_stamp;
}
}
if ( repop_since < last_stamp )
{
{ bool temp_val; temp_val = ( user_global_options[(int)(REQUIRE_PREV_POS_ON_AUTO_REPOP)] ); user_global_options[(int)(REQUIRE_PREV_POS_ON_AUTO_REPOP)] = ((temp_val || 1)); { if ( Manage_Repopulate_Since( repop_since, 0, 0, 1 ) ) result = 1; }; user_global_options[(int)(REQUIRE_PREV_POS_ON_AUTO_REPOP)] = (temp_val); }
if ( Manage_Repopulate_Since(
repop_since, 0, 0, 1 ) )
result = 1;
}
return result;
}
static bool Manage_Finish_Repopulation()
{
bool result;
result = 0;
if ( ( user_global_options[(int)(AUTO_REPOPULATE_LAST)] ) )
if ( Manage_Repopulate_Since(
last_stamp, 0, 0, 1 ) )
result = 1;
if ( ( user_global_options[(int)(ALLOW_AGGRESSIVE_REPOPULATION)] ) )
if ( Manage_Aggressive_Repopulation() )
result = 1;
if ( ( user_global_options[(int)(AUTO_REPOPULATE_ON_AUTO_UNZOOM)] )
)
{ bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (0); { if ( Manage_Unzoom_Repopulation() ) result = 1; }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }
return result;
}
extern void Manage_Auto_Prorate();
extern void Manage_Ordered_Desire();
void Manage_Finish( result )
bool result;
{
extern void Manage_Ordered_Desire();
bool allow_repop_shrink, can_repop, can_size;
if ( State_Transaction_Depth() > 1 )
State_Commit_Transaction();
else if (! result)
{
Tilwin_Abort_Transaction();
Draw_Flash();
}
else
{
last_stamp = State_Get_Timestamp();
allow_repop_shrink =
( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ) &&
( globals[(int)(ALLOW_AUTO_SHRINK_MORE_RECENT)] ) &&
( user_global_options[(int)(ALLOW_AUTO_SHRINK_ON_AUTO_REPOP)] )
;
can_repop = ( unmatched_layouts <= 0 ) ||
( user_global_options[(int)(ENABLE_AUTO_REPOP_DURING_LAYOUT)] );
can_size = ( unmatched_layouts <= 0 ) ||
( user_global_options[(int)(ENABLE_AUTO_SIZING_DURING_LAYOUT)] );
Manage_Update_Icons();
if ( allow_repop_shrink && can_size &&
( user_global_options[(int)(AUTO_DESIRED_ENLARGE)] ) )
Manage_Ordered_Desire();
if ( can_repop && Manage_Finish_Repopulation() )
Manage_Update_Icons();
if ( can_size &&
( user_global_options[(int)(AUTO_DESIRED_ENLARGE)] ) )
Manage_Ordered_Desire();
if ( can_size &&
( user_global_options[(int)(AUTO_PRORATE)] ) )
while ( 1 )
{
Manage_Auto_Prorate();
if ( can_size &&
( user_global_options[(int)(TRY_REPOP_AGAIN_AFT_AUTO_PRORATE)] )
&&
Manage_Finish_Repopulation() )
Manage_Update_Icons();
else
break;
}
Manage_Update_Desktop();
State_Commit_Transaction();
}
}
bool Manage_Finish_Fixed_Completely( uwinp, result )
Userwin *uwinp;
bool result;
{
if ( result && ( uwinp != (Userwin *)((void *)0) ) )
window_excursion
else
Manage_Finish( result );
return result;
}
bool Manage_Finish_Fixed_Size( uwinp, result )
Userwin *uwinp;
bool result;
{
if ( result && ( uwinp != (Userwin *)((void *)0) ) )
window_excursion
else
Manage_Finish( result );
return result;
}
bool Manage_Finish_Locked( uwinp, result )
Userwin *uwinp;
bool result;
{
if ( result && ( uwinp != (Userwin *)((void *)0) ) )
window_excursion
else
Manage_Finish( result );
return result;
}
bool Manage_Finish_Minned( uwinp, result )
Userwin *uwinp;
bool result;
{
if ( result && ( uwinp != (Userwin *)((void *)0) ) )
{ Size temp_min; temp_min = (((Tilwin *)(uwinp->winp)) -> min_size); { (((Tilwin *)(uwinp->winp)) -> min_size).height = (1+ ((((Tilwin *)(uwinp->winp)) -> size)).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> min_size).width = (1+ ((((Tilwin *)(uwinp->winp)) -> size)).width ) & (~1); };
window_excursion
# 1576 "manage.c"
; { (((Tilwin *)(uwinp->winp)) -> min_size).height = (1+ (temp_min).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> min_size).width = (1+ (temp_min).width ) & (~1); }; }
else
Manage_Finish( result );
return result;
}
# 1595 "manage.c"
static void Manage_Undo_Start()
{
Tilwinp winp;
Userwin *uwinp;
Tilwin_Undo();
Tilwin_Gen_Just_Closed_Windows();
while ( (winp = Tilwin_Next_Window()) != (Tilwinp)((void *)0) )
{
uwinp = ((Userwin *)(( ((winp) == (Tilwinp)((void *)0)) ? (pointer)((void *)0) : (((Tilwin *)(winp))->id) )));
if ( uwinp->winp == winp )
Manage_Exchange_State( uwinp );
}
Tilwin_Gen_Just_Modified_Windows();
while ( (winp = Tilwin_Next_Window()) != (Tilwinp)((void *)0) )
{
uwinp = ((Userwin *)(( ((winp) == (Tilwinp)((void *)0)) ? (pointer)((void *)0) : (((Tilwin *)(winp))->id) )));
if ( uwinp->winp == winp )
Manage_Exchange_State( uwinp );
}
Tilwin_Gen_Just_Opened_Windows();
while ( (winp = Tilwin_Next_Window()) != (Tilwinp)((void *)0) )
{
uwinp = ((Userwin *)(( ((winp) == (Tilwinp)((void *)0)) ? (pointer)((void *)0) : (((Tilwin *)(winp))->id) )));
if ( uwinp->winp == winp )
Manage_Exchange_State( uwinp );
}
State_Continue_Transaction();
if ( listener != prev_listener )
{
if ( listener != (Userwin *)((void *)0) )
{
listener->listener = 0;
State_Act_Modified(listener->winp);
}
{ Userwin *temp; temp = listener; listener = prev_listener; prev_listener = temp; }
touch = prev_touch;
if ( listener != (Userwin *)((void *)0) )
{
listener->listener = 1;
State_Act_Modified(listener->winp);
}
}
}
void Manage_Undo()
{
Tilwinp winp;
Userwin *uwinp;
Manage_Undo_Start();
if ( ( user_global_options[(int)(USE_ICONS)] ) )
{
Tilwin_Gen_Just_Closed_Windows();
while ( (winp = Tilwin_Next_Window()) != (Tilwinp)((void *)0) )
{
uwinp = ((Userwin *)(( ((winp) == (Tilwinp)((void *)0)) ? (pointer)((void *)0) : (((Tilwin *)(winp))->id) )));
if (! ( (((Tilwin *)(uwinp->winp)) -> Am_I_Open) ||
(((Tilwin *)(uwinp->iconp)) -> Am_I_Open) ) )
Manage_Icon_Open( uwinp );
}
}
{ bool temp_val; temp_val = ( user_global_options[(int)(AUTO_PRORATE)] ); user_global_options[(int)(AUTO_PRORATE)] = (0); { bool temp_val; temp_val = ( user_global_options[(int)(AUTO_REPOPULATE_LAST)] ); user_global_options[(int)(AUTO_REPOPULATE_LAST)] = (0); { bool temp_val; temp_val = ( user_global_options[(int)(ALLOW_AGGRESSIVE_REPOPULATION)] ); user_global_options[(int)(ALLOW_AGGRESSIVE_REPOPULATION)] = (0); Manage_Finish( 1 ); user_global_options[(int)(ALLOW_AGGRESSIVE_REPOPULATION)] = (temp_val); }; user_global_options[(int)(AUTO_REPOPULATE_LAST)] = (temp_val); }; user_global_options[(int)(AUTO_PRORATE)] = (temp_val); }
}
void Manage_Redraw( uwinp )
Userwin *uwinp;
{
if ( uwinp->current_type == body )
Drawwin_Redraw(uwinp);
else
DrawIcon_Redraw(uwinp);
}
void Manage_Redraw_All()
{
Tilwinp winp;
if ( Drawwin_Redraw_All( ( desktop_rect ) ) )
return;
Tilwin_Gen_Open_Windows();
while ( (winp = Tilwin_Next_Window()) != (Tilwinp)((void *)0) )
Manage_Redraw( ((Userwin *)(( ((winp) == (Tilwinp)((void *)0)) ? (pointer)((void *)0) : (((Tilwin *)(winp))->id) ))) );
}
void Manage_Finish_Layout()
{
Manage_Start();
( unmatched_layouts = 0 );
Manage_Finish( 1 );
}
void Manage_Initial_Icon_Open( uwinp )
Userwin *uwinp;
{
Manage_Start();
State_Note_Use(uwinp->winp);
if ( uwinp->client_state != 5 )
{
Closed_Add( uwinp );
if ( ( user_global_options[(int)(USE_ICONS)] ) )
{
if (! uwinp->layout_found )
Manage_Icon_Open( uwinp );
else
{ bool temp_val; temp_val = ( globals[(int)(ENABLE_GRAVITY)] ); globals[(int)(ENABLE_GRAVITY)] = (0); { bool temp_val; temp_val = ( (uwinp)->options[(int)(REQUIRE_PREVIOUS_ICON_POSITION)] ); ((uwinp)->options[(int)(REQUIRE_PREVIOUS_ICON_POSITION)]) = (1); Manage_Icon_Open( uwinp ); ((uwinp)->options[(int)(REQUIRE_PREVIOUS_ICON_POSITION)]) = (temp_val); }; globals[(int)(ENABLE_GRAVITY)] = (temp_val); }
}
}
Manage_Finish( 1 );
}
void Manage_Prepare_Open( uwinp )
Userwin *uwinp;
{
if (! uwinp->layout)
Manage_Layout( uwinp );
(((Tilwin *)(uwinp->winp)) -> position = ((((Tilwin *)(uwinp->winp))->center)))
;
(((Tilwin *)(uwinp->iconp)) -> position = ((((Tilwin *)(uwinp->iconp))->center)))
;
Drawwin_Insert( uwinp );
}
void Manage_Note_Output( uwinp )
Userwin *uwinp;
{
if (! uwinp->layout)
Manage_Layout( uwinp );
if ( (((Tilwin *)(uwinp->winp)) -> Am_I_Open) )
{
if ( ( (uwinp)->options[(int)(NOTE_OPEN_OUTPUT)] ) )
State_Note_Use(uwinp->winp);
}
else if ( ( (uwinp)->options[(int)(NOTE_CLOSED_OUTPUT)] ) )
State_Note_Use(uwinp->winp);
if (! uwinp->output_sent)
{
uwinp->output_sent = 1;
if ( (((Tilwin *)(uwinp->iconp)) -> Am_I_Open) )
DrawIcon_Note_Output( uwinp );
}
}
void Manage_Note_Input( uwinp )
Userwin *uwinp;
{
if ( (((Tilwin *)(uwinp->winp)) -> Am_I_Open) )
{
if ( ( (uwinp)->options[(int)(NOTE_OPEN_INPUT)] ) )
State_Note_Use(uwinp->winp);
else if ( ( uwinp == listener ) &&
( (uwinp)->options[(int)(NOTE_LISTENER_INPUT)] ) )
State_Note_Use(uwinp->winp);
}
else if ( ( (uwinp)->options[(int)(NOTE_CLOSED_INPUT)] ) )
State_Note_Use(uwinp->winp);
}
void Manage_Init_Rtl()
{
Userwin *uwinp;
Manage_Start();
uwinp = Manage_Init_Window();
rtl_uwinp = uwinp;
uwinp->winnum = 0;
uwinp->connection = -1;
uwinp->client_state = -2;
uwinp->current_type = rtl;
uwinp->layout = 1;
uwinp->layout_found = 1;
((uwinp)->options[(int)(SHOW_ICON)]) = (( user_global_options[(int)(USE_RTL_ICON)] ))
;
( ((Tilwin *)(uwinp->iconp)) -> options[ (int) FIXED_SIZE ] ) = (1);
((uwinp)->options[(int)(SAVE_IN_LAYOUT)]) = (0);
((uwinp)->options[(int)(CONSIDER_FOR_REPOPULATION)]) = (0);
DrawIcon_Init_Rtl( uwinp );
if ( ( user_global_options[(int)(USE_ICONS)] ) )
Manage_Icon_Open( uwinp );
Manage_Finish( 1 );
}
void Manage_Start_Repaint()
{
State_Start_Transaction();
}
void Manage_Repaint_Rect( rect )
TWRectangle rect;
{
Tilwin_Modify_Covered_Windows( rect );
Drawwin_Draw_Background( rect );
}
void Manage_Finish_Repaint()
{
Tilwinp winp;
State_Commit_Transaction();
Tilwin_Gen_Just_Modified_Windows();
while ( (winp = Tilwin_Next_Window()) != (Tilwinp)((void *)0) )
{
Manage_Redraw( ((Userwin *)(( ((winp) == (Tilwinp)((void *)0)) ? (pointer)((void *)0) : (((Tilwin *)(winp))->id) ))) );
}
Manage_Cant_Undo();
}
void Manage_Set_Desktop_Size( desksiz )
Size desksiz;
{
Tilwin_Set_Desktop_Size( desksiz );
Drawwin_Draw_Background( ( desktop_rect ) );
}
static void Manage_Reorganize_Desktop( desksiz )
Size desksiz;
{
Tilwinp winp, head, middle, tail;
Userwin *uwinp;
TWPoint center;
TWPoint pos;
TWRectangle rect;
Size siz;
Size old_desksiz;
TWRectangle old_deskrect, deskrect;
head = middle = tail = (Tilwinp)((void *)0);
Tilwin_Gen_Open_Windows();
while ( (winp = Tilwin_Next_Window()) != (Tilwinp)((void *)0) )
{
uwinp = ((Userwin *)(( ((winp) == (Tilwinp)((void *)0)) ? (pointer)((void *)0) : (((Tilwin *)(winp))->id) )));
if ( uwinp->current_type != body )
{
if ( ( user_global_options[(int)(USE_ICONS)] ) &&
( uwinp != rtl_uwinp ) )
{
if ( tail == (Tilwinp)((void *)0) ) tail = winp;
if ( middle == (Tilwinp)((void *)0) ) middle = winp;
(((Tilwin *)(winp))->data) = (pointer)(head);
head = winp;
}
}
else if ( ( ((Tilwin *)(winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) )
{
if ( middle == (Tilwinp)((void *)0) )
{
if ( tail == (Tilwinp)((void *)0) ) tail = winp;
(((Tilwin *)(winp))->data) = (pointer)(head);
head = winp;
middle = winp;
}
else if ( middle == tail )
{
(((Tilwin *)(tail))->data) = (pointer)(winp);
(((Tilwin *)(winp))->data) = (pointer)((Tilwinp)((void *)0));
tail = winp;
middle = winp;
}
else
{
(((Tilwin *)(winp))->data) = (pointer)((((Tilwin *)(middle))->data));
(((Tilwin *)(middle))->data) = (pointer)(winp);
middle = winp;
}
}
else
{
if ( head == (Tilwinp)((void *)0) )
head = winp;
else
(((Tilwin *)(tail))->data) = (pointer)(winp);
(((Tilwin *)(winp))->data) = (pointer)((Tilwinp)((void *)0));
tail = winp;
}
Tilwin_Auto_Close( winp );
}
old_desksiz = ( desktop_size );
old_deskrect = ( desktop_rect );
Tilwin_Set_Desktop_Size( desksiz );
desksiz = ( desktop_size );
deskrect = ( desktop_rect );
Tilwin_Gen_Closed_Windows();
while ( (winp = Tilwin_Next_Window()) != (Tilwinp)((void *)0) )
{
uwinp = ((Userwin *)(( ((winp) == (Tilwinp)((void *)0)) ? (pointer)((void *)0) : (((Tilwin *)(winp))->id) )));
if ( uwinp->winp == winp )
Manage_Retitle( uwinp );
center = (((Tilwin *)(winp))->center);
pos = (((Tilwin *)(winp)) -> position);
rect = (((Tilwin *)(winp)) -> rect);
siz = (((Tilwin *)(winp)) -> size);
if ( desksiz.width < old_desksiz.width )
{
siz.width = ( siz.width * desksiz.width ) /
old_desksiz.width;
center.x = ( center.x * desksiz.width ) /
old_desksiz.width;
pos.x = ( pos.x * desksiz.width ) /
old_desksiz.width;
}
else if ( rect.right_x == old_deskrect.right_x )
{
center.x += ( desksiz.width - old_desksiz.width );
pos.x += ( desksiz.width - old_desksiz.width );
}
else if ( rect.left_x != 0 )
{
center.x = ( center.x * desksiz.width ) /
old_desksiz.width;
pos.x = ( pos.x * desksiz.width ) /
old_desksiz.width;
}
if ( desksiz.height < old_desksiz.height )
{
siz.height = ( siz.height * desksiz.height ) /
old_desksiz.height;
center.y = ( center.y * desksiz.height ) /
old_desksiz.height;
pos.y = ( pos.y * desksiz.height ) /
old_desksiz.height;
}
else if ( rect.bottom_y == old_deskrect.bottom_y )
{
center.y += ( desksiz.height - old_desksiz.height );
pos.y += ( desksiz.height - old_desksiz.height );
}
else if ( rect.top_y != 0 )
{
center.y = ( center.y * desksiz.height ) /
old_desksiz.height;
pos.y = ( pos.y * desksiz.height ) /
old_desksiz.height;
}
{ if ((siz).width < ((((Tilwin *)(winp)) -> max_size)).width) (siz).width = (siz).width; else (siz).width = ((((Tilwin *)(winp)) -> max_size)).width; if ((siz).height < ((((Tilwin *)(winp)) -> max_size)).height) (siz).height = (siz).height; else (siz).height = ((((Tilwin *)(winp)) -> max_size)).height; }
{ if ((siz).width > ((((Tilwin *)(winp)) -> min_size)).width) (siz).width = (siz).width; else (siz).width = ((((Tilwin *)(winp)) -> min_size)).width; if ((siz).height > ((((Tilwin *)(winp)) -> min_size)).height) (siz).height = (siz).height; else (siz).height = ((((Tilwin *)(winp)) -> min_size)).height; }
Tilwin_Set( winp, center, siz );
(((Tilwin *)(winp)) -> position = (pos));
}
if ( ( user_global_options[(int)(USE_ICONS)] ) )
Manage_Icon_Open( rtl_uwinp );
for ( winp = head; winp != (Tilwinp)((void *)0);
winp = (Tilwinp)(((Tilwin *)(winp))->data) )
{
uwinp = ((Userwin *)(( ((winp) == (Tilwinp)((void *)0)) ? (pointer)((void *)0) : (((Tilwin *)(winp))->id) )));
if ( uwinp->current_type == body )
Tilwin_Open_Nearest_In_Area( winp, deskrect,
(((Tilwin *)(winp))->center), (((Tilwin *)(winp)) -> size) );
else if ( ( user_global_options[(int)(USE_ICONS)] ) )
Manage_Icon_Open( uwinp );
}
if ( ( user_global_options[(int)(AUTO_REPOP_ON_DESKTOP_RESIZE)] ) )
Manage_Repopulate_Since( (TimeStamp)0, 1, 0, 1 );
}
void Manage_Resize_Desktop( desksiz )
Size desksiz;
{
drawing = 1;
Manage_Start();
Manage_Reorganize_Desktop( desksiz );
Drawwin_Draw_Background( ( desktop_rect ) );
Manage_Finish( 1 );
drawing = 0;
Manage_Cant_Undo();
}
void Manage_Profile( filnam )
char *filnam;
{
int primary, secondary;
Userwin *uwinp;
Tilwinp winp;
Manage_Start();
secondary = ( user_global_values[(int)(SECONDARY_ICON_PLACEMENT)] );
primary = ( user_global_values[(int)(ICON_PLACEMENT)] );
if (! ( user_global_options[(int)(ALLOW_LISTENER_TO_CLOSE)] ))
{
if ( listener != (Userwin *)((void *)0) )
( ((Tilwin *)(listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (listener->regular_manual_close)
;
if ( sublistener != (Userwin *)((void *)0) )
( ((Tilwin *)(sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (sublistener->regular_manual_close)
;
}
Profile_Update( filnam );
((rtl_uwinp)->options[(int)(SHOW_ICON)]) = (( user_global_options[(int)(USE_RTL_ICON)] ))
;
Manage_Reorganize_Desktop( ( desktop_size ) );
Tilwin_Gen_Open_Windows();
while ( (winp = Tilwin_Next_Window()) != (Tilwinp)((void *)0) )
{
uwinp = ((Userwin *)(( ((winp) == (Tilwinp)((void *)0)) ? (pointer)((void *)0) : (((Tilwin *)(winp))->id) )));
if ( uwinp->iconp == winp )
{
if ( ( secondary !=
( user_global_values[(int)(SECONDARY_ICON_PLACEMENT)] ) ) ||
( primary !=
( user_global_values[(int)(ICON_PLACEMENT)] ) ) )
(((Tilwin *)(winp)) -> position = ((((Tilwin *)(winp))->center)));
}
}
if (! ( user_global_options[(int)(ALLOW_LISTENER_TO_CLOSE)] ))
{
if ( listener != (Userwin *)((void *)0) )
( ((Tilwin *)(listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (1)
;
if ( sublistener != (Userwin *)((void *)0) )
( ((Tilwin *)(sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (1)
;
}
redrawing = 1;
Manage_Finish( 1 );
redrawing = 0;
}
# 2137 "manage.c"
static bool Manage_Rezoom( uwinp, siz )
Userwin *uwinp;
Size siz;
{
bool result;
{ if ( (((Tilwin *)(uwinp->winp)) -> rect).top_y == 0 ) window_excursion else if ( (((Tilwin *)(uwinp->winp)) -> rect).bottom_y == ( ( desktop_size ).height - 1 ) ) window_excursion else if ( (((Tilwin *)(uwinp->winp)) -> rect).top_y == uwinp->rezoom_rect.top_y ) window_excursion else if ( (((Tilwin *)(uwinp->winp)) -> rect).bottom_y == uwinp->rezoom_rect.bottom_y ) window_excursion else { if ( (((Tilwin *)(uwinp->winp)) -> rect).left_x == 0 ) window_excursion else if ( (((Tilwin *)(uwinp->winp)) -> rect).right_x == ( ( desktop_size ).width - 1 ) ) window_excursion else if ( (((Tilwin *)(uwinp->winp)) -> rect).left_x == uwinp->rezoom_rect.left_x ) window_excursion else if ( (((Tilwin *)(uwinp->winp)) -> rect).right_x == uwinp->rezoom_rect.right_x ) window_excursion else result = Tilwin_Set_Size( uwinp->winp, siz ); }; }
;
return result;
}
static bool Manage_Rezoom_In_Area( uwinp, rect, pt, siz )
Userwin *uwinp;
TWRectangle rect;
TWPoint pt;
Size siz;
{
bool result;
{ if ( (((Tilwin *)(uwinp->winp)) -> rect).top_y == 0 ) window_excursion else if ( (((Tilwin *)(uwinp->winp)) -> rect).bottom_y == ( ( desktop_size ).height - 1 ) ) window_excursion else if ( (((Tilwin *)(uwinp->winp)) -> rect).top_y == uwinp->rezoom_rect.top_y ) window_excursion else if ( (((Tilwin *)(uwinp->winp)) -> rect).bottom_y == uwinp->rezoom_rect.bottom_y ) window_excursion else { if ( (((Tilwin *)(uwinp->winp)) -> rect).left_x == 0 ) window_excursion else if ( (((Tilwin *)(uwinp->winp)) -> rect).right_x == ( ( desktop_size ).width - 1 ) ) window_excursion else if ( (((Tilwin *)(uwinp->winp)) -> rect).left_x == uwinp->rezoom_rect.left_x ) window_excursion else if ( (((Tilwin *)(uwinp->winp)) -> rect).right_x == uwinp->rezoom_rect.right_x ) window_excursion else result = Tilwin_Open_Nearest_In_Area( uwinp->winp, rect, pt, siz ); }; }
;
return result;
}
static bool Manage_Neighborhood_Rezoom( uwinp, siz )
Userwin *uwinp;
Size siz;
{
TWRectangle rect;
TWPoint pt;
bool result;
pt = (((Tilwin *)(uwinp->winp))->center);
rect = Manage_Neighborhood_Rectangle( 0.5, pt, siz );
{ bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (0); { window_excursion }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }
;
if (! result)
result = Tilwin_Open_Nearest_In_Area( uwinp->winp, rect, pt, siz );
return result;
}
static bool Manage_Neighborhood_Unzoom_Open( uwinp, siz )
Userwin *uwinp;
Size siz;
{
TWRectangle rect;
TWPoint pt;
bool result;
pt = (((Tilwin *)(uwinp->winp))->center);
rect = (((Tilwin *)(uwinp->winp)) -> rect);
result = Manage_Rezoom_In_Area( uwinp, rect, pt, siz );
if (! result)
result = Tilwin_Open_Nearest_In_Area(
uwinp->winp, rect, pt, siz );
if ( (! result) &&
(! ( (uwinp)->options[(int)(REQUIRE_PREV_POS)] )
) )
result = Tilwin_Open_Nearest_In_Area(
uwinp->winp,
( desktop_rect ),
pt, siz );
return result;
}
static void Manage_Setup_Zoom( uwinp, full )
Userwin *uwinp;
bool full;
{
Size siz;
Manage_Save_State( uwinp );
uwinp->zoomed = 1;
uwinp->regular_min = (((Tilwin *)(uwinp->winp)) -> min_size);
uwinp->regular_size = (((Tilwin *)(uwinp->winp)) -> desired_size);
if ( full )
{
if ( ( (uwinp)->options[(int)(ZOOM_FULL_HEIGHT)] ) )
uwinp->zoom_size.height = ( desktop_size ).height;
if ( ( (uwinp)->options[(int)(ZOOM_FULL_WIDTH)] ) )
uwinp->zoom_size.width = ( desktop_size ).width;
}
if ( ( user_global_options[(int)(RESET_ZOOM_MIN)] ) )
{
if ( ( user_global_options[(int)(RESET_ZOOM_MIN_USES_DESIRE)] ) )
{ if ((uwinp->regular_size).width < ((((Tilwin *)(uwinp->winp)) -> size)).width) (siz).width = (uwinp->regular_size).width; else (siz).width = ((((Tilwin *)(uwinp->winp)) -> size)).width; if ((uwinp->regular_size).height < ((((Tilwin *)(uwinp->winp)) -> size)).height) (siz).height = (uwinp->regular_size).height; else (siz).height = ((((Tilwin *)(uwinp->winp)) -> size)).height; }
else
siz = (((Tilwin *)(uwinp->winp)) -> size);
if ( ( user_global_options[(int)(RESET_ZOOM_MIN_ALLOWS_DECREASE)] ) )
uwinp->zoom_min = siz;
else
{ if ((uwinp->zoom_min).width > (siz).width) (uwinp->zoom_min).width = (uwinp->zoom_min).width; else (uwinp->zoom_min).width = (siz).width; if ((uwinp->zoom_min).height > (siz).height) (uwinp->zoom_min).height = (uwinp->zoom_min).height; else (uwinp->zoom_min).height = (siz).height; }
}
if ( ( (uwinp)->options[(int)(ZOOM_TIED_TO_DESIRE)] ) )
{
uwinp->zoom_min = uwinp->zoom_size = uwinp->regular_size;
}
if ( ( (uwinp)->options[(int)(ENFORCE_CLIENT_MINIMUMS)] ) )
{
{ if ((uwinp->zoom_min).width > (uwinp->client_min).width) (uwinp->zoom_min).width = (uwinp->zoom_min).width; else (uwinp->zoom_min).width = (uwinp->client_min).width; if ((uwinp->zoom_min).height > (uwinp->client_min).height) (uwinp->zoom_min).height = (uwinp->zoom_min).height; else (uwinp->zoom_min).height = (uwinp->client_min).height; }
{ if ((uwinp->zoom_size).width > (uwinp->client_min).width) (uwinp->zoom_size).width = (uwinp->zoom_size).width; else (uwinp->zoom_size).width = (uwinp->client_min).width; if ((uwinp->zoom_size).height > (uwinp->client_min).height) (uwinp->zoom_size).height = (uwinp->zoom_size).height; else (uwinp->zoom_size).height = (uwinp->client_min).height; }
}
{ if ((uwinp->zoom_min).width > (uwinp->regular_min).width) (uwinp->zoom_min).width = (uwinp->zoom_min).width; else (uwinp->zoom_min).width = (uwinp->regular_min).width; if ((uwinp->zoom_min).height > (uwinp->regular_min).height) (uwinp->zoom_min).height = (uwinp->zoom_min).height; else (uwinp->zoom_min).height = (uwinp->regular_min).height; }
{ if ((uwinp->zoom_size).width > (uwinp->regular_size).width) (uwinp->zoom_size).width = (uwinp->zoom_size).width; else (uwinp->zoom_size).width = (uwinp->regular_size).width; if ((uwinp->zoom_size).height > (uwinp->regular_size).height) (uwinp->zoom_size).height = (uwinp->zoom_size).height; else (uwinp->zoom_size).height = (uwinp->regular_size).height; }
if ( ( (uwinp)->options[(int)(ENFORCE_CLIENT_MAXIMUMS)] ) )
{
{ if ((uwinp->zoom_min).width < (uwinp->client_max).width) (uwinp->zoom_min).width = (uwinp->zoom_min).width; else (uwinp->zoom_min).width = (uwinp->client_max).width; if ((uwinp->zoom_min).height < (uwinp->client_max).height) (uwinp->zoom_min).height = (uwinp->zoom_min).height; else (uwinp->zoom_min).height = (uwinp->client_max).height; }
{ if ((uwinp->zoom_size).width < (uwinp->client_max).width) (uwinp->zoom_size).width = (uwinp->zoom_size).width; else (uwinp->zoom_size).width = (uwinp->client_max).width; if ((uwinp->zoom_size).height < (uwinp->client_max).height) (uwinp->zoom_size).height = (uwinp->zoom_size).height; else (uwinp->zoom_size).height = (uwinp->client_max).height; }
}
{ (((Tilwin *)(uwinp->winp)) -> min_size).height = (1+ (uwinp->zoom_min).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> min_size).width = (1+ (uwinp->zoom_min).width ) & (~1); };
{ (((Tilwin *)(uwinp->winp)) -> desired_size).height = ( (uwinp->zoom_size).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> desired_size).width = ( (uwinp->zoom_size).width ) & (~1); };
}
static void Manage_Setup_Unzoom( uwinp )
Userwin *uwinp;
{
Manage_Save_State( uwinp );
uwinp->zoomed = 0;
uwinp->zoom_min = (((Tilwin *)(uwinp->winp)) -> min_size);
uwinp->zoom_size = (((Tilwin *)(uwinp->winp)) -> desired_size);
if ( ( (uwinp)->options[(int)(ENFORCE_CLIENT_MAXIMUMS)] ) )
{
{ if ((uwinp->regular_min).width < (uwinp->client_max).width) (uwinp->regular_min).width = (uwinp->regular_min).width; else (uwinp->regular_min).width = (uwinp->client_max).width; if ((uwinp->regular_min).height < (uwinp->client_max).height) (uwinp->regular_min).height = (uwinp->regular_min).height; else (uwinp->regular_min).height = (uwinp->client_max).height; }
{ if ((uwinp->regular_size).width < (uwinp->client_max).width) (uwinp->regular_size).width = (uwinp->regular_size).width; else (uwinp->regular_size).width = (uwinp->client_max).width; if ((uwinp->regular_size).height < (uwinp->client_max).height) (uwinp->regular_size).height = (uwinp->regular_size).height; else (uwinp->regular_size).height = (uwinp->client_max).height; }
}
{ if ((uwinp->regular_min).width < (uwinp->zoom_min).width) (uwinp->regular_min).width = (uwinp->regular_min).width; else (uwinp->regular_min).width = (uwinp->zoom_min).width; if ((uwinp->regular_min).height < (uwinp->zoom_min).height) (uwinp->regular_min).height = (uwinp->regular_min).height; else (uwinp->regular_min).height = (uwinp->zoom_min).height; }
{ if ((uwinp->regular_size).width < (uwinp->zoom_size).width) (uwinp->regular_size).width = (uwinp->regular_size).width; else (uwinp->regular_size).width = (uwinp->zoom_size).width; if ((uwinp->regular_size).height < (uwinp->zoom_size).height) (uwinp->regular_size).height = (uwinp->regular_size).height; else (uwinp->regular_size).height = (uwinp->zoom_size).height; }
if ( ( (uwinp)->options[(int)(ENFORCE_CLIENT_MINIMUMS)] ) )
{
{ if ((uwinp->regular_min).width > (uwinp->client_min).width) (uwinp->regular_min).width = (uwinp->regular_min).width; else (uwinp->regular_min).width = (uwinp->client_min).width; if ((uwinp->regular_min).height > (uwinp->client_min).height) (uwinp->regular_min).height = (uwinp->regular_min).height; else (uwinp->regular_min).height = (uwinp->client_min).height; }
{ if ((uwinp->regular_size).width > (uwinp->client_min).width) (uwinp->regular_size).width = (uwinp->regular_size).width; else (uwinp->regular_size).width = (uwinp->client_min).width; if ((uwinp->regular_size).height > (uwinp->client_min).height) (uwinp->regular_size).height = (uwinp->regular_size).height; else (uwinp->regular_size).height = (uwinp->client_min).height; }
}
{ (((Tilwin *)(uwinp->winp)) -> min_size).height = (1+ (uwinp->regular_min).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> min_size).width = (1+ (uwinp->regular_min).width ) & (~1); };
{ (((Tilwin *)(uwinp->winp)) -> desired_size).height = ( (uwinp->regular_size).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> desired_size).width = ( (uwinp->regular_size).width ) & (~1); };
}
static Size Manage_Get_Zoom_Size( uwinp )
Userwin *uwinp;
{
Size cursiz, siz;
cursiz = (((Tilwin *)(uwinp->winp)) -> size);
{ if ((uwinp->zoom_size).width > (uwinp->zoom_min).width) (siz).width = (uwinp->zoom_size).width; else (siz).width = (uwinp->zoom_min).width; if ((uwinp->zoom_size).height > (uwinp->zoom_min).height) (siz).height = (uwinp->zoom_size).height; else (siz).height = (uwinp->zoom_min).height; }
if ( (((Tilwin *)(uwinp->winp)) -> Am_I_Open) &&
( siz.width < cursiz.width ) &&
( siz.height < cursiz.height ) )
siz = cursiz;
return Tilwin_Checked_Size( uwinp->winp, siz );
}
static Size Manage_Get_Unzoom_Open_Size( uwinp )
Userwin *uwinp;
{
Size siz;
{ if ((uwinp->zoom_size).width > (uwinp->regular_min).width) (siz).width = (uwinp->zoom_size).width; else (siz).width = (uwinp->regular_min).width; if ((uwinp->zoom_size).height > (uwinp->regular_min).height) (siz).height = (uwinp->zoom_size).height; else (siz).height = (uwinp->regular_min).height; }
return Tilwin_Checked_Size( uwinp->winp, siz );
}
static Size Manage_Get_Closed_Unzoom_Size( uwinp )
Userwin *uwinp;
{
Size siz;
{ if ((uwinp->regular_size).width > (uwinp->regular_min).width) (siz).width = (uwinp->regular_size).width; else (siz).width = (uwinp->regular_min).width; if ((uwinp->regular_size).height > (uwinp->regular_min).height) (siz).height = (uwinp->regular_size).height; else (siz).height = (uwinp->regular_min).height; }
{ if ((siz).width < ((((Tilwin *)(uwinp->winp)) -> size)).width) (siz).width = (siz).width; else (siz).width = ((((Tilwin *)(uwinp->winp)) -> size)).width; if ((siz).height < ((((Tilwin *)(uwinp->winp)) -> size)).height) (siz).height = (siz).height; else (siz).height = ((((Tilwin *)(uwinp->winp)) -> size)).height; }
return Tilwin_Checked_Size( uwinp->winp, siz );
}
static Size Manage_Get_Open_Unzoom_Size( uwinp )
Userwin *uwinp;
{
Size siz;
{ (siz).width = (uwinp->rezoom_rect).right_x - (uwinp->rezoom_rect).left_x + 1; (siz).height = (uwinp->rezoom_rect).bottom_y - (uwinp->rezoom_rect).top_y + 1; };
{ if ((siz).width < (uwinp->regular_size).width) (siz).width = (siz).width; else (siz).width = (uwinp->regular_size).width; if ((siz).height < (uwinp->regular_size).height) (siz).height = (siz).height; else (siz).height = (uwinp->regular_size).height; }
{ if ((siz).width < ((((Tilwin *)(uwinp->winp)) -> size)).width) (siz).width = (siz).width; else (siz).width = ((((Tilwin *)(uwinp->winp)) -> size)).width; if ((siz).height < ((((Tilwin *)(uwinp->winp)) -> size)).height) (siz).height = (siz).height; else (siz).height = ((((Tilwin *)(uwinp->winp)) -> size)).height; }
{ if ((siz).width > (uwinp->regular_min).width) (siz).width = (siz).width; else (siz).width = (uwinp->regular_min).width; if ((siz).height > (uwinp->regular_min).height) (siz).height = (siz).height; else (siz).height = (uwinp->regular_min).height; }
return Tilwin_Checked_Size( uwinp->winp, siz );
}
static bool Manage_Followup_Zoom( uwinp )
Userwin *uwinp;
{
Size siz;
bool result;
siz = Manage_Get_Zoom_Size( uwinp );
if ( ( siz.width < uwinp->zoom_min.width ) ||
( siz.height < uwinp->zoom_min.height ) )
result = 0;
else
{ bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( (uwinp)->options[(int)(ALLOW_ZOOM_CLOSE)] ))); { result = Manage_Neighborhood_Rezoom( uwinp, siz ); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }
if ( result )
{
{ if ((siz).width > ((((Tilwin *)(uwinp->winp)) -> prev_size)).width) (siz).width = (siz).width; else (siz).width = ((((Tilwin *)(uwinp->winp)) -> prev_size)).width; if ((siz).height > ((((Tilwin *)(uwinp->winp)) -> prev_size)).height) (siz).height = (siz).height; else (siz).height = ((((Tilwin *)(uwinp->winp)) -> prev_size)).height; }
;
{ bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && 0)); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && 0)); Tilwin_Enlarge_Nearest( uwinp->winp, (((Tilwin *)(uwinp->winp)) -> prev_center), siz ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }
State_Act_Modified(uwinp->winp);
uwinp->zoom_stamp = State_Get_Timestamp();
uwinp->rezoom_rect = (((Tilwin *)(uwinp->winp)) -> prev_rect);
}
else
Manage_Setup_Unzoom( uwinp );
return result;
}
static void Manage_Followup_Unzoom( uwinp, explicit )
Userwin *uwinp;
bool explicit;
{
bool force_repop;
bool force_shrink;
bool allow_shrink;
TimeStamp repop_since;
TWPoint pt;
Size siz;
if (! (((Tilwin *)(uwinp->winp)) -> Am_I_Open) )
Manage_Rezoom( uwinp, Manage_Get_Closed_Unzoom_Size( uwinp ) );
else
{
State_Act_Modified(uwinp->winp);
if ( explicit )
{
allow_shrink =
( (uwinp)->options[(int)(ALLOW_SHRINK_ON_UNZOOM)] );
force_shrink =
( (uwinp)->options[(int)(FORCE_SHRINK_ON_UNZOOM)] );
force_repop = ( user_global_options[(int)(AUTO_REPOP_ON_EXPLICIT_UNZOOM)] )
;
if ( ( user_global_options[(int)(ONLY_REPOP_SINCE_ON_EXPL_UNZOOM)] )
)
repop_since = uwinp->zoom_stamp;
else
repop_since = (TimeStamp)0;
}
else
{
allow_shrink =
( (uwinp)->options[(int)(ALLOW_SHRINK_ON_UNZOOM)] ) &&
( (uwinp)->options[(int)(ALLOW_SHRINK_ON_AUTO_UNZOOM)] );
force_shrink =
( (uwinp)->options[(int)(FORCE_SHRINK_ON_UNZOOM)] ) &&
( (uwinp)->options[(int)(FORCE_SHRINK_ON_AUTO_UNZOOM)] );
force_repop = ( user_global_options[(int)(AUTO_REPOPULATE_ON_AUTO_UNZOOM)] )
;
if ( ( user_global_options[(int)(ONLY_REPOP_SINCE_ON_AUTO_UNZOOM)] )
)
repop_since = uwinp->zoom_stamp;
else
repop_since = (TimeStamp)0;
}
if ( allow_shrink || force_shrink )
{
{ ((pt)).x = 1 + (((uwinp->rezoom_rect)).left_x + ((uwinp->rezoom_rect)).right_x) / 2; ((pt)).y = 1 + (((uwinp->rezoom_rect)).top_y + ((uwinp->rezoom_rect)).bottom_y) / 2; };
siz = Manage_Get_Open_Unzoom_Size( uwinp );
{ bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (0); { if ( Tilwin_Set( uwinp->winp, pt, siz ) ) (((Tilwin *)(uwinp->winp)) -> position = (pt)); else Manage_Rezoom( uwinp, siz ); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }
}
if ( force_repop )
{
{ bool temp_val; temp_val = ( user_global_options[(int)(REQUIRE_PREV_POS_ON_AUTO_REPOP)] ); user_global_options[(int)(REQUIRE_PREV_POS_ON_AUTO_REPOP)] = (1); Manage_Repopulate_Since( repop_since, 0, 0, 1 ); user_global_options[(int)(REQUIRE_PREV_POS_ON_AUTO_REPOP)] = (temp_val); }
;
}
if ( ( user_global_options[(int)(AUTO_DESIRED_ENLARGE)] ) )
window_excursion;
if ( allow_shrink && (! force_shrink) )
{ bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (0); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (0); { if ( ( user_global_options[(int)(AUTO_DESIRED_ENLARGE)] ) ) Tilwin_Enlarge_Nearest( uwinp->winp, (((Tilwin *)(uwinp->winp)) -> prev_center), (((Tilwin *)(uwinp->winp)) -> prev_size) ); else Tilwin_Open_Nearest_In_Area( uwinp->winp, (((Tilwin *)(uwinp->winp)) -> prev_rect), (((Tilwin *)(uwinp->winp)) -> prev_center), (((Tilwin *)(uwinp->winp)) -> prev_size) ); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }
# 2517 "manage.c"
if ( force_repop )
{
Manage_Repopulate_Since( repop_since,
0, 0, 1 );
}
}
uwinp->rezoom_rect = (((Tilwin *)(uwinp->winp)) -> prev_rect);
}
static bool Manage_Followup_Unzoom_Open( uwinp )
Userwin *uwinp;
{
bool result;
result = Manage_Neighborhood_Unzoom_Open( uwinp,
Manage_Get_Unzoom_Open_Size( uwinp ) );
if ( result )
uwinp->rezoom_rect = (((Tilwin *)(uwinp->winp)) -> prev_rect);
else
Manage_Setup_Zoom( uwinp, 0 );
return result;
}
static bool Manage_Do_Zoom( uwinp, explicit )
Userwin *uwinp;
bool explicit;
{
bool full;
full =
(
( ( (uwinp)->options[(int)(ZOOM_FULL_EXPLICIT)] ) &&
explicit )
&&
(
( (uwinp)->options[(int)(ZOOM_FULL_WIDTH)] )
||
( (uwinp)->options[(int)(ZOOM_FULL_HEIGHT)] )
)
);
Manage_Setup_Zoom( uwinp, full );
return Manage_Followup_Zoom( uwinp );
}
static void Manage_Do_Unzoom( uwinp, explicit )
Userwin *uwinp;
bool explicit;
{
Manage_Setup_Unzoom( uwinp );
Manage_Followup_Unzoom( uwinp, explicit );
}
static Userwin *unzoomed_listener;
static void Manage_Start_Trying()
{
unzoomed_listener = (Userwin *)((void *)0);
}
bool Manage_Can_Try_Listener_Unzoom()
{
if ( ( user_global_options[(int)(UNZOOM_TIED_LSNR_IF_NECESSARY)] ) &&
( listener != (Userwin *)((void *)0) ) &&
( (listener)->options[(int)(LISTENER_TIED_TO_ZOOM)] ) &&
listener->zoomed )
{
Manage_Setup_Unzoom( listener );
unzoomed_listener = listener;
return 1;
}
else
return 0;
}
static void Manage_Finish_Trying( result )
bool result;
{
if ( unzoomed_listener != (Userwin *)((void *)0) )
{
if ( result )
Manage_Followup_Unzoom( unzoomed_listener, 0 );
else
Manage_Setup_Zoom( unzoomed_listener, 0 );
}
}
bool Manage_Unzoom_Open( uwinp )
Userwin *uwinp;
{
bool iconized;
bool result;
iconized = (((Tilwin *)(uwinp->iconp)) -> Am_I_Open);
if ( iconized )
Tilwin_Close( uwinp->iconp );
Manage_Setup_Unzoom( uwinp );
result = Manage_Followup_Unzoom_Open( uwinp );
if ( (! result) && iconized )
Tilwin_Open( uwinp->iconp,
(((Tilwin *)(uwinp->iconp))->center),
(((Tilwin *)(uwinp->iconp)) -> size) );
return result;
}
void Manage_Zoom( uwinp )
Userwin *uwinp;
{
bool result;
Manage_Start();
Manage_Start_Trying();
result = Manage_Do_Zoom( uwinp, 1 );
if ( (! result) && Manage_Can_Try_Listener_Unzoom() )
result = Manage_Do_Zoom( uwinp, 1 );
Manage_Finish_Trying( result );
((Tilwin *)(uwinp->winp))->width_stamp = State_Get_Timestamp();
((Tilwin *)(uwinp->winp))->height_stamp = State_Get_Timestamp();
last_zoom = uwinp;
touch = uwinp;
Manage_Finish_Minned( uwinp, result );
}
void Manage_Unzoom( uwinp )
Userwin *uwinp;
{
if ( ( uwinp == last_zoom ) &&
( uwinp->zoom_stamp == last_stamp ) )
Manage_Undo_Start();
else
{
Manage_Start();
Manage_Do_Unzoom( uwinp, 1 );
}
touch = uwinp;
Manage_Finish( 1 );
}
void Manage_Toggle_Zoom( uwinp )
Userwin *uwinp;
{
if ( uwinp->zoomed )
Manage_Unzoom( uwinp );
else
Manage_Zoom( uwinp );
}
void Manage_Toggle_Zoom_Lock( uwinp )
Userwin *uwinp;
{
if ( ( ( (uwinp)->options[(int)(LISTENER_TIED_TO_ZOOM)] ) ) )
{
{ ((uwinp)->options[(int)(LISTENER_TIED_TO_ZOOM)]) = (0); ((uwinp)->explicit[(int)(EXPLICIT_LISTENER_TIED_TO_ZOOM)]) = 1; };
Manage_Start();
State_Act_Modified(uwinp->winp);
touch = uwinp;
Manage_Finish( 1 );
}
else
{
{ ((uwinp)->options[(int)(LISTENER_TIED_TO_ZOOM)]) = (1); ((uwinp)->explicit[(int)(EXPLICIT_LISTENER_TIED_TO_ZOOM)]) = 1; };
if ( ( uwinp == listener ) && (! uwinp->zoomed) )
Manage_Zoom( uwinp );
else if ( ( uwinp != listener ) && ( uwinp->zoomed ) )
Manage_Unzoom( uwinp );
else
{
Manage_Start();
State_Act_Modified(uwinp->winp);
touch = uwinp;
Manage_Finish( 1 );
}
}
}
void Manage_Switch_Listener( uwinp )
Userwin *uwinp;
{
Userwin *old_listener;
bool unzoom_old;
bool zoom_new;
bool listener_zooming;
bool transact;
TimeStamp zoom_stamp = (TimeStamp)0;
switch_listener = uwinp;
unzoom_old = (listener != (Userwin *)((void *)0)) && (listener->zoomed) &&
( (listener)->options[(int)(LISTENER_TIED_TO_ZOOM)] );
zoom_new = (uwinp != (Userwin *)((void *)0)) && (!uwinp->zoomed) &&
( (uwinp)->options[(int)(LISTENER_TIED_TO_ZOOM)] );
listener_zooming = unzoom_old || zoom_new;
transact = listener_zooming ||
( ( user_global_options[(int)(AUTO_PRORATE)] ) &&
( user_global_options[(int)(BIASED_AUTO_PRORATE)] ) );
old_listener = listener;
if ( unzoom_old )
zoom_stamp = listener->zoom_stamp;
if ( unzoom_old &&
( user_global_options[(int)(AUTO_REPOPULATE_ON_AUTO_UNZOOM)] ) &&
( listener == last_zoom ) &&
( zoom_stamp == last_stamp ) )
{
Manage_Undo_Start();
unzoom_old = 0;
if ( zoom_new )
last_zoom = (Userwin *)((void *)0);
}
else if ( listener_zooming )
{
Manage_Start();
if (! unzoom_old)
last_zoom = uwinp;
}
else if ( transact )
Manage_Start();
if ( listener != (Userwin *)((void *)0) )
{
Manage_Unset_Listener();
if ( unzoom_old )
Manage_Setup_Unzoom( old_listener );
else if (! transact)
Drawwin_Display_Wrapping( old_listener );
}
Manage_Set_Listener(uwinp);
if ( listener != (Userwin *)((void *)0) )
{
if ( zoom_new )
{
if ( Manage_Do_Zoom( listener, 0 ) &&
( zoom_stamp != (TimeStamp)0 ) )
listener->zoom_stamp = zoom_stamp;
}
else if (! transact)
Drawwin_Display_Wrapping( listener );
}
if ( unzoom_old )
{
if ( listener == (Userwin *)((void *)0) )
Manage_Followup_Unzoom( old_listener, 0 );
else
{ Size temp_min; temp_min = (((Tilwin *)(listener->winp)) -> min_size); { (((Tilwin *)(listener->winp)) -> min_size).height = (1+ ((((Tilwin *)(listener->winp)) -> size)).height ) & (~1); (((Tilwin *)(listener->winp)) -> min_size).width = (1+ ((((Tilwin *)(listener->winp)) -> size)).width ) & (~1); }; Manage_Followup_Unzoom( old_listener, 0 ); { (((Tilwin *)(listener->winp)) -> min_size).height = (1+ (temp_min).height ) & (~1); (((Tilwin *)(listener->winp)) -> min_size).width = (1+ (temp_min).width ) & (~1); }; }
}
if ( transact )
Manage_Finish_Minned( listener, 1 );
}
static bool Manage_Resatisfy( uwinp )
Userwin *uwinp;
{
bool result;
Size siz;
Manage_Save_State( uwinp );
result = Tilwin_Is_Satisfied( uwinp->winp );
if (! result )
{
siz = (((Tilwin *)(uwinp->winp)) -> size);
{ if ((siz).width > ((((Tilwin *)(uwinp->winp)) -> min_size)).width) (siz).width = (siz).width; else (siz).width = ((((Tilwin *)(uwinp->winp)) -> min_size)).width; if ((siz).height > ((((Tilwin *)(uwinp->winp)) -> min_size)).height) (siz).height = (siz).height; else (siz).height = ((((Tilwin *)(uwinp->winp)) -> min_size)).height; }
{ if ((siz).width < ((((Tilwin *)(uwinp->winp)) -> max_size)).width) (siz).width = (siz).width; else (siz).width = ((((Tilwin *)(uwinp->winp)) -> max_size)).width; if ((siz).height < ((((Tilwin *)(uwinp->winp)) -> max_size)).height) (siz).height = (siz).height; else (siz).height = ((((Tilwin *)(uwinp->winp)) -> max_size)).height; }
if ( (((Tilwin *)(uwinp->winp)) -> Am_I_Open) )
result = Manage_Neighborhood_Rezoom( uwinp, siz );
else
result = Manage_Rezoom( uwinp, siz );
}
return result;
}
void Manage_Client_Reset_Min_Max( uwinp, min_size, max_size )
Userwin *uwinp;
Size min_size;
Size max_size;
{
Size siz;
bool has_min, has_max, result;
if (! uwinp->prepared)
Manage_Prepare( uwinp );
has_max = ( max_size.width > 0 ) && ( max_size.height > 0 );
has_min = ( min_size.width >= 0 ) && ( min_size.height >= 0 );
if ( Profile_Supplies_User_Value( uwinp, CLIENT_MAX_WIDTH ) )
max_size.width = uwinp->body_max.width;
if ( Profile_Supplies_User_Value( uwinp, CLIENT_MAX_HEIGHT ) )
max_size.height = uwinp->body_max.height;
if ( Profile_Supplies_User_Value( uwinp, CLIENT_MIN_WIDTH ) )
min_size.width = uwinp->body_min.width;
if ( Profile_Supplies_User_Value( uwinp, CLIENT_MIN_HEIGHT ) )
min_size.height = uwinp->body_min.height;
if ( has_min )
{ if ((max_size).width > (min_size).width) (max_size).width = (max_size).width; else (max_size).width = (min_size).width; if ((max_size).height > (min_size).height) (max_size).height = (max_size).height; else (max_size).height = (min_size).height; }
if ( has_max )
{
uwinp->body_max = max_size;
uwinp->client_max = Region_Adjust_Size( uwinp, max_size );
if ( ( (uwinp)->options[(int)(ENFORCE_CLIENT_MAXIMUMS)] ) )
{
{ if (((((Tilwin *)(uwinp->winp)) -> max_size)).width < (uwinp->client_max).width) (siz).width = ((((Tilwin *)(uwinp->winp)) -> max_size)).width; else (siz).width = (uwinp->client_max).width; if (((((Tilwin *)(uwinp->winp)) -> max_size)).height < (uwinp->client_max).height) (siz).height = ((((Tilwin *)(uwinp->winp)) -> max_size)).height; else (siz).height = (uwinp->client_max).height; }
{ (((Tilwin *)(uwinp->winp)) -> max_size).height = (1+ (siz).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> max_size).width = (1+ (siz).width ) & (~1); };
{ if ((siz).width < ((((Tilwin *)(uwinp->winp)) -> desired_size)).width) (siz).width = (siz).width; else (siz).width = ((((Tilwin *)(uwinp->winp)) -> desired_size)).width; if ((siz).height < ((((Tilwin *)(uwinp->winp)) -> desired_size)).height) (siz).height = (siz).height; else (siz).height = ((((Tilwin *)(uwinp->winp)) -> desired_size)).height; }
{ (((Tilwin *)(uwinp->winp)) -> desired_size).height = ( (siz).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> desired_size).width = ( (siz).width ) & (~1); };
}
}
if ( has_min )
{
uwinp->body_min = min_size;
uwinp->client_min = Region_Adjust_Size( uwinp, min_size );
if ( ( (uwinp)->options[(int)(ENFORCE_CLIENT_MINIMUMS)] ) )
{
{ if (((((Tilwin *)(uwinp->winp)) -> min_size)).width > (uwinp->client_min).width) (siz).width = ((((Tilwin *)(uwinp->winp)) -> min_size)).width; else (siz).width = (uwinp->client_min).width; if (((((Tilwin *)(uwinp->winp)) -> min_size)).height > (uwinp->client_min).height) (siz).height = ((((Tilwin *)(uwinp->winp)) -> min_size)).height; else (siz).height = (uwinp->client_min).height; }
{ (((Tilwin *)(uwinp->winp)) -> min_size).height = (1+ (siz).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> min_size).width = (1+ (siz).width ) & (~1); };
{ if ((siz).width > ((((Tilwin *)(uwinp->winp)) -> desired_size)).width) (siz).width = (siz).width; else (siz).width = ((((Tilwin *)(uwinp->winp)) -> desired_size)).width; if ((siz).height > ((((Tilwin *)(uwinp->winp)) -> desired_size)).height) (siz).height = (siz).height; else (siz).height = ((((Tilwin *)(uwinp->winp)) -> desired_size)).height; }
{ (((Tilwin *)(uwinp->winp)) -> desired_size).height = ( (siz).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> desired_size).width = ( (siz).width ) & (~1); };
}
}
if ( ( ( ((((Tilwin *)(uwinp->winp)) -> min_size)).width == ((((Tilwin *)(uwinp->winp)) -> max_size)).width ) && ( ((((Tilwin *)(uwinp->winp)) -> min_size)).height == ((((Tilwin *)(uwinp->winp)) -> max_size)).height ) )
)
uwinp->sized = 1;
if (! uwinp->ever_opened)
return;
if (! (((Tilwin *)(uwinp->winp)) -> Am_I_Open))
Manage_Resatisfy( uwinp );
else if ( ( (uwinp)->options[(int)(AUTO_RESATISFY_ON_RESET_MINMAX)] ) )
{
Manage_Start();
{ Userwin *cur_listener; Userwin *cur_sublistener; cur_listener = listener; cur_sublistener = sublistener; if ( sublistener != (Userwin *)((void *)0) ) { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); { result = Manage_Resatisfy( uwinp ); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); { result = Manage_Resatisfy( uwinp ); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } } else { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_listener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); { result = Manage_Resatisfy( uwinp ); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); { result = Manage_Resatisfy( uwinp ); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); } } }
Manage_Finish_Minned( uwinp, result );
Manage_Cant_Undo();
}
}
static Size Manage_Calc_Size( siz, rect, side, pos )
Size siz;
TWRectangle rect;
Side side;
TWPoint pos;
{
switch (side)
{
case Top:
case Top_Left:
case Top_Right:
siz.height = 1 + rect.bottom_y - pos.y;
break;
case Bottom:
case Bottom_Left:
case Bottom_Right:
siz.height = 1 + pos.y - rect.top_y;
break;
default:
break;
}
switch (side)
{
case Left:
case Top_Left:
case Bottom_Left:
siz.width = 1 + rect.right_x - pos.x;
break;
case Right:
case Top_Right:
case Bottom_Right:
siz.width = 1 + pos.x - rect.left_x;
break;
default:
break;
}
return siz;
}
bool Manage_Set_Regular_Min_Size( uwinp, pos, side, force, ctrl )
Userwin *uwinp;
TWPoint pos;
Side side;
bool force, ctrl;
{
Size max_size;
TWRectangle rect;
rect = (((Tilwin *)(uwinp->winp)) -> rect);
Manage_Start();
if (! uwinp->zoomed)
uwinp->regular_min = (((Tilwin *)(uwinp->winp)) -> min_size);
uwinp->regular_min =
Manage_Calc_Size( uwinp->regular_min, rect, side, pos );
if ( ( (uwinp)->options[(int)(ENFORCE_CLIENT_MAXIMUMS)] ) )
{ if ((uwinp->regular_min).width < (uwinp->client_max).width) (uwinp->regular_min).width = (uwinp->regular_min).width; else (uwinp->regular_min).width = (uwinp->client_max).width; if ((uwinp->regular_min).height < (uwinp->client_max).height) (uwinp->regular_min).height = (uwinp->regular_min).height; else (uwinp->regular_min).height = (uwinp->client_max).height; }
{ if ((uwinp->regular_min).width < ((((Tilwin *)(uwinp->winp)) -> max_size)).width) (uwinp->regular_min).width = (uwinp->regular_min).width; else (uwinp->regular_min).width = ((((Tilwin *)(uwinp->winp)) -> max_size)).width; if ((uwinp->regular_min).height < ((((Tilwin *)(uwinp->winp)) -> max_size)).height) (uwinp->regular_min).height = (uwinp->regular_min).height; else (uwinp->regular_min).height = ((((Tilwin *)(uwinp->winp)) -> max_size)).height; }
if ( ( (uwinp)->options[(int)(ENFORCE_CLIENT_MINIMUMS)] ) )
{ if ((uwinp->regular_min).width > (uwinp->client_min).width) (uwinp->regular_min).width = (uwinp->regular_min).width; else (uwinp->regular_min).width = (uwinp->client_min).width; if ((uwinp->regular_min).height > (uwinp->client_min).height) (uwinp->regular_min).height = (uwinp->regular_min).height; else (uwinp->regular_min).height = (uwinp->client_min).height; }
max_size = (((Tilwin *)(uwinp->winp)) -> max_size);
if ( ( user_global_options[(int)(RESET_MAX_ON_INCREASE)] ) || force )
{ if ((max_size).width > (uwinp->regular_min).width) (max_size).width = (max_size).width; else (max_size).width = (uwinp->regular_min).width; if ((max_size).height > (uwinp->regular_min).height) (max_size).height = (max_size).height; else (max_size).height = (uwinp->regular_min).height; }
else
{ if ((uwinp->regular_min).width < (max_size).width) (uwinp->regular_min).width = (uwinp->regular_min).width; else (uwinp->regular_min).width = (max_size).width; if ((uwinp->regular_min).height < (max_size).height) (uwinp->regular_min).height = (uwinp->regular_min).height; else (uwinp->regular_min).height = (max_size).height; }
{ (((Tilwin *)(uwinp->winp)) -> max_size).height = (1+ (max_size).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> max_size).width = (1+ (max_size).width ) & (~1); };
if (! uwinp->zoomed)
{
{ if ((uwinp->regular_min).width > ((((Tilwin *)(uwinp->winp)) -> desired_size)).width) (uwinp->regular_size).width = (uwinp->regular_min).width; else (uwinp->regular_size).width = ((((Tilwin *)(uwinp->winp)) -> desired_size)).width; if ((uwinp->regular_min).height > ((((Tilwin *)(uwinp->winp)) -> desired_size)).height) (uwinp->regular_size).height = (uwinp->regular_min).height; else (uwinp->regular_size).height = ((((Tilwin *)(uwinp->winp)) -> desired_size)).height; }
{ (((Tilwin *)(uwinp->winp)) -> min_size).height = (1+ (uwinp->regular_min).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> min_size).width = (1+ (uwinp->regular_min).width ) & (~1); };
{ (((Tilwin *)(uwinp->winp)) -> desired_size).height = ( (uwinp->regular_size).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> desired_size).width = ( (uwinp->regular_size).width ) & (~1); };
}
else
{
{ if ((uwinp->regular_size).width > (uwinp->regular_min).width) (uwinp->regular_size).width = (uwinp->regular_size).width; else (uwinp->regular_size).width = (uwinp->regular_min).width; if ((uwinp->regular_size).height > (uwinp->regular_min).height) (uwinp->regular_size).height = (uwinp->regular_size).height; else (uwinp->regular_size).height = (uwinp->regular_min).height; }
{ if ((uwinp->regular_min).width > ((((Tilwin *)(uwinp->winp)) -> min_size)).width) (uwinp->zoom_min).width = (uwinp->regular_min).width; else (uwinp->zoom_min).width = ((((Tilwin *)(uwinp->winp)) -> min_size)).width; if ((uwinp->regular_min).height > ((((Tilwin *)(uwinp->winp)) -> min_size)).height) (uwinp->zoom_min).height = (uwinp->regular_min).height; else (uwinp->zoom_min).height = ((((Tilwin *)(uwinp->winp)) -> min_size)).height; }
{ if ((uwinp->zoom_min).width > ((((Tilwin *)(uwinp->winp)) -> desired_size)).width) (uwinp->zoom_size).width = (uwinp->zoom_min).width; else (uwinp->zoom_size).width = ((((Tilwin *)(uwinp->winp)) -> desired_size)).width; if ((uwinp->zoom_min).height > ((((Tilwin *)(uwinp->winp)) -> desired_size)).height) (uwinp->zoom_size).height = (uwinp->zoom_min).height; else (uwinp->zoom_size).height = ((((Tilwin *)(uwinp->winp)) -> desired_size)).height; }
{ (((Tilwin *)(uwinp->winp)) -> min_size).height = (1+ (uwinp->zoom_min).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> min_size).width = (1+ (uwinp->zoom_min).width ) & (~1); };
{ (((Tilwin *)(uwinp->winp)) -> desired_size).height = ( (uwinp->zoom_size).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> desired_size).width = ( (uwinp->zoom_size).width ) & (~1); };
}
Manage_Resatisfy( uwinp );
Manage_Finish( 1 );
return 1;
}
bool Manage_Set_Zoom_Min_Size( uwinp, pos, side, force, ctrl )
Userwin *uwinp;
TWPoint pos;
Side side;
bool force, ctrl;
{
Size max_size;
TWRectangle rect;
rect = (((Tilwin *)(uwinp->winp)) -> rect);
Manage_Start();
if ( uwinp->zoomed )
uwinp->zoom_min = (((Tilwin *)(uwinp->winp)) -> min_size);
uwinp->zoom_min =
Manage_Calc_Size( uwinp->zoom_min, rect, side, pos );
if ( ( (uwinp)->options[(int)(ENFORCE_CLIENT_MAXIMUMS)] ) )
{ if ((uwinp->zoom_min).width < (uwinp->client_max).width) (uwinp->zoom_min).width = (uwinp->zoom_min).width; else (uwinp->zoom_min).width = (uwinp->client_max).width; if ((uwinp->zoom_min).height < (uwinp->client_max).height) (uwinp->zoom_min).height = (uwinp->zoom_min).height; else (uwinp->zoom_min).height = (uwinp->client_max).height; }
{ if ((uwinp->regular_min).width < ((((Tilwin *)(uwinp->winp)) -> max_size)).width) (uwinp->regular_min).width = (uwinp->regular_min).width; else (uwinp->regular_min).width = ((((Tilwin *)(uwinp->winp)) -> max_size)).width; if ((uwinp->regular_min).height < ((((Tilwin *)(uwinp->winp)) -> max_size)).height) (uwinp->regular_min).height = (uwinp->regular_min).height; else (uwinp->regular_min).height = ((((Tilwin *)(uwinp->winp)) -> max_size)).height; }
if ( ( (uwinp)->options[(int)(ENFORCE_CLIENT_MINIMUMS)] ) )
{ if ((uwinp->zoom_min).width > (uwinp->client_min).width) (uwinp->zoom_min).width = (uwinp->zoom_min).width; else (uwinp->zoom_min).width = (uwinp->client_min).width; if ((uwinp->zoom_min).height > (uwinp->client_min).height) (uwinp->zoom_min).height = (uwinp->zoom_min).height; else (uwinp->zoom_min).height = (uwinp->client_min).height; }
max_size = (((Tilwin *)(uwinp->winp)) -> max_size);
if ( ( user_global_options[(int)(RESET_MAX_ON_INCREASE)] ) || force )
{ if ((max_size).width > (uwinp->zoom_min).width) (max_size).width = (max_size).width; else (max_size).width = (uwinp->zoom_min).width; if ((max_size).height > (uwinp->zoom_min).height) (max_size).height = (max_size).height; else (max_size).height = (uwinp->zoom_min).height; }
else
{ if ((uwinp->zoom_min).width < (max_size).width) (uwinp->zoom_min).width = (uwinp->zoom_min).width; else (uwinp->zoom_min).width = (max_size).width; if ((uwinp->zoom_min).height < (max_size).height) (uwinp->zoom_min).height = (uwinp->zoom_min).height; else (uwinp->zoom_min).height = (max_size).height; }
{ (((Tilwin *)(uwinp->winp)) -> max_size).height = (1+ (max_size).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> max_size).width = (1+ (max_size).width ) & (~1); };
if ( uwinp->zoomed )
{
{ if ((uwinp->zoom_min).width > ((((Tilwin *)(uwinp->winp)) -> desired_size)).width) (uwinp->zoom_size).width = (uwinp->zoom_min).width; else (uwinp->zoom_size).width = ((((Tilwin *)(uwinp->winp)) -> desired_size)).width; if ((uwinp->zoom_min).height > ((((Tilwin *)(uwinp->winp)) -> desired_size)).height) (uwinp->zoom_size).height = (uwinp->zoom_min).height; else (uwinp->zoom_size).height = ((((Tilwin *)(uwinp->winp)) -> desired_size)).height; }
{ (((Tilwin *)(uwinp->winp)) -> min_size).height = (1+ (uwinp->zoom_min).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> min_size).width = (1+ (uwinp->zoom_min).width ) & (~1); };
{ (((Tilwin *)(uwinp->winp)) -> desired_size).height = ( (uwinp->zoom_size).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> desired_size).width = ( (uwinp->zoom_size).width ) & (~1); };
}
else
{
{ if ((uwinp->zoom_size).width > (uwinp->zoom_min).width) (uwinp->zoom_size).width = (uwinp->zoom_size).width; else (uwinp->zoom_size).width = (uwinp->zoom_min).width; if ((uwinp->zoom_size).height > (uwinp->zoom_min).height) (uwinp->zoom_size).height = (uwinp->zoom_size).height; else (uwinp->zoom_size).height = (uwinp->zoom_min).height; }
{ if ((uwinp->zoom_min).width < ((((Tilwin *)(uwinp->winp)) -> min_size)).width) (uwinp->regular_min).width = (uwinp->zoom_min).width; else (uwinp->regular_min).width = ((((Tilwin *)(uwinp->winp)) -> min_size)).width; if ((uwinp->zoom_min).height < ((((Tilwin *)(uwinp->winp)) -> min_size)).height) (uwinp->regular_min).height = (uwinp->zoom_min).height; else (uwinp->regular_min).height = ((((Tilwin *)(uwinp->winp)) -> min_size)).height; }
{ (((Tilwin *)(uwinp->winp)) -> min_size).height = (1+ (uwinp->regular_min).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> min_size).width = (1+ (uwinp->regular_min).width ) & (~1); };
}
Manage_Resatisfy( uwinp );
Manage_Finish( 1 );
return 1;
}
bool Manage_Set_Regular_Desired_Size( uwinp, pos, side, force, ctrl )
Userwin *uwinp;
TWPoint pos;
Side side;
bool force, ctrl;
{
Size max_size;
TWRectangle rect;
rect = (((Tilwin *)(uwinp->winp)) -> rect);
Manage_Start();
if (! uwinp->zoomed )
{
uwinp->regular_size = (((Tilwin *)(uwinp->winp)) -> desired_size);
uwinp->regular_min = (((Tilwin *)(uwinp->winp)) -> min_size);
}
else
uwinp->zoom_min = (((Tilwin *)(uwinp->winp)) -> min_size);
uwinp->regular_size =
Manage_Calc_Size( uwinp->regular_size, rect, side, pos );
if ( ( (uwinp)->options[(int)(ENFORCE_CLIENT_MAXIMUMS)] ) )
{ if ((uwinp->regular_size).width < (uwinp->client_max).width) (uwinp->regular_size).width = (uwinp->regular_size).width; else (uwinp->regular_size).width = (uwinp->client_max).width; if ((uwinp->regular_size).height < (uwinp->client_max).height) (uwinp->regular_size).height = (uwinp->regular_size).height; else (uwinp->regular_size).height = (uwinp->client_max).height; }
if ( ( (uwinp)->options[(int)(ENFORCE_CLIENT_MINIMUMS)] ) )
{ if ((uwinp->regular_size).width > (uwinp->client_min).width) (uwinp->regular_size).width = (uwinp->regular_size).width; else (uwinp->regular_size).width = (uwinp->client_min).width; if ((uwinp->regular_size).height > (uwinp->client_min).height) (uwinp->regular_size).height = (uwinp->regular_size).height; else (uwinp->regular_size).height = (uwinp->client_min).height; }
max_size = (((Tilwin *)(uwinp->winp)) -> max_size);
if ( ( user_global_options[(int)(RESET_MAX_ON_INCREASE)] ) || force )
{ if ((max_size).width > (uwinp->regular_size).width) (max_size).width = (max_size).width; else (max_size).width = (uwinp->regular_size).width; if ((max_size).height > (uwinp->regular_size).height) (max_size).height = (max_size).height; else (max_size).height = (uwinp->regular_size).height; }
else
{ if ((uwinp->regular_size).width < (max_size).width) (uwinp->regular_size).width = (uwinp->regular_size).width; else (uwinp->regular_size).width = (max_size).width; if ((uwinp->regular_size).height < (max_size).height) (uwinp->regular_size).height = (uwinp->regular_size).height; else (uwinp->regular_size).height = (max_size).height; }
{ (((Tilwin *)(uwinp->winp)) -> max_size).height = (1+ (max_size).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> max_size).width = (1+ (max_size).width ) & (~1); };
if ( ( user_global_options[(int)(RESET_MIN_ON_DECREASE)] ) || force )
{ if ((uwinp->regular_min).width < (uwinp->regular_size).width) (uwinp->regular_min).width = (uwinp->regular_min).width; else (uwinp->regular_min).width = (uwinp->regular_size).width; if ((uwinp->regular_min).height < (uwinp->regular_size).height) (uwinp->regular_min).height = (uwinp->regular_min).height; else (uwinp->regular_min).height = (uwinp->regular_size).height; }
else
{ if ((uwinp->regular_size).width > (uwinp->regular_min).width) (uwinp->regular_size).width = (uwinp->regular_size).width; else (uwinp->regular_size).width = (uwinp->regular_min).width; if ((uwinp->regular_size).height > (uwinp->regular_min).height) (uwinp->regular_size).height = (uwinp->regular_size).height; else (uwinp->regular_size).height = (uwinp->regular_min).height; }
if (! uwinp->zoomed)
{
{ (((Tilwin *)(uwinp->winp)) -> min_size).height = (1+ (uwinp->regular_min).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> min_size).width = (1+ (uwinp->regular_min).width ) & (~1); };
{ (((Tilwin *)(uwinp->winp)) -> desired_size).height = ( (uwinp->regular_size).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> desired_size).width = ( (uwinp->regular_size).width ) & (~1); };
}
else
{
{ if ((uwinp->regular_size).width > ((((Tilwin *)(uwinp->winp)) -> size)).width) (uwinp->zoom_size).width = (uwinp->regular_size).width; else (uwinp->zoom_size).width = ((((Tilwin *)(uwinp->winp)) -> size)).width; if ((uwinp->regular_size).height > ((((Tilwin *)(uwinp->winp)) -> size)).height) (uwinp->zoom_size).height = (uwinp->regular_size).height; else (uwinp->zoom_size).height = ((((Tilwin *)(uwinp->winp)) -> size)).height; }
{ (((Tilwin *)(uwinp->winp)) -> desired_size).height = ( (uwinp->zoom_size).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> desired_size).width = ( (uwinp->zoom_size).width ) & (~1); };
}
Manage_Finish( 1 );
return 1;
}
bool Manage_Set_Zoom_Desired_Size( uwinp, pos, side, force, ctrl )
Userwin *uwinp;
TWPoint pos;
Side side;
bool force, ctrl;
{
Size max_size;
TWRectangle rect;
rect = (((Tilwin *)(uwinp->winp)) -> rect);
Manage_Start();
if ( uwinp->zoomed )
{
uwinp->zoom_size = (((Tilwin *)(uwinp->winp)) -> desired_size);
uwinp->zoom_min = (((Tilwin *)(uwinp->winp)) -> min_size);
}
else
uwinp->regular_min = (((Tilwin *)(uwinp->winp)) -> min_size);
uwinp->zoom_size =
Manage_Calc_Size( uwinp->zoom_size, rect, side, pos );
if ( ( (uwinp)->options[(int)(ENFORCE_CLIENT_MAXIMUMS)] ) )
{ if ((uwinp->zoom_size).width < (uwinp->client_max).width) (uwinp->zoom_size).width = (uwinp->zoom_size).width; else (uwinp->zoom_size).width = (uwinp->client_max).width; if ((uwinp->zoom_size).height < (uwinp->client_max).height) (uwinp->zoom_size).height = (uwinp->zoom_size).height; else (uwinp->zoom_size).height = (uwinp->client_max).height; }
if ( ( (uwinp)->options[(int)(ENFORCE_CLIENT_MINIMUMS)] ) )
{ if ((uwinp->zoom_size).width > (uwinp->client_min).width) (uwinp->zoom_size).width = (uwinp->zoom_size).width; else (uwinp->zoom_size).width = (uwinp->client_min).width; if ((uwinp->zoom_size).height > (uwinp->client_min).height) (uwinp->zoom_size).height = (uwinp->zoom_size).height; else (uwinp->zoom_size).height = (uwinp->client_min).height; }
max_size = (((Tilwin *)(uwinp->winp)) -> max_size);
if ( ( user_global_options[(int)(RESET_MAX_ON_INCREASE)] ) || force )
{ if ((max_size).width > (uwinp->zoom_size).width) (max_size).width = (max_size).width; else (max_size).width = (uwinp->zoom_size).width; if ((max_size).height > (uwinp->zoom_size).height) (max_size).height = (max_size).height; else (max_size).height = (uwinp->zoom_size).height; }
else
{ if ((uwinp->zoom_size).width < (max_size).width) (uwinp->zoom_size).width = (uwinp->zoom_size).width; else (uwinp->zoom_size).width = (max_size).width; if ((uwinp->zoom_size).height < (max_size).height) (uwinp->zoom_size).height = (uwinp->zoom_size).height; else (uwinp->zoom_size).height = (max_size).height; }
{ (((Tilwin *)(uwinp->winp)) -> max_size).height = (1+ (max_size).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> max_size).width = (1+ (max_size).width ) & (~1); };
if ( ( user_global_options[(int)(RESET_MIN_ON_DECREASE)] ) || force )
{ if ((uwinp->zoom_min).width < (uwinp->zoom_size).width) (uwinp->zoom_min).width = (uwinp->zoom_min).width; else (uwinp->zoom_min).width = (uwinp->zoom_size).width; if ((uwinp->zoom_min).height < (uwinp->zoom_size).height) (uwinp->zoom_min).height = (uwinp->zoom_min).height; else (uwinp->zoom_min).height = (uwinp->zoom_size).height; }
else
{ if ((uwinp->zoom_size).width > (uwinp->zoom_min).width) (uwinp->zoom_size).width = (uwinp->zoom_size).width; else (uwinp->zoom_size).width = (uwinp->zoom_min).width; if ((uwinp->zoom_size).height > (uwinp->zoom_min).height) (uwinp->zoom_size).height = (uwinp->zoom_size).height; else (uwinp->zoom_size).height = (uwinp->zoom_min).height; }
if (uwinp->zoomed)
{
{ (((Tilwin *)(uwinp->winp)) -> min_size).height = (1+ (uwinp->zoom_min).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> min_size).width = (1+ (uwinp->zoom_min).width ) & (~1); };
{ (((Tilwin *)(uwinp->winp)) -> desired_size).height = ( (uwinp->zoom_size).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> desired_size).width = ( (uwinp->zoom_size).width ) & (~1); };
}
else
{
if ( ( user_global_options[(int)(RESET_MIN_ON_DECREASE)] ) || force )
{
{ if ((uwinp->regular_min).width < (uwinp->zoom_size).width) (uwinp->regular_min).width = (uwinp->regular_min).width; else (uwinp->regular_min).width = (uwinp->zoom_size).width; if ((uwinp->regular_min).height < (uwinp->zoom_size).height) (uwinp->regular_min).height = (uwinp->regular_min).height; else (uwinp->regular_min).height = (uwinp->zoom_size).height; }
{ (((Tilwin *)(uwinp->winp)) -> min_size).height = (1+ (uwinp->regular_min).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> min_size).width = (1+ (uwinp->regular_min).width ) & (~1); };
}
else
{
{ if ((uwinp->zoom_size).width > (uwinp->regular_min).width) (uwinp->zoom_size).width = (uwinp->zoom_size).width; else (uwinp->zoom_size).width = (uwinp->regular_min).width; if ((uwinp->zoom_size).height > (uwinp->regular_min).height) (uwinp->zoom_size).height = (uwinp->zoom_size).height; else (uwinp->zoom_size).height = (uwinp->regular_min).height; }
}
{ if ((uwinp->zoom_size).width < ((((Tilwin *)(uwinp->winp)) -> size)).width) (uwinp->regular_size).width = (uwinp->zoom_size).width; else (uwinp->regular_size).width = ((((Tilwin *)(uwinp->winp)) -> size)).width; if ((uwinp->zoom_size).height < ((((Tilwin *)(uwinp->winp)) -> size)).height) (uwinp->regular_size).height = (uwinp->zoom_size).height; else (uwinp->regular_size).height = ((((Tilwin *)(uwinp->winp)) -> size)).height; }
{ (((Tilwin *)(uwinp->winp)) -> desired_size).height = ( (uwinp->regular_size).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> desired_size).width = ( (uwinp->regular_size).width ) & (~1); };
}
Manage_Finish( 1 );
return 1;
}
bool Manage_Set_Max_Size( uwinp, pos, side, force, ctrl )
Userwin *uwinp;
TWPoint pos;
Side side;
bool force, ctrl;
{
Size max_size;
TWRectangle rect;
rect = (((Tilwin *)(uwinp->winp)) -> rect);
Manage_Start();
max_size = Manage_Calc_Size(
(((Tilwin *)(uwinp->winp)) -> max_size), rect, side, pos );
if (uwinp->zoomed)
uwinp->zoom_min = (((Tilwin *)(uwinp->winp)) -> min_size);
else
uwinp->regular_min = (((Tilwin *)(uwinp->winp)) -> min_size);
if ( ( (uwinp)->options[(int)(ENFORCE_CLIENT_MAXIMUMS)] ) )
{ if ((max_size).width < (uwinp->client_max).width) (max_size).width = (max_size).width; else (max_size).width = (uwinp->client_max).width; if ((max_size).height < (uwinp->client_max).height) (max_size).height = (max_size).height; else (max_size).height = (uwinp->client_max).height; }
if ( ( (uwinp)->options[(int)(ENFORCE_CLIENT_MINIMUMS)] ) )
{ if ((max_size).width > (uwinp->client_min).width) (max_size).width = (max_size).width; else (max_size).width = (uwinp->client_min).width; if ((max_size).height > (uwinp->client_min).height) (max_size).height = (max_size).height; else (max_size).height = (uwinp->client_min).height; }
if ( ( user_global_options[(int)(RESET_MIN_ON_DECREASE)] ) || force )
{
{ if ((uwinp->regular_min).width < (max_size).width) (uwinp->regular_min).width = (uwinp->regular_min).width; else (uwinp->regular_min).width = (max_size).width; if ((uwinp->regular_min).height < (max_size).height) (uwinp->regular_min).height = (uwinp->regular_min).height; else (uwinp->regular_min).height = (max_size).height; }
{ if ((uwinp->zoom_min).width < (max_size).width) (uwinp->zoom_min).width = (uwinp->zoom_min).width; else (uwinp->zoom_min).width = (max_size).width; if ((uwinp->zoom_min).height < (max_size).height) (uwinp->zoom_min).height = (uwinp->zoom_min).height; else (uwinp->zoom_min).height = (max_size).height; }
}
else
{
{ if ((max_size).width > (uwinp->regular_min).width) (max_size).width = (max_size).width; else (max_size).width = (uwinp->regular_min).width; if ((max_size).height > (uwinp->regular_min).height) (max_size).height = (max_size).height; else (max_size).height = (uwinp->regular_min).height; }
{ if ((max_size).width > (uwinp->zoom_min).width) (max_size).width = (max_size).width; else (max_size).width = (uwinp->zoom_min).width; if ((max_size).height > (uwinp->zoom_min).height) (max_size).height = (max_size).height; else (max_size).height = (uwinp->zoom_min).height; }
}
{ (((Tilwin *)(uwinp->winp)) -> max_size).height = (1+ (max_size).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> max_size).width = (1+ (max_size).width ) & (~1); };
if ( uwinp->zoomed )
{
{ if ((max_size).width < ((((Tilwin *)(uwinp->winp)) -> desired_size)).width) (uwinp->zoom_size).width = (max_size).width; else (uwinp->zoom_size).width = ((((Tilwin *)(uwinp->winp)) -> desired_size)).width; if ((max_size).height < ((((Tilwin *)(uwinp->winp)) -> desired_size)).height) (uwinp->zoom_size).height = (max_size).height; else (uwinp->zoom_size).height = ((((Tilwin *)(uwinp->winp)) -> desired_size)).height; }
{ (((Tilwin *)(uwinp->winp)) -> desired_size).height = ( (uwinp->zoom_size).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> desired_size).width = ( (uwinp->zoom_size).width ) & (~1); };
{ if ((uwinp->regular_size).width < (max_size).width) (uwinp->regular_size).width = (uwinp->regular_size).width; else (uwinp->regular_size).width = (max_size).width; if ((uwinp->regular_size).height < (max_size).height) (uwinp->regular_size).height = (uwinp->regular_size).height; else (uwinp->regular_size).height = (max_size).height; }
{ (((Tilwin *)(uwinp->winp)) -> min_size).height = (1+ (uwinp->zoom_min).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> min_size).width = (1+ (uwinp->zoom_min).width ) & (~1); };
}
else
{
{ if ((max_size).width < ((((Tilwin *)(uwinp->winp)) -> desired_size)).width) (uwinp->regular_size).width = (max_size).width; else (uwinp->regular_size).width = ((((Tilwin *)(uwinp->winp)) -> desired_size)).width; if ((max_size).height < ((((Tilwin *)(uwinp->winp)) -> desired_size)).height) (uwinp->regular_size).height = (max_size).height; else (uwinp->regular_size).height = ((((Tilwin *)(uwinp->winp)) -> desired_size)).height; }
{ (((Tilwin *)(uwinp->winp)) -> desired_size).height = ( (uwinp->regular_size).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> desired_size).width = ( (uwinp->regular_size).width ) & (~1); };
{ if ((uwinp->zoom_size).width < (max_size).width) (uwinp->zoom_size).width = (uwinp->zoom_size).width; else (uwinp->zoom_size).width = (max_size).width; if ((uwinp->zoom_size).height < (max_size).height) (uwinp->zoom_size).height = (uwinp->zoom_size).height; else (uwinp->zoom_size).height = (max_size).height; }
{ (((Tilwin *)(uwinp->winp)) -> min_size).height = (1+ (uwinp->regular_min).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> min_size).width = (1+ (uwinp->regular_min).width ) & (~1); };
}
Manage_Resatisfy( uwinp );
Manage_Finish( 1 );
return 1;
}
void Manage_Min_Max_Resizing( uwinp, siz1, siz2 )
Userwin *uwinp;
Size siz1, siz2;
{
Size siz;
{ if ((siz1).width < (siz2).width) (siz).width = (siz1).width; else (siz).width = (siz2).width; if ((siz1).height < (siz2).height) (siz).height = (siz1).height; else (siz).height = (siz2).height; }
{ (((Tilwin *)(uwinp->winp)) -> min_size).height = (1+ (siz).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> min_size).width = (1+ (siz).width ) & (~1); };
{ if ((siz1).width > (siz2).width) (siz).width = (siz1).width; else (siz).width = (siz2).width; if ((siz1).height > (siz2).height) (siz).height = (siz1).height; else (siz).height = (siz2).height; }
{ (((Tilwin *)(uwinp->winp)) -> max_size).height = (1+ (siz).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> max_size).width = (1+ (siz).width ) & (~1); };
}
void Manage_Cancel_Resizing( uwinp )
Userwin *uwinp;
{
{ (((Tilwin *)(uwinp->winp)) -> min_size).height = (1+ (uwinp->prev_min).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> min_size).width = (1+ (uwinp->prev_min).width ) & (~1); };
{ (((Tilwin *)(uwinp->winp)) -> max_size).height = (1+ (uwinp->prev_max).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> max_size).width = (1+ (uwinp->prev_max).width ) & (~1); };
}
void Manage_Finish_Resizing( uwinp, side, force, undesire )
Userwin *uwinp;
Side side;
bool force, undesire;
{
Size newmin, newmax;
Size siz, prevsiz, desired;
bool horiz, vert, enlarge;
horiz = ( side != NoSide ) && ( side != Top ) && ( side != Bottom );
vert = ( side != NoSide ) && ( side != Left ) && ( side != Right );
newmin = uwinp->prev_min;
newmax = uwinp->prev_max;
if ( uwinp->sized )
prevsiz = (((Tilwin *)(uwinp->winp)) -> prev_size);
else
{
prevsiz = newmin;
if ( ( user_global_options[(int)(RESET_MIN_MAX_ON_UNSZD_MAN_OPEN)] ) )
{
force = 1;
horiz = 1;
vert = 1;
}
}
siz = (((Tilwin *)(uwinp->winp)) -> size);
if (! undesire)
{
desired = (((Tilwin *)(uwinp->winp)) -> desired_size);
enlarge = (desired.width > prevsiz.width) ||
(desired.height > prevsiz.height);
if ( horiz )
{
if ( desired.width >= prevsiz.width )
{
if ( force || ( user_global_options[(int)(RESET_MIN_ON_ENLARGE)] ) ||
( ( user_global_options[(int)(RESET_TIED_ZOOMED_MIN_ON_ENLARGE)] ) &&
(uwinp->zoomed) &&
( (uwinp)->options[(int)(LISTENER_TIED_TO_ZOOM)] ) ) )
newmin.width = siz.width;
}
else
{
if ( (! enlarge) &&
( force || ( user_global_options[(int)(RESET_MAX_ON_SHRINK)] ) ) )
newmax.width = siz.width;
}
}
if ( vert )
{
if ( desired.height >= prevsiz.height )
{
if ( force || ( user_global_options[(int)(RESET_MIN_ON_ENLARGE)] ) ||
( ( user_global_options[(int)(RESET_TIED_ZOOMED_MIN_ON_ENLARGE)] )
&&
(uwinp->zoomed) &&
( (uwinp)->options[(int)(LISTENER_TIED_TO_ZOOM)] ) ) )
newmin.height = siz.height;
}
else
{
if ( (! enlarge) &&
( force || ( user_global_options[(int)(RESET_MAX_ON_SHRINK)] ) ) )
newmax.height = siz.height;
}
}
}
if ( ( user_global_options[(int)(RESET_MIN_ON_DECREASE)] ) || force )
{ if ((newmin).width < (siz).width) (newmin).width = (newmin).width; else (newmin).width = (siz).width; if ((newmin).height < (siz).height) (newmin).height = (newmin).height; else (newmin).height = (siz).height; }
if ( ( user_global_options[(int)(RESET_MAX_ON_INCREASE)] ) || force )
{ if ((newmax).width > (siz).width) (newmax).width = (newmax).width; else (newmax).width = (siz).width; if ((newmax).height > (siz).height) (newmax).height = (newmax).height; else (newmax).height = (siz).height; }
{ (((Tilwin *)(uwinp->winp)) -> min_size).height = (1+ (newmin).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> min_size).width = (1+ (newmin).width ) & (~1); };
{ (((Tilwin *)(uwinp->winp)) -> max_size).height = (1+ (newmax).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> max_size).width = (1+ (newmax).width ) & (~1); };
{ if ((newmax).width < ((((Tilwin *)(uwinp->winp)) -> desired_size)).width) (siz).width = (newmax).width; else (siz).width = ((((Tilwin *)(uwinp->winp)) -> desired_size)).width; if ((newmax).height < ((((Tilwin *)(uwinp->winp)) -> desired_size)).height) (siz).height = (newmax).height; else (siz).height = ((((Tilwin *)(uwinp->winp)) -> desired_size)).height; }
{ if ((newmin).width > (siz).width) (siz).width = (newmin).width; else (siz).width = (siz).width; if ((newmin).height > (siz).height) (siz).height = (newmin).height; else (siz).height = (siz).height; }
{ (((Tilwin *)(uwinp->winp)) -> desired_size).height = ( (siz).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> desired_size).width = ( (siz).width ) & (~1); };
}
static bool Manage_Slide_Resize( uwinp, center, siz, side )
Userwin *uwinp;
TWPoint center;
Size siz;
Side side;
{
bool result;
Size shrinksiz;
Side shrinkside = NoSide;
if (! ( user_global_options[(int)(TRY_SLIDING_ON_RESIZE)] ))
return Tilwin_Resize( uwinp->winp, siz, side );
{ bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && (! ( user_global_options[(int)(PREF_SLD_TO_AUTO_CL_ON_RESIZE)] )))); { { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && (! ( user_global_options[(int)(PREF_SLD_TO_AUTO_SHR_ON_RESIZE)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(uwinp->winp)) -> options[ (int) FIXED_SIZE ] ); ( ((Tilwin *)(uwinp->winp)) -> options[ (int) FIXED_SIZE ] ) = ((temp_val || ( user_global_options[(int)(PREF_SLD_TO_SHRINK_ON_RESIZE)] ))); { result = Tilwin_Resize( uwinp->winp, siz, side ); }; ( ((Tilwin *)(uwinp->winp)) -> options[ (int) FIXED_SIZE ] ) = (temp_val); } }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); } }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }
# 3414 "manage.c"
;
if ( result ) return 1;
shrinksiz = (((Tilwin *)(uwinp->winp)) -> size);
switch (side)
{
case Top:
case Top_Left:
case Top_Right:
if ( siz.height < shrinksiz.height )
{
shrinkside = Top;
shrinksiz.height = siz.height;
}
break;
case Bottom:
case Bottom_Left:
case Bottom_Right:
if ( siz.height < shrinksiz.height )
{
shrinkside = Bottom;
shrinksiz.height = siz.height;
}
break;
default:
break;
}
switch (side)
{
case Left:
case Top_Left:
case Bottom_Left:
if ( siz.width < shrinksiz.width )
{
shrinkside = Left;
shrinksiz.width = siz.width;
}
break;
case Right:
case Top_Right:
case Bottom_Right:
if ( siz.width < shrinksiz.width )
{
shrinkside = Right;
shrinksiz.width = siz.width;
}
break;
default:
break;
}
if ( shrinkside != NoSide )
Tilwin_Resize( uwinp->winp, shrinksiz, shrinkside );
return Tilwin_Enlarge_Nearest( uwinp->winp, center, siz );
}
static bool Manage_Cntr_Neighborhood_Rsz( uwinp, center, siz, side )
Userwin *uwinp;
TWPoint center;
Size siz;
Side side;
{
bool result;
TWRectangle rect;
if (! ( user_global_options[(int)(TRY_CTR_NBRHD_ON_RESIZE)] ))
return Manage_Slide_Resize( uwinp, center, siz, side );
{ bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && (! ( user_global_options[(int)(PF_CTR_NBR_2_AUTO_CL_ON_RESIZE)] ) ))); { { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && (! ( user_global_options[(int)(PF_CTR_NBR_2_AUTO_SHR_ON_RESIZE)] ) ))); { { bool temp_val; temp_val = ( ((Tilwin *)(uwinp->winp)) -> options[ (int) FIXED_SIZE ] ); ( ((Tilwin *)(uwinp->winp)) -> options[ (int) FIXED_SIZE ] ) = ((temp_val || ( user_global_options[(int)(PF_CTR_NBR_2_SHRINK_ON_RESIZE)] ))); { result = Manage_Slide_Resize( uwinp, center, siz, side ); }; ( ((Tilwin *)(uwinp->winp)) -> options[ (int) FIXED_SIZE ] ) = (temp_val); } }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); } }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }
# 3499 "manage.c"
;
if ( result ) return 1;
rect = Manage_Neighborhood_Rectangle( 0.5, center, siz );
return Tilwin_Open_Nearest_In_Area( uwinp->winp, rect, center, siz );
}
static bool Manage_Edge_Neighborhood_Resize( uwinp, center, siz, side )
Userwin *uwinp;
TWPoint center;
Size siz;
Side side;
{
bool result;
TWRectangle rect;
if (! ( user_global_options[(int)(TRY_EDGE_NEIGHBORHOOD_ON_RESIZE)] ))
return Manage_Cntr_Neighborhood_Rsz( uwinp, center, siz, side );
{ bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && (! ( user_global_options[(int)(PF_EDGE_NBR_2_AUTO_CL_ON_RESIZE)] ) ))); { { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && (! ( user_global_options[(int)(PF_EDGE_NBR_2_AUTO_SHR_ON_RESIZE)] ) ))); { { bool temp_val; temp_val = ( ((Tilwin *)(uwinp->winp)) -> options[ (int) FIXED_SIZE ] ); ( ((Tilwin *)(uwinp->winp)) -> options[ (int) FIXED_SIZE ] ) = ((temp_val || ( user_global_options[(int)(PF_EDGE_NBR_2_SHRINK_ON_RESIZE)] ))); { result = Manage_Cntr_Neighborhood_Rsz( uwinp, center, siz, side ); }; ( ((Tilwin *)(uwinp->winp)) -> options[ (int) FIXED_SIZE ] ) = (temp_val); } }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); } }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }
# 3532 "manage.c"
;
if ( result ) return 1;
rect = Manage_Neighborhood_Rectangle( 1.0, center, siz );
return Tilwin_Open_Nearest_In_Area( uwinp->winp, rect, center, siz );
}
bool Manage_Resize( uwinp, pos, side, force, undesire )
Userwin *uwinp;
Side side;
TWPoint pos;
bool force, undesire;
{
Size siz, desired;
TWPoint center;
TWRectangle rect;
bool result;
siz = (((Tilwin *)(uwinp->winp)) -> size);
rect = (((Tilwin *)(uwinp->winp)) -> rect);
siz = Manage_Calc_Size( siz, rect, side, pos );
if (! ( ( user_global_options[(int)(RESET_MIN_ON_DECREASE)] ) || force ))
{ if ((siz).width > (uwinp->prev_min).width) (siz).width = (siz).width; else (siz).width = (uwinp->prev_min).width; if ((siz).height > (uwinp->prev_min).height) (siz).height = (siz).height; else (siz).height = (uwinp->prev_min).height; }
if (! ( ( user_global_options[(int)(RESET_MAX_ON_INCREASE)] ) || force ))
{ if ((siz).width < (uwinp->prev_max).width) (siz).width = (siz).width; else (siz).width = (uwinp->prev_max).width; if ((siz).height < (uwinp->prev_max).height) (siz).height = (siz).height; else (siz).height = (uwinp->prev_max).height; }
desired = (((Tilwin *)(uwinp->winp)) -> desired_size);
switch (side)
{
case Top:
case Top_Left:
case Top_Right:
rect.top_y = rect.bottom_y - siz.height + 1;
desired.height = siz.height;
break;
case Bottom:
case Bottom_Left:
case Bottom_Right:
rect.bottom_y = rect.top_y + siz.height - 1;
desired.height = siz.height;
break;
default:
break;
}
switch (side)
{
case Left:
case Top_Left:
case Bottom_Left:
rect.left_x = rect.right_x - siz.width + 1;
desired.width = siz.width;
break;
case Right:
case Top_Right:
case Bottom_Right:
rect.right_x = rect.left_x + siz.width - 1;
desired.width = siz.width;
break;
default:
break;
}
{ ((center)).x = 1 + (((rect)).left_x + ((rect)).right_x) / 2; ((center)).y = 1 + (((rect)).top_y + ((rect)).bottom_y) / 2; };
switch (side)
{
case Top:
case Bottom:
center.x = (((Tilwin *)(uwinp->winp)) -> position).x;
break;
case Left:
case Right:
center.y = (((Tilwin *)(uwinp->winp)) -> position).y;
break;
default:
break;
}
Manage_Start();
Manage_Save_State( uwinp );
if (! undesire)
{
{ (((Tilwin *)(uwinp->winp)) -> desired_size).height = ( (desired).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> desired_size).width = ( (desired).width ) & (~1); };
if ( ( side != Top ) && ( side != Bottom ) )
((Tilwin *)(uwinp->winp))->width_stamp = State_Get_Timestamp();
if ( ( side != Left ) && ( side != Right ) )
((Tilwin *)(uwinp->winp))->height_stamp = State_Get_Timestamp();
(((Tilwin *)(uwinp->winp)) -> position = (center));
uwinp->positioned = 1;
}
Manage_Min_Max_Resizing( uwinp, siz, (((Tilwin *)(uwinp->winp)) -> size) );
Manage_Start_Trying();
{ bool temp_val; temp_val = ( globals[(int)(PREFER_CLOSE_TO_SHRINK)] ); globals[(int)(PREFER_CLOSE_TO_SHRINK)] = (( user_global_options[(int)(PREFER_CL_TO_SHR_ON_RESIZE)] )); { { bool temp_val; temp_val = ( ((Tilwin *)(uwinp->winp)) -> options[ (int) FIXED_SIZE ] ); ( ((Tilwin *)(uwinp->winp)) -> options[ (int) FIXED_SIZE ] ) = ((temp_val || ! ( user_global_options[(int)(ALLOW_SHRINK_ON_RESIZE)] ))); { result = ( ( ((((Tilwin *)(uwinp->winp)) -> size)).width == (siz).width ) && ( ((((Tilwin *)(uwinp->winp)) -> size)).height == (siz).height ) ) || ( Manage_Edge_Neighborhood_Resize( uwinp, center, siz, side ) && State_Was_Just_Modified(uwinp->winp) ); if ( (! result) && ( listener != uwinp ) && Manage_Can_Try_Listener_Unzoom() ) result = Manage_Edge_Neighborhood_Resize( uwinp, center, siz, side ) && State_Was_Just_Modified(uwinp->winp); }; ( ((Tilwin *)(uwinp->winp)) -> options[ (int) FIXED_SIZE ] ) = (temp_val); } }; globals[(int)(PREFER_CLOSE_TO_SHRINK)] = (temp_val); }
# 3649 "manage.c"
Manage_Finish_Trying( result );
if ( result )
Manage_Finish_Resizing( uwinp, side, force, undesire );
else
Manage_Cancel_Resizing( uwinp );
{ if ( (((Tilwin *)(uwinp->winp)) -> size).height < (((Tilwin *)(uwinp->winp)) -> prev_size).height ) { uwinp->winp; FIXED_HEIGHT; 1; { if ( (((Tilwin *)(uwinp->winp)) -> size).width < (((Tilwin *)(uwinp->winp)) -> prev_size).width ) window_excursion else { Size temp_min; temp_siz; temp_siz = temp_min = (((Tilwin *)(uwinp->winp)) -> min_size); temp_siz.width = (((Tilwin *)(uwinp->winp)) -> size).width; { (((Tilwin *)(uwinp->winp)) -> min_size).height = (1+ (temp_siz).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> min_size).width = (1+ (temp_siz).width ) & (~1); }; window_excursion; { (((Tilwin *)(uwinp->winp)) -> min_size).height = (1+ (temp_min).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> min_size).width = (1+ (temp_min).width ) & (~1); }; } }; } else { Size temp_min, temp_siz; temp_siz = temp_min = (((Tilwin *)(uwinp->winp)) -> min_size); temp_siz.height = (((Tilwin *)(uwinp->winp)) -> size).height; { (((Tilwin *)(uwinp->winp)) -> min_size).height = (1+ (temp_siz).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> min_size).width = (1+ (temp_siz).width ) & (~1); }; { if ( (((Tilwin *)(uwinp->winp)) -> size).width < (((Tilwin *)(uwinp->winp)) -> prev_size).width ) window_excursion else { Size temp_min, temp_siz; temp_siz = temp_min = (((Tilwin *)(uwinp->winp)) -> min_size); temp_siz.width = (((Tilwin *)(uwinp->winp)) -> size).width; { (((Tilwin *)(uwinp->winp)) -> min_size).height = (1+ (temp_siz).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> min_size).width = (1+ (temp_siz).width ) & (~1); };
window_excursion
# 3656 "manage.c"
; { (((Tilwin *)(uwinp->winp)) -> min_size).height = (1+ (temp_min).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> min_size).width = (1+ (temp_min).width ) & (~1); }; } }; { (((Tilwin *)(uwinp->winp)) -> min_size).height = (1+ (temp_min).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> min_size).width = (1+ (temp_min).width ) & (~1); }; } }
;
return result;
}
static bool zoom_forced;
void Manage_Start_Open( uwinp, force_zoom )
Userwin *uwinp;
bool force_zoom;
{
Manage_Start();
Manage_Start_Trying();
Manage_Save_State( uwinp );
zoom_forced = 0;
if (! (((Tilwin *)(uwinp->winp)) -> Am_I_Open))
{
if ( (((Tilwin *)(uwinp->iconp)) -> Am_I_Open) )
Tilwin_Close( uwinp->iconp );
if ( ( (uwinp)->options[(int)(ZOOM_ON_OPEN)] ) ||
( (! uwinp->ever_opened ) &&
( user_global_options[(int)(ZOOM_ON_CREATE)] ) ) )
force_zoom = 1;
if ( force_zoom && (! uwinp->zoomed) )
{
zoom_forced = 1;
Manage_Do_Zoom( uwinp, 0 );
}
}
}
bool Manage_Can_Try_Self_Unzoom( uwinp )
Userwin *uwinp;
{
bool result;
result = ( user_global_options[(int)(PREFER_UNZOOM_TO_CLOSE)] )
&& (uwinp->zoomed)
&& (! (((Tilwin *)(uwinp->winp)) -> Am_I_Open) );
if ( result )
{
zoom_forced = 0;
Manage_Do_Unzoom( uwinp, 0 );
}
return result;
}
bool Manage_Finish_Unsized_Open( uwinp, result )
Userwin *uwinp;
bool result;
{
if ( result )
{
uwinp->open_stamp = State_Get_Timestamp();
uwinp->ever_opened = 1;
}
else if ( zoom_forced )
Manage_Do_Unzoom( uwinp, 0 );
Manage_Finish_Trying( result );
return Manage_Finish_Locked( uwinp, result );
}
bool Manage_Finish_Sized_Open( uwinp, result )
Userwin *uwinp;
bool result;
{
if ( result )
{
uwinp->open_stamp = State_Get_Timestamp();
uwinp->ever_opened = 1;
}
else if ( zoom_forced )
Manage_Do_Unzoom( uwinp, 0 );
Manage_Finish_Trying( result );
return Manage_Finish_Minned( uwinp, result );
}
bool Manage_Move( uwinp, pos )
Userwin *uwinp;
TWPoint pos;
{
bool result;
Manage_Start();
(((Tilwin *)(uwinp->winp)) -> position = (pos));
uwinp->positioned = 1;
if ( (! uwinp->ever_opened ) ||
( user_global_options[(int)(TREAT_MOVE_LIKE_RELOCATE)] ) )
{
uwinp->ever_opened = 1;
return Manage_Finish_Minned( uwinp,
Manage_Center_Open( uwinp, pos ) );
}
else
{
Manage_Start_Trying();
result = Tilwin_Open( uwinp->winp, pos,
(((Tilwin *)(uwinp->winp)) -> size) );
if ( (! result) && ( listener != uwinp )
&& Manage_Can_Try_Listener_Unzoom() )
result = Tilwin_Open( uwinp->winp, pos,
(((Tilwin *)(uwinp->winp)) -> size) );
Manage_Finish_Trying( result );
return Manage_Finish_Fixed_Completely( uwinp, result );
}
}
bool Manage_Icon_Move( uwinp, pos )
Userwin *uwinp;
TWPoint pos;
{
bool result;
Manage_Start();
(((Tilwin *)(uwinp->iconp)) -> position = (pos));
if ( ( user_global_options[(int)(TREAT_MOVE_LIKE_RELOCATE)] ) )
result = Manage_Neighborhood_Icon_Open( uwinp, pos );
else
{
Manage_Start_Trying();
result = Tilwin_Open( uwinp->iconp, pos,
(((Tilwin *)(uwinp->iconp)) -> size) );
if ( (! result) && Manage_Can_Try_Listener_Unzoom() )
result = Tilwin_Open( uwinp->iconp, pos,
(((Tilwin *)(uwinp->iconp)) -> size) );
Manage_Finish_Trying( result );
}
if ( result )
window_excursion
else
Manage_Finish( 0 );
return result;
}
# 3827 "manage.c"
static void Manage_User_Open_Configure( uwinp, pos, siz,
pos_act, siz_act )
Userwin *uwinp;
TWPoint pos;
Size siz;
bool pos_act, siz_act;
{
bool result = 1;
if ( pos_act && siz_act )
{
result = Manage_Center_Neighborhood_Open( uwinp, pos, siz );
}
else if ( pos_act )
{
result = Manage_Center_Neighborhood_Open( uwinp, pos,
(((Tilwin *)(uwinp->winp)) -> desired_size) );
}
else if ( siz_act )
{
result = Manage_Center_Neighborhood_Open( uwinp,
(((Tilwin *)(uwinp->winp))->center), siz );
}
if (! result)
Draw_Flash();
}
void Manage_Client_Configure( uwinp, flags, top_left, bodsiz, detail )
Userwin *uwinp;
unsigned long flags;
TWPoint top_left;
Size bodsiz;
int detail;
{
TWPoint center;
Size tempsiz, siz, desired;
TWRectangle rect;
Manage_Start();
rect = Region_Body_Rectangle( uwinp );
{ (tempsiz).width = (rect).right_x - (rect).left_x + 1; (tempsiz).height = (rect).bottom_y - (rect).top_y + 1; };
if ( ( ( (flags) & (1L << 2) ) != 0 ) )
tempsiz.width = bodsiz.width;
if ( ( ( (flags) & (1L << 3) ) != 0 ) )
tempsiz.height = bodsiz.height;
if ( ( ( (flags) & (1L << 0) ) != 0 ) )
rect.left_x = top_left.x;
if ( ( ( (flags) & (1L << 1) ) != 0 ) )
rect.top_y = top_left.y;
rect.right_x = rect.left_x + tempsiz.width - 1;
rect.bottom_y = rect.top_y + tempsiz.height - 1;
rect = Region_Adjust_Rectangle( uwinp, rect );
{ ((center)).x = 1 + (((rect)).left_x + ((rect)).right_x) / 2; ((center)).y = 1 + (((rect)).top_y + ((rect)).bottom_y) / 2; };
{ (siz).width = (rect).right_x - (rect).left_x + 1; (siz).height = (rect).bottom_y - (rect).top_y + 1; };
if ( ( ( ( (flags) & (1L << 2) ) != 0 ) || ( ( (flags) & (1L << 3) ) != 0 ) ) )
uwinp->sized = 1;
if ( ( ( ( (flags) & (1L << 0) ) != 0 ) || ( ( (flags) & (1L << 1) ) != 0 ) ) )
{
uwinp->positioned = 1;
(((Tilwin *)(uwinp->winp)) -> position = (center));
}
if ( ( (uwinp)->options[(int)(ENFORCE_CLIENT_MINIMUMS)] )
)
{ if ((siz).width > (uwinp->client_min).width) (siz).width = (siz).width; else (siz).width = (uwinp->client_min).width; if ((siz).height > (uwinp->client_min).height) (siz).height = (siz).height; else (siz).height = (uwinp->client_min).height; };
if ( ( (uwinp)->options[(int)(ENFORCE_CLIENT_MAXIMUMS)] )
)
{ if ((siz).width < (uwinp->client_max).width) (siz).width = (siz).width; else (siz).width = (uwinp->client_max).width; if ((siz).height < (uwinp->client_max).height) (siz).height = (siz).height; else (siz).height = (uwinp->client_max).height; };
{ if (((((Tilwin *)(uwinp->winp)) -> min_size)).width < (siz).width) (tempsiz).width = ((((Tilwin *)(uwinp->winp)) -> min_size)).width; else (tempsiz).width = (siz).width; if (((((Tilwin *)(uwinp->winp)) -> min_size)).height < (siz).height) (tempsiz).height = ((((Tilwin *)(uwinp->winp)) -> min_size)).height; else (tempsiz).height = (siz).height; }
;
{ (((Tilwin *)(uwinp->winp)) -> min_size).height = (1+ (tempsiz).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> min_size).width = (1+ (tempsiz).width ) & (~1); };
{ if (((((Tilwin *)(uwinp->winp)) -> max_size)).width > (siz).width) (tempsiz).width = ((((Tilwin *)(uwinp->winp)) -> max_size)).width; else (tempsiz).width = (siz).width; if (((((Tilwin *)(uwinp->winp)) -> max_size)).height > (siz).height) (tempsiz).height = ((((Tilwin *)(uwinp->winp)) -> max_size)).height; else (tempsiz).height = (siz).height; }
;
{ (((Tilwin *)(uwinp->winp)) -> max_size).height = (1+ (tempsiz).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> max_size).width = (1+ (tempsiz).width ) & (~1); };
desired = (((Tilwin *)(uwinp->winp)) -> desired_size);
if ( ( ( (flags) & (1L << 2) ) != 0 ) )
desired.width = siz.width;
if ( ( ( (flags) & (1L << 3) ) != 0 ) )
desired.height = siz.height;
{ (((Tilwin *)(uwinp->winp)) -> desired_size).height = ( (desired).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> desired_size).width = ( (desired).width ) & (~1); };
if (! (! ( ( (((Tilwin *)(uwinp->winp))->rect).left_x == (((Tilwin *)(uwinp->winp))->prev_rect).left_x ) && ( (((Tilwin *)(uwinp->winp))->rect).right_x == (((Tilwin *)(uwinp->winp))->prev_rect).right_x ) && ( (((Tilwin *)(uwinp->winp))->rect).top_y == (((Tilwin *)(uwinp->winp))->prev_rect).top_y ) && ( (((Tilwin *)(uwinp->winp))->rect).bottom_y == (((Tilwin *)(uwinp->winp))->prev_rect).bottom_y ) ) ))
Client_Configure_Denied( uwinp );
if (! (((Tilwin *)(uwinp->winp)) -> Am_I_Open) )
{
Tilwin_Set( uwinp->winp, center, siz );
Manage_Finish_Minned( uwinp, 1 );
Manage_Cant_Undo();
}
else
{
Manage_User_Open_Configure( uwinp, center, siz,
( ( ( (flags) & (1L << 0) ) != 0 ) || ( ( (flags) & (1L << 1) ) != 0 ) ),
( ( ( (flags) & (1L << 2) ) != 0 ) || ( ( (flags) & (1L << 3) ) != 0 ) ) );
Manage_Finish_Minned( uwinp, 1 );
}
}
void Manage_Client_Set_Icon_Size( uwinp, siz )
Userwin *uwinp;
Size siz;
{
{ (((Tilwin *)(uwinp->iconp)) -> min_size).height = (1+ (siz).height ) & (~1); (((Tilwin *)(uwinp->iconp)) -> min_size).width = (1+ (siz).width ) & (~1); };
{ (((Tilwin *)(uwinp->iconp)) -> max_size).height = (1+ (siz).height ) & (~1); (((Tilwin *)(uwinp->iconp)) -> max_size).width = (1+ (siz).width ) & (~1); };
{ (((Tilwin *)(uwinp->iconp)) -> desired_size).height = ( (siz).height ) & (~1); (((Tilwin *)(uwinp->iconp)) -> desired_size).width = ( (siz).width ) & (~1); };
if ( (((Tilwin *)(uwinp->iconp)) -> Am_I_Open) )
{
{ Userwin *cur_listener; Userwin *cur_sublistener; cur_listener = listener; cur_sublistener = sublistener; if ( sublistener != (Userwin *)((void *)0) ) { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); { Manage_Start(); Tilwin_Set_Size( uwinp->iconp, siz ); Manage_Finish( 1 ); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); { Manage_Start(); Tilwin_Set_Size( uwinp->iconp, siz ); Manage_Finish( 1 ); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } } else { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_listener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); { Manage_Start(); Tilwin_Set_Size( uwinp->iconp, siz ); Manage_Finish( 1 ); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); { Manage_Start(); Tilwin_Set_Size( uwinp->iconp, siz ); Manage_Finish( 1 ); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); } } }
Manage_Cant_Undo();
}
else
Tilwin_Set_Size( uwinp->iconp, siz );
}
void Manage_Client_Set_Icon_Position( uwinp, pt )
Userwin *uwinp;
TWPoint pt;
{
uwinp->icon_positioned = 1;
(((Tilwin *)(uwinp->iconp)) -> position = (pt));
if ( (((Tilwin *)(uwinp->iconp)) -> Am_I_Open) )
{
{ Userwin *cur_listener; Userwin *cur_sublistener; cur_listener = listener; cur_sublistener = sublistener; if ( sublistener != (Userwin *)((void *)0) ) { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); { Manage_Start(); Manage_Icon_Open( uwinp ); Manage_Finish( 1 ); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); { Manage_Start(); Manage_Icon_Open( uwinp ); Manage_Finish( 1 ); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } } else { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_listener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); { Manage_Start(); Manage_Icon_Open( uwinp ); Manage_Finish( 1 ); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); { Manage_Start(); Manage_Icon_Open( uwinp ); Manage_Finish( 1 ); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); } } }
Manage_Cant_Undo();
}
else
Tilwin_Set( uwinp->iconp, pt, (((Tilwin *)(uwinp->iconp)) -> size) );
}
# 4026 "manage.c"
static void Manage_Act_Hints_Open( uwinp, pos, siz, pos_act, siz_act )
Userwin *uwinp;
TWPoint pos;
Size siz;
bool pos_act, siz_act;
{
bool result;
if ( pos_act )
result = Manage_Center_Neighborhood_Open(
uwinp, pos, siz );
else if ( siz_act )
result = Manage_Center_Neighborhood_Open(
uwinp, (((Tilwin *)(uwinp->winp))->center), siz );
if (! result)
Draw_Flash();
}
static void Manage_Act_Hints_Closed( uwinp, pos, siz, pos_act, siz_act )
Userwin *uwinp;
TWPoint pos;
Size siz;
bool pos_act, siz_act;
{
if ( pos_act && siz_act )
Tilwin_Set( uwinp->winp, pos, siz );
else if ( pos_act )
Tilwin_Set( uwinp->winp, pos, (((Tilwin *)(uwinp->winp))->center) );
else if ( siz_act )
Tilwin_Set( uwinp->winp, (((Tilwin *)(uwinp->winp))->center), siz );
}
void Manage_Client_Set_Geometry_Hints( uwinp, flags,
top_left, size )
Userwin *uwinp;
long flags;
TWPoint top_left;
Size size;
{
Size siz;
TWRectangle rect;
TWPoint pos;
bool pos_act, siz_act;
bool by_user;
if (! uwinp->prepared)
Manage_Prepare( uwinp );
Manage_Start();
Manage_Save_State( uwinp );
if ( uwinp->zoomed )
{
uwinp->zoom_min = (((Tilwin *)(uwinp->winp)) -> min_size);
uwinp->zoom_size = (((Tilwin *)(uwinp->winp)) -> desired_size);
}
else
{
uwinp->regular_min = (((Tilwin *)(uwinp->winp)) -> min_size);
uwinp->regular_size = (((Tilwin *)(uwinp->winp)) -> desired_size);
}
by_user =
( ( ( (flags) & (1L << 0) ) != 0 ) ||
( ( (flags) & (1L << 1) ) != 0 ) );
if (! ( ( ( (flags) & ((1L << 3) | (1L << 1)) ) != 0 ) && (! ( (uwinp)->options[(int)(IGNORE_SIZE_HINTS)] ) ) && ( uwinp->ever_opened || (! ( (uwinp)->options[(int)(IGNORE_INITIAL_SIZE_HINTS)] ) ) ) ) )
size = Region_Unadjust_Size( uwinp, uwinp->regular_size );
rect = Region_Body_Rectangle( uwinp );
if ( ( ( ( (flags) & ((1L << 2) | (1L << 0)) ) != 0 ) && (! ( (uwinp)->options[(int)(IGNORE_POSITION_HINTS)] ) ) && ( uwinp->ever_opened || (! ( (uwinp)->options[(int)(IGNORE_INITIAL_POSITION_HINTS)] ) ) ) ) )
{
uwinp->positioned = 1;
rect.top_y = top_left.y;
rect.left_x = top_left.x;
}
rect.right_x = rect.left_x + size.width - 1;
rect.bottom_y = rect.top_y + size.height - 1;
rect = Region_Adjust_Rectangle( uwinp, rect );
{ ((pos)).x = 1 + (((rect)).left_x + ((rect)).right_x) / 2; ((pos)).y = 1 + (((rect)).top_y + ((rect)).bottom_y) / 2; };
if ( ( ( ( (flags) & ((1L << 2) | (1L << 0)) ) != 0 ) && (! ( (uwinp)->options[(int)(IGNORE_POSITION_HINTS)] ) ) && ( uwinp->ever_opened || (! ( (uwinp)->options[(int)(IGNORE_INITIAL_POSITION_HINTS)] ) ) ) ) )
(((Tilwin *)(uwinp->winp)) -> position = (pos));
{ (size).width = (rect).right_x - (rect).left_x + 1; (size).height = (rect).bottom_y - (rect).top_y + 1; };
if ( ! uwinp->ever_opened )
{
if ( Profile_Supplies_User_Value( uwinp, NORMAL_DESIRED_WIDTH ) )
size.width = uwinp->regular_size.width;
if ( Profile_Supplies_User_Value( uwinp, NORMAL_DESIRED_HEIGHT ) )
size.height = uwinp->regular_size.height;
}
siz_act = ( ( (flags) & (1L << 1) ) != 0 );
if ( ( (uwinp)->options[(int)(ENFORCE_CLIENT_MINIMUMS)] )
)
{ if ((size).width > (uwinp->client_min).width) (size).width = (size).width; else (size).width = (uwinp->client_min).width; if ((size).height > (uwinp->client_min).height) (size).height = (size).height; else (size).height = (uwinp->client_min).height; };
if ( ( (uwinp)->options[(int)(ENFORCE_CLIENT_MAXIMUMS)] )
)
{ if ((size).width < (uwinp->client_max).width) (size).width = (size).width; else (size).width = (uwinp->client_max).width; if ((size).height < (uwinp->client_max).height) (size).height = (size).height; else (size).height = (uwinp->client_max).height; };
if ( ( ( (flags) & (1L << 1) ) != 0 ) )
{
if ( ( user_global_options[(int)(RESET_MIN_ON_DECREASE)] ) )
{ if ((uwinp->regular_min).width < (size).width) (uwinp->regular_min).width = (uwinp->regular_min).width; else (uwinp->regular_min).width = (size).width; if ((uwinp->regular_min).height < (size).height) (uwinp->regular_min).height = (uwinp->regular_min).height; else (uwinp->regular_min).height = (size).height; }
else
{ if ((size).width > (uwinp->regular_min).width) (size).width = (size).width; else (size).width = (uwinp->regular_min).width; if ((size).height > (uwinp->regular_min).height) (size).height = (size).height; else (size).height = (uwinp->regular_min).height; };
if ( ( user_global_options[(int)(RESET_MAX_ON_INCREASE)] ) )
{
{ if (((((Tilwin *)(uwinp->winp)) -> max_size)).width > (size).width) (siz).width = ((((Tilwin *)(uwinp->winp)) -> max_size)).width; else (siz).width = (size).width; if (((((Tilwin *)(uwinp->winp)) -> max_size)).height > (size).height) (siz).height = ((((Tilwin *)(uwinp->winp)) -> max_size)).height; else (siz).height = (size).height; };
{ (((Tilwin *)(uwinp->winp)) -> max_size).height = (1+ (siz).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> max_size).width = (1+ (siz).width ) & (~1); };
}
else
{ if ((size).width < ((((Tilwin *)(uwinp->winp)) -> max_size)).width) (size).width = (size).width; else (size).width = ((((Tilwin *)(uwinp->winp)) -> max_size)).width; if ((size).height < ((((Tilwin *)(uwinp->winp)) -> max_size)).height) (size).height = (size).height; else (size).height = ((((Tilwin *)(uwinp->winp)) -> max_size)).height; };
}
else
{
{ if ((size).width < ((((Tilwin *)(uwinp->winp)) -> max_size)).width) (size).width = (size).width; else (size).width = ((((Tilwin *)(uwinp->winp)) -> max_size)).width; if ((size).height < ((((Tilwin *)(uwinp->winp)) -> max_size)).height) (size).height = (size).height; else (size).height = ((((Tilwin *)(uwinp->winp)) -> max_size)).height; };
{ if ((size).width > (uwinp->regular_min).width) (size).width = (size).width; else (size).width = (uwinp->regular_min).width; if ((size).height > (uwinp->regular_min).height) (size).height = (size).height; else (size).height = (uwinp->regular_min).height; };
}
if ( ( ( ( (flags) & ((1L << 3) | (1L << 1)) ) != 0 ) && (! ( (uwinp)->options[(int)(IGNORE_SIZE_HINTS)] ) ) && ( uwinp->ever_opened || (! ( (uwinp)->options[(int)(IGNORE_INITIAL_SIZE_HINTS)] ) ) ) ) )
{
uwinp->sized = 1;
uwinp->regular_size = size;
}
else
if ( uwinp->zoomed )
siz_act = 0;
pos_act = ( ( (flags) & (1L << 0) ) != 0 );
{ if ((uwinp->zoom_size).width > (uwinp->regular_size).width) (uwinp->zoom_size).width = (uwinp->zoom_size).width; else (uwinp->zoom_size).width = (uwinp->regular_size).width; if ((uwinp->zoom_size).height > (uwinp->regular_size).height) (uwinp->zoom_size).height = (uwinp->zoom_size).height; else (uwinp->zoom_size).height = (uwinp->regular_size).height; }
;
{ if ((uwinp->zoom_min).width > (uwinp->regular_min).width) (uwinp->zoom_min).width = (uwinp->zoom_min).width; else (uwinp->zoom_min).width = (uwinp->regular_min).width; if ((uwinp->zoom_min).height > (uwinp->regular_min).height) (uwinp->zoom_min).height = (uwinp->zoom_min).height; else (uwinp->zoom_min).height = (uwinp->regular_min).height; }
;
if ( uwinp->zoomed )
{
{ (((Tilwin *)(uwinp->winp)) -> min_size).height = (1+ (uwinp->zoom_min).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> min_size).width = (1+ (uwinp->zoom_min).width ) & (~1); };
{ (((Tilwin *)(uwinp->winp)) -> desired_size).height = ( (uwinp->zoom_size).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> desired_size).width = ( (uwinp->zoom_size).width ) & (~1); };
}
else
{
{ (((Tilwin *)(uwinp->winp)) -> min_size).height = (1+ (uwinp->regular_min).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> min_size).width = (1+ (uwinp->regular_min).width ) & (~1); };
{ (((Tilwin *)(uwinp->winp)) -> desired_size).height = ( (uwinp->regular_size).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> desired_size).width = ( (uwinp->regular_size).width ) & (~1); };
}
if ( (! ( siz_act || pos_act ) ) ||
( (! uwinp->ever_opened) && uwinp->layout_found ) )
{
Manage_Finish( 1 );
if (! by_user)
Manage_Cant_Undo();
}
else if (! (((Tilwin *)((uwinp)->winp)) -> Am_I_Open) )
{
Manage_Act_Hints_Closed( uwinp, pos, size,
pos_act, siz_act );
Manage_Finish( 1 );
Manage_Cant_Undo();
}
else if ( by_user )
{
Manage_Act_Hints_Open( uwinp, pos, size,
pos_act, siz_act );
Manage_Finish_Minned( uwinp, 1 );
}
else
{ Userwin *cur_listener; Userwin *cur_sublistener; cur_listener = listener; cur_sublistener = sublistener; if ( sublistener != (Userwin *)((void *)0) ) { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); { Manage_Act_Hints_Open( uwinp, pos, size, pos_act, siz_act ); Manage_Finish_Minned( uwinp, 1 ); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); { Manage_Act_Hints_Open( uwinp, pos, size, pos_act, siz_act ); Manage_Finish_Minned( uwinp, 1 ); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } } else { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_listener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); { Manage_Act_Hints_Open( uwinp, pos, size, pos_act, siz_act ); Manage_Finish_Minned( uwinp, 1 ); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); { Manage_Act_Hints_Open( uwinp, pos, size, pos_act, siz_act ); Manage_Finish_Minned( uwinp, 1 ); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); } } }
;
}
void Manage_Initial_Geometry( uwinp, top_left, bodsiz )
Userwin *uwinp;
TWPoint top_left;
Size bodsiz;
{
TWPoint center;
Size siz;
TWRectangle rect;
if (! uwinp->prepared)
Manage_Prepare( uwinp );
rect.left_x = top_left.x;
rect.top_y = top_left.y;
rect.right_x = rect.left_x + bodsiz.width - 1;
rect.bottom_y = rect.top_y + bodsiz.height - 1;
rect = Region_Adjust_Rectangle( uwinp, rect );
{ ((center)).x = 1 + (((rect)).left_x + ((rect)).right_x) / 2; ((center)).y = 1 + (((rect)).top_y + ((rect)).bottom_y) / 2; };
{ (siz).width = (rect).right_x - (rect).left_x + 1; (siz).height = (rect).bottom_y - (rect).top_y + 1; };
if ( Profile_Supplies_User_Value( uwinp, NORMAL_DESIRED_WIDTH ) )
siz.width = uwinp->regular_size.width;
if ( Profile_Supplies_User_Value( uwinp, NORMAL_DESIRED_HEIGHT ) )
siz.height = uwinp->regular_size.height;
{ if ((siz).width < ((((Tilwin *)(uwinp->winp)) -> max_size)).width) (siz).width = (siz).width; else (siz).width = ((((Tilwin *)(uwinp->winp)) -> max_size)).width; if ((siz).height < ((((Tilwin *)(uwinp->winp)) -> max_size)).height) (siz).height = (siz).height; else (siz).height = ((((Tilwin *)(uwinp->winp)) -> max_size)).height; };
{ if ((siz).width > ((((Tilwin *)(uwinp->winp)) -> min_size)).width) (siz).width = (siz).width; else (siz).width = ((((Tilwin *)(uwinp->winp)) -> min_size)).width; if ((siz).height > ((((Tilwin *)(uwinp->winp)) -> min_size)).height) (siz).height = (siz).height; else (siz).height = ((((Tilwin *)(uwinp->winp)) -> min_size)).height; };
{ (((Tilwin *)(uwinp->winp)) -> desired_size).height = ( (siz).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> desired_size).width = ( (siz).width ) & (~1); };
Tilwin_Set( uwinp->winp, center, siz );
}
void Manage_Client_Set_Normal_Hints( uwinp, flags,
min_size, max_size, incr_size,
min_aspect, max_aspect, base_size )
Userwin *uwinp;
long flags;
Size min_size, max_size, incr_size, base_size;
TWPoint min_aspect, max_aspect;
{
Size siz;
bool act = 0;
if (! uwinp->prepared)
Manage_Prepare( uwinp );
Manage_Start();
Manage_Save_State( uwinp );
if ( uwinp->zoomed )
{
uwinp->zoom_min = (((Tilwin *)(uwinp->winp)) -> min_size);
uwinp->zoom_size = (((Tilwin *)(uwinp->winp)) -> desired_size);
}
else
{
uwinp->regular_min = (((Tilwin *)(uwinp->winp)) -> min_size);
uwinp->regular_size = (((Tilwin *)(uwinp->winp)) -> desired_size);
}
if ( Profile_Supplies_User_Value( uwinp, CLIENT_MAX_WIDTH ) )
max_size.width = uwinp->body_max.width;
if ( Profile_Supplies_User_Value( uwinp, CLIENT_MAX_HEIGHT ) )
max_size.height = uwinp->body_max.height;
if ( Profile_Supplies_User_Value( uwinp, CLIENT_MIN_WIDTH ) )
min_size.width = uwinp->body_min.width;
if ( Profile_Supplies_User_Value( uwinp, CLIENT_MIN_HEIGHT ) )
min_size.height = uwinp->body_min.height;
if ( ( ( (flags) & (1L << 5) ) != 0 ) )
{
if ( ( ( (flags) & (1L << 4) ) != 0 ) )
{ if ((max_size).width > (min_size).width) (max_size).width = (max_size).width; else (max_size).width = (min_size).width; if ((max_size).height > (min_size).height) (max_size).height = (max_size).height; else (max_size).height = (min_size).height; }
else if ( ( ( (flags) & (1L << 8) ) != 0 ) )
{
min_size = base_size;
{ if ((max_size).width > (min_size).width) (max_size).width = (max_size).width; else (max_size).width = (min_size).width; if ((max_size).height > (min_size).height) (max_size).height = (max_size).height; else (max_size).height = (min_size).height; }
}
uwinp->client_max = Region_Adjust_Size( uwinp, max_size );
if ( ( (uwinp)->options[(int)(ENFORCE_CLIENT_MAXIMUMS)] ) )
{
if ( ( (uwinp)->options[(int)(AUTO_RESATISFY_ON_RESET_MINMAX)] )
)
act = 1;
{ if (((((Tilwin *)(uwinp->winp)) -> max_size)).width < (uwinp->client_max).width) (siz).width = ((((Tilwin *)(uwinp->winp)) -> max_size)).width; else (siz).width = (uwinp->client_max).width; if (((((Tilwin *)(uwinp->winp)) -> max_size)).height < (uwinp->client_max).height) (siz).height = ((((Tilwin *)(uwinp->winp)) -> max_size)).height; else (siz).height = (uwinp->client_max).height; }
{ (((Tilwin *)(uwinp->winp)) -> max_size).height = (1+ (siz).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> max_size).width = (1+ (siz).width ) & (~1); };
{ if ((uwinp->regular_min).width < (uwinp->client_max).width) (uwinp->regular_min).width = (uwinp->regular_min).width; else (uwinp->regular_min).width = (uwinp->client_max).width; if ((uwinp->regular_min).height < (uwinp->client_max).height) (uwinp->regular_min).height = (uwinp->regular_min).height; else (uwinp->regular_min).height = (uwinp->client_max).height; }
;
{ if ((uwinp->regular_size).width < (uwinp->client_max).width) (uwinp->regular_size).width = (uwinp->regular_size).width; else (uwinp->regular_size).width = (uwinp->client_max).width; if ((uwinp->regular_size).height < (uwinp->client_max).height) (uwinp->regular_size).height = (uwinp->regular_size).height; else (uwinp->regular_size).height = (uwinp->client_max).height; }
}
}
if ( ( ( (flags) & (1L << 4) ) != 0 ) || ( ( (flags) & (1L << 8) ) != 0 ) )
{
uwinp->body_min = min_size;
uwinp->client_min = Region_Adjust_Size( uwinp, min_size );
if ( ( (uwinp)->options[(int)(ENFORCE_CLIENT_MINIMUMS)] ) )
{
if ( ( (uwinp)->options[(int)(AUTO_RESATISFY_ON_RESET_MINMAX)] )
)
act = 1;
{ if (((((Tilwin *)(uwinp->winp)) -> min_size)).width > (uwinp->client_min).width) (siz).width = ((((Tilwin *)(uwinp->winp)) -> min_size)).width; else (siz).width = (uwinp->client_min).width; if (((((Tilwin *)(uwinp->winp)) -> min_size)).height > (uwinp->client_min).height) (siz).height = ((((Tilwin *)(uwinp->winp)) -> min_size)).height; else (siz).height = (uwinp->client_min).height; }
{ (((Tilwin *)(uwinp->winp)) -> min_size).height = (1+ (siz).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> min_size).width = (1+ (siz).width ) & (~1); };
{ if ((uwinp->regular_min).width > (uwinp->client_min).width) (uwinp->regular_min).width = (uwinp->regular_min).width; else (uwinp->regular_min).width = (uwinp->client_min).width; if ((uwinp->regular_min).height > (uwinp->client_min).height) (uwinp->regular_min).height = (uwinp->regular_min).height; else (uwinp->regular_min).height = (uwinp->client_min).height; }
;
{ if ((uwinp->regular_size).width > (uwinp->client_min).width) (uwinp->regular_size).width = (uwinp->regular_size).width; else (uwinp->regular_size).width = (uwinp->client_min).width; if ((uwinp->regular_size).height > (uwinp->client_min).height) (uwinp->regular_size).height = (uwinp->regular_size).height; else (uwinp->regular_size).height = (uwinp->client_min).height; }
;
}
}
if ( ( ( ((((Tilwin *)(uwinp->winp)) -> min_size)).width == ((((Tilwin *)(uwinp->winp)) -> max_size)).width ) && ( ((((Tilwin *)(uwinp->winp)) -> min_size)).height == ((((Tilwin *)(uwinp->winp)) -> max_size)).height ) )
)
uwinp->sized = 1;
{ if ((uwinp->zoom_size).width > (uwinp->regular_size).width) (uwinp->zoom_size).width = (uwinp->zoom_size).width; else (uwinp->zoom_size).width = (uwinp->regular_size).width; if ((uwinp->zoom_size).height > (uwinp->regular_size).height) (uwinp->zoom_size).height = (uwinp->zoom_size).height; else (uwinp->zoom_size).height = (uwinp->regular_size).height; }
;
{ if ((uwinp->zoom_min).width > (uwinp->regular_min).width) (uwinp->zoom_min).width = (uwinp->zoom_min).width; else (uwinp->zoom_min).width = (uwinp->regular_min).width; if ((uwinp->zoom_min).height > (uwinp->regular_min).height) (uwinp->zoom_min).height = (uwinp->zoom_min).height; else (uwinp->zoom_min).height = (uwinp->regular_min).height; }
;
if ( uwinp->zoomed )
{
{ (((Tilwin *)(uwinp->winp)) -> min_size).height = (1+ (uwinp->zoom_min).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> min_size).width = (1+ (uwinp->zoom_min).width ) & (~1); };
{ (((Tilwin *)(uwinp->winp)) -> desired_size).height = ( (uwinp->zoom_size).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> desired_size).width = ( (uwinp->zoom_size).width ) & (~1); };
}
else
{
{ (((Tilwin *)(uwinp->winp)) -> min_size).height = (1+ (uwinp->regular_min).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> min_size).width = (1+ (uwinp->regular_min).width ) & (~1); };
{ (((Tilwin *)(uwinp->winp)) -> desired_size).height = ( (uwinp->regular_size).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> desired_size).width = ( (uwinp->regular_size).width ) & (~1); };
}
if ( !act ||
( (! uwinp->ever_opened) && uwinp->layout_found ) )
{
Manage_Finish( 1 );
Manage_Cant_Undo();
}
else if (! (((Tilwin *)((uwinp)->winp)) -> Am_I_Open) )
{
Manage_Resatisfy( uwinp );
Manage_Finish( 1 );
Manage_Cant_Undo();
}
else
{ Userwin *cur_listener; Userwin *cur_sublistener; cur_listener = listener; cur_sublistener = sublistener; if ( sublistener != (Userwin *)((void *)0) ) { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); { { if( ! Manage_Resatisfy( uwinp ) ) Draw_Flash(); }; Manage_Finish_Minned( uwinp, 1 ); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); { { if( ! Manage_Resatisfy( uwinp ) ) Draw_Flash(); }; Manage_Finish_Minned( uwinp, 1 ); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } } else { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_listener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); { { if( ! Manage_Resatisfy( uwinp ) ) Draw_Flash(); }; Manage_Finish_Minned( uwinp, 1 ); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); { { if( ! Manage_Resatisfy( uwinp ) ) Draw_Flash(); }; Manage_Finish_Minned( uwinp, 1 ); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); } } }
}
extern bool Manage_Fixed_Open();
extern bool Manage_User_Open_Automatically();
bool Manage_Client_Open_Automatically( uwinp )
Userwin *uwinp;
{
bool result = 0;
if ( ! uwinp->ever_opened )
{
Manage_Start();
if ( uwinp->sized && uwinp->positioned )
{ Userwin *cur_listener; Userwin *cur_sublistener; cur_listener = listener; cur_sublistener = sublistener; if ( sublistener != (Userwin *)((void *)0) ) { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ENABLE_GRAVITY)] ); globals[(int)(ENABLE_GRAVITY)] = (0); { result = Manage_Fixed_Open( uwinp ); }; globals[(int)(ENABLE_GRAVITY)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ENABLE_GRAVITY)] ); globals[(int)(ENABLE_GRAVITY)] = (0); { result = Manage_Fixed_Open( uwinp ); }; globals[(int)(ENABLE_GRAVITY)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } } else { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_listener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ENABLE_GRAVITY)] ); globals[(int)(ENABLE_GRAVITY)] = (0); { result = Manage_Fixed_Open( uwinp ); }; globals[(int)(ENABLE_GRAVITY)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ENABLE_GRAVITY)] ); globals[(int)(ENABLE_GRAVITY)] = (0); { result = Manage_Fixed_Open( uwinp ); }; globals[(int)(ENABLE_GRAVITY)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); } } }
if (! result)
{ Userwin *cur_listener; Userwin *cur_sublistener; cur_listener = listener; cur_sublistener = sublistener; if ( sublistener != (Userwin *)((void *)0) ) { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); { result = Manage_User_Open_Automatically( uwinp, 0, 0 ); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); { result = Manage_User_Open_Automatically( uwinp, 0, 0 ); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } } else { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_listener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); { result = Manage_User_Open_Automatically( uwinp, 0, 0 ); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); { result = Manage_User_Open_Automatically( uwinp, 0, 0 ); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); } } }
if (! result)
{ Userwin *cur_listener; Userwin *cur_sublistener; cur_listener = listener; cur_sublistener = sublistener; if ( sublistener != (Userwin *)((void *)0) ) { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Initial_Icon_Open( uwinp ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Initial_Icon_Open( uwinp ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } } else { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_listener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Initial_Icon_Open( uwinp ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Initial_Icon_Open( uwinp ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); } } }
;
uwinp->ever_opened = 1;
Manage_Finish( 1 );
}
else
{ Userwin *cur_listener; Userwin *cur_sublistener; cur_listener = listener; cur_sublistener = sublistener; if ( sublistener != (Userwin *)((void *)0) ) { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); { result = Manage_User_Open_Automatically( uwinp, 0, 0 ); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); { result = Manage_User_Open_Automatically( uwinp, 0, 0 ); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } } else { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_listener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); { result = Manage_User_Open_Automatically( uwinp, 0, 0 ); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); { result = Manage_User_Open_Automatically( uwinp, 0, 0 ); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); } } }
return result;
}
static bool Manage_Exchange_Open( uwinp, pos, siz )
Userwin *uwinp;
TWPoint pos;
Size siz;
{
bool result;
Manage_Start_Trying();
result = Manage_Center_Neighborhood_Open( uwinp, pos, siz );
if ( (! result) && Manage_Can_Try_Listener_Unzoom() )
result = Manage_Center_Neighborhood_Open( uwinp, pos, siz );
Manage_Finish_Trying( result );
return result;
}
static bool Manage_Icon_Exchange_Open( uwinp, pos )
Userwin *uwinp;
TWPoint pos;
{
bool result;
result = Manage_Neighborhood_Icon_Open( uwinp, pos );
if (! result)
result = Manage_Icon_Open( uwinp );
return result;
}
static bool Manage_Icon_Exchange( uwinp1, uwinp2 )
Userwin *uwinp1, *uwinp2;
{
bool result;
TWPoint pt1, pt2;
pt1 = (((Tilwin *)(uwinp1->iconp))->center);
pt2 = (((Tilwin *)(uwinp2->iconp))->center);
Tilwin_Close( uwinp1->iconp );
{ bool temp_val; temp_val = ( globals[(int)(PREFER_CLOSE_TO_SHRINK)] ); globals[(int)(PREFER_CLOSE_TO_SHRINK)] = (( user_global_options[(int)(PREFER_CL_TO_SHR_ON_EXCHANGE)] )); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTO_CLOSE_ON_EXCHANGE)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTO_SHRINK_ON_EXCHANGE)] ))); { result = Manage_Icon_Exchange_Open( uwinp2, pt1 ); if ( result ) result = Manage_Icon_Exchange_Open( uwinp1, pt2 ); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(PREFER_CLOSE_TO_SHRINK)] = (temp_val); }
# 4495 "manage.c"
if ( result )
{
(((Tilwin *)(uwinp1->iconp)) -> position = (pt2));
(((Tilwin *)(uwinp2->iconp)) -> position = (pt1));
}
return result;
}
static bool Manage_Open_Exchange( uwinp1, uwinp2 )
Userwin *uwinp1, *uwinp2;
{
TWPoint pt1, pt2;
Size siz;
bool result;
Manage_Restart();
pt1 = (((Tilwin *)(uwinp1->winp))->center);
pt2 = (((Tilwin *)(uwinp2->winp))->center);
Tilwin_Close( uwinp1->winp );
{ bool temp_val; temp_val = ( user_global_options[(int)(UNZOOM_TIED_LSNR_IF_NECESSARY)] ); user_global_options[(int)(UNZOOM_TIED_LSNR_IF_NECESSARY)] = ((temp_val && ( ( listener != uwinp1 ) && ( listener != uwinp2 ) ))); { bool temp_val; temp_val = ( globals[(int)(PREFER_CLOSE_TO_SHRINK)] ); globals[(int)(PREFER_CLOSE_TO_SHRINK)] = (( user_global_options[(int)(PREFER_CL_TO_SHR_ON_EXCHANGE)] )); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTO_CLOSE_ON_EXCHANGE)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTO_SHRINK_ON_EXCHANGE)] ))); { siz = Tilwin_Checked_Desired_Size( uwinp2->winp ); result = Manage_Exchange_Open( uwinp2, pt1, siz ); if ( result ) window_excursion }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(PREFER_CLOSE_TO_SHRINK)] = (temp_val); }; user_global_options[(int)(UNZOOM_TIED_LSNR_IF_NECESSARY)] = (temp_val); }
# 4542 "manage.c"
if ( result )
{
(((Tilwin *)(uwinp1->winp)) -> position = (pt2));
uwinp1->positioned = 1;
(((Tilwin *)(uwinp2->winp)) -> position = (pt1));
uwinp2->positioned = 1;
}
return result;
}
static bool Manage_Different_Exchange( uwinp1, uwinp2 )
Userwin *uwinp1, *uwinp2;
{
TWPoint pt1, pt2;
Size siz;
bool result;
bool repos1 = 0;
bool repos2 = 0;
if ( uwinp2 == rtl_uwinp ) return 0;
Manage_Restart();
pt1 = (((Tilwin *)(uwinp1->winp))->center);
pt2 = (((Tilwin *)(uwinp2->iconp))->center);
Tilwin_Close( uwinp1->winp );
Tilwin_Close( uwinp2->iconp );
{ bool temp_val; temp_val = ( user_global_options[(int)(UNZOOM_TIED_LSNR_IF_NECESSARY)] ); user_global_options[(int)(UNZOOM_TIED_LSNR_IF_NECESSARY)] = ((temp_val && ( listener != uwinp1 ))); { { bool temp_val; temp_val = ( globals[(int)(PREFER_CLOSE_TO_SHRINK)] ); globals[(int)(PREFER_CLOSE_TO_SHRINK)] = (( user_global_options[(int)(PREFER_CL_TO_SHR_ON_EXCHANGE)] )); { { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTO_CLOSE_ON_EXCHANGE)] ))); { { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTO_SHRINK_ON_EXCHANGE)] ))); { siz = Tilwin_Checked_Desired_Size( uwinp2->winp ); if ( ( user_global_options[(int)(PREFER_EXCHANGED_LOC_ON_OPENING)] ) && (! ( uwinp2->positioned && ( (uwinp2)->options[(int)(REQUIRE_PREV_POS)] ) ) ) ) { result = Manage_Exchange_Open( uwinp2, pt1, siz ); if ( result ) repos2 = 1; } if (! result) result = Manage_Desktop_Open( uwinp2, siz ); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); } }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); } }; globals[(int)(PREFER_CLOSE_TO_SHRINK)] = (temp_val); } }; user_global_options[(int)(UNZOOM_TIED_LSNR_IF_NECESSARY)] = (temp_val); }
# 4598 "manage.c"
if (! result)
return 0;
window_excursion
# 4614 "manage.c"
if ( repos1 )
(((Tilwin *)(uwinp1->iconp)) -> position = (pt2));
if ( repos2 )
{
(((Tilwin *)(uwinp2->winp)) -> position = (pt1));
uwinp2->positioned = 1;
}
return 1;
}
bool Manage_Exchange( uwinp1, uwinp2 )
Userwin *uwinp1, *uwinp2;
{
bool open1, open2;
bool result;
Manage_Start();
open1 = ( uwinp1->current_type == body );
open2 = ( uwinp2->current_type == body );
if ( open1 && (! open2) )
{
result = Manage_Different_Exchange( uwinp1, uwinp2 );
Manage_Finish_Locked( uwinp2, result );
}
else if ( open2 && (! open1) )
{
result = Manage_Different_Exchange( uwinp2, uwinp1 );
Manage_Finish_Locked( uwinp1, result );
}
else if ( (! open1) && (! open2) )
{
result = Manage_Icon_Exchange( uwinp1, uwinp2 );
Manage_Finish( result );
}
else
{
result = 0;
if ( ( user_global_options[(int)(TRY_CTR_NBRHD_ON_EXCHANGE)] )
&&
( user_global_options[(int)(TRY_CTR_NBRHD_ON_OPEN)] )
)
{
result = Manage_Open_Exchange( uwinp1, uwinp2 );
if (! result)
result = Manage_Open_Exchange( uwinp2, uwinp1 );
}
if (! result)
{ bool temp_val; temp_val = ( user_global_options[(int)(TRY_CTR_NBRHD_ON_OPEN)] ); user_global_options[(int)(TRY_CTR_NBRHD_ON_OPEN)] = (0); { result = Manage_Open_Exchange( uwinp1, uwinp2 ); if (! result) result = Manage_Open_Exchange( uwinp2, uwinp1 ); }; user_global_options[(int)(TRY_CTR_NBRHD_ON_OPEN)] = (temp_val); }
window_excursion;
}
return result;
}
static void Manage_Remove_Window( uwinp )
Userwin *uwinp;
{
TimeStamp stamp;
Manage_Start();
if ( (((Tilwin *)(uwinp->winp)) -> Am_I_Open) )
{
Tilwin_Close( uwinp->winp );
if ( ( user_global_options[(int)(AUTO_REPOPULATE_ON_CLOSE)] ) )
{
if ( ( user_global_options[(int)(AUTO_DESIRED_ENLARGE)] ) )
Manage_Ordered_Desire();
if ( ( user_global_options[(int)(ONLY_REPOPULATE_SINCE_ON_CLOSE)] ) )
stamp = uwinp->open_stamp;
else
stamp = (TimeStamp)0;
Manage_Repopulate_Since( stamp, 0, 0, 1 );
}
}
Manage_Finish( 1 );
}
static void Manage_Remove( uwinp )
Userwin *uwinp;
{
if ( (((Tilwin *)(uwinp->winp)) -> Am_I_Open) )
Tilwin_Close( uwinp->winp );
else if ( (((Tilwin *)(uwinp->iconp)) -> Am_I_Open) )
Tilwin_Close( uwinp->iconp );
Closed_Remove( uwinp );
}
void Manage_Close( uwinp )
Userwin *uwinp;
{
extern void Manage_Contract();
if ( uwinp->client_state != 2 )
Manage_Remove_Window( uwinp );
else if ( ( ( ((((Tilwin *)(uwinp->winp)) -> min_size)).width == ((((Tilwin *)(uwinp->winp)) -> size)).width ) && ( ((((Tilwin *)(uwinp->winp)) -> min_size)).height == ((((Tilwin *)(uwinp->winp)) -> size)).height ) )
)
Manage_Remove_Window( uwinp );
else
Manage_Contract( uwinp );
}
void Manage_Client_Close( uwinp )
Userwin *uwinp;
{
{ Userwin *cur_listener; Userwin *cur_sublistener; cur_listener = listener; cur_sublistener = sublistener; if ( sublistener != (Userwin *)((void *)0) ) { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Remove_Window( uwinp ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Remove_Window( uwinp ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } } else { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_listener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Remove_Window( uwinp ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Remove_Window( uwinp ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); } } };
}
void Manage_Client_Open_Icon( uwinp )
Userwin *uwinp;
{
if ( uwinp->ever_opened )
Manage_Client_Close( uwinp );
else
{
uwinp->ever_opened = 1;
{ Userwin *cur_listener; Userwin *cur_sublistener; cur_listener = listener; cur_sublistener = sublistener; if ( sublistener != (Userwin *)((void *)0) ) { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Initial_Icon_Open( uwinp ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Initial_Icon_Open( uwinp ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } } else { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_listener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Initial_Icon_Open( uwinp ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Initial_Icon_Open( uwinp ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); } } }
}
}
static void Manage_Close_Icon( uwinp )
Userwin *uwinp;
{
Manage_Start();
if ( (((Tilwin *)(uwinp->iconp)) -> Am_I_Open) )
Tilwin_Close( uwinp->iconp );
Manage_Finish( 1 );
}
static void Manage_Inactivate( uwinp )
Userwin *uwinp;
{
if ( (((Tilwin *)(uwinp->winp)) -> Am_I_Open) )
Manage_Remove_Window( uwinp );
else
Manage_Close_Icon( uwinp );
}
void Manage_Client_Close_Icon( uwinp )
Userwin *uwinp;
{
{ Userwin *cur_listener; Userwin *cur_sublistener; cur_listener = listener; cur_sublistener = sublistener; if ( sublistener != (Userwin *)((void *)0) ) { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Inactivate( uwinp ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Inactivate( uwinp ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } } else { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_listener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Inactivate( uwinp ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Inactivate( uwinp ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); } } }
}
void Manage_Group_Close( uwinp )
Userwin *uwinp;
{
Tilwinp winp;
Userwin *group;
TimeStamp stamp;
group = uwinp->group;
if ( group == (Userwin *)((void *)0) )
{
Manage_Close( uwinp );
return;
}
Manage_Start();
group->group = group;
Tilwin_Gen_Closed_Windows();
while ( (winp = Tilwin_Next_Window()) != (Tilwinp)((void *)0) )
{
uwinp = ((Userwin *)(( ((winp) == (Tilwinp)((void *)0)) ? (pointer)((void *)0) : (((Tilwin *)(winp))->id) )));
if ( (uwinp->group == group) &&
(! (((Tilwin *)(uwinp->winp)) -> Am_I_Open)) &&
(! (((Tilwin *)(uwinp->iconp)) -> Am_I_Open)) )
{
Manage_Save_State( uwinp );
Closed_Remove( uwinp );
uwinp->group_state = uwinp->wm_state;
}
}
stamp = last_stamp;
Tilwin_Gen_Open_Windows();
while ( (winp = Tilwin_Next_Window()) != (Tilwinp)((void *)0) )
{
uwinp = ((Userwin *)(( ((winp) == (Tilwinp)((void *)0)) ? (pointer)((void *)0) : (((Tilwin *)(winp))->id) )));
if ( uwinp->group == group )
{
if ( uwinp->winp == winp )
stamp = ( ( (stamp) < (uwinp->open_stamp) ) ? (stamp) : (uwinp->open_stamp) );
Manage_Save_State( uwinp );
Manage_Remove( uwinp );
uwinp->group_state = uwinp->wm_state;
}
}
if (! group->ever_opened)
Manage_Prepare_Open( group );
Closed_Add( uwinp );
if ( ( user_global_options[(int)(USE_ICONS)] ) )
Manage_Icon_Open( uwinp );
if ( ( user_global_options[(int)(AUTO_REPOPULATE_ON_CLOSE)] ) )
{
if ( ( user_global_options[(int)(AUTO_DESIRED_ENLARGE)] ) )
Manage_Ordered_Desire();
if (! ( user_global_options[(int)(ONLY_REPOPULATE_SINCE_ON_CLOSE)] ) )
stamp = (TimeStamp)0;
Manage_Repopulate_Since( stamp, 0, 0, 1 );
}
Manage_Finish( 1 );
}
static void Manage_Group_Restore( uwinp )
Userwin *uwinp;
{
int state;
state = uwinp->group_state;
uwinp->group_state = -3;
switch ( state )
{
case -2:
break;
case -1:
case 0:
case 1:
Closed_Add( uwinp );
Manage_User_Open_Automatically( uwinp, 0, 0 );
break;
case 2:
case 3:
case 4:
Closed_Add( uwinp );
if ( uwinp->client_state == 2 )
Manage_User_Open_Automatically( uwinp, 0, 0 );
else
Manage_Icon_Open( uwinp );
break;
case 5:
break;
}
}
void Manage_Group_Open( group )
Userwin *group;
{
bool found = 1;
Tilwinp winp;
Userwin *uwinp;
Manage_Start();
Manage_Save_State( group );
if ( (((Tilwin *)(group->iconp)) -> Am_I_Open) )
Tilwin_Close( group->iconp );
Closed_Remove( group );
while (found)
{
found = 0;
Tilwin_Gen_Closed_Windows();
while ( (! found) &&
( (winp = Tilwin_Next_Window()) != (Tilwinp)((void *)0) ) )
{
uwinp = ((Userwin *)(( ((winp) == (Tilwinp)((void *)0)) ? (pointer)((void *)0) : (((Tilwin *)(winp))->id) )));
if ( ( (uwinp)->group_state != -3 ) &&
(uwinp->group == group) )
{
found = 1;
Manage_Group_Restore( uwinp );
}
}
}
Manage_Finish( 1 );
}
void Manage_Want_State( uwinp, state )
Userwin *uwinp;
int state;
{
uwinp->group_state = state;
}
static void Manage_Set_Group( uwinp, group )
Userwin *uwinp;
Userwin *group;
{
Manage_Start();
uwinp->group = group;
if (! ( (uwinp)->group_state != -3 ) )
{
if ( ( group != (Userwin *)((void *)0)) && ( (group)->group_state != -3 ) )
{
Manage_Save_State( uwinp );
Manage_Remove( uwinp );
uwinp->group_state = uwinp->wm_state;
}
}
else if ( ( group == (Userwin *)((void *)0) ) ||
(! ( (group)->group_state != -3 ) ) )
Manage_Group_Restore( uwinp );
Manage_Finish( 1 );
}
void Manage_Client_Set_Group( uwinp, group )
Userwin *uwinp;
Userwin *group;
{
{ Userwin *cur_listener; Userwin *cur_sublistener; cur_listener = listener; cur_sublistener = sublistener; if ( sublistener != (Userwin *)((void *)0) ) { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Set_Group( uwinp, group ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Set_Group( uwinp, group ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } } else { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_listener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Set_Group( uwinp, group ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Set_Group( uwinp, group ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); } } }
}
void Manage_Client_Set_State( uwinp, state )
Userwin *uwinp;
int state;
{
uwinp->client_state = state;
}
void Manage_Client_Change_State( uwinp, state )
Userwin *uwinp;
int state;
{
uwinp->client_state = state;
if ( ( state != 5 ) &&
( uwinp->wm_state == 5 ) )
Drawwin_Insert( uwinp );
else if ( ( state == 5 ) &&
( uwinp->wm_state != 5 ) )
Drawwin_Withdraw( uwinp );
if ( ( (uwinp)->group_state != -3 ) )
{
if ( state == 5 )
{
if ( (uwinp->wm_state != 5) &&
(uwinp->group != uwinp) )
{
uwinp->wm_state = 5;
Client_Set_State( uwinp );
}
uwinp->group_state = 5;
}
else
{
if ( uwinp->wm_state == 5 )
{
uwinp->wm_state = 4;
uwinp->group_state = state;
Client_Set_State( uwinp );
}
else if ( ( state != -1 ) && ( state != 0 ) )
uwinp->group_state = state;
}
}
else
{
switch ( state )
{
case -1:
case 0:
break;
case 1:
case 2:
if (! (((Tilwin *)(uwinp->winp)) -> Am_I_Open) )
Manage_Client_Open_Automatically( uwinp );
break;
case 3:
{ Userwin *cur_listener; Userwin *cur_sublistener; cur_listener = listener; cur_sublistener = sublistener; if ( sublistener != (Userwin *)((void *)0) ) { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Remove_Window( uwinp ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Remove_Window( uwinp ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } } else { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_listener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Remove_Window( uwinp ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Remove_Window( uwinp ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); } } };
break;
case 4:
if ( (((Tilwin *)(uwinp->winp)) -> Am_I_Open) ||
(((Tilwin *)(uwinp->iconp)) -> Am_I_Open) )
{ Userwin *cur_listener; Userwin *cur_sublistener; cur_listener = listener; cur_sublistener = sublistener; if ( sublistener != (Userwin *)((void *)0) ) { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Inactivate( uwinp ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Inactivate( uwinp ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } } else { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_listener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Inactivate( uwinp ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Inactivate( uwinp ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); } } }
uwinp->wm_state = 4;
Client_Set_State( uwinp );
Closed_Add( uwinp );
break;
case 5:
if ( (((Tilwin *)(uwinp->winp)) -> Am_I_Open) ||
(((Tilwin *)(uwinp->iconp)) -> Am_I_Open) )
{ Userwin *cur_listener; Userwin *cur_sublistener; cur_listener = listener; cur_sublistener = sublistener; if ( sublistener != (Userwin *)((void *)0) ) { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Inactivate( uwinp ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Inactivate( uwinp ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } } else { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_listener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Inactivate( uwinp ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Inactivate( uwinp ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); } } }
uwinp->wm_state = 5;
Client_Set_State( uwinp );
Closed_Remove( uwinp );
break;
}
}
}
void Manage_Repopulate_Last()
{
Manage_Start();
Manage_Repopulate_Since( last_stamp, 1, 0, 1 );
Manage_Finish( 1 );
}
void Manage_Repopulate_All( strict, only_auto_close )
bool strict;
bool only_auto_close;
{
Manage_Start();
Manage_Repopulate_Since( (TimeStamp)0, 1, strict, only_auto_close );
Manage_Finish( 1 );
}
static void Manage_Cleanup_Window( uwinp )
Userwin *uwinp;
{
if ( uwinp == prev_touch ) prev_touch = (Userwin *)((void *)0);
if ( uwinp == prev_listener ) prev_listener = (Userwin *)((void *)0);
Manage_Unset( uwinp );
uwinp->client_state = -2;
Manage_Remove( uwinp );
}
void Manage_Eliminate_Window( uwinp )
Userwin *uwinp;
{
Manage_Untitle( uwinp );
Drawwin_Destroy( uwinp );
DrawIcon_Destroy( uwinp );
Tilwin_Destroy_Window( uwinp->winp );
Tilwin_Destroy_Window( uwinp->iconp );
free( uwinp );
}
static void Manage_Cleanup_Connection( connection )
int connection;
{
Tilwinp winp;
Userwin *uwinp;
Tilwin_Gen_Closed_Windows();
while ( (winp = Tilwin_Next_Window()) != (Tilwinp)((void *)0) )
{
uwinp = ((Userwin *)(( ((winp) == (Tilwinp)((void *)0)) ? (pointer)((void *)0) : (((Tilwin *)(winp))->id) )));
if ( (uwinp->connection == connection ) &&
( (winp == uwinp->winp) || (((Tilwin *)(uwinp->winp)) -> Am_I_Open) ) )
{
Manage_Cleanup_Window( uwinp );
}
}
}
static void Manage_Eliminate_Connection( connection )
int connection;
{
Tilwinp winp;
Userwin *uwinp;
bool killed = 1;
while (killed)
{
killed = 0;
Tilwin_Gen_Closed_Windows();
while ( (! killed) &&
( (winp = Tilwin_Next_Window()) != (Tilwinp)((void *)0) ) )
{
uwinp = ((Userwin *)(( ((winp) == (Tilwinp)((void *)0)) ? (pointer)((void *)0) : (((Tilwin *)(winp))->id) )));
if ( (uwinp->connection == connection ) &&
( (winp == uwinp->winp) || (((Tilwin *)(uwinp->winp)) -> Am_I_Open) ) )
{
Manage_Eliminate_Window( uwinp );
killed = 1;
}
}
}
}
static void Manage_Destroy_Window( uwinp )
Userwin *uwinp;
{
bool zoomed;
TimeStamp open_stamp, zoom_stamp;
Manage_Start();
if ( ( user_global_options[(int)(ONLY_REPOPULATE_SINCE_ON_CLOSE)] ) )
open_stamp = uwinp->open_stamp;
else
open_stamp = (TimeStamp)0;
zoomed = uwinp->zoomed;
if ( ( user_global_options[(int)(ONLY_REPOP_SINCE_ON_AUTO_UNZOOM)] )
||
( user_global_options[(int)(ONLY_REPOP_SINCE_ON_EXPL_UNZOOM)] )
)
zoom_stamp = uwinp->zoom_stamp;
else
zoom_stamp = (TimeStamp)0;
Manage_Cleanup_Window( uwinp );
Manage_Update_Desktop();
Manage_Eliminate_Window( uwinp );
if ( ( user_global_options[(int)(AUTO_DESIRED_ENLARGE)] ) )
Manage_Ordered_Desire();
if ( ( user_global_options[(int)(AUTO_REPOPULATE_ON_CLOSE)] ) )
Manage_Repopulate_Since( open_stamp, 0, 0, 1 );
if ( zoomed &&
( user_global_options[(int)(AUTO_REPOP_ON_EXPLICIT_UNZOOM)] ) )
Manage_Repopulate_Since( zoom_stamp, 0, 0, 1 );
Manage_Finish( 1 );
}
void Manage_Client_Destroy( uwinp )
Userwin *uwinp;
{
Manage_Unset( uwinp );
{ Userwin *cur_listener; Userwin *cur_sublistener; cur_listener = listener; cur_sublistener = sublistener; if ( sublistener != (Userwin *)((void *)0) ) { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Destroy_Window( uwinp ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Destroy_Window( uwinp ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } } else { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_listener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Destroy_Window( uwinp ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Destroy_Window( uwinp ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); } } };
}
void Manage_Hard_Kill( uwinp )
Userwin *uwinp;
{
Client_Kill( uwinp );
Manage_Destroy_Window( uwinp );
}
void Manage_Notify( uwinp )
Userwin *uwinp;
{
if ( ( ( ((uwinp)->messages) & (1L << 2) ) != 0 ) )
{
uwinp->saving_state = 1;
Client_Bang( uwinp );
}
else
Draw_Flash();
}
void Manage_Soft_Kill( uwinp )
Userwin *uwinp;
{
if ( ( ( ((uwinp)->messages) & (1L << 2) ) != 0 ) )
{
uwinp->saving_state = 1;
uwinp->soft_kill = 1;
Client_Bang( uwinp );
}
else
{
Client_Kill( uwinp );
Manage_Destroy_Window( uwinp );
}
}
void Manage_Delete_Window( uwinp )
Userwin *uwinp;
{
if ( ( ( ((uwinp)->messages) & (1L << 4) ) != 0 ) )
Client_Delete_Window( uwinp );
else
Manage_Soft_Kill( uwinp );
}
void Manage_Notify_All()
{
Tilwinp winp;
Userwin *uwinp;
Tilwin_Gen_Closed_Windows();
while ( (winp = Tilwin_Next_Window()) != (Tilwinp)((void *)0) )
{
uwinp = ((Userwin *)(( ((winp) == (Tilwinp)((void *)0)) ? (pointer)((void *)0) : (((Tilwin *)(winp))->id) )));
if ( (uwinp != rtl_uwinp) &&
( (winp == uwinp->winp) || (((Tilwin *)(uwinp->winp)) -> Am_I_Open) ) )
{
if ( ( ( ((uwinp)->messages) & (1L << 2) ) != 0 ) )
Manage_Notify( uwinp );
}
}
}
void Manage_Soft_Kill_All()
{
Tilwinp winp;
Userwin *uwinp;
bool killed = 1;
while (killed)
{
killed = 0;
Tilwin_Gen_Closed_Windows();
while ( (! killed) &&
( (winp = Tilwin_Next_Window()) != (Tilwinp)((void *)0) ) )
{
uwinp = ((Userwin *)(( ((winp) == (Tilwinp)((void *)0)) ? (pointer)((void *)0) : (((Tilwin *)(winp))->id) )));
if ( (uwinp != rtl_uwinp) &&
( (winp == uwinp->winp) || (((Tilwin *)(uwinp->winp)) -> Am_I_Open) ) )
{
Manage_Soft_Kill( uwinp );
killed = 1;
}
}
}
}
void Manage_Exit()
{
Tilwinp winp;
Userwin *uwinp;
Tilwin_Gen_Closed_Windows();
while ( (winp = Tilwin_Next_Window()) != (Tilwinp)((void *)0) )
{
uwinp = ((Userwin *)(( ((winp) == (Tilwinp)((void *)0)) ? (pointer)((void *)0) : (((Tilwin *)(winp))->id) )));
if ( (uwinp != rtl_uwinp) &&
( (winp == uwinp->winp) || (((Tilwin *)(uwinp->winp)) -> Am_I_Open) ) )
Client_Kill( uwinp );
}
}
void Manage_Client_Set_Messages( uwinp, messages )
Userwin *uwinp;
long messages;
{
uwinp->messages = messages;
}