public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* c++/6035: Internal compiler error in extract_insn
@ 2002-03-22  1:56 ian.brown
  0 siblings, 0 replies; 2+ messages in thread
From: ian.brown @ 2002-03-22  1:56 UTC (permalink / raw)
  To: gcc-gnats


>Number:         6035
>Category:       c++
>Synopsis:       Internal compiler error in extract_insn
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Mar 22 01:56:02 PST 2002
>Closed-Date:
>Last-Modified:
>Originator:     Ian Brown
>Release:        3.0.4
>Organization:
>Environment:
AIX 4.3.3 RS6000
>Description:
Internal compiler error when compiling wxWindows X11 port (2.3.3a). The -v output is shown below, and the preprocessed source is attached.

% gcc -v -save-temps -c -D__WXMOTIF__ -D_REENTRANT -fno-rtti -fno-exceptions -MMD -I./lib/wx/include/motif-2.3 

-I../wxX11/include -INONE -I/usr/include/Motif1.2 -Wall -o datetime.o ../wxX11/src/common/datetime.cpp
Reading specs from /usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/specs
Configured with: /usr/local/src/gcc-3.0.4/configure --disable-multilib --enable-threads --enable-languages=c,c++ --disable-nls
Thread model: single
gcc version 3.0.4
 /usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/cpp0 -lang-c++ -D__GNUG__=3 -D__GXX_DEPRECATED -D__GXX_ABI_VERSION=100 -v 

-I./lib/wx/include/motif-2.3 -I../wxX11/include -INONE -I/usr/include/Motif1.2 -MM -MF datetime.d -MQ datetime.o -D__GNUC__=3 

-D__GNUC_MINOR__=0 -D__GNUC_PATCHLEVEL__=4 -D_IBMR2 -D_POWER -D_AIX -D_AIX32 -D_AIX41 -D_AIX43 -D_LONG_LONG -D_IBMR2 -D_POWER 

-D_AIX -D_AIX32 -D_AIX41 -D_AIX43 -D_LONG_LONG -Asystem=unix -Asystem=aix -D__CHAR_UNSIGNED__ -D__NO_INLINE__ 

-D__STDC_HOSTED__=1 -Wall -D_XOPEN_SOURCE=500 -D_XOPEN_SOURCE_EXTENDED=1 -D_LARGE_FILE_API -D_ALL_SOURCE -D_ARCH_COM 

-D__WXMOTIF__ -D_REENTRANT ../wxX11/src/common/datetime.cpp datetime.ii
ignoring nonexistent directory "NONE"
GNU CPP version 3.0.4 (cpplib)
ignoring nonexistent directory "NONE/include"
ignoring nonexistent directory "/usr/local/powerpc-ibm-aix4.3.3.0/include"
ignoring duplicate directory "/usr/local/include"
#include "..." search starts here:
#include <...> search starts here:
 lib/wx/include/motif-2.3
 ../wxX11/include
 /usr/include/Motif1.2
 /usr/local/include
 /usr/local/include/g++-v3
 /usr/local/include/g++-v3/powerpc-ibm-aix4.3.3.0
 /usr/local/include/g++-v3/backward
 /usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include
 /usr/include
End of search list.
 /usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/cc1plus -fpreprocessed datetime.ii -quiet -dumpbase datetime.cpp -Wall 

-version -fno-rtti -fno-exceptions -o datetime.s
GNU CPP version 3.0.4 (cpplib)
GNU C++ version 3.0.4 (powerpc-ibm-aix4.3.3.0)
        compiled by GNU C version 3.0.4.
../wxX11/src/common/datetime.cpp: In static member function `static wxDateTime 
   wxDateTime::GetBeginDST(int, wxDateTime::Country)':
../wxX11/src/common/datetime.cpp:994: Unrecognizable insn:
(insn 77 75 78 (set (reg:DI 93)
        (mem/s/u (reg/f:SI 92) 0)) -1 (nil)
    (expr_list:REG_DEAD (reg/f:SI 92)
        (nil)))
../wxX11/src/common/datetime.cpp:994: Internal compiler error in extract_insn, 
   at recog.c:2218
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.
% 
>How-To-Repeat:
preprocessed source code is attached.
>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: text/plain; name="datetime.ii"
Content-Disposition: inline; filename="datetime.ii"

# 56 "../wxX11/src/common/datetime.cpp"
#pragma implementation "datetime.h"



# 1 "../wxX11/include/wx/wxprec.h" 1
# 13 "../wxX11/include/wx/wxprec.h"
# 1 "../wxX11/include/wx/defs.h" 1
# 16 "../wxX11/include/wx/defs.h"
#pragma interface "defs.h"






# 1 "../wxX11/include/wx/platform.h" 1
# 62 "../wxX11/include/wx/platform.h"
# 1 "lib/wx/include/motif-2.3/wx/setup.h" 1







#pragma interface
# 1093 "lib/wx/include/motif-2.3/wx/setup.h"
# 1 "../wxX11/include/wx/chkconf.h" 1
# 1094 "lib/wx/include/motif-2.3/wx/setup.h" 2
# 63 "../wxX11/include/wx/platform.h" 2


# 1 "../wxX11/include/wx/chkconf.h" 1
# 66 "../wxX11/include/wx/platform.h" 2
# 24 "../wxX11/include/wx/defs.h" 2
# 39 "../wxX11/include/wx/defs.h"
# 1 "../wxX11/include/wx/features.h" 1
# 40 "../wxX11/include/wx/defs.h" 2
# 78 "../wxX11/include/wx/defs.h"
# 1 "../wxX11/include/wx/version.h" 1
# 79 "../wxX11/include/wx/defs.h" 2
# 186 "../wxX11/include/wx/defs.h"
typedef short int WXTYPE;






typedef int wxWindowID;
# 321 "../wxX11/include/wx/defs.h"
class wxObject;
class wxEvent;
# 335 "../wxX11/include/wx/defs.h"
# 1 "../wxX11/include/wx/debug.h" 1
# 15 "../wxX11/include/wx/debug.h"
# 1 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/assert.h" 1 3 4
# 56 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/assert.h" 3 4
extern void __assert(const char *, const char *, int);
# 16 "../wxX11/include/wx/debug.h" 2
# 1 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/limits.h" 1 3 4
# 11 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/limits.h" 3 4
# 1 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/syslimits.h" 1 3 4






# 1 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/limits.h" 1 3 4
# 125 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/limits.h" 3 4
# 1 "/usr/include/limits.h" 1 3 4
# 30 "/usr/include/limits.h" 3 4
# 1 "/usr/include/sys/limits.h" 1 3 4
# 35 "/usr/include/sys/limits.h" 3 4
extern "C" {



# 1 "/usr/include/standards.h" 1 3 4
# 40 "/usr/include/sys/limits.h" 2 3 4
# 247 "/usr/include/sys/limits.h" 3 4
# 1 "/usr/include/float.h" 1 3 4
# 206 "/usr/include/float.h" 3 4
        extern unsigned int SINFINITY;
        extern unsigned int _DBLINF[2];
        extern unsigned int SQNAN;
        extern unsigned int DQNAN[2];
        extern unsigned int SSNAN;
        extern unsigned int DSNAN[2];
# 237 "/usr/include/float.h" 3 4
typedef unsigned short fprnd_t;
# 246 "/usr/include/float.h" 3 4
fprnd_t fp_read_rnd(void);
fprnd_t fp_swap_rnd(fprnd_t rnd);
# 248 "/usr/include/sys/limits.h" 2 3 4
# 397 "/usr/include/sys/limits.h" 3 4
}
# 31 "/usr/include/limits.h" 2 3 4
# 126 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/limits.h" 2 3 4
# 8 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/syslimits.h" 2 3 4
# 12 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/limits.h" 2 3 4
# 17 "../wxX11/include/wx/debug.h" 2

# 1 "../wxX11/include/wx/wxchar.h" 1
# 16 "../wxX11/include/wx/wxchar.h"
#pragma interface "wxchar.h"
# 303 "../wxX11/include/wx/wxchar.h"
# 1 "/usr/include/wcstr.h" 1 3 4
# 36 "/usr/include/wcstr.h" 3 4
# 1 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/string.h" 1 3 4
# 53 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/string.h" 3 4
# 1 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/sys/types.h" 1 3 4
# 52 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/sys/types.h" 3 4
extern "C" {
# 64 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/sys/types.h" 3 4
# 1 "/usr/include/sys/inttypes.h" 1 3 4
# 56 "/usr/include/sys/inttypes.h" 3 4
extern "C" {
# 65 "/usr/include/sys/inttypes.h" 3 4
typedef signed char int8_t;
typedef signed short int16_t;
typedef signed int int32_t;




typedef signed long long int64_t;



typedef unsigned char uint8_t;
typedef unsigned short uint16_t;
typedef unsigned int uint32_t;




typedef unsigned long long uint64_t;
# 92 "/usr/include/sys/inttypes.h" 3 4
typedef int64_t intmax_t;
typedef uint64_t uintmax_t;
# 104 "/usr/include/sys/inttypes.h" 3 4
typedef signed long intptr_t;
typedef unsigned long uintptr_t;





typedef signed char int_least8_t;
typedef signed short int_least16_t;
typedef signed int int_least32_t;




typedef signed long long int_least64_t;



typedef unsigned char uint_least8_t;
typedef unsigned short uint_least16_t;
typedef unsigned int uint_least32_t;




typedef unsigned long long uint_least64_t;
# 138 "/usr/include/sys/inttypes.h" 3 4
typedef int32_t intfast_t;
typedef uint32_t uintfast_t;


typedef signed char int_fast8_t;
typedef int32_t int_fast16_t;
typedef int32_t int_fast32_t;
typedef uint32_t uint_fast8_t;
typedef uint32_t uint_fast16_t;
typedef uint32_t uint_fast32_t;

typedef int64_t int_fast64_t;
typedef uint64_t uint_fast64_t;
# 575 "/usr/include/sys/inttypes.h" 3 4
typedef signed long __long32_t;
typedef unsigned long __ulong32_t;
# 587 "/usr/include/sys/inttypes.h" 3 4
typedef signed int __long64_t;
typedef unsigned int __ulong64_t;
# 599 "/usr/include/sys/inttypes.h" 3 4
typedef signed int int32long64_t;
typedef unsigned int uint32long64_t;
# 612 "/usr/include/sys/inttypes.h" 3 4
typedef signed long long32int64_t;
typedef unsigned long ulong32int64_t;
# 622 "/usr/include/sys/inttypes.h" 3 4
typedef signed char int8;
typedef signed short int16;
typedef signed int int32;




typedef signed long long int64;



typedef unsigned char u_int8;
typedef unsigned char u_int8_t;
typedef unsigned short u_int16;
typedef unsigned short u_int16_t;
typedef unsigned int u_int32;
typedef unsigned int u_int32_t;





typedef unsigned long long u_int64;
typedef unsigned long long u_int64_t;
# 664 "/usr/include/sys/inttypes.h" 3 4
extern long strtoimax(const char *, char **, int);





}
# 65 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/sys/types.h" 2 3 4
# 87 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/sys/types.h" 3 4
typedef long int ptrdiff_t;
# 105 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/sys/types.h" 3 4
typedef unsigned int wctype_t;
# 114 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/sys/types.h" 3 4
typedef long fpos_t;



typedef long long fpos64_t;






typedef int32long64_t time_t;




typedef int clock_t;






typedef long unsigned int size_t;
# 148 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/sys/types.h" 3 4
typedef unsigned char uchar_t;
typedef unsigned short ushort_t;
typedef unsigned int uint_t;
typedef unsigned long ulong_t;
typedef signed long ssize_t;




typedef int level_t;
typedef int32long64_t daddr_t;
typedef int daddr32_t;

typedef int64_t daddr64_t;

typedef char * caddr_t;
typedef uint32long64_t ino_t;
typedef uint_t ino32_t;

typedef uint64_t ino64_t;

typedef short cnt_t;
typedef uint32long64_t dev_t;
typedef uint_t dev32_t;

typedef uint64_t dev64_t;

typedef int chan_t;
typedef int time32_t;
typedef int pid32_t;
typedef int tid32_t;

typedef uint64_t pid64_t;
typedef uint64_t tid64_t;
typedef uint64_t time64_t;







typedef void * __ptr32;
typedef char * __cptr32;


typedef int soff_t;




typedef long off_t;



typedef long long off64_t;


typedef long paddr_t;
typedef int32long64_t key_t;
typedef int timer_t;
typedef short nlink_t;
typedef uint_t mode_t;
typedef uint_t uid_t;
typedef uint_t gid_t;
typedef __ptr32 mid_t;
typedef int32long64_t pid_t;
typedef int32long64_t tid_t;
typedef char slab_t[12];
typedef long mtyp_t;
typedef int boolean_t;
typedef int crid_t;


typedef int blkcnt_t;
typedef int blksize_t;
# 234 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/sys/types.h" 3 4
typedef ulong_t fsblkcnt_t;
typedef ulong_t fsfilcnt_t;



        typedef int wint_t;



typedef uint32long64_t id_t;
typedef unsigned int useconds_t;
typedef signed int suseconds_t;
typedef int clockid_t;




typedef struct sigset_t {

        unsigned int losigs;
        unsigned int hisigs;




} sigset_t;

typedef int signal_t;




typedef struct fsid_t {




        unsigned int val[2];




} fsid_t;
# 285 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/sys/types.h" 3 4
typedef struct __ptq_queue {
        struct __ptq_queue *__ptq_next;
        struct __ptq_queue *__ptq_prev;
} __ptq_queue;

typedef int __ptlock_type;

typedef struct __pt_attr *pthread_attr_t;
typedef struct __pt_attr *pthread_condattr_t;
typedef struct __pt_attr *pthread_mutexattr_t;


typedef struct __pt_attr *pthread_rwlockattr_t;


typedef unsigned int pthread_t;
typedef unsigned int pthread_key_t;
# 337 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/sys/types.h" 3 4
typedef struct {
        __ptq_queue * __ptq_link;
        int __reserved1;
        __ptlock_type __ptmtx_lock;
        int __ptmtx_flags;
        pthread_t __ptmtx_owner;
        int __mtx_id;
        int __acquisitions;
        int __mtx_kind;
        int __lock_cpt;
        int __sleeps;
        int __misses;
        int __reserved2;
        unsigned long __ptmtx_dbx;
} pthread_mutex_t;

typedef struct {
        unsigned long __ptcv_dbx;
        int __reserved1;
        __ptlock_type __ptcv_lock;
        int __ptcv_flags;
        __ptq_queue * __ptcv_waiters;
        int __reserved2;
        int __cv_id;
        unsigned int __cv_mutex;
        int __reserved3;
        int __cptwait;
        int __reserved;

} pthread_cond_t;



typedef struct {
        __ptlock_type __ptonce_lock;
        int __ptonce_initialized;
        int __ptonce_executing;
        int __ptonce_completed;
        pthread_mutex_t __ptonce_mutex;
        pthread_cond_t __ptonce_executed;
} pthread_once_t;


typedef struct {





        int __pad;
        unsigned long __ptrlock_dbx;


        pthread_mutex_t __rwl_mutex;
        pthread_cond_t __rwl_rsleepers;
        pthread_cond_t __rwl_wsleepers;
        int __rwl_flags;
        pthread_t __rwl_owner;
        int __rwl_rwlock_id;
        int __rwl_lock_count;


        int __rwl_waiting;
        int __rwl_wacquisitions;
        int __rwl_racquisitions;
        int __rwl_wsleeps;
        int __rwl_rsleeps;
        unsigned long __reserved[6];
} pthread_rwlock_t;







typedef struct _quad { int val[2]; } quad;


# 1 "/usr/include/sys/m_types.h" 1 3 4
# 40 "/usr/include/sys/m_types.h" 3 4
# 1 "/usr/include/sys/vm_types.h" 1 3 4
# 34 "/usr/include/sys/vm_types.h" 3 4
typedef long vmid_t;
# 45 "/usr/include/sys/vm_types.h" 3 4
typedef ulong_t vmhandle_t;
# 58 "/usr/include/sys/vm_types.h" 3 4
typedef long32int64_t kvmid_t;
typedef ulong32int64_t kvmhandle_t;
typedef int kvmidx_t;
typedef int32long64_t vmidx_t;
typedef int32long64_t vmkey_t;
typedef int32long64_t vpn_t;
typedef int32long64_t rpn_t;






typedef signed long long rpn64_t;







typedef int kvpn_t;
typedef int krpn_t;
typedef int32long64_t vmsize_t;






typedef struct

vmaddr_t

{

        vmhandle_t srval;
        caddr_t offset;




} vmaddr_t;

typedef struct

adspace_t

{

        ulong32int64_t alloc;
        kvmhandle_t srval[16];




} adspace_t;







typedef enum _MR_ATTR_TYPE {
  VirtAddr = 1
} MR_ATTR_TYPE;

typedef enum _MR_LABEL_TYPE {
  FreeMem = 1,
  IPLCB = 2,
  RMALLOC = 3,
  PM_HEAP = 4,
  RTAS_HEAP = 5,
  TCE_TABLE = 6,
  IO_SPACE = 7
} MR_LABEL_TYPE;

typedef struct {
        unsigned long long mr_addr;
        unsigned long long mr_size;
        unsigned char mr_att;
        unsigned char mr_label;
        unsigned short mr_nodeid;
        char reserved[4];
} iplcb_map_reg_t;
# 41 "/usr/include/sys/m_types.h" 2 3 4







typedef struct

label_t

{

        struct label_t *prev;
        ulong_t iar;
        ulong_t stack;
        ulong_t toc;
        ulong_t cr;
        ulong_t intpri;
        ulong_t reg[19];
# 70 "/usr/include/sys/m_types.h" 3 4
} label_t;

typedef int32long64_t ext_t;
# 417 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/sys/types.h" 2 3 4




typedef char * va_list;
# 465 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/sys/types.h" 3 4
typedef unsigned long long __ptr64;
typedef unsigned long long __cptr64;






typedef ushort_t UniChar;




typedef uchar_t uchar;
typedef ushort_t ushort;
typedef uint_t uint;
typedef ulong_t ulong;

typedef struct { int r[1]; } * physadr_t;
typedef physadr_t physadr;


typedef unsigned char u_char;
typedef unsigned short u_short;
typedef unsigned int u_int;
typedef unsigned long u_long;

typedef int swblk_t;




struct sigset {
        unsigned int losigs;
        unsigned int hisigs;
};


struct fsid {

        unsigned int val[2];



};
# 518 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/sys/types.h" 3 4
struct fileid {
        uint_t fid_len;
        ino32_t fid_ino;
        uint_t fid_gen;
        char fid_x[20 - (sizeof(ino32_t) + 2) - sizeof(uint_t)];
};
# 539 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/sys/types.h" 3 4
struct fid {
        uint_t fid_len;
        char fid_data[20];
};
typedef struct fid fid_t;


struct fhandle {
        char x[32];
};
typedef struct fhandle fhandle_t;

struct filehandle {
        fsid_t fh_fsid;
        struct fileid fh_fid;
};
# 563 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/sys/types.h" 3 4
struct unique_id {
       __ulong32_t word1;
       __ulong32_t word2;
       __ulong32_t word3;
       __ulong32_t word4;
};
typedef struct unique_id unique_id_t;
# 595 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/sys/types.h" 3 4
typedef long long offset_t;





typedef unsigned long long size64_t;
typedef long long ssize64_t;






typedef long long longlong_t;
typedef unsigned long long u_longlong_t;


typedef unsigned int class_id_t;



}
# 54 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/string.h" 2 3 4



extern "C" {
# 100 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/string.h" 3 4
        extern void *memchr(const void *, int, size_t);
        extern void *memcpy(void *, const void *, size_t);
        extern void *memset(void *, int, size_t);
        extern size_t strcspn(const char *, const char *);
        extern size_t strlen(const char *);
        extern size_t strspn(const char *, const char *);
# 132 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/string.h" 3 4
        extern void *memmove(void *, const void *, size_t);
        extern char *strcpy(char *, const char *);
        extern char *strncpy(char *, const char *, size_t);
        extern char *strcat(char *, const char *);
        extern char *strncat(char *, const char *, size_t);
        extern int memcmp(const void *, const void *,size_t);
        extern int strcmp(const char *, const char *);
        extern int strncmp(const char *,const char *,size_t);
        extern int strncollen(const char *, const int );
        extern char *strchr(const char *, int);
        extern char *strpbrk(const char *, const char *);
        extern char *strrchr(const char *, int);
        extern char *strstr(const char *, const char *);
        extern char *strtok(char *, const char *);
        extern char *strerror(int);
        extern int strcoll(const char *, const char *);
        extern size_t strxfrm(char *, const char *, size_t);
        extern char *strtok_r(char *, const char *, char **);
# 163 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/string.h" 3 4
        extern void *memccpy(void *, const void *, int, size_t);
# 172 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/string.h" 3 4
extern char *strdup(const char *);
# 213 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/string.h" 3 4
        extern char *index(const char *, int);
        extern char *rindex(const char *, int);
        extern void swab(const void *, void *, ssize_t);
        extern wchar_t *wcscat(wchar_t *, const wchar_t *);
        extern wchar_t *wcschr(const wchar_t *, wchar_t);
        extern int wcscmp(const wchar_t *, const wchar_t *);
        extern wchar_t *wcscpy(wchar_t *, const wchar_t *);
        extern size_t wcscspn(const wchar_t *, const wchar_t *);
        extern size_t wcslen(const wchar_t *);
        extern wchar_t *wcsncat(wchar_t *, const wchar_t *, size_t);
        extern int wcsncmp(const wchar_t *, const wchar_t *, size_t);
        extern wchar_t *wcsncpy(wchar_t *, const wchar_t *, size_t);
        extern wchar_t *wcspbrk(const wchar_t *, const wchar_t *);
        extern wchar_t *wcsrchr(const wchar_t *, wchar_t);
        extern size_t wcsspn(const wchar_t *, const wchar_t *);
        extern wchar_t *wcswcs(const wchar_t *, const wchar_t *);
        extern int wcswidth(const wchar_t *, size_t);
        extern int wcwidth(wchar_t);
        extern int wcscoll(const wchar_t *, const wchar_t *);
        extern size_t wcsxfrm(wchar_t *, const wchar_t *, size_t);
        extern char *__linux_strerror_r(int, char *, size_t);
        extern char * strndup(const char *, size_t);
        extern size_t strnlen(const char *, size_t);
        extern char * strsep(char **, const char *);
        extern void * memmem(const void *, size_t, const void *, size_t);
        extern char * stpcpy(char *, const char *);
        extern char * stpncpy(char *, const char *, size_t);
        extern char * strsignal(int);
# 292 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/string.h" 3 4
}
# 37 "/usr/include/wcstr.h" 2 3 4




# 1 "/usr/include/mbstr.h" 1 3 4
# 43 "/usr/include/mbstr.h" 3 4
# 1 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/sys/types.h" 1 3 4
# 44 "/usr/include/mbstr.h" 2 3 4



typedef unsigned int mbchar_t;
# 66 "/usr/include/mbstr.h" 3 4
    extern char *mbsadvance(const char *s);
    extern char *mbscat(char *, char *);
    extern char *mbschr(const char *, const mbchar_t);
    extern int mbscmp(char *, char *);
    extern char *mbscpy(char *, char *);
    extern char *mbsinvalid(const char *s);
    extern size_t mbslen(const char *);
    extern char *mbsncat(char *, const char *, size_t);
    extern int mbsncmp(char *, char *, size_t);
    extern char *mbsncpy(char *, char *, size_t);
    extern char *mbspbrk(char *, char *);
    extern char *mbsrchr(char *, mbchar_t);
    extern mbchar_t mbstomb(const char *mbs);
    extern int mbswidth(const char *s, size_t n);
    extern int mbstoint(char *);
# 42 "/usr/include/wcstr.h" 2 3 4
# 304 "../wxX11/include/wx/wxchar.h" 2
# 388 "../wxX11/include/wx/wxchar.h"
# 1 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/ctype.h" 1 3 4
# 79 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/ctype.h" 3 4
        extern int isalpha(int);
        extern int isalnum(int);
        extern int iscntrl(int);
        extern int isdigit(int);
        extern int isgraph(int);
        extern int islower(int);
        extern int isprint(int);
        extern int ispunct(int);
        extern int isspace(int);
        extern int isupper(int);
        extern int isxdigit(int);
        extern int toupper(int);
        extern int tolower(int);
# 119 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/ctype.h" 3 4
        extern int isascii(int);
        extern int toascii(int);
# 131 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/ctype.h" 3 4
# 1 "/usr/include/sys/localedef.h" 1 3 4
# 39 "/usr/include/sys/localedef.h" 3 4
struct __LC_locale;
struct _LC_locale_objhdl;

# 1 "/usr/include/sys/limits.h" 1 3 4
# 43 "/usr/include/sys/localedef.h" 2 3 4
# 1 "/usr/include/sys/lc_core.h" 1 3 4
# 36 "/usr/include/sys/lc_core.h" 3 4
# 1 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/sys/types.h" 1 3 4
# 37 "/usr/include/sys/lc_core.h" 2 3 4


extern "C" {
# 52 "/usr/include/sys/lc_core.h" 3 4
typedef struct {

    unsigned short
        __type_id,
        __magic;
    unsigned long
        __version;

    size_t __size;

} _LC_object_t;
# 102 "/usr/include/sys/lc_core.h" 3 4
typedef struct {

    _LC_object_t __hdr;



    int __catgets;
    int __catclose;


    int __compress;
    int __decompress;
    int __start_compress;
    int __end_compress;


    int __init;
    void *__data;
} _LC_core_car_t;

typedef struct {

    _LC_object_t __hdr;


    int __nl_langinfo;


    int __mbtowc;
    int __mbstowcs;
    int __wctomb;
    int __wcstombs;


    int __mblen;


    int __wcswidth;
    int __wcwidth;


    int __mbtopc;
    int __mbstopcs;
    int __pctomb;
    int __pcstombs;


    int __csid;
    int __wcsid;


    int __init;
    void *__data;
} _LC_core_charmap_t;


typedef struct {

    _LC_object_t __hdr;


    int __towupper;
    int __towlower;


    int __get_wctype;
    int __is_wctype;


    int __init;
    void *__data;
} _LC_core_ctype_t;

typedef struct {

    _LC_object_t __hdr;


    int __strcoll;
    int __strxfrm;


    int __wcscoll;
    int __wcsxfrm;


    int __fnmatch;


    int __regcomp;
    int __regerror;
    int __regexec;
    int __regfree;


    int __init;
    void *__data;
} _LC_core_collate_t;


typedef struct {

    _LC_object_t __hdr;


    int __nl_langinfo;


    int __strftime;
    int __strptime;


    int __wcsftime;


    int __init;
    void *__data;
} _LC_core_time_t;


typedef struct {

    _LC_object_t __hdr;


    int __nl_langinfo;


    int __strfmon;


    int __init;
    void *__data;
} _LC_core_monetary_t;


typedef struct {

    _LC_object_t __hdr;


    int __nl_langinfo;


    int __init;
    void *__data;
} _LC_core_numeric_t;


typedef struct {

    _LC_object_t __hdr;


    int __nl_langinfo;


    int __rpmatch;


    int __init;
    void *__data;
} _LC_core_resp_t;

typedef struct {

    _LC_object_t __hdr;


    int __nl_langinfo;
    int __localeconv;


    int __init;
    void *__data;
} _LC_core_locale_t;



}
# 44 "/usr/include/sys/localedef.h" 2 3 4
# 1 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/locale.h" 1 3 4
# 49 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/locale.h" 3 4
extern "C" {
# 60 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/locale.h" 3 4
struct lconv {
   char *decimal_point;
   char *thousands_sep;
   char *grouping;
   char *int_curr_symbol;
   char *currency_symbol;
   char *mon_decimal_point;
   char *mon_thousands_sep;
   char *mon_grouping;
   char *positive_sign;
   char *negative_sign;
   char int_frac_digits;
   char frac_digits;
   char p_cs_precedes;
   char p_sep_by_space;
   char n_cs_precedes;
   char n_sep_by_space;
   char p_sign_posn;
   char n_sign_posn;


   char *left_parenthesis;
   char *right_parenthesis;





} ;
# 104 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/locale.h" 3 4
struct lconv *localeconv(void);
char *setlocale(int, const char *);





typedef struct lconv lconv;



}
# 45 "/usr/include/sys/localedef.h" 2 3 4

# 1 "/usr/include/sys/localedef31.h" 1 3 4
# 39 "/usr/include/sys/localedef31.h" 3 4
typedef struct coldesc {
        short cd_stroff;
        short cd_repoff;
        short cd_cval;
        short cd_cuniq;
} coldesc_t;




typedef struct collation_table {
        short lc_version;
        short lc_length;
        char *lc_locale_name;
        int len_collate;
        short *lc_collate;
        int len_coluniq;
        short *lc_coluniq;
        int len_coldesc;
        coldesc_t *lc_coldesc;
        int len_strings;
        wchar_t *lc_strings;
        int high_cvalue;
} col_t;







typedef struct char_classification_table {
        short lc_version;
        short lc_length;
        short lc_code_type;
        short mb_cur_max;
        short mb_cur_min;
        short lc_dsp_width;
        char *lc_locale_name;
        int len_caseconv;
        wchar_t *lc_caseconv;
        int len_ctype;
        unsigned short *lc_ctype;
} ctype_t;





typedef struct lc_monetary_table {
        short lc_version;
        short lc_length;
        char *lc_locale_name;
        char *int_curr_symbol;
        char *currency_symbol;
        char *mon_decimal_point;
        char *mon_thousands_sep;
        char *mon_grouping;
        char *positive_sign;
        char *negative_sign;
        char int_frac_digits;
        char frac_digits;
        char p_cs_precedes;
        char p_sep_by_space;
        char n_cs_precedes;
        char n_sep_by_space;
        char p_sign_posn;
        char n_sign_posn;
} mon_t;





typedef struct numeric_table {
        short lc_version;
        short lc_length;
        char *lc_locale_name;
        char *decimal_point;
        char *thousands_sep;
        char *grouping;
} num_t;





typedef struct lc_messages_table {
        short lc_version;
        short lc_length;
        char *lc_locale_name;
        char *messages;
        char *yes_string;
        char *no_string;
} msg_t;





typedef struct lc_time_table {
        short lc_version;
        short lc_length;
        char *lc_locale_name;
        char *t_fmt;
        char *d_fmt;
        char *nlldate;
        char *d_t_fmt;
        char *abday;
        char *day;
        char *abmon;
        char *mon;




        char *misc;
        char *tstrs;
        char *tunits;



        char *year;
        char *am_pm;
} tim_t;






typedef struct wchar_mapping_table {
        short lc_version;
        short lc_length;
        char *lc_identifier;
} map_t;
# 183 "/usr/include/sys/localedef31.h" 3 4
typedef struct localeinfo_table {
        char lc_mag0, lc_mag1;
        short lc_version;
        short lc_code_type;
        short lc_length;
        col_t *lc_coltbl;
        ctype_t *lc_chrtbl;
        mon_t *lc_montbl;
        num_t *lc_numtbl;
        tim_t *lc_timtbl;
        msg_t *lc_msgtbl;
        map_t *lc_maptbl;
} loc_t;
# 47 "/usr/include/sys/localedef.h" 2 3 4
# 66 "/usr/include/sys/localedef.h" 3 4
typedef struct {

    _LC_core_charmap_t core;

    char *cm_csname;

    size_t cm_mb_cur_max;
    size_t cm_mb_cur_min;

    unsigned char
             cm_max_disp_width;


    unsigned
        char *cm_cstab;

    struct __LC_locale
             *loc_rec;

    void *__meth_ptr;
    void *__data_ptr;

} _LC_charmap_t;

typedef struct _LC_charmap_objhdl _LC_charmap_objhdl_t;

struct _LC_charmap_objhdl {
        _LC_charmap_t *obj;


        void *(**meth)();


struct _LC_locale_objhdl *loc_hdl;


};







typedef struct {

    _LC_core_monetary_t core;

    char *int_curr_symbol;
    char *currency_symbol;
    char *mon_decimal_point;
    char *mon_thousands_sep;
    char *mon_grouping;
    char *positive_sign;
    char *negative_sign;
    signed char int_frac_digits;
    signed char frac_digits;
    signed char p_cs_precedes;
    signed char p_sep_by_space;
    signed char n_cs_precedes;
    signed char n_sep_by_space;
    signed char p_sign_posn;
    signed char n_sign_posn;
    char *debit_sign;
    char *credit_sign;
    char *left_parenthesis;
    char *right_parenthesis;

    struct __LC_locale
             *loc_rec;

    void *__meth_ptr;
    void *__data_ptr;

} _LC_monetary_t;

typedef struct _LC_monetary_objhdl _LC_monetary_objhdl_t;
struct _LC_monetary_objhdl {
        _LC_monetary_t *obj;


        void *(**meth)();


struct _LC_locale_objhdl *loc_hdl;


};






typedef struct {

    _LC_core_numeric_t core;

    char *decimal_point;
    char *thousands_sep;
    unsigned
        char *grouping;

    struct __LC_locale
             *loc_rec;

    void *__meth_ptr;
    void *__data_ptr;

} _LC_numeric_t;

typedef struct _LC_numeric_objhdl _LC_numeric_objhdl_t;
struct _LC_numeric_objhdl {
        _LC_numeric_t *obj;


        void *(**meth)();


struct _LC_locale_objhdl *loc_hdl;


};







typedef struct {

    _LC_core_resp_t core;

    char *yesexpr;
    char *noexpr;
    char *yesstr;
    char *nostr;

    struct __LC_locale
             *loc_rec;

    void *__meth_ptr;
    void *__data_ptr;

} _LC_resp_t;

typedef struct _LC_resp_objhdl _LC_resp_objhdl_t;
struct _LC_resp_objhdl {
        _LC_resp_t *obj;


        void *(**meth)();


struct _LC_locale_objhdl *loc_hdl;


};







typedef struct {

    _LC_core_time_t core;

    char *d_fmt;
    char *t_fmt;
    char *d_t_fmt;
    char *t_fmt_ampm;
    char *abday[7];
    char *day[7];
    char *abmon[12];
    char *mon[12];
    char *am_pm[2];
    char *era;
    char *era_year;
    char *era_d_fmt;
    char *alt_digits;
    char *era_d_t_fmt;
    char *era_t_fmt;

    struct __LC_locale
             *loc_rec;

    void *__meth_ptr;
    void *__data_ptr;

} _LC_time_t;

typedef struct _LC_time_objhdl _LC_time_objhdl_t;
struct _LC_time_objhdl {
        _LC_time_t *obj;


        void *(**meth)();


struct _LC_locale_objhdl *loc_hdl;


};






typedef struct {
    unsigned
        short n[4 +1];
} _LC_weight_t;






typedef struct {

    char *ce_sym;
    _LC_weight_t ce_wgt;

} _LC_collel_t;






typedef struct {
    _LC_weight_t ct_wgt;


    _LC_collel_t *ct_collel;

} _LC_coltbl_t;
# 319 "/usr/include/sys/localedef.h" 3 4
typedef struct {
    char *tgt_wgt_str[4 +1];


} _LC_subs_t;







typedef struct {

    _LC_core_collate_t core;

    unsigned
        char co_nord;

    _LC_weight_t co_sort;


    wchar_t co_wc_min;
    wchar_t co_wc_max;

    wchar_t co_col_min;
    wchar_t co_col_max;

    _LC_coltbl_t *co_coltbl;

    unsigned
        char co_nsubs;
    _LC_subs_t *co_subs;

    unsigned
        short co_special;




    struct __LC_locale
                *loc_rec;

    void *__meth_ptr;
    void *__data_ptr;

} _LC_collate_t;

typedef struct _LC_collate_objhdl _LC_collate_objhdl_t;
struct _LC_collate_objhdl {
        _LC_collate_t *obj;


        void *(**meth)();


struct _LC_locale_objhdl *loc_hdl;


};
# 392 "/usr/include/sys/localedef.h" 3 4
typedef struct {

    char *name;
    unsigned
        int mask;

} _LC_classnm_t;







typedef struct {

  _LC_core_ctype_t core;


  wchar_t min_wc;
  wchar_t max_wc;


  wchar_t *upper;
  wchar_t *lower;


  unsigned
      int *mask;
  unsigned
      int *qmask;
  unsigned
      char *qidx;


  unsigned
      char nclasses;
 _LC_classnm_t *classnms;

    struct __LC_locale
               *loc_rec;

    void *__meth_ptr;
    void *__data_ptr;

} _LC_ctype_t;

typedef struct _LC_ctype_objhdl _LC_ctype_objhdl_t;
struct _LC_ctype_objhdl {
        _LC_ctype_t *obj;


        void *(**meth)();


struct _LC_locale_objhdl *loc_hdl;


};
# 465 "/usr/include/sys/localedef.h" 3 4
typedef struct __LC_locale {

    _LC_core_locale_t core;

    char *nl_info[63];
    struct lconv *nl_lconv;

    _LC_charmap_objhdl_t lc_charmap;
    _LC_collate_objhdl_t lc_collate;
    _LC_ctype_objhdl_t lc_ctype;
    _LC_monetary_objhdl_t lc_monetary;
    _LC_numeric_objhdl_t lc_numeric;
    _LC_resp_objhdl_t lc_resp;
    _LC_time_objhdl_t lc_time;

    struct __LC_locale *loc_rec;


    void *__meth_ptr;
    void *__data_ptr;

    char *__nl_yesstr;
    char *__nl_nostr;
    char *__nl_crncystr;

} _LC_locale_t;

typedef struct _LC_locale_objhdl _LC_locale_objhdl_t;
struct _LC_locale_objhdl {
        _LC_locale_t *obj;


        void *(**meth)();


struct _LC_locale_objhdl *loc_hdl;


};
# 512 "/usr/include/sys/localedef.h" 3 4
typedef struct _LC_object_handle _LC_object_handle_t;
struct _LC_object_handle {
    union {
        _LC_object_t lc_object;
        _LC_locale_objhdl_t lc_locale;
        _LC_charmap_objhdl_t lc_charmap;
        _LC_collate_objhdl_t lc_collate;
        _LC_ctype_objhdl_t lc_ctype;
        _LC_monetary_objhdl_t lc_monetary;
        _LC_numeric_objhdl_t lc_numeric;
        _LC_resp_objhdl_t lc_resp;
        _LC_time_objhdl_t lc_time;
    } obj;


    void *(**meth)();


struct _LC_locale_objhdl *loc_hdl;


};


typedef struct {
    _LC_object_t hdr;
    _LC_locale_objhdl_t handle;
} _LC_load_object_t;







extern _LC_charmap_objhdl_t __lc_charmap;
extern _LC_collate_objhdl_t __lc_collate;
extern _LC_ctype_objhdl_t __lc_ctype;
extern _LC_monetary_objhdl_t __lc_monetary;
extern _LC_numeric_objhdl_t __lc_numeric;
extern _LC_resp_objhdl_t __lc_resp;
extern _LC_time_objhdl_t __lc_time;
extern _LC_locale_objhdl_t __lc_locale;
# 132 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/ctype.h" 2 3 4







        extern int is_wctype(wint_t, wctype_t);
        extern wctype_t get_wctype(char *);
        extern int isblank(int);
# 389 "../wxX11/include/wx/wxchar.h" 2
# 1 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/string.h" 1 3 4
# 390 "../wxX11/include/wx/wxchar.h" 2
# 543 "../wxX11/include/wx/wxchar.h"
inline bool wxIsEmpty(const char *p) { return !p || !*p; }



inline size_t wxStrlen(const char *psz)
   { return psz ? strlen(psz) : 0; }




            size_t wxMB2WC(wchar_t *buf, const char *psz, size_t n);
            size_t wxWC2MB(char *buf, const wchar_t *psz, size_t n);
# 576 "../wxX11/include/wx/wxchar.h"
            bool wxOKlibc();
# 19 "../wxX11/include/wx/debug.h" 2
# 123 "../wxX11/include/wx/debug.h"
extern const bool wxFalse;
# 336 "../wxX11/include/wx/defs.h" 2





# 1 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/stddef.h" 1 3 4
# 342 "../wxX11/include/wx/defs.h" 2
# 407 "../wxX11/include/wx/defs.h"
typedef void (*wxFunction) (wxObject&, wxEvent&);







enum
{
    wxUNKNOWN_PLATFORM,
    wxCURSES,
    wxXVIEW_X,
    wxMOTIF_X,
    wxCOSE_X,
    wxNEXTSTEP,
    wxMAC,
    wxMAC_DARWIN,
    wxBEOS,
    wxGTK,
    wxGTK_WIN32,
    wxGTK_OS2,
    wxGTK_BEOS,
    wxGEOS,
    wxOS2_PM,
    wxWINDOWS,
    wxMICROWINDOWS,
    wxPENWINDOWS,
    wxWINDOWS_NT,
    wxWIN32S,
    wxWIN95,
    wxWIN386,
    wxMGL_UNIX,
    wxMGL_X,
    wxMGL_WIN32,
    wxMGL_OS2,
    wxMGL_DOS,
    wxWINDOWS_OS2,
    wxUNIX,
    wxX11
};
# 465 "../wxX11/include/wx/defs.h"
        typedef int wxCoord;
# 532 "../wxX11/include/wx/defs.h"
typedef float wxFloat32 ;



    typedef double wxFloat64;





    typedef double wxDouble ;
# 717 "../wxX11/include/wx/defs.h"
enum wxGeometryCentre
{
    wxCENTRE = 0x0001,
    wxCENTER = wxCENTRE
};







enum wxOrientation
{
    wxHORIZONTAL = 0x0004,
    wxVERTICAL = 0x0008,

    wxBOTH = (wxVERTICAL | wxHORIZONTAL)
};

enum wxDirection
{
    wxLEFT = 0x0010,
    wxRIGHT = 0x0020,
    wxUP = 0x0040,
    wxDOWN = 0x0080,

    wxTOP = wxUP,
    wxBOTTOM = wxDOWN,

    wxNORTH = wxUP,
    wxSOUTH = wxDOWN,
    wxWEST = wxLEFT,
    wxEAST = wxRIGHT,

    wxALL = (wxUP | wxDOWN | wxRIGHT | wxLEFT)
};

enum wxAlignment
{
    wxALIGN_NOT = 0x0000,
    wxALIGN_CENTER_HORIZONTAL = 0x0100,
    wxALIGN_CENTRE_HORIZONTAL = wxALIGN_CENTER_HORIZONTAL,
    wxALIGN_LEFT = wxALIGN_NOT,
    wxALIGN_TOP = wxALIGN_NOT,
    wxALIGN_RIGHT = 0x0200,
    wxALIGN_BOTTOM = 0x0400,
    wxALIGN_CENTER_VERTICAL = 0x0800,
    wxALIGN_CENTRE_VERTICAL = wxALIGN_CENTER_VERTICAL,

    wxALIGN_CENTER = (wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL),
    wxALIGN_CENTRE = wxALIGN_CENTER,


    wxALIGN_MASK = 0x0f00
};

enum wxStretch
{
    wxSTRETCH_NOT = 0x0000,
    wxSHRINK = 0x1000,
    wxGROW = 0x2000,
    wxEXPAND = wxGROW,
    wxSHAPED = 0x4000,
    wxADJUST_MINSIZE = 0x8000,
    wxTILE = 0xc000
};


enum wxBorder
{


    wxBORDER_DEFAULT = 0,

    wxBORDER_NONE = 0x00200000,
    wxBORDER_STATIC = 0x01000000,
    wxBORDER_SIMPLE = 0x02000000,
    wxBORDER_RAISED = 0x04000000,
    wxBORDER_SUNKEN = 0x08000000,
    wxBORDER_DOUBLE = 0x10000000,


    wxBORDER_MASK = 0x1f200000
};
# 1283 "../wxX11/include/wx/defs.h"
enum wxItemKind
{
    wxItem_Separator = -1,
    wxItem_Normal,
    wxItem_Check,
    wxItem_Radio,
    wxItem_Max
};


enum wxHitTest
{
    wxHT_NOWHERE,


    wxHT_SCROLLBAR_FIRST = wxHT_NOWHERE,
    wxHT_SCROLLBAR_ARROW_LINE_1,
    wxHT_SCROLLBAR_ARROW_LINE_2,
    wxHT_SCROLLBAR_ARROW_PAGE_1,
    wxHT_SCROLLBAR_ARROW_PAGE_2,
    wxHT_SCROLLBAR_THUMB,
    wxHT_SCROLLBAR_BAR_1,
    wxHT_SCROLLBAR_BAR_2,
    wxHT_SCROLLBAR_LAST,


    wxHT_WINDOW_OUTSIDE,
    wxHT_WINDOW_INSIDE,
    wxHT_WINDOW_VERT_SCROLLBAR,
    wxHT_WINDOW_HORZ_SCROLLBAR,
    wxHT_WINDOW_CORNER,

    wxHT_MAX
};
# 1340 "../wxX11/include/wx/defs.h"
enum {

  wxDEFAULT = 70,
  wxDECORATIVE,
  wxROMAN,
  wxSCRIPT,
  wxSWISS,
  wxMODERN,
  wxTELETYPE,


  wxVARIABLE = 80,
  wxFIXED,

  wxNORMAL = 90,
  wxLIGHT,
  wxBOLD,

  wxITALIC,
  wxSLANT,


  wxSOLID = 100,
  wxDOT,
  wxLONG_DASH,
  wxSHORT_DASH,
  wxDOT_DASH,
  wxUSER_DASH,

  wxTRANSPARENT,



  wxSTIPPLE_MASK_OPAQUE,
  wxSTIPPLE_MASK,

  wxSTIPPLE = 110,
  wxBDIAGONAL_HATCH,
  wxCROSSDIAG_HATCH,
  wxFDIAGONAL_HATCH,
  wxCROSS_HATCH,
  wxHORIZONTAL_HATCH,
  wxVERTICAL_HATCH,


  wxJOIN_BEVEL = 120,
  wxJOIN_MITER,
  wxJOIN_ROUND,

  wxCAP_ROUND = 130,
  wxCAP_PROJECTING,
  wxCAP_BUTT
};



typedef enum
{
  wxCLEAR, wxROP_BLACK = wxCLEAR, wxBLIT_BLACKNESS = wxCLEAR,
  wxXOR, wxROP_XORPEN = wxXOR, wxBLIT_SRCINVERT = wxXOR,
  wxINVERT, wxROP_NOT = wxINVERT, wxBLIT_DSTINVERT = wxINVERT,
  wxOR_REVERSE, wxROP_MERGEPENNOT = wxOR_REVERSE, wxBLIT_00DD0228 = wxOR_REVERSE,
  wxAND_REVERSE, wxROP_MASKPENNOT = wxAND_REVERSE, wxBLIT_SRCERASE = wxAND_REVERSE,
  wxCOPY, wxROP_COPYPEN = wxCOPY, wxBLIT_SRCCOPY = wxCOPY,
  wxAND, wxROP_MASKPEN = wxAND, wxBLIT_SRCAND = wxAND,
  wxAND_INVERT, wxROP_MASKNOTPEN = wxAND_INVERT, wxBLIT_00220326 = wxAND_INVERT,
  wxNO_OP, wxROP_NOP = wxNO_OP, wxBLIT_00AA0029 = wxNO_OP,
  wxNOR, wxROP_NOTMERGEPEN = wxNOR, wxBLIT_NOTSRCERASE = wxNOR,
  wxEQUIV, wxROP_NOTXORPEN = wxEQUIV, wxBLIT_00990066 = wxEQUIV,
  wxSRC_INVERT, wxROP_NOTCOPYPEN = wxSRC_INVERT, wxBLIT_NOTSCRCOPY = wxSRC_INVERT,
  wxOR_INVERT, wxROP_MERGENOTPEN = wxOR_INVERT, wxBLIT_MERGEPAINT = wxOR_INVERT,
  wxNAND, wxROP_NOTMASKPEN = wxNAND, wxBLIT_007700E6 = wxNAND,
  wxOR, wxROP_MERGEPEN = wxOR, wxBLIT_SRCPAINT = wxOR,
  wxSET, wxROP_WHITE = wxSET, wxBLIT_WHITENESS = wxSET
} form_ops_t;
# 1432 "../wxX11/include/wx/defs.h"
enum wxDataFormatId
{
    wxDF_INVALID = 0,
    wxDF_TEXT = 1,
    wxDF_BITMAP = 2,
    wxDF_METAFILE = 3,
    wxDF_SYLK = 4,
    wxDF_DIF = 5,
    wxDF_TIFF = 6,
    wxDF_OEMTEXT = 7,
    wxDF_DIB = 8,
    wxDF_PALETTE = 9,
    wxDF_PENDATA = 10,
    wxDF_RIFF = 11,
    wxDF_WAVE = 12,
    wxDF_UNICODETEXT = 13,
    wxDF_ENHMETAFILE = 14,
    wxDF_FILENAME = 15,
    wxDF_LOCALE = 16,
    wxDF_PRIVATE = 20,
    wxDF_MAX
};



enum wxKeyCode
{
  WXK_BACK = 8,
  WXK_TAB = 9,
  WXK_RETURN = 13,
  WXK_ESCAPE = 27,
  WXK_SPACE = 32,
  WXK_DELETE = 127,

  WXK_START = 300,
  WXK_LBUTTON,
  WXK_RBUTTON,
  WXK_CANCEL,
  WXK_MBUTTON,
  WXK_CLEAR,
  WXK_SHIFT,
  WXK_ALT,
  WXK_CONTROL,
  WXK_MENU,
  WXK_PAUSE,
  WXK_CAPITAL,
  WXK_PRIOR,
  WXK_NEXT,
  WXK_END,
  WXK_HOME,
  WXK_LEFT,
  WXK_UP,
  WXK_RIGHT,
  WXK_DOWN,
  WXK_SELECT,
  WXK_PRINT,
  WXK_EXECUTE,
  WXK_SNAPSHOT,
  WXK_INSERT,
  WXK_HELP,
  WXK_NUMPAD0,
  WXK_NUMPAD1,
  WXK_NUMPAD2,
  WXK_NUMPAD3,
  WXK_NUMPAD4,
  WXK_NUMPAD5,
  WXK_NUMPAD6,
  WXK_NUMPAD7,
  WXK_NUMPAD8,
  WXK_NUMPAD9,
  WXK_MULTIPLY,
  WXK_ADD,
  WXK_SEPARATOR,
  WXK_SUBTRACT,
  WXK_DECIMAL,
  WXK_DIVIDE,
  WXK_F1,
  WXK_F2,
  WXK_F3,
  WXK_F4,
  WXK_F5,
  WXK_F6,
  WXK_F7,
  WXK_F8,
  WXK_F9,
  WXK_F10,
  WXK_F11,
  WXK_F12,
  WXK_F13,
  WXK_F14,
  WXK_F15,
  WXK_F16,
  WXK_F17,
  WXK_F18,
  WXK_F19,
  WXK_F20,
  WXK_F21,
  WXK_F22,
  WXK_F23,
  WXK_F24,
  WXK_NUMLOCK,
  WXK_SCROLL,
  WXK_PAGEUP,
  WXK_PAGEDOWN,

  WXK_NUMPAD_SPACE,
  WXK_NUMPAD_TAB,
  WXK_NUMPAD_ENTER,
  WXK_NUMPAD_F1,
  WXK_NUMPAD_F2,
  WXK_NUMPAD_F3,
  WXK_NUMPAD_F4,
  WXK_NUMPAD_HOME,
  WXK_NUMPAD_LEFT,
  WXK_NUMPAD_UP,
  WXK_NUMPAD_RIGHT,
  WXK_NUMPAD_DOWN,
  WXK_NUMPAD_PRIOR,
  WXK_NUMPAD_PAGEUP,
  WXK_NUMPAD_NEXT,
  WXK_NUMPAD_PAGEDOWN,
  WXK_NUMPAD_END,
  WXK_NUMPAD_BEGIN,
  WXK_NUMPAD_INSERT,
  WXK_NUMPAD_DELETE,
  WXK_NUMPAD_EQUAL,
  WXK_NUMPAD_MULTIPLY,
  WXK_NUMPAD_ADD,
  WXK_NUMPAD_SEPARATOR,
  WXK_NUMPAD_SUBTRACT,
  WXK_NUMPAD_DECIMAL,
  WXK_NUMPAD_DIVIDE
};
# 1583 "../wxX11/include/wx/defs.h"
typedef enum {
    wxPAPER_NONE,
    wxPAPER_LETTER,
    wxPAPER_LEGAL,
    wxPAPER_A4,
    wxPAPER_CSHEET,
    wxPAPER_DSHEET,
    wxPAPER_ESHEET,
    wxPAPER_LETTERSMALL,
    wxPAPER_TABLOID,
    wxPAPER_LEDGER,
    wxPAPER_STATEMENT,
    wxPAPER_EXECUTIVE,
    wxPAPER_A3,
    wxPAPER_A4SMALL,
    wxPAPER_A5,
    wxPAPER_B4,
    wxPAPER_B5,
    wxPAPER_FOLIO,
    wxPAPER_QUARTO,
    wxPAPER_10X14,
    wxPAPER_11X17,
    wxPAPER_NOTE,
    wxPAPER_ENV_9,
    wxPAPER_ENV_10,
    wxPAPER_ENV_11,
    wxPAPER_ENV_12,
    wxPAPER_ENV_14,
    wxPAPER_ENV_DL,
    wxPAPER_ENV_C5,
    wxPAPER_ENV_C3,
    wxPAPER_ENV_C4,
    wxPAPER_ENV_C6,
    wxPAPER_ENV_C65,
    wxPAPER_ENV_B4,
    wxPAPER_ENV_B5,
    wxPAPER_ENV_B6,
    wxPAPER_ENV_ITALY,
    wxPAPER_ENV_MONARCH,
    wxPAPER_ENV_PERSONAL,
    wxPAPER_FANFOLD_US,
    wxPAPER_FANFOLD_STD_GERMAN,
    wxPAPER_FANFOLD_LGL_GERMAN,

    wxPAPER_ISO_B4,
    wxPAPER_JAPANESE_POSTCARD,
    wxPAPER_9X11,
    wxPAPER_10X11,
    wxPAPER_15X11,
    wxPAPER_ENV_INVITE,
    wxPAPER_LETTER_EXTRA,
    wxPAPER_LEGAL_EXTRA,
    wxPAPER_TABLOID_EXTRA,
    wxPAPER_A4_EXTRA,
    wxPAPER_LETTER_TRANSVERSE,
    wxPAPER_A4_TRANSVERSE,
    wxPAPER_LETTER_EXTRA_TRANSVERSE,
    wxPAPER_A_PLUS,
    wxPAPER_B_PLUS,
    wxPAPER_LETTER_PLUS,
    wxPAPER_A4_PLUS,
    wxPAPER_A5_TRANSVERSE,
    wxPAPER_B5_TRANSVERSE,
    wxPAPER_A3_EXTRA,
    wxPAPER_A5_EXTRA,
    wxPAPER_B5_EXTRA,
    wxPAPER_A2,
    wxPAPER_A3_TRANSVERSE,
    wxPAPER_A3_EXTRA_TRANSVERSE

} wxPaperSize ;
# 1664 "../wxX11/include/wx/defs.h"
typedef enum {
    wxDUPLEX_SIMPLEX,
    wxDUPLEX_HORIZONTAL,
    wxDUPLEX_VERTICAL
} wxDuplexMode;
# 1678 "../wxX11/include/wx/defs.h"
typedef int wxPrintQuality;




typedef enum {
    wxPRINT_MODE_NONE = 0,
    wxPRINT_MODE_PREVIEW = 1,
    wxPRINT_MODE_FILE = 2,
    wxPRINT_MODE_PRINTER = 3
} wxPrintMode;
# 1909 "../wxX11/include/wx/defs.h"
typedef void* WXWindow;
typedef void* WXWidget;
typedef void* WXAppContext;
typedef void* WXColormap;
typedef void* WXColor;
typedef void WXDisplay;
typedef void WXEvent;
typedef void* WXCursor;
typedef void* WXPixmap;
typedef void* WXFontStructPtr;
typedef void* WXGC;
typedef void* WXRegion;
typedef void* WXFont;
typedef void* WXImage;
typedef void* WXFontList;

typedef unsigned long Atom;
# 14 "../wxX11/include/wx/wxprec.h" 2
# 61 "../wxX11/src/common/datetime.cpp" 2
# 69 "../wxX11/src/common/datetime.cpp"
# 1 "../wxX11/include/wx/string.h" 1
# 22 "../wxX11/include/wx/string.h"
#pragma interface "string.h"
# 36 "../wxX11/include/wx/string.h"
# 1 "../wxX11/include/wx/defs.h" 1
# 37 "../wxX11/include/wx/string.h" 2
# 54 "../wxX11/include/wx/string.h"
# 1 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/string.h" 1 3 4
# 55 "../wxX11/include/wx/string.h" 2
# 1 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/stdio.h" 1 3 4
# 14 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/stdio.h" 3 4
# 1 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/stdarg.h" 1 3 4
# 43 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/stdarg.h" 3 4
typedef __builtin_va_list __gnuc_va_list;
# 15 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/stdio.h" 2 3 4
# 61 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/stdio.h" 3 4
extern "C" {
# 150 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/stdio.h" 3 4
typedef struct {
        unsigned char *_ptr;
        int _cnt;
        unsigned char *_base;
        unsigned char *_bufendp;
        short _flag;
        short _file;
        int __stdioid;
        char *__newbase;



        long _unused[1];




} FILE;




extern FILE _iob[16];
# 185 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/stdio.h" 3 4
extern size_t fread(void *, size_t, size_t, FILE *);
extern size_t fwrite(const void *, size_t, size_t,FILE *);
# 234 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/stdio.h" 3 4
extern int __flsbuf(unsigned char, FILE *);
extern int __filbuf(FILE *);
extern int ferror(FILE *);
extern int feof(FILE *);
extern void clearerr(FILE *);
extern int putchar(int);
extern int getchar(void);
extern int putc(int, FILE *);
extern int getc(FILE *);
extern int remove(const char *);
extern int rename(const char *, const char *);
extern FILE *tmpfile(void);
extern char *tmpnam(char *);
extern int fclose(FILE *);
extern int fflush(FILE *);
extern FILE *fopen(const char *, const char *);
extern FILE *freopen(const char *, const char *, FILE *);
extern void setbuf(FILE *, char *);
extern int setvbuf(FILE *, char *, int, size_t);
extern int fprintf(FILE *, const char *, ...);
extern int fscanf(FILE *, const char *, ...);
extern int printf(const char *, ...);
extern int scanf(const char *, ...);
extern int sprintf(char *, const char *, ...);

extern int snprintf(char *, size_t, const char *, ...);

extern int sscanf(const char *, const char *, ...);
# 272 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/stdio.h" 3 4
# 1 "/usr/include/va_list.h" 1 3 4
# 273 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/stdio.h" 2 3 4
extern int vfprintf(FILE *, const char *, __gnuc_va_list);
extern int vprintf(const char *, __gnuc_va_list);
extern int vsprintf(char *, const char *, __gnuc_va_list);

extern int vsnprintf(char *, size_t, const char *, __gnuc_va_list);



extern int fgetc(FILE *);
extern char *fgets(char *, int, FILE *);
extern int fputc(int, FILE *);
extern int fputs(const char *, FILE *);
extern char *gets(char *);
extern int puts(const char *);
extern int ungetc(int, FILE *);
extern int fgetpos(FILE *, fpos_t *);
extern int fseek(FILE *, long int, int);
extern int fsetpos(FILE *, const fpos_t *);
extern long ftell(FILE *);
extern void rewind(FILE *);
extern void perror(const char *);





extern int getc_unlocked(FILE *);
extern int getchar_unlocked(void);
extern int putc_unlocked(int, FILE *);
extern int putchar_unlocked(int);
# 388 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/stdio.h" 3 4
extern int fileno(FILE *);
extern FILE *fdopen(int,const char *);
extern char *ctermid(char *);

extern void flockfile(FILE *);
extern void funlockfile(FILE *);
extern int fseeko(FILE *, off_t, int);
extern off_t ftello(FILE *);
extern int ftrylockfile(FILE *);
extern void funlockfile(FILE *);
# 410 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/stdio.h" 3 4
# 1 "/usr/include/va_list.h" 1 3 4
# 411 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/stdio.h" 2 3 4

extern char *optarg;
extern int opterr;
extern int optind;
extern int optopt;
# 428 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/stdio.h" 3 4
extern int getw(FILE *);
extern int putw(int, FILE *);
extern char *tempnam(const char*, const char*);
extern FILE *popen(const char *, const char *);
extern int pclose(FILE *);
extern int getopt(int, char * const [], const char*);
extern char *cuserid(char *);
# 448 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/stdio.h" 3 4
extern int fgetpos64(FILE *, fpos64_t *);
extern FILE *fopen64(const char *, const char *);
extern FILE *freopen64(const char *, const char *, FILE *);
extern int fseeko64(FILE *, off64_t, int);
extern int fsetpos64(FILE *, const fpos64_t *);
extern off64_t ftello64(FILE *);
# 463 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/stdio.h" 3 4
extern void setbuffer(FILE *, char *, size_t);
extern void setlinebuf(FILE *);
extern int vscanf(const char *, __gnuc_va_list);
extern int vfscanf(FILE *, const char *, __gnuc_va_list);
extern int vsscanf(const char *, const char *, __gnuc_va_list);
# 534 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/stdio.h" 3 4
}
# 56 "../wxX11/include/wx/string.h" 2
# 1 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/stdarg.h" 1 3 4
# 57 "../wxX11/include/wx/string.h" 2
# 1 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/limits.h" 1 3 4
# 58 "../wxX11/include/wx/string.h" 2
# 1 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/stdlib.h" 1 3 4
# 54 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/stdlib.h" 3 4
extern "C" {
# 95 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/stdlib.h" 3 4
typedef struct div_t {
        int quot;
        int rem;
} div_t;

typedef struct ldiv_t {
        long int quot;
        long int rem;
} ldiv_t;






extern size_t __getmbcurmax (void);
extern int __getmaxdispwidth (void);
# 126 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/stdlib.h" 3 4
        extern int mblen(const char *, size_t);
        extern size_t mbstowcs(wchar_t *, const char *, size_t);
        extern int mbtowc(wchar_t *, const char *, size_t);
        extern size_t wcstombs(char *, const wchar_t *, size_t);
        extern int wctomb(char *, const wchar_t);
# 182 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/stdlib.h" 3 4
        extern double atof(const char *);
        extern int atoi(const char *);
        extern long int atol(const char *);
        extern double strtod(const char *, char * *);
        extern long int strtol(const char *, char * *, int);
        extern unsigned long int strtoul(const char *, char * *, int);
        extern int rand(void);
        extern void srand(unsigned int);
        extern void *calloc(size_t, size_t);
        extern void free(void *);
        extern void *malloc(size_t);
        extern void *realloc(void *, size_t);
        extern void abort(void);
        extern int atexit(void (*)(void));
        extern void exit(int);
        extern char *getenv(const char *);
        extern int system(const char *);
        extern void *bsearch(const void *, const void *, size_t, size_t, int(*)(const void *,const void *));
        extern void qsort(void *, size_t, size_t, int(*)(const void *,const void *));
# 211 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/stdlib.h" 3 4
        extern int abs(int);
        extern struct div_t div(int, int);
        extern long int labs(long int);
        extern struct ldiv_t ldiv(long int, long int);
# 235 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/stdlib.h" 3 4
# 1 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/sys/wait.h" 1 3 4
# 53 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/sys/wait.h" 3 4
extern "C" {




# 1 "/usr/include/sys/resource.h" 1 3 4
# 54 "/usr/include/sys/resource.h" 3 4
extern "C" {


# 1 "/usr/include/sys/time.h" 1 3 4
# 50 "/usr/include/sys/time.h" 3 4
extern "C" {


# 1 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/sys/types.h" 1 3 4
# 54 "/usr/include/sys/time.h" 2 3 4
# 90 "/usr/include/sys/time.h" 3 4
struct timeval {
        time_t tv_sec;

        suseconds_t tv_usec;



};




struct timeval32 {
    int32_t tv_sec;
    int32_t tv_usec;
};






struct timeval64 {
    int64_t tv_sec;
    int64_t tv_usec;
};






struct itimerval {
        struct timeval it_interval;
        struct timeval it_value;
};







extern int getitimer(int, struct itimerval *);
extern int setitimer(int, const struct itimerval *, struct itimerval *);
extern int gettimeofday(struct timeval *, void *);
extern int utimes(const char *, const struct timeval *);
# 154 "/usr/include/sys/time.h" 3 4
typedef struct

fd_set

{
        long fds_bits[(32767/(sizeof(long) * 8)+1)];
} fd_set;
# 169 "/usr/include/sys/time.h" 3 4
extern int select(int, fd_set *, fd_set *, fd_set *, struct timeval *);
# 272 "/usr/include/sys/time.h" 3 4
struct timestruc_t {
        time_t tv_sec;
        suseconds_t tv_nsec;
};





struct timestruc32_t {
    int32_t tv_sec;
    int32_t tv_nsec;
};
# 295 "/usr/include/sys/time.h" 3 4
struct itimerstruc_t {
        struct timestruc_t it_interval;
        struct timestruc_t it_value;
};





struct itimerstruc32_t {
    struct timestruc32_t it_interval;
    struct timestruc32_t it_value;
};
# 318 "/usr/include/sys/time.h" 3 4
typedef struct timebasestruct {
        int flag;
        unsigned int tb_high;
        unsigned int tb_low;
        } timebasestruct_t;

int read_real_time(timebasestruct_t *, size_t);
int time_base_to_time(timebasestruct_t *, size_t);
# 450 "/usr/include/sys/time.h" 3 4
struct timezone {
        int tz_minuteswest;
        int tz_dsttime;
};
# 482 "/usr/include/sys/time.h" 3 4
}
# 58 "/usr/include/sys/resource.h" 2 3 4
# 102 "/usr/include/sys/resource.h" 3 4
typedef unsigned long rlim_t;
struct rlimit {
        rlim_t rlim_cur;
        rlim_t rlim_max;
};





typedef unsigned long long rlim64_t;
struct rlimit64 {
        rlim64_t rlim_cur;
        rlim64_t rlim_max;
};
# 154 "/usr/include/sys/resource.h" 3 4
struct rusage
{
        struct timeval ru_utime;
        struct timeval ru_stime;
        long ru_maxrss;
        long ru_ixrss;
        long ru_idrss;
        long ru_isrss;
        long ru_minflt;
        long ru_majflt;
        long ru_nswap;
        long ru_inblock;
        long ru_oublock;
        long ru_msgsnd;
        long ru_msgrcv;
        long ru_nsignals;
        long ru_nvcsw;
        long ru_nivcsw;
};





struct rusage64
{
        struct timeval ru_utime;
        struct timeval ru_stime;
        long long ru_maxrss;
        long long ru_ixrss;
        long long ru_idrss;
        long long ru_isrss;
        long long ru_minflt;
        long long ru_majflt;
        long long ru_nswap;
        long long ru_inblock;
        long long ru_oublock;
        long long ru_msgsnd;
        long long ru_msgrcv;
        long long ru_nsignals;
        long long ru_nvcsw;
        long long ru_nivcsw;
};





struct trusage64
{
        struct timeval64 ru_utime;
        struct timeval64 ru_stime;
        longlong_t ru_maxrss;
        longlong_t ru_ixrss;
        longlong_t ru_idrss;
        longlong_t ru_isrss;
        longlong_t ru_minflt;
        longlong_t ru_majflt;
        longlong_t ru_nswap;
        longlong_t ru_inblock;
        longlong_t ru_oublock;
        longlong_t ru_msgsnd;
        longlong_t ru_msgrcv;
        longlong_t ru_nsignals;
        longlong_t ru_nvcsw;
        longlong_t ru_nivcsw;
};
# 249 "/usr/include/sys/resource.h" 3 4
extern int getpriority(int, id_t);
extern int setpriority(int, id_t, int);
extern int getrlimit(int, struct rlimit *);
extern int setrlimit(int, const struct rlimit *);


extern int getrlimit64(int, struct rlimit64 *);
extern int setrlimit64(int, const struct rlimit64 *);







extern int getrusage(int, struct rusage *);

extern int getrusage64(int, struct rusage64 *);
# 290 "/usr/include/sys/resource.h" 3 4
}
# 59 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/sys/wait.h" 2 3 4



# 1 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/sys/signal.h" 1 3 4
# 77 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/sys/signal.h" 3 4
extern "C" {
# 108 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/sys/signal.h" 3 4
extern void (*signal(int, void (*)(int)))(int);







extern int raise(int);


typedef int sig_atomic_t;
# 237 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/sys/signal.h" 3 4
union sigval
{



        void * sival_ptr;

        int sival_int;
};
# 258 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/sys/signal.h" 3 4
typedef struct {
        int si_signo;
        int si_errno;
        int si_code;
        pid_t si_pid;
        uid_t si_uid;
# 286 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/sys/signal.h" 3 4
        void *si_addr;
        int si_status;


        long si_band;


        union sigval si_value;







        int __pad[7];



} siginfo_t;







struct sigaction {

   union {






        void (*__su_handler)(int);



        void (*__su_sigaction) (int, siginfo_t *, void *);



    } sa_union;
        sigset_t sa_mask;
        int sa_flags;
};
# 349 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/sys/signal.h" 3 4
# 1 "/usr/include/sys/context.h" 1 3 4
# 25 "/usr/include/sys/context.h" 3 4
# 1 "/usr/include/sys/m_param.h" 1 3 4
# 26 "/usr/include/sys/context.h" 2 3 4
# 1 "/usr/include/sys/mstsave.h" 1 3 4
# 38 "/usr/include/sys/mstsave.h" 3 4
# 1 "/usr/include/sys/m_param.h" 1 3 4
# 39 "/usr/include/sys/mstsave.h" 2 3 4
# 1 "/usr/include/sys/m_types.h" 1 3 4
# 40 "/usr/include/sys/mstsave.h" 2 3 4







struct

mstsave



{

        struct mstsave *prev;
        label_t *kjmpbuf;
        char *stackfix;
        char intpri;
        char backt;
        char rsvd[2];
        pid_t curid;

        int excp_type;
        ulong_t iar;
        ulong_t msr;
        ulong_t cr;
        ulong_t lr;
        ulong_t ctr;
        ulong_t xer;
        ulong_t mq;
        ulong_t tid;
        ulong_t fpscr;
        char fpeu;
        char fpinfo;
        char pad[2];

        ulong_t except[5];
        char pad1[4];
        ulong_t o_iar;
        ulong_t o_toc;
        ulong_t o_arg1;
        ulong_t excbranch;



        ulong_t fpscrx;
        ulong_t o_vaddr;
        ulong_t cachealign[7];
        adspace_t as;
        ulong_t gpr[32];
        double fpr[32];
# 131 "/usr/include/sys/mstsave.h" 3 4
};
# 220 "/usr/include/sys/mstsave.h" 3 4
extern char __pmap_stack[];
# 27 "/usr/include/sys/context.h" 2 3 4


extern "C" {
# 71 "/usr/include/sys/context.h" 3 4
struct __context64 {
        unsigned long long gpr[32];
        unsigned long long msr;
        unsigned long long iar;
        unsigned long long lr;
        unsigned long long ctr;
        unsigned int cr;
        unsigned int xer;
        unsigned int fpscr;
        unsigned int fpscrx;
        unsigned long long except[1];
        double fpr[32];
        char fpeu;
        char fpinfo;
        char pad[2];
        int excp_type;
};
# 119 "/usr/include/sys/context.h" 3 4
struct sigcontext64 {
        int sc_onstack;
        unsigned int sc_mask1;
        unsigned int sc_mask2;
        int sc_uerror;
        struct __context64 sc_context;
};
# 211 "/usr/include/sys/context.h" 3 4
struct __jmpbuf {

        struct mstsave jmp_context;



};
# 245 "/usr/include/sys/context.h" 3 4
struct __sigcontext {

        int sc_onstack;
        sigset_t sc_mask;
        int sc_uerror;
        struct __jmpbuf sc_jmpbuf;






};







typedef struct {




        void *ss_sp;
        size_t ss_size;


        int ss_flags;
        int __pad[4];
} stack_t;







typedef struct __jmpbuf mcontext_t;

typedef struct ucontext_t {
        int __sc_onstack;
        sigset_t uc_sigmask;

        int __sc_uerror;
        mcontext_t uc_mcontext;



        struct ucontext_t *uc_link;


        stack_t uc_stack;
        int __pad[4];
} ucontext_t;


}
# 350 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/sys/signal.h" 2 3 4




struct sigstack {
        void *ss_sp;
        int ss_onstack;
};
# 436 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/sys/signal.h" 3 4
extern int sigmask(int);
# 589 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/sys/signal.h" 3 4
# 1 "/usr/include/sys/m_signal.h" 1 3 4
# 590 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/sys/signal.h" 2 3 4
# 599 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/sys/signal.h" 3 4
struct sigevent {
        union sigval sigev_value;
        int sigev_signo;
        int sigev_notify;




        void (*sigev_notify_function)(union sigval);
        pthread_attr_t * sigev_notify_attributes;

};
# 627 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/sys/signal.h" 3 4
struct osigevent {



        void *sevt_value;

        signal_t sevt_signo;
};
# 718 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/sys/signal.h" 3 4
struct sigvec {
# 730 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/sys/signal.h" 3 4
   union {






        void (*sv_handler)(int);



        void (*sv_sigaction) (int, siginfo_t *, void *);
   } sv_union;
        int sv_mask;
        int sv_flags;

};
# 804 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/sys/signal.h" 3 4
extern int sigwait(const sigset_t *, int *);

extern int sigblock(int);
extern int siglocalmask(int, const sigset_t *);
extern int sigvec(int, struct sigvec *, struct sigvec *);







extern int siggetmask(void);
extern int sigsetmask(int);
# 856 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/sys/signal.h" 3 4
extern int kill(pid_t, int);
extern int sigprocmask(int, const sigset_t *, sigset_t *);
extern int sigsuspend(const sigset_t *);

extern int sigaction(int, const struct sigaction *, struct sigaction *);

extern int sigemptyset(sigset_t *);
extern int sigfillset(sigset_t *);
extern int sigaddset(sigset_t *, int);
extern int sigdelset(sigset_t *, int);
extern int sigismember(const sigset_t *, int);
extern int sigpending(sigset_t *);


extern void (*bsd_signal (int, void (*)(int)))(int);
extern int killpg(pid_t, int);
extern int sighold(int);
extern int sigignore(int);
extern int siginterrupt(int, int);
extern int sigpause(int);
extern int sigrelse(int);
extern void (*sigset(int, void(*)(int)))(int);

extern int sigaltstack(const stack_t *, stack_t *);
extern int sigstack(struct sigstack *, struct sigstack *);



extern int pthread_kill(pthread_t, int);
extern int pthread_sigmask(int, const sigset_t *, sigset_t *);
extern int sigqueue(pid_t, int, const union sigval);
struct timespec;
extern int sigtimedwait(const sigset_t *, siginfo_t *, const struct timespec *);
extern int sigwaitinfo(const sigset_t *, siginfo_t *);
# 913 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/sys/signal.h" 3 4
}
# 63 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/sys/wait.h" 2 3 4
# 141 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/sys/wait.h" 3 4
typedef enum {P_ALL, P_PID, P_PGID} idtype_t;
# 159 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/sys/wait.h" 3 4
extern pid_t wait(int *);

extern pid_t waitpid(pid_t, int *, int);
# 173 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/sys/wait.h" 3 4
extern int waitid(idtype_t, id_t, siginfo_t *, int);



extern pid_t wait3(int *, int, struct rusage *);



extern pid_t kwaitpid(int *, pid_t, int, struct rusage *, siginfo_t *);

extern pid_t kwaitpid64(int *, pid_t, int, struct rusage64 *, siginfo_t *);



extern pid_t wait364(int *, int, struct rusage64 *);
# 201 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/sys/wait.h" 3 4
extern pid_t wait4(pid_t, int *, int, struct rusage *);
# 221 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/sys/wait.h" 3 4
}
# 236 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/stdlib.h" 2 3 4
# 308 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/stdlib.h" 3 4
        extern double drand48(void);
        extern double erand48(unsigned short[]);
        extern long jrand48(unsigned short[]);
        extern void lcong48(unsigned short int *);
        extern long lrand48(void);
        extern long mrand48(void);
        extern long nrand48(unsigned short[]);
        extern unsigned short *seed48(unsigned short[]);
        extern void setkey(const char *);
        extern void srand48(long);

        extern int putenv(char *);
# 337 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/stdlib.h" 3 4
        extern int rand_r(unsigned int *);
# 361 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/stdlib.h" 3 4
        extern long a64l(const char *);
        extern char *ecvt(double, int, int *, int *);
        extern char *fcvt(double, int, int *, int *);
        extern char *gcvt(double, int, char *);
        extern int getsubopt(char **, char *const *, char **);
        extern int grantpt(int);
        extern char *initstate(unsigned, char *, size_t);
        extern char *l64a(long);
        extern char *mktemp(char *);
        extern int mkstemp(char *);
        extern char *ptsname(int);
        extern long random(void);
        extern char *realpath(const char *, char *);
        extern char *setstate(const char *);
        extern void srandom(unsigned);
        extern int unlockpt(int);
        extern int ttyslot(void);
        extern void *valloc(size_t);
# 464 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/stdlib.h" 3 4
extern char *optarg;
extern int optind;
extern int opterr;
# 482 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/stdlib.h" 3 4
        extern float atoff(char *);
        extern float strtof(const char *, char **);
        extern int setenv(const char *, const char *, int);
        extern void imul_dbl(long, long, long *);
        extern void umul_dbl(unsigned long, unsigned long, unsigned long *);
        extern int on_exit(void (*)(int, void *), void *);
# 508 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/stdlib.h" 3 4
        extern double wcstod(const wchar_t *, wchar_t **);
        extern long int wcstol(const wchar_t *, wchar_t **, int);
        extern unsigned long int wcstoul(const wchar_t *, wchar_t **, int);

        extern int rpmatch(const char *);
        extern int clearenv(void);
        extern int getopt(int, char* const*, const char*);
        extern char *getpass(const char *);
# 535 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/stdlib.h" 3 4
typedef struct lldiv_t {
     long long int quot;
     long long int rem ;
} lldiv_t;
# 549 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/stdlib.h" 3 4
extern long long int llabs( long long int );
extern lldiv_t lldiv( long long int, long long int );
extern long long int strtoll(
     const char *,
     char **,
     int );
extern unsigned long long int strtoull(
     const char *,
     char **,
     int );
# 569 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/stdlib.h" 3 4
}
# 59 "../wxX11/include/wx/string.h" 2



# 1 "/usr/include/strings.h" 1 3 4
# 38 "/usr/include/strings.h" 3 4
# 1 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/sys/types.h" 1 3 4
# 39 "/usr/include/strings.h" 2 3 4


extern "C" {
# 59 "/usr/include/strings.h" 3 4
extern int bcmp(const void *, const void *, size_t);
extern void bcopy(const void *, void *, size_t);
extern void bzero(void *, size_t);
extern int ffs(int);
extern char *index(const char *, int);
extern char *rindex(const char *, int);
extern int strcasecmp(const char *, const char *);
extern int strncasecmp(const char *, const char *, size_t);






# 1 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/string.h" 1 3 4
# 74 "/usr/include/strings.h" 2 3 4



}
# 63 "../wxX11/include/wx/string.h" 2


# 1 "../wxX11/include/wx/wxchar.h" 1
# 66 "../wxX11/include/wx/string.h" 2
# 1 "../wxX11/include/wx/buffer.h" 1
# 17 "../wxX11/include/wx/buffer.h"
# 1 "../wxX11/include/wx/wxchar.h" 1
# 18 "../wxX11/include/wx/buffer.h" 2

# 1 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/string.h" 1 3 4
# 20 "../wxX11/include/wx/buffer.h" 2






class wxCharBuffer
{
public:
    wxCharBuffer(const char *str)
    {
                                                               ;

        m_str = str ? strdup(str) : (char *)__null;
    }
    wxCharBuffer(size_t len)
    {
        m_str = (char *)malloc(len+1);
        m_str[len] = '\0';
    }

   ~wxCharBuffer() { free(m_str); }

   wxCharBuffer(const wxCharBuffer& src)
   {
     m_str = src.m_str;

     ((wxCharBuffer*)&src)->m_str = (char *)__null;
   }
   wxCharBuffer& operator=(const wxCharBuffer& src)
   {
     m_str = src.m_str;

     ((wxCharBuffer*)&src)->m_str = (char *)__null;
     return *this;
   }

   const char *data() const { return m_str; }
   operator const char *() const { return m_str; }
   char operator[](size_t n) const { return m_str[n]; }

private:
   char *m_str;
};


class wxWCharBuffer
{
public:
    wxWCharBuffer(const wchar_t *wcs)
    {
                                                                ;

        if (wcs) {




          size_t siz = (::wcslen(wcs)+1)*sizeof(wchar_t);

          m_wcs = (wchar_t *)malloc(siz);
          memcpy(m_wcs, wcs, siz);
        }
        else m_wcs = (wchar_t *)__null;
    }
    wxWCharBuffer(size_t len)
    {
        m_wcs = (wchar_t *)malloc((len+1)*sizeof(wchar_t));
        m_wcs[len] = L'\0';
    }


   ~wxWCharBuffer() { free(m_wcs); }

   wxWCharBuffer(const wxWCharBuffer& src)
   {
     m_wcs = src.m_wcs;

     ((wxWCharBuffer*)&src)->m_wcs = (wchar_t *)__null;
   }
   wxWCharBuffer& operator=(const wxWCharBuffer& src)
   {
     m_wcs = src.m_wcs;

     ((wxWCharBuffer*)&src)->m_wcs = (wchar_t *)__null;
     return *this;
   }

   const wchar_t *data() const { return m_wcs; }
   operator const wchar_t *() const { return m_wcs; }
   wchar_t operator[](size_t n) const { return m_wcs[n]; }

private:
   wchar_t *m_wcs;
};
# 135 "../wxX11/include/wx/buffer.h"
class wxMemoryBuffer
{
public:
    enum { BLOCK_SIZE = 1024 };
    wxMemoryBuffer(size_t size=wxMemoryBuffer::BLOCK_SIZE)
    {
                          ;
        m_data = malloc(size);
                                ;
        m_size = size;
        m_len = 0;
    }

    ~wxMemoryBuffer() { free(m_data); }


    void* GetData() const { return m_data; }
    size_t GetBufSize() const { return m_size; }
    size_t GetDataLen() const { return m_len; }

    void SetBufSize(size_t size) { ResizeIfNeeded(size); }
    void SetDataLen(size_t len)
    {
                               ;
        m_len = len;
    }


    void* GetWriteBuf(size_t sizeNeeded)
    {
        ResizeIfNeeded(sizeNeeded);
        return m_data;
    }

    void UngetWriteBuf(size_t sizeUsed) { SetDataLen(sizeUsed); }


    void* GetAppendBuf(size_t sizeNeeded)
    {
        ResizeIfNeeded(m_len + sizeNeeded);
        return (char*)m_data + m_len;
    }
    void UngetAppendBuf(size_t sizeUsed) { SetDataLen(m_len + sizeUsed); }


    void AppendByte(char data) {
        ResizeIfNeeded(m_len + 1);
        *(((char*)m_data)+m_len) = data;
        m_len += 1;
    }
    void AppendData(void* data, size_t len)
    {
        memcpy(GetAppendBuf(len), data, len);
        UngetAppendBuf(len);
    }

    operator const char *() const { return (const char*)m_data; }



    wxMemoryBuffer(const wxMemoryBuffer& src)
    {
        m_data = src.m_data;
        m_size = src.m_size;
        m_len = src.m_len;


        ((wxMemoryBuffer*)&src)->m_data = __null;
        ((wxMemoryBuffer*)&src)->m_size = 0;
        ((wxMemoryBuffer*)&src)->m_len = 0;
    }

    wxMemoryBuffer& operator=(const wxMemoryBuffer& src)
    {
        m_data = src.m_data;
        m_size = src.m_size;
        m_len = src.m_len;


        ((wxMemoryBuffer*)&src)->m_data = __null;
        ((wxMemoryBuffer*)&src)->m_size = 0;
        ((wxMemoryBuffer*)&src)->m_len = 0;

        return *this;
   }


protected:

    void ResizeIfNeeded(size_t newSize)
    {
        if (newSize > m_size)
        {
            m_data = realloc(m_data, newSize + wxMemoryBuffer::BLOCK_SIZE);
                                    ;
            m_size = newSize + wxMemoryBuffer::BLOCK_SIZE;
        }
    }

private:
    void* m_data;
    size_t m_size;
    size_t m_len;
};
# 67 "../wxX11/include/wx/string.h" 2
# 1 "../wxX11/include/wx/strconv.h" 1
# 16 "../wxX11/include/wx/strconv.h"
#pragma interface "strconv.h"


# 1 "../wxX11/include/wx/defs.h" 1
# 20 "../wxX11/include/wx/strconv.h" 2
# 1 "../wxX11/include/wx/wxchar.h" 1
# 21 "../wxX11/include/wx/strconv.h" 2
# 1 "../wxX11/include/wx/buffer.h" 1
# 22 "../wxX11/include/wx/strconv.h" 2





# 1 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/stdlib.h" 1 3 4
# 28 "../wxX11/include/wx/strconv.h" 2







class wxMBConv
{
public:

    virtual size_t MB2WC(wchar_t *buf, const char *psz, size_t n) const;
    virtual size_t WC2MB(char *buf, const wchar_t *psz, size_t n) const;


    const wxWCharBuffer cMB2WC(const char *psz) const;
    const wxCharBuffer cWC2MB(const wchar_t *psz) const;







    const char* cMB2WX(const char *psz) const { return psz; }
    const char* cWX2MB(const char *psz) const { return psz; }
    const wxCharBuffer cWC2WX(const wchar_t *psz) const { return cWC2MB(psz); }
    const wxWCharBuffer cWX2WC(const char *psz) const { return cMB2WC(psz); }

};

extern wxMBConv wxConvLibc;





class wxMBConvFile : public wxMBConv
{
public:
    virtual size_t MB2WC(wchar_t *buf, const char *psz, size_t n) const;
    virtual size_t WC2MB(char *buf, const wchar_t *psz, size_t n) const;
};

extern wxMBConvFile wxConvFile;





class wxMBConvUTF7 : public wxMBConv
{
public:
    virtual size_t MB2WC(wchar_t *buf, const char *psz, size_t n) const;
    virtual size_t WC2MB(char *buf, const wchar_t *psz, size_t n) const;
};

extern wxMBConvUTF7 wxConvUTF7;





class wxMBConvUTF8 : public wxMBConv
{
public:
    virtual size_t MB2WC(wchar_t *buf, const char *psz, size_t n) const;
    virtual size_t WC2MB(char *buf, const wchar_t *psz, size_t n) const;
};

extern wxMBConvUTF8 wxConvUTF8;
# 121 "../wxX11/include/wx/strconv.h"
class wxCharacterSet;

class wxCSConv : public wxMBConv
{
public:
    wxCSConv(const char *charset);
    virtual ~wxCSConv();

    void LoadNow();

    virtual size_t MB2WC(wchar_t *buf, const char *psz, size_t n) const;
    virtual size_t WC2MB(char *buf, const wchar_t *psz, size_t n) const;

private:
    void SetName(const char *charset);



    char *m_name;
    wxCharacterSet *m_cset;
    bool m_deferred;
};

extern wxCSConv wxConvLocal;
extern wxMBConv * wxConvCurrent;
# 68 "../wxX11/include/wx/string.h" 2
# 95 "../wxX11/include/wx/string.h"
const unsigned int wxSTRING_MAXLEN = (2147483647 * 2U + 1) - 100;
# 104 "../wxX11/include/wx/string.h"
extern const char* wxEmptyString;
# 115 "../wxX11/include/wx/string.h"
inline bool IsEmpty(const char *p) { return (!p || !*p); }


inline size_t Strlen(const char *psz)
  { return psz ? strlen(psz) : 0; }


inline int Stricmp(const char *psz1, const char *psz2)
{
# 141 "../wxX11/include/wx/string.h"
  return strcasecmp(psz1, psz2);
# 166 "../wxX11/include/wx/string.h"
}



extern int wxSnprintf(char *buf, size_t len,
                                  const char *format, ...);


extern int wxVsnprintf(char *buf, size_t len,
                                   const char *format, va_list argptr);


class wxString;
inline const wxString& wxGetEmptyString() { return *(wxString *)&wxEmptyString; }






struct wxStringData
{
  int nRefs;
  size_t nDataLength,
          nAllocLength;


  char* data() const { return (char*)(this + 1); }


  bool IsEmpty() const { return (nRefs == -1); }
  bool IsShared() const { return (nRefs > 1); }


  void Lock() { if ( !IsEmpty() ) nRefs++; }






  void Unlock() { if ( !IsEmpty() && --nRefs == 0) free(this); }



  void Validate(bool b) { nRefs = (b ? 1 : 0); }
  bool IsValid() const { return (nRefs != 0); }
};
# 238 "../wxX11/include/wx/string.h"
class wxString
{
friend class wxArrayString;




private:

  char *m_pchData;


  wxStringData* GetStringData() const { return (wxStringData*)m_pchData - 1; }




  void Init() { m_pchData = (char *)wxEmptyString; }

  void InitWith(const char *psz, size_t nPos = 0, size_t nLen = wxSTRING_MAXLEN);

  void Reinit() { GetStringData()->Unlock(); Init(); }



  void AllocBuffer(size_t nLen);

  void AllocCopy(wxString&, int, int) const;

  void AssignCopy(size_t, const char *);


  void ConcatSelf(int nLen, const char *src);



  void CopyBeforeWrite();
  void AllocBeforeWrite(size_t);
# 284 "../wxX11/include/wx/string.h"
  wxString& operator=(int);





  wxString(int);

public:


  wxString() { Init(); }

  wxString(const wxString& stringSrc)
  {
                                                    ;

    if ( stringSrc.IsEmpty() ) {

      Init();
    }
    else {
      m_pchData = stringSrc.m_pchData;
      GetStringData()->Lock();
    }
  }

  wxString(char ch, size_t nRepeat = 1);


  wxString(const char *psz, size_t nLength = wxSTRING_MAXLEN)
    { InitWith(psz, 0, nLength); }
  wxString(const char *psz, wxMBConv& , size_t nLength = wxSTRING_MAXLEN)
    { InitWith(psz, 0, nLength); }
# 329 "../wxX11/include/wx/string.h"
  wxString(const unsigned char* psz, size_t nLength = wxSTRING_MAXLEN)
    { InitWith((const char*)psz, 0, nLength); }



  wxString(const wchar_t *pwz, wxMBConv& conv = wxConvLibc, size_t nLength = wxSTRING_MAXLEN);



  wxString(const wxCharBuffer& psz)
    { InitWith(psz, 0, wxSTRING_MAXLEN); }



 ~wxString() { GetStringData()->Unlock(); }



  size_t Len() const { return GetStringData()->nDataLength; }

  bool IsEmpty() const { return Len() == 0; }

  bool operator!() const { return IsEmpty(); }

  wxString& Truncate(size_t uiLen);

  void Empty()
  {
    Truncate(0);

                                                                            ;
  }

  void Clear()
  {
    if ( !GetStringData()->IsEmpty() )
      Reinit();

                                                 ;
                                                  ;
  }



  bool IsAscii() const;

  bool IsNumber() const;

  bool IsWord() const;



    char GetChar(size_t n) const
      { ; return m_pchData[n]; }

    char& GetWritableChar(size_t n)
      { ; CopyBeforeWrite(); return m_pchData[n]; }

    void SetChar(size_t n, char ch)
      { ; CopyBeforeWrite(); m_pchData[n] = ch; }


    char Last() const
      { ; return m_pchData[Len() - 1]; }

    char& Last()
      { ; CopyBeforeWrite(); return m_pchData[Len()-1]; }
# 420 "../wxX11/include/wx/string.h"
    char operator[](size_t n) const
      { ; return m_pchData[n]; }


    char operator[](int n) const
      { ; return m_pchData[n]; }


    char& operator[](size_t n)
      { ; CopyBeforeWrite(); return m_pchData[n]; }



    char operator[](unsigned int n) const
      { ; return m_pchData[n]; }


    char& operator[](unsigned int n)
      { ; CopyBeforeWrite(); return m_pchData[n]; }



    operator const char*() const { return m_pchData; }

    const char* c_str() const { return m_pchData; }

    const char* wx_str() const { return m_pchData; }

    const char* GetData() const { return m_pchData; }
# 476 "../wxX11/include/wx/string.h"
    const char* mb_str() const { return m_pchData; }


    const char* mb_str(wxMBConv& ) const { return m_pchData; }

    const char* mbc_str() const { return mb_str(); }


    const wxWCharBuffer wc_str(wxMBConv& conv) const
        { return conv.cMB2WC(m_pchData); }


    const char* fn_str() const { return m_pchData; }




  wxString& operator=(const wxString& stringSrc);

  wxString& operator=(char ch);

  wxString& operator=(const char *psz);





  wxString& operator=(const unsigned char* psz);


  wxString& operator=(const wchar_t *pwz);


  wxString& operator=(const wxCharBuffer& psz) { return operator=((const char *)psz); }
# 520 "../wxX11/include/wx/string.h"
  wxString& operator<<(const wxString& s)
  {
                                            ;

    ConcatSelf(s.Len(), s);
    return *this;
  }

  wxString& operator<<(const char *psz)
    { ConcatSelf(wxStrlen(psz), psz); return *this; }

  wxString& operator<<(char ch) { ConcatSelf(1, &ch); return *this; }


  void operator+=(const wxString& s) { (void)operator<<(s); }

  void operator+=(const char *psz) { (void)operator<<(psz); }

  void operator+=(char ch) { (void)operator<<(ch); }






  wxString& operator<<(const wxCharBuffer& s) { (void)operator<<((const char *)s); return *this; }
  void operator+=(const wxCharBuffer& s) { (void)operator<<((const char *)s); }



  wxString& Append(const char* psz)
    { ConcatSelf(wxStrlen(psz), psz); return *this; }

  wxString& Append(char ch, size_t count = 1u)
    { wxString str(ch, count); return *this << str; }
  wxString& Append(const char* psz, size_t nLen)
    { ConcatSelf(nLen, psz); return *this; }


  wxString& Prepend(const wxString& str)
    { *this = str + *this; return *this; }



  friend wxString operator+(const wxString& string1, const wxString& string2);

  friend wxString operator+(const wxString& string, char ch);

  friend wxString operator+(char ch, const wxString& string);

  friend wxString operator+(const wxString& string, const char *psz);

  friend wxString operator+(const char *psz, const wxString& string);



  wxString& operator<<(int i)
    { return (*this) << Format("%d", i); }

  wxString& operator<<(unsigned int ui)
    { return (*this) << Format("%u", ui); }

  wxString& operator<<(long l)
    { return (*this) << Format("%ld", l); }

  wxString& operator<<(unsigned long ul)
    { return (*this) << Format("%lu", ul); }

  wxString& operator<<(float f)
    { return (*this) << Format("%f", f); }

  wxString& operator<<(double d)
    { return (*this) << Format("%g", d); }



  int Cmp(const char *psz) const { return strcmp(c_str(), psz); }

  int CmpNoCase(const char *psz) const { return strcasecmp(c_str(), psz); }


  bool IsSameAs(const char *psz, bool compareWithCase = 1) const
    { return (compareWithCase ? Cmp(psz) : CmpNoCase(psz)) == 0; }

  bool IsSameAs(char c, bool compareWithCase = 1) const
    {
      return (Len() == 1) && (compareWithCase ? GetChar(0u) == c
                              : toupper(GetChar(0u)) == toupper(c));
    }




  wxString Mid(size_t nFirst, size_t nCount = wxSTRING_MAXLEN) const;


  wxString operator()(size_t start, size_t len) const
    { return Mid(start, len); }




  bool StartsWith(const char *prefix, wxString *rest = __null) const;


  wxString Left(size_t nCount) const;

  wxString Right(size_t nCount) const;


  wxString BeforeFirst(char ch) const;


  wxString BeforeLast(char ch) const;


  wxString AfterFirst(char ch) const;


  wxString AfterLast(char ch) const;


  wxString Before(char ch) const { return BeforeLast(ch); }
  wxString After(char ch) const { return AfterFirst(ch); }



  wxString& MakeUpper();


  wxString Upper() const ;

  wxString& MakeLower();

  wxString Lower() const ;



  wxString& Trim(bool bFromRight = 1);

  wxString& Pad(size_t nCount, char chPad = ' ', bool bFromRight = 1);



  int Find(char ch, bool bFromEnd = 0) const;

  int Find(const char *pszSub) const;


  size_t Replace(const char *szOld,
                 const char *szNew,
                 bool bReplaceAll = 1);


  bool Matches(const char *szMask) const;







    bool ToLong(long *val, int base = 10) const;

    bool ToULong(unsigned long *val, int base = 10) const;

    bool ToDouble(double *val) const;



  int Printf(const char *pszFormat, ...);

  int PrintfV(const char* pszFormat, va_list argptr);


  static wxString Format(const char *pszFormat, ...);

  static wxString FormatV(const char *pszFormat, va_list argptr);




  void Alloc(size_t nLen);


  void Shrink();


  char *GetWriteBuf(size_t nLen);

  void UngetWriteBuf();
  void UngetWriteBuf(size_t nLen);




  wxString SubString(size_t from, size_t to) const
      { return Mid(from, (to - from + 1)); }

  enum caseCompare {exact, ignoreCase};

  enum stripType {leading = 0x1, trailing = 0x2, both = 0x3};


  int sprintf(const char *pszFormat, ...);


  inline int CompareTo(const char* psz, caseCompare cmp = exact) const
    { return cmp == exact ? Cmp(psz) : CmpNoCase(psz); }


  size_t Length() const { return Len(); }

  int Freq(char ch) const;

  void LowerCase() { MakeLower(); }

  void UpperCase() { MakeUpper(); }

  wxString Strip(stripType w = trailing) const;


  size_t Index(const char* psz) const { return Find(psz); }
  size_t Index(char ch) const { return Find(ch); }

  wxString& Remove(size_t pos) { return Truncate(pos); }
  wxString& RemoveLast(size_t n = 1) { return Truncate(Len() - n); }

  wxString& Remove(size_t nStart, size_t nLen) { return erase( nStart, nLen ); }


  int First( const char ch ) const { return Find(ch); }
  int First( const char* psz ) const { return Find(psz); }
  int First( const wxString &str ) const { return Find(str); }
  int Last( const char ch ) const { return Find(ch, 1); }
  bool Contains(const wxString& str) const { return Find(str) != -1; }


  bool IsNull() const { return IsEmpty(); }





  typedef char value_type;
  typedef const value_type *const_iterator;


  static const size_t npos;



  wxString(const wxString& str, size_t nPos, size_t nLen)
  {
                                              ;
    InitWith(str.c_str(), nPos, nLen == npos ? 0 : nLen);
  }

  wxString(const void *pStart, const void *pEnd);



  size_t size() const { return Len(); }

  size_t length() const { return Len(); }

  size_t max_size() const { return wxSTRING_MAXLEN; }

  void resize(size_t nSize, char ch = '\0');

  void clear() { Empty(); }

  bool empty() const { return IsEmpty(); }

  void reserve(size_t size) { Alloc(size); }



  char at(size_t n) const { return GetChar(n); }

  char& at(size_t n) { return GetWritableChar(n); }


  const_iterator begin() const { return wx_str(); }

  const_iterator end() const { return wx_str() + length(); }



  wxString& append(const wxString& str)
    { *this += str; return *this; }

  wxString& append(const wxString& str, size_t pos, size_t n)
    { ConcatSelf(n, str.c_str() + pos); return *this; }

  wxString& append(const char *sz, size_t n = npos)
    { ConcatSelf(n == npos ? wxStrlen(sz) : n, sz); return *this; }


  wxString& append(size_t n, char ch) { return Pad(n, ch); }


  wxString& assign(const wxString& str)
    { return *this = str; }

  wxString& assign(const wxString& str, size_t pos, size_t n)
    { Empty(); return Append(str.c_str() + pos, n); }

  wxString& assign(const char *sz, size_t n = npos)
    { Empty(); return Append(sz, n == npos ? wxStrlen(sz) : n); }

  wxString& assign(size_t n, char ch)
    { Empty(); return Append(ch, n); }


  wxString& insert(size_t nPos, const wxString& str);

  wxString& insert(size_t nPos, const wxString& str, size_t nStart, size_t n)
    { return insert(nPos, wxString((const char *)str + nStart, n)); }


  wxString& insert(size_t nPos, const char *sz, size_t n = npos)
    { return insert(nPos, wxString(sz, n)); }

  wxString& insert(size_t nPos, size_t n, char ch)
    { return insert(nPos, wxString(ch, n)); }


  wxString& erase(size_t nStart = 0, size_t nLen = npos);


  wxString& replace(size_t nStart, size_t nLen, const char* sz);

  wxString& replace(size_t nStart, size_t nLen, size_t nCount, char ch);

  wxString& replace(size_t nStart, size_t nLen,
                    const wxString& str, size_t nStart2, size_t nLen2);

  wxString& replace(size_t nStart, size_t nLen,
                    const char* sz, size_t nCount);


  void swap(wxString& str);






  size_t find(const wxString& str, size_t nStart = 0) const;




  size_t find(const char* sz, size_t nStart = 0, size_t n = npos) const;





  size_t find(char ch, size_t nStart = 0) const;




  size_t rfind(const wxString& str, size_t nStart = npos) const;




  size_t rfind(const char* sz, size_t nStart = npos,
          size_t n = npos) const;

  size_t rfind(char ch, size_t nStart = npos) const;





  size_t find_first_of(const wxString& str, size_t nStart = 0) const
    { return find_first_of(str.c_str(), nStart); }

  size_t find_first_of(const char* sz, size_t nStart = 0) const;

  size_t find_first_of(char c, size_t nStart = 0) const
    { return find(c, nStart); }

  size_t find_last_of (const wxString& str, size_t nStart = npos) const
    { return find_last_of(str.c_str(), nStart); }

  size_t find_last_of (const char* sz, size_t nStart = npos) const;

  size_t find_last_of(char c, size_t nStart = npos) const
    { return rfind(c, nStart); }




  size_t find_first_not_of(const wxString& str, size_t nStart = 0) const
    { return find_first_not_of(str.c_str(), nStart); }

  size_t find_first_not_of(const char* sz, size_t nStart = 0) const;

  size_t find_first_not_of(char ch, size_t nStart = 0) const;

  size_t find_last_not_of(const wxString& str, size_t nStart = npos) const
    { return find_first_not_of(str.c_str(), nStart); }

  size_t find_last_not_of(const char* sz, size_t nStart = npos) const;

  size_t find_last_not_of(char ch, size_t nStart = npos) const;





  int compare(const wxString& str) const { return Cmp(str); }

  int compare(size_t nStart, size_t nLen, const wxString& str) const
    { return Mid(nStart, nLen).Cmp(str); }

  int compare(size_t nStart, size_t nLen,
              const wxString& str, size_t nStart2, size_t nLen2) const
    { return Mid(nStart, nLen).Cmp(str.Mid(nStart2, nLen2)); }

  int compare(const char* sz) const { return Cmp(sz); }

  int compare(size_t nStart, size_t nLen,
              const char* sz, size_t nCount = npos) const
    { return Mid(nStart, nLen).Cmp(wxString(sz, nCount)); }


  wxString substr(size_t nStart = 0, size_t nLen = npos) const
    { return Mid(nStart, nLen); }

};
# 972 "../wxX11/include/wx/string.h"
class wxArrayString
{
public:

  typedef int (*CompareFunction)(const wxString& first,
                                 const wxString& second);



  wxArrayString() { Init(0); }
# 990 "../wxX11/include/wx/string.h"
  wxArrayString(int autoSort) { Init(autoSort != 0); }

  wxArrayString(const wxArrayString& array);

  wxArrayString& operator=(const wxArrayString& src);

 ~wxArrayString();



  void Empty();

  void Clear();

  void Alloc(size_t nCount);

  void Shrink();



  size_t GetCount() const { return m_nCount; }

  bool IsEmpty() const { return m_nCount == 0; }

  size_t Count() const { return m_nCount; }



  wxString& Item(size_t nIndex) const
    { ; return *(wxString *)&(m_pItems[nIndex]); }

  wxString& operator[](size_t nIndex) const { return Item(nIndex); }

  wxString& Last() const { ; return Item(Count() - 1); }





  wxString* GetStringArray() const;






  int Index (const char *sz, bool bCase = 1, bool bFromEnd = 0) const;


  size_t Add(const wxString& str);

  void Insert(const wxString& str, size_t uiIndex);

  void SetCount(size_t count);

  void Remove(const char *sz);

  void Remove(size_t nIndex);
  void RemoveAt(size_t nIndex) { Remove(nIndex); }




  void Sort(bool reverseOrder = 0);

  void Sort(CompareFunction compareFunction);



  bool operator==(const wxArrayString& a) const;

  bool operator!=(const wxArrayString& a) const { return !(*this == a); }

protected:
  void Init(bool autoSort);
  void Copy(const wxArrayString& src);

private:
  void Grow();
  void Free();

  void DoSort();

  size_t m_nSize,
          m_nCount;

  char **m_pItems;

  bool m_autoSort;
};

class wxSortedArrayString : public wxArrayString
{
public:
  wxSortedArrayString() : wxArrayString(1)
    { }
  wxSortedArrayString(const wxArrayString& array) : wxArrayString(1)
    { Copy(array); }
};





class wxStringBuffer
{
public:
    wxStringBuffer(wxString& str, size_t lenWanted = 1024)
        : m_str(str) { m_buf = m_str.GetWriteBuf(lenWanted); }

    ~wxStringBuffer() { m_str.UngetWriteBuf(); }

    operator char*() const { return m_buf; }

private:
    wxString& m_str;
    char *m_buf;
};





inline bool operator==(const wxString& s1, const wxString& s2)
    { return (s1.Len() == s2.Len()) && (s1.Cmp(s2) == 0); }
inline bool operator==(const wxString& s1, const char * s2)
    { return s1.Cmp(s2) == 0; }
inline bool operator==(const char * s1, const wxString& s2)
    { return s2.Cmp(s1) == 0; }
inline bool operator!=(const wxString& s1, const wxString& s2)
    { return (s1.Len() != s2.Len()) || (s1.Cmp(s2) != 0); }
inline bool operator!=(const wxString& s1, const char * s2)
    { return s1.Cmp(s2) != 0; }
inline bool operator!=(const char * s1, const wxString& s2)
    { return s2.Cmp(s1) != 0; }
inline bool operator< (const wxString& s1, const wxString& s2)
    { return s1.Cmp(s2) < 0; }
inline bool operator< (const wxString& s1, const char * s2)
    { return s1.Cmp(s2) < 0; }
inline bool operator< (const char * s1, const wxString& s2)
    { return s2.Cmp(s1) > 0; }
inline bool operator> (const wxString& s1, const wxString& s2)
    { return s1.Cmp(s2) > 0; }
inline bool operator> (const wxString& s1, const char * s2)
    { return s1.Cmp(s2) > 0; }
inline bool operator> (const char * s1, const wxString& s2)
    { return s2.Cmp(s1) < 0; }
inline bool operator<=(const wxString& s1, const wxString& s2)
    { return s1.Cmp(s2) <= 0; }
inline bool operator<=(const wxString& s1, const char * s2)
    { return s1.Cmp(s2) <= 0; }
inline bool operator<=(const char * s1, const wxString& s2)
    { return s2.Cmp(s1) >= 0; }
inline bool operator>=(const wxString& s1, const wxString& s2)
    { return s1.Cmp(s2) >= 0; }
inline bool operator>=(const wxString& s1, const char * s2)
    { return s1.Cmp(s2) >= 0; }
inline bool operator>=(const char * s1, const wxString& s2)
    { return s2.Cmp(s1) <= 0; }


inline bool operator==(char c, const wxString& s) { return s.IsSameAs(c); }
inline bool operator==(const wxString& s, char c) { return s.IsSameAs(c); }
inline bool operator!=(char c, const wxString& s) { return !s.IsSameAs(c); }
inline bool operator!=(const wxString& s, char c) { return !s.IsSameAs(c); }
# 1166 "../wxX11/include/wx/string.h"
inline bool operator==(const wxString& s1, const wxCharBuffer& s2)
    { return (s1.Cmp((const char *)s2) == 0); }
inline bool operator==(const wxCharBuffer& s1, const wxString& s2)
    { return (s2.Cmp((const char *)s1) == 0); }
inline bool operator!=(const wxString& s1, const wxCharBuffer& s2)
    { return (s1.Cmp((const char *)s2) != 0); }
inline bool operator!=(const wxCharBuffer& s1, const wxString& s2)
    { return (s2.Cmp((const char *)s1) != 0); }


wxString operator+(const wxString& string1, const wxString& string2);
wxString operator+(const wxString& string, char ch);
wxString operator+(char ch, const wxString& string);
wxString operator+(const wxString& string, const char *psz);
wxString operator+(const char *psz, const wxString& string);






inline wxString operator+(const wxString& string, const wxCharBuffer& buf)
    { return string + (const char *)buf; }
inline wxString operator+(const wxCharBuffer& buf, const wxString& string)
    { return (const char *)buf + string; }
# 70 "../wxX11/src/common/datetime.cpp" 2
# 1 "../wxX11/include/wx/log.h" 1
# 16 "../wxX11/include/wx/log.h"
#pragma interface "log.h"


# 1 "lib/wx/include/motif-2.3/wx/setup.h" 1
# 20 "../wxX11/include/wx/log.h" 2
# 1 "../wxX11/include/wx/string.h" 1
# 21 "../wxX11/include/wx/log.h" 2





class wxTextCtrl;
class wxLogFrame;
class wxFrame;





typedef unsigned long wxTraceMask;
typedef unsigned long wxLogLevel;







# 1 "/usr/include/time.h" 1 3 4
# 30 "/usr/include/time.h" 3 4
extern "C" {
# 70 "/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;
};
# 110 "/usr/include/time.h" 3 4
    extern size_t strftime(char *, size_t, const char *, const struct tm *);
    extern clock_t clock(void);
    extern double difftime(time_t, time_t);
    extern time_t mktime(struct tm *);
    extern time_t time(time_t *);
    extern char *asctime(const struct tm *);
    extern char *ctime(const time_t *);
    extern struct tm *gmtime(const time_t *);
    extern struct tm *localtime(const time_t *);
# 128 "/usr/include/time.h" 3 4
    extern char *asctime_r(const struct tm *, char *);
    extern char *ctime_r(const time_t *, char *);
    extern struct tm *gmtime_r(const time_t *, struct tm *);
    extern struct tm *localtime_r(const time_t *, struct tm *);
# 156 "/usr/include/time.h" 3 4
extern char *tzname[];




    extern void tzset(void);





    extern long timezone;
    extern int daylight;



    extern char *strptime(const char *, const char *, struct tm *);




        extern int getdate_err;



        extern struct tm *getdate(const char *);




struct timespec {
        time_t tv_sec;
        long tv_nsec;
};

struct itimerspec {
        struct timespec it_interval;
        struct timespec it_value;
};




extern int clock_getres(clockid_t, struct timespec *);
extern int clock_gettime(clockid_t, struct timespec *);
extern int clock_settime(clockid_t, const struct timespec *);
extern int nanosleep(const struct timespec *, struct timespec *);

extern int timer_create(clockid_t, struct sigevent *, timer_t *);



extern int timer_delete(timer_t);
extern int timer_gettime(timer_t, struct itimerspec *);
extern int timer_getoverrun(timer_t);
extern int timer_settime(timer_t, int, const struct itimerspec *, struct itimerspec *);





# 1 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/stddef.h" 1 3 4
# 218 "/usr/include/time.h" 2 3 4
# 227 "/usr/include/time.h" 3 4
        extern unsigned char *NLctime(long *);
        extern unsigned char *NLasctime(struct tm *);
        extern char *NLstrtime(char *, size_t, const char *, const struct tm *);




}
# 44 "../wxX11/include/wx/log.h" 2

# 1 "../wxX11/include/wx/dynarray.h" 1
# 16 "../wxX11/include/wx/dynarray.h"
#pragma interface "dynarray.h"


# 1 "../wxX11/include/wx/defs.h" 1
# 20 "../wxX11/include/wx/dynarray.h" 2
# 64 "../wxX11/include/wx/dynarray.h"
extern "C"
{
typedef int ( *CMPFUNC)(const void* pItem1, const void* pItem2);
}
# 466 "../wxX11/include/wx/dynarray.h"
typedef const void * _wxArraywxBaseArrayPtrVoid; class wxBaseArrayPtrVoid { public: wxBaseArrayPtrVoid(); wxBaseArrayPtrVoid(const wxBaseArrayPtrVoid& array); wxBaseArrayPtrVoid& operator=(const wxBaseArrayPtrVoid& src); ~wxBaseArrayPtrVoid(); void Empty() { m_nCount = 0; } void Clear(); void Alloc(size_t uiSize); void Shrink(); size_t GetCount() const { return m_nCount; } bool IsEmpty() const { return m_nCount == 0; } size_t Count() const { return m_nCount; } typedef _wxArraywxBaseArrayPtrVoid base_type; protected: _wxArraywxBaseArrayPtrVoid& Item(size_t uiIndex) const { ; return m_pItems[uiIndex]; } _wxArraywxBaseArrayPtrVoid& operator[](size_t uiIndex) const { return Item(uiIndex); } int Index(_wxArraywxBaseArrayPtrVoid lItem, bool bFromEnd = 0) const; int Index(_wxArraywxBaseArrayPtrVoid lItem, CMPFUNC fnCompare) const; size_t IndexForInsert(_wxArraywxBaseArrayPtrVoid lItem, CMPFUNC fnCompare) const; void Add(_wxArraywxBaseArrayPtrVoid lItem); void Add(_wxArraywxBaseArrayPtrVoid lItem, CMPFUNC fnCompare); void Insert(_wxArraywxBaseArrayPtrVoid lItem, size_t uiIndex); void Remove(_wxArraywxBaseArrayPtrVoid lItem); void RemoveAt(size_t uiIndex); void Sort(CMPFUNC fnCompare); private: void Grow(); size_t m_nSize, m_nCount; _wxArraywxBaseArrayPtrVoid *m_pItems; };;
typedef short _wxArraywxBaseArrayShort; class wxBaseArrayShort { public: wxBaseArrayShort(); wxBaseArrayShort(const wxBaseArrayShort& array); wxBaseArrayShort& operator=(const wxBaseArrayShort& src); ~wxBaseArrayShort(); void Empty() { m_nCount = 0; } void Clear(); void Alloc(size_t uiSize); void Shrink(); size_t GetCount() const { return m_nCount; } bool IsEmpty() const { return m_nCount == 0; } size_t Count() const { return m_nCount; } typedef _wxArraywxBaseArrayShort base_type; protected: _wxArraywxBaseArrayShort& Item(size_t uiIndex) const { ; return m_pItems[uiIndex]; } _wxArraywxBaseArrayShort& operator[](size_t uiIndex) const { return Item(uiIndex); } int Index(_wxArraywxBaseArrayShort lItem, bool bFromEnd = 0) const; int Index(_wxArraywxBaseArrayShort lItem, CMPFUNC fnCompare) const; size_t IndexForInsert(_wxArraywxBaseArrayShort lItem, CMPFUNC fnCompare) const; void Add(_wxArraywxBaseArrayShort lItem); void Add(_wxArraywxBaseArrayShort lItem, CMPFUNC fnCompare); void Insert(_wxArraywxBaseArrayShort lItem, size_t uiIndex); void Remove(_wxArraywxBaseArrayShort lItem); void RemoveAt(size_t uiIndex); void Sort(CMPFUNC fnCompare); private: void Grow(); size_t m_nSize, m_nCount; _wxArraywxBaseArrayShort *m_pItems; };;
typedef int _wxArraywxBaseArrayInt; class wxBaseArrayInt { public: wxBaseArrayInt(); wxBaseArrayInt(const wxBaseArrayInt& array); wxBaseArrayInt& operator=(const wxBaseArrayInt& src); ~wxBaseArrayInt(); void Empty() { m_nCount = 0; } void Clear(); void Alloc(size_t uiSize); void Shrink(); size_t GetCount() const { return m_nCount; } bool IsEmpty() const { return m_nCount == 0; } size_t Count() const { return m_nCount; } typedef _wxArraywxBaseArrayInt base_type; protected: _wxArraywxBaseArrayInt& Item(size_t uiIndex) const { ; return m_pItems[uiIndex]; } _wxArraywxBaseArrayInt& operator[](size_t uiIndex) const { return Item(uiIndex); } int Index(_wxArraywxBaseArrayInt lItem, bool bFromEnd = 0) const; int Index(_wxArraywxBaseArrayInt lItem, CMPFUNC fnCompare) const; size_t IndexForInsert(_wxArraywxBaseArrayInt lItem, CMPFUNC fnCompare) const; void Add(_wxArraywxBaseArrayInt lItem); void Add(_wxArraywxBaseArrayInt lItem, CMPFUNC fnCompare); void Insert(_wxArraywxBaseArrayInt lItem, size_t uiIndex); void Remove(_wxArraywxBaseArrayInt lItem); void RemoveAt(size_t uiIndex); void Sort(CMPFUNC fnCompare); private: void Grow(); size_t m_nSize, m_nCount; _wxArraywxBaseArrayInt *m_pItems; };;
typedef long _wxArraywxBaseArrayLong; class wxBaseArrayLong { public: wxBaseArrayLong(); wxBaseArrayLong(const wxBaseArrayLong& array); wxBaseArrayLong& operator=(const wxBaseArrayLong& src); ~wxBaseArrayLong(); void Empty() { m_nCount = 0; } void Clear(); void Alloc(size_t uiSize); void Shrink(); size_t GetCount() const { return m_nCount; } bool IsEmpty() const { return m_nCount == 0; } size_t Count() const { return m_nCount; } typedef _wxArraywxBaseArrayLong base_type; protected: _wxArraywxBaseArrayLong& Item(size_t uiIndex) const { ; return m_pItems[uiIndex]; } _wxArraywxBaseArrayLong& operator[](size_t uiIndex) const { return Item(uiIndex); } int Index(_wxArraywxBaseArrayLong lItem, bool bFromEnd = 0) const; int Index(_wxArraywxBaseArrayLong lItem, CMPFUNC fnCompare) const; size_t IndexForInsert(_wxArraywxBaseArrayLong lItem, CMPFUNC fnCompare) const; void Add(_wxArraywxBaseArrayLong lItem); void Add(_wxArraywxBaseArrayLong lItem, CMPFUNC fnCompare); void Insert(_wxArraywxBaseArrayLong lItem, size_t uiIndex); void Remove(_wxArraywxBaseArrayLong lItem); void RemoveAt(size_t uiIndex); void Sort(CMPFUNC fnCompare); private: void Grow(); size_t m_nSize, m_nCount; _wxArraywxBaseArrayLong *m_pItems; };;
typedef double _wxArraywxBaseArrayDouble; class wxBaseArrayDouble { public: wxBaseArrayDouble(); wxBaseArrayDouble(const wxBaseArrayDouble& array); wxBaseArrayDouble& operator=(const wxBaseArrayDouble& src); ~wxBaseArrayDouble(); void Empty() { m_nCount = 0; } void Clear(); void Alloc(size_t uiSize); void Shrink(); size_t GetCount() const { return m_nCount; } bool IsEmpty() const { return m_nCount == 0; } size_t Count() const { return m_nCount; } typedef _wxArraywxBaseArrayDouble base_type; protected: _wxArraywxBaseArrayDouble& Item(size_t uiIndex) const { ; return m_pItems[uiIndex]; } _wxArraywxBaseArrayDouble& operator[](size_t uiIndex) const { return Item(uiIndex); } int Index(_wxArraywxBaseArrayDouble lItem, bool bFromEnd = 0) const; int Index(_wxArraywxBaseArrayDouble lItem, CMPFUNC fnCompare) const; size_t IndexForInsert(_wxArraywxBaseArrayDouble lItem, CMPFUNC fnCompare) const; void Add(_wxArraywxBaseArrayDouble lItem); void Add(_wxArraywxBaseArrayDouble lItem, CMPFUNC fnCompare); void Insert(_wxArraywxBaseArrayDouble lItem, size_t uiIndex); void Remove(_wxArraywxBaseArrayDouble lItem); void RemoveAt(size_t uiIndex); void Sort(CMPFUNC fnCompare); private: void Grow(); size_t m_nSize, m_nCount; _wxArraywxBaseArrayDouble *m_pItems; };;
# 587 "../wxX11/include/wx/dynarray.h"
typedef short _wxArraywxArrayShort; struct wxAssert_wxArrayShort { unsigned int TypeTooBigToBeStoredInwxBaseArrayShort: sizeof(_wxArraywxArrayShort) <= sizeof(wxBaseArrayShort::base_type); }; typedef int ( *CMPFUNC_wxArraywxArrayShort)(_wxArraywxArrayShort *pItem1, _wxArraywxArrayShort *pItem2); class wxArrayShort : public wxBaseArrayShort { public: wxArrayShort() { } ~wxArrayShort() { } wxArrayShort& operator=(const wxArrayShort& src) { wxBaseArrayShort* temp = (wxBaseArrayShort*) this; (*temp) = ((const wxBaseArrayShort&)src); return *this; } _wxArraywxArrayShort& operator[](size_t uiIndex) const { return (_wxArraywxArrayShort&)(wxBaseArrayShort::Item(uiIndex)); } _wxArraywxArrayShort& Item(size_t uiIndex) const { return (_wxArraywxArrayShort&)(wxBaseArrayShort::Item(uiIndex)); } _wxArraywxArrayShort& Last() const { return (_wxArraywxArrayShort&)(wxBaseArrayShort::Item(Count() - 1)); } int Index(_wxArraywxArrayShort Item, bool bFromEnd = 0) const { return wxBaseArrayShort::Index(Item, bFromEnd); } void Add(_wxArraywxArrayShort Item) { wxBaseArrayShort::Add(Item); } void Insert(_wxArraywxArrayShort Item, size_t uiIndex) { wxBaseArrayShort::Insert(Item, uiIndex) ; } void RemoveAt(size_t uiIndex) { wxBaseArrayShort::RemoveAt(uiIndex); } void Remove(_wxArraywxArrayShort Item) { int iIndex = Index(Item); if (!(iIndex != (-1))) {; return; }; wxBaseArrayShort::RemoveAt((size_t)iIndex); } void Sort(CMPFUNC_wxArraywxArrayShort fCmp) { wxBaseArrayShort::Sort((CMPFUNC)fCmp); } };
typedef int _wxArraywxArrayInt; struct wxAssert_wxArrayInt { unsigned int TypeTooBigToBeStoredInwxBaseArrayInt: sizeof(_wxArraywxArrayInt) <= sizeof(wxBaseArrayInt::base_type); }; typedef int ( *CMPFUNC_wxArraywxArrayInt)(_wxArraywxArrayInt *pItem1, _wxArraywxArrayInt *pItem2); class wxArrayInt : public wxBaseArrayInt { public: wxArrayInt() { } ~wxArrayInt() { } wxArrayInt& operator=(const wxArrayInt& src) { wxBaseArrayInt* temp = (wxBaseArrayInt*) this; (*temp) = ((const wxBaseArrayInt&)src); return *this; } _wxArraywxArrayInt& operator[](size_t uiIndex) const { return (_wxArraywxArrayInt&)(wxBaseArrayInt::Item(uiIndex)); } _wxArraywxArrayInt& Item(size_t uiIndex) const { return (_wxArraywxArrayInt&)(wxBaseArrayInt::Item(uiIndex)); } _wxArraywxArrayInt& Last() const { return (_wxArraywxArrayInt&)(wxBaseArrayInt::Item(Count() - 1)); } int Index(_wxArraywxArrayInt Item, bool bFromEnd = 0) const { return wxBaseArrayInt::Index(Item, bFromEnd); } void Add(_wxArraywxArrayInt Item) { wxBaseArrayInt::Add(Item); } void Insert(_wxArraywxArrayInt Item, size_t uiIndex) { wxBaseArrayInt::Insert(Item, uiIndex) ; } void RemoveAt(size_t uiIndex) { wxBaseArrayInt::RemoveAt(uiIndex); } void Remove(_wxArraywxArrayInt Item) { int iIndex = Index(Item); if (!(iIndex != (-1))) {; return; }; wxBaseArrayInt::RemoveAt((size_t)iIndex); } void Sort(CMPFUNC_wxArraywxArrayInt fCmp) { wxBaseArrayInt::Sort((CMPFUNC)fCmp); } };
typedef long _wxArraywxArrayLong; struct wxAssert_wxArrayLong { unsigned int TypeTooBigToBeStoredInwxBaseArrayLong: sizeof(_wxArraywxArrayLong) <= sizeof(wxBaseArrayLong::base_type); }; typedef int ( *CMPFUNC_wxArraywxArrayLong)(_wxArraywxArrayLong *pItem1, _wxArraywxArrayLong *pItem2); class wxArrayLong : public wxBaseArrayLong { public: wxArrayLong() { } ~wxArrayLong() { } wxArrayLong& operator=(const wxArrayLong& src) { wxBaseArrayLong* temp = (wxBaseArrayLong*) this; (*temp) = ((const wxBaseArrayLong&)src); return *this; } _wxArraywxArrayLong& operator[](size_t uiIndex) const { return (_wxArraywxArrayLong&)(wxBaseArrayLong::Item(uiIndex)); } _wxArraywxArrayLong& Item(size_t uiIndex) const { return (_wxArraywxArrayLong&)(wxBaseArrayLong::Item(uiIndex)); } _wxArraywxArrayLong& Last() const { return (_wxArraywxArrayLong&)(wxBaseArrayLong::Item(Count() - 1)); } int Index(_wxArraywxArrayLong Item, bool bFromEnd = 0) const { return wxBaseArrayLong::Index(Item, bFromEnd); } void Add(_wxArraywxArrayLong Item) { wxBaseArrayLong::Add(Item); } void Insert(_wxArraywxArrayLong Item, size_t uiIndex) { wxBaseArrayLong::Insert(Item, uiIndex) ; } void RemoveAt(size_t uiIndex) { wxBaseArrayLong::RemoveAt(uiIndex); } void Remove(_wxArraywxArrayLong Item) { int iIndex = Index(Item); if (!(iIndex != (-1))) {; return; }; wxBaseArrayLong::RemoveAt((size_t)iIndex); } void Sort(CMPFUNC_wxArraywxArrayLong fCmp) { wxBaseArrayLong::Sort((CMPFUNC)fCmp); } };
typedef void * _wxArraywxArrayPtrVoid; struct wxAssert_wxArrayPtrVoid { unsigned int TypeTooBigToBeStoredInwxBaseArrayPtrVoid: sizeof(_wxArraywxArrayPtrVoid) <= sizeof(wxBaseArrayPtrVoid::base_type); }; typedef int ( *CMPFUNC_wxArraywxArrayPtrVoid)(_wxArraywxArrayPtrVoid *pItem1, _wxArraywxArrayPtrVoid *pItem2); class wxArrayPtrVoid : public wxBaseArrayPtrVoid { public: wxArrayPtrVoid() { } ~wxArrayPtrVoid() { } wxArrayPtrVoid& operator=(const wxArrayPtrVoid& src) { wxBaseArrayPtrVoid* temp = (wxBaseArrayPtrVoid*) this; (*temp) = ((const wxBaseArrayPtrVoid&)src); return *this; } _wxArraywxArrayPtrVoid& operator[](size_t uiIndex) const { return (_wxArraywxArrayPtrVoid&)(wxBaseArrayPtrVoid::Item(uiIndex)); } _wxArraywxArrayPtrVoid& Item(size_t uiIndex) const { return (_wxArraywxArrayPtrVoid&)(wxBaseArrayPtrVoid::Item(uiIndex)); } _wxArraywxArrayPtrVoid& Last() const { return (_wxArraywxArrayPtrVoid&)(wxBaseArrayPtrVoid::Item(Count() - 1)); } int Index(_wxArraywxArrayPtrVoid Item, bool bFromEnd = 0) const { return wxBaseArrayPtrVoid::Index(Item, bFromEnd); } void Add(_wxArraywxArrayPtrVoid Item) { wxBaseArrayPtrVoid::Add(Item); } void Insert(_wxArraywxArrayPtrVoid Item, size_t uiIndex) { wxBaseArrayPtrVoid::Insert(Item, uiIndex) ; } void RemoveAt(size_t uiIndex) { wxBaseArrayPtrVoid::RemoveAt(uiIndex); } void Remove(_wxArraywxArrayPtrVoid Item) { int iIndex = Index(Item); if (!(iIndex != (-1))) {; return; }; wxBaseArrayPtrVoid::RemoveAt((size_t)iIndex); } void Sort(CMPFUNC_wxArraywxArrayPtrVoid fCmp) { wxBaseArrayPtrVoid::Sort((CMPFUNC)fCmp); } };
# 46 "../wxX11/include/wx/log.h" 2






enum
{
    wxLOG_FatalError,
    wxLOG_Error,
    wxLOG_Warning,
    wxLOG_Message,
    wxLOG_Info,
    wxLOG_Status,
    wxLOG_Debug,
    wxLOG_Trace,
    wxLOG_Progress,
    wxLOG_User = 100
};
# 93 "../wxX11/include/wx/log.h"
# 1 "../wxX11/include/wx/ioswrap.h" 1
# 94 "../wxX11/include/wx/log.h" 2






class wxLog
{
public:

    wxLog();





    static char *SetLogBuffer( char *buf, size_t size = 0 );



    static bool IsEnabled() { return ms_doLog; }

    static bool EnableLogging(bool doIt = 1)
        { bool doLogOld = ms_doLog; ms_doLog = doIt; return doLogOld; }



    static void OnLog(wxLogLevel level, const char *szString, time_t t)
    {
        if ( IsEnabled() ) {
            wxLog *pLogger = GetActiveTarget();
            if ( pLogger )
                pLogger->DoLog(level, szString, t);
        }
    }





    virtual void Flush();



    bool HasPendingMessages() const { return m_bHasMessages; }



    static void FlushActive()
    {
        if ( !ms_suspendCount )
        {
            wxLog *log = GetActiveTarget();
            if ( log && log->HasPendingMessages() )
                log->Flush();
        }
    }


    static wxLog *GetActiveTarget();

    static wxLog *SetActiveTarget(wxLog *pLogger);




    static void Suspend() { ms_suspendCount++; }

    static void Resume() { ms_suspendCount--; }




    static void SetVerbose(bool bVerbose = 1) { ms_bVerbose = bVerbose; }


    static void DontCreateOnDemand();


    static void SetTraceMask(wxTraceMask ulMask) { ms_ulTraceMask = ulMask; }

    static void AddTraceMask(const wxString& str) { ms_aTraceMasks.Add(str); }

    static void RemoveTraceMask(const wxString& str);

    static void ClearTraceMasks();




    static void SetTimestamp(const char *ts) { ms_timestamp = ts; }



    static bool GetVerbose() { return ms_bVerbose; }

    static wxTraceMask GetTraceMask() { return ms_ulTraceMask; }

    static bool IsAllowedTraceMask(const char *mask)
        { return ms_aTraceMasks.Index(mask) != (-1); }


    static const char *GetTimestamp() { return ms_timestamp; }




    static void TimeStamp(wxString *str);


    virtual ~wxLog() { }

protected:
    bool m_bHasMessages;




    virtual void DoLog(wxLogLevel level, const char *szString, time_t t);


    virtual void DoLogString(const char *szString, time_t t);

private:



    static wxLog *ms_pLogger;
    static bool ms_doLog;
    static bool ms_bAutoCreate;
    static bool ms_bVerbose;

    static size_t ms_suspendCount;



    static const char *ms_timestamp;

    static wxTraceMask ms_ulTraceMask;
    static wxArrayString ms_aTraceMasks;
};






class wxLogStderr : public wxLog
{
public:

    wxLogStderr(FILE *fp = (FILE *) __null);

protected:

    virtual void DoLogString(const char *szString, time_t t);

    FILE *m_fp;
};
# 293 "../wxX11/include/wx/log.h"
class wxLogNull
{
public:
    wxLogNull() { m_flagOld = wxLog::EnableLogging(0); }
    ~wxLogNull() { (void)wxLog::EnableLogging(m_flagOld); }

private:
    bool m_flagOld;
};
# 312 "../wxX11/include/wx/log.h"
class wxLogChain : public wxLog
{
public:
    wxLogChain(wxLog *logger);
    virtual ~wxLogChain() { delete m_logOld; }


    void SetLog(wxLog *logger);



    void PassMessages(bool bDoPass) { m_bPassMessages = bDoPass; }


    bool IsPassingMessages() const { return m_bPassMessages; }


    wxLog *GetOldLog() const { return m_logOld; }


    virtual void Flush();

protected:

    virtual void DoLog(wxLogLevel level, const char *szString, time_t t);

private:

    wxLog *m_logNew;


    wxLog *m_logOld;


    bool m_bPassMessages;
};


class wxLogPassThrough : public wxLogChain
{
public:
    wxLogPassThrough();
};
# 367 "../wxX11/include/wx/log.h"
class wxLogTextCtrl : public wxLog
{
public:
    wxLogTextCtrl(wxTextCtrl *pTextCtrl);

private:

    virtual void DoLogString(const char *szString, time_t t);


    wxTextCtrl *m_pTextCtrl;
};
# 388 "../wxX11/include/wx/log.h"
class wxLogGui : public wxLog
{
public:

    wxLogGui();


    virtual void Flush();

protected:
    virtual void DoLog(wxLogLevel level, const char *szString, time_t t);


    void Clear();

    wxArrayString m_aMessages;
    wxArrayInt m_aSeverity;
    wxArrayLong m_aTimes;
    bool m_bErrors,
                  m_bWarnings;
};
# 421 "../wxX11/include/wx/log.h"
class wxLogWindow : public wxLogPassThrough
{
public:
    wxLogWindow(wxFrame *pParent,
                const char *szTitle,
                bool bShow = 1,
                bool bPassToOld = 1);

    ~wxLogWindow();



    void Show(bool bShow = 1);

    wxFrame *GetFrame() const;




    virtual void OnFrameCreate(wxFrame *frame);




    virtual bool OnFrameClose(wxFrame *frame);


    virtual void OnFrameDelete(wxFrame *frame);

protected:
    virtual void DoLog(wxLogLevel level, const char *szString, time_t t);
    virtual void DoLogString(const char *szString, time_t t);

private:
    wxLogFrame *m_pLogFrame;
};
# 476 "../wxX11/include/wx/log.h"
            unsigned long wxSysErrorCode();

            const char* wxSysErrorMsg(unsigned long nErrCode = 0);
# 507 "../wxX11/include/wx/log.h"
extern void wxVLogGeneric(wxLogLevel level, const char *szFormat, va_list argptr); extern void wxLogGeneric(wxLogLevel level, const char *szFormat, ...);


extern void wxVLogFatalError(const char *szFormat, va_list argptr); extern void wxLogFatalError(const char *szFormat, ...);
extern void wxVLogError(const char *szFormat, va_list argptr); extern void wxLogError(const char *szFormat, ...);
extern void wxVLogWarning(const char *szFormat, va_list argptr); extern void wxLogWarning(const char *szFormat, ...);
extern void wxVLogMessage(const char *szFormat, va_list argptr); extern void wxLogMessage(const char *szFormat, ...);
extern void wxVLogInfo(const char *szFormat, va_list argptr); extern void wxLogInfo(const char *szFormat, ...);
extern void wxVLogVerbose(const char *szFormat, va_list argptr); extern void wxLogVerbose(const char *szFormat, ...);



extern void wxVLogStatus(const char *szFormat, va_list argptr); extern void wxLogStatus(const char *szFormat, ...);



extern void wxVLogStatus(wxFrame *pFrame, const char *szFormat, va_list argptr); extern void wxLogStatus(wxFrame *pFrame, const char *szFormat, ...);



extern void wxVLogSysError(const char *szFormat, va_list argptr); extern void wxLogSysError(const char *szFormat, ...);



extern void wxVLogSysError(long lErrCode, const char *szFormat, va_list argptr); extern void wxLogSysError(long lErrCode, const char *szFormat, ...);
# 550 "../wxX11/include/wx/log.h"
    inline void wxVLogDebug(const char *, va_list) { }
    inline void wxLogDebug(const char *, ...) { }
    inline void wxVLogTrace(const char *, va_list) { }
    inline void wxLogTrace(const char *, ...) { }
    inline void wxVLogTrace(wxTraceMask, const char *, va_list) { }
    inline void wxLogTrace(wxTraceMask, const char *, ...) { }
    inline void wxVLogTrace(const char *, const char *, va_list) { }
    inline void wxLogTrace(const char *, const char *, ...) { }
# 583 "../wxX11/include/wx/log.h"
    inline void wxLogApiError(const char *, long) { }
    inline void wxLogLastError(const char *) { }
# 71 "../wxX11/src/common/datetime.cpp" 2


# 1 "../wxX11/include/wx/intl.h" 1
# 16 "../wxX11/include/wx/intl.h"
#pragma interface "intl.h"


# 1 "../wxX11/include/wx/defs.h" 1
# 20 "../wxX11/include/wx/intl.h" 2
# 1 "../wxX11/include/wx/string.h" 1
# 21 "../wxX11/include/wx/intl.h" 2



# 1 "../wxX11/include/wx/fontenc.h" 1
# 15 "../wxX11/include/wx/fontenc.h"
# 1 "../wxX11/include/wx/string.h" 1
# 16 "../wxX11/include/wx/fontenc.h" 2


enum wxFontEncoding
{
    wxFONTENCODING_SYSTEM = -1,
    wxFONTENCODING_DEFAULT,


    wxFONTENCODING_ISO8859_1,
    wxFONTENCODING_ISO8859_2,
    wxFONTENCODING_ISO8859_3,
    wxFONTENCODING_ISO8859_4,
    wxFONTENCODING_ISO8859_5,
    wxFONTENCODING_ISO8859_6,
    wxFONTENCODING_ISO8859_7,
    wxFONTENCODING_ISO8859_8,
    wxFONTENCODING_ISO8859_9,
    wxFONTENCODING_ISO8859_10,
    wxFONTENCODING_ISO8859_11,
    wxFONTENCODING_ISO8859_12,


    wxFONTENCODING_ISO8859_13,
    wxFONTENCODING_ISO8859_14,
    wxFONTENCODING_ISO8859_15,
    wxFONTENCODING_ISO8859_MAX,


    wxFONTENCODING_KOI8,
    wxFONTENCODING_ALTERNATIVE,
    wxFONTENCODING_BULGARIAN,



    wxFONTENCODING_CP437,
    wxFONTENCODING_CP850,
    wxFONTENCODING_CP852,
    wxFONTENCODING_CP855,
    wxFONTENCODING_CP866,

    wxFONTENCODING_CP874,
    wxFONTENCODING_CP932,
    wxFONTENCODING_CP936,
    wxFONTENCODING_CP949,
    wxFONTENCODING_CP950,
    wxFONTENCODING_CP1250,
    wxFONTENCODING_CP1251,
    wxFONTENCODING_CP1252,
    wxFONTENCODING_CP1253,
    wxFONTENCODING_CP1254,
    wxFONTENCODING_CP1255,
    wxFONTENCODING_CP1256,
    wxFONTENCODING_CP1257,
    wxFONTENCODING_CP12_MAX,

    wxFONTENCODING_UTF7,
    wxFONTENCODING_UTF8,

    wxFONTENCODING_UNICODE,


    wxFONTENCODING_MAX
};
# 100 "../wxX11/include/wx/fontenc.h"
struct wxNativeEncodingInfo
{
    wxString facename;
    wxFontEncoding encoding;






    wxString xregistry,
             xencoding;
# 120 "../wxX11/include/wx/fontenc.h"
    bool FromString(const wxString& s);
    wxString ToString() const;
};
# 25 "../wxX11/include/wx/intl.h" 2
# 48 "../wxX11/include/wx/intl.h"
class wxLocale;
class wxMsgCatalog;
class wxLanguageInfoArray;
# 64 "../wxX11/include/wx/intl.h"
enum wxLanguage
{

    wxLANGUAGE_DEFAULT,

    wxLANGUAGE_UNKNOWN,

    wxLANGUAGE_ABKHAZIAN,
    wxLANGUAGE_AFAR,
    wxLANGUAGE_AFRIKAANS,
    wxLANGUAGE_ALBANIAN,
    wxLANGUAGE_AMHARIC,
    wxLANGUAGE_ARABIC,
    wxLANGUAGE_ARABIC_ALGERIA,
    wxLANGUAGE_ARABIC_BAHRAIN,
    wxLANGUAGE_ARABIC_EGYPT,
    wxLANGUAGE_ARABIC_IRAQ,
    wxLANGUAGE_ARABIC_JORDAN,
    wxLANGUAGE_ARABIC_KUWAIT,
    wxLANGUAGE_ARABIC_LEBANON,
    wxLANGUAGE_ARABIC_LIBYA,
    wxLANGUAGE_ARABIC_MOROCCO,
    wxLANGUAGE_ARABIC_OMAN,
    wxLANGUAGE_ARABIC_QATAR,
    wxLANGUAGE_ARABIC_SAUDI_ARABIA,
    wxLANGUAGE_ARABIC_SUDAN,
    wxLANGUAGE_ARABIC_SYRIA,
    wxLANGUAGE_ARABIC_TUNISIA,
    wxLANGUAGE_ARABIC_UAE,
    wxLANGUAGE_ARABIC_YEMEN,
    wxLANGUAGE_ARMENIAN,
    wxLANGUAGE_ASSAMESE,
    wxLANGUAGE_AYMARA,
    wxLANGUAGE_AZERI,
    wxLANGUAGE_AZERI_CYRILLIC,
    wxLANGUAGE_AZERI_LATIN,
    wxLANGUAGE_BASHKIR,
    wxLANGUAGE_BASQUE,
    wxLANGUAGE_BELARUSIAN,
    wxLANGUAGE_BENGALI,
    wxLANGUAGE_BHUTANI,
    wxLANGUAGE_BIHARI,
    wxLANGUAGE_BISLAMA,
    wxLANGUAGE_BRETON,
    wxLANGUAGE_BULGARIAN,
    wxLANGUAGE_BURMESE,
    wxLANGUAGE_CAMBODIAN,
    wxLANGUAGE_CATALAN,
    wxLANGUAGE_CHINESE,
    wxLANGUAGE_CHINESE_SIMPLIFIED,
    wxLANGUAGE_CHINESE_TRADITIONAL,
    wxLANGUAGE_CHINESE_HONGKONG,
    wxLANGUAGE_CHINESE_MACAU,
    wxLANGUAGE_CHINESE_SINGAPORE,
    wxLANGUAGE_CHINESE_TAIWAN,
    wxLANGUAGE_CORSICAN,
    wxLANGUAGE_CROATIAN,
    wxLANGUAGE_CZECH,
    wxLANGUAGE_DANISH,
    wxLANGUAGE_DUTCH,
    wxLANGUAGE_DUTCH_BELGIAN,
    wxLANGUAGE_ENGLISH,
    wxLANGUAGE_ENGLISH_UK,
    wxLANGUAGE_ENGLISH_US,
    wxLANGUAGE_ENGLISH_AUSTRALIA,
    wxLANGUAGE_ENGLISH_BELIZE,
    wxLANGUAGE_ENGLISH_BOTSWANA,
    wxLANGUAGE_ENGLISH_CANADA,
    wxLANGUAGE_ENGLISH_CARIBBEAN,
    wxLANGUAGE_ENGLISH_DENMARK,
    wxLANGUAGE_ENGLISH_EIRE,
    wxLANGUAGE_ENGLISH_JAMAICA,
    wxLANGUAGE_ENGLISH_NEW_ZEALAND,
    wxLANGUAGE_ENGLISH_PHILIPPINES,
    wxLANGUAGE_ENGLISH_SOUTH_AFRICA,
    wxLANGUAGE_ENGLISH_TRINIDAD,
    wxLANGUAGE_ENGLISH_ZIMBABWE,
    wxLANGUAGE_ESPERANTO,
    wxLANGUAGE_ESTONIAN,
    wxLANGUAGE_FAEROESE,
    wxLANGUAGE_FARSI,
    wxLANGUAGE_FIJI,
    wxLANGUAGE_FINNISH,
    wxLANGUAGE_FRENCH,
    wxLANGUAGE_FRENCH_BELGIAN,
    wxLANGUAGE_FRENCH_CANADIAN,
    wxLANGUAGE_FRENCH_LUXEMBOURG,
    wxLANGUAGE_FRENCH_MONACO,
    wxLANGUAGE_FRENCH_SWISS,
    wxLANGUAGE_FRISIAN,
    wxLANGUAGE_GALICIAN,
    wxLANGUAGE_GEORGIAN,
    wxLANGUAGE_GERMAN,
    wxLANGUAGE_GERMAN_AUSTRIAN,
    wxLANGUAGE_GERMAN_BELGIUM,
    wxLANGUAGE_GERMAN_LIECHTENSTEIN,
    wxLANGUAGE_GERMAN_LUXEMBOURG,
    wxLANGUAGE_GERMAN_SWISS,
    wxLANGUAGE_GREEK,
    wxLANGUAGE_GREENLANDIC,
    wxLANGUAGE_GUARANI,
    wxLANGUAGE_GUJARATI,
    wxLANGUAGE_HAUSA,
    wxLANGUAGE_HEBREW,
    wxLANGUAGE_HINDI,
    wxLANGUAGE_HUNGARIAN,
    wxLANGUAGE_ICELANDIC,
    wxLANGUAGE_INDONESIAN,
    wxLANGUAGE_INTERLINGUA,
    wxLANGUAGE_INTERLINGUE,
    wxLANGUAGE_INUKTITUT,
    wxLANGUAGE_INUPIAK,
    wxLANGUAGE_IRISH,
    wxLANGUAGE_ITALIAN,
    wxLANGUAGE_ITALIAN_SWISS,
    wxLANGUAGE_JAPANESE,
    wxLANGUAGE_JAVANESE,
    wxLANGUAGE_KANNADA,
    wxLANGUAGE_KASHMIRI,
    wxLANGUAGE_KASHMIRI_INDIA,
    wxLANGUAGE_KAZAKH,
    wxLANGUAGE_KERNEWEK,
    wxLANGUAGE_KINYARWANDA,
    wxLANGUAGE_KIRGHIZ,
    wxLANGUAGE_KIRUNDI,
    wxLANGUAGE_KONKANI,
    wxLANGUAGE_KOREAN,
    wxLANGUAGE_KURDISH,
    wxLANGUAGE_LAOTHIAN,
    wxLANGUAGE_LATIN,
    wxLANGUAGE_LATVIAN,
    wxLANGUAGE_LINGALA,
    wxLANGUAGE_LITHUANIAN,
    wxLANGUAGE_MACEDONIAN,
    wxLANGUAGE_MALAGASY,
    wxLANGUAGE_MALAY,
    wxLANGUAGE_MALAYALAM,
    wxLANGUAGE_MALAY_BRUNEI_DARUSSALAM,
    wxLANGUAGE_MALAY_MALAYSIA,
    wxLANGUAGE_MALTESE,
    wxLANGUAGE_MANIPURI,
    wxLANGUAGE_MAORI,
    wxLANGUAGE_MARATHI,
    wxLANGUAGE_MOLDAVIAN,
    wxLANGUAGE_MONGOLIAN,
    wxLANGUAGE_NAURU,
    wxLANGUAGE_NEPALI,
    wxLANGUAGE_NEPALI_INDIA,
    wxLANGUAGE_NORWEGIAN_BOKMAL,
    wxLANGUAGE_NORWEGIAN_NYNORSK,
    wxLANGUAGE_OCCITAN,
    wxLANGUAGE_ORIYA,
    wxLANGUAGE_OROMO,
    wxLANGUAGE_PASHTO,
    wxLANGUAGE_POLISH,
    wxLANGUAGE_PORTUGUESE,
    wxLANGUAGE_PORTUGUESE_BRAZILIAN,
    wxLANGUAGE_PUNJABI,
    wxLANGUAGE_QUECHUA,
    wxLANGUAGE_RHAETO_ROMANCE,
    wxLANGUAGE_ROMANIAN,
    wxLANGUAGE_RUSSIAN,
    wxLANGUAGE_RUSSIAN_UKRAINE,
    wxLANGUAGE_SAMOAN,
    wxLANGUAGE_SANGHO,
    wxLANGUAGE_SANSKRIT,
    wxLANGUAGE_SCOTS_GAELIC,
    wxLANGUAGE_SERBIAN,
    wxLANGUAGE_SERBIAN_CYRILLIC,
    wxLANGUAGE_SERBIAN_LATIN,
    wxLANGUAGE_SERBO_CROATIAN,
    wxLANGUAGE_SESOTHO,
    wxLANGUAGE_SETSWANA,
    wxLANGUAGE_SHONA,
    wxLANGUAGE_SINDHI,
    wxLANGUAGE_SINHALESE,
    wxLANGUAGE_SISWATI,
    wxLANGUAGE_SLOVAK,
    wxLANGUAGE_SLOVENIAN,
    wxLANGUAGE_SOMALI,
    wxLANGUAGE_SPANISH,
    wxLANGUAGE_SPANISH_ARGENTINA,
    wxLANGUAGE_SPANISH_BOLIVIA,
    wxLANGUAGE_SPANISH_CHILE,
    wxLANGUAGE_SPANISH_COLOMBIA,
    wxLANGUAGE_SPANISH_COSTA_RICA,
    wxLANGUAGE_SPANISH_DOMINICAN_REPUBLIC,
    wxLANGUAGE_SPANISH_ECUADOR,
    wxLANGUAGE_SPANISH_EL_SALVADOR,
    wxLANGUAGE_SPANISH_GUATEMALA,
    wxLANGUAGE_SPANISH_HONDURAS,
    wxLANGUAGE_SPANISH_MEXICAN,
    wxLANGUAGE_SPANISH_MODERN,
    wxLANGUAGE_SPANISH_NICARAGUA,
    wxLANGUAGE_SPANISH_PANAMA,
    wxLANGUAGE_SPANISH_PARAGUAY,
    wxLANGUAGE_SPANISH_PERU,
    wxLANGUAGE_SPANISH_PUERTO_RICO,
    wxLANGUAGE_SPANISH_URUGUAY,
    wxLANGUAGE_SPANISH_US,
    wxLANGUAGE_SPANISH_VENEZUELA,
    wxLANGUAGE_SUNDANESE,
    wxLANGUAGE_SWAHILI,
    wxLANGUAGE_SWEDISH,
    wxLANGUAGE_SWEDISH_FINLAND,
    wxLANGUAGE_TAGALOG,
    wxLANGUAGE_TAJIK,
    wxLANGUAGE_TAMIL,
    wxLANGUAGE_TATAR,
    wxLANGUAGE_TELUGU,
    wxLANGUAGE_THAI,
    wxLANGUAGE_TIBETAN,
    wxLANGUAGE_TIGRINYA,
    wxLANGUAGE_TONGA,
    wxLANGUAGE_TSONGA,
    wxLANGUAGE_TURKISH,
    wxLANGUAGE_TURKMEN,
    wxLANGUAGE_TWI,
    wxLANGUAGE_UIGHUR,
    wxLANGUAGE_UKRAINIAN,
    wxLANGUAGE_URDU,
    wxLANGUAGE_URDU_INDIA,
    wxLANGUAGE_URDU_PAKISTAN,
    wxLANGUAGE_UZBEK,
    wxLANGUAGE_UZBEK_CYRILLIC,
    wxLANGUAGE_UZBEK_LATIN,
    wxLANGUAGE_VIETNAMESE,
    wxLANGUAGE_VOLAPUK,
    wxLANGUAGE_WELSH,
    wxLANGUAGE_WOLOF,
    wxLANGUAGE_XHOSA,
    wxLANGUAGE_YIDDISH,
    wxLANGUAGE_YORUBA,
    wxLANGUAGE_ZHUANG,
    wxLANGUAGE_ZULU,


    wxLANGUAGE_USER_DEFINED
};
# 311 "../wxX11/include/wx/intl.h"
struct wxLanguageInfo
{
    int Language;
    wxString CanonicalName;




    wxString Description;
};





enum wxLocaleCategory
{

    wxLOCALE_CAT_NUMBER,


    wxLOCALE_CAT_DATE,


    wxLOCALE_CAT_MONEY,

    wxLOCALE_CAT_MAX
};





enum wxLocaleInfo
{

    wxLOCALE_THOUSANDS_SEP,


    wxLOCALE_DECIMAL_POINT

};






enum wxLocaleInitFlags
{
    wxLOCALE_LOAD_DEFAULT = 0x0001,
    wxLOCALE_CONV_ENCODING = 0x0002
};

class wxLocale
{
public:




    wxLocale();

    wxLocale(const char *szName,
             const char *szShort = (const char *) __null,
             const char *szLocale = (const char *) __null,
             bool bLoadDefault = 1,
             bool bConvertEncoding = 0)
        {
            Init(szName, szShort, szLocale, bLoadDefault, bConvertEncoding);
        }

    wxLocale(int language,
             int flags = wxLOCALE_LOAD_DEFAULT | wxLOCALE_CONV_ENCODING)
        { Init(language, flags); }


    bool Init(const char *szName,
              const char *szShort = (const char *) __null,
              const char *szLocale = (const char *) __null,
              bool bLoadDefault = 1,
              bool bConvertEncoding = 0);


    bool Init(int language = wxLANGUAGE_DEFAULT,
              int flags = wxLOCALE_LOAD_DEFAULT | wxLOCALE_CONV_ENCODING);


    ~wxLocale();



    static int GetSystemLanguage();



    static wxFontEncoding GetSystemEncoding();



    static wxString GetSystemEncodingName();



    static wxString GetInfo(wxLocaleInfo index, wxLocaleCategory cat);


    bool IsOk() const { return m_pszOldLocale != __null; }


    const char *GetLocale() const { return m_strLocale; }


    int GetLanguage() const { return m_language; }


    wxString GetSysName() const;




    wxString GetCanonicalName() const { return m_strShort; }






    static void AddCatalogLookupPathPrefix(const wxString& prefix);
# 448 "../wxX11/include/wx/intl.h"
    bool AddCatalog(const char *szDomain);


    bool IsLoaded(const char *szDomain) const;




    static void AddLanguage(const wxLanguageInfo& info);
# 468 "../wxX11/include/wx/intl.h"
    const char *GetString(const char *szOrigString,
                            const char *szDomain = (const char *) __null) const;


    const wxString& GetName() const { return m_strShort; }




    static void CreateLanguagesDB();
    static void DestroyLanguagesDB();

private:

    wxMsgCatalog *FindCatalog(const char *szDomain) const;



    static void InitLanguagesDB();

    wxString m_strLocale,
                   m_strShort;
    int m_language;

    const char *m_pszOldLocale;
    wxLocale *m_pOldLocale;

    wxMsgCatalog *m_pMsgCat;

    bool m_bConvertEncoding;

    static wxLanguageInfoArray *ms_languagesDB;
};






extern wxLocale* wxGetLocale();


inline const char *wxGetTranslation(const char *sz)
{
    wxLocale *pLoc = wxGetLocale();
    if (pLoc)
        return pLoc->GetString(sz);
    else
        return sz;
}
# 74 "../wxX11/src/common/datetime.cpp" 2
# 1 "../wxX11/include/wx/thread.h" 1
# 21 "../wxX11/include/wx/thread.h"
# 1 "lib/wx/include/motif-2.3/wx/setup.h" 1
# 22 "../wxX11/include/wx/thread.h" 2





#pragma interface "thread.h"







# 1 "../wxX11/include/wx/module.h" 1
# 16 "../wxX11/include/wx/module.h"
#pragma interface "module.h"


# 1 "../wxX11/include/wx/object.h" 1
# 17 "../wxX11/include/wx/object.h"
#pragma interface "object.h"






# 1 "../wxX11/include/wx/defs.h" 1
# 25 "../wxX11/include/wx/object.h" 2
# 1 "../wxX11/include/wx/memory.h" 1
# 16 "../wxX11/include/wx/memory.h"
#pragma interface "memory.h"


# 1 "../wxX11/include/wx/defs.h" 1
# 20 "../wxX11/include/wx/memory.h" 2
# 1 "../wxX11/include/wx/string.h" 1
# 21 "../wxX11/include/wx/memory.h" 2
# 341 "../wxX11/include/wx/memory.h"
inline void wxTrace(const char *) {}
inline void wxTraceLevel(int , const char *) {}
# 26 "../wxX11/include/wx/object.h" 2

class wxObject;
# 42 "../wxX11/include/wx/object.h"
class wxClassInfo;
class wxHashTable;
# 54 "../wxX11/include/wx/object.h"
typedef wxObject *(*wxObjectConstructorFn)(void);

class wxClassInfo
{
public:
    wxClassInfo( const char *className,
                 const char *baseName1,
                 const char *baseName2,
                 int size,
                 wxObjectConstructorFn ctor )
        : m_className(className)
        , m_baseClassName1(baseName1)
        , m_baseClassName2(baseName2)
        , m_objectSize(size)
        , m_objectConstructor(ctor)
        , m_baseInfo1(0)
        , m_baseInfo2(0)
        , m_next(sm_first)
    { sm_first = this; }

    wxObject *CreateObject() { return m_objectConstructor ? (*m_objectConstructor)() : 0; }

    const char *GetClassName() const { return m_className; }
    const char *GetBaseClassName1() const { return m_baseClassName1; }
    const char *GetBaseClassName2() const { return m_baseClassName2; }
    const wxClassInfo *GetBaseClass1() const { return m_baseInfo1; }
    const wxClassInfo *GetBaseClass2() const { return m_baseInfo2; }
    int GetSize() const { return m_objectSize; }

    wxObjectConstructorFn GetConstructor() const { return m_objectConstructor; }
    static const wxClassInfo *GetFirst() { return sm_first; }
    const wxClassInfo *GetNext() const { return m_next; }
    static wxClassInfo *FindClass(const char *className);




    bool IsKindOf(const wxClassInfo *info) const
    {
        return info != 0 &&
               ( info == this ||
                 ( m_baseInfo1 && m_baseInfo1->IsKindOf(info) ) ||
                 ( m_baseInfo2 && m_baseInfo2->IsKindOf(info) ) );
    }



    static void InitializeClasses();



    static void CleanUpClasses();

public:
    const char *m_className;
    const char *m_baseClassName1;
    const char *m_baseClassName2;
    int m_objectSize;
    wxObjectConstructorFn m_objectConstructor;



    const wxClassInfo *m_baseInfo1;
    const wxClassInfo *m_baseInfo2;




    static wxClassInfo *sm_first;
    wxClassInfo *m_next;



    static wxHashTable *sm_classTable;

private:

    static wxClassInfo *GetBaseByName(const char *name);
};

            wxObject *wxCreateDynamicObject(const char *name);
# 343 "../wxX11/include/wx/object.h"
class wxObjectRefData;

class wxObject
{
public: static wxClassInfo sm_classwxObject; virtual wxClassInfo *GetClassInfo() const { return &wxObject::sm_classwxObject; }

public:
    wxObject() : m_refData(0) {}
    virtual ~wxObject() { UnRef(); }

    bool IsKindOf(wxClassInfo *info) const;
# 393 "../wxX11/include/wx/object.h"
    wxObjectRefData *GetRefData() const { return m_refData; }
    void SetRefData(wxObjectRefData *data) { m_refData = data; }


    void Ref(const wxObject& clone);


    void UnRef();

protected:



    void AllocExclusive();





    virtual wxObjectRefData *CreateRefData() const;


    virtual wxObjectRefData *CloneRefData(const wxObjectRefData *data) const;

    wxObjectRefData *m_refData;
};


class wxObjectRefData
{
    friend class wxObject;

public:
    wxObjectRefData() : m_count(1) {}
    virtual ~wxObjectRefData() {}

    inline int GetRefCount() const { return m_count; }
private:
    int m_count;
};


inline wxObject *wxCheckDynamicCast(wxObject *obj, wxClassInfo *classInfo)
{
    return obj && obj->GetClassInfo()->IsKindOf(classInfo) ? obj : 0;
}
# 20 "../wxX11/include/wx/module.h" 2
# 1 "../wxX11/include/wx/list.h" 1
# 29 "../wxX11/include/wx/list.h"
#pragma interface "list.h"






# 1 "../wxX11/include/wx/defs.h" 1
# 37 "../wxX11/include/wx/list.h" 2
# 1 "../wxX11/include/wx/object.h" 1
# 38 "../wxX11/include/wx/list.h" 2
# 1 "../wxX11/include/wx/string.h" 1
# 39 "../wxX11/include/wx/list.h" 2



extern char* copystring(const char *s);

class wxObjectListNode;
typedef wxObjectListNode wxNode;







enum wxKeyType
{
    wxKEY_NONE,
    wxKEY_INTEGER,
    wxKEY_STRING
};
# 67 "../wxX11/include/wx/list.h"
extern "C"
{
typedef int (* wxSortCompareFunction)(const void *elem1, const void *elem2);
}


typedef int (* wxListIterateFunction)(void *current);





union wxListKeyValue
{
    long integer;
    char *string;
};







class wxListKey
{
public:

    wxListKey()
        { m_keyType = wxKEY_NONE; }
    wxListKey(long i)
        { m_keyType = wxKEY_INTEGER; m_key.integer = i; }
    wxListKey(const char *s)
        { m_keyType = wxKEY_STRING; m_key.string = strdup(s); }
    wxListKey(const wxString& s)
        { m_keyType = wxKEY_STRING; m_key.string = strdup(s.c_str()); }


    wxKeyType GetKeyType() const { return m_keyType; }
    const char *GetString() const
        { ; return m_key.string; }
    long GetNumber() const
        { ; return m_key.integer; }




    bool operator==(wxListKeyValue value) const ;


    ~wxListKey()
    {
        if ( m_keyType == wxKEY_STRING )
            free(m_key.string);
    }

private:
    wxKeyType m_keyType;
    wxListKeyValue m_key;
};





extern wxListKey wxDefaultListKey;

class wxListBase;

class wxNodeBase
{
friend class wxListBase;
public:

    wxNodeBase(wxListBase *list = (wxListBase *)__null,
               wxNodeBase *previous = (wxNodeBase *)__null,
               wxNodeBase *next = (wxNodeBase *)__null,
               void *data = __null,
               const wxListKey& key = wxDefaultListKey);

    virtual ~wxNodeBase();


    const char *GetKeyString() const { return m_key.string; }
    long GetKeyInteger() const { return m_key.integer; }


    void SetKeyString(char* s) { m_key.string = s; }
    void SetKeyInteger(long i) { m_key.integer = i; }



    wxNode *Next() const { return (wxNode *)GetNext(); }
    wxNode *Previous() const { return (wxNode *)GetPrevious(); }
    wxObject *Data() const { return (wxObject *)GetData(); }


protected:

    wxNodeBase *GetNext() const { return m_next; }
    wxNodeBase *GetPrevious() const { return m_previous; }

    void *GetData() const { return m_data; }
    void SetData(void *data) { m_data = data; }


    int IndexOf() const;

    virtual void DeleteData() { }

private:

    wxListKeyValue m_key;

    void *m_data;
    wxNodeBase *m_next,
                *m_previous;

    wxListBase *m_list;
};





class wxListBase : public wxObject
{
friend class wxNodeBase;
friend class wxHashTableBase;
private:

    void Init(wxKeyType keyType = wxKEY_NONE);
public:

    wxListBase(wxKeyType keyType = wxKEY_NONE) { Init(keyType); }
    virtual ~wxListBase();



    size_t GetCount() const { return m_count; }




    void Clear();


    void DeleteContents(bool destroy) { m_destroy = destroy; }


    bool GetDeleteContents() const
        { return m_destroy; }


    wxKeyType GetKeyType() const
        { return m_keyType; }


    void SetKeyType(wxKeyType keyType)
        { ; m_keyType = keyType; }


    int Number() const { return GetCount(); }
    wxNode *First() const { return (wxNode *)GetFirst(); }
    wxNode *Last() const { return (wxNode *)GetLast(); }
    wxNode *Nth(size_t index) const { return (wxNode *)Item(index); }


protected:





    virtual wxNodeBase *CreateNode(wxNodeBase *prev, wxNodeBase *next,
                                   void *data,
                                   const wxListKey& key = wxDefaultListKey) = 0;
# 252 "../wxX11/include/wx/list.h"
    wxListBase(size_t count, void *elements[]);

    wxListBase(void *object, ... );

protected:

    wxListBase(const wxListBase& list) : wxObject()
        { Init(); DoCopy(list); }
    wxListBase& operator=(const wxListBase& list)
        { Clear(); DoCopy(list); return *this; }


    wxNodeBase *GetFirst() const { return m_nodeFirst; }
    wxNodeBase *GetLast() const { return m_nodeLast; }


    wxNodeBase *Item(size_t index) const;


    void *operator[](size_t index) const
        { wxNodeBase *node = Item(index); return node ? node->GetData() : (wxNodeBase*)__null; }



    wxNodeBase *Prepend(void *object)
        { return (wxNodeBase *)wxListBase::Insert(object); }

    wxNodeBase *Append(void *object);

    wxNodeBase *Insert(void *object) { return Insert( (wxNodeBase*)__null, object); }

    wxNodeBase *Insert(size_t pos, void *object)
        { return pos == GetCount() ? Append(object)
                                   : Insert(Item(pos), object); }

    wxNodeBase *Insert(wxNodeBase *prev, void *object);


    wxNodeBase *Append(long key, void *object);
    wxNodeBase *Append(const char *key, void *object);



    wxNodeBase *DetachNode(wxNodeBase *node);

    bool DeleteNode(wxNodeBase *node);


    bool DeleteObject(void *object);



    wxNodeBase *Find(void *object) const;


    wxNodeBase *Find(const wxListKey& key) const;


    int IndexOf( void *object ) const;



    void Sort(const wxSortCompareFunction compfunc);


    void *FirstThat(wxListIterateFunction func);
    void ForEach(wxListIterateFunction func);
    void *LastThat(wxListIterateFunction func);

private:


    void DoCopy(const wxListBase& list);

    wxNodeBase *AppendCommon(wxNodeBase *node);

    void DoDeleteNode(wxNodeBase *node);

    size_t m_count;
    bool m_destroy;
    wxNodeBase *m_nodeFirst,
               *m_nodeLast;

    wxKeyType m_keyType;
};
# 499 "../wxX11/include/wx/list.h"
typedef int (*wxSortFuncFor_wxObjectList)(const wxObject **, const wxObject **); class wxObjectListNode : public wxNodeBase { public: wxObjectListNode(wxListBase *list = (wxListBase *)__null, wxObjectListNode *previous = (wxObjectListNode *)__null, wxObjectListNode *next = (wxObjectListNode *)__null, wxObject *data = (wxObject *)__null, const wxListKey& key = wxDefaultListKey) : wxNodeBase(list, previous, next, data, key) { } wxObjectListNode *GetNext() const { return (wxObjectListNode *)wxNodeBase::GetNext(); } wxObjectListNode *GetPrevious() const { return (wxObjectListNode *)wxNodeBase::GetPrevious(); } wxObject *GetData() const { return (wxObject *)wxNodeBase::GetData(); } void SetData(wxObject *data) { wxNodeBase::SetData(data); } virtual void DeleteData(); }; class wxObjectList : public wxListBase { public: typedef wxObjectListNode Node; wxObjectList(wxKeyType keyType = wxKEY_NONE) : wxListBase(keyType) { } wxObjectList(size_t count, wxObject *elements[]) : wxListBase(count, (void **)elements) { } wxObjectList& operator=(const wxObjectList& list) { return (wxObjectList&)wxListBase::operator=(list); } wxObjectListNode *GetFirst() const { return (wxObjectListNode *)wxListBase::GetFirst(); } wxObjectListNode *GetLast() const { return (wxObjectListNode *)wxListBase::GetLast(); } wxObjectListNode *Item(size_t index) const { return (wxObjectListNode *)wxListBase::Item(index); } wxObject *operator[](size_t index) const { wxObjectListNode *node = Item(index); return node ? (wxObject*)(node->GetData()) : (wxObject*)__null; } wxObjectListNode *Append(wxObject *object) { return (wxObjectListNode *)wxListBase::Append(object); } wxObjectListNode *Insert(wxObject *object) { return (wxObjectListNode *)Insert((wxObjectListNode*)__null, object); } wxObjectListNode *Insert(size_t pos, wxObject *object) { return (wxObjectListNode *)wxListBase::Insert(pos, object); } wxObjectListNode *Insert(wxObjectListNode *prev, wxObject *object) { return (wxObjectListNode *)wxListBase::Insert(prev, object); } wxObjectListNode *Append(long key, void *object) { return (wxObjectListNode *)wxListBase::Append(key, object); } wxObjectListNode *Append(const char *key, void *object) { return (wxObjectListNode *)wxListBase::Append(key, object); } wxObjectListNode *DetachNode(wxObjectListNode *node) { return (wxObjectListNode *)wxListBase::DetachNode(node); } bool DeleteNode(wxObjectListNode *node) { return wxListBase::DeleteNode(node); } bool DeleteObject(wxObject *object) { return wxListBase::DeleteObject(object); } wxObjectListNode *Find(wxObject *object) const { return (wxObjectListNode *)wxListBase::Find(object); } virtual wxObjectListNode *Find(const wxListKey& key) const { return (wxObjectListNode *)wxListBase::Find(key); } int IndexOf(wxObject *object) const { return wxListBase::IndexOf(object); } void Sort(wxSortFuncFor_wxObjectList func) { wxListBase::Sort((wxSortCompareFunction)func); } protected: virtual wxNodeBase *CreateNode(wxNodeBase *prev, wxNodeBase *next, void *data, const wxListKey& key = wxDefaultListKey) { return new wxObjectListNode(this, (wxObjectListNode *)prev, (wxObjectListNode *)next, (wxObject *)data, key); } };

class wxList : public wxObjectList
{
public:
    wxList(int key_type = wxKEY_NONE) : wxObjectList((wxKeyType)key_type) { }

   ~wxList() { }

    wxList& operator=(const wxList& list)
        { return (wxList&)wxListBase::operator=(list); }


    void Sort(wxSortCompareFunction compfunc) { wxListBase::Sort(compfunc); }

    wxNode *Member(wxObject *object) const { return (wxNode *)Find(object); }

private:
    public: static wxClassInfo sm_classwxList; virtual wxClassInfo *GetClassInfo() const { return &wxList::sm_classwxList; }
};





typedef int (*wxSortFuncFor_wxStringListBase)(const char **, const char **); class wxStringListNode : public wxNodeBase { public: wxStringListNode(wxListBase *list = (wxListBase *)__null, wxStringListNode *previous = (wxStringListNode *)__null, wxStringListNode *next = (wxStringListNode *)__null, char *data = (char *)__null, const wxListKey& key = wxDefaultListKey) : wxNodeBase(list, previous, next, data, key) { } wxStringListNode *GetNext() const { return (wxStringListNode *)wxNodeBase::GetNext(); } wxStringListNode *GetPrevious() const { return (wxStringListNode *)wxNodeBase::GetPrevious(); } char *GetData() const { return (char *)wxNodeBase::GetData(); } void SetData(char *data) { wxNodeBase::SetData(data); } virtual void DeleteData(); }; class wxStringListBase : public wxListBase { public: typedef wxStringListNode Node; wxStringListBase(wxKeyType keyType = wxKEY_NONE) : wxListBase(keyType) { } wxStringListBase(size_t count, char *elements[]) : wxListBase(count, (void **)elements) { } wxStringListBase& operator=(const wxStringListBase& list) { return (wxStringListBase&)wxListBase::operator=(list); } wxStringListNode *GetFirst() const { return (wxStringListNode *)wxListBase::GetFirst(); } wxStringListNode *GetLast() const { return (wxStringListNode *)wxListBase::GetLast(); } wxStringListNode *Item(size_t index) const { return (wxStringListNode *)wxListBase::Item(index); } char *operator[](size_t index) const { wxStringListNode *node = Item(index); return node ? (char*)(node->GetData()) : (char*)__null; } wxStringListNode *Append(char *object) { return (wxStringListNode *)wxListBase::Append(object); } wxStringListNode *Insert(char *object) { return (wxStringListNode *)Insert((wxStringListNode*)__null, object); } wxStringListNode *Insert(size_t pos, char *object) { return (wxStringListNode *)wxListBase::Insert(pos, object); } wxStringListNode *Insert(wxStringListNode *prev, char *object) { return (wxStringListNode *)wxListBase::Insert(prev, object); } wxStringListNode *Append(long key, void *object) { return (wxStringListNode *)wxListBase::Append(key, object); } wxStringListNode *Append(const char *key, void *object) { return (wxStringListNode *)wxListBase::Append(key, object); } wxStringListNode *DetachNode(wxStringListNode *node) { return (wxStringListNode *)wxListBase::DetachNode(node); } bool DeleteNode(wxStringListNode *node) { return wxListBase::DeleteNode(node); } bool DeleteObject(char *object) { return wxListBase::DeleteObject(object); } wxStringListNode *Find(char *object) const { return (wxStringListNode *)wxListBase::Find(object); } virtual wxStringListNode *Find(const wxListKey& key) const { return (wxStringListNode *)wxListBase::Find(key); } int IndexOf(char *object) const { return wxListBase::IndexOf(object); } void Sort(wxSortFuncFor_wxStringListBase func) { wxListBase::Sort((wxSortCompareFunction)func); } protected: virtual wxNodeBase *CreateNode(wxNodeBase *prev, wxNodeBase *next, void *data, const wxListKey& key = wxDefaultListKey) { return new wxStringListNode(this, (wxStringListNode *)prev, (wxStringListNode *)next, (char *)data, key); } };

class wxStringList : public wxStringListBase
{
public:


    wxStringList() { DeleteContents(1); }
    wxStringList(const char *first ...);



    wxStringList(const wxStringList& other) : wxStringListBase() { DeleteContents(1); DoCopy(other); }
    wxStringList& operator=(const wxStringList& other)
        { Clear(); DoCopy(other); return *this; }



    wxNode *Add(const char *s)
        { return (wxNode *)wxStringListBase::Append(copystring(s)); }


    wxNode *Prepend(const char *s)
        { return (wxNode *)wxStringListBase::Insert(copystring(s)); }

    bool Delete(const char *s);

    char **ListToArray(bool new_copies = 0) const;
    bool Member(const char *s) const;


    void Sort();

private:
    void DoCopy(const wxStringList&);

    public: static wxClassInfo sm_classwxStringList; virtual wxClassInfo *GetClassInfo() const { return &wxStringList::sm_classwxStringList; }
};
# 21 "../wxX11/include/wx/module.h" 2


class wxModule;
typedef wxModule _WX_LIST_ITEM_TYPE_wxModuleList; typedef int (*wxSortFuncFor_wxModuleList)(const wxModule **, const wxModule **); class wxwxModuleListNode : public wxNodeBase { public: wxwxModuleListNode(wxListBase *list = (wxListBase *)__null, wxwxModuleListNode *previous = (wxwxModuleListNode *)__null, wxwxModuleListNode *next = (wxwxModuleListNode *)__null, wxModule *data = (wxModule *)__null, const wxListKey& key = wxDefaultListKey) : wxNodeBase(list, previous, next, data, key) { } wxwxModuleListNode *GetNext() const { return (wxwxModuleListNode *)wxNodeBase::GetNext(); } wxwxModuleListNode *GetPrevious() const { return (wxwxModuleListNode *)wxNodeBase::GetPrevious(); } wxModule *GetData() const { return (wxModule *)wxNodeBase::GetData(); } void SetData(wxModule *data) { wxNodeBase::SetData(data); } virtual void DeleteData(); }; class wxModuleList : public wxListBase { public: typedef wxwxModuleListNode Node; wxModuleList(wxKeyType keyType = wxKEY_NONE) : wxListBase(keyType) { } wxModuleList(size_t count, wxModule *elements[]) : wxListBase(count, (void **)elements) { } wxModuleList& operator=(const wxModuleList& list) { return (wxModuleList&)wxListBase::operator=(list); } wxwxModuleListNode *GetFirst() const { return (wxwxModuleListNode *)wxListBase::GetFirst(); } wxwxModuleListNode *GetLast() const { return (wxwxModuleListNode *)wxListBase::GetLast(); } wxwxModuleListNode *Item(size_t index) const { return (wxwxModuleListNode *)wxListBase::Item(index); } wxModule *operator[](size_t index) const { wxwxModuleListNode *node = Item(index); return node ? (wxModule*)(node->GetData()) : (wxModule*)__null; } wxwxModuleListNode *Append(wxModule *object) { return (wxwxModuleListNode *)wxListBase::Append(object); } wxwxModuleListNode *Insert(wxModule *object) { return (wxwxModuleListNode *)Insert((wxwxModuleListNode*)__null, object); } wxwxModuleListNode *Insert(size_t pos, wxModule *object) { return (wxwxModuleListNode *)wxListBase::Insert(pos, object); } wxwxModuleListNode *Insert(wxwxModuleListNode *prev, wxModule *object) { return (wxwxModuleListNode *)wxListBase::Insert(prev, object); } wxwxModuleListNode *Append(long key, void *object) { return (wxwxModuleListNode *)wxListBase::Append(key, object); } wxwxModuleListNode *Append(const char *key, void *object) { return (wxwxModuleListNode *)wxListBase::Append(key, object); } wxwxModuleListNode *DetachNode(wxwxModuleListNode *node) { return (wxwxModuleListNode *)wxListBase::DetachNode(node); } bool DeleteNode(wxwxModuleListNode *node) { return wxListBase::DeleteNode(node); } bool DeleteObject(wxModule *object) { return wxListBase::DeleteObject(object); } wxwxModuleListNode *Find(wxModule *object) const { return (wxwxModuleListNode *)wxListBase::Find(object); } virtual wxwxModuleListNode *Find(const wxListKey& key) const { return (wxwxModuleListNode *)wxListBase::Find(key); } int IndexOf(wxModule *object) const { return wxListBase::IndexOf(object); } void Sort(wxSortFuncFor_wxModuleList func) { wxListBase::Sort((wxSortCompareFunction)func); } protected: virtual wxNodeBase *CreateNode(wxNodeBase *prev, wxNodeBase *next, void *data, const wxListKey& key = wxDefaultListKey) { return new wxwxModuleListNode(this, (wxwxModuleListNode *)prev, (wxwxModuleListNode *)next, (wxModule *)data, key); } };




class wxModule : public wxObject
{
public:
    wxModule() {}
    virtual ~wxModule() {}




    bool Init() { return OnInit(); }
    void Exit() { OnExit(); }




    virtual bool OnInit() = 0;




    virtual void OnExit() = 0;

    static void RegisterModule(wxModule* module);
    static void RegisterModules();
    static bool InitializeModules();
    static void CleanUpModules();



    static void UnregisterModule(wxModule* module);

protected:
    static wxModuleList m_modules;

    public: static wxClassInfo sm_classwxModule; virtual wxClassInfo *GetClassInfo() const { return &wxModule::sm_classwxModule; }
};
# 36 "../wxX11/include/wx/thread.h" 2





enum wxMutexError
{
    wxMUTEX_NO_ERROR = 0,
    wxMUTEX_DEAD_LOCK,
    wxMUTEX_BUSY,
    wxMUTEX_UNLOCKED,
    wxMUTEX_MISC_ERROR
};

enum wxThreadError
{
    wxTHREAD_NO_ERROR = 0,
    wxTHREAD_NO_RESOURCE,
    wxTHREAD_RUNNING,
    wxTHREAD_NOT_RUNNING,
    wxTHREAD_KILLED,
    wxTHREAD_MISC_ERROR
};

enum wxThreadKind
{
    wxTHREAD_DETACHED,
    wxTHREAD_JOINABLE
};


enum
{
    WXTHREAD_MIN_PRIORITY = 0u,
    WXTHREAD_DEFAULT_PRIORITY = 50u,
    WXTHREAD_MAX_PRIORITY = 100u
};
# 83 "../wxX11/include/wx/thread.h"
class wxMutexInternal;
class wxMutex
{
public:

    wxMutex();
    ~wxMutex();


    wxMutexError Lock();

    wxMutexError TryLock();

    wxMutexError Unlock();


    bool IsLocked() const { return (m_locked > 0); }

protected:

    wxMutex(const wxMutex&);
    wxMutex& operator=(const wxMutex&);

    int m_locked;
    wxMutexInternal *m_internal;
};




class wxMutexLocker
{
public:

    wxMutexLocker(wxMutex& mutex) : m_mutex(mutex)
        { m_isOk = m_mutex.Lock() == wxMUTEX_NO_ERROR; }


    bool IsOk() const
        { return m_isOk; }


    ~wxMutexLocker()
        { if ( IsOk() ) m_mutex.Unlock(); }

private:

    wxMutexLocker(const wxMutexLocker&);
    wxMutexLocker& operator=(const wxMutexLocker&);

    bool m_isOk;
    wxMutex& m_mutex;
};
# 147 "../wxX11/include/wx/thread.h"
class wxCriticalSectionInternal;
# 163 "../wxX11/include/wx/thread.h"
class wxCriticalSection
{
public:

    inline wxCriticalSection();
    inline ~wxCriticalSection();


    inline void Enter();

    inline void Leave();

private:

    wxCriticalSection(const wxCriticalSection&);
    wxCriticalSection& operator=(const wxCriticalSection&);


    wxMutex m_mutex;
# 192 "../wxX11/include/wx/thread.h"
};






class wxCriticalSectionLocker
{
public:
    inline wxCriticalSectionLocker(wxCriticalSection& critsect);
    inline ~wxCriticalSectionLocker();

private:

    wxCriticalSectionLocker(const wxCriticalSectionLocker&);
    wxCriticalSectionLocker& operator=(const wxCriticalSectionLocker&);

    wxCriticalSection& m_critsect;
};






class wxConditionInternal;
class wxCondition
{
public:

    wxCondition();
    ~wxCondition();



    void Wait();

    bool Wait(unsigned long sec, unsigned long nsec);



    void Signal();

    void Broadcast();






private:
    wxConditionInternal *m_internal;
};
# 264 "../wxX11/include/wx/thread.h"
   typedef unsigned long wxThreadIdType;


class wxThreadInternal;
class wxThread
{
public:

    typedef void *ExitCode;







    static wxThread *This();


    static bool IsMain();


    static void Yield();




    static void Sleep(unsigned long milliseconds);





    static int GetCPUCount();




   static wxThreadIdType GetCurrentId();
# 311 "../wxX11/include/wx/thread.h"
    static bool SetConcurrency(size_t level);



    wxThread(wxThreadKind kind = wxTHREAD_DETACHED);
# 325 "../wxX11/include/wx/thread.h"
    wxThreadError Create(unsigned int stackSize = 0);




    wxThreadError Run();
# 342 "../wxX11/include/wx/thread.h"
    wxThreadError Delete(ExitCode *rc = (ExitCode *)__null);





    ExitCode Wait();
# 358 "../wxX11/include/wx/thread.h"
    wxThreadError Kill();



    wxThreadError Pause();


    wxThreadError Resume();





    void SetPriority(unsigned int prio);


    unsigned int GetPriority() const;



    bool IsAlive() const;

    bool IsRunning() const;

    bool IsPaused() const;


    bool IsDetached() const { return m_isDetached; }



    wxThreadIdType GetId() const;




    virtual void OnExit() { }



    virtual ~wxThread();

protected:



    bool TestDestroy();


    void Exit(ExitCode exitcode = 0);



    virtual void *Entry() = 0;

private:

    wxThread(const wxThread&);
    wxThread& operator=(const wxThread&);

    friend class wxThreadInternal;


    wxThreadInternal *m_internal;


    wxCriticalSection m_critsect;


    bool m_isDetached;
};






void wxMutexGuiEnter();
void wxMutexGuiLeave();
# 463 "../wxX11/include/wx/thread.h"
class wxMutexGuiLocker
{
public:
    wxMutexGuiLocker() { wxMutexGuiEnter(); }
   ~wxMutexGuiLocker() { wxMutexGuiLeave(); }
};
# 525 "../wxX11/include/wx/thread.h"
    inline wxCriticalSection::wxCriticalSection() { }
    inline wxCriticalSection::~wxCriticalSection() { }

    inline void wxCriticalSection::Enter() { (void)m_mutex.Lock(); }
    inline void wxCriticalSection::Leave() { (void)m_mutex.Unlock(); }




    inline
    wxCriticalSectionLocker:: wxCriticalSectionLocker(wxCriticalSection& cs)
        : m_critsect(cs) { m_critsect.Enter(); }
    inline
    wxCriticalSectionLocker::~wxCriticalSectionLocker() { m_critsect.Leave(); }
# 75 "../wxX11/src/common/datetime.cpp" 2
# 1 "../wxX11/include/wx/tokenzr.h" 1
# 16 "../wxX11/include/wx/tokenzr.h"
#pragma interface "tokenzr.h"


# 1 "../wxX11/include/wx/object.h" 1
# 20 "../wxX11/include/wx/tokenzr.h" 2
# 1 "../wxX11/include/wx/string.h" 1
# 21 "../wxX11/include/wx/tokenzr.h" 2
# 30 "../wxX11/include/wx/tokenzr.h"
enum wxStringTokenizerMode
{
    wxTOKEN_INVALID = -1,
    wxTOKEN_DEFAULT,
    wxTOKEN_RET_EMPTY,
    wxTOKEN_RET_EMPTY_ALL,
    wxTOKEN_RET_DELIMS,
    wxTOKEN_STRTOK
};





class wxStringTokenizer : public wxObject
{
public:


    wxStringTokenizer() { m_mode = wxTOKEN_INVALID; }

    wxStringTokenizer(const wxString& str,
                      const wxString& delims = (" \t\r\n"),
                      wxStringTokenizerMode mode = wxTOKEN_DEFAULT);


    void SetString(const wxString& str,
                   const wxString& delims = (" \t\r\n"),
                   wxStringTokenizerMode mode = wxTOKEN_DEFAULT);


    void Reinit(const wxString& str);



    size_t CountTokens() const;

    bool HasMoreTokens() const;

    wxString GetNextToken();




    wxString GetString() const { return m_string; }




    size_t GetPosition() const { return m_pos; }




    wxStringTokenizerMode GetMode() const { return m_mode; }





    wxString NextToken() { return GetNextToken(); }


    void SetString(const wxString& to_tokenize,
                   const wxString& delims,
                   bool )
    {
        SetString(to_tokenize, delims, wxTOKEN_RET_DELIMS);
    }

    wxStringTokenizer(const wxString& to_tokenize,
                      const wxString& delims,
                      bool ret_delim)
    {
        SetString(to_tokenize, delims, ret_delim);
    }

protected:
    bool IsOk() const { return m_mode != wxTOKEN_INVALID; }

    wxString m_string,
             m_delims;

    size_t m_pos;

    wxStringTokenizerMode m_mode;

    bool m_hasMore;
};







wxArrayString
wxStringTokenize(const wxString& str,
                 const wxString& delims = (" \t\r\n"),
                 wxStringTokenizerMode mode = wxTOKEN_DEFAULT);
# 76 "../wxX11/src/common/datetime.cpp" 2
# 1 "../wxX11/include/wx/module.h" 1
# 77 "../wxX11/src/common/datetime.cpp" 2



# 1 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/ctype.h" 1 3 4
# 81 "../wxX11/src/common/datetime.cpp" 2

# 1 "../wxX11/include/wx/datetime.h" 1
# 17 "../wxX11/include/wx/datetime.h"
#pragma interface "datetime.h"




# 1 "/usr/include/time.h" 1 3 4
# 23 "../wxX11/include/wx/datetime.h" 2
# 1 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/limits.h" 1 3 4
# 24 "../wxX11/include/wx/datetime.h" 2

# 1 "../wxX11/include/wx/longlong.h" 1
# 17 "../wxX11/include/wx/longlong.h"
#pragma interface "longlong.h"


# 1 "../wxX11/include/wx/defs.h" 1
# 21 "../wxX11/include/wx/longlong.h" 2
# 1 "../wxX11/include/wx/string.h" 1
# 22 "../wxX11/include/wx/longlong.h" 2

# 1 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/limits.h" 1 3 4
# 24 "../wxX11/include/wx/longlong.h" 2
# 117 "../wxX11/include/wx/longlong.h"
    class wxLongLongNative;
    class wxULongLongNative;
    typedef wxLongLongNative wxLongLong;
    typedef wxULongLongNative wxULongLong;
# 131 "../wxX11/include/wx/longlong.h"
# 1 "../wxX11/include/wx/ioswrap.h" 1
# 132 "../wxX11/include/wx/longlong.h" 2



class wxLongLongNative
{
public:


    wxLongLongNative() { m_ll = 0; }

    wxLongLongNative(long long ll) { m_ll = ll; }

    wxLongLongNative(long hi, unsigned long lo)
    {

        m_ll = ((long long) hi) << 32;
        m_ll |= (long long) lo;
    }







    wxLongLongNative& operator=(long long ll)
        { m_ll = ll; return *this; }




    wxLongLongNative& Assign(double d)
        { m_ll = (long long)d; return *this; }





    long GetHi() const
        { return (long)(m_ll >> 32); }

    unsigned long GetLo() const
        { return (unsigned long)m_ll; }


    wxLongLongNative Abs() const { return wxLongLongNative(*this).Abs(); }
    wxLongLongNative& Abs() { if ( m_ll < 0 ) m_ll = -m_ll; return *this; }


    long long GetValue() const { return m_ll; }


    long ToLong() const
    {
                                                                             ;


        return (long)m_ll;
    }







    wxLongLongNative operator+(const wxLongLongNative& ll) const
        { return wxLongLongNative(m_ll + ll.m_ll); }
    wxLongLongNative& operator+=(const wxLongLongNative& ll)
        { m_ll += ll.m_ll; return *this; }

    wxLongLongNative operator+(const long long ll) const
        { return wxLongLongNative(m_ll + ll); }
    wxLongLongNative& operator+=(const long long ll)
        { m_ll += ll; return *this; }


    wxLongLongNative& operator++()
        { m_ll++; return *this; }


    wxLongLongNative& operator++(int)
        { m_ll++; return *this; }


    wxLongLongNative operator-() const
        { return wxLongLongNative(-m_ll); }
    wxLongLongNative& Negate() { m_ll = -m_ll; return *this; }


    wxLongLongNative operator-(const wxLongLongNative& ll) const
        { return wxLongLongNative(m_ll - ll.m_ll); }
    wxLongLongNative& operator-=(const wxLongLongNative& ll)
        { m_ll -= ll.m_ll; return *this; }

    wxLongLongNative operator-(const long long ll) const
        { return wxLongLongNative(m_ll - ll); }
    wxLongLongNative& operator-=(const long long ll)
        { m_ll -= ll; return *this; }


    wxLongLongNative& operator--()
        { m_ll--; return *this; }


    wxLongLongNative& operator--(int)
        { m_ll--; return *this; }



    wxLongLongNative operator<<(int shift) const
        { return wxLongLongNative(m_ll << shift);; }
    wxLongLongNative& operator<<=(int shift)
        { m_ll <<= shift; return *this; }


    wxLongLongNative operator>>(int shift) const
        { return wxLongLongNative(m_ll >> shift);; }
    wxLongLongNative& operator>>=(int shift)
        { m_ll >>= shift; return *this; }


    wxLongLongNative operator&(const wxLongLongNative& ll) const
        { return wxLongLongNative(m_ll & ll.m_ll); }
    wxLongLongNative& operator&=(const wxLongLongNative& ll)
        { m_ll &= ll.m_ll; return *this; }

    wxLongLongNative operator|(const wxLongLongNative& ll) const
        { return wxLongLongNative(m_ll | ll.m_ll); }
    wxLongLongNative& operator|=(const wxLongLongNative& ll)
        { m_ll |= ll.m_ll; return *this; }

    wxLongLongNative operator^(const wxLongLongNative& ll) const
        { return wxLongLongNative(m_ll ^ ll.m_ll); }
    wxLongLongNative& operator^=(const wxLongLongNative& ll)
        { m_ll ^= ll.m_ll; return *this; }


    wxLongLongNative operator*(const wxLongLongNative& ll) const
        { return wxLongLongNative(m_ll * ll.m_ll); }
    wxLongLongNative operator*(long l) const
        { return wxLongLongNative(m_ll * l); }
    wxLongLongNative& operator*=(const wxLongLongNative& ll)
        { m_ll *= ll.m_ll; return *this; }
    wxLongLongNative& operator*=(long l)
        { m_ll *= l; return *this; }

    wxLongLongNative operator/(const wxLongLongNative& ll) const
        { return wxLongLongNative(m_ll / ll.m_ll); }
    wxLongLongNative operator/(long l) const
        { return wxLongLongNative(m_ll / l); }
    wxLongLongNative& operator/=(const wxLongLongNative& ll)
        { m_ll /= ll.m_ll; return *this; }
    wxLongLongNative& operator/=(long l)
        { m_ll /= l; return *this; }

    wxLongLongNative operator%(const wxLongLongNative& ll) const
        { return wxLongLongNative(m_ll % ll.m_ll); }
    wxLongLongNative operator%(long l) const
        { return wxLongLongNative(m_ll % l); }


    bool operator==(const wxLongLongNative& ll) const
        { return m_ll == ll.m_ll; }
    bool operator==(long l) const
        { return m_ll == l; }
    bool operator!=(const wxLongLongNative& ll) const
        { return m_ll != ll.m_ll; }
    bool operator!=(long l) const
        { return m_ll != l; }
    bool operator<(const wxLongLongNative& ll) const
        { return m_ll < ll.m_ll; }
    bool operator<(long l) const
        { return m_ll < l; }
    bool operator>(const wxLongLongNative& ll) const
        { return m_ll > ll.m_ll; }
    bool operator>(long l) const
        { return m_ll > l; }
    bool operator<=(const wxLongLongNative& ll) const
        { return m_ll <= ll.m_ll; }
    bool operator<=(long l) const
        { return m_ll <= l; }
    bool operator>=(const wxLongLongNative& ll) const
        { return m_ll >= ll.m_ll; }
    bool operator>=(long l) const
        { return m_ll >= l; }




    wxString ToString() const;


    void *asArray() const;






private:
    long long m_ll;
};


class wxULongLongNative
{
public:


    wxULongLongNative() { m_ll = 0; }

    wxULongLongNative(unsigned long long ll) { m_ll = ll; }

    wxULongLongNative(unsigned long hi, unsigned long lo)
    {

        m_ll = ((unsigned long long) hi) << 32;
        m_ll |= (unsigned long long) lo;
    }







    wxULongLongNative& operator=(unsigned long long ll)
        { m_ll = ll; return *this; }





    unsigned long GetHi() const
        { return (unsigned long)(m_ll >> 32); }

    unsigned long GetLo() const
        { return (unsigned long)m_ll; }


    unsigned long long GetValue() const { return m_ll; }


    unsigned long ToULong() const
    {
                                                                              ;


        return (unsigned long)m_ll;
    }



    wxULongLongNative operator+(const wxULongLongNative& ll) const
        { return wxULongLongNative(m_ll + ll.m_ll); }
    wxULongLongNative& operator+=(const wxULongLongNative& ll)
        { m_ll += ll.m_ll; return *this; }

    wxULongLongNative operator+(const unsigned long long ll) const
        { return wxULongLongNative(m_ll + ll); }
    wxULongLongNative& operator+=(const unsigned long long ll)
        { m_ll += ll; return *this; }


    wxULongLongNative& operator++()
        { m_ll++; return *this; }


    wxULongLongNative& operator++(int)
        { m_ll++; return *this; }


    wxULongLongNative operator-(const wxULongLongNative& ll) const
        { return wxULongLongNative(m_ll - ll.m_ll); }
    wxULongLongNative& operator-=(const wxULongLongNative& ll)
        { m_ll -= ll.m_ll; return *this; }

    wxULongLongNative operator-(const unsigned long long ll) const
        { return wxULongLongNative(m_ll - ll); }
    wxULongLongNative& operator-=(const unsigned long long ll)
        { m_ll -= ll; return *this; }


    wxULongLongNative& operator--()
        { m_ll--; return *this; }


    wxULongLongNative& operator--(int)
        { m_ll--; return *this; }



    wxULongLongNative operator<<(int shift) const
        { return wxULongLongNative(m_ll << shift);; }
    wxULongLongNative& operator<<=(int shift)
        { m_ll <<= shift; return *this; }


    wxULongLongNative operator>>(int shift) const
        { return wxULongLongNative(m_ll >> shift);; }
    wxULongLongNative& operator>>=(int shift)
        { m_ll >>= shift; return *this; }


    wxULongLongNative operator&(const wxULongLongNative& ll) const
        { return wxULongLongNative(m_ll & ll.m_ll); }
    wxULongLongNative& operator&=(const wxULongLongNative& ll)
        { m_ll &= ll.m_ll; return *this; }

    wxULongLongNative operator|(const wxULongLongNative& ll) const
        { return wxULongLongNative(m_ll | ll.m_ll); }
    wxULongLongNative& operator|=(const wxULongLongNative& ll)
        { m_ll |= ll.m_ll; return *this; }

    wxULongLongNative operator^(const wxULongLongNative& ll) const
        { return wxULongLongNative(m_ll ^ ll.m_ll); }
    wxULongLongNative& operator^=(const wxULongLongNative& ll)
        { m_ll ^= ll.m_ll; return *this; }


    wxULongLongNative operator*(const wxULongLongNative& ll) const
        { return wxULongLongNative(m_ll * ll.m_ll); }
    wxULongLongNative operator*(unsigned long l) const
        { return wxULongLongNative(m_ll * l); }
    wxULongLongNative& operator*=(const wxULongLongNative& ll)
        { m_ll *= ll.m_ll; return *this; }
    wxULongLongNative& operator*=(unsigned long l)
        { m_ll *= l; return *this; }

    wxULongLongNative operator/(const wxULongLongNative& ll) const
        { return wxULongLongNative(m_ll / ll.m_ll); }
    wxULongLongNative operator/(unsigned long l) const
        { return wxULongLongNative(m_ll / l); }
    wxULongLongNative& operator/=(const wxULongLongNative& ll)
        { m_ll /= ll.m_ll; return *this; }
    wxULongLongNative& operator/=(unsigned long l)
        { m_ll /= l; return *this; }

    wxULongLongNative operator%(const wxULongLongNative& ll) const
        { return wxULongLongNative(m_ll % ll.m_ll); }
    wxULongLongNative operator%(unsigned long l) const
        { return wxULongLongNative(m_ll % l); }


    bool operator==(const wxULongLongNative& ll) const
        { return m_ll == ll.m_ll; }
    bool operator==(unsigned long l) const
        { return m_ll == l; }
    bool operator!=(const wxULongLongNative& ll) const
        { return m_ll != ll.m_ll; }
    bool operator!=(unsigned long l) const
        { return m_ll != l; }
    bool operator<(const wxULongLongNative& ll) const
        { return m_ll < ll.m_ll; }
    bool operator<(unsigned long l) const
        { return m_ll < l; }
    bool operator>(const wxULongLongNative& ll) const
        { return m_ll > ll.m_ll; }
    bool operator>(unsigned long l) const
        { return m_ll > l; }
    bool operator<=(const wxULongLongNative& ll) const
        { return m_ll <= ll.m_ll; }
    bool operator<=(unsigned long l) const
        { return m_ll <= l; }
    bool operator>=(const wxULongLongNative& ll) const
        { return m_ll >= ll.m_ll; }
    bool operator>=(unsigned long l) const
        { return m_ll >= l; }




    wxString ToString() const;


    void *asArray() const;






private:
    unsigned long long m_ll;
};
# 899 "../wxX11/include/wx/longlong.h"
inline bool operator<(long l, const wxLongLong& ll) { return ll > l; }
inline bool operator>(long l, const wxLongLong& ll) { return ll < l; }
inline bool operator<=(long l, const wxLongLong& ll) { return ll >= l; }
inline bool operator>=(long l, const wxLongLong& ll) { return ll <= l; }
inline bool operator==(long l, const wxLongLong& ll) { return ll == l; }
inline bool operator!=(long l, const wxLongLong& ll) { return ll != l; }

inline wxLongLong operator+(long l, const wxLongLong& ll) { return ll + l; }
inline wxLongLong operator-(long l, const wxLongLong& ll)
{
    return wxLongLong(l) - ll;
}

inline bool operator<(unsigned long l, const wxULongLong& ull) { return ull > l; }
inline bool operator>(unsigned long l, const wxULongLong& ull) { return ull < l; }
inline bool operator<=(unsigned long l, const wxULongLong& ull) { return ull >= l; }
inline bool operator>=(unsigned long l, const wxULongLong& ull) { return ull <= l; }
inline bool operator==(unsigned long l, const wxULongLong& ull) { return ull == l; }
inline bool operator!=(unsigned long l, const wxULongLong& ull) { return ull != l; }

inline wxULongLong operator+(unsigned long l, const wxULongLong& ull) { return ull + l; }


inline wxULongLong operator-(unsigned long l, const wxULongLong& ull)
{
    return wxULongLong(l) - ull;
}
# 26 "../wxX11/include/wx/datetime.h" 2

class wxDateTime;
class wxTimeSpan;
class wxDateSpan;
# 116 "../wxX11/include/wx/datetime.h"
class wxDateTime;

extern const wxDateTime wxDefaultDateTime;






class wxDateTime
{
public:
# 136 "../wxX11/include/wx/datetime.h"
    typedef unsigned short wxDateTime_t;





    enum TZ
    {

        Local,






        GMT_12, GMT_11, GMT_10, GMT_9, GMT_8, GMT_7,
        GMT_6, GMT_5, GMT_4, GMT_3, GMT_2, GMT_1,
        GMT0,
        GMT1, GMT2, GMT3, GMT4, GMT5, GMT6,
        GMT7, GMT8, GMT9, GMT10, GMT11, GMT12,






        WET = GMT0,
        WEST = GMT1,
        CET = GMT1,
        CEST = GMT2,
        EET = GMT2,
        EEST = GMT3,
        MSK = GMT3,
        MSD = GMT4,


        AST = GMT_4,
        ADT = GMT_3,
        EST = GMT_5,
        EDT = GMT_4,
        CST = GMT_6,
        CDT = GMT_5,
        MST = GMT_7,
        MDT = GMT_6,
        PST = GMT_8,
        PDT = GMT_7,
        HST = GMT_10,
        AKST = GMT_9,
        AKDT = GMT_8,



        A_WST = GMT8,
        A_CST = GMT12 + 1,
        A_EST = GMT10,
        A_ESST = GMT11,





        UTC = GMT0
    };





    enum Calendar
    {
        Gregorian,
        Julian


    };
# 222 "../wxX11/include/wx/datetime.h"
    enum GregorianAdoption
    {
        Gr_Unknown,
        Gr_Standard,

        Gr_Alaska,
        Gr_Albania,

        Gr_Austria = Gr_Unknown,
        Gr_Austria_Brixen,
        Gr_Austria_Salzburg = Gr_Austria_Brixen,
        Gr_Austria_Tyrol = Gr_Austria_Brixen,
        Gr_Austria_Carinthia,
        Gr_Austria_Styria = Gr_Austria_Carinthia,

        Gr_Belgium,

        Gr_Bulgaria = Gr_Unknown,
        Gr_Bulgaria_1,
        Gr_Bulgaria_2,
        Gr_Bulgaria_3,

        Gr_Canada = Gr_Unknown,


        Gr_China = Gr_Unknown,
        Gr_China_1,
        Gr_China_2,

        Gr_Czechoslovakia,
        Gr_Denmark,
        Gr_Egypt,
        Gr_Estonia,
        Gr_Finland,

        Gr_France,
        Gr_France_Alsace,
        Gr_France_Lorraine,
        Gr_France_Strasbourg,

        Gr_Germany = Gr_Unknown,
        Gr_Germany_Catholic,
        Gr_Germany_Prussia,
        Gr_Germany_Protestant,

        Gr_GreatBritain,

        Gr_Greece,
        Gr_Hungary,
        Gr_Ireland = Gr_GreatBritain,
        Gr_Italy = Gr_Standard,

        Gr_Japan = Gr_Unknown,
        Gr_Japan_1,
        Gr_Japan_2,
        Gr_Japan_3,

        Gr_Latvia,
        Gr_Lithuania,
        Gr_Luxemburg,
        Gr_Netherlands = Gr_Belgium,






        Gr_Netherlands_Groningen,
        Gr_Netherlands_Gelderland,
        Gr_Netherlands_Utrecht,
        Gr_Netherlands_Friesland,

        Gr_Norway = Gr_Denmark,
        Gr_Poland = Gr_Standard,
        Gr_Portugal = Gr_Standard,
        Gr_Romania,
        Gr_Russia,
        Gr_Scotland = Gr_GreatBritain,
        Gr_Spain = Gr_Standard,
# 319 "../wxX11/include/wx/datetime.h"
        Gr_Sweden = Gr_Finland,

        Gr_Switzerland = Gr_Unknown,
        Gr_Switzerland_Catholic,
        Gr_Switzerland_Protestant,

        Gr_Turkey,
        Gr_USA = Gr_GreatBritain,
        Gr_Wales = Gr_GreatBritain,
        Gr_Yugoslavia
    };






    enum Country
    {
        Country_Unknown,
        Country_Default,







        Country_WesternEurope_Start,
        Country_EEC = Country_WesternEurope_Start,
        France,
        Germany,
        UK,
        Country_WesternEurope_End = UK,

        Russia,

        USA
    };


    enum Month
    {
        Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec, Inv_Month
    };


    enum WeekDay
    {
        Sun, Mon, Tue, Wed, Thu, Fri, Sat, Inv_WeekDay
    };


    enum Year
    {
        Inv_Year = (-32767-1)
    };


    enum NameFlags
    {
        Name_Full = 0x01,
        Name_Abbr = 0x02
    };


    enum WeekFlags
    {
        Default_First,
        Monday_First,
        Sunday_First
    };






    class TimeZone
    {
    public:
        TimeZone(TZ tz);
        TimeZone(wxDateTime_t offset = 0) { m_offset = offset; }

        long GetOffset() const { return m_offset; }

    private:

        long m_offset;
    };
# 417 "../wxX11/include/wx/datetime.h"
    struct Tm
    {
        wxDateTime_t msec, sec, min, hour, mday;
        Month mon;
        int year;


        Tm();


        Tm(const struct tm& tm, const TimeZone& tz);


        bool IsValid() const;


        WeekDay GetWeekDay()
        {
            if ( wday == Inv_WeekDay )
                ComputeWeekDay();

            return (WeekDay)wday;
        }


        void AddMonths(int monDiff);


        void AddDays(int dayDiff);

    private:

        void ComputeWeekDay();


        TimeZone m_tz;



        wxDateTime_t wday, yday;
    };





    static void SetCountry(Country country);

    static Country GetCountry();



    static bool IsWestEuropeanCountry(Country country = Country_Default);


    static int GetCurrentYear(Calendar cal = Gregorian);





    static int ConvertYearToBC(int year);


    static Month GetCurrentMonth(Calendar cal = Gregorian);


    static bool IsLeapYear(int year = Inv_Year, Calendar cal = Gregorian);


    static int GetCentury(int year = Inv_Year);



    static wxDateTime_t GetNumberOfDays(int year, Calendar cal = Gregorian);



    static wxDateTime_t GetNumberOfDays(Month month,
                                        int year = Inv_Year,
                                        Calendar cal = Gregorian);



    static wxString GetMonthName(Month month,
                                 NameFlags flags = Name_Full);



    static wxString GetWeekDayName(WeekDay weekday,
                                   NameFlags flags = Name_Full);


    static void GetAmPmStrings(wxString *am, wxString *pm);


    static bool IsDSTApplicable(int year = Inv_Year,
                                Country country = Country_Default);




    static wxDateTime GetBeginDST(int year = Inv_Year,
                                  Country country = Country_Default);



    static wxDateTime GetEndDST(int year = Inv_Year,
                                Country country = Country_Default);


    static inline wxDateTime Now();



    static wxDateTime UNow();



    static inline wxDateTime Today();







    wxDateTime() { m_time = wxLongLong((long)(2147483647L * 2UL + 1), (2147483647L * 2UL + 1)); }




    inline wxDateTime(time_t timet);


    inline wxDateTime(const struct tm& tm);

    inline wxDateTime(const Tm& tm);


    inline wxDateTime(double jdn);


    inline wxDateTime(wxDateTime_t hour,
                      wxDateTime_t minute = 0,
                      wxDateTime_t second = 0,
                      wxDateTime_t millisec = 0);

    inline wxDateTime(wxDateTime_t day,
                      Month month,
                      int year = Inv_Year,
                      wxDateTime_t hour = 0,
                      wxDateTime_t minute = 0,
                      wxDateTime_t second = 0,
                      wxDateTime_t millisec = 0);
# 583 "../wxX11/include/wx/datetime.h"
    inline wxDateTime& SetToCurrent();




    inline wxDateTime& Set(time_t timet);



    wxDateTime& Set(const struct tm& tm);


    inline wxDateTime& Set(const Tm& tm);


    wxDateTime& Set(double jdn);


    wxDateTime& Set(wxDateTime_t hour,
                    wxDateTime_t minute = 0,
                    wxDateTime_t second = 0,
                    wxDateTime_t millisec = 0);



    wxDateTime& Set(wxDateTime_t day,
                    Month month,
                    int year = Inv_Year,
                    wxDateTime_t hour = 0,
                    wxDateTime_t minute = 0,
                    wxDateTime_t second = 0,
                    wxDateTime_t millisec = 0);


    wxDateTime& ResetTime();





    wxDateTime& SetYear(int year);

    wxDateTime& SetMonth(Month month);

    wxDateTime& SetDay(wxDateTime_t day);

    wxDateTime& SetHour(wxDateTime_t hour);

    wxDateTime& SetMinute(wxDateTime_t minute);

    wxDateTime& SetSecond(wxDateTime_t second);

    wxDateTime& SetMillisecond(wxDateTime_t millisecond);


    wxDateTime& operator=(time_t timet) { return Set(timet); }


    wxDateTime& operator=(const struct tm& tm) { return Set(tm); }


    wxDateTime& operator=(const Tm& tm) { return Set(tm); }
# 654 "../wxX11/include/wx/datetime.h"
    wxDateTime& SetToWeekDayInSameWeek(WeekDay weekday);
    inline wxDateTime GetWeekDayInSameWeek(WeekDay weekday) const;


    wxDateTime& SetToNextWeekDay(WeekDay weekday);
    inline wxDateTime GetNextWeekDay(WeekDay weekday) const;


    wxDateTime& SetToPrevWeekDay(WeekDay weekday);
    inline wxDateTime GetPrevWeekDay(WeekDay weekday) const;





    bool SetToWeekDay(WeekDay weekday,
                      int n = 1,
                      Month month = Inv_Month,
                      int year = Inv_Year);
    inline wxDateTime GetWeekDay(WeekDay weekday,
                                 int n = 1,
                                 Month month = Inv_Month,
                                 int year = Inv_Year) const;


    inline bool SetToLastWeekDay(WeekDay weekday,
                                 Month month = Inv_Month,
                                 int year = Inv_Year);
    inline wxDateTime GetLastWeekDay(WeekDay weekday,
                                     Month month = Inv_Month,
                                     int year = Inv_Year);




    bool SetToTheWeek(wxDateTime_t numWeek, WeekDay weekday = Mon);
    inline wxDateTime GetWeek(wxDateTime_t numWeek, WeekDay weekday = Mon) const;



    wxDateTime& SetToLastMonthDay(Month month = Inv_Month,
                                  int year = Inv_Year);
    inline wxDateTime GetLastMonthDay(Month month = Inv_Month,
                                      int year = Inv_Year) const;


    wxDateTime& SetToYearDay(wxDateTime_t yday);
    inline wxDateTime GetYearDay(wxDateTime_t yday) const;
# 727 "../wxX11/include/wx/datetime.h"
    double GetJulianDayNumber() const;
    double GetJDN() const { return GetJulianDayNumber(); }




    double GetModifiedJulianDayNumber() const { return GetJDN() - 2400000.5; }
    double GetMJD() const { return GetModifiedJulianDayNumber(); }


    double GetRataDie() const;
# 757 "../wxX11/include/wx/datetime.h"
    inline wxDateTime ToTimezone(const TimeZone& tz, bool noDST = 0) const;
    wxDateTime& MakeTimezone(const TimeZone& tz, bool noDST = 0);


    wxDateTime ToGMT(bool noDST = 0) const { return ToTimezone(GMT0, noDST); }
    wxDateTime& MakeGMT(bool noDST = 0) { return MakeTimezone(GMT0, noDST); }






    int IsDST(Country country = Country_Default) const;
# 779 "../wxX11/include/wx/datetime.h"
    inline bool IsValid() const { return m_time != wxDefaultDateTime.m_time; }






    Tm GetTm(const TimeZone& tz = Local) const;



    inline time_t GetTicks() const;


    int GetYear(const TimeZone& tz = Local) const
            { return GetTm(tz).year; }

    Month GetMonth(const TimeZone& tz = Local) const
            { return (Month)GetTm(tz).mon; }

    wxDateTime_t GetDay(const TimeZone& tz = Local) const
            { return GetTm(tz).mday; }

    WeekDay GetWeekDay(const TimeZone& tz = Local) const
            { return GetTm(tz).GetWeekDay(); }

    wxDateTime_t GetHour(const TimeZone& tz = Local) const
            { return GetTm(tz).hour; }

    wxDateTime_t GetMinute(const TimeZone& tz = Local) const
            { return GetTm(tz).min; }

    wxDateTime_t GetSecond(const TimeZone& tz = Local) const
            { return GetTm(tz).sec; }

    wxDateTime_t GetMillisecond(const TimeZone& tz = Local) const
            { return GetTm(tz).msec; }


    wxDateTime_t GetDayOfYear(const TimeZone& tz = Local) const;


    wxDateTime_t GetWeekOfYear(WeekFlags flags = Monday_First,
                               const TimeZone& tz = Local) const;


    wxDateTime_t GetWeekOfMonth(WeekFlags flags = Monday_First,
                                const TimeZone& tz = Local) const;



    bool IsWorkDay(Country country = Country_Default) const;







    bool IsGregorianDate(GregorianAdoption country = Gr_Standard) const;





    inline bool IsEqualTo(const wxDateTime& datetime) const;


    inline bool IsEarlierThan(const wxDateTime& datetime) const;


    inline bool IsLaterThan(const wxDateTime& datetime) const;


    inline bool IsStrictlyBetween(const wxDateTime& t1,
                                  const wxDateTime& t2) const;


    inline bool IsBetween(const wxDateTime& t1, const wxDateTime& t2) const;


    inline bool IsSameDate(const wxDateTime& dt) const;


    inline bool IsSameTime(const wxDateTime& dt) const;


    inline bool IsEqualUpTo(const wxDateTime& dt, const wxTimeSpan& ts) const;





    inline wxDateTime Add(const wxTimeSpan& diff) const;

    inline wxDateTime& Add(const wxTimeSpan& diff);

    inline wxDateTime& operator+=(const wxTimeSpan& diff);


    inline wxDateTime Subtract(const wxTimeSpan& diff) const;

    inline wxDateTime& Subtract(const wxTimeSpan& diff);

    inline wxDateTime& operator-=(const wxTimeSpan& diff);


    inline wxDateTime Add(const wxDateSpan& diff) const;

    wxDateTime& Add(const wxDateSpan& diff);

    inline wxDateTime& operator+=(const wxDateSpan& diff);


    inline wxDateTime Subtract(const wxDateSpan& diff) const;

    inline wxDateTime& Subtract(const wxDateSpan& diff);

    inline wxDateTime& operator-=(const wxDateSpan& diff);


    inline wxTimeSpan Subtract(const wxDateTime& dt) const;
# 909 "../wxX11/include/wx/datetime.h"
    const char *ParseRfc822Date(const char* date);




    const char *ParseFormat(const char *date,
                              const char *format = "%c",
                              const wxDateTime& dateDef = wxDefaultDateTime);


    const char *ParseDateTime(const char *datetime);


    const char *ParseDate(const char *date);

    const char *ParseTime(const char *time);





    wxString Format(const char *format = "%c",
                    const TimeZone& tz = Local) const;

    wxString FormatDate() const { return Format("%x"); }

    wxString FormatTime() const { return Format("%X"); }


    wxString FormatISODate() const { return Format("%Y-%m-%d"); }


    wxString FormatISOTime() const { return Format("%H:%M:%S"); }





    wxDateTime(const wxLongLong& time) { m_time = time; }


    inline wxLongLong GetValue() const;


    static time_t GetTimeNow() { return time((time_t *)__null); }


    static struct tm *GetTmNow()
    {
        time_t t = GetTimeNow();
        return localtime(&t);
    }

private:



    static Country ms_country;




    static const long TIME_T_FACTOR;



    inline bool IsInStdRange() const;




    wxLongLong m_time;
};







class wxTimeSpan
{
public:




    static wxTimeSpan Seconds(long sec) { return wxTimeSpan(0, 0, sec); }
    static wxTimeSpan Second() { return Seconds(1); }


    static wxTimeSpan Minutes(long min) { return wxTimeSpan(0, min, 0 ); }
    static wxTimeSpan Minute() { return Minutes(1); }


    static wxTimeSpan Hours(long hours) { return wxTimeSpan(hours, 0, 0); }
    static wxTimeSpan Hour() { return Hours(1); }


    static wxTimeSpan Days(long days) { return Hours(24 * days); }
    static wxTimeSpan Day() { return Days(1); }


    static wxTimeSpan Weeks(long days) { return Days(7 * days); }
    static wxTimeSpan Week() { return Weeks(1); }


    wxTimeSpan() { }




    inline wxTimeSpan(long hours,
                      long minutes = 0,
                      long seconds = 0,
                      long milliseconds = 0);
# 1034 "../wxX11/include/wx/datetime.h"
    inline wxTimeSpan Add(const wxTimeSpan& diff) const;

    inline wxTimeSpan& Add(const wxTimeSpan& diff);

    wxTimeSpan& operator+=(const wxTimeSpan& diff) { return Add(diff); }


    inline wxTimeSpan Subtract(const wxTimeSpan& diff) const;

    inline wxTimeSpan& Subtract(const wxTimeSpan& diff);

    wxTimeSpan& operator-=(const wxTimeSpan& diff) { return Subtract(diff); }


    inline wxTimeSpan Multiply(int n) const;

    inline wxTimeSpan& Multiply(int n);

    wxTimeSpan& operator*=(int n) { return Multiply(n); }


    wxTimeSpan Negate() const { return wxTimeSpan(-GetValue()); }

    wxTimeSpan& Neg() { m_diff = -GetValue(); return *this; }

    wxTimeSpan& operator-() { return Neg(); }



    inline wxTimeSpan Abs() const;
# 1072 "../wxX11/include/wx/datetime.h"
    bool IsNull() const { return m_diff == 0l; }

    bool operator!() const { return !IsNull(); }


    bool IsPositive() const { return m_diff > 0l; }


    bool IsNegative() const { return m_diff < 0l; }


    inline bool IsEqualTo(const wxTimeSpan& ts) const;



    inline bool IsLongerThan(const wxTimeSpan& ts) const;



    bool IsShorterThan(const wxTimeSpan& t) const { return !IsLongerThan(t); }





    inline int GetWeeks() const;

    inline int GetDays() const;

    inline int GetHours() const;

    inline int GetMinutes() const;

    inline wxLongLong GetSeconds() const;

    wxLongLong GetMilliseconds() const { return m_diff; }
# 1118 "../wxX11/include/wx/datetime.h"
    wxString Format(const char *format = "%H:%M:%S") const;





    wxTimeSpan(const wxLongLong& diff) { m_diff = diff; }


    wxLongLong GetValue() const { return m_diff; }

private:

    wxLongLong m_diff;
};
# 1163 "../wxX11/include/wx/datetime.h"
class wxDateSpan
{
public:




    wxDateSpan(int years = 0, int months = 0, int weeks = 0, int days = 0)
    {
        m_years = years;
        m_months = months;
        m_weeks = weeks;
        m_days = days;
    }


    static wxDateSpan Days(int days) { return wxDateSpan(0, 0, 0, days); }
    static wxDateSpan Day() { return Days(1); }


    static wxDateSpan Weeks(int weeks) { return wxDateSpan(0, 0, weeks, 0); }
    static wxDateSpan Week() { return Weeks(1); }


    static wxDateSpan Months(int mon) { return wxDateSpan(0, mon, 0, 0); }
    static wxDateSpan Month() { return Months(1); }


    static wxDateSpan Years(int years) { return wxDateSpan(years, 0, 0, 0); }
    static wxDateSpan Year() { return Years(1); }
# 1202 "../wxX11/include/wx/datetime.h"
    wxDateSpan& SetYears(int n) { m_years = n; return *this; }

    wxDateSpan& SetMonths(int n) { m_months = n; return *this; }

    wxDateSpan& SetWeeks(int n) { m_weeks = n; return *this; }

    wxDateSpan& SetDays(int n) { m_days = n; return *this; }


    int GetYears() const { return m_years; }

    int GetMonths() const { return m_months; }

    int GetWeeks() const { return m_weeks; }

    int GetDays() const { return m_days; }

    int GetTotalDays() const { return 7*m_weeks + m_days; }





    inline wxDateSpan Add(const wxDateSpan& other) const;

    inline wxDateSpan& Add(const wxDateSpan& other);

    inline wxDateSpan& operator+=(const wxDateSpan& other);


    inline wxDateSpan Subtract(const wxDateSpan& other) const;

    inline wxDateSpan& Subtract(const wxDateSpan& other);

    inline wxDateSpan& operator-=(const wxDateSpan& other);


    inline wxDateSpan Negate() const;

    inline wxDateSpan& Neg();

    wxDateSpan& operator-() { return Neg(); }


    inline wxDateSpan Multiply(int factor) const;

    inline wxDateSpan& Multiply(int factor);

    inline wxDateSpan& operator*=(int factor) { return Multiply(factor); }

private:
    int m_years,
        m_months,
        m_weeks,
        m_days;
};





# 1 "../wxX11/include/wx/dynarray.h" 1
# 1264 "../wxX11/include/wx/datetime.h" 2

typedef wxDateTime _wxObjArraywxDateTimeArray; typedef int ( *CMPFUNC_wxObjArraywxDateTimeArray)(_wxObjArraywxDateTimeArray **pItem1, _wxObjArraywxDateTimeArray **pItem2); class wxDateTimeArray : public wxArrayPtrVoid { typedef int ( *CMPFUNCwxArrayPtrVoid)(void **pItem1, void **pItem2); public: wxDateTimeArray() { } wxDateTimeArray(const wxDateTimeArray& src); wxDateTimeArray& operator=(const wxDateTimeArray& src); ~wxDateTimeArray(); _wxObjArraywxDateTimeArray& operator[](size_t uiIndex) const { return *(_wxObjArraywxDateTimeArray*)wxArrayPtrVoid::Item(uiIndex); } _wxObjArraywxDateTimeArray& Item(size_t uiIndex) const { return *(_wxObjArraywxDateTimeArray*)wxArrayPtrVoid::Item(uiIndex); } _wxObjArraywxDateTimeArray& Last() const { return *(_wxObjArraywxDateTimeArray*)(wxArrayPtrVoid::Item(Count() - 1)); } int Index(const _wxObjArraywxDateTimeArray& Item, bool bFromEnd = 0) const; void Add(const _wxObjArraywxDateTimeArray& Item); void Add(const _wxObjArraywxDateTimeArray* pItem) { wxArrayPtrVoid::Add((_wxObjArraywxDateTimeArray*)pItem); } void Insert(const _wxObjArraywxDateTimeArray& Item, size_t uiIndex); void Insert(const _wxObjArraywxDateTimeArray* pItem, size_t uiIndex) { wxArrayPtrVoid::Insert((_wxObjArraywxDateTimeArray*)pItem, uiIndex); } void Empty() { DoEmpty(); wxArrayPtrVoid::Empty(); } void Clear() { DoEmpty(); wxArrayPtrVoid::Clear(); } _wxObjArraywxDateTimeArray* Detach(size_t uiIndex) { _wxObjArraywxDateTimeArray* p = (_wxObjArraywxDateTimeArray*)wxArrayPtrVoid::Item(uiIndex); wxArrayPtrVoid::RemoveAt(uiIndex); return p; } void RemoveAt(size_t uiIndex); void Sort(CMPFUNC_wxObjArraywxDateTimeArray fCmp) { wxArrayPtrVoid::Sort((CMPFUNCwxArrayPtrVoid)fCmp); } private: void DoEmpty(); void DoCopy(const wxDateTimeArray& src); };
# 1276 "../wxX11/include/wx/datetime.h"
class wxDateTimeHolidayAuthority;
typedef wxDateTimeHolidayAuthority * _wxArraywxHolidayAuthoritiesArray; struct wxAssert_wxHolidayAuthoritiesArray { unsigned int TypeTooBigToBeStoredInwxBaseArrayPtrVoid: sizeof(_wxArraywxHolidayAuthoritiesArray) <= sizeof(wxBaseArrayPtrVoid::base_type); }; typedef int ( *CMPFUNC_wxArraywxHolidayAuthoritiesArray)(_wxArraywxHolidayAuthoritiesArray *pItem1, _wxArraywxHolidayAuthoritiesArray *pItem2); class wxHolidayAuthoritiesArray : public wxBaseArrayPtrVoid { public: wxHolidayAuthoritiesArray() { } ~wxHolidayAuthoritiesArray() { } wxHolidayAuthoritiesArray& operator=(const wxHolidayAuthoritiesArray& src) { wxBaseArrayPtrVoid* temp = (wxBaseArrayPtrVoid*) this; (*temp) = ((const wxBaseArrayPtrVoid&)src); return *this; } _wxArraywxHolidayAuthoritiesArray& operator[](size_t uiIndex) const { return (_wxArraywxHolidayAuthoritiesArray&)(wxBaseArrayPtrVoid::Item(uiIndex)); } _wxArraywxHolidayAuthoritiesArray& Item(size_t uiIndex) const { return (_wxArraywxHolidayAuthoritiesArray&)(wxBaseArrayPtrVoid::Item(uiIndex)); } _wxArraywxHolidayAuthoritiesArray& Last() const { return (_wxArraywxHolidayAuthoritiesArray&)(wxBaseArrayPtrVoid::Item(Count() - 1)); } int Index(_wxArraywxHolidayAuthoritiesArray Item, bool bFromEnd = 0) const { return wxBaseArrayPtrVoid::Index(Item, bFromEnd); } void Add(_wxArraywxHolidayAuthoritiesArray Item) { wxBaseArrayPtrVoid::Add(Item); } void Insert(_wxArraywxHolidayAuthoritiesArray Item, size_t uiIndex) { wxBaseArrayPtrVoid::Insert(Item, uiIndex) ; } void RemoveAt(size_t uiIndex) { wxBaseArrayPtrVoid::RemoveAt(uiIndex); } void Remove(_wxArraywxHolidayAuthoritiesArray Item) { int iIndex = Index(Item); if (!(iIndex != (-1))) {; return; }; wxBaseArrayPtrVoid::RemoveAt((size_t)iIndex); } void Sort(CMPFUNC_wxArraywxHolidayAuthoritiesArray fCmp) { wxBaseArrayPtrVoid::Sort((CMPFUNC)fCmp); } };

class wxDateTimeHolidaysModule;
class wxDateTimeHolidayAuthority
{
friend class wxDateTimeHolidaysModule;
public:

    static bool IsHoliday(const wxDateTime& dt);



    static size_t GetHolidaysInRange(const wxDateTime& dtStart,
                                     const wxDateTime& dtEnd,
                                     wxDateTimeArray& holidays);


    static void ClearAllAuthorities();



    static void AddAuthority(wxDateTimeHolidayAuthority *auth);

protected:

    virtual bool DoIsHoliday(const wxDateTime& dt) const = 0;
# 1312 "../wxX11/include/wx/datetime.h"
    virtual size_t DoGetHolidaysInRange(const wxDateTime& dtStart,
                                        const wxDateTime& dtEnd,
                                        wxDateTimeArray& holidays) const = 0;

private:

    static wxHolidayAuthoritiesArray ms_authorities;
};


class wxDateTimeWorkDays : public wxDateTimeHolidayAuthority
{
protected:
    virtual bool DoIsHoliday(const wxDateTime& dt) const;
    virtual size_t DoGetHolidaysInRange(const wxDateTime& dtStart,
                                        const wxDateTime& dtEnd,
                                        wxDateTimeArray& holidays) const;
};
# 1341 "../wxX11/include/wx/datetime.h"
# 1 "../wxX11/include/wx/datetime.inl" 1
# 40 "../wxX11/include/wx/datetime.inl"
    const long wxDateTime::TIME_T_FACTOR = 1000l;


inline bool wxDateTime::IsInStdRange() const
{
    return m_time >= 0l && (m_time / TIME_T_FACTOR) < 2147483647L;
}


inline wxDateTime wxDateTime::Now()
{
    return wxDateTime(*GetTmNow());
}


inline wxDateTime wxDateTime::Today()
{
    struct tm *time = GetTmNow();
    time->tm_hour = 0;
    time->tm_min = 0;
    time->tm_sec = 0;

    return wxDateTime(*time);
}


inline wxDateTime& wxDateTime::Set(time_t timet)
{

    m_time = timet - 0 ;
    m_time *= TIME_T_FACTOR;

    return *this;
}


inline wxDateTime& wxDateTime::SetToCurrent()
{
    *this = Now();
    return *this;
}


inline wxDateTime::wxDateTime(time_t timet)
{
    Set(timet);
}


inline wxDateTime::wxDateTime(const struct tm& tm)
{
    Set(tm);
}

inline wxDateTime::wxDateTime(const Tm& tm)
{
    Set(tm);
}

inline wxDateTime::wxDateTime(double jdn)
{
    Set(jdn);
}

inline wxDateTime& wxDateTime::Set(const Tm& tm)
{
                                                                     ;

    return Set(tm.mday, (Month)tm.mon, tm.year, tm.hour, tm.min, tm.sec);
}

inline wxDateTime::wxDateTime(wxDateTime_t hour,
                              wxDateTime_t minute,
                              wxDateTime_t second,
                              wxDateTime_t millisec)
{
    Set(hour, minute, second, millisec);
}

inline wxDateTime::wxDateTime(wxDateTime_t day,
                              Month month,
                              int year,
                              wxDateTime_t hour,
                              wxDateTime_t minute,
                              wxDateTime_t second,
                              wxDateTime_t millisec)
{
    Set(day, month, year, hour, minute, second, millisec);
}





inline wxLongLong wxDateTime::GetValue() const
{
                                                      ;

    return m_time;
}

inline time_t wxDateTime::GetTicks() const
{
                                                      ;
    if ( !IsInStdRange() )
    {
        return (time_t)-1;
    }

    return (time_t)((m_time / (long)TIME_T_FACTOR).GetLo())+0 ;
}

inline bool wxDateTime::SetToLastWeekDay(WeekDay weekday,
                                         Month month,
                                         int year)
{
    return SetToWeekDay(weekday, -1, month, year);
}

inline wxDateTime wxDateTime::GetWeekDayInSameWeek(WeekDay weekday) const
{
    return wxDateTime(*this).SetToWeekDayInSameWeek(weekday);
}

inline wxDateTime wxDateTime::GetNextWeekDay(WeekDay weekday) const
{
    return wxDateTime(*this).SetToNextWeekDay(weekday);
}

inline wxDateTime wxDateTime::GetPrevWeekDay(WeekDay weekday) const
{
    return wxDateTime(*this).SetToPrevWeekDay(weekday);
}

inline wxDateTime wxDateTime::GetWeekDay(WeekDay weekday,
                                         int n,
                                         Month month,
                                         int year) const
{
    wxDateTime dt(*this);

    return dt.SetToWeekDay(weekday, n, month, year) ? dt : wxDefaultDateTime;
}

inline wxDateTime wxDateTime::GetLastWeekDay(WeekDay weekday,
                                             Month month,
                                             int year)
{
    wxDateTime dt(*this);

    return dt.SetToLastWeekDay(weekday, month, year) ? dt : wxDefaultDateTime;
}

inline wxDateTime wxDateTime::GetWeek(wxDateTime_t numWeek,
                                      WeekDay weekday) const
{
    wxDateTime dt(*this);

    return dt.SetToTheWeek(numWeek, weekday) ? dt : wxDefaultDateTime;
}

inline wxDateTime wxDateTime::GetLastMonthDay(Month month, int year) const
{
    return wxDateTime(*this).SetToLastMonthDay(month, year);
}

inline wxDateTime wxDateTime::GetYearDay(wxDateTime_t yday) const
{
    return wxDateTime(*this).SetToYearDay(yday);
}





inline bool wxDateTime::IsEqualTo(const wxDateTime& datetime) const
{
                                                                            ;

    return m_time == datetime.m_time;
}

inline bool wxDateTime::IsEarlierThan(const wxDateTime& datetime) const
{
                                                                            ;

    return m_time < datetime.m_time;
}

inline bool wxDateTime::IsLaterThan(const wxDateTime& datetime) const
{
                                                                            ;

    return m_time > datetime.m_time;
}

inline bool wxDateTime::IsStrictlyBetween(const wxDateTime& t1,
                                          const wxDateTime& t2) const
{

    return IsLaterThan(t1) && IsEarlierThan(t2);
}

inline bool wxDateTime::IsBetween(const wxDateTime& t1,
                                  const wxDateTime& t2) const
{

    return IsEqualTo(t1) || IsEqualTo(t2) || IsStrictlyBetween(t1, t2);
}

inline bool wxDateTime::IsSameDate(const wxDateTime& dt) const
{
    Tm tm1 = GetTm(),
       tm2 = dt.GetTm();

    return tm1.year == tm2.year &&
           tm1.mon == tm2.mon &&
           tm1.mday == tm2.mday;
}

inline bool wxDateTime::IsSameTime(const wxDateTime& dt) const
{





    Tm tm1 = GetTm(),
       tm2 = dt.GetTm();

    return tm1.hour == tm2.hour &&
           tm1.min == tm2.min &&
           tm1.sec == tm2.sec &&
           tm1.msec == tm2.msec;
}

inline bool wxDateTime::IsEqualUpTo(const wxDateTime& dt,
                                    const wxTimeSpan& ts) const
{
    return IsBetween(dt.Subtract(ts), dt.Add(ts));
}





inline wxDateTime wxDateTime::Add(const wxTimeSpan& diff) const
{
                                                      ;

    return wxDateTime(m_time + diff.GetValue());
}

inline wxDateTime& wxDateTime::Add(const wxTimeSpan& diff)
{
                                                      ;

    m_time += diff.GetValue();

    return *this;
}

inline wxDateTime& wxDateTime::operator+=(const wxTimeSpan& diff)
{
    return Add(diff);
}

inline wxDateTime wxDateTime::Subtract(const wxTimeSpan& diff) const
{
                                                      ;

    return wxDateTime(m_time - diff.GetValue());
}

inline wxDateTime& wxDateTime::Subtract(const wxTimeSpan& diff)
{
                                                      ;

    m_time -= diff.GetValue();

    return *this;
}

inline wxDateTime& wxDateTime::operator-=(const wxTimeSpan& diff)
{
    return Subtract(diff);
}

inline wxTimeSpan wxDateTime::Subtract(const wxDateTime& datetime) const
{
                                                                            ;

    return wxTimeSpan(GetValue() - datetime.GetValue());
}

inline wxDateTime wxDateTime::Add(const wxDateSpan& diff) const
{
    return wxDateTime(*this).Add(diff);
}

inline wxDateTime& wxDateTime::Subtract(const wxDateSpan& diff)
{
    return Add(diff.Negate());
}

inline wxDateTime wxDateTime::Subtract(const wxDateSpan& diff) const
{
    return wxDateTime(*this).Subtract(diff);
}

inline wxDateTime& wxDateTime::operator-=(const wxDateSpan& diff)
{
    return Subtract(diff);
}

inline wxDateTime& wxDateTime::operator+=(const wxDateSpan& diff)
{
    return Add(diff);
}





inline wxDateTime wxDateTime::ToTimezone(const wxDateTime::TimeZone& tz,
                                         bool noDST) const
{
    return wxDateTime(*this).MakeTimezone(tz, noDST);
}





inline wxTimeSpan::wxTimeSpan(long hours,
                              long minutes,
                              long seconds,
                              long milliseconds)
{

    m_diff = hours;
    m_diff *= 60l;
    m_diff += minutes;
    m_diff *= 60l;
    m_diff += seconds;
    m_diff *= 1000l;
    m_diff += milliseconds;
}





inline wxLongLong wxTimeSpan::GetSeconds() const
{
    return m_diff / 1000l;
}

inline int wxTimeSpan::GetMinutes() const
{
    return (GetSeconds() / 60l).GetLo();
}

inline int wxTimeSpan::GetHours() const
{
    return GetMinutes() / 60;
}

inline int wxTimeSpan::GetDays() const
{
    return GetHours() / 24;
}

inline int wxTimeSpan::GetWeeks() const
{
    return GetDays() / 7;
}





inline wxTimeSpan wxTimeSpan::Add(const wxTimeSpan& diff) const
{
    return wxTimeSpan(m_diff + diff.GetValue());
}

inline wxTimeSpan& wxTimeSpan::Add(const wxTimeSpan& diff)
{
    m_diff += diff.GetValue();

    return *this;
}

inline wxTimeSpan wxTimeSpan::Subtract(const wxTimeSpan& diff) const
{
    return wxTimeSpan(m_diff - diff.GetValue());
}

inline wxTimeSpan& wxTimeSpan::Subtract(const wxTimeSpan& diff)
{
    m_diff -= diff.GetValue();

    return *this;
}

inline wxTimeSpan& wxTimeSpan::Multiply(int n)
{
    m_diff *= (long)n;

    return *this;
}

inline wxTimeSpan wxTimeSpan::Multiply(int n) const
{
    return wxTimeSpan(m_diff * (long)n);
}

inline wxTimeSpan wxTimeSpan::Abs() const
{
    return wxTimeSpan(GetValue().Abs());
}

inline bool wxTimeSpan::IsEqualTo(const wxTimeSpan& ts) const
{
    return GetValue() == ts.GetValue();
}

inline bool wxTimeSpan::IsLongerThan(const wxTimeSpan& ts) const
{
    return GetValue().Abs() > ts.GetValue().Abs();
}





inline wxDateSpan& wxDateSpan::operator+=(const wxDateSpan& other)
{
    m_years += other.m_years;
    m_months += other.m_months;
    m_weeks += other.m_weeks;
    m_days += other.m_days;

    return *this;
}

inline wxDateSpan& wxDateSpan::Add(const wxDateSpan& other)
{
    return *this += other;
}

inline wxDateSpan wxDateSpan::Add(const wxDateSpan& other) const
{
    wxDateSpan ds(*this);
    ds.Add(other);
    return ds;
}

inline wxDateSpan& wxDateSpan::Multiply(int factor)
{
    m_years *= factor;
    m_months *= factor;
    m_weeks *= factor;
    m_days *= factor;

    return *this;
}

inline wxDateSpan wxDateSpan::Multiply(int factor) const
{
    wxDateSpan ds(*this);
    ds.Multiply(factor);
    return ds;
}

inline wxDateSpan wxDateSpan::Negate() const
{
    return wxDateSpan(-m_years, -m_months, -m_weeks, -m_days);
}

inline wxDateSpan& wxDateSpan::Neg()
{
    m_years = -m_years;
    m_months = -m_months;
    m_weeks = -m_weeks;
    m_days = -m_days;

    return *this;
}

inline wxDateSpan& wxDateSpan::operator-=(const wxDateSpan& other)
{
    return *this += other.Negate();
}

inline wxDateSpan& wxDateSpan::Subtract(const wxDateSpan& other)
{
    return *this -= other;
}

inline wxDateSpan wxDateSpan::Subtract(const wxDateSpan& other) const
{
    wxDateSpan ds(*this);
    ds.Subtract(other);
    return ds;
}
# 1342 "../wxX11/include/wx/datetime.h" 2
# 1361 "../wxX11/include/wx/datetime.h"
inline wxDateTime operator+(const wxDateTime& dt,
                                        const wxTimeSpan& ts)
{
    return dt.Add(ts);
}

inline wxDateTime operator-(const wxDateTime& dt,
                                        const wxTimeSpan& ts)
{
    return dt.Subtract(ts);
}

inline wxDateTime operator+(const wxDateTime& dt,
                                        const wxDateSpan& ds)
{
    return dt.Add(ds);
}

inline wxDateTime operator-(const wxDateTime& dt,
                                        const wxDateSpan& ds)
{
    return dt.Subtract(ds);
}

inline wxTimeSpan operator-(const wxDateTime& dt1,
                                        const wxDateTime& dt2)
{
    return dt1.Subtract(dt2);
}




inline bool operator<(const wxDateTime& t1, const wxDateTime& t2)
{
                                                                          ;

    return t1.GetValue() < t2.GetValue();
}

inline bool operator<=(const wxDateTime& t1, const wxDateTime& t2)
{
                                                                          ;

    return t1.GetValue() <= t2.GetValue();
}

inline bool operator>(const wxDateTime& t1, const wxDateTime& t2)
{
                                                                          ;

    return t1.GetValue() > t2.GetValue();
}

inline bool operator>=(const wxDateTime& t1, const wxDateTime& t2)
{
                                                                          ;

    return t1.GetValue() >= t2.GetValue();
}

inline bool operator==(const wxDateTime& t1, const wxDateTime& t2)
{
                                                                          ;

    return t1.GetValue() == t2.GetValue();
}

inline bool operator!=(const wxDateTime& t1, const wxDateTime& t2)
{
                                                                          ;

    return t1.GetValue() != t2.GetValue();
}
# 1443 "../wxX11/include/wx/datetime.h"
inline wxTimeSpan operator+(const wxTimeSpan& ts1,
                                        const wxTimeSpan& ts2)
{
    return wxTimeSpan(ts1.GetValue() + ts2.GetValue());
}

inline wxTimeSpan operator-(const wxTimeSpan& ts1,
                                        const wxTimeSpan& ts2)
{
    return wxTimeSpan(ts1.GetValue() - ts2.GetValue());
}

inline wxTimeSpan operator*(const wxTimeSpan& ts, int n)
{
    return wxTimeSpan(ts).Multiply(n);
}

inline wxTimeSpan operator*(int n, const wxTimeSpan& ts)
{
    return wxTimeSpan(ts).Multiply(n);
}




inline bool operator<(const wxTimeSpan &t1, const wxTimeSpan &t2)
{
    return t1.GetValue() < t2.GetValue();
}

inline bool operator<=(const wxTimeSpan &t1, const wxTimeSpan &t2)
{
    return t1.GetValue() <= t2.GetValue();
}

inline bool operator>(const wxTimeSpan &t1, const wxTimeSpan &t2)
{
    return t1.GetValue() > t2.GetValue();
}

inline bool operator>=(const wxTimeSpan &t1, const wxTimeSpan &t2)
{
    return t1.GetValue() >= t2.GetValue();
}

inline bool operator==(const wxTimeSpan &t1, const wxTimeSpan &t2)
{
    return t1.GetValue() == t2.GetValue();
}

inline bool operator!=(const wxTimeSpan &t1, const wxTimeSpan &t2)
{
    return t1.GetValue() != t2.GetValue();
}
# 1505 "../wxX11/include/wx/datetime.h"
inline wxDateSpan operator+(const wxDateSpan& ds1,
                                        const wxDateSpan& ds2)
{
    return wxDateSpan(ds1.GetYears() + ds2.GetYears(),
                      ds1.GetMonths() + ds2.GetMonths(),
                      ds1.GetWeeks() + ds2.GetWeeks(),
                      ds1.GetDays() + ds2.GetDays());
}

inline wxDateSpan operator-(const wxDateSpan& ds1,
                                        const wxDateSpan& ds2)
{
    return wxDateSpan(ds1.GetYears() - ds2.GetYears(),
                      ds1.GetMonths() - ds2.GetMonths(),
                      ds1.GetWeeks() - ds2.GetWeeks(),
                      ds1.GetDays() - ds2.GetDays());
}

inline wxDateSpan operator*(const wxDateSpan& ds, int n)
{
    return wxDateSpan(ds).Multiply(n);
}

inline wxDateSpan operator*(int n, const wxDateSpan& ds)
{
    return wxDateSpan(ds).Multiply(n);
}
# 1543 "../wxX11/include/wx/datetime.h"
inline void wxNextMonth(wxDateTime::Month& m)
{
                                                                  ;


    m = (wxDateTime::Month)(m + 1);
}

inline void wxPrevMonth(wxDateTime::Month& m)
{
                                                                  ;

    m = m == wxDateTime::Jan ? wxDateTime::Inv_Month
                             : (wxDateTime::Month)(m - 1);
}

inline void wxNextWDay(wxDateTime::WeekDay& wd)
{
                                                                        ;


    wd = (wxDateTime::WeekDay)(wd + 1);
}

inline void wxPrevWDay(wxDateTime::WeekDay& wd)
{
                                                                        ;

    wd = wd == wxDateTime::Sun ? wxDateTime::Inv_WeekDay
                               : (wxDateTime::WeekDay)(wd - 1);
}
# 83 "../wxX11/src/common/datetime.cpp" 2
# 1 "../wxX11/include/wx/timer.h" 1
# 17 "../wxX11/include/wx/timer.h"
#pragma interface "timerbase.h"


# 1 "lib/wx/include/motif-2.3/wx/setup.h" 1
# 21 "../wxX11/include/wx/timer.h" 2
# 1 "../wxX11/include/wx/object.h" 1
# 22 "../wxX11/include/wx/timer.h" 2
# 1 "../wxX11/include/wx/longlong.h" 1
# 23 "../wxX11/include/wx/timer.h" 2
# 1 "../wxX11/include/wx/event.h" 1
# 16 "../wxX11/include/wx/event.h"
#pragma interface "event.h"


# 1 "../wxX11/include/wx/defs.h" 1
# 20 "../wxX11/include/wx/event.h" 2
# 1 "../wxX11/include/wx/object.h" 1
# 21 "../wxX11/include/wx/event.h" 2
# 1 "../wxX11/include/wx/clntdata.h" 1
# 16 "../wxX11/include/wx/clntdata.h"
#pragma interface "clntdata.h"


# 1 "../wxX11/include/wx/defs.h" 1
# 20 "../wxX11/include/wx/clntdata.h" 2
# 1 "../wxX11/include/wx/string.h" 1
# 21 "../wxX11/include/wx/clntdata.h" 2




enum wxClientDataType
{
    wxClientData_None,
    wxClientData_Object,
    wxClientData_Void
};

class wxClientData
{
public:
    wxClientData() { }
    virtual ~wxClientData() { }
};

class wxStringClientData : public wxClientData
{
public:
    wxStringClientData() { }
    wxStringClientData( const wxString &data ) : m_data(data) { }
    void SetData( const wxString &data ) { m_data = data; }
    const wxString& GetData() const { return m_data; }

private:
    wxString m_data;
};
# 62 "../wxX11/include/wx/clntdata.h"
class wxClientDataContainer
{
public:
    wxClientDataContainer();
    virtual ~wxClientDataContainer();

    void SetClientObject( wxClientData *data ) { DoSetClientObject(data); }
    wxClientData *GetClientObject() const { return DoGetClientObject(); }

    void SetClientData( void *data ) { DoSetClientData(data); }
    void *GetClientData() const { return DoGetClientData(); }

protected:





    union
    {
        wxClientData *m_clientObject;
        void *m_clientData;
    };


    virtual void DoSetClientObject( wxClientData *data );
    virtual wxClientData *DoGetClientObject() const;

    virtual void DoSetClientData( void *data );
    virtual void *DoGetClientData() const;


    wxClientDataType m_clientDataType;

};
# 22 "../wxX11/include/wx/event.h" 2


# 1 "../wxX11/include/wx/gdicmn.h" 1
# 20 "../wxX11/include/wx/gdicmn.h"
#pragma interface "gdicmn.h"


# 1 "../wxX11/include/wx/object.h" 1
# 24 "../wxX11/include/wx/gdicmn.h" 2
# 1 "../wxX11/include/wx/list.h" 1
# 25 "../wxX11/include/wx/gdicmn.h" 2
# 1 "../wxX11/include/wx/hash.h" 1
# 16 "../wxX11/include/wx/hash.h"
#pragma interface "hash.h"


# 1 "../wxX11/include/wx/list.h" 1
# 20 "../wxX11/include/wx/hash.h" 2
# 1 "../wxX11/include/wx/dynarray.h" 1
# 21 "../wxX11/include/wx/hash.h" 2
# 37 "../wxX11/include/wx/hash.h"
class wxHashTableBase : public wxObject
{
public:
    wxHashTableBase();

    void Create(wxKeyType keyType = wxKEY_INTEGER,
                size_t size = (1000));
    void Destroy();

    size_t GetSize() const { return m_hashSize; }
    size_t GetCount() const { return m_count; }

    void DeleteContents(bool flag);

protected:

    wxNodeBase *GetNode(long key, long value) const;


    wxListBase **m_hashTable;


    size_t m_hashSize;


    wxKeyType m_keyType;


    size_t m_count;


    bool m_deleteContents;

private:

    private: wxHashTableBase(const wxHashTableBase&); wxHashTableBase& operator=(const wxHashTableBase&);
};





class wxHashTableLong : public wxObject
{
public:
    wxHashTableLong(size_t size = (1000)) { Init(size); }
    virtual ~wxHashTableLong();

    void Create(size_t size = (1000));
    void Destroy();

    size_t GetSize() const { return m_hashSize; }
    size_t GetCount() const { return m_count; }

    void Put(long key, long value);
    long Get(long key) const;
    long Delete(long key);

protected:
    void Init(size_t size);

private:
    wxArrayLong **m_values,
                **m_keys;


    size_t m_hashSize;


    size_t m_count;


    private: wxHashTableLong(const wxHashTableLong&); wxHashTableLong& operator=(const wxHashTableLong&);
};





class wxStringHashTable : public wxObject
{
public:
    wxStringHashTable(size_t sizeTable = (1000));
    virtual ~wxStringHashTable();


    void Put(long key, const wxString& value);



    wxString Get(long key, bool *wasFound = __null) const;


    void Destroy();

private:
    wxArrayLong **m_keys;
    wxArrayString **m_values;


    size_t m_hashSize;

    private: wxStringHashTable(const wxStringHashTable&); wxStringHashTable& operator=(const wxStringHashTable&);
};





class wxHashTable : public wxObject
{
public:
    int n;
    int current_position;
    wxNode *current_node;

    unsigned int key_type;
    wxList **hash_table;

    wxHashTable(int the_key_type = wxKEY_INTEGER,
                int size = (1000));
    ~wxHashTable();


    wxHashTable(const wxHashTable& table) : wxObject() { DoCopy(table); }
    wxHashTable& operator=(const wxHashTable& table)
        { Clear(); DoCopy(table); return *this; }

    void DoCopy(const wxHashTable& table);

    void Destroy();

    bool Create(int the_key_type = wxKEY_INTEGER,
                int size = (1000));
# 185 "../wxX11/include/wx/hash.h"
    void Put(long key, long value, wxObject *object);
    void Put(long key, const char *value, wxObject *object);


    void Put(long value, wxObject *object);
    void Put(const char *value, wxObject *object);


    wxObject *Get(long key, long value) const;
    wxObject *Get(long key, const char *value) const;


    wxObject *Get(long value) const;
    wxObject *Get(const char *value) const;


    wxObject *Delete(long key);
    wxObject *Delete(const char *key);

    wxObject *Delete(long key, int value);
    wxObject *Delete(long key, const char *value);



    long MakeKey(const char *string) const;





    void BeginFind();
    wxNode *Next();

    void DeleteContents(bool flag);
    void Clear();


    size_t GetCount() const { return m_count; }

private:
    size_t m_count;
    bool m_deleteContents;

    public: static wxClassInfo sm_classwxHashTable; virtual wxClassInfo *GetClassInfo() const { return &wxHashTable::sm_classwxHashTable; }
};
# 26 "../wxX11/include/wx/gdicmn.h" 2
# 1 "../wxX11/include/wx/string.h" 1
# 27 "../wxX11/include/wx/gdicmn.h" 2
# 1 "lib/wx/include/motif-2.3/wx/setup.h" 1
# 28 "../wxX11/include/wx/gdicmn.h" 2
# 1 "../wxX11/include/wx/colour.h" 1






# 1 "../wxX11/include/wx/motif/colour.h" 1
# 16 "../wxX11/include/wx/motif/colour.h"
#pragma interface "colour.h"


# 1 "../wxX11/include/wx/object.h" 1
# 20 "../wxX11/include/wx/motif/colour.h" 2
# 1 "../wxX11/include/wx/string.h" 1
# 21 "../wxX11/include/wx/motif/colour.h" 2


class wxColour : public wxObject
{
    public: static wxClassInfo sm_classwxColour; virtual wxClassInfo *GetClassInfo() const { return &wxColour::sm_classwxColour; }
public:


    wxColour();

    wxColour( unsigned char red, unsigned char green, unsigned char blue );
    wxColour( unsigned long colRGB ) { Set(colRGB); }


    wxColour( const wxString &colourName ) { InitFromName(colourName); }
    wxColour( const char *colourName ) { InitFromName(colourName); }


    wxColour( const wxColour& col );
    wxColour& operator = ( const wxColour& col );


    ~wxColour();


    void Set( unsigned char red, unsigned char green, unsigned char blue );
    void Set( unsigned long colRGB )
    {


        Set((unsigned char)colRGB,
            (unsigned char)(colRGB >> 8),
            (unsigned char)(colRGB >> 16));
    }


    bool Ok() const {return m_isInit; }
    unsigned char Red() const { return m_red; }
    unsigned char Green() const { return m_green; }
    unsigned char Blue() const { return m_blue; }

    int GetPixel() const { return m_pixel; };
    void SetPixel(int pixel) { m_pixel = pixel; m_isInit = 1; };

    inline bool operator == (const wxColour& colour) const { return (m_red == colour.m_red && m_green == colour.m_green && m_blue == colour.m_blue); }

    inline bool operator != (const wxColour& colour) const { return (!(m_red == colour.m_red && m_green == colour.m_green && m_blue == colour.m_blue)); }
# 77 "../wxX11/include/wx/motif/colour.h"
    int AllocColour(WXDisplay* display, bool realloc = 0);

    void InitFromName(const wxString& col);

private:
    bool m_isInit;
    unsigned char m_red;
    unsigned char m_blue;
    unsigned char m_green;

public:
    int m_pixel;
};
# 8 "../wxX11/include/wx/colour.h" 2
# 29 "../wxX11/include/wx/gdicmn.h" 2
# 1 "../wxX11/include/wx/font.h" 1
# 16 "../wxX11/include/wx/font.h"
#pragma interface "fontbase.h"






# 1 "../wxX11/include/wx/defs.h" 1
# 24 "../wxX11/include/wx/font.h" 2
# 1 "../wxX11/include/wx/fontenc.h" 1
# 25 "../wxX11/include/wx/font.h" 2
# 1 "../wxX11/include/wx/gdiobj.h" 1






# 1 "../wxX11/include/wx/motif/gdiobj.h" 1
# 15 "../wxX11/include/wx/motif/gdiobj.h"
# 1 "../wxX11/include/wx/object.h" 1
# 16 "../wxX11/include/wx/motif/gdiobj.h" 2


#pragma interface "gdiobj.h"


class wxGDIRefData: public wxObjectRefData {
public:
    inline wxGDIRefData()
    {
    }
};



class wxGDIObject: public wxObject
{
    public: static wxClassInfo sm_classwxGDIObject; virtual wxClassInfo *GetClassInfo() const { return &wxGDIObject::sm_classwxGDIObject; }
public:
    inline wxGDIObject() { m_visible = 0; };
    inline ~wxGDIObject() {};

    inline bool IsNull() const { return (m_refData == 0); }

    virtual bool GetVisible() { return m_visible; }
    virtual void SetVisible(bool v) { m_visible = v; }

protected:
    bool m_visible;

};
# 8 "../wxX11/include/wx/gdiobj.h" 2
# 26 "../wxX11/include/wx/font.h" 2





class wxFontData;
class wxFontBase;
class wxFont;
# 43 "../wxX11/include/wx/font.h"
enum wxFontFamily
{
    wxFONTFAMILY_DEFAULT = wxDEFAULT,
    wxFONTFAMILY_DECORATIVE = wxDECORATIVE,
    wxFONTFAMILY_ROMAN = wxROMAN,
    wxFONTFAMILY_SCRIPT = wxSCRIPT,
    wxFONTFAMILY_SWISS = wxSWISS,
    wxFONTFAMILY_MODERN = wxMODERN,
    wxFONTFAMILY_TELETYPE = wxTELETYPE,
    wxFONTFAMILY_MAX,
    wxFONTFAMILY_UNKNOWN = wxFONTFAMILY_MAX
};


enum wxFontStyle
{
    wxFONTSTYLE_NORMAL = wxNORMAL,
    wxFONTSTYLE_ITALIC = wxITALIC,
    wxFONTSTYLE_SLANT = wxSLANT,
    wxFONTSTYLE_MAX
};


enum wxFontWeight
{
    wxFONTWEIGHT_NORMAL = wxNORMAL,
    wxFONTWEIGHT_LIGHT = wxLIGHT,
    wxFONTWEIGHT_BOLD = wxBOLD,
    wxFONTWEIGHT_MAX
};





class wxFontRefData;
struct wxNativeFontInfo;

class wxFontBase : public wxGDIObject
{
public:

    virtual ~wxFontBase();


    static wxFont *New(
        int pointSize,
        int family,
        int style,
        int weight,
        bool underlined = 0,
        const wxString& face = wxEmptyString,
        wxFontEncoding encoding = wxFONTENCODING_DEFAULT);


    static wxFont *New(const wxNativeFontInfo& nativeFontDesc);


    static wxFont *New(const wxString& strNativeFontDesc);


    bool Ok() const { return m_refData != __null; }


    bool operator == (const wxFont& font) const;
    bool operator != (const wxFont& font) const;


    virtual int GetPointSize() const = 0;
    virtual int GetFamily() const = 0;
    virtual int GetStyle() const = 0;
    virtual int GetWeight() const = 0;
    virtual bool GetUnderlined() const = 0;
    virtual wxString GetFaceName() const = 0;
    virtual wxFontEncoding GetEncoding() const = 0;
    virtual wxNativeFontInfo *GetNativeFontInfo() const;

    virtual bool IsFixedWidth() const;

    wxString GetNativeFontInfoDesc() const;
    wxString GetNativeFontInfoUserDesc() const;


    virtual void SetPointSize( int pointSize ) = 0;
    virtual void SetFamily( int family ) = 0;
    virtual void SetStyle( int style ) = 0;
    virtual void SetWeight( int weight ) = 0;
    virtual void SetFaceName( const wxString& faceName ) = 0;
    virtual void SetUnderlined( bool underlined ) = 0;
    virtual void SetEncoding(wxFontEncoding encoding) = 0;
    virtual void SetNativeFontInfo(const wxNativeFontInfo& info);

    void SetNativeFontInfo(const wxString& info);
    void SetNativeFontInfoUserDesc(const wxString& info);



    wxString GetFamilyString() const;
    wxString GetStyleString() const;
    wxString GetWeightString() const;



    static wxFontEncoding GetDefaultEncoding() { return ms_encodingDefault; }
    static void SetDefaultEncoding(wxFontEncoding encoding);

protected:

    wxFontRefData *GetFontData() const
        { return (wxFontRefData *)m_refData; }

private:




    static wxFontEncoding ms_encodingDefault;
};





# 1 "../wxX11/include/wx/motif/font.h" 1
# 16 "../wxX11/include/wx/motif/font.h"
#pragma interface "font.h"


class wxXFont;


class wxFont : public wxFontBase
{
public:

    wxFont() { Init(); }
    wxFont(const wxFont& font) { Init(); Ref(font); }

    wxFont(int size,
        int family,
        int style,
        int weight,
        bool underlined = 0,
        const wxString& face = wxEmptyString,
        wxFontEncoding encoding = wxFONTENCODING_DEFAULT)
    {
        Init();

        (void)Create(size, family, style, weight, underlined, face, encoding);
    }

    wxFont(const wxNativeFontInfo& info);

    bool Create(int size,
        int family,
        int style,
        int weight,
        bool underlined = 0,
        const wxString& face = wxEmptyString,
        wxFontEncoding encoding = wxFONTENCODING_DEFAULT);


    bool Create(const wxString& fontname,
        wxFontEncoding fontenc = wxFONTENCODING_DEFAULT);
    bool Create(const wxNativeFontInfo& fontinfo);

    virtual ~wxFont();


    wxFont& operator=(const wxFont& font);


    virtual int GetPointSize() const;
    virtual int GetFamily() const;
    virtual int GetStyle() const;
    virtual int GetWeight() const;
    virtual bool GetUnderlined() const;
    virtual wxString GetFaceName() const;
    virtual wxFontEncoding GetEncoding() const;
    virtual wxNativeFontInfo *GetNativeFontInfo() const;

    virtual void SetPointSize(int pointSize);
    virtual void SetFamily(int family);
    virtual void SetStyle(int style);
    virtual void SetWeight(int weight);
    virtual void SetFaceName(const wxString& faceName);
    virtual void SetUnderlined(bool underlined);
    virtual void SetEncoding(wxFontEncoding encoding);
    virtual void SetNativeFontInfo( const wxNativeFontInfo& info );
# 95 "../wxX11/include/wx/motif/font.h"
    wxXFont *GetInternalFont(double scale = 1.0,
        WXDisplay* display = __null) const;


    WXFontStructPtr GetFontStruct(double scale = 1.0,
        WXDisplay* display = __null) const;
    WXFontList GetFontList(double scale = 1.0,
        WXDisplay* display = __null) const;

protected:

    void Init();


    bool RealizeResource() { return 1; }
    void Unshare();

private:
    public: static wxClassInfo sm_classwxFont; virtual wxClassInfo *GetClassInfo() const { return &wxFont::sm_classwxFont; }
};
# 167 "../wxX11/include/wx/font.h" 2
# 30 "../wxX11/include/wx/gdicmn.h" 2





class wxBitmap;
class wxBrush;
class wxColour;
class wxCursor;
class wxFont;
class wxIcon;
class wxPalette;
class wxPen;
class wxRegion;
class wxString;






enum wxBitmapType
{
    wxBITMAP_TYPE_INVALID,
    wxBITMAP_TYPE_BMP,
    wxBITMAP_TYPE_BMP_RESOURCE,
    wxBITMAP_TYPE_RESOURCE = wxBITMAP_TYPE_BMP_RESOURCE,
    wxBITMAP_TYPE_ICO,
    wxBITMAP_TYPE_ICO_RESOURCE,
    wxBITMAP_TYPE_CUR,
    wxBITMAP_TYPE_CUR_RESOURCE,
    wxBITMAP_TYPE_XBM,
    wxBITMAP_TYPE_XBM_DATA,
    wxBITMAP_TYPE_XPM,
    wxBITMAP_TYPE_XPM_DATA,
    wxBITMAP_TYPE_TIF,
    wxBITMAP_TYPE_TIF_RESOURCE,
    wxBITMAP_TYPE_GIF,
    wxBITMAP_TYPE_GIF_RESOURCE,
    wxBITMAP_TYPE_PNG,
    wxBITMAP_TYPE_PNG_RESOURCE,
    wxBITMAP_TYPE_JPEG,
    wxBITMAP_TYPE_JPEG_RESOURCE,
    wxBITMAP_TYPE_PNM,
    wxBITMAP_TYPE_PNM_RESOURCE,
    wxBITMAP_TYPE_PCX,
    wxBITMAP_TYPE_PCX_RESOURCE,
    wxBITMAP_TYPE_PICT,
    wxBITMAP_TYPE_PICT_RESOURCE,
    wxBITMAP_TYPE_ICON,
    wxBITMAP_TYPE_ICON_RESOURCE,
    wxBITMAP_TYPE_ANI,
    wxBITMAP_TYPE_IFF,
    wxBITMAP_TYPE_MACCURSOR,
    wxBITMAP_TYPE_MACCURSOR_RESOURCE,
    wxBITMAP_TYPE_ANY = 50
};


enum wxStockCursor
{
    wxCURSOR_NONE,
    wxCURSOR_ARROW,
    wxCURSOR_RIGHT_ARROW,
    wxCURSOR_BULLSEYE,
    wxCURSOR_CHAR,
    wxCURSOR_CROSS,
    wxCURSOR_HAND,
    wxCURSOR_IBEAM,
    wxCURSOR_LEFT_BUTTON,
    wxCURSOR_MAGNIFIER,
    wxCURSOR_MIDDLE_BUTTON,
    wxCURSOR_NO_ENTRY,
    wxCURSOR_PAINT_BRUSH,
    wxCURSOR_PENCIL,
    wxCURSOR_POINT_LEFT,
    wxCURSOR_POINT_RIGHT,
    wxCURSOR_QUESTION_ARROW,
    wxCURSOR_RIGHT_BUTTON,
    wxCURSOR_SIZENESW,
    wxCURSOR_SIZENS,
    wxCURSOR_SIZENWSE,
    wxCURSOR_SIZEWE,
    wxCURSOR_SIZING,
    wxCURSOR_SPRAYCAN,
    wxCURSOR_WAIT,
    wxCURSOR_WATCH,
    wxCURSOR_BLANK,





    wxCURSOR_CROSS_REVERSE,
    wxCURSOR_DOUBLE_ARROW,
    wxCURSOR_BASED_ARROW_UP,
    wxCURSOR_BASED_ARROW_DOWN,


    wxCURSOR_ARROWWAIT,

    wxCURSOR_MAX
};
# 199 "../wxX11/include/wx/gdicmn.h"
class wxSize
{
public:



    int x, y;


    wxSize() { x = y = 0; }
    wxSize(int xx, int yy) { Set(xx, yy); }



    bool operator==(const wxSize& sz) const { return x == sz.x && y == sz.y; }
    bool operator!=(const wxSize& sz) const { return x != sz.x || y != sz.y; }


    wxSize operator+(const wxSize& sz) { return wxSize(x + sz.x, y + sz.y); }
    wxSize operator-(const wxSize& sz) { return wxSize(x - sz.x, y - sz.y); }


    void Set(int xx, int yy) { x = xx; y = yy; }
    void SetWidth(int w) { x = w; }
    void SetHeight(int h) { y = h; }

    int GetWidth() const { return x; }
    int GetHeight() const { return y; }


    int GetX() const { return x; }
    int GetY() const { return y; }
};





class wxRealPoint
{
public:
    double x;
    double y;

    wxRealPoint() { x = y = 0.0; };
    wxRealPoint(double xx, double yy) { x = xx; y = yy; };

    wxRealPoint operator+(const wxRealPoint& pt) const { return wxRealPoint(x + pt.x, y + pt.y); }
    wxRealPoint operator-(const wxRealPoint& pt) const { return wxRealPoint(x - pt.x, y - pt.y); }

    bool operator==(const wxRealPoint& pt) const { return x == pt.x && y == pt.y; }
};

class wxPoint
{
public:
    int x, y;

    wxPoint() { x = y = 0; };
    wxPoint(int xx, int yy) { x = xx; y = yy; };




    bool operator==(const wxPoint& p) const { return x == p.x && y == p.y; }
    bool operator!=(const wxPoint& p) const { return !(*this == p); }


    wxPoint operator+(const wxPoint& p) const { return wxPoint(x + p.x, y + p.y); }
    wxPoint operator-(const wxPoint& p) const { return wxPoint(x - p.x, y - p.y); }

    wxPoint& operator+=(const wxPoint& p) { x += p.x; y += p.y; return *this; }
    wxPoint& operator-=(const wxPoint& p) { x -= p.x; y -= p.y; return *this; }
};
# 283 "../wxX11/include/wx/gdicmn.h"
class wxRect
{
public:
    wxRect() { x = y = width = height = 0; }
    wxRect(int xx, int yy, int ww, int hh)
        { x = xx; y = yy; width = ww; height = hh; }
    wxRect(const wxPoint& topLeft, const wxPoint& bottomRight);
    wxRect(const wxPoint& pos, const wxSize& size);



    int GetX() const { return x; }
    void SetX(int xx) { x = xx; }

    int GetY() const { return y; }
    void SetY(int yy) { y = yy; }

    int GetWidth() const { return width; }
    void SetWidth(int w) { width = w; }

    int GetHeight() const { return height; }
    void SetHeight(int h) { height = h; }

    wxPoint GetPosition() const { return wxPoint(x, y); }
    wxSize GetSize() const { return wxSize(width, height); }

    int GetLeft() const { return x; }
    int GetTop() const { return y; }
    int GetBottom() const { return y + height - 1; }
    int GetRight() const { return x + width - 1; }

    void SetLeft(int left) { x = left; }
    void SetRight(int right) { width = right - x + 1; }
    void SetTop(int top) { y = top; }
    void SetBottom(int bottom) { height = bottom - y + 1; }


    wxRect& Inflate(wxCoord dx, wxCoord dy);
    wxRect& Inflate(wxCoord d) { return Inflate(d, d); }
    wxRect Inflate(wxCoord dx, wxCoord dy) const
    {
        wxRect r = *this;
        r.Inflate(dx, dy);
        return r;
    }

    wxRect& Deflate(wxCoord dx, wxCoord dy) { return Inflate(-dx, -dy); }
    wxRect& Deflate(wxCoord d) { return Inflate(-d); }
    wxRect Deflate(wxCoord dx, wxCoord dy) const
    {
        wxRect r = *this;
        r.Deflate(dx, dy);
        return r;
    }

    void Offset(wxCoord dx, wxCoord dy) { x += dx; y += dy; }
    void Offset(const wxPoint& pt) { Offset(pt.x, pt.y); }

    wxRect& Intersect(const wxRect& rect);
    wxRect Intersect(const wxRect& rect) const
    {
        wxRect r = *this;
        r.Intersect(rect);
        return r;
    }

    wxRect operator+(const wxRect& rect) const;
    wxRect& operator+=(const wxRect& rect);


    bool operator==(const wxRect& rect) const;
    bool operator!=(const wxRect& rect) const { return !(*this == rect); }


    bool Inside(int x, int y) const;
    bool Inside(const wxPoint& pt) const { return Inside(pt.x, pt.y); }


    bool Intersects(const wxRect& rect) const;

public:
    int x, y, width, height;
};





typedef char signed wxDash;

class wxPenList : public wxList
{
    public: static wxClassInfo sm_classwxPenList; virtual wxClassInfo *GetClassInfo() const { return &wxPenList::sm_classwxPenList; }

public:
    wxPenList() { }
    ~wxPenList();

    void AddPen(wxPen *pen);
    void RemovePen(wxPen *pen);
    wxPen *FindOrCreatePen(const wxColour& colour, int width, int style);
};

class wxBrushList : public wxList
{
    public: static wxClassInfo sm_classwxBrushList; virtual wxClassInfo *GetClassInfo() const { return &wxBrushList::sm_classwxBrushList; }

public:
    wxBrushList() { }
    ~wxBrushList();

    void AddBrush(wxBrush *brush);
    void RemoveBrush(wxBrush *brush);
    wxBrush *FindOrCreateBrush(const wxColour& colour, int style);
};

extern const char* wxEmptyString;

class wxFontList : public wxList
{
    public: static wxClassInfo sm_classwxFontList; virtual wxClassInfo *GetClassInfo() const { return &wxFontList::sm_classwxFontList; }

public:
    wxFontList() { }
    ~wxFontList();

    void AddFont(wxFont *font);
    void RemoveFont(wxFont *font);
    wxFont *FindOrCreateFont(int pointSize, int family, int style, int weight,
                             bool underline = 0,
                             const wxString& face = wxEmptyString,
                             wxFontEncoding encoding = wxFONTENCODING_DEFAULT);
};

class wxColourDatabase : public wxList
{
    public: static wxClassInfo sm_classwxColourDatabase; virtual wxClassInfo *GetClassInfo() const { return &wxColourDatabase::sm_classwxColourDatabase; }

public:
    wxColourDatabase(int type);
    ~wxColourDatabase() ;


    wxColour *FindColour(const wxString& colour) ;
    wxString FindName(const wxColour& colour) const;
    void Initialize();





};

class wxBitmapList : public wxList
{
    public: static wxClassInfo sm_classwxBitmapList; virtual wxClassInfo *GetClassInfo() const { return &wxBitmapList::sm_classwxBitmapList; }

public:
    wxBitmapList();
    ~wxBitmapList();

    void AddBitmap(wxBitmap *bitmap);
    void RemoveBitmap(wxBitmap *bitmap);
};

class wxResourceCache: public wxList
{
public:
    wxResourceCache() { }
    wxResourceCache(const unsigned int keyType) : wxList(keyType) { }
    ~wxResourceCache();

private:
    public: static wxClassInfo sm_classwxResourceCache; virtual wxClassInfo *GetClassInfo() const { return &wxResourceCache::sm_classwxResourceCache; }
};






extern wxPenList* wxThePenList;
extern wxBrushList* wxTheBrushList;
extern wxFontList* wxTheFontList;
extern wxBitmapList* wxTheBitmapList;


extern wxFont* wxNORMAL_FONT;
extern wxFont* wxSMALL_FONT;
extern wxFont* wxITALIC_FONT;
extern wxFont* wxSWISS_FONT;

extern wxPen* wxRED_PEN;
extern wxPen* wxCYAN_PEN;
extern wxPen* wxGREEN_PEN;
extern wxPen* wxBLACK_PEN;
extern wxPen* wxWHITE_PEN;
extern wxPen* wxTRANSPARENT_PEN;
extern wxPen* wxBLACK_DASHED_PEN;
extern wxPen* wxGREY_PEN;
extern wxPen* wxMEDIUM_GREY_PEN;
extern wxPen* wxLIGHT_GREY_PEN;

extern wxBrush* wxBLUE_BRUSH;
extern wxBrush* wxGREEN_BRUSH;
extern wxBrush* wxWHITE_BRUSH;
extern wxBrush* wxBLACK_BRUSH;
extern wxBrush* wxGREY_BRUSH;
extern wxBrush* wxMEDIUM_GREY_BRUSH;
extern wxBrush* wxLIGHT_GREY_BRUSH;
extern wxBrush* wxTRANSPARENT_BRUSH;
extern wxBrush* wxCYAN_BRUSH;
extern wxBrush* wxRED_BRUSH;

extern wxColour* wxBLACK;
extern wxColour* wxWHITE;
extern wxColour* wxRED;
extern wxColour* wxBLUE;
extern wxColour* wxGREEN;
extern wxColour* wxCYAN;
extern wxColour* wxLIGHT_GREY;


extern wxBitmap wxNullBitmap;
extern wxIcon wxNullIcon;
extern wxCursor wxNullCursor;
extern wxPen wxNullPen;
extern wxBrush wxNullBrush;
extern wxPalette wxNullPalette;
extern wxFont wxNullFont;
extern wxColour wxNullColour;


extern wxCursor* wxSTANDARD_CURSOR;
extern wxCursor* wxHOURGLASS_CURSOR;
extern wxCursor* wxCROSS_CURSOR;

extern wxColourDatabase* wxTheColourDatabase;

extern const char* wxPanelNameStr;

extern const wxSize wxDefaultSize;
extern const wxPoint wxDefaultPosition;


extern wxList wxPendingDelete;






extern void wxInitializeStockObjects();
extern void wxInitializeStockLists();
extern void wxDeleteStockObjects();
extern void wxDeleteStockLists();


extern bool wxColourDisplay();


extern int wxDisplayDepth();



extern void wxDisplaySize(int *width, int *height);
extern wxSize wxGetDisplaySize();
extern void wxDisplaySizeMM(int *width, int *height);
extern wxSize wxGetDisplaySizeMM();


extern void wxClientDisplayRect(int *x, int *y, int *width, int *height);
extern wxRect wxGetClientDisplayRect();


extern void wxSetCursor(const wxCursor& cursor);
# 25 "../wxX11/include/wx/event.h" 2
# 1 "../wxX11/include/wx/cursor.h" 1






# 1 "../wxX11/include/wx/motif/cursor.h" 1
# 16 "../wxX11/include/wx/motif/cursor.h"
#pragma interface "cursor.h"


# 1 "../wxX11/include/wx/bitmap.h" 1
# 20 "../wxX11/include/wx/bitmap.h"
#pragma interface "bitmapbase.h"


# 1 "../wxX11/include/wx/defs.h" 1
# 24 "../wxX11/include/wx/bitmap.h" 2
# 1 "../wxX11/include/wx/object.h" 1
# 25 "../wxX11/include/wx/bitmap.h" 2
# 1 "../wxX11/include/wx/string.h" 1
# 26 "../wxX11/include/wx/bitmap.h" 2
# 1 "../wxX11/include/wx/gdiobj.h" 1
# 27 "../wxX11/include/wx/bitmap.h" 2
# 1 "../wxX11/include/wx/gdicmn.h" 1
# 28 "../wxX11/include/wx/bitmap.h" 2

class wxBitmap;
class wxBitmapHandler;
class wxImage;
class wxMask;
class wxPalette;
# 159 "../wxX11/include/wx/bitmap.h"
# 1 "../wxX11/include/wx/motif/bitmap.h" 1
# 16 "../wxX11/include/wx/motif/bitmap.h"
#pragma interface "bitmap.h"


# 1 "../wxX11/include/wx/gdiobj.h" 1
# 20 "../wxX11/include/wx/motif/bitmap.h" 2
# 1 "../wxX11/include/wx/gdicmn.h" 1
# 21 "../wxX11/include/wx/motif/bitmap.h" 2
# 1 "../wxX11/include/wx/palette.h" 1




# 1 "lib/wx/include/motif-2.3/wx/setup.h" 1
# 6 "../wxX11/include/wx/palette.h" 2






# 1 "../wxX11/include/wx/motif/palette.h" 1
# 16 "../wxX11/include/wx/motif/palette.h"
#pragma interface "palette.h"


# 1 "../wxX11/include/wx/gdiobj.h" 1
# 20 "../wxX11/include/wx/motif/palette.h" 2
# 1 "../wxX11/include/wx/list.h" 1
# 21 "../wxX11/include/wx/motif/palette.h" 2

class wxPalette;


class wxXPalette : public wxObject
{
    public: static wxClassInfo sm_classwxXPalette; virtual wxClassInfo *GetClassInfo() const { return &wxXPalette::sm_classwxXPalette; }

public:
    wxXPalette();

    WXDisplay* m_display;
    int m_pix_array_n;
    unsigned long* m_pix_array;
    WXColormap m_cmap;
    bool m_destroyable;
};

class wxPaletteRefData: public wxGDIRefData
{
    friend class wxPalette;
public:
    wxPaletteRefData();
    ~wxPaletteRefData();

protected:
    wxList m_palettes;
};



class wxPalette: public wxGDIObject
{
    public: static wxClassInfo sm_classwxPalette; virtual wxClassInfo *GetClassInfo() const { return &wxPalette::sm_classwxPalette; }

public:
    wxPalette();
    wxPalette(const wxPalette& palette) { Ref(palette); }

    wxPalette(int n, const unsigned char *red, const unsigned char *green, const unsigned char *blue);
    ~wxPalette();
    bool Create(int n, const unsigned char *red, const unsigned char *green, const unsigned char *blue);
    int GetPixel(const unsigned char red, const unsigned char green, const unsigned char blue) const;
    bool GetRGB(int pixel, unsigned char *red, unsigned char *green, unsigned char *blue) const;

    virtual bool Ok() const { return (m_refData != __null) ; }

    wxPalette& operator = (const wxPalette& palette) { if (*this == palette) return (*this); Ref(palette); return *this; }
    bool operator == (const wxPalette& palette) const { return m_refData == palette.m_refData; }
    bool operator != (const wxPalette& palette) const { return m_refData != palette.m_refData; }


    WXColormap GetXColormap(WXDisplay* display = __null) const;
    bool TransferBitmap(void *data, int depth, int size);
    bool TransferBitmap8(unsigned char *data, unsigned long size, void *dest, unsigned int bpp);
    unsigned long *GetXPixArray(WXDisplay* display, int *pix_array_n);
    void PutXColormap(WXDisplay* display, WXColormap cmap, bool destroyable);
};
# 13 "../wxX11/include/wx/palette.h" 2
# 22 "../wxX11/include/wx/motif/bitmap.h" 2


class wxDC;
class wxControl;
class wxBitmap;
class wxBitmapHandler;
class wxIcon;
class wxCursor;
class wxImage;



class wxMask: public wxObject
{
    public: static wxClassInfo sm_classwxMask; virtual wxClassInfo *GetClassInfo() const { return &wxMask::sm_classwxMask; }

public:
    wxMask();



    wxMask(const wxBitmap& bitmap, const wxColour& colour);



    wxMask(const wxBitmap& bitmap, int paletteIndex);


    wxMask(const wxBitmap& bitmap);

    ~wxMask();

    bool Create(const wxBitmap& bitmap, const wxColour& colour);
    bool Create(const wxBitmap& bitmap, int paletteIndex);
    bool Create(const wxBitmap& bitmap);

    WXPixmap GetPixmap() const { return m_pixmap; }
    void SetPixmap(WXPixmap pixmap) { m_pixmap = pixmap; }

protected:
    WXPixmap m_pixmap;
};

class wxBitmapRefData: public wxGDIRefData
{
    friend class wxBitmap;
    friend class wxIcon;
    friend class wxCursor;
public:
    wxBitmapRefData();
    ~wxBitmapRefData();

public:
    int m_width;
    int m_height;
    int m_depth;
    bool m_ok;
    int m_numColors;
    wxPalette m_bitmapPalette;
    int m_quality;

    wxMask * m_bitmapMask;


public:
    WXPixmap m_pixmap;
    WXDisplay* m_display;
    bool m_freePixmap;
    unsigned long* m_freeColors;
    long m_freeColorsCount;


    WXPixmap m_insensPixmap ;
    WXPixmap m_labelPixmap ;
    WXPixmap m_armPixmap ;
    WXImage* m_image ;
    WXImage* m_insensImage ;
};



class wxBitmapHandler: public wxObject
{
    public: static wxClassInfo sm_classwxBitmapHandler; virtual wxClassInfo *GetClassInfo() const { return &wxBitmapHandler::sm_classwxBitmapHandler; }
public:
    wxBitmapHandler() { m_name = ""; m_extension = ""; m_type = 0; };

    virtual bool Create(wxBitmap *bitmap, void *data, long flags, int width, int height, int depth = 1);
    virtual bool LoadFile(wxBitmap *bitmap, const wxString& name, long flags,
        int desiredWidth, int desiredHeight);
    virtual bool SaveFile(wxBitmap *bitmap, const wxString& name, int type, const wxPalette *palette = __null);

    void SetName(const wxString& name) { m_name = name; }
    void SetExtension(const wxString& ext) { m_extension = ext; }
    void SetType(long type) { m_type = type; }
    wxString GetName() const { return m_name; }
    wxString GetExtension() const { return m_extension; }
    long GetType() const { return m_type; }
protected:
    wxString m_name;
    wxString m_extension;
    long m_type;
};



class wxBitmap: public wxGDIObject
{
    public: static wxClassInfo sm_classwxBitmap; virtual wxClassInfo *GetClassInfo() const { return &wxBitmap::sm_classwxBitmap; }

        friend class wxBitmapHandler;

public:
    wxBitmap();


    wxBitmap(const wxBitmap& bitmap)
    { Ref(bitmap); }


    wxBitmap(const char bits[], int width, int height, int depth = 1);


    wxBitmap(const char **data) { (void)CreateFromXpm(data); }
    wxBitmap(char **data) { (void)CreateFromXpm((const char **)data); }


    wxBitmap(char **data, wxControl* control);


    wxBitmap(const wxString& name, long type = wxBITMAP_TYPE_XPM);


    wxBitmap(void *data, long type, int width, int height, int depth = 1);


    wxBitmap(int width, int height, int depth = -1);


    wxBitmap(const wxImage& image, int depth = -1) { (void)CreateFromImage(image, depth); }

    ~wxBitmap();

    virtual bool Create(int width, int height, int depth = -1);
    virtual bool Create(void *data, long type, int width, int height, int depth = 1);

    wxBitmap GetSubBitmap( const wxRect& rect ) const;

    virtual bool LoadFile(const wxString& name, long type = wxBITMAP_TYPE_XPM);
    virtual bool SaveFile(const wxString& name, int type, const wxPalette *cmap = __null);

    wxImage ConvertToImage() const;

    bool Ok() const { return (((wxBitmapRefData *)m_refData) && ((wxBitmapRefData *)m_refData)->m_ok); }
    int GetWidth() const { return (((wxBitmapRefData *)m_refData) ? ((wxBitmapRefData *)m_refData)->m_width : 0); }
    int GetHeight() const { return (((wxBitmapRefData *)m_refData) ? ((wxBitmapRefData *)m_refData)->m_height : 0); }
    int GetDepth() const { return (((wxBitmapRefData *)m_refData) ? ((wxBitmapRefData *)m_refData)->m_depth : 0); }
    int GetQuality() const { return (((wxBitmapRefData *)m_refData) ? ((wxBitmapRefData *)m_refData)->m_quality : 0); }
    void SetWidth(int w);
    void SetHeight(int h);
    void SetDepth(int d);
    void SetQuality(int q);
    void SetOk(bool isOk);

    wxPalette* GetPalette() const { return (((wxBitmapRefData *)m_refData) ? (& ((wxBitmapRefData *)m_refData)->m_bitmapPalette) : (wxPalette*) __null); }
    void SetPalette(const wxPalette& palette);

    wxMask *GetMask() const { return (((wxBitmapRefData *)m_refData) ? ((wxBitmapRefData *)m_refData)->m_bitmapMask : (wxMask*) __null); }
    void SetMask(wxMask *mask) ;

    wxBitmap& operator = (const wxBitmap& bitmap) { if (*this == bitmap) return (*this); Ref(bitmap); return *this; }
    bool operator == (const wxBitmap& bitmap) const { return m_refData == bitmap.m_refData; }
    bool operator != (const wxBitmap& bitmap) const { return m_refData != bitmap.m_refData; }


    static wxList& GetHandlers() { return sm_handlers; }
    static void AddHandler(wxBitmapHandler *handler);
    static void InsertHandler(wxBitmapHandler *handler);
    static bool RemoveHandler(const wxString& name);
    static wxBitmapHandler *FindHandler(const wxString& name);
    static wxBitmapHandler *FindHandler(const wxString& extension, long bitmapType);
    static wxBitmapHandler *FindHandler(long bitmapType);

    static void InitStandardHandlers();
    static void CleanUpHandlers();


public:
    WXDisplay* GetDisplay() const { return ((wxBitmapRefData *)m_refData)->m_display; }
    WXPixmap GetPixmap() const { return (WXPixmap) ((wxBitmapRefData *)m_refData)->m_pixmap; }
    virtual WXPixmap GetLabelPixmap(WXWidget w) ;
    virtual WXPixmap GetArmPixmap(WXWidget w) ;
    virtual WXPixmap GetInsensPixmap(WXWidget w = (WXWidget) 0) ;
    void SetPixmapNull() { ((wxBitmapRefData *)m_refData)->m_pixmap = 0; }

protected:
    static wxList sm_handlers;

protected:
    bool CreateFromXpm(const char **bits);
    bool CreateFromImage(const wxImage& image, int depth);
};



wxBitmap wxCreateMaskedBitmap(const wxBitmap& bitmap, wxColour& colour);
# 160 "../wxX11/include/wx/bitmap.h" 2
# 20 "../wxX11/include/wx/motif/cursor.h" 2




class wxXCursor : public wxObject
{
    public: static wxClassInfo sm_classwxXCursor; virtual wxClassInfo *GetClassInfo() const { return &wxXCursor::sm_classwxXCursor; }

public:
    WXDisplay* m_display;
    WXCursor m_cursor;
};

class wxCursorRefData: public wxBitmapRefData
{
    friend class wxBitmap;
    friend class wxCursor;
public:
    wxCursorRefData();
    ~wxCursorRefData();

    wxList m_cursors;
    wxStockCursor m_cursorId;
};





class wxCursor: public wxBitmap
{
    public: static wxClassInfo sm_classwxCursor; virtual wxClassInfo *GetClassInfo() const { return &wxCursor::sm_classwxCursor; }

public:
    wxCursor();


    wxCursor(const wxCursor& cursor) { Ref(cursor); }

    wxCursor(const char bits[], int width, int height, int hotSpotX = -1, int hotSpotY = -1,
        const char maskBits[] = __null);

    wxCursor(const wxString& name, long flags = wxBITMAP_TYPE_XBM,
        int hotSpotX = 0, int hotSpotY = 0);

    wxCursor(wxStockCursor id);
    ~wxCursor();

    virtual bool Ok() const { return ((m_refData != __null) && ((wxCursorRefData *)m_refData)->m_ok); }

    wxCursor& operator = (const wxCursor& cursor) { if (*this == cursor) return (*this); Ref(cursor); return *this; }
    bool operator == (const wxCursor& cursor) const { return m_refData == cursor.m_refData; }
    bool operator != (const wxCursor& cursor) const { return m_refData != cursor.m_refData; }



    WXCursor GetXCursor(WXDisplay* display) ;

    WXCursor MakeCursor(WXDisplay* display, wxStockCursor id);
};

extern void wxSetCursor(const wxCursor& cursor);
# 8 "../wxX11/include/wx/cursor.h" 2
# 22 "../wxX11/include/wx/cursor.h"
# 1 "../wxX11/include/wx/utils.h" 1
# 20 "../wxX11/include/wx/utils.h"
#pragma interface "utils.h"


# 1 "../wxX11/include/wx/object.h" 1
# 24 "../wxX11/include/wx/utils.h" 2
# 1 "../wxX11/include/wx/list.h" 1
# 25 "../wxX11/include/wx/utils.h" 2
# 1 "../wxX11/include/wx/filefn.h" 1
# 16 "../wxX11/include/wx/filefn.h"
#pragma interface "filefn.h"


# 1 "../wxX11/include/wx/list.h" 1
# 20 "../wxX11/include/wx/filefn.h" 2

# 1 "/usr/include/time.h" 1 3 4
# 22 "../wxX11/include/wx/filefn.h" 2







# 1 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/sys/types.h" 1 3 4
# 30 "../wxX11/include/wx/filefn.h" 2
# 51 "../wxX11/include/wx/filefn.h"
const off_t wxInvalidOffset = (off_t)-1;


enum wxSeekMode
{
  wxFromStart,
  wxFromCurrent,
  wxFromEnd
};

extern const char* wxEmptyString;
# 146 "../wxX11/include/wx/filefn.h"
            bool wxFileExists(const wxString& filename);



            bool wxPathExists(const char *pszPathName);




            bool wxIsAbsolutePath(const wxString& filename);



            char* wxFileNameFromPath(char *path);
            wxString wxFileNameFromPath(const wxString& path);



            wxString wxPathOnly(const wxString& path);



            wxString wxRealPath(const wxString& path);

            void wxDos2UnixFilename(char *s);


            void wxUnix2DosFilename(char *s);



            void wxStripExtension(char *buffer);
            void wxStripExtension(wxString& buffer);


            char* wxGetTempFileName(const wxString& prefix, char *buf = (char *) __null);
            bool wxGetTempFileName(const wxString& prefix, wxString& buf);


            char* wxExpandPath(char *dest, const char *path);
            bool wxExpandPath(wxString& dest, const char *path);




            char* wxContractPath(const wxString& filename,
                                   const wxString& envname = wxEmptyString,
                                   const wxString& user = wxEmptyString);


            char* wxRealPath(char *path);


            char* wxCopyAbsolutePath(const wxString& path);





            wxString wxFindFirstFile(const char *spec, int flags = 1);
            wxString wxFindNextFile();


            bool wxIsWild(const wxString& pattern);




            bool wxMatchWild(const wxString& pattern, const wxString& text, bool dot_special = 1);


            bool wxConcatFiles(const wxString& file1, const wxString& file2, const wxString& file3);


            bool wxCopyFile(const wxString& file1, const wxString& file2,
                            bool overwrite = 1);


            bool wxRemoveFile(const wxString& file);


            bool wxRenameFile(const wxString& file1, const wxString& file2);






            char* wxGetWorkingDirectory(char *buf = (char *) __null, int sz = 1000);


            wxString wxGetCwd();


            bool wxSetWorkingDirectory(const wxString& d);


            bool wxMkdir(const wxString& dir, int perm = 0777);


            bool wxRmdir(const wxString& dir, int flags = 0);
# 296 "../wxX11/include/wx/filefn.h"
inline bool wxIsPathSeparator(char c)
{


    return c == '/';



}


            bool wxEndsWithPathSeparator(const char *pszFileName);



            void wxSplitPath(const char *pszFileName,
                             wxString *pstrPath,
                             wxString *pstrName,
                             wxString *pstrExt);


            bool wxFindFileInPath(wxString *pStr, const char *pszPath, const char *pszFile);



            wxString wxGetOSDirectory();


            time_t wxFileModificationTime(const wxString& filename);






class wxPathList : public wxStringList
{
public:

    void AddEnvList(const wxString& envVariable);

    void Add(const wxString& path);

    wxNode *Add(const char *s) { return wxStringList::Add(s); }

    wxString FindValidPath(const wxString& filename);


    wxString FindAbsoluteValidPath(const wxString& filename);

    void EnsureFileAccessible(const wxString& path);

    bool Member(const wxString& path);

private:
    public: static wxClassInfo sm_classwxPathList; virtual wxClassInfo *GetClassInfo() const { return &wxPathList::sm_classwxPathList; }
};
# 26 "../wxX11/include/wx/utils.h" 2



# 1 "../wxX11/include/wx/longlong.h" 1
# 30 "../wxX11/include/wx/utils.h" 2


# 1 "/usr/include/dirent.h" 1 3 4
# 35 "/usr/include/dirent.h" 3 4
# 1 "/usr/include/sys/dir.h" 1 3 4
# 54 "/usr/include/sys/dir.h" 3 4
# 1 "/usr/include/standards.h" 1 3 4
# 55 "/usr/include/sys/dir.h" 2 3 4

# 1 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/sys/types.h" 1 3 4
# 57 "/usr/include/sys/dir.h" 2 3 4


extern "C" {
# 76 "/usr/include/sys/dir.h" 3 4
struct dirent {
        uint32long64_t d_offset;
        ino_t d_ino;

        ushort_t d_reclen;
        ushort_t d_namlen;
        char d_name[255 +1];

};
# 104 "/usr/include/sys/dir.h" 3 4
typedef struct _dirdesc {

        int dd_fd;
        blksize_t dd_blksize;
        char *dd_buf;
        long dd_size;
        long dd_flag;
        off_t dd_loc;
        off_t dd_curoff;
# 128 "/usr/include/sys/dir.h" 3 4
} DIR;
# 142 "/usr/include/sys/dir.h" 3 4
extern DIR *opendir(const char *);
extern struct dirent *readdir(DIR *);







extern int readdir_r(DIR *, struct dirent *, struct dirent **);




extern int closedir(DIR *);
extern void rewinddir(DIR *);
# 173 "/usr/include/sys/dir.h" 3 4
extern void seekdir(DIR *, long);
extern long telldir(DIR *);
# 195 "/usr/include/sys/dir.h" 3 4
extern int scandir(const char *, struct dirent ***,
                    int (*)(struct dirent *),
                    int (*)(void *, void *));
extern int alphasort(void *, void *);




# 1 "/usr/include/sys/lkup.h" 1 3 4
# 204 "/usr/include/sys/dir.h" 2 3 4



# 1 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/limits.h" 1 3 4
# 208 "/usr/include/sys/dir.h" 2 3 4
# 276 "/usr/include/sys/dir.h" 3 4
struct direct {
        ushort_t d_ino;
        char d_name[14];
};
# 295 "/usr/include/sys/dir.h" 3 4
}
# 36 "/usr/include/dirent.h" 2 3 4
# 33 "../wxX11/include/wx/utils.h" 2
# 1 "/usr/include/unistd.h" 1 3 4
# 42 "/usr/include/unistd.h" 3 4
extern "C" {
# 54 "/usr/include/unistd.h" 3 4
# 1 "/usr/include/sys/access.h" 1 3 4
# 35 "/usr/include/sys/access.h" 3 4
# 1 "/usr/include/standards.h" 1 3 4
# 36 "/usr/include/sys/access.h" 2 3 4
# 86 "/usr/include/sys/access.h" 3 4
        extern char *acl_get(char *);
        extern char *acl_fget(int);
        extern int acl_chg(char *, int, int, int);
        extern int acl_fchg(int, int, int, int);
        extern int acl_put(char *, char *, int);
        extern int acl_fput(int, char *, int);
        extern int acl_set(char *, int, int, int);
        extern int acl_fset(int, int, int, int);
        extern int accessx(char *, int, int);
# 55 "/usr/include/unistd.h" 2 3 4
# 134 "/usr/include/unistd.h" 3 4
extern int access(const char *, int);
extern unsigned int alarm(unsigned int);
extern int chdir(const char *);
extern int chown(const char *, uid_t, gid_t);
extern int close(int);
extern char *ctermid(char *);
extern int dup(int);
extern int dup2(int, int);
extern int execl(const char *, const char *, ...);
extern int execv(const char *, char *const []);
extern int execle(const char *, const char *, ...);
extern int execve(const char *, char *const [], char *const []);
extern int execlp(const char *, const char *, ...);
extern int execvp(const char *, char *const []);
extern void _exit(int);
extern pid_t fork(void);
extern long fpathconf(int, int);
extern char *getcwd(char *, size_t);
extern gid_t getegid(void);
extern uid_t geteuid(void);
extern gid_t getgid(void);
extern int getgroups(int, gid_t []);
extern char *getlogin(void);

extern pid_t getpgrp(void);

extern pid_t getpid(void);
extern pid_t getppid(void);
extern uid_t getuid(void);
extern int isatty(int);
extern int link(const char *, const char *);
extern off_t lseek(int, off_t, int);

extern off64_t lseek64(int, off64_t, int);

extern long pathconf(const char *, int);
extern int pause(void);
extern int pipe(int []);

extern int pthread_atfork(void (*)(void), void (*)(void), void (*)(void));

extern ssize_t read(int, void *, size_t);
extern int rmdir(const char *);
extern int setgid(gid_t);
extern int setpgid(pid_t, pid_t);
extern pid_t setsid(void);
extern int setuid(uid_t);
extern unsigned int sleep(unsigned int);
extern long sysconf(int);
extern pid_t tcgetpgrp(int);
extern int tcsetpgrp(int, pid_t);
extern char *ttyname(int);
extern int unlink(const char *);
extern ssize_t write(int, const void *, size_t);
# 236 "/usr/include/unistd.h" 3 4
extern char *optarg;
extern int optind, opterr, optopt;
# 251 "/usr/include/unistd.h" 3 4
        extern size_t confstr(int, char*, size_t);
        extern char *crypt(const char *, const char *);
        extern void encrypt(char *, int);
        extern int fsync(int);
        extern int getopt(int, char* const*, const char*);
        extern int nice(int);
        extern void swab(const void *, void *, ssize_t);
        extern int chroot(const char *);
        extern char *cuserid(char *);
        extern char *getpass(const char *);
# 543 "/usr/include/unistd.h" 3 4
# 1 "/usr/include/sys/lockf.h" 1 3 4
# 38 "/usr/include/sys/lockf.h" 3 4
extern "C" {






# 1 "/usr/include/sys/stat.h" 1 3 4
# 42 "/usr/include/sys/stat.h" 3 4
extern "C" {





# 1 "/usr/include/sys/mode.h" 1 3 4
# 41 "/usr/include/sys/mode.h" 3 4
# 1 "/usr/include/standards.h" 1 3 4
# 42 "/usr/include/sys/mode.h" 2 3 4
# 49 "/usr/include/sys/stat.h" 2 3 4
# 61 "/usr/include/sys/stat.h" 3 4
struct stat
{
        dev_t st_dev;




        ino_t st_ino;




        mode_t st_mode;

        nlink_t st_nlink;
        ushort_t st_flag;






        uid_t st_uid;
        gid_t st_gid;


        dev_t st_rdev;



        off_t st_size;



        time_t st_atime;
        int st_spare1;
        time_t st_mtime;
        int st_spare2;
        time_t st_ctime;
        int st_spare3;
        blksize_t st_blksize;
        blkcnt_t st_blocks;


        int st_vfstype;
        uint_t st_vfs;
        uint_t st_type;
        uint_t st_gen;





        uint_t st_reserved[9];
# 124 "/usr/include/sys/stat.h" 3 4
};
# 183 "/usr/include/sys/stat.h" 3 4
struct stat64
{
        dev_t st_dev;




        ino_t st_ino;
        mode_t st_mode;
        nlink_t st_nlink;
        ushort_t st_flag;
        uid_t st_uid;
        gid_t st_gid;
        dev_t st_rdev;


        soff_t st_ssize;
        time_t st_atime;
        int st_spare1;
        time_t st_mtime;
        int st_spare2;
        time_t st_ctime;
        int st_spare3;
        blksize_t st_blksize;
        blkcnt_t st_blocks;


        int st_vfstype;
        uint_t st_vfs;
        uint_t st_type;
        uint_t st_gen;



        uint_t st_reserved[10];



        off64_t st_size;

};
# 236 "/usr/include/sys/stat.h" 3 4
        extern mode_t umask(mode_t);
# 264 "/usr/include/sys/stat.h" 3 4
        extern int mkdir(const char *, mode_t);
        extern int stat(const char *, struct stat *);
        extern int fstat(int, struct stat *);

        extern int stat64(const char *, struct stat64 *);
        extern int fstat64(int, struct stat64 *);


        extern int chmod(const char *, mode_t);


        extern int fchmod(int, mode_t);
        extern int lstat(const char *, struct stat *);

        extern int lstat64(const char *, struct stat64 *);


        extern int mknod(const char *, mode_t, dev_t);





        extern int mkfifo(const char *, mode_t);
# 329 "/usr/include/sys/stat.h" 3 4
}
# 46 "/usr/include/sys/lockf.h" 2 3 4
# 62 "/usr/include/sys/lockf.h" 3 4
        extern int lockf (int, int, off_t);

        extern int lockf64 (int, int, off64_t);







}
# 544 "/usr/include/unistd.h" 2 3 4
# 571 "/usr/include/unistd.h" 3 4
        extern int brk(void *);
        extern int fchdir(int);
        extern int fchown(int, uid_t, gid_t);
        extern int ftruncate(int, off_t);

        extern int ftruncate64(int, off64_t);

        extern int getdtablesize(void);
        extern int gethostname(char *, size_t);
        extern long gethostid(void);
        extern int getpagesize(void);
        extern pid_t getpgid(pid_t);
        extern pid_t getsid(pid_t);
        extern char *getwd(char *);
        extern int lchown(const char *, uid_t, gid_t);
        extern int readlink(const char *, char *, size_t);



        extern void *sbrk(intptr_t);




        extern pid_t setpgrp(void);

        extern int setregid(gid_t, gid_t);
        extern int setreuid(uid_t, uid_t);
        extern int symlink(const char *, const char *);
        extern void sync(void);
        extern int truncate(const char *, off_t);

        extern int truncate64(const char *, off64_t);

        extern useconds_t ualarm(useconds_t, useconds_t);
        extern int usleep(useconds_t);
        extern pid_t vfork(void);

        extern int getlogin_r(char *, size_t);
        extern int ttyname_r(int, char *, size_t);






        extern ssize_t pread(int, void *, size_t, off_t);
        extern ssize_t pwrite(int, const void *, size_t, off_t);

        extern ssize_t pread64(int, void *, size_t, off64_t);
        extern ssize_t pwrite64(int, const void *, size_t, off64_t);
# 631 "/usr/include/unistd.h" 3 4
extern char **environ;


        extern pid_t f_fork();
# 655 "/usr/include/unistd.h" 3 4
        extern int ioctl(int, int, ...);






        extern int setgroups(int, gid_t []);

        extern int readx(int, char*, unsigned, long);
        extern int writex(int, char*, unsigned, long);





        extern off_t fclear(int, off_t);
        extern int fsync_range(int, int, off_t, off_t);

        extern off64_t fclear64(int, off64_t);
        extern int fsync_range64(int, int, off64_t, off64_t);

        extern offset_t llseek(int, offset_t, int);
        extern char * getusershell(void);
        extern void setusershell(void);
        extern void endusershell(void);
        extern char * get_current_dir_name(void);
        extern int sysfs(int, ...);
        extern int fdatasync(int);
        extern int finfo(const char *, int, void *, int32long64_t);
        extern int ffinfo(int, int, void *, int32long64_t);
# 696 "/usr/include/unistd.h" 3 4
}
# 34 "../wxX11/include/wx/utils.h" 2


# 1 "/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.0.4/include/stdio.h" 1 3 4
# 37 "../wxX11/include/wx/utils.h" 2





class wxProcess;
class wxFrame;
class wxWindow;
class wxWindowList;
class wxPoint;
# 66 "../wxX11/include/wx/utils.h"
            char* copystring(const char *s);


            bool StringMatch(const char *one, const char *two, bool subString = 1, bool exact = 0);
# 79 "../wxX11/include/wx/utils.h"
            void wxBell();


            wxString wxGetOsDescription();


            int wxGetOsVersion(int *majorVsn = (int *) __null,
                               int *minorVsn = (int *) __null);


            wxString wxNow();


            const char *wxGetInstallPrefix();

            wxString wxGetDataDir();






            bool wxSetDetectableAutoRepeat( bool flag );






            long wxNewId();





            void wxRegisterId(long id);





            long wxGetCurrentId();







extern const char* wxFloatToStringStr;
extern const char* wxDoubleToStringStr;

            void StringToFloat(const char *s, float *number);
            char* FloatToString(float number, const char *fmt = wxFloatToStringStr);
            void StringToDouble(const char *s, double *number);
            char* DoubleToString(double number, const char *fmt = wxDoubleToStringStr);
            void StringToInt(const char *s, int *number);
            void StringToLong(const char *s, long *number);
            char* IntToString(int number);
            char* LongToString(long number);


            int wxHexToDec(const wxString& buf);


            void wxDecToHex(int dec, char *buf);
            wxString wxDecToHex(int dec);






            long wxExecute(char **argv, bool sync = 0,
                           wxProcess *process = (wxProcess *) __null);
            long wxExecute(const wxString& command, bool sync = 0,
                           wxProcess *process = (wxProcess *) __null);


            long wxExecute(const wxString& command,
                           wxArrayString& output);


            long wxExecute(const wxString& command,
                           wxArrayString& output,
                           wxArrayString& error);

enum wxSignal
{
    wxSIGNONE = 0,
    wxSIGHUP,
    wxSIGINT,
    wxSIGQUIT,
    wxSIGILL,
    wxSIGTRAP,
    wxSIGABRT,
    wxSIGIOT = wxSIGABRT,
    wxSIGEMT,
    wxSIGFPE,
    wxSIGKILL,
    wxSIGBUS,
    wxSIGSEGV,
    wxSIGSYS,
    wxSIGPIPE,
    wxSIGALRM,
    wxSIGTERM


};

enum wxKillError
{
    wxKILL_OK,
    wxKILL_BAD_SIGNAL,
    wxKILL_ACCESS_DENIED,
    wxKILL_NO_PROCESS,
    wxKILL_ERROR
};





            int wxKill(long pid,
                       wxSignal sig = wxSIGTERM,
                       wxKillError *rc = __null);



            bool wxShell(const wxString& command = wxEmptyString);



            bool wxShell(const wxString& command, wxArrayString& output);


            void wxSleep(int nSecs);


            void wxUsleep(unsigned long milliseconds);


            long wxGetFreeMemory();


            bool wxHandleFatalExceptions(bool doit = 1);







            bool wxGetEnv(const wxString& var, wxString *value);


            bool wxSetEnv(const wxString& var, const char *value);


inline bool wxUnsetEnv(const wxString& var) { return wxSetEnv(var, __null); }
# 247 "../wxX11/include/wx/utils.h"
            bool wxGetEmailAddress(char *buf, int maxSize);
            wxString wxGetEmailAddress();


            bool wxGetHostName(char *buf, int maxSize);
            wxString wxGetHostName();


            wxString wxGetFullHostName();
            bool wxGetFullHostName(char *buf, int maxSize);


            bool wxGetUserId(char *buf, int maxSize);
            wxString wxGetUserId();


            bool wxGetUserName(char *buf, int maxSize);
            wxString wxGetUserName();


            wxString wxGetHomeDir();
            const char* wxGetHomeDir(wxString *pstr);






            char* wxGetUserHome(const wxString& user = wxEmptyString);



            bool wxGetDiskSpace(const wxString& path,
                                wxLongLong *pTotal = __null,
                                wxLongLong *pFree = __null);







            char* wxStripMenuCodes(const char *in, char *out = (char *) __null);
            wxString wxStripMenuCodes(const wxString& str);


class wxAcceleratorEntry;
            wxAcceleratorEntry *wxGetAccelFromString(const wxString& label);
# 304 "../wxX11/include/wx/utils.h"
            wxWindow* wxFindWindowByLabel(const wxString& title, wxWindow *parent = (wxWindow *) __null);


            wxWindow* wxFindWindowByName(const wxString& name, wxWindow *parent = (wxWindow *) __null);


            int wxFindMenuItemId(wxFrame *frame, const wxString& menuString, const wxString& itemString);



            wxWindow* wxGenericFindWindowAtPoint(const wxPoint& pt);
            wxWindow* wxFindWindowAtPoint(const wxPoint& pt);






            bool wxYield();


            bool wxYieldIfNeeded();


            bool wxSafeYield(wxWindow *win = __null);


            void wxEnableTopLevelWindows(bool enable = 1);



            bool wxCheckForInterrupt(wxWindow *wnd);


            void wxFlushEvents();



class wxWindowDisabler
{
public:
    wxWindowDisabler(wxWindow *winToSkip = (wxWindow *)__null);
    ~wxWindowDisabler();

private:
    wxWindowList *m_winDisabled;
};






class wxCursor;
extern wxCursor* wxHOURGLASS_CURSOR;
            void wxBeginBusyCursor(wxCursor *cursor = wxHOURGLASS_CURSOR);


            void wxEndBusyCursor();


            bool wxIsBusy();


class wxBusyCursor
{
public:
    wxBusyCursor(wxCursor* cursor = wxHOURGLASS_CURSOR)
        { wxBeginBusyCursor(cursor); }
    ~wxBusyCursor()
        { wxEndBusyCursor(); }






    static const wxCursor &GetStoredCursor();
    static const wxCursor GetBusyCursor();
};







            bool wxWriteResource(const wxString& section, const wxString& entry, const wxString& value, const wxString& file = wxEmptyString);
            bool wxWriteResource(const wxString& section, const wxString& entry, float value, const wxString& file = wxEmptyString);
            bool wxWriteResource(const wxString& section, const wxString& entry, long value, const wxString& file = wxEmptyString);
            bool wxWriteResource(const wxString& section, const wxString& entry, int value, const wxString& file = wxEmptyString);

            bool wxGetResource(const wxString& section, const wxString& entry, char **value, const wxString& file = wxEmptyString);
            bool wxGetResource(const wxString& section, const wxString& entry, float *value, const wxString& file = wxEmptyString);
            bool wxGetResource(const wxString& section, const wxString& entry, long *value, const wxString& file = wxEmptyString);
            bool wxGetResource(const wxString& section, const wxString& entry, int *value, const wxString& file = wxEmptyString);


void wxGetMousePosition( int* x, int* y );
# 420 "../wxX11/include/wx/utils.h"
    WXDisplay *wxGetDisplay();
    bool wxSetDisplay(const wxString& display_name);
    wxString wxGetDisplayName();
# 448 "../wxX11/include/wx/utils.h"
            void wxDebugMsg(const char *fmt ...);


extern const char* wxInternalErrorStr;
            void wxError(const wxString& msg, const wxString& title = wxInternalErrorStr);


extern const char* wxFatalErrorStr;
            void wxFatalError(const wxString& msg, const wxString& title = wxFatalErrorStr);
# 23 "../wxX11/include/wx/cursor.h" 2
# 41 "../wxX11/include/wx/cursor.h"
class wxBusyCursorSuspender
{
public:
    wxBusyCursorSuspender()
    {
        if( wxIsBusy() )
        {
            wxSetCursor( wxBusyCursor::GetStoredCursor() );
        }
    }
    ~wxBusyCursorSuspender()
    {
        if( wxIsBusy() )
        {
            wxSetCursor( wxBusyCursor::GetBusyCursor() );
        }
    }
};
# 26 "../wxX11/include/wx/event.h" 2


# 1 "../wxX11/include/wx/thread.h" 1
# 29 "../wxX11/include/wx/event.h" 2





class wxList;


    class wxDC;
    class wxMenu;
    class wxWindow;






typedef int wxEventType;
# 96 "../wxX11/include/wx/event.h"
extern wxEventType wxNewEventType();
# 109 "../wxX11/include/wx/event.h"
    extern const wxEventType wxEVT_NULL;;
    const wxEventType wxEVT_FIRST = 10000;
    const wxEventType wxEVT_USER_FIRST = wxEVT_FIRST + 2000;


    extern const wxEventType wxEVT_COMMAND_BUTTON_CLICKED;
    extern const wxEventType wxEVT_COMMAND_CHECKBOX_CLICKED;
    extern const wxEventType wxEVT_COMMAND_CHOICE_SELECTED;
    extern const wxEventType wxEVT_COMMAND_LISTBOX_SELECTED;
    extern const wxEventType wxEVT_COMMAND_LISTBOX_DOUBLECLICKED;
    extern const wxEventType wxEVT_COMMAND_CHECKLISTBOX_TOGGLED;







    extern const wxEventType wxEVT_COMMAND_MENU_SELECTED;
    extern const wxEventType wxEVT_COMMAND_SLIDER_UPDATED;
    extern const wxEventType wxEVT_COMMAND_RADIOBOX_SELECTED;
    extern const wxEventType wxEVT_COMMAND_RADIOBUTTON_SELECTED;




    extern const wxEventType wxEVT_COMMAND_SCROLLBAR_UPDATED;
    extern const wxEventType wxEVT_COMMAND_VLBOX_SELECTED;
    extern const wxEventType wxEVT_COMMAND_COMBOBOX_SELECTED;
    extern const wxEventType wxEVT_COMMAND_TOOL_RCLICKED;
    extern const wxEventType wxEVT_COMMAND_TOOL_ENTER;
    extern const wxEventType wxEVT_COMMAND_SPINCTRL_UPDATED;


    extern const wxEventType wxEVT_SOCKET;
    extern const wxEventType wxEVT_TIMER;


    extern const wxEventType wxEVT_LEFT_DOWN;
    extern const wxEventType wxEVT_LEFT_UP;
    extern const wxEventType wxEVT_MIDDLE_DOWN;
    extern const wxEventType wxEVT_MIDDLE_UP;
    extern const wxEventType wxEVT_RIGHT_DOWN;
    extern const wxEventType wxEVT_RIGHT_UP;
    extern const wxEventType wxEVT_MOTION;
    extern const wxEventType wxEVT_ENTER_WINDOW;
    extern const wxEventType wxEVT_LEAVE_WINDOW;
    extern const wxEventType wxEVT_LEFT_DCLICK;
    extern const wxEventType wxEVT_MIDDLE_DCLICK;
    extern const wxEventType wxEVT_RIGHT_DCLICK;
    extern const wxEventType wxEVT_SET_FOCUS;
    extern const wxEventType wxEVT_KILL_FOCUS;
    extern const wxEventType wxEVT_CHILD_FOCUS;
    extern const wxEventType wxEVT_MOUSEWHEEL;


    extern const wxEventType wxEVT_NC_LEFT_DOWN;
    extern const wxEventType wxEVT_NC_LEFT_UP;
    extern const wxEventType wxEVT_NC_MIDDLE_DOWN;
    extern const wxEventType wxEVT_NC_MIDDLE_UP;
    extern const wxEventType wxEVT_NC_RIGHT_DOWN;
    extern const wxEventType wxEVT_NC_RIGHT_UP;
    extern const wxEventType wxEVT_NC_MOTION;
    extern const wxEventType wxEVT_NC_ENTER_WINDOW;
    extern const wxEventType wxEVT_NC_LEAVE_WINDOW;
    extern const wxEventType wxEVT_NC_LEFT_DCLICK;
    extern const wxEventType wxEVT_NC_MIDDLE_DCLICK;
    extern const wxEventType wxEVT_NC_RIGHT_DCLICK;


    extern const wxEventType wxEVT_CHAR;
    extern const wxEventType wxEVT_CHAR_HOOK;
    extern const wxEventType wxEVT_NAVIGATION_KEY;
    extern const wxEventType wxEVT_KEY_DOWN;
    extern const wxEventType wxEVT_KEY_UP;


    extern const wxEventType wxEVT_SET_CURSOR;


    extern const wxEventType wxEVT_SCROLL_TOP;
    extern const wxEventType wxEVT_SCROLL_BOTTOM;
    extern const wxEventType wxEVT_SCROLL_LINEUP;
    extern const wxEventType wxEVT_SCROLL_LINEDOWN;
    extern const wxEventType wxEVT_SCROLL_PAGEUP;
    extern const wxEventType wxEVT_SCROLL_PAGEDOWN;
    extern const wxEventType wxEVT_SCROLL_THUMBTRACK;
    extern const wxEventType wxEVT_SCROLL_THUMBRELEASE;


    extern const wxEventType wxEVT_SCROLLWIN_TOP;
    extern const wxEventType wxEVT_SCROLLWIN_BOTTOM;
    extern const wxEventType wxEVT_SCROLLWIN_LINEUP;
    extern const wxEventType wxEVT_SCROLLWIN_LINEDOWN;
    extern const wxEventType wxEVT_SCROLLWIN_PAGEUP;
    extern const wxEventType wxEVT_SCROLLWIN_PAGEDOWN;
    extern const wxEventType wxEVT_SCROLLWIN_THUMBTRACK;
    extern const wxEventType wxEVT_SCROLLWIN_THUMBRELEASE;


    extern const wxEventType wxEVT_SIZE;
    extern const wxEventType wxEVT_MOVE;
    extern const wxEventType wxEVT_CLOSE_WINDOW;
    extern const wxEventType wxEVT_END_SESSION;
    extern const wxEventType wxEVT_QUERY_END_SESSION;
    extern const wxEventType wxEVT_ACTIVATE_APP;
    extern const wxEventType wxEVT_POWER;
    extern const wxEventType wxEVT_ACTIVATE;
    extern const wxEventType wxEVT_CREATE;
    extern const wxEventType wxEVT_DESTROY;
    extern const wxEventType wxEVT_SHOW;
    extern const wxEventType wxEVT_ICONIZE;
    extern const wxEventType wxEVT_MAXIMIZE;
    extern const wxEventType wxEVT_MOUSE_CAPTURE_CHANGED;
    extern const wxEventType wxEVT_PAINT;
    extern const wxEventType wxEVT_ERASE_BACKGROUND;
    extern const wxEventType wxEVT_NC_PAINT;
    extern const wxEventType wxEVT_PAINT_ICON;
    extern const wxEventType wxEVT_MENU_OPEN;
    extern const wxEventType wxEVT_MENU_CLOSE;
    extern const wxEventType wxEVT_MENU_HIGHLIGHT;

    extern const wxEventType wxEVT_CONTEXT_MENU;
    extern const wxEventType wxEVT_SYS_COLOUR_CHANGED;
    extern const wxEventType wxEVT_DISPLAY_CHANGED;
    extern const wxEventType wxEVT_SETTING_CHANGED;
    extern const wxEventType wxEVT_QUERY_NEW_PALETTE;
    extern const wxEventType wxEVT_PALETTE_CHANGED;
    extern const wxEventType wxEVT_JOY_BUTTON_DOWN;
    extern const wxEventType wxEVT_JOY_BUTTON_UP;
    extern const wxEventType wxEVT_JOY_MOVE;
    extern const wxEventType wxEVT_JOY_ZMOVE;
    extern const wxEventType wxEVT_DROP_FILES;
    extern const wxEventType wxEVT_DRAW_ITEM;
    extern const wxEventType wxEVT_MEASURE_ITEM;
    extern const wxEventType wxEVT_COMPARE_ITEM;
    extern const wxEventType wxEVT_INIT_DIALOG;
    extern const wxEventType wxEVT_IDLE;
    extern const wxEventType wxEVT_UPDATE_UI;



    extern const wxEventType wxEVT_COMMAND_LEFT_CLICK;
    extern const wxEventType wxEVT_COMMAND_LEFT_DCLICK;
    extern const wxEventType wxEVT_COMMAND_RIGHT_CLICK;
    extern const wxEventType wxEVT_COMMAND_RIGHT_DCLICK;
    extern const wxEventType wxEVT_COMMAND_SET_FOCUS;
    extern const wxEventType wxEVT_COMMAND_KILL_FOCUS;
    extern const wxEventType wxEVT_COMMAND_ENTER;


    extern const wxEventType wxEVT_HELP;
    extern const wxEventType wxEVT_DETAILED_HELP;
# 277 "../wxX11/include/wx/event.h"
    extern const wxEventType wxEVT_COMMAND_TEXT_UPDATED;
# 335 "../wxX11/include/wx/event.h"
class wxEvent : public wxObject
{
protected:
    wxEvent(const wxEvent&);

public:
    wxEvent(int id = 0, wxEventType commandType = wxEVT_NULL );

    void SetEventType(wxEventType typ) { m_eventType = typ; }
    wxEventType GetEventType() const { return m_eventType; }
    wxObject *GetEventObject() const { return m_eventObject; }
    void SetEventObject(wxObject *obj) { m_eventObject = obj; }
    long GetTimestamp() const { return m_timeStamp; }
    void SetTimestamp(long ts = 0) { m_timeStamp = ts; }
    int GetId() const { return m_id; }
    void SetId(int Id) { m_id = Id; }





    void Skip(bool skip = 1) { m_skipped = skip; }
    bool GetSkipped() const { return m_skipped; };



    bool IsCommandEvent() const { return m_isCommandEvent; }




    virtual wxEvent *Clone() const = 0;

public:
    wxObject* m_eventObject;
    wxEventType m_eventType;
    long m_timeStamp;
    int m_id;
    wxObject* m_callbackUserData;
    bool m_skipped;
    bool m_isCommandEvent;

private:
    public: static wxClassInfo sm_classwxEvent; virtual wxClassInfo *GetClassInfo() const { return &wxEvent::sm_classwxEvent; }
};
# 402 "../wxX11/include/wx/event.h"
class wxCommandEvent : public wxEvent
{
public:
    wxCommandEvent(wxEventType commandType = wxEVT_NULL, int id = 0);


    void SetClientData(void* clientData) { m_clientData = clientData; }
    void *GetClientData() const { return m_clientData; }


    void SetClientObject(wxClientData* clientObject) { m_clientObject = clientObject; }
    void *GetClientObject() const { return m_clientObject; }


    int GetSelection() const { return m_commandInt; }


    void SetString(const wxString& s) { m_commandString = s; }
    wxString GetString() const { return m_commandString; }


    bool IsChecked() const { return m_commandInt != 0; }


    bool IsSelection() const { return (m_extraLong != 0); }

    void SetExtraLong(long extraLong) { m_extraLong = extraLong; }
    long GetExtraLong() const { return m_extraLong ; }

    void SetInt(int i) { m_commandInt = i; }
    long GetInt() const { return m_commandInt ; }

    virtual wxEvent *Clone() const { return new wxCommandEvent(*this); }





public:
    wxString m_commandString;
    int m_commandInt;
    long m_extraLong;
    void* m_clientData;
    wxClientData* m_clientObject;

private:
    public: static wxClassInfo sm_classwxCommandEvent; virtual wxClassInfo *GetClassInfo() const { return &wxCommandEvent::sm_classwxCommandEvent; }
};



class wxNotifyEvent : public wxCommandEvent
{
public:
    wxNotifyEvent(wxEventType commandType = wxEVT_NULL, int id = 0)
                : wxCommandEvent(commandType, id) { m_bAllow = 1; }


    void Veto() { m_bAllow = 0; }


    void Allow() { m_bAllow = 1; }


    bool IsAllowed() const { return m_bAllow; }

    virtual wxEvent *Clone() const { return new wxNotifyEvent(*this); }

private:
    bool m_bAllow;

private:
    public: static wxClassInfo sm_classwxNotifyEvent; virtual wxClassInfo *GetClassInfo() const { return &wxNotifyEvent::sm_classwxNotifyEvent; }
};
# 490 "../wxX11/include/wx/event.h"
class wxScrollEvent : public wxCommandEvent
{
public:
    wxScrollEvent(wxEventType commandType = wxEVT_NULL,
                  int id = 0, int pos = 0, int orient = 0);

    int GetOrientation() const { return (int) m_extraLong ; }
    int GetPosition() const { return m_commandInt ; }
    void SetOrientation(int orient) { m_extraLong = (long) orient; }
    void SetPosition(int pos) { m_commandInt = pos; }

    virtual wxEvent *Clone() const { return new wxScrollEvent(*this); }

private:
    public: static wxClassInfo sm_classwxScrollEvent; virtual wxClassInfo *GetClassInfo() const { return &wxScrollEvent::sm_classwxScrollEvent; }
};
# 520 "../wxX11/include/wx/event.h"
class wxScrollWinEvent : public wxEvent
{
public:
    wxScrollWinEvent(wxEventType commandType = wxEVT_NULL,
                     int pos = 0, int orient = 0);

    int GetOrientation() const { return (int) m_extraLong ; }
    int GetPosition() const { return m_commandInt ; }
    void SetOrientation(int orient) { m_extraLong = (long) orient; }
    void SetPosition(int pos) { m_commandInt = pos; }

    virtual wxEvent *Clone() const { return new wxScrollWinEvent(*this); }

public:
    int m_commandInt;
    long m_extraLong;

private:
    public: static wxClassInfo sm_classwxScrollWinEvent; virtual wxClassInfo *GetClassInfo() const { return &wxScrollWinEvent::sm_classwxScrollWinEvent; }
};
# 570 "../wxX11/include/wx/event.h"
class wxMouseEvent : public wxEvent
{
public:
    wxMouseEvent(wxEventType mouseType = wxEVT_NULL);


    bool IsButton() const { return Button(-1); }


    bool ButtonDown(int but = -1) const;


    bool ButtonDClick(int but = -1) const;


    bool ButtonUp(int but = -1) const;


    bool Button(int but) const;


    bool ButtonIsDown(int but) const;


    int GetButton() const;


    bool ControlDown() const { return m_controlDown; }
    bool MetaDown() const { return m_metaDown; }
    bool AltDown() const { return m_altDown; }
    bool ShiftDown() const { return m_shiftDown; }


    bool LeftDown() const { return (m_eventType == wxEVT_LEFT_DOWN); }
    bool MiddleDown() const { return (m_eventType == wxEVT_MIDDLE_DOWN); }
    bool RightDown() const { return (m_eventType == wxEVT_RIGHT_DOWN); }

    bool LeftUp() const { return (m_eventType == wxEVT_LEFT_UP); }
    bool MiddleUp() const { return (m_eventType == wxEVT_MIDDLE_UP); }
    bool RightUp() const { return (m_eventType == wxEVT_RIGHT_UP); }

    bool LeftDClick() const { return (m_eventType == wxEVT_LEFT_DCLICK); }
    bool MiddleDClick() const { return (m_eventType == wxEVT_MIDDLE_DCLICK); }
    bool RightDClick() const { return (m_eventType == wxEVT_RIGHT_DCLICK); }



    bool LeftIsDown() const { return m_leftDown; }
    bool MiddleIsDown() const { return m_middleDown; }
    bool RightIsDown() const { return m_rightDown; }


    bool Dragging() const
    {
        return ((m_eventType == wxEVT_MOTION) &&
                (LeftIsDown() || MiddleIsDown() || RightIsDown()));
    }


    bool Moving() const { return (m_eventType == wxEVT_MOTION); }


    bool Entering() const { return (m_eventType == wxEVT_ENTER_WINDOW); }


    bool Leaving() const { return (m_eventType == wxEVT_LEAVE_WINDOW); }


    void GetPosition(wxCoord *xpos, wxCoord *ypos) const
    {
        if (xpos)
            *xpos = m_x;
        if (ypos)
            *ypos = m_y;
    }


    void GetPosition(long *xpos, long *ypos) const
    {
        if (xpos)
            *xpos = (long)m_x;
        if (ypos)
            *ypos = (long)m_y;
    }



    wxPoint GetPosition() const { return wxPoint(m_x, m_y); }


    wxPoint GetLogicalPosition(const wxDC& dc) const ;
# 679 "../wxX11/include/wx/event.h"
    wxCoord GetX() const { return m_x; }


    wxCoord GetY() const { return m_y; }
# 691 "../wxX11/include/wx/event.h"
    int GetWheelRotation() const { return m_wheelRotation; }




    int GetWheelDelta() const { return m_wheelDelta; }



    int GetLinesPerAction() const { return m_linesPerAction; }

    virtual wxEvent *Clone() const { return new wxMouseEvent(*this); }

public:
    wxCoord m_x, m_y;

    bool m_leftDown;
    bool m_middleDown;
    bool m_rightDown;

    bool m_controlDown;
    bool m_shiftDown;
    bool m_altDown;
    bool m_metaDown;

    int m_wheelRotation;
    int m_wheelDelta;
    int m_linesPerAction;

private:
    public: static wxClassInfo sm_classwxMouseEvent; virtual wxClassInfo *GetClassInfo() const { return &wxMouseEvent::sm_classwxMouseEvent; }
};







class wxSetCursorEvent : public wxEvent
{
public:
    wxSetCursorEvent(wxCoord x = 0, wxCoord y = 0)
    {
        m_eventType = wxEVT_SET_CURSOR;

        m_x = x;
        m_y = y;
    }

    wxCoord GetX() const { return m_x; }
    wxCoord GetY() const { return m_y; }

    void SetCursor(const wxCursor& cursor) { m_cursor = cursor; }
    const wxCursor& GetCursor() const { return m_cursor; }
    bool HasCursor() const { return m_cursor.Ok(); }

    virtual wxEvent *Clone() const { return new wxSetCursorEvent(*this); }

private:
    wxCoord m_x, m_y;
    wxCursor m_cursor;

private:
    public: static wxClassInfo sm_classwxSetCursorEvent; virtual wxClassInfo *GetClassInfo() const { return &wxSetCursorEvent::sm_classwxSetCursorEvent; }
};
# 767 "../wxX11/include/wx/event.h"
class wxKeyEvent : public wxEvent
{
public:
    wxKeyEvent(wxEventType keyType = wxEVT_NULL);


    bool ControlDown() const { return m_controlDown; }
    bool MetaDown() const { return m_metaDown; }
    bool AltDown() const { return m_altDown; }
    bool ShiftDown() const { return m_shiftDown; }




    bool HasModifiers() const { return ControlDown() || AltDown(); }


    int GetKeyCode() const { return (int)m_keyCode; }


    void GetPosition(wxCoord *xpos, wxCoord *ypos) const
    {
        if (xpos) *xpos = m_x;
        if (ypos) *ypos = m_y;
    }


    void GetPosition(long *xpos, long *ypos) const
    {
        if (xpos) *xpos = (long)m_x;
        if (ypos) *ypos = (long)m_y;
    }


    wxPoint GetPosition() const
        { return wxPoint(m_x, m_y); }


    wxCoord GetX() const { return m_x; }


    wxCoord GetY() const { return m_y; }


    long KeyCode() const { return m_keyCode; }

    virtual wxEvent *Clone() const { return new wxKeyEvent(*this); }



    wxKeyEvent& operator=(const wxKeyEvent& evt)
    {
        m_x = evt.m_x;
        m_y = evt.m_y;

        m_keyCode = evt.m_keyCode;

        m_controlDown = evt.m_controlDown;
        m_shiftDown = evt.m_shiftDown;
        m_altDown = evt.m_altDown;
        m_metaDown = evt.m_metaDown;
        m_scanCode = evt.m_scanCode;

        return *this;
    }

public:
    wxCoord m_x, m_y;

    long m_keyCode;

    bool m_controlDown;
    bool m_shiftDown;
    bool m_altDown;
    bool m_metaDown;
    bool m_scanCode;

private:
    public: static wxClassInfo sm_classwxKeyEvent; virtual wxClassInfo *GetClassInfo() const { return &wxKeyEvent::sm_classwxKeyEvent; }
};






class wxSizeEvent : public wxEvent
{
public:
    wxSizeEvent() { m_eventType = wxEVT_SIZE; }
    wxSizeEvent(const wxSize& sz, int id = 0)
        : m_size(sz)
        { m_eventType = wxEVT_SIZE; m_id = id; }

    wxSize GetSize() const { return m_size; }

    virtual wxEvent *Clone() const { return new wxSizeEvent(*this); }

public:
    wxSize m_size;

private:
    public: static wxClassInfo sm_classwxSizeEvent; virtual wxClassInfo *GetClassInfo() const { return &wxSizeEvent::sm_classwxSizeEvent; }
};







class wxMoveEvent : public wxEvent
{
public:
    wxMoveEvent() { m_eventType = wxEVT_MOVE; }
    wxMoveEvent(const wxPoint& pos, int id = 0)
        : m_pos(pos)
        { m_eventType = wxEVT_MOVE; m_id = id; }

    wxPoint GetPosition() const { return m_pos; }

    virtual wxEvent *Clone() const { return new wxMoveEvent(*this); }

    wxPoint m_pos;

private:
    public: static wxClassInfo sm_classwxMoveEvent; virtual wxClassInfo *GetClassInfo() const { return &wxMoveEvent::sm_classwxMoveEvent; }
};
# 908 "../wxX11/include/wx/event.h"
class wxPaintEvent : public wxEvent
{
public:
    wxPaintEvent(int Id = 0)
    {
        m_eventType = wxEVT_PAINT;
        m_id = Id;





    }
# 929 "../wxX11/include/wx/event.h"
    virtual wxEvent *Clone() const { return new wxPaintEvent(*this); }

private:
    public: static wxClassInfo sm_classwxPaintEvent; virtual wxClassInfo *GetClassInfo() const { return &wxPaintEvent::sm_classwxPaintEvent; }
};

class wxNcPaintEvent : public wxEvent
{
public:
    wxNcPaintEvent(int id = 0) : wxEvent(id) { SetEventType(wxEVT_NC_PAINT); }

    virtual wxEvent *Clone() const { return new wxNcPaintEvent(*this); }

private:
    public: static wxClassInfo sm_classwxNcPaintEvent; virtual wxClassInfo *GetClassInfo() const { return &wxNcPaintEvent::sm_classwxNcPaintEvent; }
};






class wxEraseEvent : public wxEvent
{
public:
    wxEraseEvent(int Id = 0, wxDC *dc = (wxDC *) __null)
        { m_eventType = wxEVT_ERASE_BACKGROUND; m_id = Id; m_dc = dc; }

    wxDC *GetDC() const { return m_dc; }

    virtual wxEvent *Clone() const { return new wxEraseEvent(*this); }

    wxDC *m_dc;

private:
    public: static wxClassInfo sm_classwxEraseEvent; virtual wxClassInfo *GetClassInfo() const { return &wxEraseEvent::sm_classwxEraseEvent; }
};







class wxFocusEvent : public wxEvent
{
public:
    wxFocusEvent(wxEventType type = wxEVT_NULL, int id = 0)
        { m_eventType = type; m_id = id; m_win = __null; }




    wxWindow *GetWindow() const { return m_win; }
    void SetWindow(wxWindow *win) { m_win = win; }

    virtual wxEvent *Clone() const { return new wxFocusEvent(*this); }

private:
    wxWindow *m_win;

private:
    public: static wxClassInfo sm_classwxFocusEvent; virtual wxClassInfo *GetClassInfo() const { return &wxFocusEvent::sm_classwxFocusEvent; }
};



class wxChildFocusEvent : public wxCommandEvent
{
public:
    wxChildFocusEvent(wxWindow *win = __null);

    wxWindow *GetWindow() const { return (wxWindow *)GetEventObject(); }

    virtual wxEvent *Clone() const { return new wxChildFocusEvent(*this); }

private:
    public: static wxClassInfo sm_classwxChildFocusEvent; virtual wxClassInfo *GetClassInfo() const { return &wxChildFocusEvent::sm_classwxChildFocusEvent; }
};







class wxActivateEvent : public wxEvent
{
public:
    wxActivateEvent(wxEventType type = wxEVT_NULL, bool active = 1, int Id = 0)
        { m_eventType = type; m_active = active; m_id = Id; }

    bool GetActive() const { return m_active; }

    virtual wxEvent *Clone() const { return new wxActivateEvent(*this); }

private:
    bool m_active;

private:
    public: static wxClassInfo sm_classwxActivateEvent; virtual wxClassInfo *GetClassInfo() const { return &wxActivateEvent::sm_classwxActivateEvent; }
};






class wxInitDialogEvent : public wxEvent
{
public:
    wxInitDialogEvent(int Id = 0)
        { m_eventType = wxEVT_INIT_DIALOG; m_id = Id; }

    virtual wxEvent *Clone() const { return new wxInitDialogEvent(*this); }

private:
    public: static wxClassInfo sm_classwxInitDialogEvent; virtual wxClassInfo *GetClassInfo() const { return &wxInitDialogEvent::sm_classwxInitDialogEvent; }
};
# 1056 "../wxX11/include/wx/event.h"
class wxMenuEvent : public wxEvent
{
public:
    wxMenuEvent(wxEventType type = wxEVT_NULL, int id = 0)
        : wxEvent(id, type)
        { m_menuId = id; }


    int GetMenuId() const { return m_menuId; }


    bool IsPopup() const { return m_menuId == -1; }

    virtual wxEvent *Clone() const { return new wxMenuEvent(*this); }

private:
    int m_menuId;

    public: static wxClassInfo sm_classwxMenuEvent; virtual wxClassInfo *GetClassInfo() const { return &wxMenuEvent::sm_classwxMenuEvent; }
};
# 1084 "../wxX11/include/wx/event.h"
class wxCloseEvent : public wxEvent
{
public:
    wxCloseEvent(wxEventType type = wxEVT_NULL, int id = 0)
    {
        m_eventType = type;
        m_loggingOff = 1;
        m_veto = 0;
        m_id = id;



        m_canVeto = 1;
    }

    void SetLoggingOff(bool logOff) { m_loggingOff = logOff; }
    bool GetLoggingOff() const { return m_loggingOff; }

    void Veto(bool veto = 1)
    {

        if (!(m_canVeto)) {; return; };


        m_veto = veto;
    }
    void SetCanVeto(bool canVeto) { m_canVeto = canVeto; }

    bool CanVeto() const { return m_canVeto; }
    bool GetVeto() const { return m_canVeto && m_veto; }
# 1123 "../wxX11/include/wx/event.h"
    virtual wxEvent *Clone() const { return new wxCloseEvent(*this); }

protected:
    bool m_loggingOff;
    bool m_veto, m_canVeto;





private:
    public: static wxClassInfo sm_classwxCloseEvent; virtual wxClassInfo *GetClassInfo() const { return &wxCloseEvent::sm_classwxCloseEvent; }

};





class wxShowEvent : public wxEvent
{
public:
    wxShowEvent(int id = 0, bool show = 0)
        { m_eventType = wxEVT_SHOW; m_id = id; m_show = show; }

    void SetShow(bool show) { m_show = show; }
    bool GetShow() const { return m_show; }

    virtual wxEvent *Clone() const { return new wxShowEvent(*this); }

protected:
    bool m_show;

private:
    public: static wxClassInfo sm_classwxShowEvent; virtual wxClassInfo *GetClassInfo() const { return &wxShowEvent::sm_classwxShowEvent; }
};





class wxIconizeEvent : public wxEvent
{
public:
    wxIconizeEvent(int id = 0, bool iconized = 1)
        { m_eventType = wxEVT_ICONIZE; m_id = id; m_iconized = iconized; }


    bool Iconized() const { return m_iconized; }

    virtual wxEvent *Clone() const { return new wxIconizeEvent(*this); }

protected:
    bool m_iconized;

private:
    public: static wxClassInfo sm_classwxIconizeEvent; virtual wxClassInfo *GetClassInfo() const { return &wxIconizeEvent::sm_classwxIconizeEvent; }
};




class wxMaximizeEvent : public wxEvent
{
public:
    wxMaximizeEvent(int id = 0)
        { m_eventType = wxEVT_MAXIMIZE; m_id = id; }

    virtual wxEvent *Clone() const { return new wxMaximizeEvent(*this); }

private:
    public: static wxClassInfo sm_classwxMaximizeEvent; virtual wxClassInfo *GetClassInfo() const { return &wxMaximizeEvent::sm_classwxMaximizeEvent; }
};
# 1216 "../wxX11/include/wx/event.h"
class wxJoystickEvent : public wxEvent
{
public:
    wxPoint m_pos;
    int m_zPosition;
    int m_buttonChange;
    int m_buttonState;
    int m_joyStick;

    wxJoystickEvent(wxEventType type = wxEVT_NULL,
                    int state = 0,
                    int joystick = 0,
                    int change = 0)
    {
        m_eventType = type;
        m_buttonState = state;
        m_pos = wxPoint(0,0);
        m_zPosition = 0;
        m_joyStick = joystick;
        m_buttonChange = change;
    }

    wxPoint GetPosition() const { return m_pos; }
    int GetZPosition() const { return m_zPosition; }
    int GetButtonState() const { return m_buttonState; }
    int GetButtonChange() const { return m_buttonChange; }
    int GetJoystick() const { return m_joyStick; }

    void SetJoystick(int stick) { m_joyStick = stick; }
    void SetButtonState(int state) { m_buttonState = state; }
    void SetButtonChange(int change) { m_buttonChange = change; }
    void SetPosition(const wxPoint& pos) { m_pos = pos; }
    void SetZPosition(int zPos) { m_zPosition = zPos; }


    bool IsButton() const { return ((GetEventType() == wxEVT_JOY_BUTTON_DOWN) ||
            (GetEventType() == wxEVT_JOY_BUTTON_UP)); }


    bool IsMove() const { return (GetEventType() == wxEVT_JOY_MOVE) ; }


    bool IsZMove() const { return (GetEventType() == wxEVT_JOY_ZMOVE) ; }


    bool ButtonDown(int but = -1) const
    { return ((GetEventType() == wxEVT_JOY_BUTTON_DOWN) &&
            ((but == -1) || (but == m_buttonChange))); }


    bool ButtonUp(int but = -1) const
    { return ((GetEventType() == wxEVT_JOY_BUTTON_UP) &&
            ((but == -1) || (but == m_buttonChange))); }


    bool ButtonIsDown(int but = -1) const
    { return (((but == -1) && (m_buttonState != 0)) ||
            ((m_buttonState & but) == but)); }

    virtual wxEvent *Clone() const { return new wxJoystickEvent(*this); }

private:
    public: static wxClassInfo sm_classwxJoystickEvent; virtual wxClassInfo *GetClassInfo() const { return &wxJoystickEvent::sm_classwxJoystickEvent; }
};






class wxDropFilesEvent : public wxEvent
{
public:
    int m_noFiles;
    wxPoint m_pos;
    wxString* m_files;

    wxDropFilesEvent(wxEventType type = wxEVT_NULL,
                     int noFiles = 0,
                     wxString *files = (wxString *) __null)
        { m_eventType = type; m_noFiles = noFiles; m_files = files; }


    wxDropFilesEvent(const wxDropFilesEvent& other)
        : m_pos(other.m_pos)
    {
        m_noFiles = other.m_noFiles;
        m_files = new wxString[m_noFiles];
        for ( int n = 0; n < m_noFiles; n++ )
        {
            m_files[n] = other.m_files[n];
        }
    }

    virtual ~wxDropFilesEvent()
    {
        delete [] m_files;
    }

    wxPoint GetPosition() const { return m_pos; }
    int GetNumberOfFiles() const { return m_noFiles; }
    wxString *GetFiles() const { return m_files; }

    virtual wxEvent *Clone() const { return new wxDropFilesEvent(*this); }

private:
    public: static wxClassInfo sm_classwxDropFilesEvent; virtual wxClassInfo *GetClassInfo() const { return &wxDropFilesEvent::sm_classwxDropFilesEvent; }
};






class wxUpdateUIEvent : public wxCommandEvent
{
public:
    wxUpdateUIEvent(wxWindowID commandId = 0)
    {
        m_eventType = wxEVT_UPDATE_UI;
        m_id = commandId;
        m_checked = 0;
        m_setChecked = 0;
        m_enabled = 0;
        m_setEnabled = 0;
        m_setText = 0;
        m_text = "";
    }

    bool GetChecked() const { return m_checked; }
    bool GetEnabled() const { return m_enabled; }
    wxString GetText() const { return m_text; }
    bool GetSetText() const { return m_setText; }
    bool GetSetChecked() const { return m_setChecked; }
    bool GetSetEnabled() const { return m_setEnabled; }

    void Check(bool check) { m_checked = check; m_setChecked = 1; }
    void Enable(bool enable) { m_enabled = enable; m_setEnabled = 1; }
    void SetText(const wxString& text) { m_text = text; m_setText = 1; }

    virtual wxEvent *Clone() const { return new wxUpdateUIEvent(*this); }

protected:
    bool m_checked;
    bool m_enabled;
    bool m_setEnabled;
    bool m_setText;
    bool m_setChecked;
    wxString m_text;

private:
    public: static wxClassInfo sm_classwxUpdateUIEvent; virtual wxClassInfo *GetClassInfo() const { return &wxUpdateUIEvent::sm_classwxUpdateUIEvent; }
};






class wxSysColourChangedEvent : public wxEvent
{
public:
    wxSysColourChangedEvent()
        { m_eventType = wxEVT_SYS_COLOUR_CHANGED; }

    virtual wxEvent *Clone() const { return new wxSysColourChangedEvent(*this); }

private:
    public: static wxClassInfo sm_classwxSysColourChangedEvent; virtual wxClassInfo *GetClassInfo() const { return &wxSysColourChangedEvent::sm_classwxSysColourChangedEvent; }
};




class wxDisplayChangedEvent : public wxEvent
{
private:
    public: static wxClassInfo sm_classwxDisplayChangedEvent; virtual wxClassInfo *GetClassInfo() const { return &wxDisplayChangedEvent::sm_classwxDisplayChangedEvent; }

public:
    wxDisplayChangedEvent()
        { m_eventType = wxEVT_DISPLAY_CHANGED; }

    virtual wxEvent *Clone() const { return new wxDisplayChangedEvent(*this); }
};





class wxPaletteChangedEvent : public wxEvent
{
public:
    wxPaletteChangedEvent(wxWindowID id = 0) : wxEvent(id)
    {
        m_eventType = wxEVT_PALETTE_CHANGED;
        m_changedWindow = (wxWindow *) __null;
    }

    void SetChangedWindow(wxWindow* win) { m_changedWindow = win; }
    wxWindow* GetChangedWindow() const { return m_changedWindow; }

    virtual wxEvent *Clone() const { return new wxPaletteChangedEvent(*this); }

protected:
    wxWindow* m_changedWindow;

private:
    public: static wxClassInfo sm_classwxPaletteChangedEvent; virtual wxClassInfo *GetClassInfo() const { return &wxPaletteChangedEvent::sm_classwxPaletteChangedEvent; }
};






class wxQueryNewPaletteEvent : public wxEvent
{
public:
    wxQueryNewPaletteEvent(wxWindowID id = 0): wxEvent(id)
        { m_eventType = wxEVT_QUERY_NEW_PALETTE; m_paletteRealized = 0; }


    void SetPaletteRealized(bool realized) { m_paletteRealized = realized; }
    bool GetPaletteRealized() const { return m_paletteRealized; }

    virtual wxEvent *Clone() const { return new wxQueryNewPaletteEvent(*this); }

protected:
    bool m_paletteRealized;

private:
    public: static wxClassInfo sm_classwxQueryNewPaletteEvent; virtual wxClassInfo *GetClassInfo() const { return &wxQueryNewPaletteEvent::sm_classwxQueryNewPaletteEvent; }
};






class wxNavigationKeyEvent : public wxEvent
{
public:
    wxNavigationKeyEvent()
    {
        SetEventType(wxEVT_NAVIGATION_KEY);

        m_flags = IsForward | Propagate;
        m_focus = (wxWindow *)__null;
    }


    bool GetDirection() const
        { return (m_flags & IsForward) != 0; }
    void SetDirection(bool bForward)
        { if ( bForward ) m_flags |= IsForward; else m_flags &= ~IsForward; }



    bool IsWindowChange() const
        { return (m_flags & WinChange) != 0; }
    void SetWindowChange(bool bIs)
        { if ( bIs ) m_flags |= WinChange; else m_flags &= ~WinChange; }




    bool ShouldPropagate() const
        { return (m_flags & Propagate) != 0; }
    void SetPropagate(bool bDoIt)
        { if ( bDoIt ) m_flags |= Propagate; else m_flags &= ~Propagate; }



    wxWindow* GetCurrentFocus() const { return m_focus; }
    void SetCurrentFocus(wxWindow *win) { m_focus = win; }

    virtual wxEvent *Clone() const { return new wxNavigationKeyEvent(*this); }

private:
    enum
    {
        IsForward = 0x0001,
        WinChange = 0x0002,
        Propagate = 0x0004
    };

    long m_flags;
    wxWindow *m_focus;

private:
    public: static wxClassInfo sm_classwxNavigationKeyEvent; virtual wxClassInfo *GetClassInfo() const { return &wxNavigationKeyEvent::sm_classwxNavigationKeyEvent; }
};
# 1520 "../wxX11/include/wx/event.h"
class wxWindowCreateEvent : public wxCommandEvent
{
public:
    wxWindowCreateEvent(wxWindow *win = __null);

    wxWindow *GetWindow() const { return (wxWindow *)GetEventObject(); }

    virtual wxEvent *Clone() const { return new wxWindowCreateEvent(*this); }

private:
    public: static wxClassInfo sm_classwxWindowCreateEvent; virtual wxClassInfo *GetClassInfo() const { return &wxWindowCreateEvent::sm_classwxWindowCreateEvent; }
};

class wxWindowDestroyEvent : public wxCommandEvent
{
public:
    wxWindowDestroyEvent(wxWindow *win = __null);

    wxWindow *GetWindow() const { return (wxWindow *)GetEventObject(); }

    virtual wxEvent *Clone() const { return new wxWindowDestroyEvent(*this); }

private:
    public: static wxClassInfo sm_classwxWindowDestroyEvent; virtual wxClassInfo *GetClassInfo() const { return &wxWindowDestroyEvent::sm_classwxWindowDestroyEvent; }
};







class wxHelpEvent : public wxCommandEvent
{
public:
    wxHelpEvent(wxEventType type = wxEVT_NULL,
                wxWindowID id = 0,
                const wxPoint& pt = wxDefaultPosition)
    {
        m_eventType = type;
        m_id = id;
        m_pos = pt;
    }


    const wxPoint& GetPosition() const { return m_pos; }
    void SetPosition(const wxPoint& pos) { m_pos = pos; }


    const wxString& GetLink() const { return m_link; }
    void SetLink(const wxString& link) { m_link = link; }


    const wxString& GetTarget() const { return m_target; }
    void SetTarget(const wxString& target) { m_target = target; }

    virtual wxEvent *Clone() const { return new wxHelpEvent(*this); }

protected:
    wxPoint m_pos;
    wxString m_target;
    wxString m_link;

private:
    public: static wxClassInfo sm_classwxHelpEvent; virtual wxClassInfo *GetClassInfo() const { return &wxHelpEvent::sm_classwxHelpEvent; }
};
# 1595 "../wxX11/include/wx/event.h"
class wxContextMenuEvent : public wxCommandEvent
{
public:
    wxContextMenuEvent(wxEventType type = wxEVT_NULL,
                wxWindowID id = 0,
                const wxPoint& pt = wxDefaultPosition)
    {
        m_eventType = type;
        m_id = id;
        m_pos = pt;
    }


    const wxPoint& GetPosition() const { return m_pos; }
    void SetPosition(const wxPoint& pos) { m_pos = pos; }

    virtual wxEvent *Clone() const { return new wxContextMenuEvent(*this); }

protected:
    wxPoint m_pos;

private:
    public: static wxClassInfo sm_classwxContextMenuEvent; virtual wxClassInfo *GetClassInfo() const { return &wxContextMenuEvent::sm_classwxContextMenuEvent; }
};






class wxIdleEvent : public wxEvent
{
public:
    wxIdleEvent()
        { m_eventType = wxEVT_IDLE; m_requestMore = 0; }

    void RequestMore(bool needMore = 1) { m_requestMore = needMore; }
    bool MoreRequested() const { return m_requestMore; }

    virtual wxEvent *Clone() const { return new wxIdleEvent(*this); }

protected:
    bool m_requestMore;

private:
    public: static wxClassInfo sm_classwxIdleEvent; virtual wxClassInfo *GetClassInfo() const { return &wxIdleEvent::sm_classwxIdleEvent; }
};
# 1661 "../wxX11/include/wx/event.h"
typedef void (wxObject::*wxObjectEventFunction)(wxEvent&);
# 1684 "../wxX11/include/wx/event.h"
struct wxEventTableEntryBase
{
    wxEventTableEntryBase(int id, int idLast,
                          wxObjectEventFunction fn, wxObject *data)
    {
        m_id = id;
        m_lastId = idLast;
        m_fn = fn;
        m_callbackUserData = data;
    }



    int m_id, m_lastId;


    wxObjectEventFunction m_fn;


    wxObject* m_callbackUserData;
};


struct wxEventTableEntry : public wxEventTableEntryBase
{
    wxEventTableEntry(const int& evType, int id, int idLast,
                      wxObjectEventFunction fn, wxObject *data)
                 : wxEventTableEntryBase(id, idLast, fn, data),
                   m_eventType(evType)
    {
    }







    const int& m_eventType;
};


struct wxDynamicEventTableEntry : public wxEventTableEntryBase
{
    wxDynamicEventTableEntry(int evType, int id, int idLast,
                             wxObjectEventFunction fn, wxObject *data)
        : wxEventTableEntryBase(id, idLast, fn, data)
    {
        m_eventType = evType;
    }




    int m_eventType;
};






struct wxEventTable
{
    const wxEventTable *baseTable;
    const wxEventTableEntry *entries;
};





class wxEvtHandler : public wxObject
{
public:
    wxEvtHandler();
    virtual ~wxEvtHandler();

    wxEvtHandler *GetNextHandler() const { return m_nextHandler; }
    wxEvtHandler *GetPreviousHandler() const { return m_previousHandler; }
    void SetNextHandler(wxEvtHandler *handler) { m_nextHandler = handler; }
    void SetPreviousHandler(wxEvtHandler *handler) { m_previousHandler = handler; }

    void SetEvtHandlerEnabled(bool enabled) { m_enabled = enabled; }
    bool GetEvtHandlerEnabled() const { return m_enabled; }


    virtual bool ProcessEvent(wxEvent& event);


    void AddPendingEvent(wxEvent& event);


    void ProcessPendingEvents();



    bool ProcessThreadEvent(wxEvent& event);




    void Connect( int id, int lastId, int eventType,
                  wxObjectEventFunction func,
                  wxObject *userData = (wxObject *) __null );


    void Connect( int id, int eventType,
                  wxObjectEventFunction func,
                  wxObject *userData = (wxObject *) __null )
        { Connect(id, -1, eventType, func, userData); }

    bool Disconnect( int id, int lastId, wxEventType eventType,
                  wxObjectEventFunction func = __null,
                  wxObject *userData = (wxObject *) __null );


    bool Disconnect( int id, wxEventType eventType = wxEVT_NULL,
                  wxObjectEventFunction func = __null,
                  wxObject *userData = (wxObject *) __null )
        { return Disconnect(id, -1, eventType, func, userData); }



    void SetClientObject( wxClientData *data ) { DoSetClientObject(data); }
    wxClientData *GetClientObject() const { return DoGetClientObject(); }

    void SetClientData( void *data ) { DoSetClientData(data); }
    void *GetClientData() const { return DoGetClientData(); }



    virtual bool SearchEventTable(wxEventTable& table, wxEvent& event);
    bool SearchDynamicEventTable( wxEvent& event );


    void ClearEventLocker()
   {

      delete m_eventsLocker;
      m_eventsLocker = __null;

   };
# 1847 "../wxX11/include/wx/event.h"
private:
    static const wxEventTableEntry sm_eventTableEntries[];

protected:
    static const wxEventTable sm_eventTable;

    virtual const wxEventTable *GetEventTable() const;

    wxEvtHandler* m_nextHandler;
    wxEvtHandler* m_previousHandler;
    wxList* m_dynamicEvents;
    wxList* m_pendingEvents;





    wxCriticalSection* m_eventsLocker;





    bool m_isWindow;


    bool m_enabled;







    union
    {
        wxClientData *m_clientObject;
        void *m_clientData;
    };


    wxClientDataType m_clientDataType;


    virtual void DoSetClientObject( wxClientData *data );
    virtual wxClientData *DoGetClientObject() const;

    virtual void DoSetClientData( void *data );
    virtual void *DoGetClientData() const;

private:
    private: wxEvtHandler(const wxEvtHandler&); wxEvtHandler& operator=(const wxEvtHandler&);
    public: static wxClassInfo sm_classwxEvtHandler; virtual wxClassInfo *GetClassInfo() const { return &wxEvtHandler::sm_classwxEvtHandler; }
};

typedef void (wxEvtHandler::*wxEventFunction)(wxEvent&);

typedef void (wxEvtHandler::*wxCommandEventFunction)(wxCommandEvent&);
typedef void (wxEvtHandler::*wxScrollEventFunction)(wxScrollEvent&);
typedef void (wxEvtHandler::*wxScrollWinEventFunction)(wxScrollWinEvent&);
typedef void (wxEvtHandler::*wxSizeEventFunction)(wxSizeEvent&);
typedef void (wxEvtHandler::*wxMoveEventFunction)(wxMoveEvent&);
typedef void (wxEvtHandler::*wxPaintEventFunction)(wxPaintEvent&);
typedef void (wxEvtHandler::*wxEraseEventFunction)(wxEraseEvent&);
typedef void (wxEvtHandler::*wxMouseEventFunction)(wxMouseEvent&);
typedef void (wxEvtHandler::*wxCharEventFunction)(wxKeyEvent&);
typedef void (wxEvtHandler::*wxFocusEventFunction)(wxFocusEvent&);
typedef void (wxEvtHandler::*wxChildFocusEventFunction)(wxChildFocusEvent&);
typedef void (wxEvtHandler::*wxActivateEventFunction)(wxActivateEvent&);
typedef void (wxEvtHandler::*wxMenuEventFunction)(wxMenuEvent&);
typedef void (wxEvtHandler::*wxJoystickEventFunction)(wxJoystickEvent&);
typedef void (wxEvtHandler::*wxDropFilesEventFunction)(wxDropFilesEvent&);
typedef void (wxEvtHandler::*wxInitDialogEventFunction)(wxInitDialogEvent&);
typedef void (wxEvtHandler::*wxSysColourChangedFunction)(wxSysColourChangedEvent&);
typedef void (wxEvtHandler::*wxDisplayChangedFunction)(wxDisplayChangedEvent&);
typedef void (wxEvtHandler::*wxUpdateUIEventFunction)(wxUpdateUIEvent&);
typedef void (wxEvtHandler::*wxIdleEventFunction)(wxIdleEvent&);
typedef void (wxEvtHandler::*wxCloseEventFunction)(wxCloseEvent&);
typedef void (wxEvtHandler::*wxShowEventFunction)(wxShowEvent&);
typedef void (wxEvtHandler::*wxIconizeEventFunction)(wxShowEvent&);
typedef void (wxEvtHandler::*wxMaximizeEventFunction)(wxShowEvent&);
typedef void (wxEvtHandler::*wxNavigationKeyEventFunction)(wxNavigationKeyEvent&);
typedef void (wxEvtHandler::*wxPaletteChangedEventFunction)(wxPaletteChangedEvent&);
typedef void (wxEvtHandler::*wxQueryNewPaletteEventFunction)(wxQueryNewPaletteEvent&);
typedef void (wxEvtHandler::*wxWindowCreateEventFunction)(wxWindowCreateEvent&);
typedef void (wxEvtHandler::*wxWindowDestroyEventFunction)(wxWindowDestroyEvent&);
typedef void (wxEvtHandler::*wxSetCursorEventFunction)(wxSetCursorEvent&);
typedef void (wxEvtHandler::*wxNotifyEventFunction)(wxNotifyEvent&);
typedef void (wxEvtHandler::*wxHelpEventFunction)(wxHelpEvent&);
typedef void (wxEvtHandler::*wxContextMenuEventFunction)(wxContextMenuEvent&);
# 2180 "../wxX11/include/wx/event.h"
extern wxList *wxPendingEvents;

    extern wxCriticalSection *wxPendingEventsLocker;
# 2193 "../wxX11/include/wx/event.h"
wxWindow* wxFindFocusDescendant(wxWindow* ancestor);
# 24 "../wxX11/include/wx/timer.h" 2
# 32 "../wxX11/include/wx/timer.h"
class wxTimerBase : public wxObject
{
public:





    wxTimerBase() { Init(); SetOwner(__null); }




    wxTimerBase(wxEvtHandler *owner, int id = -1)
        { Init(); SetOwner(owner, id); }


    void SetOwner(wxEvtHandler *owner, int id = -1)
        { m_owner = owner; m_idTimer = id; }

    virtual ~wxTimerBase();
# 62 "../wxX11/include/wx/timer.h"
    virtual bool Start(int milliseconds = -1, bool oneShot = 0);


    virtual void Stop() = 0;



    virtual void Notify();





    virtual bool IsRunning() const = 0;


    int GetInterval() const { return m_milli; }


    bool IsOneShot() const { return m_oneShot; }







protected:

    void Init() { m_oneShot = 0; m_milli = 0; }

    wxEvtHandler *m_owner;
    int m_idTimer;

    int m_milli;
    bool m_oneShot;
};
# 107 "../wxX11/include/wx/timer.h"
# 1 "../wxX11/include/wx/motif/timer.h" 1
# 16 "../wxX11/include/wx/motif/timer.h"
#pragma interface "timer.h"


class wxTimer : public wxTimerBase
{
    friend void wxTimerCallback(wxTimer * timer);

public:
    wxTimer() { Init(); }
    wxTimer(wxEvtHandler *owner, int id = -1) : wxTimerBase(owner, id)
    { Init(); }
    ~wxTimer();

    virtual bool Start(int milliseconds = -1, bool oneShot = 0);
    virtual void Stop();

    virtual bool IsRunning() const { return m_id != 0; }

protected:
    void Init();

    long m_id;

private:
    public: static wxClassInfo sm_classwxTimer; virtual wxClassInfo *GetClassInfo() const { return &wxTimer::sm_classwxTimer; }
};
# 108 "../wxX11/include/wx/timer.h" 2
# 124 "../wxX11/include/wx/timer.h"
class wxTimerRunner
{
public:
    wxTimerRunner(wxTimer& timer) : m_timer(timer) { }
    wxTimerRunner(wxTimer& timer, int milli, bool oneShot = 0)
        : m_timer(timer)
    {
        m_timer.Start(milli, oneShot);
    }

    void Start(int milli, bool oneShot = 0)
    {
        m_timer.Start(milli, oneShot);
    }

    ~wxTimerRunner()
    {
        if ( m_timer.IsRunning() )
        {
            m_timer.Stop();
        }
    }

private:
    wxTimer& m_timer;
};





class wxTimerEvent : public wxEvent
{
public:
    wxTimerEvent(int id = 0, int interval = 0) : wxEvent(id)
    {
        m_eventType = wxEVT_TIMER;

        m_interval = interval;
    }


    int GetInterval() const { return m_interval; }


    virtual wxEvent *Clone() const { return new wxTimerEvent(*this); }

private:
    int m_interval;

    public: static wxClassInfo sm_classwxTimerEvent; virtual wxClassInfo *GetClassInfo() const { return &wxTimerEvent::sm_classwxTimerEvent; }
};

typedef void (wxEvtHandler::*wxTimerEventFunction)(wxTimerEvent&);
# 190 "../wxX11/include/wx/timer.h"
class wxStopWatch
{
public:

    wxStopWatch() { Start(); }
    void Start(long t = 0);
    void Pause() { m_pause = GetElapsedTime(); }
    void Resume() { Start(m_pause); }


    long Time() const;

protected:

    long GetElapsedTime() const;

private:
    wxLongLong m_t0;
    long m_pause;
};







void wxStartTimer();



long wxGetElapsedTime(bool resetTimer = 1);
# 230 "../wxX11/include/wx/timer.h"
extern long wxGetLocalTime();


extern long wxGetUTCTime();



extern wxLongLong wxGetLocalTimeMillis();
# 84 "../wxX11/src/common/datetime.cpp" 2
# 143 "../wxX11/src/common/datetime.cpp"
class wxDateTimeHolidaysModule : public wxModule
{
public:
    virtual bool OnInit()
    {
        wxDateTimeHolidayAuthority::AddAuthority(new wxDateTimeWorkDays);

        return 1;
    }

    virtual void OnExit()
    {
        wxDateTimeHolidayAuthority::ClearAllAuthorities();
        wxDateTimeHolidayAuthority::ms_authorities.Clear();
    }

private:
    public: static wxClassInfo sm_classwxDateTimeHolidaysModule; virtual wxClassInfo *GetClassInfo() const { return &wxDateTimeHolidaysModule::sm_classwxDateTimeHolidaysModule; }
};

wxObject* wxConstructorForwxDateTimeHolidaysModule() { return new wxDateTimeHolidaysModule; } wxClassInfo wxDateTimeHolidaysModule::sm_classwxDateTimeHolidaysModule("wxDateTimeHolidaysModule", "wxModule", 0, (int) sizeof(wxDateTimeHolidaysModule), (wxObjectConstructorFn) wxConstructorForwxDateTimeHolidaysModule);






static const int MONTHS_IN_YEAR = 12;

static const int SEC_PER_MIN = 60;

static const int MIN_PER_HOUR = 60;

static const int HOURS_PER_DAY = 24;

static const long SECONDS_PER_DAY = 86400l;

static const int DAYS_PER_WEEK = 7;

static const long MILLISECONDS_PER_DAY = 86400000l;



static const long EPOCH_JDN = 2440587l;



static const int JDN_0_YEAR = -4713;
static const int JDN_0_MONTH = wxDateTime::Nov;
static const int JDN_0_DAY = 24;


static const long JDN_OFFSET = 32046l;
static const long DAYS_PER_5_MONTHS = 153l;
static const long DAYS_PER_4_YEARS = 1461l;
static const long DAYS_PER_400_YEARS = 146097l;



static const wxDateTime::wxDateTime_t gs_cumulatedDays[2][MONTHS_IN_YEAR] =
{
    { 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334 },
    { 0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335 }
};







const wxDateTime wxDefaultDateTime;

wxDateTime::Country wxDateTime::ms_country = wxDateTime::Country_Unknown;
# 225 "../wxX11/src/common/datetime.cpp"
    static wxCriticalSection gs_critsectTimezone;
# 245 "../wxX11/src/common/datetime.cpp"
static inline
wxDateTime::wxDateTime_t GetNumOfDaysInMonth(int year, wxDateTime::Month month)
{


    static wxDateTime::wxDateTime_t daysInMonth[2][MONTHS_IN_YEAR] =
    {
        { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 },
        { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }
    };

    return daysInMonth[wxDateTime::IsLeapYear(year)][month];
}


static int GetTimeZone()
{

    static bool s_timezoneSet = 0;

    wxCriticalSectionLocker lock(gs_critsectTimezone);

    if ( !s_timezoneSet )
    {


        time_t t = 0;

        (void)localtime(&t);
        s_timezoneSet = 1;
    }

    return (int)timezone;
}




static long GetTruncatedJDN(wxDateTime::wxDateTime_t day,
                            wxDateTime::Month mon,
                            int year)
{



                 ;







    year += 4800;


    int month;
    if ( mon >= wxDateTime::Mar )
    {
        month = mon - 2;
    }
    else
    {
        month = mon + 10;
        year--;
    }


    return ((year / 100) * DAYS_PER_400_YEARS) / 4
            + ((year % 100) * DAYS_PER_4_YEARS) / 4
            + (month * DAYS_PER_5_MONTHS + 2) / 5
            + day
            - JDN_OFFSET;
}


static wxString CallStrftime(const char *format, const tm* tm)
{
    char buf[4096];
    if ( !strftime(buf, (sizeof(buf)/sizeof(buf[0])), format, tm) )
    {

                                           ;
    }

    return wxString(buf);
}


static void ReplaceDefaultYearMonthWithCurrent(int *year,
                                               wxDateTime::Month *month)
{
    struct tm *tmNow = __null;

    if ( *year == wxDateTime::Inv_Year )
    {
        tmNow = wxDateTime::GetTmNow();

        *year = 1900 + tmNow->tm_year;
    }

    if ( *month == wxDateTime::Inv_Month )
    {
        if ( !tmNow )
            tmNow = wxDateTime::GetTmNow();

        *month = (wxDateTime::Month)tmNow->tm_mon;
    }
}


static void InitTm(struct tm& tm)
{


    memset(&tm, 0, sizeof(struct tm));

    tm.tm_mday = 1;
    tm.tm_year = 76;
    tm.tm_isdst = -1;
}





static wxDateTime::Month GetMonthFromName(const wxString& name, int flags)
{
    wxDateTime::Month mon;
    for ( mon = wxDateTime::Jan; mon < wxDateTime::Inv_Month; wxNextMonth(mon) )
    {


        if ( flags & wxDateTime::Name_Full )
        {
            if ( name.CmpNoCase(wxDateTime::
                        GetMonthName(mon, wxDateTime::Name_Full)) == 0 )
            {
                break;
            }
        }

        if ( flags & wxDateTime::Name_Abbr )
        {
            if ( name.CmpNoCase(wxDateTime::
                        GetMonthName(mon, wxDateTime::Name_Abbr)) == 0 )
            {
                break;
            }
        }
    }

    return mon;
}


static wxDateTime::WeekDay GetWeekDayFromName(const wxString& name, int flags)
{
    wxDateTime::WeekDay wd;
    for ( wd = wxDateTime::Sun; wd < wxDateTime::Inv_WeekDay; wxNextWDay(wd) )
    {


        if ( flags & wxDateTime::Name_Full )
        {
            if ( name.CmpNoCase(wxDateTime::
                        GetWeekDayName(wd, wxDateTime::Name_Full)) == 0 )
            {
                break;
            }
        }

        if ( flags & wxDateTime::Name_Abbr )
        {
            if ( name.CmpNoCase(wxDateTime::
                        GetWeekDayName(wd, wxDateTime::Name_Abbr)) == 0 )
            {
                break;
            }
        }
    }

    return wd;
}


static bool GetNumericToken(size_t len, const char*& p, unsigned long *number)
{
    size_t n = 1;
    wxString s;
    while ( isdigit(*p) )
    {
        s += *p++;

        if ( len && ++n > len )
            break;
    }

    return !!s && s.ToULong(number);
}


static wxString GetAlphaToken(const char*& p)
{
    wxString s;
    while ( isalpha(*p) )
    {
        s += *p++;
    }

    return s;
}
# 466 "../wxX11/src/common/datetime.cpp"
wxDateTime::Tm::Tm()
{
    year = (wxDateTime_t)wxDateTime::Inv_Year;
    mon = wxDateTime::Inv_Month;
    mday = 0;
    hour = min = sec = msec = 0;
    wday = wxDateTime::Inv_WeekDay;
}

wxDateTime::Tm::Tm(const struct tm& tm, const TimeZone& tz)
              : m_tz(tz)
{
    msec = 0;
    sec = tm.tm_sec;
    min = tm.tm_min;
    hour = tm.tm_hour;
    mday = tm.tm_mday;
    mon = (wxDateTime::Month)tm.tm_mon;
    year = 1900 + tm.tm_year;
    wday = tm.tm_wday;
    yday = tm.tm_yday;
}

bool wxDateTime::Tm::IsValid() const
{

    return (year != wxDateTime::Inv_Year) && (mon != wxDateTime::Inv_Month) &&
           (mday <= GetNumOfDaysInMonth(year, mon)) &&
           (hour < 24) && (min < 60) && (sec < 62) && (msec < 1000);
}

void wxDateTime::Tm::ComputeWeekDay()
{



    wday = (wxDateTime::WeekDay)(GetTruncatedJDN(mday, mon, year) + 2) % 7;
}

void wxDateTime::Tm::AddMonths(int monDiff)
{

    while ( monDiff < -mon )
    {
        year--;

        monDiff += MONTHS_IN_YEAR;
    }

    while ( monDiff + mon >= MONTHS_IN_YEAR )
    {
        year++;

        monDiff -= MONTHS_IN_YEAR;
    }

    mon = (wxDateTime::Month)(mon + monDiff);

                                                                       ;



}

void wxDateTime::Tm::AddDays(int dayDiff)
{

    while ( dayDiff + mday < 1 )
    {
        AddMonths(-1);

        dayDiff += GetNumOfDaysInMonth(year, mon);
    }

    mday += dayDiff;
    while ( mday > GetNumOfDaysInMonth(year, mon) )
    {
        mday -= GetNumOfDaysInMonth(year, mon);

        AddMonths(1);
    }

                                     ;

}





wxDateTime::TimeZone::TimeZone(wxDateTime::TZ tz)
{
    switch ( tz )
    {
        case wxDateTime::Local:


            m_offset = -GetTimeZone();
            break;

        case wxDateTime::GMT_12:
        case wxDateTime::GMT_11:
        case wxDateTime::GMT_10:
        case wxDateTime::GMT_9:
        case wxDateTime::GMT_8:
        case wxDateTime::GMT_7:
        case wxDateTime::GMT_6:
        case wxDateTime::GMT_5:
        case wxDateTime::GMT_4:
        case wxDateTime::GMT_3:
        case wxDateTime::GMT_2:
        case wxDateTime::GMT_1:
            m_offset = -3600*(wxDateTime::GMT0 - tz);
            break;

        case wxDateTime::GMT0:
        case wxDateTime::GMT1:
        case wxDateTime::GMT2:
        case wxDateTime::GMT3:
        case wxDateTime::GMT4:
        case wxDateTime::GMT5:
        case wxDateTime::GMT6:
        case wxDateTime::GMT7:
        case wxDateTime::GMT8:
        case wxDateTime::GMT9:
        case wxDateTime::GMT10:
        case wxDateTime::GMT11:
        case wxDateTime::GMT12:
            m_offset = 3600*(tz - wxDateTime::GMT0);
            break;

        case wxDateTime::A_CST:

            m_offset = 60l*(9*60 + 30);
            break;

        default:
                                                 ;
    }
}






bool wxDateTime::IsLeapYear(int year, wxDateTime::Calendar cal)
{
    if ( year == Inv_Year )
        year = GetCurrentYear();

    if ( cal == Gregorian )
    {




        return (year % 4 == 0) && ((year % 100 != 0) || (year % 400 == 0));
    }
    else if ( cal == Julian )
    {

        return year % 4 == 0;
    }
    else
    {
                                          ;

        return 0;
    }
}


int wxDateTime::GetCentury(int year)
{
    return year > 0 ? year / 100 : year / 100 - 1;
}


int wxDateTime::ConvertYearToBC(int year)
{

    return year > 0 ? year : year - 1;
}


int wxDateTime::GetCurrentYear(wxDateTime::Calendar cal)
{
    switch ( cal )
    {
        case Gregorian:
            return Now().GetYear();

        case Julian:
                                  ;
            break;

        default:
                                                  ;
            break;
    }

    return Inv_Year;
}


wxDateTime::Month wxDateTime::GetCurrentMonth(wxDateTime::Calendar cal)
{
    switch ( cal )
    {
        case Gregorian:
            return Now().GetMonth();

        case Julian:
                                  ;
            break;

        default:
                                                  ;
            break;
    }

    return Inv_Month;
}


wxDateTime::wxDateTime_t wxDateTime::GetNumberOfDays(int year, Calendar cal)
{
    if ( year == Inv_Year )
    {

        year = GetCurrentYear();
    }

    switch ( cal )
    {
        case Gregorian:
        case Julian:
            return IsLeapYear(year) ? 366 : 365;

        default:
                                                  ;
            break;
    }

    return 0;
}


wxDateTime::wxDateTime_t wxDateTime::GetNumberOfDays(wxDateTime::Month month,
                                                     int year,
                                                     wxDateTime::Calendar cal)
{
    if (!(month < MONTHS_IN_YEAR)) {; return 0; };

    if ( cal == Gregorian || cal == Julian )
    {
        if ( year == Inv_Year )
        {

            year = GetCurrentYear();
        }

        return GetNumOfDaysInMonth(year, month);
    }
    else
    {
                                              ;

        return 0;
    }
}


wxString wxDateTime::GetMonthName(wxDateTime::Month month,
                                  wxDateTime::NameFlags flags)
{
    if (!(month != Inv_Month)) {; return ""; };



    tm tm;
    InitTm(tm);
    tm.tm_mon = month;

    return CallStrftime(flags == Name_Abbr ? "%b" : "%B", &tm);
}


wxString wxDateTime::GetWeekDayName(wxDateTime::WeekDay wday,
                                    wxDateTime::NameFlags flags)
{
    if (!(wday != Inv_WeekDay)) {; return ""; };


    tm tm;
    InitTm(tm);
    tm.tm_mday = 28;
    tm.tm_mon = Nov;
    tm.tm_year = 99;


    tm.tm_mday += wday;


    (void)mktime(&tm);


    return CallStrftime(flags == Name_Abbr ? "%a" : "%A", &tm);
}


void wxDateTime::GetAmPmStrings(wxString *am, wxString *pm)
{
    tm tm;
    InitTm(tm);
    if ( am )
    {
        *am = CallStrftime("%p", &tm);
    }
    if ( pm )
    {
        tm.tm_hour = 13;
        *pm = CallStrftime("%p", &tm);
    }
}







wxDateTime::Country wxDateTime::GetCountry()
{


    if ( ms_country == Country_Unknown )
    {

        time_t t = time(__null);
        struct tm *tm = localtime(&t);

        wxString tz = CallStrftime("%Z", tm);
        if ( tz == "WET" || tz == "WEST" )
        {
            ms_country = UK;
        }
        else if ( tz == "CET" || tz == "CEST" )
        {
            ms_country = Country_EEC;
        }
        else if ( tz == "MSK" || tz == "MSD" )
        {
            ms_country = Russia;
        }
        else if ( tz == "AST" || tz == "ADT" ||
                  tz == "EST" || tz == "EDT" ||
                  tz == "CST" || tz == "CDT" ||
                  tz == "MST" || tz == "MDT" ||
                  tz == "PST" || tz == "PDT" )
        {
            ms_country = USA;
        }
        else
        {

            ms_country = USA;
        }
    }

    return ms_country;
}


void wxDateTime::SetCountry(wxDateTime::Country country)
{
    ms_country = country;
}


bool wxDateTime::IsWestEuropeanCountry(Country country)
{
    if ( country == Country_Default )
    {
        country = GetCountry();
    }

    return (Country_WesternEurope_Start <= country) &&
           (country <= Country_WesternEurope_End);
}
# 866 "../wxX11/src/common/datetime.cpp"
bool wxDateTime::IsDSTApplicable(int year, Country country)
{
    if ( year == Inv_Year )
    {

        year = GetCurrentYear();
    }

    if ( country == Country_Default )
    {
        country = GetCountry();
    }

    switch ( country )
    {
        case USA:
        case UK:


            return year >= 1966 ||
                   (year >= 1942 && year <= 1945) ||
                   (year == 1918 || year == 1919);

        default:

            return year > 1950;
    }
}


wxDateTime wxDateTime::GetBeginDST(int year, Country country)
{
    if ( year == Inv_Year )
    {

        year = GetCurrentYear();
    }

    if ( country == Country_Default )
    {
        country = GetCountry();
    }

    if ( !IsDSTApplicable(year, country) )
    {
        return wxDefaultDateTime;
    }

    wxDateTime dt;

    if ( IsWestEuropeanCountry(country) || (country == Russia) )
    {

        if ( !dt.SetToLastWeekDay(Sun, Mar, year) )
        {

                                                        ;
        }

        dt += wxTimeSpan::Hours(1);


        dt.MakeGMT(1);
    }
    else switch ( country )
    {
        case USA:
            switch ( year )
            {
                case 1918:
                case 1919:


                case 1943:
                case 1944:
                case 1945:
                    dt.Set(1, Jan, year);
                    break;

                case 1942:

                    dt.Set(2, Feb, year);
                    break;


                case 1974:
                    dt.Set(6, Jan, 1974);
                    break;

                case 1975:
                    dt.Set(23, Feb, 1975);
                    break;

                default:



                    if ( year < 1986 )
                    {
                        if ( !dt.SetToLastWeekDay(Sun, Apr, year) )
                        {

                                                                         ;
                        }
                    }
                    else
                    {
                        if ( !dt.SetToWeekDay(Sun, 1, Apr, year) )
                        {

                                                                         ;
                        }
                    }

                    dt += wxTimeSpan::Hours(2);


            }

            break;

        default:


            dt.Set(30, Mar, year);
    }

    return dt;
}


wxDateTime wxDateTime::GetEndDST(int year, Country country)
{
    if ( year == Inv_Year )
    {

        year = GetCurrentYear();
    }

    if ( country == Country_Default )
    {
        country = GetCountry();
    }

    if ( !IsDSTApplicable(year, country) )
    {
        return wxDefaultDateTime;
    }

    wxDateTime dt;

    if ( IsWestEuropeanCountry(country) || (country == Russia) )
    {

        if ( !dt.SetToLastWeekDay(Sun, Oct, year) )
        {

                                                          ;
        }

        dt += wxTimeSpan::Hours(1);


        dt.MakeGMT(1);
    }
    else switch ( country )
    {
        case USA:
            switch ( year )
            {
                case 1918:
                case 1919:


                case 1943:
                case 1944:
                    dt.Set(31, Dec, year);
                    break;

                case 1945:

                    dt.Set(30, Sep, year);
                    break;

                default:

                    if ( !dt.SetToLastWeekDay(Sun, Oct, year) )
                    {

                                                                      ;
                    }

                    dt += wxTimeSpan::Hours(2);


            }
            break;

        default:

            dt.Set(26, Oct, year);
    }

    return dt;
}






             wxDateTime wxDateTime::UNow()
{
    return wxDateTime(wxGetLocalTimeMillis());
}


wxDateTime& wxDateTime::Set(const struct tm& tm)
{
    struct tm tm2(tm);
    time_t timet = mktime(&tm2);

    if ( timet == (time_t)-1 )
    {


        if ( tm2.tm_year == 70 && tm2.tm_mon == 0 && tm2.tm_mday == 1 )
        {

            tm2.tm_sec -= GetTimeZone();

            timet = mktime(&tm2);
            if ( timet != (time_t)-1 )
            {
                timet += GetTimeZone();

                return Set(timet);
            }
        }

                                           ;

        *this = wxDefaultDateTime;

        return *this;
    }
    else
    {
        return Set(timet);
    }
}

wxDateTime& wxDateTime::Set(wxDateTime_t hour,
                            wxDateTime_t minute,
                            wxDateTime_t second,
                            wxDateTime_t millisec)
{


    if ( !(hour < 24 && second < 62 && minute < 60 && millisec < 1000) ) { ; *this = wxDefaultDateTime; return *this; };






    struct tm *tm = GetTmNow();

    if ( !(tm) ) { ; *this = wxDefaultDateTime; return *this; };


    tm->tm_hour = hour;
    tm->tm_min = minute;
    tm->tm_sec = second;

    (void)Set(*tm);


    return SetMillisecond(millisec);
}

wxDateTime& wxDateTime::Set(wxDateTime_t day,
                            Month month,
                            int year,
                            wxDateTime_t hour,
                            wxDateTime_t minute,
                            wxDateTime_t second,
                            wxDateTime_t millisec)
{
    if ( !(hour < 24 && second < 62 && minute < 60 && millisec < 1000) ) { ; *this = wxDefaultDateTime; return *this; };





    ReplaceDefaultYearMonthWithCurrent(&year, &month);

    if ( !((0 < day) && (day <= GetNumberOfDays(month, year))) ) { ; *this = wxDefaultDateTime; return *this; };



    static const int yearMinInRange = 1970;
    static const int yearMaxInRange = 2037;



    if ( year >= yearMinInRange && year <= yearMaxInRange )
    {


        struct tm tm;
        tm.tm_year = year - 1900;
        tm.tm_mon = month;
        tm.tm_mday = day;
        tm.tm_hour = hour;
        tm.tm_min = minute;
        tm.tm_sec = second;
        tm.tm_isdst = -1;

        (void)Set(tm);


        return SetMillisecond(millisec);
    }
    else
    {




        m_time = GetTruncatedJDN(day, month, year);
        m_time -= EPOCH_JDN;
        m_time *= SECONDS_PER_DAY * TIME_T_FACTOR;


        Add(wxTimeSpan(hour, minute, second + GetTimeZone(), millisec));
    }

    return *this;
}

wxDateTime& wxDateTime::Set(double jdn)
{


    jdn -= EPOCH_JDN + 0.5;

    jdn *= MILLISECONDS_PER_DAY;

    m_time.Assign(jdn);

    return *this;
}

wxDateTime& wxDateTime::ResetTime()
{
    Tm tm = GetTm();

    if ( tm.hour || tm.min || tm.sec || tm.msec )
    {
        tm.msec =
        tm.sec =
        tm.min =
        tm.hour = 0;

        Set(tm);
    }

    return *this;
}





wxDateTime::Tm wxDateTime::GetTm(const TimeZone& tz) const
{
                                                       ;

    time_t time = GetTicks();
    if ( time != (time_t)-1 )
    {

        tm *tm;
        if ( tz.GetOffset() == -GetTimeZone() )
        {

            tm = localtime(&time);


            if (!(tm)) {; return Tm(); };
        }
        else
        {
            time += (time_t)tz.GetOffset();




            if ( time >= 0 )

            {
                tm = gmtime(&time);


                if (!(tm)) {; return Tm(); };
            }
            else
            {
                tm = (struct tm *)__null;
            }
        }

        if ( tm )
        {

            Tm tm2(*tm, tz);
            long timeOnly = (m_time % MILLISECONDS_PER_DAY).ToLong();
            tm2.msec = (wxDateTime_t)(timeOnly % 1000);
            return tm2;
        }

    }




    wxLongLong timeMidnight = m_time + tz.GetOffset() * 1000;

    long timeOnly = (timeMidnight % MILLISECONDS_PER_DAY).ToLong();



    if ( timeOnly < 0 )
    {
        timeOnly = MILLISECONDS_PER_DAY + timeOnly;
    }

    timeMidnight -= timeOnly;





    long jdn = (timeMidnight / MILLISECONDS_PER_DAY).ToLong() + EPOCH_JDN;



                                                    ;


    long temp = (jdn + JDN_OFFSET) * 4 - 1;
    long century = temp / DAYS_PER_400_YEARS;


    temp = ((temp % DAYS_PER_400_YEARS) / 4) * 4 + 3;
    long year = (century * 100) + (temp / DAYS_PER_4_YEARS);
    long dayOfYear = (temp % DAYS_PER_4_YEARS) / 4 + 1;


    temp = dayOfYear * 5 - 3;
    long month = temp / DAYS_PER_5_MONTHS;
    long day = (temp % DAYS_PER_5_MONTHS) / 5 + 1;


    if ( month < 10 )
    {
        month += 3;
    }
    else
    {
        year += 1;
        month -= 9;
    }


    year -= 4800;


                                                                     ;
                                                               ;


    Tm tm;
    tm.year = (int)year;
    tm.mon = (Month)(month - 1);
    tm.mday = (wxDateTime_t)day;
    tm.msec = (wxDateTime_t)(timeOnly % 1000);
    timeOnly -= tm.msec;
    timeOnly /= 1000;

    tm.sec = (wxDateTime_t)(timeOnly % 60);
    timeOnly -= tm.sec;
    timeOnly /= 60;

    tm.min = (wxDateTime_t)(timeOnly % 60);
    timeOnly -= tm.min;

    tm.hour = (wxDateTime_t)(timeOnly / 60);

    return tm;
}

wxDateTime& wxDateTime::SetYear(int year)
{
                                                       ;

    Tm tm(GetTm());
    tm.year = year;
    Set(tm);

    return *this;
}

wxDateTime& wxDateTime::SetMonth(Month month)
{
                                                       ;

    Tm tm(GetTm());
    tm.mon = month;
    Set(tm);

    return *this;
}

wxDateTime& wxDateTime::SetDay(wxDateTime_t mday)
{
                                                       ;

    Tm tm(GetTm());
    tm.mday = mday;
    Set(tm);

    return *this;
}

wxDateTime& wxDateTime::SetHour(wxDateTime_t hour)
{
                                                       ;

    Tm tm(GetTm());
    tm.hour = hour;
    Set(tm);

    return *this;
}

wxDateTime& wxDateTime::SetMinute(wxDateTime_t min)
{
                                                       ;

    Tm tm(GetTm());
    tm.min = min;
    Set(tm);

    return *this;
}

wxDateTime& wxDateTime::SetSecond(wxDateTime_t sec)
{
                                                       ;

    Tm tm(GetTm());
    tm.sec = sec;
    Set(tm);

    return *this;
}

wxDateTime& wxDateTime::SetMillisecond(wxDateTime_t millisecond)
{
                                                       ;


    m_time -= m_time % 1000l;
    m_time += millisecond;

    return *this;
}





wxDateTime& wxDateTime::Add(const wxDateSpan& diff)
{
    Tm tm(GetTm());

    tm.year += diff.GetYears();
    tm.AddMonths(diff.GetMonths());


    if ( tm.mday > GetNumOfDaysInMonth(tm.year, tm.mon) )
    {







        tm.mday = GetNumOfDaysInMonth(tm.year, tm.mon);
    }

    tm.AddDays(diff.GetTotalDays());

    Set(tm);

                                                               ;


    return *this;
}





bool wxDateTime::SetToTheWeek(wxDateTime_t numWeek, WeekDay weekday)
{
    int year = GetYear();


    Set(4, Jan, year);
    SetToWeekDayInSameWeek(weekday) += wxDateSpan::Weeks(numWeek);

    if ( GetYear() != year )
    {

        return 0;
    }

    return 1;
}

wxDateTime& wxDateTime::SetToLastMonthDay(Month month,
                                          int year)
{

    if ( year == Inv_Year )
        year = GetYear();
    if ( month == Inv_Month )
        month = GetMonth();

    return Set(GetNumOfDaysInMonth(year, month), month, year);
}

wxDateTime& wxDateTime::SetToWeekDayInSameWeek(WeekDay weekday)
{
    if ( !(weekday != Inv_WeekDay) ) { ; *this = wxDefaultDateTime; return *this; };

    WeekDay wdayThis = GetWeekDay();
    if ( weekday == wdayThis )
    {

        return *this;
    }
    else if ( weekday < wdayThis )
    {
        return Subtract(wxDateSpan::Days(wdayThis - weekday));
    }
    else
    {
        return Add(wxDateSpan::Days(weekday - wdayThis));
    }
}

wxDateTime& wxDateTime::SetToNextWeekDay(WeekDay weekday)
{
    if ( !(weekday != Inv_WeekDay) ) { ; *this = wxDefaultDateTime; return *this; };

    int diff;
    WeekDay wdayThis = GetWeekDay();
    if ( weekday == wdayThis )
    {

        return *this;
    }
    else if ( weekday < wdayThis )
    {

        diff = 7 - (wdayThis - weekday);
    }
    else
    {
        diff = weekday - wdayThis;
    }

    return Add(wxDateSpan::Days(diff));
}

wxDateTime& wxDateTime::SetToPrevWeekDay(WeekDay weekday)
{
    if ( !(weekday != Inv_WeekDay) ) { ; *this = wxDefaultDateTime; return *this; };

    int diff;
    WeekDay wdayThis = GetWeekDay();
    if ( weekday == wdayThis )
    {

        return *this;
    }
    else if ( weekday > wdayThis )
    {

        diff = 7 - (weekday - wdayThis);
    }
    else
    {
        diff = wdayThis - weekday;
    }

    return Subtract(wxDateSpan::Days(diff));
}

bool wxDateTime::SetToWeekDay(WeekDay weekday,
                              int n,
                              Month month,
                              int year)
{
    if (!(weekday != Inv_WeekDay)) {; return 0; };





    ReplaceDefaultYearMonthWithCurrent(&year, &month);

    wxDateTime dt;



    if ( n > 0 )
    {

        dt.Set(1, month, year);


        WeekDay wdayFirst = dt.GetWeekDay();


        int diff = weekday - wdayFirst;
        if ( diff < 0 )
            diff += 7;


        diff += 7*(n - 1);

        dt += wxDateSpan::Days(diff);
    }
    else
    {

        dt.SetToLastMonthDay(month, year);


        WeekDay wdayLast = dt.GetWeekDay();


        int diff = wdayLast - weekday;
        if ( diff < 0 )
            diff += 7;


        diff += 7*(-n - 1);

        dt -= wxDateSpan::Days(diff);
    }


    if ( dt.GetMonth() == month )
    {
        *this = dt;

        return 1;
    }
    else
    {

        return 0;
    }
}

wxDateTime::wxDateTime_t wxDateTime::GetDayOfYear(const TimeZone& tz) const
{
    Tm tm(GetTm(tz));

    return gs_cumulatedDays[IsLeapYear(tm.year)][tm.mon] + tm.mday;
}

wxDateTime::wxDateTime_t wxDateTime::GetWeekOfYear(wxDateTime::WeekFlags flags,
                                                   const TimeZone& tz) const
{
    if ( flags == Default_First )
    {
        flags = GetCountry() == USA ? Sunday_First : Monday_First;
    }

    wxDateTime_t nDayInYear = GetDayOfYear(tz);
    wxDateTime_t week;

    WeekDay wd = GetWeekDay(tz);
    if ( flags == Sunday_First )
    {
        week = (nDayInYear - wd + 7) / 7;
    }
    else
    {

        week = (nDayInYear - (wd - 1 + 7) % 7 + 7) / 7;
    }


    WeekDay wdYearStart = wxDateTime(1, Jan, GetYear()).GetWeekDay();
    if ( wdYearStart == Wed || wdYearStart == Thu )
    {
        week++;
    }

    return week;
}

wxDateTime::wxDateTime_t wxDateTime::GetWeekOfMonth(wxDateTime::WeekFlags flags,
                                                    const TimeZone& tz) const
{
    Tm tm = GetTm(tz);
    wxDateTime dtMonthStart = wxDateTime(1, tm.mon, tm.year);
    int nWeek = GetWeekOfYear(flags) - dtMonthStart.GetWeekOfYear(flags) + 1;
    if ( nWeek < 0 )
    {


        nWeek += IsLeapYear(tm.year - 1) ? 53 : 52;
    }

    return (wxDateTime::wxDateTime_t)nWeek;
}

wxDateTime& wxDateTime::SetToYearDay(wxDateTime::wxDateTime_t yday)
{
    int year = GetYear();
    if ( !((0 < yday) && (yday <= GetNumberOfDays(year))) ) { ; *this = wxDefaultDateTime; return *this; };


    bool isLeap = IsLeapYear(year);
    for ( Month mon = Jan; mon < Inv_Month; wxNextMonth(mon) )
    {



        if ( (mon == Dec) || (yday < gs_cumulatedDays[isLeap][mon + 1]) )
        {
            Set(yday - gs_cumulatedDays[isLeap][mon], mon, year);

            break;
        }
    }

    return *this;
}





double wxDateTime::GetJulianDayNumber() const
{

    Tm tm(ToTimezone(GMT0).GetTm(GMT0));

    double result = GetTruncatedJDN(tm.mday, tm.mon, tm.year);


    result += 0.5;


    return result + ((double)(60*(60*tm.hour + tm.min) + tm.sec)) / 86400;
}

double wxDateTime::GetRataDie() const
{

    return GetJulianDayNumber() - 1721119.5 - 306;
}





int wxDateTime::IsDST(wxDateTime::Country country) const
{
    if (!(country == Country_Default)) {; return -1; };



    time_t timet = GetTicks();
    if ( timet != (time_t)-1 )
    {
        tm *tm = localtime(&timet);

        if (!(tm)) {; return -1; };

        return tm->tm_isdst;
    }
    else
    {
        int year = GetYear();

        if ( !IsDSTApplicable(year, country) )
        {

            return -1;
        }

        return IsBetween(GetBeginDST(year, country), GetEndDST(year, country));
    }
}

wxDateTime& wxDateTime::MakeTimezone(const TimeZone& tz, bool noDST)
{
    long secDiff = GetTimeZone() + tz.GetOffset();



    if ( !noDST && (IsDST() == 1) )
    {

        secDiff -= 3600;
    }

    return Subtract(wxTimeSpan::Seconds(secDiff));
}





wxString wxDateTime::Format(const char *format, const TimeZone& tz) const
{
    if (!(format)) {; return ""; };



    time_t time = GetTicks();
    if ( (time != (time_t)-1) && !strstr(format, "%l") )
    {

        tm *tm;
        if ( tz.GetOffset() == -GetTimeZone() )
        {

            tm = localtime(&time);


            if (!(tm)) {; return wxEmptyString; };
        }
        else
        {
            time += (int)tz.GetOffset();





            if ( time >= 0 )

            {
                tm = gmtime(&time);


                if (!(tm)) {; return wxEmptyString; };
            }
            else
            {
                tm = (struct tm *)__null;
            }
        }

        if ( tm )
        {
            return CallStrftime(format, tm);
        }

    }




    Tm tm = GetTm(tz);


    struct tm tmTimeOnly;
    tmTimeOnly.tm_hour = tm.hour;
    tmTimeOnly.tm_min = tm.min;
    tmTimeOnly.tm_sec = tm.sec;
    tmTimeOnly.tm_wday = 0;
    tmTimeOnly.tm_yday = 0;
    tmTimeOnly.tm_mday = 1;
    tmTimeOnly.tm_mon = 0;
    tmTimeOnly.tm_year = 76;
    tmTimeOnly.tm_isdst = 0;

    wxString tmp, res, fmt;
    for ( const char *p = format; *p; p++ )
    {
        if ( *p != '%' )
        {

            res += *p;

            continue;
        }


        switch ( *++p )
        {
            case 'Y':
                fmt = "%04d";
                break;

            case 'j':
            case 'l':
                fmt = "%03d";
                break;

            default:




                fmt = "%02d";
        }

        bool restart = 1;
        while ( restart )
        {
            restart = 0;


            switch ( *p )
            {
                case 'a':
                case 'A':

                    res += GetWeekDayName(tm.GetWeekDay(),
                                          *p == 'a' ? Name_Abbr : Name_Full);
                    break;

                case 'b':
                case 'B':
                    res += GetMonthName(tm.mon,
                                        *p == 'b' ? Name_Abbr : Name_Full);
                    break;

                case 'c':
                case 'x':
# 1942 "../wxX11/src/common/datetime.cpp"
                    {
# 1952 "../wxX11/src/common/datetime.cpp"
                        int yearReal = GetYear(tz);
                        int mod28 = yearReal % 28;



                        int year;
                        if ( mod28 < 10 )
                        {
                            year = 1988 + mod28;
                        }
                        else
                        {
                            year = 1970 + mod28 - 10;
                        }

                        int nCentury = year / 100,
                            nCenturyReal = yearReal / 100;




                        int nLostWeekDays = (nCentury - nCenturyReal) -
                                            (nCentury / 4 - nCenturyReal / 4);





                        while ( (nLostWeekDays % 7) != 0 )
                        {
                            nLostWeekDays += year++ % 4 ? 1 : 2;
                        }


                                                                               ;


                        wxString strYear, strYear2;
                        strYear.Printf("%d", year);
                        strYear2.Printf("%d", year % 100);



                        wxString fmt = format;
                        wxString replacement = (char)-1;
                        while ( fmt.Find(replacement) != (-1) )
                        {
                            replacement << (char)-1;
                        }

                        wxString replacement2 = (char)-2;
                        while ( fmt.Find(replacement) != (-1) )
                        {
                            replacement << (char)-2;
                        }


                        bool wasReplaced = fmt.Replace(strYear, replacement) > 0;
                        if ( !wasReplaced )
                            wasReplaced = fmt.Replace(strYear2, replacement2) > 0;
# 2020 "../wxX11/src/common/datetime.cpp"
                        struct tm tmAdjusted;
                        InitTm(tmAdjusted);
                        tmAdjusted.tm_hour = tm.hour;
                        tmAdjusted.tm_min = tm.min;
                        tmAdjusted.tm_sec = tm.sec;
                        tmAdjusted.tm_wday = tm.GetWeekDay();
                        tmAdjusted.tm_yday = GetDayOfYear();
                        tmAdjusted.tm_mday = tm.mday;
                        tmAdjusted.tm_mon = tm.mon;
                        tmAdjusted.tm_year = year - 1900;
                        tmAdjusted.tm_isdst = 0;
                        wxString str = CallStrftime(*p == 'c' ? "%c"
                                                                  : "%x",
                                                    &tmAdjusted);


                        wxString strYearReal, strYearReal2;
                        strYearReal.Printf("%04d", yearReal);
                        strYearReal2.Printf("%02d", yearReal % 100);
                        str.Replace(strYear, strYearReal);
                        str.Replace(strYear2, strYearReal2);


                        if ( wasReplaced )
                        {
                            str.Replace(replacement2, strYear2);
                            str.Replace(replacement, strYear);
                        }

                        res += str;
                    }
                    break;

                case 'd':
                    res += wxString::Format(fmt, tm.mday);
                    break;

                case 'H':
                    res += wxString::Format(fmt, tm.hour);
                    break;

                case 'I':
                    {

                        int hour12 = tm.hour > 12 ? tm.hour - 12
                                                  : tm.hour ? tm.hour : 12;
                        res += wxString::Format(fmt, hour12);
                    }
                    break;

                case 'j':
                    res += wxString::Format(fmt, GetDayOfYear(tz));
                    break;

                case 'l':
                    res += wxString::Format(fmt, GetMillisecond(tz));
                    break;

                case 'm':
                    res += wxString::Format(fmt, tm.mon + 1);
                    break;

                case 'M':
                    res += wxString::Format(fmt, tm.min);
                    break;

                case 'p':
                    res += CallStrftime("%p", &tmTimeOnly);
                    break;

                case 'S':
                    res += wxString::Format(fmt, tm.sec);
                    break;

                case 'U':
                    res += wxString::Format(fmt, GetWeekOfYear(Sunday_First, tz));
                    break;

                case 'W':
                    res += wxString::Format(fmt, GetWeekOfYear(Monday_First, tz));
                    break;

                case 'w':
                    res += wxString::Format(fmt, tm.GetWeekDay());
                    break;



                case 'X':

                    res += CallStrftime("%X", &tmTimeOnly);
                    break;

                case 'y':
                    res += wxString::Format(fmt, tm.year % 100);
                    break;

                case 'Y':
                    res += wxString::Format(fmt, tm.year);
                    break;

                case 'Z':
                    res += CallStrftime("%Z", &tmTimeOnly);
                    break;

                default:

                    fmt.Empty();
                    while ( *p == '-' || *p == '+' ||
                            *p == ' ' || isdigit(*p) )
                    {
                        fmt += *p;
                    }

                    if ( !fmt.IsEmpty() )
                    {

                        fmt.Prepend('%');
                        fmt.Append('d');

                        restart = 1;

                        break;
                    }


                                                                 ;



                case '%':
                    res += *p;
                    break;

                case 0:
                                                                         ;


                    res += '%';
                    break;
            }
        }
    }

    return res;
}
# 2175 "../wxX11/src/common/datetime.cpp"
const char *wxDateTime::ParseRfc822Date(const char* date)
{
    if (!(date)) {; return (char *)__null; };

    const char *p = date;
    const char *comma = strchr(p, ',');
    if ( comma )
    {




        p = comma + 1;

        if ( *p != ' ' )
        {
            wxLogDebug("no space after weekday in RFC822 time spec");

            return (char *)__null;
        }

        p++;
    }


    if ( !isdigit(*p) )
    {
        wxLogDebug("day number expected in RFC822 time spec, none found");

        return (char *)__null;
    }

    wxDateTime_t day = *p++ - '0';
    if ( isdigit(*p) )
    {
        day *= 10;
        day += *p++ - '0';
    }

    if ( *p++ != ' ' )
    {
        return (char *)__null;
    }


    wxString monName(p, 3);
    Month mon;
    if ( monName == "Jan" )
        mon = Jan;
    else if ( monName == "Feb" )
        mon = Feb;
    else if ( monName == "Mar" )
        mon = Mar;
    else if ( monName == "Apr" )
        mon = Apr;
    else if ( monName == "May" )
        mon = May;
    else if ( monName == "Jun" )
        mon = Jun;
    else if ( monName == "Jul" )
        mon = Jul;
    else if ( monName == "Aug" )
        mon = Aug;
    else if ( monName == "Sep" )
        mon = Sep;
    else if ( monName == "Oct" )
        mon = Oct;
    else if ( monName == "Nov" )
        mon = Nov;
    else if ( monName == "Dec" )
        mon = Dec;
    else
    {
        wxLogDebug("Invalid RFC 822 month name '%s'", monName.c_str());

        return (char *)__null;
    }

    p += 3;

    if ( *p++ != ' ' )
    {
        return (char *)__null;
    }


    if ( !isdigit(*p) )
    {

        return (char *)__null;
    }

    int year = *p++ - '0';

    if ( !isdigit(*p) )
    {

        return (char *)__null;
    }

    year *= 10;
    year += *p++ - '0';


    if ( isdigit(*p) )
    {
        year *= 10;
        year += *p++ - '0';

        if ( !isdigit(*p) )
        {

            return (char *)__null;
        }

        year *= 10;
        year += *p++ - '0';
    }

    if ( *p++ != ' ' )
    {
        return (char *)__null;
    }


    if ( !isdigit(*p) )
    {
        return (char *)__null;
    }

    wxDateTime_t hour = *p++ - '0';

    if ( !isdigit(*p) )
    {
        return (char *)__null;
    }

    hour *= 10;
    hour += *p++ - '0';

    if ( *p++ != ':' )
    {
        return (char *)__null;
    }

    if ( !isdigit(*p) )
    {
        return (char *)__null;
    }

    wxDateTime_t min = *p++ - '0';

    if ( !isdigit(*p) )
    {
        return (char *)__null;
    }

    min *= 10;
    min += *p++ - '0';

    wxDateTime_t sec = 0;
    if ( *p++ == ':' )
    {
        if ( !isdigit(*p) )
        {
            return (char *)__null;
        }

        sec = *p++ - '0';

        if ( !isdigit(*p) )
        {
            return (char *)__null;
        }

        sec *= 10;
        sec += *p++ - '0';
    }

    if ( *p++ != ' ' )
    {
        return (char *)__null;
    }


    int offset;
    if ( *p == '-' || *p == '+' )
    {

        bool plus = *p++ == '+';

        if ( !isdigit(*p) || !isdigit(*(p + 1)) )
        {
            return (char *)__null;
        }


        offset = 60*(10*(*p - '0') + (*(p + 1) - '0'));

        p += 2;

        if ( !isdigit(*p) || !isdigit(*(p + 1)) )
        {
            return (char *)__null;
        }


        offset += 10*(*p - '0') + (*(p + 1) - '0');

        if ( !plus )
        {
            offset = -offset;
        }

        p += 2;
    }
    else
    {


        if ( !*(p + 1) )
        {

            static const int offsets[26] =
            {

                -1, -2, -3, -4, -5, -6, -7, -8, -9, 0, -10, -11, -12,

                +1, +2, +3, +4, +5, +6, +7, +8, +9, +10, +11, +12, 0
            };

            if ( *p < 'A' || *p > 'Z' || *p == 'J' )
            {
                wxLogDebug("Invalid militaty timezone '%c'", *p);

                return (char *)__null;
            }

            offset = offsets[*p++ - 'A'];
        }
        else
        {

            wxString tz = p;
            if ( tz == "UT" || tz == "UTC" || tz == "GMT" )
                offset = 0;
            else if ( tz == "AST" )
                offset = AST - GMT0;
            else if ( tz == "ADT" )
                offset = ADT - GMT0;
            else if ( tz == "EST" )
                offset = EST - GMT0;
            else if ( tz == "EDT" )
                offset = EDT - GMT0;
            else if ( tz == "CST" )
                offset = CST - GMT0;
            else if ( tz == "CDT" )
                offset = CDT - GMT0;
            else if ( tz == "MST" )
                offset = MST - GMT0;
            else if ( tz == "MDT" )
                offset = MDT - GMT0;
            else if ( tz == "PST" )
                offset = PST - GMT0;
            else if ( tz == "PDT" )
                offset = PDT - GMT0;
            else
            {
                wxLogDebug("Unknown RFC 822 timezone '%s'", p);

                return (char *)__null;
            }

            p += tz.length();
        }


        offset *= 60;
    }


    Set(day, mon, year, hour, min, sec);
    MakeTimezone((wxDateTime_t)(60*offset));

    return p;
}

const char *wxDateTime::ParseFormat(const char *date,
                                      const char *format,
                                      const wxDateTime& dateDef)
{
    if (!(date && format)) {; return (char *)__null; };


    wxString str;
    unsigned long num;


    bool haveWDay = 0,
         haveYDay = 0,
         haveDay = 0,
         haveMon = 0,
         haveYear = 0,
         haveHour = 0,
         haveMin = 0,
         haveSec = 0;

    bool hourIsIn12hFormat = 0,
         isPM = 0;


    wxDateTime_t sec = 0,
                 min = 0,
                 hour = 0;
    WeekDay wday = Inv_WeekDay;
    wxDateTime_t yday = 0,
                 mday = 0;
    wxDateTime::Month mon = Inv_Month;
    int year = 0;

    const char *input = date;
    for ( const char *fmt = format; *fmt; fmt++ )
    {
        if ( *fmt != '%' )
        {
            if ( isspace(*fmt) )
            {


                while ( isspace(*input) )
                {
                    input++;
                }
            }
            else
            {


                if ( *input++ != *fmt )
                {

                    return (char *)__null;
                }
            }


            continue;
        }




        size_t width = 0;
        while ( isdigit(*++fmt) )
        {
            width *= 10;
            width += *fmt - '0';
        }


        switch ( *fmt )
        {
            case 'a':
            case 'A':
                {
                    int flag = *fmt == 'a' ? Name_Abbr : Name_Full;
                    wday = GetWeekDayFromName(GetAlphaToken(input), flag);
                    if ( wday == Inv_WeekDay )
                    {

                        return (char *)__null;
                    }
                }
                haveWDay = 1;
                break;

            case 'b':
            case 'B':
                {
                    int flag = *fmt == 'b' ? Name_Abbr : Name_Full;
                    mon = GetMonthFromName(GetAlphaToken(input), flag);
                    if ( mon == Inv_Month )
                    {

                        return (char *)__null;
                    }
                }
                haveMon = 1;
                break;

            case 'c':
                {
                    wxDateTime dt;



                    static const char *fmtCtime = "%a %b %d %H:%M:%S %Y";

                    const char *result = dt.ParseFormat(input, fmtCtime);
                    if ( !result )
                    {
                        result = dt.ParseFormat(input, "%x %X");
                    }

                    if ( !result )
                    {
                        result = dt.ParseFormat(input, "%X %x");
                    }

                    if ( !result )
                    {

                        return (char *)__null;
                    }

                    Tm tm = dt.GetTm();

                    haveDay = haveMon = haveYear =
                    haveHour = haveMin = haveSec = 1;

                    hour = tm.hour;
                    min = tm.min;
                    sec = tm.sec;

                    year = tm.year;
                    mon = tm.mon;
                    mday = tm.mday;

                    input = result;
                }
                break;

            case 'd':
                if ( !GetNumericToken(width, input, &num) ||
                        (num > 31) || (num < 1) )
                {

                    return (char *)__null;
                }



                haveDay = 1;
                mday = (wxDateTime_t)num;
                break;

            case 'H':
                if ( !GetNumericToken(width, input, &num) || (num > 23) )
                {

                    return (char *)__null;
                }

                haveHour = 1;
                hour = (wxDateTime_t)num;
                break;

            case 'I':
                if ( !GetNumericToken(width, input, &num) || !num || (num > 12) )
                {

                    return (char *)__null;
                }

                haveHour = 1;
                hourIsIn12hFormat = 1;
                hour = (wxDateTime_t)(num % 12);
                break;

            case 'j':
                if ( !GetNumericToken(width, input, &num) || !num || (num > 366) )
                {

                    return (char *)__null;
                }

                haveYDay = 1;
                yday = (wxDateTime_t)num;
                break;

            case 'm':
                if ( !GetNumericToken(width, input, &num) || !num || (num > 12) )
                {

                    return (char *)__null;
                }

                haveMon = 1;
                mon = (Month)(num - 1);
                break;

            case 'M':
                if ( !GetNumericToken(width, input, &num) || (num > 59) )
                {

                    return (char *)__null;
                }

                haveMin = 1;
                min = (wxDateTime_t)num;
                break;

            case 'p':
                {
                    wxString am, pm, token = GetAlphaToken(input);

                    GetAmPmStrings(&am, &pm);
                    if ( token.CmpNoCase(pm) == 0 )
                    {
                        isPM = 1;
                    }
                    else if ( token.CmpNoCase(am) != 0 )
                    {

                        return (char *)__null;
                    }
                }
                break;

            case 'r':
                {
                    wxDateTime dt;
                    input = dt.ParseFormat(input, "%I:%M:%S %p");
                    if ( !input )
                    {

                        return (char *)__null;
                    }

                    haveHour = haveMin = haveSec = 1;

                    Tm tm = dt.GetTm();
                    hour = tm.hour;
                    min = tm.min;
                    sec = tm.sec;
                }
                break;

            case 'R':
                {
                    wxDateTime dt;
                    input = dt.ParseFormat(input, "%H:%M");
                    if ( !input )
                    {

                        return (char *)__null;
                    }

                    haveHour = haveMin = 1;

                    Tm tm = dt.GetTm();
                    hour = tm.hour;
                    min = tm.min;
                }

            case 'S':
                if ( !GetNumericToken(width, input, &num) || (num > 61) )
                {

                    return (char *)__null;
                }

                haveSec = 1;
                sec = (wxDateTime_t)num;
                break;

            case 'T':
                {
                    wxDateTime dt;
                    input = dt.ParseFormat(input, "%H:%M:%S");
                    if ( !input )
                    {

                        return (char *)__null;
                    }

                    haveHour = haveMin = haveSec = 1;

                    Tm tm = dt.GetTm();
                    hour = tm.hour;
                    min = tm.min;
                    sec = tm.sec;
                }
                break;

            case 'w':
                if ( !GetNumericToken(width, input, &num) || (wday > 6) )
                {

                    return (char *)__null;
                }

                haveWDay = 1;
                wday = (WeekDay)num;
                break;

            case 'x':




                {
                    struct tm tm;
                    const char *result = strptime(input, "%x", &tm);
                    if ( result )
                    {
                        input = result;

                        haveDay = haveMon = haveYear = 1;

                        year = 1900 + tm.tm_year;
                        mon = (Month)tm.tm_mon;
                        mday = tm.tm_mday;

                        break;
                    }
                }



                {
                    wxDateTime dt;

                    wxString fmtDate, fmtDateAlt;
                    if ( IsWestEuropeanCountry(GetCountry()) ||
                         GetCountry() == Russia )
                    {
                        fmtDate = "%d/%m/%y";
                        fmtDateAlt = "%m/%d/%y";
                    }
                    else
                    {
                        fmtDate = "%m/%d/%y";
                        fmtDateAlt = "%d/%m/%y";
                    }

                    const char *result = dt.ParseFormat(input, fmtDate);

                    if ( !result )
                    {

                        result = dt.ParseFormat(input, fmtDateAlt);
                    }

                    if ( !result )
                    {

                        return (char *)__null;
                    }

                    Tm tm = dt.GetTm();

                    haveDay = haveMon = haveYear = 1;

                    year = tm.year;
                    mon = tm.mon;
                    mday = tm.mday;

                    input = result;
                }

                break;

            case 'X':

                {

                    struct tm tm;
                    input = strptime(input, "%X", &tm);
                    if ( !input )
                    {
                        return (char *)__null;
                    }

                    haveHour = haveMin = haveSec = 1;

                    hour = tm.tm_hour;
                    min = tm.tm_min;
                    sec = tm.tm_sec;
                }
# 2887 "../wxX11/src/common/datetime.cpp"
                break;

            case 'y':
                if ( !GetNumericToken(width, input, &num) || (num > 99) )
                {

                    return (char *)__null;
                }

                haveYear = 1;



                year = (num > 30 ? 1900 : 2000) + (wxDateTime_t)num;
                break;

            case 'Y':
                if ( !GetNumericToken(width, input, &num) )
                {

                    return (char *)__null;
                }

                haveYear = 1;
                year = (wxDateTime_t)num;
                break;

            case 'Z':
                                      ;
                break;

            case '%':
                if ( *input++ != '%' )
                {

                    return (char *)__null;
                }
                break;

            case 0:
                                                       ;



            default:
                return (char *)__null;
        }
    }


    Tm tmDef;
    if ( dateDef.IsValid() )
    {

        tmDef = dateDef.GetTm();
    }
    else if ( IsValid() )
    {

        tmDef = GetTm();
    }
    else
    {

        tmDef = Today().GetTm();
    }

    Tm tm = tmDef;


    if ( haveYear )
    {
        tm.year = year;
    }




    if ( haveMon && haveDay )
    {
        if ( mday > GetNumOfDaysInMonth(tm.year, mon) )
        {
            wxLogDebug("bad month day in wxDateTime::ParseFormat");

            return (char *)__null;
        }

        tm.mon = mon;
        tm.mday = mday;
    }
    else if ( haveYDay )
    {
        if ( yday > GetNumberOfDays(tm.year) )
        {
            wxLogDebug("bad year day in wxDateTime::ParseFormat");

            return (char *)__null;
        }

        Tm tm2 = wxDateTime(1, Jan, tm.year).SetToYearDay(yday).GetTm();

        tm.mon = tm2.mon;
        tm.mday = tm2.mday;
    }


    if ( haveHour && hourIsIn12hFormat && isPM )
    {

        hour += 12;
    }



    if ( haveHour )
    {
        tm.hour = hour;
    }

    if ( haveMin )
    {
        tm.min = min;
    }

    if ( haveSec )
    {
        tm.sec = sec;
    }

    Set(tm);

    return input;
}

const char *wxDateTime::ParseDateTime(const char *date)
{
    if (!(date)) {; return (char *)__null; };



                          ;

    return (char *)__null;
}

const char *wxDateTime::ParseDate(const char *date)
{




    if (!(date)) {; return (char *)__null; };

    const char *p = date;
    while ( isspace(*p) )
        p++;


    static struct
    {
        const char *str;
        int dayDiffFromToday;
    } literalDates[] =
    {
        { "today", 0 },
        { "yesterday", -1 },
        { "tomorrow", 1 },
    };

    for ( size_t n = 0; n < (sizeof(literalDates)/sizeof(literalDates[0])); n++ )
    {
        wxString date = wxGetTranslation(literalDates[n].str);
        size_t len = date.length();
        if ( wxStrlen(p) >= len && (wxString(p, len).CmpNoCase(date) == 0) )
        {

            p += len;

            int dayDiffFromToday = literalDates[n].dayDiffFromToday;
            *this = Today();
            if ( dayDiffFromToday )
            {
                *this += wxDateSpan::Days(dayDiffFromToday);
            }

            return p;
        }
    }







    bool haveDay = 0,
         haveWDay = 0,
         haveMon = 0,
         haveYear = 0;


    WeekDay wday = Inv_WeekDay;
    wxDateTime_t day = 0;
    wxDateTime::Month mon = Inv_Month;
    int year = 0;


    size_t nPosCur = 0;
    static const char *dateDelimiters = ".,/-\t\n ";
    wxStringTokenizer tok(p, dateDelimiters);
    while ( tok.HasMoreTokens() )
    {
        wxString token = tok.GetNextToken();
        if ( !token )
            continue;


        unsigned long val;
        if ( token.ToULong(&val) )
        {


            bool isDay = 0,
                 isMonth = 0,
                 isYear = 0;

            if ( !haveMon && val > 0 && val <= 12 )
            {

                isMonth = 1;
            }
            else
            {
                wxDateTime_t maxDays = haveMon
                    ? GetNumOfDaysInMonth(haveYear ? year : Inv_Year, mon)
                    : 31;


                if ( (val == 0) || (val > (unsigned long)maxDays) )
                {
                    isYear = 1;
                }
                else
                {
                    isDay = 1;
                }
            }

            if ( isYear )
            {
                if ( haveYear )
                    break;

                haveYear = 1;

                year = (wxDateTime_t)val;
            }
            else if ( isDay )
            {
                if ( haveDay )
                    break;

                haveDay = 1;

                day = (wxDateTime_t)val;
            }
            else if ( isMonth )
            {
                haveMon = 1;

                mon = (Month)(val - 1);
            }
        }
        else
        {

            Month mon2 = GetMonthFromName(token, Name_Full | Name_Abbr);
            if ( mon2 != Inv_Month )
            {

                if ( haveMon )
                {

                    if ( !haveDay )
                    {


                        day = (wxDateTime_t)mon + 1;
                        haveDay = 1;
                    }
                    else
                    {


                        break;
                    }
                }

                mon = mon2;

                haveMon = 1;
            }
            else
            {
                wday = GetWeekDayFromName(token, Name_Full | Name_Abbr);
                if ( wday != Inv_WeekDay )
                {

                    if ( haveWDay )
                    {
                        break;
                    }

                    haveWDay = 1;
                }
                else
                {

                    static const char *ordinals[] =
                    {
                        "first",
                        "second",
                        "third",
                        "fourth",
                        "fifth",
                        "sixth",
                        "seventh",
                        "eighth",
                        "ninth",
                        "tenth",
                        "eleventh",
                        "twelfth",
                        "thirteenth",
                        "fourteenth",
                        "fifteenth",
                        "sixteenth",
                        "seventeenth",
                        "eighteenth",
                        "nineteenth",
                        "twentieth",


                    };

                    size_t n;
                    for ( n = 0; n < (sizeof(ordinals)/sizeof(ordinals[0])); n++ )
                    {
                        if ( token.CmpNoCase(ordinals[n]) == 0 )
                        {
                            break;
                        }
                    }

                    if ( n == (sizeof(ordinals)/sizeof(ordinals[0])) )
                    {

                        break;
                    }


                    if ( haveDay )
                    {



                        break;
                    }

                    haveDay = 1;

                    day = (wxDateTime_t)(n + 1);
                }
            }
        }

        nPosCur = tok.GetPosition();
    }



    if ( !haveDay && !haveWDay )
    {
        wxLogDebug("ParseDate: no day, no weekday hence no date.");

        return (char *)__null;
    }

    if ( haveWDay && (haveMon || haveYear || haveDay) &&
         !(haveDay && haveMon && haveYear) )
    {



        return (char *)__null;
    }

    if ( !haveWDay && haveYear && !(haveDay && haveMon) )
    {

        if ( haveDay && !haveMon )
        {
            if ( day <= 12 )
            {

                mon = (wxDateTime::Month)(day - 1);


                if ( (year > 0) &&
                        (unsigned)year <= GetNumOfDaysInMonth(Inv_Year, mon) )
                {
                    day = year;

                    haveMon = 1;
                    haveYear = 0;
                }

            }
        }

        if ( !haveMon )
        {

            wxLogDebug("ParseDate: day and month should be specified if year is.");

            return (char *)__null;
        }
    }

    if ( !haveMon )
    {
        mon = GetCurrentMonth();
    }

    if ( !haveYear )
    {
        year = GetCurrentYear();
    }

    if ( haveDay )
    {
        Set(day, mon, year);

        if ( haveWDay )
        {

            if ( GetWeekDay() != wday )
            {

                wxLogDebug("ParseDate: inconsistent day/weekday.");

                return (char *)__null;
            }
        }
    }
    else
    {
        *this = Today();

        SetToWeekDayInSameWeek(wday);
    }


    p += nPosCur;
    if ( nPosCur && strchr(dateDelimiters, *(p - 1)) )
    {


        p--;
    }

    return p;
}

const char *wxDateTime::ParseTime(const char *time)
{
    if (!(time)) {; return (char *)__null; };


    static const struct
    {
        const char *name;
        wxDateTime_t hour;
    } stdTimes[] =
    {
        { "noon", 12 },
        { "midnight", 00 },

    };

    for ( size_t n = 0; n < (sizeof(stdTimes)/sizeof(stdTimes[0])); n++ )
    {
        wxString timeString = wxGetTranslation(stdTimes[n].name);
        size_t len = timeString.length();
        if ( timeString.CmpNoCase(wxString(time, len)) == 0 )
        {
            Set(stdTimes[n].hour, 0, 0);

            return time + len;
        }
    }





    const char *result = ParseFormat(time, "%I:%M:%S %p");

    if ( !result )
    {

        result = ParseFormat(time, "%H:%M:%S");
    }

    if ( !result )
    {

        result = ParseFormat(time, "%I:%M %p");
    }

    if ( !result )
    {

        result = ParseFormat(time, "%H:%M");
    }

    if ( !result )
    {

        result = ParseFormat(time, "%I %p");
    }

    if ( !result )
    {

        result = ParseFormat(time, "%H");
    }

    if ( !result )
    {


        result = ParseFormat(time, "%X");
    }



    return result;
}





bool wxDateTime::IsWorkDay(Country ) const
{
    return !wxDateTimeHolidayAuthority::IsHoliday(*this);
}
# 3452 "../wxX11/src/common/datetime.cpp"
enum TimeSpanPart
{
    Part_Week,
    Part_Day,
    Part_Hour,
    Part_Min,
    Part_Sec,
    Part_MSec
};
# 3478 "../wxX11/src/common/datetime.cpp"
wxString wxTimeSpan::Format(const char *format) const
{
    if (!(format)) {; return ""; };

    wxString str;
    str.Alloc(wxStrlen(format));
# 3499 "../wxX11/src/common/datetime.cpp"
    TimeSpanPart partBiggest = Part_MSec;

    for ( const char *pch = format; *pch; pch++ )
    {
        char ch = *pch;

        if ( ch == '%' )
        {

            wxString fmtPrefix = '%';


            long n;

            ch = *++pch;
            switch ( ch )
            {
                default:
                                                                ;


                case '%':
                    str += ch;


                    continue;

                case 'D':
                    n = GetDays();
                    if ( partBiggest < Part_Day )
                    {
                        n %= DAYS_PER_WEEK;
                    }
                    else
                    {
                        partBiggest = Part_Day;
                    }
                    break;

                case 'E':
                    partBiggest = Part_Week;
                    n = GetWeeks();
                    break;

                case 'H':
                    n = GetHours();
                    if ( partBiggest < Part_Hour )
                    {
                        n %= HOURS_PER_DAY;
                    }
                    else
                    {
                        partBiggest = Part_Hour;
                    }

                    fmtPrefix += "02";
                    break;

                case 'l':
                    n = GetMilliseconds().ToLong();
                    if ( partBiggest < Part_MSec )
                    {
                        n %= 1000;
                    }



                    fmtPrefix += "03";
                    break;

                case 'M':
                    n = GetMinutes();
                    if ( partBiggest < Part_Min )
                    {
                        n %= MIN_PER_HOUR;
                    }
                    else
                    {
                        partBiggest = Part_Min;
                    }

                    fmtPrefix += "02";
                    break;

                case 'S':
                    n = GetSeconds().ToLong();
                    if ( partBiggest < Part_Sec )
                    {
                        n %= SEC_PER_MIN;
                    }
                    else
                    {
                        partBiggest = Part_Sec;
                    }

                    fmtPrefix += "02";
                    break;
            }

            str += wxString::Format(fmtPrefix + "ld", n);
        }
        else
        {

            str += ch;
        }
    }

    return str;
}





# 1 "../wxX11/include/wx/arrimpl.cpp" 1
# 3615 "../wxX11/src/common/datetime.cpp" 2

wxDateTimeArray::~wxDateTimeArray() { Empty(); } void wxDateTimeArray::DoCopy(const wxDateTimeArray& src) { for ( size_t ui = 0; ui < src.Count(); ui++ ) Add(src[ui]); } wxDateTimeArray& wxDateTimeArray::operator=(const wxDateTimeArray& src) { Empty(); DoCopy(src); return *this; } wxDateTimeArray::wxDateTimeArray(const wxDateTimeArray& src) { DoCopy(src); } void wxDateTimeArray::DoEmpty() { for ( size_t ui = 0; ui < Count(); ui++ ) delete (_wxObjArraywxDateTimeArray*)wxBaseArrayPtrVoid::Item(ui); } void wxDateTimeArray::RemoveAt(size_t uiIndex) { if (!(uiIndex < Count())) {; return; }; delete (_wxObjArraywxDateTimeArray*)wxBaseArrayPtrVoid::Item(uiIndex); wxBaseArrayPtrVoid::RemoveAt(uiIndex); } void wxDateTimeArray::Add(const _wxObjArraywxDateTimeArray& item) { _wxObjArraywxDateTimeArray* pItem = new _wxObjArraywxDateTimeArray(item); if ( pItem != __null ) Add(pItem); } void wxDateTimeArray::Insert(const _wxObjArraywxDateTimeArray& item, size_t uiIndex) { _wxObjArraywxDateTimeArray* pItem = new _wxObjArraywxDateTimeArray(item); if ( pItem != __null ) Insert(pItem, uiIndex); } int wxDateTimeArray::Index(const _wxObjArraywxDateTimeArray& Item, bool bFromEnd) const { if ( bFromEnd ) { if ( Count() > 0 ) { size_t ui = Count() - 1; do { if ( (_wxObjArraywxDateTimeArray*)wxBaseArrayPtrVoid::Item(ui) == &Item ) return ui; ui--; } while ( ui != 0 ); } } else { for( size_t ui = 0; ui < Count(); ui++ ) { if( (_wxObjArraywxDateTimeArray*)wxBaseArrayPtrVoid::Item(ui) == &Item ) return ui; } } return (-1); };

static int
wxDateTimeCompareFunc(wxDateTime **first, wxDateTime **second)
{
    wxDateTime dt1 = **first,
               dt2 = **second;

    return dt1 == dt2 ? 0 : dt1 < dt2 ? -1 : +1;
}





wxHolidayAuthoritiesArray wxDateTimeHolidayAuthority::ms_authorities;


bool wxDateTimeHolidayAuthority::IsHoliday(const wxDateTime& dt)
{
    size_t count = ms_authorities.GetCount();
    for ( size_t n = 0; n < count; n++ )
    {
        if ( ms_authorities[n]->DoIsHoliday(dt) )
        {
            return 1;
        }
    }

    return 0;
}


size_t
wxDateTimeHolidayAuthority::GetHolidaysInRange(const wxDateTime& dtStart,
                                               const wxDateTime& dtEnd,
                                               wxDateTimeArray& holidays)
{
    wxDateTimeArray hol;

    holidays.Empty();

    size_t count = ms_authorities.GetCount();
    for ( size_t nAuth = 0; nAuth < count; nAuth++ )
    {
        ms_authorities[nAuth]->DoGetHolidaysInRange(dtStart, dtEnd, hol);

        { size_t count = (hol).Count(); for ( size_t n = 0; n < count; n++ ) { (holidays).Add((hol)[n]); } };
    }

    holidays.Sort(wxDateTimeCompareFunc);

    return holidays.GetCount();
}


void wxDateTimeHolidayAuthority::ClearAllAuthorities()
{
    { size_t count = (ms_authorities).Count(); for ( size_t n = 0; n < count; n++ ) { delete (ms_authorities)[n]; } (ms_authorities).Empty(); };
}


void wxDateTimeHolidayAuthority::AddAuthority(wxDateTimeHolidayAuthority *auth)
{
    ms_authorities.Add(auth);
}





bool wxDateTimeWorkDays::DoIsHoliday(const wxDateTime& dt) const
{
    wxDateTime::WeekDay wd = dt.GetWeekDay();

    return (wd == wxDateTime::Sun) || (wd == wxDateTime::Sat);
}

size_t wxDateTimeWorkDays::DoGetHolidaysInRange(const wxDateTime& dtStart,
                                                const wxDateTime& dtEnd,
                                                wxDateTimeArray& holidays) const
{
    if ( dtStart > dtEnd )
    {
                                                                    ;

        return 0u;
    }

    holidays.Empty();



    wxDateTime dtSatFirst = dtStart.GetNextWeekDay(wxDateTime::Sat),
               dtSatLast = dtEnd.GetPrevWeekDay(wxDateTime::Sat),
               dtSunFirst = dtStart.GetNextWeekDay(wxDateTime::Sun),
               dtSunLast = dtEnd.GetPrevWeekDay(wxDateTime::Sun),
               dt;

    for ( dt = dtSatFirst; dt <= dtSatLast; dt += wxDateSpan::Week() )
    {
        holidays.Add(dt);
    }

    for ( dt = dtSunFirst; dt <= dtSunLast; dt += wxDateSpan::Week() )
    {
        holidays.Add(dt);
    }

    return holidays.GetCount();
}


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

* Re: c++/6035: Internal compiler error in extract_insn
@ 2002-05-20  7:31 lerdsuwa
  0 siblings, 0 replies; 2+ messages in thread
From: lerdsuwa @ 2002-05-20  7:31 UTC (permalink / raw)
  To: gcc-bugs, gcc-prs, ian.brown, nobody

Synopsis: Internal compiler error in extract_insn

State-Changed-From-To: open->closed
State-Changed-By: lerdsuwa
State-Changed-When: Mon May 20 07:31:28 2002
State-Changed-Why:
    Fixed in 3.1.

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


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

end of thread, other threads:[~2002-05-20 14:31 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-03-22  1:56 c++/6035: Internal compiler error in extract_insn ian.brown
2002-05-20  7:31 lerdsuwa

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