diff options
103 files changed, 4516 insertions, 2405 deletions
diff --git a/HOWTO/INSTALL-CROSS.md b/HOWTO/INSTALL-CROSS.md index cb9d12e753..10f463c06d 100644 --- a/HOWTO/INSTALL-CROSS.md +++ b/HOWTO/INSTALL-CROSS.md @@ -537,7 +537,11 @@ When a variable has been set, no warning will be issued. * `erl_xcomp_ose_LM_LCF` - OSE load module linker configuration file -* `erl_xcomp_ose_LM_CONF` - OSE load module default configuration file +* `erl_xcomp_ose_BEAM_LM_CONF` - Beam OSE load module configuration file + +* `erl_xcomp_ose_EPMD_LM_CONF` - EPMD OSE load module configuration file + +* `erl_xcomp_ose_RUN_ERL_LM_CONF` - run_erl_lm OSE load module configuration file Copyright and License --------------------- diff --git a/aclocal.m4 b/aclocal.m4 index c51c26794a..2b47f7c4bc 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -83,8 +83,10 @@ AC_ARG_VAR(erl_xcomp_ose_LM_POST_LINK, [OSE postlink tool (only used when cross AC_ARG_VAR(erl_xcomp_ose_LM_SET_CONF, [Sets the configuration for an OSE load module (only used when cross compiling for OSE)]) AC_ARG_VAR(erl_xcomp_ose_LM_ELF_SIZE, [Prints the section size information for an OSE load module (only used when cross compiling for OSE)]) AC_ARG_VAR(erl_xcomp_ose_LM_LCF, [OSE load module linker configuration file (only used when cross compiling for OSE)]) -AC_ARG_VAR(erl_xcomp_ose_LM_CONF, [OSE load module default configuration file (only used when cross compiling for OSE)]) -AC_ARG_VAR(erl_xcomp_ose_CONFD, [OSE OSE confd source file]) +AC_ARG_VAR(erl_xcomp_ose_BEAM_LM_CONF, [BEAM OSE load module default configuration file (only used when cross compiling for OSE)]) +AC_ARG_VAR(erl_xcomp_ose_EPMD_LM_CONF, [EPMD OSE load module default configuration file (only used when cross compiling for OSE)]) +AC_ARG_VAR(erl_xcomp_ose_RUN_ERL_LM_CONF, [run_erl_lm OSE load module default configuration file (only used when cross compiling for OSE)]) +AC_ARG_VAR(erl_xcomp_ose_CONFD, [OSE confd source file]) AC_ARG_VAR(erl_xcomp_ose_CRT0_LM, [OSE crt0 lm source file]) ]) diff --git a/erts/aclocal.m4 b/erts/aclocal.m4 index c51c26794a..2b47f7c4bc 100644 --- a/erts/aclocal.m4 +++ b/erts/aclocal.m4 @@ -83,8 +83,10 @@ AC_ARG_VAR(erl_xcomp_ose_LM_POST_LINK, [OSE postlink tool (only used when cross AC_ARG_VAR(erl_xcomp_ose_LM_SET_CONF, [Sets the configuration for an OSE load module (only used when cross compiling for OSE)]) AC_ARG_VAR(erl_xcomp_ose_LM_ELF_SIZE, [Prints the section size information for an OSE load module (only used when cross compiling for OSE)]) AC_ARG_VAR(erl_xcomp_ose_LM_LCF, [OSE load module linker configuration file (only used when cross compiling for OSE)]) -AC_ARG_VAR(erl_xcomp_ose_LM_CONF, [OSE load module default configuration file (only used when cross compiling for OSE)]) -AC_ARG_VAR(erl_xcomp_ose_CONFD, [OSE OSE confd source file]) +AC_ARG_VAR(erl_xcomp_ose_BEAM_LM_CONF, [BEAM OSE load module default configuration file (only used when cross compiling for OSE)]) +AC_ARG_VAR(erl_xcomp_ose_EPMD_LM_CONF, [EPMD OSE load module default configuration file (only used when cross compiling for OSE)]) +AC_ARG_VAR(erl_xcomp_ose_RUN_ERL_LM_CONF, [run_erl_lm OSE load module default configuration file (only used when cross compiling for OSE)]) +AC_ARG_VAR(erl_xcomp_ose_CONFD, [OSE confd source file]) AC_ARG_VAR(erl_xcomp_ose_CRT0_LM, [OSE crt0 lm source file]) ]) diff --git a/erts/configure.in b/erts/configure.in index 208c294106..9ebb56e3bc 100644 --- a/erts/configure.in +++ b/erts/configure.in @@ -1042,6 +1042,8 @@ AC_CHECK_LIB(dl, dlopen) AC_CHECK_LIB(inet, main) AC_CHECK_LIB(util, openpty) +AC_CHECK_LIB(systemd-daemon, sd_listen_fds) + dnl Try to find a thread library. dnl dnl ETHR_LIB_NAME, ETHR_LIBS, ETHR_X_LIBS, ETHR_THR_LIB_BASE and ETHR_DEFS @@ -1677,6 +1679,8 @@ AC_CHECK_MEMBERS([struct ifreq.ifr_enaddr], [], [], #endif ]) +AC_CHECK_HEADERS(systemd/sd-daemon.h) + dnl ---------------------------------------------------------------------- dnl Check the availability for libdlpi dnl ---------------------------------------------------------------------- diff --git a/erts/doc/src/erlang.xml b/erts/doc/src/erlang.xml index b06d5aeb12..7aaded200c 100644 --- a/erts/doc/src/erlang.xml +++ b/erts/doc/src/erlang.xml @@ -887,7 +887,7 @@ <fsummary>Print a term on standard output</fsummary> <desc> <p>Prints a text representation of <c><anno>Term</anno></c> on the standard - output.</p> + output. On OSE the term is printed to the ramlog.</p> <warning> <p>This BIF is intended for debugging only.</p> </warning> diff --git a/erts/doc/src/escript.xml b/erts/doc/src/escript.xml index 1abbdb2180..9159d68f60 100644 --- a/erts/doc/src/escript.xml +++ b/erts/doc/src/escript.xml @@ -236,8 +236,13 @@ factorial 5 = 120 <v>EmuArgs = string() | 'undefined'</v> <v>Body = {source, SourceCode} | {beam, BeamCode} - | {archive, ZipArchive}</v> - <v>SourceCode = BeamCode = ZipArchive = binary()</v> + | {archive, ZipArchive} + | {archive, ZipFiles, ZipOptions}</v> + <v>SourceCode = BeamCode = file:filename() | binary()</v> + <v>ZipArchive = <seealso marker="stdlib:zip#type-filename">zip:filename()</seealso> | binary()</v> + <v>ZipFiles = [ZipFile]</v> + <v>ZipFile = file:filename() | {file:filename(), binary()} | {file:filename(), binary(), file:file_info()}</v> + <v>ZipOptions = [<seealso marker="stdlib:zip#type-create_option">zip:create_option()</seealso>]</v> </type> <desc> <p>The <marker id="create_2"></marker> <c>create/2</c> diff --git a/erts/emulator/Makefile.in b/erts/emulator/Makefile.in index 58e77ed1fa..58639c7190 100644 --- a/erts/emulator/Makefile.in +++ b/erts/emulator/Makefile.in @@ -1035,7 +1035,7 @@ else ifeq ($(findstring ose,$(TARGET)),ose) $(BINDIR)/$(EMULATOR_EXECUTABLE): $(INIT_OBJS) $(OBJS) $(DEPLIBS) $(LCF) $(call build-ose-load-module, $@, $(INIT_OBJS) $(OBJS), $(STATIC_NIF_LIBS) \ - $(STATIC_DRIVER_LIBS) $(LIBS), $(LMCONF)) + $(STATIC_DRIVER_LIBS) $(LIBS), $(BEAM_LMCONF)) else $(BINDIR)/$(EMULATOR_EXECUTABLE): $(INIT_OBJS) $(OBJS) $(DEPLIBS) diff --git a/erts/emulator/drivers/common/inet_drv.c b/erts/emulator/drivers/common/inet_drv.c index 357a4b7bcb..09bada457d 100644 --- a/erts/emulator/drivers/common/inet_drv.c +++ b/erts/emulator/drivers/common/inet_drv.c @@ -93,6 +93,10 @@ typedef unsigned long long llu_t; #define INT16_MAX (32767) #endif +#ifdef __OSE__ +#include "inet.h" +#endif + #ifdef __WIN32__ #define STRNCASECMP strncasecmp @@ -121,10 +125,6 @@ typedef unsigned long long llu_t; #undef WANT_NONBLOCKING #include "sys.h" -#ifdef __OSE__ -#include "inet.h" -#endif - #undef EWOULDBLOCK #undef ETIMEDOUT @@ -200,6 +200,7 @@ typedef unsigned long long llu_t; #define HAVE_MULTICAST_SUPPORT +#define HAVE_UDP #define ERRNO_BLOCK WSAEWOULDBLOCK @@ -294,29 +295,55 @@ static unsigned long zero_value = 0; static unsigned long one_value = 1; #elif defined (__OSE__) + +/* + * Some notes about how inet (currently only tcp) works on OSE. + * The driver uses OSE signals to communicate with the one_inet + * process. Because of the difference in how signals and file descriptors + * work the whole select/deselect mechanic is very different. + * In ose when a sock_select is done a function is called. That function + * notes the changes that the driver want to do, but does not act on it. + * later when the function returns the new desired state is compared + * to the previous state and the apprioriate actions are taken. The action + * is usually to either request more data from the stack or stop requesting + * data. + * + * One thing to note is that the driver never does select/deselect. It always + * listens for the signals. Flow of data is regulated by sending or not sending + * signals to the ose inet process. + * + * The interesting functions to look at are: + * * inet_driver_select : called when sock_select is called + * * tcp_inet_ose_dispatch_signal : checks state changes and sends new signals + * * tcp_inet_drv_output_ose : ready output callback, reads signals and calls + * dispatch_signal + * * tcp_inet_drv_input_ose : ready input callback. + */ + +#include "efs.h" #include "sys/socket.h" #include "sys/uio.h" #include "sfk/sys/sfk_uio.h" #include "netinet/in.h" #include "netinet/tcp.h" #include "netdb.h" +#include "ose_spi/socket.sig" -ssize_t writev(int fd, const struct iovec *iov, int iovcnt) -{ - return 0; -} + +static ssize_t writev_fallback(int fd, const struct iovec *iov, int iovcnt, int max_sz); #define INVALID_SOCKET -1 #define INVALID_EVENT -1 #define SOCKET_ERROR -1 #define SOCKET int -#define HANDLE long int -#define FD_READ ERL_DRV_READ -#define FD_WRITE ERL_DRV_WRITE -#define FD_CLOSE 0 -#define FD_CONNECT ERL_DRV_WRITE -#define FD_ACCEPT ERL_DRV_READ +#define HANDLE int +#define FD_READ ERL_DRV_READ +#define FD_WRITE ERL_DRV_WRITE +#define FD_CLOSE 0 +#define FD_CONNECT (1<<4) +#define FD_ACCEPT (1<<5) +#define SOCK_FD_ERROR (1<<6) #define sock_connect(s, addr, len) connect((s), (addr), (len)) #define sock_listen(s, b) listen((s), (b)) @@ -335,11 +362,12 @@ ssize_t writev(int fd, const struct iovec *iov, int iovcnt) #define sock_sendto(s,buf,blen,flag,addr,alen) \ sendto((s),(buf),(blen),(flag),(addr),(alen)) #define sock_sendv(s, vec, size, np, flag) \ - (*(np) = writev((s), (struct iovec*)(vec), (size))) + (*(np) = writev_fallback((s), (struct iovec*)(vec), (size), (*(np)))) #define sock_sendmsg(s,msghdr,flag) sendmsg((s),(msghdr),(flag)) #define sock_open(af, type, proto) socket((af), (type), (proto)) #define sock_close(s) close((s)) +#define sock_dup(s) dup((s)) #define sock_shutdown(s, how) shutdown((s), (how)) #define sock_hostname(buf, len) gethostname((buf), (len)) @@ -355,19 +383,6 @@ ssize_t writev(int fd, const struct iovec *iov, int iovcnt) #define sock_create_event(d) ((d)->s) /* return file descriptor */ #define sock_close_event(e) /* do nothing */ -#define inet_driver_select(port, e, mode, on) \ - driver_select(port, e, mode | (on?ERL_DRV_USE:0), on) - -#define sock_select(d, flags, onoff) do { \ - ASSERT(!(d)->is_ignored); \ - (d)->event_mask = (onoff) ? \ - ((d)->event_mask | (flags)) : \ - ((d)->event_mask & ~(flags)); \ - DEBUGF(("sock_select(%ld): flags=%02X, onoff=%d, event_mask=%02lX\r\n", \ - (long) (d)->port, (flags), (onoff), (unsigned long) (d)->event_mask)); \ - inet_driver_select((d)->port, (ErlDrvEvent)(long)(d)->event, (flags), (onoff)); \ - } while(0) - #ifndef WANT_NONBLOCKING #define WANT_NONBLOCKING #endif @@ -397,6 +412,16 @@ typedef unsigned long u_long; #define IN_EXPERIMENTAL(a) ((((in_addr_t)(a)) & 0xe0000000) == 0xe0000000) #define IN_BADCLASS(a) ((((in_addr_t)(a)) & 0xf0000000) == 0xf0000000) +#define sock_select(d, flags, onoff) do { \ + ASSERT(!(d)->is_ignored); \ + (d)->event_mask = (onoff) ? \ + ((d)->event_mask | (flags)) : \ + ((d)->event_mask & ~(flags)); \ + DEBUGF(("(%s / %d) sock_select(%ld): flags=%02X, onoff=%d, event_mask=%02lX, s=%d\r\n", \ + __FILE__, __LINE__, (long) (d)->port, (flags), (onoff), (unsigned long) (d)->event_mask, (d)->s)); \ + inet_driver_select((d), (flags), (onoff)); \ + } while(0) + #else /* !__OSE__ && !__WIN32__ */ #include <sys/time.h> @@ -438,6 +463,8 @@ typedef unsigned long u_long; #include <setns.h> #endif +#define HAVE_UDP + /* SCTP support -- currently for UNIX platforms only: */ #undef HAVE_SCTP #if defined(HAVE_SCTP_H) @@ -660,13 +687,13 @@ static int my_strncasecmp(const char *s1, const char *s2, size_t n) (d)->event_mask = (onoff) ? \ ((d)->event_mask | (flags)) : \ ((d)->event_mask & ~(flags)); \ - DEBUGF(("sock_select(%ld): flags=%02X, onoff=%d, event_mask=%02lX\r\n", \ - (long) (d)->port, (flags), (onoff), (unsigned long) (d)->event_mask)); \ + DEBUGF(("(%s / %d) sock_select(%ld): flags=%02X, onoff=%d, event_mask=%02lX\r\n", \ + __FILE__, __LINE__, (long) (d)->port, (flags), (onoff), (unsigned long) (d)->event_mask)); \ inet_driver_select((d)->port, (ErlDrvEvent)(long)(d)->event, (flags), (onoff)); \ } while(0) -#endif /* #ifdef __WIN32__ #else */ +#endif /* !__WIN32__ && !__OSE__ */ #ifdef HAVE_SOCKLEN_T # define SOCKLEN_T socklen_t @@ -1119,6 +1146,13 @@ typedef struct { char *netns; /* Socket network namespace name as full file path */ #endif +#ifdef __OSE__ + int select_state; /* state to keep track of whether we + should trigger another read/write + request at end of ready_input/output */ + ErlDrvEvent events[6]; +#endif + } inet_descriptor; @@ -1134,8 +1168,10 @@ static void tcp_inet_stop(ErlDrvData); static void tcp_inet_command(ErlDrvData, char*, ErlDrvSizeT); static void tcp_inet_commandv(ErlDrvData, ErlIOVec*); static void tcp_inet_flush(ErlDrvData drv_data); +#ifndef __OSE__ static void tcp_inet_drv_input(ErlDrvData, ErlDrvEvent); static void tcp_inet_drv_output(ErlDrvData data, ErlDrvEvent event); +#endif static ErlDrvData tcp_inet_start(ErlDrvPort, char* command); static ErlDrvSSizeT tcp_inet_ctl(ErlDrvData, unsigned int, char*, ErlDrvSizeT, char**, ErlDrvSizeT); @@ -1147,7 +1183,72 @@ static void tcp_inet_event(ErlDrvData, ErlDrvEvent); static void find_dynamic_functions(void); #endif -static struct erl_drv_entry tcp_inet_driver_entry = +#ifdef __OSE__ +/* The structure of the signal used for requesting asynchronous + * notification from the stack. Under normal circumstances the network stack + * shouldn't overwrite the value set in the fd field by the sender + * of the request */ +struct OseAsyncSig { + struct FmEvent event; + int fd; +}; + +union SIGNAL { + SIGSELECT signo; + struct OseAsyncSig async; +}; + +static ErlDrvSSizeT tcp_inet_ctl_ose(ErlDrvData e, unsigned int cmd, + char* buf, ErlDrvSizeT len, + char** rbuf, ErlDrvSizeT rsize); +static void tcp_inet_commandv_ose(ErlDrvData e, ErlIOVec* ev); +static void tcp_inet_drv_output_ose(ErlDrvData data, ErlDrvEvent event); +static void tcp_inet_drv_input_ose(ErlDrvData data, ErlDrvEvent event); +static ErlDrvOseEventId inet_resolve_signal(union SIGNAL *sig); + +#ifdef INET_DRV_DEBUG + +static char *read_req = "SO_EVENT_READ_REQUEST"; +static char *read_rep = "SO_EVENT_READ_REPLY"; +static char *write_req = "SO_EVENT_WRITE_REQUEST"; +static char *write_rep = "SO_EVENT_WRITE_REPLY"; +static char *eof_req = "SO_EVENT_EOF_REQUEST"; +static char *eof_rep = "SO_EVENT_EOF_REPLY"; +static char *accept_req = "SO_EVENT_ACCEPT_REQUEST"; +static char *accept_rep = "SO_EVENT_ACCEPT_REPLY"; +static char *connect_req = "SO_EVENT_CONNECT_REQUEST"; +static char *connect_rep = "SO_EVENT_CONNECT_REPLY"; +static char *error_req = "SO_EVENT_ERROR_REQUEST"; +static char *error_rep = "SO_EVENT_ERROR_REPLY"; +static char signo_tmp[32]; + +static char *signo_to_string(SIGSELECT signo) { + switch (signo) { + case SO_EVENT_READ_REQUEST: { return read_req; } + case SO_EVENT_READ_REPLY: { return read_rep; } + case SO_EVENT_WRITE_REQUEST: { return write_req; } + case SO_EVENT_WRITE_REPLY: { return write_rep; } + case SO_EVENT_EOF_REQUEST: { return eof_req; } + case SO_EVENT_EOF_REPLY: { return eof_rep; } + case SO_EVENT_ACCEPT_REQUEST: { return accept_req; } + case SO_EVENT_ACCEPT_REPLY: { return accept_rep; } + case SO_EVENT_CONNECT_REQUEST: { return connect_req; } + case SO_EVENT_CONNECT_REPLY: { return connect_rep; } + case SO_EVENT_ERROR_REQUEST: { return error_req; } + case SO_EVENT_ERROR_REPLY: { return error_rep; } + } + + snprintf(signo_tmp,32,"0x%x",signo); + + return signo_tmp; +} + +#endif + +#endif /* __OSE__ */ + + +static struct erl_drv_entry tcp_inet_driver_entry = { tcp_inet_init, /* inet_init will add this driver !! */ tcp_inet_start, @@ -1156,6 +1257,9 @@ static struct erl_drv_entry tcp_inet_driver_entry = #ifdef __WIN32__ tcp_inet_event, NULL, +#elif defined(__OSE__) + tcp_inet_drv_input_ose, /*ready_input*/ + tcp_inet_drv_output_ose, /*ready_output*/ #else tcp_inet_drv_input, tcp_inet_drv_output, @@ -1163,9 +1267,17 @@ static struct erl_drv_entry tcp_inet_driver_entry = "tcp_inet", NULL, NULL, +#ifdef __OSE__ + tcp_inet_ctl_ose, +#else tcp_inet_ctl, +#endif tcp_inet_timeout, +#ifdef __OSE__ + tcp_inet_commandv_ose, +#else tcp_inet_commandv, +#endif NULL, tcp_inet_flush, NULL, @@ -1181,6 +1293,7 @@ static struct erl_drv_entry tcp_inet_driver_entry = +#ifdef HAVE_UDP static int packet_inet_init(void); static void packet_inet_stop(ErlDrvData); static void packet_inet_command(ErlDrvData, char*, ErlDrvSizeT); @@ -1230,6 +1343,7 @@ static struct erl_drv_entry udp_inet_driver_entry = NULL, inet_stop_select }; +#endif #ifdef HAVE_SCTP static struct erl_drv_entry sctp_inet_driver_entry = @@ -1293,6 +1407,7 @@ static int tcp_deliver(tcp_descriptor* desc, int len); static int tcp_inet_output(tcp_descriptor* desc, HANDLE event); static int tcp_inet_input(tcp_descriptor* desc, HANDLE event); +#ifdef HAVE_UDP typedef struct { inet_descriptor inet; /* common data structure (DON'T MOVE) */ int read_packets; /* Number of packets to read per invocation */ @@ -1304,10 +1419,19 @@ typedef struct { static int packet_inet_input(udp_descriptor* udesc, HANDLE event); static int packet_inet_output(udp_descriptor* udesc, HANDLE event); +#endif /* convert descriptor poiner to inet_descriptor pointer */ #define INETP(d) (&(d)->inet) +#ifdef __OSE__ +static void inet_driver_select(inet_descriptor* desc, + int flags, int onoff); +static void tcp_inet_ose_dispatch_signals(tcp_descriptor *desc, + int prev_select_state, + union SIGNAL *sig); +#endif + static int async_ref = 0; /* async reference id generator */ #define NEW_ASYNC_ID() ((async_ref++) & 0xffff) @@ -1324,7 +1448,6 @@ static int async_ref = 0; /* async reference id generator */ static ErlDrvTermData am_ok; static ErlDrvTermData am_tcp; -static ErlDrvTermData am_udp; static ErlDrvTermData am_error; static ErlDrvTermData am_einval; static ErlDrvTermData am_inet_async; @@ -1334,10 +1457,13 @@ static ErlDrvTermData am_closed; static ErlDrvTermData am_tcp_passive; static ErlDrvTermData am_tcp_closed; static ErlDrvTermData am_tcp_error; -static ErlDrvTermData am_udp_passive; -static ErlDrvTermData am_udp_error; static ErlDrvTermData am_empty_out_q; static ErlDrvTermData am_ssl_tls; +#ifdef HAVE_UDP +static ErlDrvTermData am_udp; +static ErlDrvTermData am_udp_passive; +static ErlDrvTermData am_udp_error; +#endif #ifdef HAVE_SCTP static ErlDrvTermData am_sctp; static ErlDrvTermData am_sctp_passive; @@ -1545,6 +1671,7 @@ static void *realloc_wrapper(void *current, ErlDrvSizeT size){ # define SCTP_ANC_BUFF_SIZE INET_DEF_BUFFER/2 /* XXX: not very good... */ #endif +#ifdef HAVE_UDP static int load_ip_port(ErlDrvTermData* spec, int i, char* buf) { spec[i++] = ERL_DRV_INT; @@ -1579,6 +1706,7 @@ static int load_ip_address(ErlDrvTermData* spec, int i, int family, char* buf) } return i; } +#endif #ifdef HAVE_SCTP @@ -1745,10 +1873,12 @@ static void release_buffer(ErlDrvBinary* buf) } } +#ifdef HAVE_UDP static ErlDrvBinary* realloc_buffer(ErlDrvBinary* buf, ErlDrvSizeT newsz) { return driver_realloc_binary(buf, newsz); } +#endif /* use a TRICK, access the refc field to see if any one else has * a ref to this buffer then call driver_free_binary else @@ -3409,6 +3539,7 @@ static int tcp_error_message(tcp_descriptor* desc, int err) return erl_drv_output_term(desc->inet.dport, spec, i); } +#ifdef HAVE_UDP /* ** active mode message: ** {udp, S, IP, Port, [H1,...Hsz | Data]} or @@ -3499,6 +3630,7 @@ static int packet_binary_message ASSERT(i <= PACKET_ERL_DRV_TERM_DATA_LEN); return erl_drv_output_term(desc->dport, spec, i); } +#endif /* ** active mode message: send active-to-passive transition message @@ -3513,6 +3645,9 @@ static int packet_binary_message DEBUGF(("packet_passive_message(%ld):\r\n", (long)desc->port)); +#if !defined(HAVE_UDP) && !defined(HAVE_SCTP) + i = LOAD_ATOM(spec, i, am_tcp_passive); +#else if (desc->sprotocol == IPPROTO_TCP) i = LOAD_ATOM(spec, i, am_tcp_passive); else { @@ -3522,12 +3657,14 @@ static int packet_binary_message i = LOAD_ATOM(spec, i, am_udp_passive); #endif } +#endif i = LOAD_PORT(spec, i, desc->dport); i = LOAD_TUPLE(spec, i, 2); ASSERT(i <= 6); return erl_drv_output_term(desc->dport, spec, i); } +#ifdef HAVE_UDP /* ** send active message {udp_error|sctp_error, S, Error} */ @@ -3554,7 +3691,7 @@ static int packet_error_message(udp_descriptor* udesc, int err) ASSERT(i == sizeof(spec)/sizeof(*spec)); return erl_drv_output_term(desc->dport, spec, i); } - +#endif /* ** active=TRUE: @@ -3619,7 +3756,7 @@ tcp_reply_binary_data(tcp_descriptor* desc, ErlDrvBinary* bin, int offs, int len return code; } - +#ifdef HAVE_UDP static int packet_reply_binary_data(inet_descriptor* desc, unsigned int hsz, ErlDrvBinary * bin, int offs, int len, @@ -3642,6 +3779,7 @@ packet_reply_binary_data(inet_descriptor* desc, unsigned int hsz, return code; } } +#endif /* ---------------------------------------------------------------------------- @@ -3817,7 +3955,9 @@ static int inet_init() INIT_ATOM(ok); INIT_ATOM(tcp); +#ifdef HAVE_UDP INIT_ATOM(udp); +#endif INIT_ATOM(error); INIT_ATOM(einval); INIT_ATOM(inet_async); @@ -3827,8 +3967,10 @@ static int inet_init() INIT_ATOM(tcp_passive); INIT_ATOM(tcp_closed); INIT_ATOM(tcp_error); +#ifdef HAVE_UDP INIT_ATOM(udp_passive); INIT_ATOM(udp_error); +#endif INIT_ATOM(empty_out_q); INIT_ATOM(ssl_tls); @@ -3847,7 +3989,10 @@ static int inet_init() /* add TCP, UDP and SCTP drivers */ add_driver_entry(&tcp_inet_driver_entry); +#ifdef HAVE_UDP add_driver_entry(&udp_inet_driver_entry); +#endif + #ifdef HAVE_SCTP /* Check the size of SCTP AssocID -- currently both this driver and the Erlang part require 32 bit: */ @@ -4176,6 +4321,16 @@ static void desc_close(inet_descriptor* desc) desc->forced_events = 0; desc->send_would_block = 0; #endif +#ifdef __OSE__ + if (desc->events[0]) { + driver_select(desc->port,desc->events[0],FD_READ|FD_WRITE|ERL_DRV_USE,0); + driver_select(desc->port,desc->events[1],FD_READ|FD_WRITE|ERL_DRV_USE,0); + driver_select(desc->port,desc->events[2],FD_READ|FD_WRITE|ERL_DRV_USE,0); + driver_select(desc->port,desc->events[3],FD_READ|FD_WRITE|ERL_DRV_USE,0); + driver_select(desc->port,desc->events[4],FD_READ|FD_WRITE|ERL_DRV_USE,0); + driver_select(desc->port,desc->events[5],FD_READ|FD_WRITE|ERL_DRV_USE,0); + } +#else /* * We should close the fd here, but the other driver might still * be selecting on it. @@ -4185,6 +4340,7 @@ static void desc_close(inet_descriptor* desc) ERL_DRV_USE, 0); else inet_stop_select((ErlDrvEvent)(long)desc->event,NULL); +#endif desc->event = INVALID_EVENT; /* closed by stop_select callback */ desc->s = INVALID_SOCKET; desc->event_mask = 0; @@ -4226,6 +4382,64 @@ static int erl_inet_close(inet_descriptor* desc) return 0; } +#ifdef __OSE__ +static void inet_select_init(inet_descriptor* desc) +{ + desc->events[0] = + erl_drv_ose_event_alloc(SO_EVENT_READ_REPLY, + desc->s, + inet_resolve_signal, + NULL); + driver_select(desc->port, desc->events[0], + ERL_DRV_READ|ERL_DRV_USE, 1); + + desc->events[1] = + erl_drv_ose_event_alloc(SO_EVENT_EOF_REPLY, + desc->s, + inet_resolve_signal, + NULL); + driver_select(desc->port, desc->events[1], + ERL_DRV_READ|ERL_DRV_USE, 1); + + desc->events[2] = + erl_drv_ose_event_alloc(SO_EVENT_ACCEPT_REPLY, + desc->s, + inet_resolve_signal, + NULL); + driver_select(desc->port, desc->events[2], + ERL_DRV_READ|ERL_DRV_USE, 1); + + /* trigger tcp_inet_input */ + desc->events[3] = + erl_drv_ose_event_alloc(SO_EVENT_WRITE_REPLY, + desc->s, + inet_resolve_signal, + NULL); + driver_select(desc->port, desc->events[3], + ERL_DRV_WRITE|ERL_DRV_USE, 1); + + desc->events[4] = + erl_drv_ose_event_alloc(SO_EVENT_CONNECT_REPLY, + desc->s, + inet_resolve_signal, + NULL); + driver_select(desc->port, desc->events[4], + ERL_DRV_WRITE|ERL_DRV_USE, 1); + + desc->events[5] = + erl_drv_ose_event_alloc(SO_EVENT_ERROR_REPLY, + desc->s, + inet_resolve_signal, + NULL); + driver_select(desc->port, desc->events[5], + ERL_DRV_WRITE|ERL_DRV_USE, 1); + + /* Issue a select on error event before any other select to be sure we are + prepared to receive error notifications from the stack, even in the + situations when select isn't issued */ + sock_select(desc, SOCK_FD_ERROR, 1); +} +#endif static ErlDrvSSizeT inet_ctl_open(inet_descriptor* desc, int domain, int type, char** rbuf, ErlDrvSizeT rsize) @@ -4309,6 +4523,10 @@ static ErlDrvSSizeT inet_ctl_open(inet_descriptor* desc, int domain, int type, #ifdef __WIN32__ driver_select(desc->port, desc->event, ERL_DRV_READ, 1); #endif +#ifdef __OSE__ + inet_select_init(desc); +#endif + desc->state = INET_STATE_OPEN; desc->stype = type; desc->sfamily = domain; @@ -4328,7 +4546,14 @@ static ErlDrvSSizeT inet_ctl_fdopen(inet_descriptor* desc, int domain, int type, return ctl_error(sock_errno(), rbuf, rsize); if (name.sa.sa_family != domain) return ctl_error(EINVAL, rbuf, rsize); +#ifdef __OSE__ + /* for fdopen duplicating the sd will allow to uniquely identify + the signal from OSE with erlang port */ + desc->s = sock_dup(s); +#else desc->s = s; +#endif + if ((desc->event = sock_create_event(desc)) == INVALID_EVENT) return ctl_error(sock_errno(), rbuf, rsize); SET_NONBLOCKING(desc->s); @@ -4338,8 +4563,15 @@ static ErlDrvSSizeT inet_ctl_fdopen(inet_descriptor* desc, int domain, int type, desc->state = INET_STATE_BOUND; /* assume bound */ if (type == SOCK_STREAM) { /* check if connected */ sz = sizeof(name); - if (!IS_SOCKET_ERROR(sock_peer(s, (struct sockaddr*) &name, &sz))) + if (!IS_SOCKET_ERROR(sock_peer(s, (struct sockaddr*) &name, &sz))) { desc->state = INET_STATE_CONNECTED; +#ifdef __OSE__ + /* since we are dealing with different descriptors (i.e. inet and + socket) the select part should be initialized with the right + values */ + inet_select_init(desc); +#endif + } } desc->prebound = 1; /* used to prevent a real close since @@ -4365,8 +4597,7 @@ struct addr_if { #ifndef SIOCGIFNETMASK -static struct in_addr net_mask(in) -struct in_addr in; +static struct in_addr net_mask(struct in_addr in) { register u_long i = sock_ntohl(in.s_addr); @@ -5929,6 +6160,7 @@ static int inet_set_opts(inet_descriptor* desc, char* ptr, int len) } continue; +#ifdef HAVE_UDP case INET_LOPT_UDP_READ_PACKETS: if (desc->stype == SOCK_DGRAM) { udp_descriptor* udesc = (udp_descriptor*) desc; @@ -5936,6 +6168,7 @@ static int inet_set_opts(inet_descriptor* desc, char* ptr, int len) udesc->read_packets = ival; } continue; +#endif #ifdef HAVE_SETNS case INET_LOPT_NETNS: @@ -6902,6 +7135,7 @@ static ErlDrvSSizeT inet_fill_opts(inet_descriptor* desc, } continue; +#ifdef HAVE_UDP case INET_LOPT_UDP_READ_PACKETS: if (desc->stype == SOCK_DGRAM) { *ptr++ = opt; @@ -6911,6 +7145,7 @@ static ErlDrvSSizeT inet_fill_opts(inet_descriptor* desc, TRUNCATE_TO(0,ptr); } continue; +#endif #ifdef HAVE_SETNS case INET_LOPT_NETNS: @@ -8041,6 +8276,15 @@ static ErlDrvData inet_start(ErlDrvPort port, int size, int protocol) #ifdef HAVE_SETNS desc->netns = NULL; #endif +#ifdef __OSE__ + desc->select_state = 0; + desc->events[0] = NULL; + desc->events[1] = NULL; + desc->events[2] = NULL; + desc->events[3] = NULL; + desc->events[4] = NULL; + desc->events[5] = NULL; +#endif return (ErlDrvData)desc; } @@ -8761,6 +9005,11 @@ static tcp_descriptor* tcp_inet_copy(tcp_descriptor* desc,SOCKET s, copy_desc->inet.port = port; copy_desc->inet.dport = driver_mk_port(port); + +#ifdef __OSE__ + inet_select_init(©_desc->inet); +#endif + *err = 0; return copy_desc; } @@ -8822,8 +9071,22 @@ static void tcp_inet_stop(ErlDrvData e) inet_stop(INETP(desc)); } +#ifdef __OSE__ - +static ErlDrvSSizeT tcp_inet_ctl_ose(ErlDrvData e, unsigned int cmd, + char* buf, ErlDrvSizeT len, + char** rbuf, ErlDrvSizeT rsize) { + + tcp_descriptor* desc = (tcp_descriptor*)e; + int prev_select_state = INETP(desc)->select_state; + + ErlDrvSSizeT res = tcp_inet_ctl(e,cmd,buf,len,rbuf,rsize); + + tcp_inet_ose_dispatch_signals((tcp_descriptor*)e,prev_select_state,NULL); + + return res; +} +#endif /* TCP requests from Erlang */ static ErlDrvSSizeT tcp_inet_ctl(ErlDrvData e, unsigned int cmd, @@ -9039,7 +9302,7 @@ static ErlDrvSSizeT tcp_inet_ctl(ErlDrvData e, unsigned int cmd, ErlDrvTermData caller = driver_caller(desc->inet.port); tcp_descriptor* accept_desc; int err; - + if ((accept_desc = tcp_inet_copy(desc,s,caller,&err)) == NULL) { sock_close(s); return ctl_error(err, rbuf, rsize); @@ -9073,7 +9336,8 @@ static ErlDrvSSizeT tcp_inet_ctl(ErlDrvData e, unsigned int cmd, char tbuf[2]; int n; - DEBUGF(("tcp_inet_ctl(%ld): RECV\r\n", (long)desc->inet.port)); + DEBUGF(("tcp_inet_ctl(%ld): RECV (s=%d)\r\n", + (long)desc->inet.port, desc->inet.s)); /* INPUT: Timeout(4), Length(4) */ if (!IS_CONNECTED(INETP(desc))) { if (desc->tcp_add_flags & TCP_ADDF_DELAYED_CLOSE_RECV) { @@ -9245,6 +9509,16 @@ static void tcp_inet_command(ErlDrvData e, char *buf, ErlDrvSizeT len) DEBUGF(("tcp_inet_command(%ld) }\r\n", (long)desc->inet.port)); } +#ifdef __OSE__ + +static void tcp_inet_commandv_ose(ErlDrvData e, ErlIOVec* ev) { + int prev_select_state = INETP((tcp_descriptor*)e)->select_state; + tcp_inet_commandv(e, ev); + tcp_inet_ose_dispatch_signals((tcp_descriptor*)e,prev_select_state,NULL); +} + +#endif + static void tcp_inet_commandv(ErlDrvData e, ErlIOVec* ev) { @@ -9308,6 +9582,22 @@ static void inet_stop_select(ErlDrvEvent event, void* _) { #ifdef __WIN32__ WSACloseEvent((HANDLE)event); +#elif defined(__OSE__) + ErlDrvOseEventId id; + union SIGNAL *sig; + erl_drv_ose_event_fetch(event, NULL, &id,NULL); + DEBUGF(("inet_stop_select(?#?) {s=%d\n",id)); + sock_close((int)id); + /* On socket close all the signals waiting to be processed as part of the + select should be deallocated */ + while((sig = erl_drv_ose_get_signal(event))) { + DEBUGF(("inet_stop_select(?#?): Freeing signal %s\n", + signo_to_string(sig->signo))); + free_buf(&sig); + } + erl_drv_ose_event_free(event); + DEBUGF(("inet_stop_select(?#?) }\n")); + #else sock_close((SOCKET)(long)event); #endif @@ -9427,12 +9717,13 @@ static int tcp_remain(tcp_descriptor* desc, int* len) int n = desc->i_ptr - ptr; /* number of bytes read */ int tlen; - DEBUGF(("tcp_remain(%ld): s=%d, n=%d, nfill=%d nsz=%d\r\n", - (long)desc->inet.port, desc->inet.s, n, nfill, nsz)); - tlen = packet_get_length(desc->inet.htype, ptr, n, desc->inet.psize, desc->i_bufsz, &desc->http_state); + + DEBUGF(("tcp_remain(%ld): s=%d, n=%d, nfill=%d nsz=%d, tlen %d\r\n", + (long)desc->inet.port, desc->inet.s, n, nfill, nsz, tlen)); + if (tlen > 0) { if (tlen <= n) { /* got a packet */ *len = tlen; @@ -9840,7 +10131,146 @@ static void tcp_inet_event(ErlDrvData e, ErlDrvEvent event) return; } -#endif /* WIN32 */ +#elif defined(__OSE__) /* !__WIN32__ */ +/* The specific resolve signal function. It will return the socket descriptor + for which the select was issued */ +static ErlDrvOseEventId inet_resolve_signal(union SIGNAL *sig) { + DEBUGF(("%s(?#?): s=%d got signal %s, status = %d, extra = %d, sender = 0x%x\n", + __FUNCTION__,sig->async.fd,signo_to_string(sig->signo), + sig->async.event.status, + sig->async.event.extra,sender(&sig))); + if (sig->signo == SO_EVENT_READ_REPLY || + sig->signo == SO_EVENT_ACCEPT_REPLY || + sig->signo == SO_EVENT_EOF_REPLY || + sig->signo == SO_EVENT_WRITE_REPLY || + sig->signo == SO_EVENT_ERROR_REPLY || + sig->signo == SO_EVENT_CONNECT_REPLY ) { + return sig->async.fd; + } + + return -1; +} + +static void inet_driver_select(inet_descriptor* desc, + int flags, int onoff) { + ASSERT(!desc->is_ignored); + + if(onoff) { + desc->select_state |= flags; + } else { + desc->select_state &= ~flags; + } +} + +static ssize_t writev_fallback(int fd, const struct iovec *iov, int iovcnt, int max_sz) +{ + size_t data_len = 0; + size_t sent = 0; + ssize_t n; + int i; + + for(i = 0; i < iovcnt; i++) + { + data_len = iov[i].iov_len; +tryagain: + n = sock_send(fd, iov[i].iov_base, data_len, 0); + if (IS_SOCKET_ERROR(n)) { + /* If buffer length is greater than the amount stack is able to + * send out then try to send at least max_sz (this comes with + * SO_EVENT_WRITE_REPLY signal*/ + if ((errno == EMSGSIZE) && (max_sz > 0) && (data_len > max_sz)) { + data_len = max_sz; + goto tryagain; + } + break; + } + sent += n; + } + return sent; +} + +#define OSE_EVENT_REQ(TCP_DESC,EVENT) do { \ + union SIGNAL *sig = alloc(sizeof(struct OseAsyncSig), EVENT); \ + sig->async.fd = INETP(TCP_DESC)->s; \ + ose_request_event(INETP(TCP_DESC)->s, &sig, 1); \ + DEBUGF(("%s(%ld): s=%d sent %s\r\n",__FUNCTION__, \ + INETP(TCP_DESC)->port,INETP(TCP_DESC)->s,signo_to_string(EVENT))); \ + } while(0) + +static void tcp_inet_ose_dispatch_signals(tcp_descriptor *desc, + int prev_select_state, + union SIGNAL *sig) { + if (sig) { + DEBUGF(("tcp_inet_ose_dispatch_signals(%ld) {s=%d resend\r\n", + (long)INETP(desc)->port,INETP(desc)->s)); + /* We are reacting to a signal, which means that if + the select_state for that signal is still activated + we should send a new signal */ + switch (sig->signo) { + case SO_EVENT_READ_REPLY: { + if (INETP(desc)->select_state & FD_READ) + OSE_EVENT_REQ(desc,SO_EVENT_READ_REQUEST); + break; + } + case SO_EVENT_WRITE_REPLY: { + if (INETP(desc)->select_state & FD_WRITE) + OSE_EVENT_REQ(desc,SO_EVENT_WRITE_REQUEST); + break; + } + case SO_EVENT_CONNECT_REPLY: { + if (INETP(desc)->select_state & FD_CONNECT) + OSE_EVENT_REQ(desc,SO_EVENT_CONNECT_REQUEST); + break; + } + case SO_EVENT_ACCEPT_REPLY: { + if (INETP(desc)->select_state & FD_ACCEPT) + OSE_EVENT_REQ(desc,SO_EVENT_ACCEPT_REQUEST); + break; + } + case SO_EVENT_ERROR_REPLY: { + if (INETP(desc)->select_state & SOCK_FD_ERROR) + OSE_EVENT_REQ(desc,SO_EVENT_ERROR_REQUEST); + break; + } + + } + DEBUGF(("tcp_inet_ose_dispatch_signals(%ld) }\r\n", + (long)INETP(desc)->port)); + } + + if (INETP(desc)->select_state != prev_select_state) { + /* If the select state has changed we have to issue signals for + the state parts that have changed. */ + int xor_select_state = INETP(desc)->select_state ^ prev_select_state; + DEBUGF(("tcp_inet_ose_dispatch_signals(%ld) {s=%d select change\r\n", + (long)INETP(desc)->port,INETP(desc)->s)); + if ((xor_select_state & FD_READ) && + (INETP(desc)->select_state & FD_READ)) { + OSE_EVENT_REQ(desc,SO_EVENT_READ_REQUEST); + } + if ((xor_select_state & FD_WRITE) && + (INETP(desc)->select_state & FD_WRITE)) { + OSE_EVENT_REQ(desc,SO_EVENT_WRITE_REQUEST); + } + if ((xor_select_state & FD_CONNECT) && + (INETP(desc)->select_state & FD_CONNECT)) { + OSE_EVENT_REQ(desc,SO_EVENT_CONNECT_REQUEST); + } + if ((xor_select_state & FD_ACCEPT) && + (INETP(desc)->select_state & FD_ACCEPT)) { + OSE_EVENT_REQ(desc,SO_EVENT_ACCEPT_REQUEST); + } + if ((xor_select_state & SOCK_FD_ERROR) && + (INETP(desc)->select_state & SOCK_FD_ERROR)) { + OSE_EVENT_REQ(desc,SO_EVENT_ERROR_REQUEST); + } + + DEBUGF(("tcp_inet_ose_dispatch_signals(%ld) }\r\n", + (long)INETP(desc)->port)); + } +} + +#endif /* __OSE__ */ /* socket has input: @@ -9861,7 +10291,7 @@ static int tcp_inet_input(tcp_descriptor* desc, HANDLE event) unsigned int len; inet_address remote; inet_async_op *this_op = desc->inet.opt; - + len = sizeof(desc->inet.remote); s = sock_accept(desc->inet.s, (struct sockaddr*) &remote, &len); if (s == INVALID_SOCKET && sock_errno() == ERRNO_BLOCK) { @@ -9930,7 +10360,6 @@ static int tcp_inet_input(tcp_descriptor* desc, HANDLE event) while (desc->inet.state == INET_STATE_MULTI_ACCEPTING) { len = sizeof(desc->inet.remote); s = sock_accept(desc->inet.s, (struct sockaddr*) &remote, &len); - if (s == INVALID_SOCKET && sock_errno() == ERRNO_BLOCK) { /* Just try again, no real error, keep the last return code */ goto done; @@ -10256,6 +10685,49 @@ static int tcp_send(tcp_descriptor* desc, char* ptr, ErlDrvSizeT len) return 0; } +#ifdef __OSE__ + +static void tcp_inet_drv_output_ose(ErlDrvData data, ErlDrvEvent event) +{ + union SIGNAL *event_sig = erl_drv_ose_get_signal(event); + + while (event_sig) { + int prev_select_state = INETP((tcp_descriptor*)data)->select_state; + int res = tcp_inet_output((tcp_descriptor*)data, (HANDLE)event_sig); + if (res != -1) { + tcp_inet_ose_dispatch_signals((tcp_descriptor*)data, + prev_select_state,event_sig); + free_buf(&event_sig); + event_sig = erl_drv_ose_get_signal(event); + } else { + /* NOTE: here the event object could have been deallocated!!!! + inet_stop_select is called when doing driver_select(ERL_DRV_USE,0) + */ + free_buf(&event_sig); + return; + } + } +} + +static void tcp_inet_drv_input_ose(ErlDrvData data, ErlDrvEvent event) +{ + union SIGNAL *event_sig = erl_drv_ose_get_signal(event); + + while (event_sig) { + int prev_select_state = INETP((tcp_descriptor*)data)->select_state; + int res = tcp_inet_input((tcp_descriptor*)data, (HANDLE)event); + if (res != -1) { + tcp_inet_ose_dispatch_signals((tcp_descriptor*)data, prev_select_state, + event_sig); + free_buf(&event_sig); + event_sig = erl_drv_ose_get_signal(event); + } else { + free_buf(&event_sig); + return; + } + } +} +#else static void tcp_inet_drv_output(ErlDrvData data, ErlDrvEvent event) { (void)tcp_inet_output((tcp_descriptor*)data, (HANDLE)event); @@ -10265,6 +10737,7 @@ static void tcp_inet_drv_input(ErlDrvData data, ErlDrvEvent event) { (void)tcp_inet_input((tcp_descriptor*)data, (HANDLE)event); } +#endif /* socket ready for ouput: ** 1. INET_STATE_CONNECTING => non block connect ? @@ -10330,6 +10803,13 @@ static int tcp_inet_output(tcp_descriptor* desc, HANDLE event) ssize_t n; SysIOVec* iov; +#ifdef __OSE__ + /* For large size buffers case the amount of data that the stack is + able to send out (received in the .extra field) should be passed + down to writev_fallback */ + n = event ? ((union SIGNAL*)event)->async.event.extra : 0; +#endif + if ((iov = driver_peekq(ix, &vsize)) == NULL) { sock_select(INETP(desc), FD_WRITE, 0); send_empty_out_q_msgs(INETP(desc)); @@ -10341,8 +10821,8 @@ static int tcp_inet_output(tcp_descriptor* desc, HANDLE event) if (IS_SOCKET_ERROR(sock_sendv(desc->inet.s, iov, vsize, &n, 0))) { write_error: if ((sock_errno() != ERRNO_BLOCK) && (sock_errno() != EINTR)) { - DEBUGF(("tcp_inet_output(%ld): sock_sendv(%d) errno = %d\r\n", - (long)desc->inet.port, vsize, sock_errno())); + DEBUGF(("tcp_inet_output(%ld): sock_sendv(%d) errno = %d (errno %d)\r\n", + (long)desc->inet.port, vsize, sock_errno(), errno)); ret = tcp_send_error(desc, sock_errno()); goto done; } @@ -10355,6 +10835,12 @@ static int tcp_inet_output(tcp_descriptor* desc, HANDLE event) sizes > (max 32 bit signed int) */ size_t howmuch = 0x7FFFFFFF; /* max signed 32 bit */ int x; +#ifdef __OSE__ + /* For EWOULDBLOCK sock_sendv returns 0 so we have to be sure it + wasn't the case */ + if(sock_errno() == ERRNO_BLOCK) + goto done; +#endif for(x = 0; x < vsize && iov[x].iov_len == 0; ++x) ; if (x < vsize) { @@ -10499,6 +10985,7 @@ static udp_descriptor* sctp_inet_copy(udp_descriptor* desc, SOCKET s, int* err) +#ifdef HAVE_UDP static int packet_inet_init() { return 0; @@ -10529,6 +11016,7 @@ static ErlDrvData udp_inet_start(ErlDrvPort port, char *args) set_default_msgq_limits(port); return data; } +#endif #ifdef HAVE_SCTP static ErlDrvData sctp_inet_start(ErlDrvPort port, char *args) @@ -10539,6 +11027,7 @@ static ErlDrvData sctp_inet_start(ErlDrvPort port, char *args) } #endif +#ifdef HAVE_UDP static void packet_inet_stop(ErlDrvData e) { /* There should *never* be any "empty out q" subscribers on @@ -11049,7 +11538,7 @@ static void packet_inet_command(ErlDrvData e, char* buf, ErlDrvSizeT len) else inet_reply_ok(desc); } - +#endif #ifdef __WIN32__ static void packet_inet_event(ErlDrvData e, ErlDrvEvent event) @@ -11071,6 +11560,7 @@ static void packet_inet_event(ErlDrvData e, ErlDrvEvent event) #endif +#ifdef HAVE_UDP static void packet_inet_drv_input(ErlDrvData e, ErlDrvEvent event) { (void) packet_inet_input((udp_descriptor*)e, (HANDLE)event); @@ -11327,6 +11817,7 @@ static int packet_inet_output(udp_descriptor* udesc, HANDLE event) DEBUGF(("packet_inet_output(%ld) }\r\n", (long)desc->port)); return ret; } +#endif /*---------------------------------------------------------------------------*/ diff --git a/erts/emulator/sys/ose/default.lmconf b/erts/emulator/sys/ose/beam.lmconf index a66b0ece56..4ad46b01d9 100644 --- a/erts/emulator/sys/ose/default.lmconf +++ b/erts/emulator/sys/ose/beam.lmconf @@ -4,12 +4,13 @@ OSE_LM_POOL_SIZE=0x200000 OSE_LM_MAIN_NAME=main OSE_LM_MAIN_STACK_SIZE=0xF000 OSE_LM_MAIN_PRIORITY=20 +## Has to be of a type that allows MAM OSE_LM_PROGRAM_TYPE=APP_RAM OSE_LM_DATA_INIT=YES OSE_LM_BSS_INIT=YES OSE_LM_EXEC_MODEL=SHARED HEAP_MAX_SIZE=1000000000 -HEAP_SMALL_BUF_INIT_SIZE=64000000 +HEAP_SMALL_BUF_INIT_SIZE=20971520 HEAP_LARGE_BUF_THRESHOLD=16000000 HEAP_LOCK_TYPE=2 diff --git a/erts/emulator/sys/ose/erl_main.c b/erts/emulator/sys/ose/erl_main.c index 03119c3fec..23a9bc93a4 100644 --- a/erts/emulator/sys/ose/erl_main.c +++ b/erts/emulator/sys/ose/erl_main.c @@ -30,6 +30,8 @@ int main(int argc, char **argv) { + (void)stdin;(void)stdout;(void)stderr; + /* When starting using pm_create -c ARGV="-- -root ..", argv[0] is the first part of ARGV and not the name of the executable. So we shuffle some pointers here to make erl_start happy. */ diff --git a/erts/emulator/sys/ose/erl_poll.c b/erts/emulator/sys/ose/erl_poll.c index ca1ed6e53a..7d2a3d1e0b 100644 --- a/erts/emulator/sys/ose/erl_poll.c +++ b/erts/emulator/sys/ose/erl_poll.c @@ -551,7 +551,12 @@ int erts_poll_wait(ErtsPollSet ps, fd.id, fd.signo, current_process()); erts_send_error_to_logger_nogl(dsbufp); timeout = 0; - ASSERT(0); + /* Under normal circumstances the signal is deallocated by the + * driver that issued the select operation. But in this case + * there's no driver waiting for such signal so we have to + * deallocate it here */ + if (sig) + free_buf(&sig); } else { int i; struct erts_sys_fd_type *fd = NULL; @@ -737,6 +742,7 @@ union SIGNAL *erl_drv_ose_get_signal(ErlDrvEvent drv_ev) { ev->msgs = msg->next; ethr_mutex_unlock(&ev->mtx); erts_free(ERTS_ALC_T_FD_SIG_LIST,msg); + restore(sig); return sig; } } diff --git a/erts/emulator/sys/ose/sys.c b/erts/emulator/sys/ose/sys.c index c892cc69c7..5b950a7dae 100644 --- a/erts/emulator/sys/ose/sys.c +++ b/erts/emulator/sys/ose/sys.c @@ -195,7 +195,9 @@ static volatile int children_died; write_buff += sizeof(struct aiocb *); \ memcpy(write_buff,BUFF,SIZE+1); \ SET_AIO(*write_req,FD,SIZE,write_buff); \ - aio_write(write_req); \ + if (aio_write(write_req)) \ + ramlog_printf("%s:%d: write failed with %d\n", \ + __FILE__,__LINE__,errno); \ } \ } while(0) @@ -210,13 +212,13 @@ static volatile int children_died; driver_free(buffer_ptr); \ } while(0) -/* When we have several schedulers, we need to make sure - * that scheduler issuing aio_dispatch() is the owner on the signal */ #define DISPATCH_AIO(sig) do { \ - restore(sig); \ - aio_dispatch(sig); \ + if (aio_dispatch(sig)) \ + ramlog_printf("%s:%d: dispatch failed with %d\n", \ + __FILE__,__LINE__,errno); \ } while(0) +#define AIO_PIPE_SIZE 1024 /* debug print macros */ #define DEBUG_RES 0 @@ -371,6 +373,63 @@ thr_create_prepare_child(void *vtcdp) #endif /* #ifdef USE_THREADS */ +/* The two functions below are stolen from win_con.c + They have to use malloc/free/realloc directly becasue + we want to do able to do erts_printf very early on. + */ +#define VPRINTF_BUF_INC_SIZE 128 +static erts_dsprintf_buf_t * +grow_vprintf_buf(erts_dsprintf_buf_t *dsbufp, size_t need) +{ + char *buf; + size_t size; + + ASSERT(dsbufp); + + if (!dsbufp->str) { + size = (((need + VPRINTF_BUF_INC_SIZE - 1) + / VPRINTF_BUF_INC_SIZE) + * VPRINTF_BUF_INC_SIZE); + buf = (char *) malloc(size * sizeof(char)); + } + else { + size_t free_size = dsbufp->size - dsbufp->str_len; + + if (need <= free_size) + return dsbufp; + + size = need - free_size + VPRINTF_BUF_INC_SIZE; + size = (((size + VPRINTF_BUF_INC_SIZE - 1) + / VPRINTF_BUF_INC_SIZE) + * VPRINTF_BUF_INC_SIZE); + size += dsbufp->size; + buf = (char *) realloc((void *) dsbufp->str, + size * sizeof(char)); + } + if (!buf) + return NULL; + if (buf != dsbufp->str) + dsbufp->str = buf; + dsbufp->size = size; + return dsbufp; +} + +static int erts_sys_ramlog_printf(char *format, va_list arg_list) +{ + int res,i; + erts_dsprintf_buf_t dsbuf = ERTS_DSPRINTF_BUF_INITER(grow_vprintf_buf); + res = erts_vdsprintf(&dsbuf, format, arg_list); + if (res >= 0) { + for (i = 0; i < dsbuf.str_len; i+= 50) + /* We print 50 characters at a time because otherwise + the ramlog looks broken */ + ramlog_printf("%.*s",dsbuf.str_len-50 < 0?dsbuf.str_len:50,dsbuf.str+i); + } + if (dsbuf.str) + free((void *) dsbuf.str); + return res; +} + void erts_sys_pre_init(void) { @@ -409,6 +468,9 @@ erts_sys_pre_init(void) children_died = 0; #endif #endif /* USE_THREADS */ + + erts_printf_stdout_func = erts_sys_ramlog_printf; + erts_smp_atomic_init_nob(&sys_misc_mem_sz, 0); } @@ -650,7 +712,7 @@ static void stop_select(ErlDrvEvent, void*); static PROCESS get_signal_proxy_pid(void) { union SIGNAL *sig; - SIGSELECT any_sig[] = {0}; + SIGSELECT any_sig[] = {1,ERTS_SIGNAL_OSE_DRV_ATTACH}; if (!sig_proxy_pid) { sig = alloc(sizeof(union SIGNAL), ERTS_SIGNAL_OSE_DRV_ATTACH); @@ -685,7 +747,7 @@ resolve_signal(union SIGNAL* sig) { struct erl_drv_entry spawn_driver_entry = { spawn_init, spawn_start, - erl_stop, + NULL, /* erl_stop, */ output, ready_input, ready_output, @@ -784,7 +846,11 @@ set_driver_data(ErlDrvPort port_num, /* READ */ if (read_write & DO_READ) { - efs_examine_fd(ifd, FLIB_FD_HANDLE, &driver_data[ifd].handle, 0); + EfsStatus res = efs_examine_fd(ifd, FLIB_FD_HANDLE, + &driver_data[ifd].handle, 0); + if (res != EFS_SUCCESS) + ramlog_printf("%s:%d: efs_examine_fd(%d) failed with %d\n", + __FILE__,__LINE__,ifd,errno); driver_data[ifd].ifd = ifd; driver_data[ifd].packet_bytes = packet_bytes; driver_data[ifd].port_num = port_num; @@ -792,10 +858,9 @@ set_driver_data(ErlDrvPort port_num, /* async read struct */ memset(&driver_data[ifd].aiocb, 0, sizeof(struct aiocb)); - driver_data[ifd].aiocb.aio_buf = driver_alloc(255); + driver_data[ifd].aiocb.aio_buf = driver_alloc(AIO_PIPE_SIZE); driver_data[ifd].aiocb.aio_fildes = ifd; - driver_data[ifd].aiocb.aio_nbytes = 255; - + driver_data[ifd].aiocb.aio_nbytes = (packet_bytes?packet_bytes:AIO_PIPE_SIZE); driver_data[ifd].alive = 1; driver_data[ifd].status = 0; driver_data[ifd].input_event = @@ -826,7 +891,9 @@ set_driver_data(ErlDrvPort port_num, (void) driver_select(port_num, driver_data[ifd].input_event, (ERL_DRV_READ | ERL_DRV_USE), 1); - aio_read(&driver_data[ifd].aiocb); + if (aio_read(&driver_data[ifd].aiocb)) + ramlog_printf("%s:%d: aio_read(%d) failed with %d\n", + __FILE__,__LINE__,ifd,errno); } else { /* WRITE ONLY */ efs_examine_fd(ofd, FLIB_FD_HANDLE, &driver_data[ofd].handle, 0); @@ -926,7 +993,7 @@ spawn_start(ErlDrvPort port_num, char* name, SysDriverOpts* opts) { int ifd[2]; int ofd[2]; - static uint32_t ticker = 0; + static uint32_t ticker = 1; PmStatus pm_status; OSDOMAIN domain = PM_NEW_DOMAIN; PROCESS progpid, mainbid, mainpid; @@ -938,39 +1005,53 @@ spawn_start(ErlDrvPort port_num, char* name, SysDriverOpts* opts) int handle_size; char *ptr; - /* handle arguments */ - ptr = strchr(name, ' '); - if (ptr != NULL) { - *ptr ='\0'; - ptr++; - args = ptr; + + args = driver_alloc(strlen(name)+1); + strcpy(args, name); + /* We need to handle name in three parts + * - install handle (must be unique) + * - install binary (needed for ose_pm_install_load_module()) + * - full path (as argument to the spawned applications env.var + */ + + /* full path including arguments */ + args = driver_alloc(strlen(name)+1); + strcpy(args, name); + + /* handle path */ + tmp_handle = strrchr(name, '/'); + if (tmp_handle == NULL) { + tmp_handle = name; } else { - args = NULL; + tmp_handle++; } - /* create an install handle */ - ptr = strrchr(name, '/'); + /* handle args */ + ptr = strchr(tmp_handle, ' '); if (ptr != NULL) { - ptr++; - tmp_handle = ptr; + *ptr = '\0'; + handle_size = ptr - tmp_handle; } else { - tmp_handle = name; + handle_size = strlen(name)+1; } - handle_size = strlen(tmp_handle)+1; - handle_size += (ticker<10)?3:((ticker<100)?4:5); + /* make room for ticker */ + handle_size += (ticker<10)?3:((ticker<100)?4:5); handle = driver_alloc(handle_size); - snprintf(handle, handle_size, "%s_%d", tmp_handle, ticker); - + do { - snprintf(handle, handle_size, "%s_%d", tmp_handle, ticker++); + snprintf(handle, handle_size, "%s_%d", tmp_handle, ticker); pm_status = ose_pm_install_load_module(0, "ELF", name, handle, 0, 0, NULL); - + ticker++; } while (pm_status == PM_EINSTALL_HANDLE_ALREADY_INSTALLED); - DEBUG_CHECK_RES(pm_status, PM_SUCCESS); + + if (pm_status != PM_SUCCESS) { + errno = ENOSYS; /* FIXME add comment */ + return ERL_DRV_ERROR_ERRNO; + } /* Create Program */ pm_status = ose_pm_create_program(&domain, handle, 0, 0, @@ -1143,17 +1224,13 @@ static void erl_stop(ErlDrvData drv_data) if (data->ifd != data->ofd) { /* read and write */ nbio_stop_fd(data->port_num, data->input_event); nbio_stop_fd(data->port_num, data->output_event); - driver_select(data->port_num, data->input_event, ERL_DRV_USE, 0); - driver_select(data->port_num, data->output_event, ERL_DRV_USE, 0); } else { /* write only */ nbio_stop_fd(data->port_num, data->output_event); - driver_select(data->port_num, data->output_event, ERL_DRV_USE, 0); } } else { /* read only */ nbio_stop_fd(data->port_num, data->input_event); - driver_select(data->port_num, data->input_event, ERL_DRV_USE, 0); } close(data->ifd); close(data->ofd); @@ -1177,18 +1254,31 @@ static void output(ErlDrvData drv_data, char* buf, ErlDrvSizeT len) lbp = lb + (4-(data->packet_bytes)); if ((sz = driver_sizeq(data->port_num)) > 0) { - driver_enq(data->port_num, lbp, data->packet_bytes); - driver_enq(data->port_num, buf, len); - if (sz + len + data->packet_bytes >= (1 << 13)) + if (data->packet_bytes != 0) { + driver_enq(data->port_num, lbp, data->packet_bytes); + } + driver_enq(data->port_num, buf, len); + + if (sz + len + data->packet_bytes >= (1 << 13)) set_busy_port(data->port_num, 1); } else { - driver_enq(data->port_num, buf, len); /* n is the skip value */ - + char *pbbuf; + if (data->packet_bytes != 0) { + pbbuf = malloc(len + data->packet_bytes); + int i; + for (i = 0; i < data->packet_bytes; i++) { + *pbbuf++ = *lbp++; + } + strncpy(pbbuf, buf, len); + pbbuf -= data->packet_bytes; + } driver_select(data->port_num, data->output_event, ERL_DRV_WRITE|ERL_DRV_USE, 1); - - WRITE_AIO(data->ofd, len, buf); + WRITE_AIO(data->ofd, + (data->packet_bytes ? len+data->packet_bytes : len), + (data->packet_bytes ? pbbuf : buf)); + if (data->packet_bytes != 0) free(pbbuf); } return; /* 0; */ } @@ -1204,12 +1294,12 @@ static int port_inp_failure(ErlDrvPort port_num, ErlDrvEvent ready_fd, int res) ASSERT(res <= 0); erl_drv_ose_event_fetch(ready_fd,&sig_no, NULL, (void **)&fd); - /* As we need to handle two signals, we do this in two steps */ if (driver_data[*fd].alive) { report_exit_status(driver_data[*fd].report_exit, 0); /* status? */ } else { + driver_select(port_num,ready_fd,DO_READ|DO_WRITE,0); clear_fd_data(*fd); driver_report_exit(driver_data[*fd].port_num, driver_data[*fd].status); /* As we do not really know if the spawn has crashed or exited nicely @@ -1248,6 +1338,10 @@ static void ready_input(ErlDrvData drv_data, ErlDrvEvent ready_fd) } else { res = sig->fm_read_reply.actual; + if (res == 0) { + port_inp_failure(data->port_num, ready_fd, res); + break; + } if (data->packet_bytes == 0) { if (res < 0) { @@ -1258,6 +1352,7 @@ static void ready_input(ErlDrvData drv_data, ErlDrvEvent ready_fd) else if (res == 0) { /* read of 0 bytes, eof, otherside of pipe is assumed dead */ port_inp_failure(data->port_num, ready_fd, res); + break; } else { buf = driver_alloc(res); @@ -1267,100 +1362,91 @@ static void ready_input(ErlDrvData drv_data, ErlDrvEvent ready_fd) driver_output(data->port_num, (char*) buf, res); driver_free(buf); } + /* clear the previous read */ + memset(data->aiocb.aio_buf, 0, res); + + /* issue a new read */ + DISPATCH_AIO(sig); + aio_read(&data->aiocb); } - /* We try to read the remainder */ - else if (fd_data[data->ifd].remain > 0) { - if (res < 0) { - if ((errno != EINTR) && (errno != ERRNO_BLOCK)) { - port_inp_failure(data->port_num, ready_fd, res); + else if (data->packet_bytes && fd_data[data->ifd].remain > 0) { + /* we've read a partial package, or a header */ + + if (res == fd_data[data->ifd].remain) { /* we are done! */ + char *buf = data->aiocb.aio_buf; + int i; + + /* do we have anything buffered? */ + if (fd_data[data->ifd].buf != NULL) { + memcpy(fd_data[data->ifd].buf + fd_data[data->ifd].sz, + buf, res); + buf = fd_data[data->ifd].buf; } - } - else if (res == 0) { - port_inp_failure(data->port_num, ready_fd, res); - } - else if (res == fd_data[data->ifd].remain) { /* we're done */ - driver_output(data->port_num, - fd_data[data->ifd].buf, - fd_data[data->ifd].sz); + + fd_data[data->ifd].sz += res; + driver_output(data->port_num, buf, (fd_data[data->ifd].sz>0?fd_data[data->ifd].sz:res)); clear_fd_data(data->ifd); - } - else { /* if (res < fd_data[fd].remain) */ - fd_data[data->ifd].cpos += res; - fd_data[data->ifd].remain -= res; - } - } - else if (fd_data[data->ifd].remain == 0) { /* clean fd */ - if (res < 0) { - if ((errno != EINTR) && (errno != ERRNO_BLOCK)) { - port_inp_failure(data->port_num, ready_fd, res); + + /* clear the previous read */ + memset(data->aiocb.aio_buf, 0, res); + + /* issue a new read */ + DISPATCH_AIO(sig); + data->aiocb.aio_nbytes = data->packet_bytes; + + if (data->aiocb.aio_buf == NULL) { + port_inp_failure(data->port_num, ready_fd, -1); } + aio_read(&data->aiocb); } - else if (res == 0) { /* eof */ - port_inp_failure(data->port_num, ready_fd, res); - } - else if (res < data->packet_bytes - fd_data[data->ifd].psz) { - memcpy(fd_data[data->ifd].pbuf+fd_data[data->ifd].psz, - (void *)data->aiocb.aio_buf, res); - fd_data[data->ifd].psz += res; - } - else { /* if (res >= packet_bytes) */ - unsigned char* cpos = (unsigned char*)data->aiocb.aio_buf; - int bytes_left = res; - - while (1) { - int psz = fd_data[data->ifd].psz; - char* pbp = fd_data[data->ifd].pbuf + psz; - - while (bytes_left && (psz < data->packet_bytes)) { - *pbp++ = *cpos++; - bytes_left--; - psz++; - } - - if (psz < data->packet_bytes) { - fd_data[data->ifd].psz = psz; - break; - } - fd_data[data->ifd].psz = 0; - - switch (data->packet_bytes) { - case 1: h = get_int8(fd_data[data->ifd].pbuf); break; - case 2: h = get_int16(fd_data[data->ifd].pbuf); break; - case 4: h = get_int32(fd_data[data->ifd].pbuf); break; - default: ASSERT(0); return; /* -1; */ - } - - if (h <= (bytes_left)) { - driver_output(data->port_num, (char*) cpos, h); - cpos += h; - bytes_left -= h; - continue; - } - else { /* The last message we got was split */ - char *buf = erts_alloc_fnf(ERTS_ALC_T_FD_ENTRY_BUF, h); - if (!buf) { - errno = ENOMEM; - port_inp_failure(data->port_num, ready_fd, -1); - } - else { - erts_smp_atomic_add_nob(&sys_misc_mem_sz, h); - sys_memcpy(buf, cpos, bytes_left); - fd_data[data->ifd].buf = buf; - fd_data[data->ifd].sz = h; - fd_data[data->ifd].remain = h - bytes_left; - fd_data[data->ifd].cpos = buf + bytes_left; - } - break; - } + else if(res < fd_data[data->ifd].remain) { /* received part of a package */ + if (fd_data[data->ifd].sz == 0) { + + fd_data[data->ifd].sz += res; + memcpy(fd_data[data->ifd].buf, data->aiocb.aio_buf, res); + fd_data[data->ifd].remain -= res; + } + else { + memcpy(fd_data[data->ifd].buf + fd_data[data->ifd].sz, + data->aiocb.aio_buf, res); + fd_data[data->ifd].sz += res; + fd_data[data->ifd].remain -= res; + } + /* clear the previous read */ + memset(data->aiocb.aio_buf, 0, res); + + /* issue a new read */ + DISPATCH_AIO(sig); + data->aiocb.aio_nbytes = fd_data[data->ifd].remain; + + if (data->aiocb.aio_buf == NULL) { + port_inp_failure(data->port_num, ready_fd, -1); } + aio_read(&data->aiocb); } } + else if (data->packet_bytes && fd_data[data->ifd].remain == 0) { /* we've recieved a header */ + + /* analyze the header FIXME */ + switch (data->packet_bytes) { + case 1: h = get_int8(data->aiocb.aio_buf); break; + case 2: h = get_int16(data->aiocb.aio_buf); break; + case 4: h = get_int32(data->aiocb.aio_buf); break; + } - /* reset the read buffer and init next asynch read */ - DISPATCH_AIO(sig); - memset((void *)data->aiocb.aio_buf, 0, 255); + fd_data[data->ifd].buf = erts_alloc_fnf(ERTS_ALC_T_FD_ENTRY_BUF, h + data->packet_bytes); + fd_data[data->ifd].remain = ((h + data->packet_bytes) - res); - if (res > 0) { + /* clear the previous read */ + memset(data->aiocb.aio_buf, 0, data->packet_bytes); + + /* issue a new read */ + DISPATCH_AIO(sig); + data->aiocb.aio_nbytes = h; + + if (data->aiocb.aio_buf == NULL) { + port_inp_failure(data->port_num, ready_fd, -1); + } aio_read(&data->aiocb); } } @@ -1400,11 +1486,16 @@ static void ready_output(ErlDrvData drv_data, ErlDrvEvent ready_fd) DISPATCH_AIO(sig); FREE_AIO(sig->fm_write_reply.buffer); res = driver_deq(data->port_num, iov[0].iov_len); - if (res > 0) { + if (res > 0) { iov = driver_peekq(data->port_num, &vlen); WRITE_AIO(data->ofd, iov[0].iov_len, iov[0].iov_base); } } + else if (vlen == 0) { + DISPATCH_AIO(sig); + FREE_AIO(sig->fm_write_reply.buffer); + } + } sig = erl_drv_ose_get_signal(ready_fd); } @@ -1650,10 +1741,10 @@ erl_assert_error(const char* expr, const char* func, { fflush(stdout); fprintf(stderr, "%s:%d:%s() Assertion failed: %s\n", - file, func, line, expr); + file, line, func, expr); fflush(stderr); ramlog_printf("%s:%d:%s() Assertion failed: %s\n", - file, func, line, expr); + file, line, func, expr); abort(); } diff --git a/erts/epmd/src/Makefile.in b/erts/epmd/src/Makefile.in index 2ea8630491..8dc8dae5f6 100644 --- a/erts/epmd/src/Makefile.in +++ b/erts/epmd/src/Makefile.in @@ -148,7 +148,7 @@ endif ifeq ($(findstring ose,$(TARGET)),ose) $(BINDIR)/$(EPMD): $(EPMD_OBJS) $(ERTS_LIB) $(OSE_LM_OBJS) - $(call build-ose-load-module, $@, $(EPMD_OBJS) $(OSE_LM_OBJS), $(LIBS), $(LMCONF)) + $(call build-ose-load-module, $@, $(EPMD_OBJS) $(OSE_LM_OBJS), $(LIBS), $(EPMD_LMCONF)) else $(BINDIR)/$(EPMD): $(EPMD_OBJS) $(ERTS_LIB) $(ld_verbose)$(PURIFY) $(LD) $(LDFLAGS) -o $@ $(EPMD_OBJS) $(LIBS) diff --git a/erts/epmd/src/epmd.c b/erts/epmd/src/epmd.c index 1678d537d1..3cfa7a782f 100644 --- a/erts/epmd/src/epmd.c +++ b/erts/epmd/src/epmd.c @@ -175,6 +175,9 @@ int main(int argc, char** argv) g->nodes.reg = g->nodes.unreg = g->nodes.unreg_tail = NULL; g->nodes.unreg_count = 0; g->active_conn = 0; +#ifdef HAVE_SYSTEMD_SD_DAEMON_H + g->is_systemd = 0; +#endif for (i = 0; i < MAX_LISTEN_SOCKETS; i++) g->listenfd[i] = -1; @@ -248,8 +251,12 @@ int main(int argc, char** argv) else usage(g); epmd_cleanup_exit(g,0); - } - else +#ifdef HAVE_SYSTEMD_SD_DAEMON_H + } else if (strcmp(argv[0], "-systemd") == 0) { + g->is_systemd = 1; + argv++; argc--; +#endif + } else usage(g); } dbg_printf(g,1,"epmd running - daemon = %d",g->is_daemon); @@ -454,6 +461,11 @@ static void usage(EpmdVars *g) fprintf(stderr, " Forcibly unregisters a name with epmd\n"); fprintf(stderr, " (only allowed if -relaxed_command_check was given when \n"); fprintf(stderr, " epmd was started).\n"); +#ifdef HAVE_SYSTEMD_SD_DAEMON_H + fprintf(stderr, " -systemd\n"); + fprintf(stderr, " Wait for socket from systemd. The option makes sense\n"); + fprintf(stderr, " when started from .socket unit.\n"); +#endif epmd_cleanup_exit(g,1); } diff --git a/erts/epmd/src/epmd_int.h b/erts/epmd/src/epmd_int.h index d4597be30c..c8f2192f7f 100644 --- a/erts/epmd/src/epmd_int.h +++ b/erts/epmd/src/epmd_int.h @@ -125,6 +125,9 @@ # include "sys/select.h" #endif +#ifdef HAVE_SYSTEMD_SD_DAEMON_H +# include <systemd/sd-daemon.h> +#endif /* ************************************************************************ */ /* Replace some functions by others by making the function name a macro */ @@ -337,6 +340,9 @@ typedef struct { int listenfd[MAX_LISTEN_SOCKETS]; char *addresses; char **argv; +#ifdef HAVE_SYSTEMD_SD_DAEMON_H + int is_systemd; +#endif } EpmdVars; void dbg_printf(EpmdVars*,int,const char*,...); diff --git a/erts/epmd/src/epmd_srv.c b/erts/epmd/src/epmd_srv.c index 247fd34d5a..93982c2f60 100644 --- a/erts/epmd/src/epmd_srv.c +++ b/erts/epmd/src/epmd_srv.c @@ -213,6 +213,39 @@ void run(EpmdVars *g) node_init(g); g->conn = conn_init(g); +#ifdef HAVE_SYSTEMD_SD_DAEMON_H + if (g->is_systemd) + { + int n; + + dbg_printf(g,2,"try to obtain sockets from systemd"); + + n = sd_listen_fds(0); + if (n < 0) + { + dbg_perror(g,"cannot obtain sockets from systemd"); + epmd_cleanup_exit(g,1); + } + else if (n == 0) + { + dbg_tty_printf(g,0,"systemd provides no sockets"); + epmd_cleanup_exit(g,1); + } + else if (n > MAX_LISTEN_SOCKETS) + { + dbg_tty_printf(g,0,"cannot listen on more than %d IP addresses", MAX_LISTEN_SOCKETS); + epmd_cleanup_exit(g,1); + } + num_sockets = n; + for (i = 0; i < num_sockets; i++) + { + g->listenfd[i] = listensock[i] = SD_LISTEN_FDS_START + i; + } + } + else + { +#endif + dbg_printf(g,2,"try to initiate listening port %d", g->port); if (g->addresses != NULL && /* String contains non-separator characters if: */ @@ -277,6 +310,9 @@ void run(EpmdVars *g) SET_ADDR(iserv_addr[0],EPMD_ADDR_ANY,sport); num_sockets = 1; } +#ifdef HAVE_SYSTEMD_SD_DAEMON_H + } +#endif #if !defined(__WIN32__) && !defined(__OSE__) /* We ignore the SIGPIPE signal that is raised when we call write @@ -294,6 +330,13 @@ void run(EpmdVars *g) FD_ZERO(&g->orig_read_mask); g->select_fd_top = 0; +#ifdef HAVE_SYSTEMD_SD_DAEMON_H + if (g->is_systemd) + for (i = 0; i < num_sockets; i++) + select_fd_set(g, listensock[i]); + else + { +#endif for (i = 0; i < num_sockets; i++) { if ((listensock[i] = socket(FAMILY,SOCK_STREAM,0)) < 0) @@ -356,6 +399,9 @@ void run(EpmdVars *g) } select_fd_set(g, listensock[i]); } +#ifdef HAVE_SYSTEMD_SD_DAEMON_H + } +#endif dbg_tty_printf(g,2,"entering the main select() loop"); diff --git a/erts/etc/common/Makefile.in b/erts/etc/common/Makefile.in index cfd36af962..0cf965f915 100644 --- a/erts/etc/common/Makefile.in +++ b/erts/etc/common/Makefile.in @@ -509,7 +509,7 @@ $(OBJDIR)/crt0_lm.o: $(CRT0_LM) OSE_LM_OBJS += $(OBJDIR)/ose_confd.o $(OBJDIR)/crt0_lm.o $(BINDIR)/run_erl_lm: $(OBJDIR)/run_erl_main.o $(OBJDIR)/safe_string.o $(OBJDIR)/run_erl.o $(OBJDIR)/run_erl_common.o $(OBJDIR)/to_erl_common.o $(OSE_LM_OBJS) - $(call build-ose-load-module, $@, $^, $(LIBS), $(LMCONF)) + $(call build-ose-load-module, $@, $^, $(LIBS), $(RUN_ERL_LMCONF)) $(OBJDIR)/run_erl_main.o: $(OSEETC)/run_erl_main.c $(OSEETC)/run_erl.h ../common/to_erl_common.h $(RC_GENERATED) diff --git a/erts/etc/common/to_erl_common.c b/erts/etc/common/to_erl_common.c index a49be44b6c..ab706fffe0 100644 --- a/erts/etc/common/to_erl_common.c +++ b/erts/etc/common/to_erl_common.c @@ -126,7 +126,8 @@ static int version_handshake(char* buf, int len, int wfd); #define READ_AIO(REQ,FD,SIZE,BUFF) \ SET_AIO(REQ,FD,SIZE,BUFF); \ if (aio_read(&(REQ)) != 0) \ - fprintf(stderr,"aio_read of child_read_req(%d) failed\n",FD) + fprintf(stderr,"aio_read of child_read_req(%d) failed" \ + "with error %d\n",FD,errno) union SIGNAL { SIGSELECT signo; diff --git a/erts/etc/ose/etc.lmconf b/erts/etc/ose/etc.lmconf new file mode 100644 index 0000000000..b402b325b1 --- /dev/null +++ b/erts/etc/ose/etc.lmconf @@ -0,0 +1,20 @@ +OSE_LM_STACK_SIZES=256,512,1024,2048,4096,8192,16384,65536 +OSE_LM_SIGNAL_SIZES=31,63,127,255,1023,4095,16383,65535 +OSE_LM_POOL_SIZE=0x200000 +OSE_LM_MAIN_NAME=main +OSE_LM_MAIN_STACK_SIZE=0xF000 +OSE_LM_MAIN_PRIORITY=20 +## Has to be of a type that allows MAM +OSE_LM_PROGRAM_TYPE=APP_RAM +OSE_LM_DATA_INIT=YES +OSE_LM_BSS_INIT=YES +OSE_LM_EXEC_MODEL=SHARED +HEAP_MAX_SIZE=1000000000 +HEAP_SMALL_BUF_INIT_SIZE=64000000 +HEAP_LARGE_BUF_THRESHOLD=16000000 +HEAP_LOCK_TYPE=2 + +# Setting the environment variable EFS_RESOLVE_TMO on the block to 0. +# This will eliminiate delays when trying to open files on not mounted +# volumes. +EFS_RESOLVE_TMO=0 diff --git a/erts/etc/ose/run_erl_main.c b/erts/etc/ose/run_erl_main.c index d396ebe93b..2d92924ff2 100644 --- a/erts/etc/ose/run_erl_main.c +++ b/erts/etc/ose/run_erl_main.c @@ -45,6 +45,8 @@ int main(int argc, char **argv) char run_erl_usage[320], to_erl_usage[120]; + (void)stdin;(void)stdout;(void)stderr; + sprintf(run_erl_usage,RUN_ERL_USAGE,"run_erl [-daemon] [-block blockname]"); sprintf(to_erl_usage,TO_ERL_USAGE,"pipename"); diff --git a/erts/include/internal/ethr_mutex.h b/erts/include/internal/ethr_mutex.h index ee861065c5..6c931e0cd4 100644 --- a/erts/include/internal/ethr_mutex.h +++ b/erts/include/internal/ethr_mutex.h @@ -354,7 +354,7 @@ void ethr_rwmutex_rwunlock(ethr_rwmutex *); #ifdef ETHR_MTX_HARD_DEBUG #define ETHR_MTX_HARD_ASSERT(A) \ - ((void) ((A) ? 1 : ethr_assert_failed(__FILE__, __LINE__, #A))) + ((void) ((A) ? 1 : ethr_assert_failed(__FILE__, __LINE__, __func__,#A))) #else #define ETHR_MTX_HARD_ASSERT(A) ((void) 1) #endif diff --git a/erts/include/internal/ethread.h b/erts/include/internal/ethread.h index 64f1fae6d8..54acd1295a 100644 --- a/erts/include/internal/ethread.h +++ b/erts/include/internal/ethread.h @@ -396,6 +396,18 @@ extern ethr_runtime_t ethr_runtime__; #include "ethr_atomics.h" /* The atomics API */ +#if defined (ETHR_OSE_THREADS) +static ETHR_INLINE void +ose_yield(void) +{ + if (get_ptype(current_process()) == OS_PRI_PROC) { + set_pri(get_pri(current_process())); + } else { + delay(1); + } +} +#endif + #if defined(__GNUC__) && !defined(ETHR_OSE_THREADS) # ifndef ETHR_SPIN_BODY # if defined(__i386__) || defined(__x86_64__) @@ -414,9 +426,9 @@ extern ethr_runtime_t ethr_runtime__; # endif #elif defined(ETHR_OSE_THREADS) # ifndef ETHR_SPIN_BODY -# define ETHR_SPIN_BODY set_pri(get_pri(current_process())) +# define ETHR_SPIN_BODY ose_yield() # else -# error "OSE should use set_pri(get_pri(current_process()))" +# error "OSE should use ose_yield()" # endif #endif @@ -449,7 +461,7 @@ extern ethr_runtime_t ethr_runtime__; # define ETHR_YIELD() (pthread_yield(), 0) # endif # elif defined(ETHR_OSE_THREADS) -# define ETHR_YIELD() (set_pri(get_pri(current_process())), 0) +# define ETHR_YIELD() (ose_yield(), 0) # else # define ETHR_YIELD() (ethr_compiler_barrier(), 0) # endif diff --git a/erts/test/otp_SUITE.erl b/erts/test/otp_SUITE.erl index 1fb452501f..cd5cfcbab4 100644 --- a/erts/test/otp_SUITE.erl +++ b/erts/test/otp_SUITE.erl @@ -328,7 +328,9 @@ erl_file_encoding(_Config) -> Wc = filename:join([Root,"**","*.erl"]), ErlFiles = ordsets:subtract(ordsets:from_list(filelib:wildcard(Wc)), release_files(Root, "*.erl")), + {ok, MP} = re:compile(".*lib/(ic)|(orber)|(cos).*", [unicode]), Fs = [F || F <- ErlFiles, + filter_use_latin1_coding(F, MP), case epp:read_encoding(F) of none -> false; _ -> true @@ -342,6 +344,14 @@ erl_file_encoding(_Config) -> ?t:fail() end. +filter_use_latin1_coding(F, MP) -> + case re:run(F, MP) of + nomatch -> + true; + {match, _} -> + false + end. + xml_file_encoding(_Config) -> XmlFiles = xml_files(), Fs = [F || F <- XmlFiles, is_bad_encoding(F)], diff --git a/lib/common_test/src/ct_telnet.erl b/lib/common_test/src/ct_telnet.erl index 0a067b3a08..bc22a99741 100644 --- a/lib/common_test/src/ct_telnet.erl +++ b/lib/common_test/src/ct_telnet.erl @@ -308,7 +308,7 @@ close(Connection) -> {ok,Pid} -> log(undefined,close,"Connection closed, handle: ~w",[Pid]), case ct_gen_conn:stop(Pid) of - {error,{process_down,Pid,noproc}} -> + {error,{process_down,Pid,_}} -> {error,already_closed}; Result -> Result diff --git a/lib/dialyzer/src/dialyzer_dataflow.erl b/lib/dialyzer/src/dialyzer_dataflow.erl index 692684cd99..e0873b17f8 100644 --- a/lib/dialyzer/src/dialyzer_dataflow.erl +++ b/lib/dialyzer/src/dialyzer_dataflow.erl @@ -363,20 +363,24 @@ traverse_list([], Map, State, Acc) -> handle_apply(Tree, Map, State) -> Args = cerl:apply_args(Tree), Op = cerl:apply_op(Tree), - {State1, Map1, ArgTypes} = traverse_list(Args, Map, State), - {State2, Map2, OpType} = traverse(Op, Map1, State1), + {State0, Map1, ArgTypes} = traverse_list(Args, Map, State), + {State1, Map2, OpType} = traverse(Op, Map1, State0), case any_none(ArgTypes) of true -> - {State2, Map2, t_none()}; + {State1, Map2, t_none()}; false -> - {CallSitesKnown, FunList} = - case state__lookup_call_site(Tree, State2) of - error -> {false, []}; - {ok, [external]} -> {false, []}; - {ok, List} -> {true, List} + FunList = + case state__lookup_call_site(Tree, State) of + error -> [external]; %% so that we go directly in the fallback + {ok, List} -> List end, - case CallSitesKnown of - false -> + FunInfoList = [{local, state__fun_info(Fun, State)} || Fun <- FunList], + case + handle_apply_or_call(FunInfoList, Args, ArgTypes, Map2, Tree, State1) + of + {had_external, State2} -> + %% Fallback: use whatever info we collected from traversing the op + %% instead of the result that has been generalized to t_any(). Arity = length(Args), OpType1 = t_inf(OpType, t_fun(Arity, t_any())), case t_is_none(OpType1) of @@ -408,25 +412,23 @@ handle_apply(Tree, Map, State) -> {State2, enter_type(Op, OpType1, Map3), Range} end end; - true -> - FunInfoList = [{local, state__fun_info(Fun, State)} - || Fun <- FunList], - handle_apply_or_call(FunInfoList, Args, ArgTypes, Map2, Tree, State1) + Normal -> Normal end end. handle_apply_or_call(FunInfoList, Args, ArgTypes, Map, Tree, State) -> None = t_none(), handle_apply_or_call(FunInfoList, Args, ArgTypes, Map, Tree, State, - [None || _ <- ArgTypes], None). + [None || _ <- ArgTypes], None, false). handle_apply_or_call([{local, external}|Left], Args, ArgTypes, Map, Tree, State, - _AccArgTypes, _AccRet) -> + _AccArgTypes, _AccRet, _HadExternal) -> handle_apply_or_call(Left, Args, ArgTypes, Map, Tree, State, - ArgTypes, t_any()); + ArgTypes, t_any(), true); handle_apply_or_call([{TypeOfApply, {Fun, Sig, Contr, LocalRet}}|Left], Args, ArgTypes, Map, Tree, - #state{opaques = Opaques} = State, AccArgTypes, AccRet) -> + #state{opaques = Opaques} = State, + AccArgTypes, AccRet, HadExternal) -> Any = t_any(), AnyArgs = [Any || _ <- Args], GenSig = {AnyArgs, fun(_) -> t_any() end}, @@ -573,11 +575,16 @@ handle_apply_or_call([{TypeOfApply, {Fun, Sig, Contr, LocalRet}}|Left], NewAccRet = t_sup(AccRet, TotalRet), ?debug("NewAccRet: ~s\n", [t_to_string(NewAccRet)]), handle_apply_or_call(Left, Args, ArgTypes, Map, Tree, - State3, NewAccArgTypes, NewAccRet); + State3, NewAccArgTypes, NewAccRet, HadExternal); handle_apply_or_call([], Args, _ArgTypes, Map, _Tree, State, - AccArgTypes, AccRet) -> - NewMap = enter_type_lists(Args, AccArgTypes, Map), - {State, NewMap, AccRet}. + AccArgTypes, AccRet, HadExternal) -> + case HadExternal of + false -> + NewMap = enter_type_lists(Args, AccArgTypes, Map), + {State, NewMap, AccRet}; + true -> + {had_external, State} + end. apply_fail_reason(FailedSig, FailedBif, FailedContract) -> if diff --git a/lib/dialyzer/src/dialyzer_dep.erl b/lib/dialyzer/src/dialyzer_dep.erl index e3ece144c9..572e60278d 100644 --- a/lib/dialyzer/src/dialyzer_dep.erl +++ b/lib/dialyzer/src/dialyzer_dep.erl @@ -124,8 +124,10 @@ traverse(Tree, Out, State, CurrentFun) -> TmpState = state__add_deps(Label, O1, State), state__add_deps(CurrentFun, O2,TmpState) end, - {BodyFuns, State2} = traverse(Body, Out, State1, - cerl_trees:get_label(Tree)), + Vars = cerl:fun_vars(Tree), + Out1 = bind_single(Vars, output(set__singleton(external)), Out), + {BodyFuns, State2} = + traverse(Body, Out1, State1, cerl_trees:get_label(Tree)), {output(set__singleton(Label)), state__add_esc(BodyFuns, State2)}; 'let' -> Vars = cerl:let_vars(Tree), diff --git a/lib/dialyzer/test/small_SUITE_data/results/funs_from_outside b/lib/dialyzer/test/small_SUITE_data/results/funs_from_outside new file mode 100644 index 0000000000..3e597ef1bc --- /dev/null +++ b/lib/dialyzer/test/small_SUITE_data/results/funs_from_outside @@ -0,0 +1,7 @@ + +funs_from_outside.erl:18: The pattern 'error' can never match the type {'ok','nothing' | 'something'} +funs_from_outside.erl:32: Function run2/2 has no local return +funs_from_outside.erl:35: Function testb/3 has no local return +funs_from_outside.erl:41: The pattern 'error' can never match the type {'ok','nothing' | 'something'} +funs_from_outside.erl:78: Function test2/1 has no local return +funs_from_outside.erl:83: The pattern 'error' can never match the type 'ok' diff --git a/lib/dialyzer/test/small_SUITE_data/src/funs_from_outside.erl b/lib/dialyzer/test/small_SUITE_data/src/funs_from_outside.erl new file mode 100644 index 0000000000..f4cbf31160 --- /dev/null +++ b/lib/dialyzer/test/small_SUITE_data/src/funs_from_outside.erl @@ -0,0 +1,83 @@ +-module(funs_from_outside).
+
+-export([run1/2, run2/2, run3/2]).
+-export([test1/1, test2/1]).
+
+%%------------------------------------------------------------------------------
+
+run1(X, Y) ->
+ testa(fun do_something/1, X, Y).
+
+testa(Fun, X, Y) ->
+ F = case even(X) of
+ true -> Fun;
+ false -> fun do_nothing/1
+ end,
+ case F(Y) of
+ {ok, _} -> ok;
+ error -> error
+ end.
+
+do_nothing(_) -> {ok, nothing}.
+
+do_something(_) -> {ok, something}.
+
+even(X) ->
+ X rem 2 =:= 0.
+
+%%------------------------------------------------------------------------------
+
+%% Duplicating code since we are monovariant...
+
+run2(X, Y) ->
+ testb(fun do_something/1, X, Y).
+
+testb(Fun, X, Y) ->
+ F = case even(X) of
+ true -> Fun;
+ false -> fun do_nothing/1
+ end,
+ case F(Y) of
+ error -> error
+ end.
+
+%%------------------------------------------------------------------------------
+
+%% Duplicating code since we are monovariant...
+
+run3(X, Y) ->
+ testc(fun do_something_2/1, X, Y).
+
+testc(Fun, X, Y) ->
+ F = case even(X) of
+ true -> Fun;
+ false -> fun do_nothing/1
+ end,
+ case F(Y) of
+ {ok, _} -> ok;
+ %% This pattern can match.
+ error -> error
+ end.
+
+do_something_2(foo) -> {ok, something};
+do_something_2(_) -> error.
+
+%%------------------------------------------------------------------------------
+
+test1(Fun) ->
+ F = case get(test1) of
+ test1_t -> Fun;
+ test1_f -> fun fok/0
+ end,
+ error = F().
+
+fok() -> ok.
+
+%%------------------------------------------------------------------------------
+
+test2(Fun) ->
+ F = case get(test1) of
+ test1_t -> fun fok/0;
+ test1_f -> fun fok/0
+ end,
+ error = F().
diff --git a/lib/erl_interface/aclocal.m4 b/lib/erl_interface/aclocal.m4 index c51c26794a..2b47f7c4bc 100644 --- a/lib/erl_interface/aclocal.m4 +++ b/lib/erl_interface/aclocal.m4 @@ -83,8 +83,10 @@ AC_ARG_VAR(erl_xcomp_ose_LM_POST_LINK, [OSE postlink tool (only used when cross AC_ARG_VAR(erl_xcomp_ose_LM_SET_CONF, [Sets the configuration for an OSE load module (only used when cross compiling for OSE)]) AC_ARG_VAR(erl_xcomp_ose_LM_ELF_SIZE, [Prints the section size information for an OSE load module (only used when cross compiling for OSE)]) AC_ARG_VAR(erl_xcomp_ose_LM_LCF, [OSE load module linker configuration file (only used when cross compiling for OSE)]) -AC_ARG_VAR(erl_xcomp_ose_LM_CONF, [OSE load module default configuration file (only used when cross compiling for OSE)]) -AC_ARG_VAR(erl_xcomp_ose_CONFD, [OSE OSE confd source file]) +AC_ARG_VAR(erl_xcomp_ose_BEAM_LM_CONF, [BEAM OSE load module default configuration file (only used when cross compiling for OSE)]) +AC_ARG_VAR(erl_xcomp_ose_EPMD_LM_CONF, [EPMD OSE load module default configuration file (only used when cross compiling for OSE)]) +AC_ARG_VAR(erl_xcomp_ose_RUN_ERL_LM_CONF, [run_erl_lm OSE load module default configuration file (only used when cross compiling for OSE)]) +AC_ARG_VAR(erl_xcomp_ose_CONFD, [OSE confd source file]) AC_ARG_VAR(erl_xcomp_ose_CRT0_LM, [OSE crt0 lm source file]) ]) diff --git a/lib/ic/src/ic.erl b/lib/ic/src/ic.erl index c0742cf7bd..4f3e8d180c 100644 --- a/lib/ic/src/ic.erl +++ b/lib/ic/src/ic.erl @@ -250,7 +250,7 @@ make_erl_options(Opts) -> Optimize = Opts#options.optimize, PreProc = lists:flatten( - lists:map(fun(D) -> io_lib:format("-I\"~s\" ", [ic_util:to_list(D)]) end, + lists:map(fun(D) -> io_lib:format("-I\"~ts\" ", [ic_util:to_list(D)]) end, Includes1)++ lists:map( fun ({Name, Value}) -> diff --git a/lib/ic/src/ic_codegen.erl b/lib/ic/src/ic_codegen.erl index f611c69bea..82431b79a2 100644 --- a/lib/ic/src/ic_codegen.erl +++ b/lib/ic/src/ic_codegen.erl @@ -216,12 +216,14 @@ exp_to_string({F,N}) -> io_lib:format("~p/~p", [ic_util:to_atom(F), N]). %%-------------------------------------------------------------------- emit_stub_head(_G, ignore, _Name, _) -> ignore; emit_stub_head(G, F1, Name, erlang) -> + comment(F1, " coding: latin-1", []), mcomment(F1, stub_header(G, Name)), nl(F1), emit(F1, "-module(~p).\n", [list_to_atom(Name)]), emit(F1, "-ic_compiled(~p).\n", [compiler_vsn(?COMPILERVSN)]), emit(F1, "\n\n"), F1; emit_stub_head(G, F1, Name, erlang_template) -> + comment(F1, " coding: latin-1", []), ic_erl_template:emit_header(G, F1, Name), F1; emit_stub_head(_G, F1, _Name, erlang_template_no_gen) -> @@ -259,6 +261,7 @@ compiler_vsn(Vsn) -> %% Name is Fully scoped (undescore) name of interface or module emit_hrl_head(_G, ignore, _Name, _) -> ignore; emit_hrl_head(G, Fd, Name, erlang) -> + comment(Fd, " coding: latin-1", []), mcomment(Fd, ["Erlang header file" | hrl_header(G, Name)]), nl(Fd), diff --git a/lib/ic/src/ic_pp.erl b/lib/ic/src/ic_pp.erl index 54701f7438..e54304ebaa 100644 --- a/lib/ic/src/ic_pp.erl +++ b/lib/ic/src/ic_pp.erl @@ -257,15 +257,15 @@ run_include(FileName, FileList, _Out, Defs, Err, War, IncLine, IncFile, IncDir, tokenise(File, FileName) -> {Result, _L} = token(File, 2, [], not_set, 0), - FI_start = lists:reverse(lists:flatten(io_lib:format("# 1 ~p~n",[FileName]))), + FI_start = lists:reverse(lists:flatten(io_lib:format("# 1 \"~ts\"~n",[FileName]))), FileInfoStart = {file_info, FI_start}, [FileInfoStart | Result]. tokenise(File, FileName, IncLine, PrevFile) -> {Result, _L} = token(File, 2, [], not_set, 0), - FI_start = lists:reverse(lists:flatten(io_lib:format("# 1 ~p 1~n",[FileName]))), + FI_start = lists:reverse(lists:flatten(io_lib:format("# 1 \"~ts\" 1~n",[FileName]))), FileInfoStart = {file_info, FI_start}, - FI_end = lists:reverse(lists:flatten(io_lib:format("# ~p ~p 2~n~n",[IncLine-1,PrevFile]))), + FI_end = lists:reverse(lists:flatten(io_lib:format("# ~p \"~ts\" 2~n~n",[IncLine-1,PrevFile]))), FileInfoEnd = [{file_info, FI_end}], {Result, FileInfoStart, FileInfoEnd}. % [FileInfoStart | Result] ++ FileInfoEnd. @@ -1942,7 +1942,7 @@ read_inc_file(FileName, IncDir, Mio) -> FileList = binary_to_list(Bin), {ok, AbsFile, FileList}; {error, Text} -> - {error, Text} + {error, Text} end; true -> skip diff --git a/lib/ic/test/java_client_erl_server_SUITE.erl b/lib/ic/test/java_client_erl_server_SUITE.erl index 9e49305c3c..cbcf32515e 100644 --- a/lib/ic/test/java_client_erl_server_SUITE.erl +++ b/lib/ic/test/java_client_erl_server_SUITE.erl @@ -288,7 +288,7 @@ classpath(Dir) -> cmd(Cmd) -> PortOpts = [{line,80},eof,exit_status,stderr_to_stdout], - io:format("<cmd> ~s~n", [Cmd]), + io:format("<cmd> ~ts~n", [Cmd]), case catch open_port({spawn,Cmd}, PortOpts) of Port when is_port(Port) -> Result = cmd_loop(Port, []), diff --git a/lib/kernel/src/inet_config.erl b/lib/kernel/src/inet_config.erl index 2461f3ff25..fdc244f959 100644 --- a/lib/kernel/src/inet_config.erl +++ b/lib/kernel/src/inet_config.erl @@ -197,6 +197,9 @@ do_load_resolv({win32,Type}, longnames) -> win32_load_from_registry(Type), inet_db:set_lookup([native]); +do_load_resolv({ose,_}, _) -> + inet_db:set_lookup([file]); + do_load_resolv(_, _) -> inet_db:set_lookup([native]). diff --git a/lib/kernel/src/os.erl b/lib/kernel/src/os.erl index 3bda391b8e..187fd0001b 100644 --- a/lib/kernel/src/os.erl +++ b/lib/kernel/src/os.erl @@ -67,7 +67,7 @@ unsetenv(_) -> %%% End of BIFs -spec type() -> {Osfamily, Osname} when - Osfamily :: unix | win32, + Osfamily :: unix | win32 | ose, Osname :: atom(). type() -> diff --git a/lib/kernel/test/gen_tcp_misc_SUITE.erl b/lib/kernel/test/gen_tcp_misc_SUITE.erl index ee8bfcceb1..2df4bf7c95 100644 --- a/lib/kernel/test/gen_tcp_misc_SUITE.erl +++ b/lib/kernel/test/gen_tcp_misc_SUITE.erl @@ -1,7 +1,7 @@ %% %% %CopyrightBegin% %% -%% Copyright Ericsson AB 1998-2013. All Rights Reserved. +%% Copyright Ericsson AB 1998-2014. All Rights Reserved. %% %% The contents of this file are subject to the Erlang Public License, %% Version 1.1, (the "License"); you may not use this file except in @@ -50,6 +50,14 @@ oct_acceptor/1, otp_7731_server/1, zombie_server/2, do_iter_max_socks/2]). +init_per_testcase(wrapping_oct, Config) when is_list(Config) -> + Dog = case os:type() of + {ose,_} -> + test_server:timetrap(test_server:minutes(20)); + _Else -> + test_server:timetrap(test_server:seconds(600)) + end, + [{watchdog, Dog}|Config]; init_per_testcase(iter_max_socks, Config) when is_list(Config) -> Dog = case os:type() of {win32,_} -> @@ -58,6 +66,17 @@ init_per_testcase(iter_max_socks, Config) when is_list(Config) -> test_server:timetrap(test_server:seconds(240)) end, [{watchdog, Dog}|Config]; +init_per_testcase(accept_system_limit, Config) when is_list(Config) -> + case os:type() of + {ose,_} -> + {skip,"Skip in OSE"}; + _ -> + Dog = test_server:timetrap(test_server:seconds(240)), + [{watchdog,Dog}|Config] + end; +init_per_testcase(wrapping_oct, Config) when is_list(Config) -> + Dog = test_server:timetrap(test_server:seconds(600)), + [{watchdog, Dog}|Config]; init_per_testcase(_Func, Config) when is_list(Config) -> Dog = test_server:timetrap(test_server:seconds(240)), [{watchdog, Dog}|Config]. @@ -537,7 +556,6 @@ otp_3924(Config) when is_list(Config) -> otp_3924_1(MaxDelay). otp_3924_1(MaxDelay) -> - Dog = test_server:timetrap(test_server:seconds(240)), ?line {ok, Node} = start_node(otp_3924), ?line DataLen = 100*1024, ?line Data = otp_3924_data(DataLen), @@ -548,7 +566,6 @@ otp_3924_1(MaxDelay) -> ?line ok = otp_3924(MaxDelay, Node, Data, DataLen, N) end), ?line test_server:stop_node(Node), - test_server:timetrap_cancel(Dog), ok. otp_3924(MaxDelay, Node, Data, DataLen, N) -> @@ -1953,7 +1970,9 @@ accept_system_limit(doc) -> accept_system_limit(Config) when is_list(Config) -> ?line {ok, LS} = gen_tcp:listen(0, []), ?line {ok, TcpPort} = inet:port(LS), - ?line Connector = spawn_link(fun () -> connector(TcpPort) end), + Me = self(), + ?line Connector = spawn_link(fun () -> connector(TcpPort, Me) end), + receive {Connector, sync} -> Connector ! {self(), continue} end, ?line ok = acceptor(LS, false, []), ?line Connector ! stop, ok. @@ -1970,8 +1989,10 @@ acceptor(LS, GotSL, A) -> error end. -connector(TcpPort) -> +connector(TcpPort, Tester) -> ManyPorts = open_ports([]), + Tester ! {self(), sync}, + receive {Tester, continue} -> timer:sleep(100) end, ConnF = fun (Port) -> case catch gen_tcp:connect({127,0,0,1}, TcpPort, []) of {ok, Sock} -> @@ -2705,13 +2726,11 @@ wrapping_oct(doc) -> wrapping_oct(suite) -> []; wrapping_oct(Config) when is_list(Config) -> - Dog = test_server:timetrap(test_server:seconds(600)), {ok,Sock} = gen_tcp:listen(0,[{active,false},{mode,binary}]), {ok,Port} = inet:port(Sock), spawn_link(?MODULE,oct_acceptor,[Sock]), Res = oct_datapump(Port,16#1FFFFFFFF), gen_tcp:close(Sock), - test_server:timetrap_cancel(Dog), ok = Res, ok. diff --git a/lib/kernel/test/heart_SUITE.erl b/lib/kernel/test/heart_SUITE.erl index 320b23bea1..35d3b75b34 100644 --- a/lib/kernel/test/heart_SUITE.erl +++ b/lib/kernel/test/heart_SUITE.erl @@ -1,7 +1,7 @@ %% %% %CopyrightBegin% %% -%% Copyright Ericsson AB 1996-2012. All Rights Reserved. +%% Copyright Ericsson AB 1996-2014. All Rights Reserved. %% %% The contents of this file are subject to the Erlang Public License, %% Version 1.1, (the "License"); you may not use this file except in @@ -93,10 +93,10 @@ start_check(Type, Name) -> start_check(Type, Name, []). start_check(Type, Name, Envs) -> Args = case ?t:os_type() of - {win32,_} -> - "-heart " ++ env_encode([{"HEART_COMMAND", no_reboot}|Envs]); + {win32,_} -> + "+t50000 -heart " ++ env_encode([{"HEART_COMMAND", no_reboot}|Envs]); _ -> - "-heart " ++ env_encode(Envs) + "+t50000 -heart " ++ env_encode(Envs) end, {ok, Node} = case Type of loose -> diff --git a/lib/megaco/aclocal.m4 b/lib/megaco/aclocal.m4 index c51c26794a..2b47f7c4bc 100644 --- a/lib/megaco/aclocal.m4 +++ b/lib/megaco/aclocal.m4 @@ -83,8 +83,10 @@ AC_ARG_VAR(erl_xcomp_ose_LM_POST_LINK, [OSE postlink tool (only used when cross AC_ARG_VAR(erl_xcomp_ose_LM_SET_CONF, [Sets the configuration for an OSE load module (only used when cross compiling for OSE)]) AC_ARG_VAR(erl_xcomp_ose_LM_ELF_SIZE, [Prints the section size information for an OSE load module (only used when cross compiling for OSE)]) AC_ARG_VAR(erl_xcomp_ose_LM_LCF, [OSE load module linker configuration file (only used when cross compiling for OSE)]) -AC_ARG_VAR(erl_xcomp_ose_LM_CONF, [OSE load module default configuration file (only used when cross compiling for OSE)]) -AC_ARG_VAR(erl_xcomp_ose_CONFD, [OSE OSE confd source file]) +AC_ARG_VAR(erl_xcomp_ose_BEAM_LM_CONF, [BEAM OSE load module default configuration file (only used when cross compiling for OSE)]) +AC_ARG_VAR(erl_xcomp_ose_EPMD_LM_CONF, [EPMD OSE load module default configuration file (only used when cross compiling for OSE)]) +AC_ARG_VAR(erl_xcomp_ose_RUN_ERL_LM_CONF, [run_erl_lm OSE load module default configuration file (only used when cross compiling for OSE)]) +AC_ARG_VAR(erl_xcomp_ose_CONFD, [OSE confd source file]) AC_ARG_VAR(erl_xcomp_ose_CRT0_LM, [OSE crt0 lm source file]) ]) diff --git a/lib/mnesia/src/mnesia.hrl b/lib/mnesia/src/mnesia.hrl index 2855792646..c8010d5466 100644 --- a/lib/mnesia/src/mnesia.hrl +++ b/lib/mnesia/src/mnesia.hrl @@ -1,7 +1,7 @@ %% %% %CopyrightBegin% %% -%% Copyright Ericsson AB 1996-2011. All Rights Reserved. +%% Copyright Ericsson AB 1996-2014. All Rights Reserved. %% %% The contents of this file are subject to the Erlang Public License, %% Version 1.1, (the "License"); you may not use this file except in @@ -35,7 +35,7 @@ -define(ets_last(Tab), ets:last(Tab)). -define(ets_prev(Tab, Key), ets:prev(Tab, Key)). -define(ets_slot(Tab, Pos), ets:slot(Tab, Pos)). --define(ets_new_table(Tab, Props), ets:new(Tab, Props)). +-define(ets_new_table(Tab, Props), _ = ets:new(Tab, Props)). -define(ets_delete_table(Tab), ets:delete(Tab)). -define(ets_fixtable(Tab, Bool), ets:fixtable(Tab, Bool)). diff --git a/lib/mnesia/src/mnesia_index.erl b/lib/mnesia/src/mnesia_index.erl index 8fef611a48..87cb58dae1 100644 --- a/lib/mnesia/src/mnesia_index.erl +++ b/lib/mnesia/src/mnesia_index.erl @@ -52,7 +52,11 @@ val(Var) -> case ?catch_val(Var) of - {'EXIT', _ReASoN_} -> mnesia_lib:other_val(Var, _ReASoN_); + {'EXIT', _ReASoN_} -> + case mnesia_lib:other_val(Var) of + error -> mnesia_lib:pr_other(Var, _ReASoN_); + Val -> Val + end; _VaLuE_ -> _VaLuE_ end. diff --git a/lib/mnesia/src/mnesia_lib.erl b/lib/mnesia/src/mnesia_lib.erl index 109e924971..a32c69c59e 100644 --- a/lib/mnesia/src/mnesia_lib.erl +++ b/lib/mnesia/src/mnesia_lib.erl @@ -115,6 +115,8 @@ mkcore/1, not_active_here/1, other_val/2, + other_val/1, + pr_other/2, overload_read/0, overload_read/1, overload_set/2, @@ -389,16 +391,19 @@ unset(Var) -> ?ets_delete(mnesia_gvar, Var). other_val(Var, Other) -> + case other_val(Var) of + error -> pr_other(Var, Other); + Val -> Val + end. + +other_val(Var) -> case Var of {_, where_to_read} -> nowhere; {_, where_to_write} -> []; {_, active_replicas} -> []; - _ -> - pr_other(Var, Other) + _ -> error end. --spec pr_other(_,_) -> no_return(). - pr_other(Var, Other) -> Why = case is_running() of diff --git a/lib/mnesia/src/mnesia_locker.erl b/lib/mnesia/src/mnesia_locker.erl index 32cea903c9..81b435c6dc 100644 --- a/lib/mnesia/src/mnesia_locker.erl +++ b/lib/mnesia/src/mnesia_locker.erl @@ -270,7 +270,8 @@ try_sticky_lock(Tid, Op, Pid, {Tab, _} = Oid) -> try_lock(Tid, Op, Pid, Oid); [{_,N}] -> Req = {Pid, {Op, Tid, Oid}}, - Pid ! {?MODULE, node(), {switch, N, Req}} + Pid ! {?MODULE, node(), {switch, N, Req}}, + true end. try_lock(Tid, read_write, Pid, Oid) -> diff --git a/lib/mnesia/src/mnesia_recover.erl b/lib/mnesia/src/mnesia_recover.erl index 0548a25ebf..b6492707e2 100644 --- a/lib/mnesia/src/mnesia_recover.erl +++ b/lib/mnesia/src/mnesia_recover.erl @@ -178,7 +178,11 @@ log_decision(D) -> val(Var) -> case ?catch_val(Var) of - {'EXIT', Reason} -> mnesia_lib:other_val(Var, Reason); + {'EXIT', Reason} -> + case mnesia_lib:other_val(Var) of + error -> mnesia_lib:pr_other(Var, Reason); + Val -> Val + end; Value -> Value end. diff --git a/lib/mnesia/src/mnesia_snmp_hook.erl b/lib/mnesia/src/mnesia_snmp_hook.erl index 893b39f3c0..256f83b029 100644 --- a/lib/mnesia/src/mnesia_snmp_hook.erl +++ b/lib/mnesia/src/mnesia_snmp_hook.erl @@ -1,7 +1,7 @@ %% %% %CopyrightBegin% %% -%% Copyright Ericsson AB 1996-2011. All Rights Reserved. +%% Copyright Ericsson AB 1996-2014. All Rights Reserved. %% %% The contents of this file are subject to the Erlang Public License, %% Version 1.1, (the "License"); you may not use this file except in @@ -32,7 +32,11 @@ val(Var) -> case ?catch_val(Var) of - {'EXIT', _ReASoN_} -> mnesia_lib:other_val(Var, _ReASoN_); + {'EXIT', _ReASoN_} -> + case mnesia_lib:other_val(Var) of + error -> mnesia_lib:pr_other(Var, _ReASoN_); + Val -> Val + end; _VaLuE_ -> _VaLuE_ end. diff --git a/lib/mnesia/test/mnesia_config_test.erl b/lib/mnesia/test/mnesia_config_test.erl index 6baf86a4a5..c495bce63f 100644 --- a/lib/mnesia/test/mnesia_config_test.erl +++ b/lib/mnesia/test/mnesia_config_test.erl @@ -1,7 +1,7 @@ %% %% %CopyrightBegin% %% -%% Copyright Ericsson AB 1997-2013. All Rights Reserved. +%% Copyright Ericsson AB 1997-2014. All Rights Reserved. %% %% The contents of this file are subject to the Erlang Public License, %% Version 1.1, (the "License"); you may not use this file except in @@ -639,10 +639,10 @@ send_compressed(Config) -> end, ?match([], mnesia_test_lib:kill_mnesia([N2])), - + sys:get_status(mnesia_monitor), %% sync N1 ?match([], mnesia_test_lib:kill_mnesia([N1])), ?match(ok, mnesia:start([{send_compressed, 9}])), - ?match(ok, mnesia:wait_for_tables([t0,t1,t2], 5000)), + ?match(ok, mnesia:wait_for_tables([t0,t1,t2], 25000)), ?match({atomic, ok}, mnesia:transaction(Create, [t0])), ?match({atomic, ok}, mnesia:transaction(Create, [t1])), @@ -1158,6 +1158,7 @@ dynamic_basic(Config) when is_list(Config) -> %%% SYNC!!! timer:sleep(1000), + sys:get_status(mnesia_monitor), ?match([N3,N1], sort(rpc:call(N1, mnesia, system_info, [running_db_nodes]))), ?match([N3,N1], sort(rpc:call(N3, mnesia, system_info, [running_db_nodes]))), diff --git a/lib/mnesia/test/mnesia_evil_coverage_test.erl b/lib/mnesia/test/mnesia_evil_coverage_test.erl index 91820238e5..2d1623b6ca 100644 --- a/lib/mnesia/test/mnesia_evil_coverage_test.erl +++ b/lib/mnesia/test/mnesia_evil_coverage_test.erl @@ -1,7 +1,7 @@ %% %% %CopyrightBegin% %% -%% Copyright Ericsson AB 1996-2013. All Rights Reserved. +%% Copyright Ericsson AB 1996-2014. All Rights Reserved. %% %% The contents of this file are subject to the Erlang Public License, %% Version 1.1, (the "License"); you may not use this file except in @@ -671,13 +671,16 @@ add_copy_when_going_down(Config) -> ?acquire_nodes(2, Config ++ [{tc_timeout, timer:minutes(2)}]), ?match({atomic, ok}, mnesia:create_table(a, [{ram_copies, [Node1]}])), %% Grab a write lock + Tester = self(), WriteAndWait = fun() -> mnesia:write({a,1,1}), - receive continue -> ok + Tester ! {self(), got_lock}, + receive continue -> ok end end, - _Lock = spawn(fun() -> mnesia:transaction(WriteAndWait) end), - Tester = self(), + Locker = spawn(fun() -> mnesia:transaction(WriteAndWait) end), + receive {Locker, got_lock} -> ok end, + spawn_link(fun() -> Res = rpc:call(Node2, mnesia, add_table_copy, [a, Node2, ram_copies]), Tester ! {test, Res} diff --git a/lib/observer/src/cdv_dist_cb.erl b/lib/observer/src/cdv_dist_cb.erl index 3860324d6f..f7e6c9aded 100644 --- a/lib/observer/src/cdv_dist_cb.erl +++ b/lib/observer/src/cdv_dist_cb.erl @@ -1,7 +1,7 @@ %% %% %CopyrightBegin% %% -%% Copyright Ericsson AB 2013. All Rights Reserved. +%% Copyright Ericsson AB 2013-2014. All Rights Reserved. %% %% The contents of this file are subject to the Erlang Public License, %% Version 1.1, (the "License"); you may not use this file except in @@ -22,7 +22,8 @@ get_info/1, get_detail_cols/1, get_details/1, - detail_pages/0]). + detail_pages/0, + format/1]). -include_lib("wx/include/wx.hrl"). -include("crashdump_viewer.hrl"). @@ -75,6 +76,11 @@ init_gen_page(Parent, Info) -> Fields = info_fields(), cdv_info_wx:start_link(Parent,{Fields,Info,[]}). +format({creations,Creations}) -> + string:join([integer_to_list(C) || C <- Creations],","); +format(D) -> + D. + %%%----------------------------------------------------------------- %%% Internal info_fields() -> @@ -83,7 +89,7 @@ info_fields() -> {"Type", conn_type}, {"Channel", channel}, {"Controller", {click,controller}}, - {"Creation", creation}, + {"Creation", {{format,fun format/1},creation}}, {"Extra Info", error}]}, {scroll_boxes, [{"Remote Links",1,{click,remote_links}}, diff --git a/lib/observer/src/crashdump_viewer.erl b/lib/observer/src/crashdump_viewer.erl index a17efbccb0..a08d27d070 100644 --- a/lib/observer/src/crashdump_viewer.erl +++ b/lib/observer/src/crashdump_viewer.erl @@ -1,7 +1,7 @@ %% %% %CopyrightBegin% %% -%% Copyright Ericsson AB 2003-2013. All Rights Reserved. +%% Copyright Ericsson AB 2003-2014. All Rights Reserved. %% %% The contents of this file are subject to the Erlang Public License, %% Version 1.1, (the "License"); you may not use this file except in @@ -1576,7 +1576,13 @@ get_nodeinfo(Fd,Nod) -> "Controller" -> get_nodeinfo(Fd,Nod#nod{controller=val(Fd)}); "Creation" -> - get_nodeinfo(Fd,Nod#nod{creation=list_to_integer(val(Fd))}); + %% Throwing away elements like "(refc=1)", which might be + %% printed from a debug compiled emulator. + Creations = lists:flatmap(fun(C) -> try [list_to_integer(C)] + catch error:badarg -> [] + end + end, string:tokens(val(Fd)," ")), + get_nodeinfo(Fd,Nod#nod{creation={creations,Creations}}); "Remote link" -> Procs = val(Fd), % e.g. "<0.31.0> <4322.54.0>" {Local,Remote} = split(Procs), @@ -2559,11 +2565,11 @@ progress_pmap(Report,File,Fun,List) -> {L1,L2} = if length(L)>=NPerProc -> lists:split(NPerProc,L); true -> {L,[]} % last chunk end, - P = spawn( + {P,_Ref} = + spawn_monitor( fun() -> progress_map(Collector,ReportInterval,File,Fun,L1) end), - erlang:monitor(process,P), {L2,[P|Ps]} end, {List,[]}, diff --git a/lib/observer/src/observer.erl b/lib/observer/src/observer.erl index 098100e8ee..a30ceecc63 100644 --- a/lib/observer/src/observer.erl +++ b/lib/observer/src/observer.erl @@ -1,7 +1,7 @@ %% %% %CopyrightBegin% %% -%% Copyright Ericsson AB 2011. All Rights Reserved. +%% Copyright Ericsson AB 2011-2014. All Rights Reserved. %% %% The contents of this file are subject to the Erlang Public License, %% Version 1.1, (the "License"); you may not use this file except in @@ -18,8 +18,11 @@ -module(observer). --export([start/0]). +-export([start/0, stop/0]). start() -> observer_wx:start(). + +stop() -> + observer_wx:stop(). diff --git a/lib/observer/src/observer_lib.erl b/lib/observer/src/observer_lib.erl index cedaf7d2b8..34c7b127ff 100644 --- a/lib/observer/src/observer_lib.erl +++ b/lib/observer/src/observer_lib.erl @@ -249,6 +249,8 @@ to_str({func, {F,A}}) when is_atom(F), is_integer(A) -> lists:concat([F, "/", A]); to_str({func, {F,'_'}}) when is_atom(F) -> atom_to_list(F); +to_str({{format,Fun},Value}) when is_function(Fun) -> + Fun(Value); to_str({A, B}) when is_atom(A), is_atom(B) -> lists:concat([A, ":", B]); to_str({M,F,A}) when is_atom(M), is_atom(F), is_integer(A) -> diff --git a/lib/observer/src/observer_procinfo.erl b/lib/observer/src/observer_procinfo.erl index 3ffa5fc77d..8e8a37fc93 100644 --- a/lib/observer/src/observer_procinfo.erl +++ b/lib/observer/src/observer_procinfo.erl @@ -34,6 +34,7 @@ -record(state, {parent, frame, + notebook, pid, pages=[], expand_table, @@ -76,6 +77,7 @@ init([Pid, ParentFrame, Parent]) -> {Frame, #state{parent=Parent, pid=Pid, frame=Frame, + notebook=Notebook, pages=[ProcessPage,MessagePage,DictPage,StackPage,StatePage], expand_table=Table }} @@ -158,6 +160,9 @@ handle_event(#wx{event=#wxHtmlLink{linkInfo=#wxHtmlLinkInfo{href=Info}}}, State) handle_event(Event, _State) -> error({unhandled_event, Event}). +handle_info({get_debug_info, From}, State = #state{notebook=Notebook}) -> + From ! {procinfo_debug, Notebook}, + {noreply, State}; handle_info(_Info, State) -> %% io:format("~p: ~p, Handle info: ~p~n", [?MODULE, ?LINE, Info]), {noreply, State}. diff --git a/lib/observer/src/observer_tv_wx.erl b/lib/observer/src/observer_tv_wx.erl index b276965f83..da4cb8e041 100644 --- a/lib/observer/src/observer_tv_wx.erl +++ b/lib/observer/src/observer_tv_wx.erl @@ -1,7 +1,7 @@ %% %% %CopyrightBegin% %% -%% Copyright Ericsson AB 2011-2012. All Rights Reserved. +%% Copyright Ericsson AB 2011-2014. All Rights Reserved. %% %% The contents of this file are subject to the Erlang Public License, %% Version 1.1, (the "License"); you may not use this file except in @@ -132,8 +132,8 @@ handle_event(#wx{event=#wxSize{size={W,_}}}, State=#state{grid=Grid}) -> observer_lib:set_listctrl_col_size(Grid, W), {noreply, State}; -handle_event(#wx{obj=Grid, event=#wxList{type=command_list_item_activated, - itemIndex=Index}}, +handle_event(#wx{event=#wxList{type=command_list_item_activated, + itemIndex=Index}}, State=#state{grid=Grid, node=Node, opt=#opt{type=Type}, tabs=Tabs}) -> Table = lists:nth(Index+1, Tabs), case Table#tab.protection of diff --git a/lib/observer/src/observer_wx.erl b/lib/observer/src/observer_wx.erl index ecb8e132fe..ced26f7119 100644 --- a/lib/observer/src/observer_wx.erl +++ b/lib/observer/src/observer_wx.erl @@ -19,7 +19,7 @@ -behaviour(wx_object). --export([start/0]). +-export([start/0, stop/0]). -export([create_menus/2, get_attrib/1, get_tracer/0, set_status/1, create_txt_dialog/4, try_rpc/4, return_to_localnode/2]). @@ -69,6 +69,9 @@ start() -> _Obj -> ok end. +stop() -> + wx_object:call(observer, stop). + create_menus(Object, Menus) when is_list(Menus) -> wx_object:call(Object, {create_menus, Menus}). @@ -331,6 +334,10 @@ handle_call({get_attrib, Attrib}, _From, State) -> handle_call(get_tracer, _From, State=#state{trace_panel=TraceP}) -> {reply, TraceP, State}; +handle_call(stop, _, State = #state{frame = Frame}) -> + wxFrame:destroy(Frame), + {stop, normal, ok, State}; + handle_call(_Msg, _From, State) -> {reply, ok, State}. @@ -367,6 +374,10 @@ handle_info({open_link, Pid0}, State = #state{pro_panel=ProcViewer, frame=Frame} end, {noreply, State}; +handle_info({get_debug_info, From}, State = #state{notebook=Notebook, active_tab=Pid}) -> + From ! {observer_debug, wx:get_env(), Notebook, Pid}, + {noreply, State}; + handle_info({'EXIT', Pid, _Reason}, State) -> io:format("Child (~s) crashed exiting: ~p ~p~n", [pid2panel(Pid, State), Pid,_Reason]), diff --git a/lib/observer/test/crashdump_viewer_SUITE.erl b/lib/observer/test/crashdump_viewer_SUITE.erl index 7a582436b4..f6e7d18f65 100644 --- a/lib/observer/test/crashdump_viewer_SUITE.erl +++ b/lib/observer/test/crashdump_viewer_SUITE.erl @@ -120,27 +120,63 @@ start_stop(Config) when is_list(Config) -> Dump = hd(?config(dumps,Config)), timer:sleep(1000), - ProcsBefore = length(processes()), + ProcsBefore = processes(), + NumProcsBefore = length(ProcsBefore), ok = crashdump_viewer:start(Dump), - true = is_pid(whereis(crashdump_viewer_server)), - true = is_pid(whereis(cdv_wx)), - true = is_pid(whereis(cdv_proc_cb)), - true = is_pid(whereis(cdv_port_cb)), - true = is_pid(whereis(cdv_ets_cb)), - true = is_pid(whereis(cdv_timer_cb)), - true = is_pid(whereis(cdv_fun_cb)), - true = is_pid(whereis(cdv_atom_cb)), - true = is_pid(whereis(cdv_dist_cb)), - true = is_pid(whereis(cdv_mod_cb)), + ExpectedRegistered = [crashdump_viewer_server, + cdv_wx, + cdv_proc_cb, + cdv_proc_cb__holder, + cdv_port_cb, + cdv_port_cb__holder, + cdv_ets_cb, + cdv_ets_cb__holder, + cdv_timer_cb, + cdv_timer_cb__holder, + cdv_fun_cb, + cdv_fun_cb__holder, + cdv_atom_cb, + cdv_atom_cb__holder, + cdv_dist_cb, + cdv_dist_cb__holder, + cdv_mod_cb, + cdv_mod_cb__holder], + Regs=[begin + P=whereis(N), + {P,N,erlang:monitor(process,P)} + end || N <- ExpectedRegistered], + ct:log("CDV procs: ~n~p~n",[Regs]), + [true=is_pid(P) || {P,_,_} <- Regs], timer:sleep(5000), % give some time to live ok = crashdump_viewer:stop(), - timer:sleep(1000), % give some time to stop - undefined = whereis(crashdump_viewer_server), - undefined = whereis(cdv_wx), - ProcsAfter=length(processes()), - ProcsAfter=ProcsBefore, + recv_downs(Regs), + timer:sleep(2000), + ProcsAfter = processes(), + NumProcsAfter = length(ProcsAfter), + if NumProcsAfter=/=NumProcsBefore -> + ct:log("Before but not after:~n~p~n", + [[{P,process_info(P)} || P <- ProcsBefore -- ProcsAfter]]), + ct:log("After but not before:~n~p~n", + [[{P,process_info(P)} || P <- ProcsAfter -- ProcsBefore]]), + ct:fail("leaking processes"); + true -> + ok + end, ok. +recv_downs([]) -> + ok; +recv_downs(Regs) -> + receive + {'DOWN',Ref,process,_Pid,_} -> + ct:log("Got 'DOWN' for process ~n~p~n",[_Pid]), + recv_downs(lists:keydelete(Ref,3,Regs)) + after 30000 -> + ct:log("Timeout waiting for down:~n~p~n", + [[{Reg,process_info(P)} || {P,_,_}=Reg <- Regs]]), + ct:log("Message queue:~n~p~n",[process_info(self(),messages)]) + end. + %% Try to load nonexisting file non_existing(Config) when is_list(Config) -> ExpectedReason = "non-existing-file is not an Erlang crash dump\n", @@ -428,8 +464,10 @@ do_create_dumps(DataDir,Rel) -> end. -%% Create a dump which has two visible nodes, one hidden and one +%% Create a dump which has three visible nodes, one hidden and one %% not connected node, and with monitors and links between nodes. +%% One of the visible nodes is stopped and started again in order to +%% get multiple creations. full_dist_dump(DataDir,Rel) -> Opt = rel_opt(Rel), Pz = "-pz \"" ++ filename:dirname(code:which(?MODULE)) ++ "\"", @@ -450,6 +488,15 @@ full_dist_dump(DataDir,Rel) -> get_response(P4), get_response(P1), + %% start, stop and start a node in order to get multiple 'creations' + {ok,N5} = ?t:start_node(n5,peer,Opt ++ PzOpt), + P51 = rpc:call(N5,?helper_mod,remote_proc,[P1,Creator]), + get_response(P51), + ?t:stop_node(N5), + {ok,N5} = ?t:start_node(n5,peer,Opt ++ PzOpt), + P52 = rpc:call(N5,?helper_mod,remote_proc,[P1,Creator]), + get_response(P52), + {aaaaaaaa,N1} ! {hello,from,other,node}, % distribution message ?t:stop_node(N3), @@ -458,6 +505,7 @@ full_dist_dump(DataDir,Rel) -> ?t:stop_node(N2), ?t:stop_node(N4), + ?t:stop_node(N5), CD. get_response(P) -> diff --git a/lib/observer/test/observer_SUITE.erl b/lib/observer/test/observer_SUITE.erl index c076c5e81e..af07165456 100644 --- a/lib/observer/test/observer_SUITE.erl +++ b/lib/observer/test/observer_SUITE.erl @@ -1,7 +1,7 @@ %% %% %CopyrightBegin% %% -%% Copyright Ericsson AB 2006-2013. All Rights Reserved. +%% Copyright Ericsson AB 2006-2014. All Rights Reserved. %% %% The contents of this file are subject to the Erlang Public License, %% Version 1.1, (the "License"); you may not use this file except in @@ -19,34 +19,35 @@ -module(observer_SUITE). -include_lib("test_server/include/test_server.hrl"). +-include_lib("wx/include/wx.hrl"). +-include_lib("observer/src/observer_tv.hrl"). %% Test server specific exports --export([all/0, suite/0,groups/0,init_per_suite/1, end_per_suite/1, - init_per_group/2,end_per_group/2]). --export([init_per_testcase/2, end_per_testcase/2]). +-export([all/0, suite/0,groups/0]). +-export([init_per_testcase/2, end_per_testcase/2, + init_per_group/2, end_per_group/2, + init_per_suite/1, end_per_suite/1 + ]). %% Test cases --export([app_file/1, appup_file/1]). +-export([app_file/1, appup_file/1, + basic/1, process_win/1, table_win/1 + ]). %% Default timetrap timeout (set in init_per_testcase) -define(default_timeout, ?t:minutes(1)). -init_per_testcase(_Case, Config) -> - Dog = ?t:timetrap(?default_timeout), - [{watchdog, Dog} | Config]. - -end_per_testcase(_Case, Config) -> - Dog = ?config(watchdog, Config), - ?t:timetrap_cancel(Dog), - ok. - suite() -> [{ct_hooks,[ts_install_cth]}]. -all() -> - [app_file, appup_file]. +all() -> + [app_file, appup_file, {group, gui}]. -groups() -> - []. +groups() -> + [{gui, [], + [basic + %% , process_win, table_win + ] + }]. init_per_suite(Config) -> Config. @@ -54,12 +55,40 @@ init_per_suite(Config) -> end_per_suite(_Config) -> ok. -init_per_group(_GroupName, Config) -> - Config. +init_per_testcase(_Case, Config) -> + Dog = ?t:timetrap(?default_timeout), + [{watchdog, Dog} | Config]. -end_per_group(_GroupName, Config) -> - Config. +end_per_testcase(_Case, Config) -> + Dog = ?config(watchdog, Config), + ?t:timetrap_cancel(Dog), + ok. +init_per_group(gui, Config) -> + try + case os:type() of + {unix,darwin} -> + exit("Can not test on MacOSX"); + {unix, _} -> + io:format("DISPLAY ~s~n", [os:getenv("DISPLAY")]), + case ct:get_config(xserver, none) of + none -> ignore; + Server -> os:putenv("DISPLAY", Server) + end; + _ -> ignore + end, + wx:new(), + wx:destroy(), + Config + catch + _:undef -> + {skipped, "No wx compiled for this platform"}; + _:Reason -> + SkipReason = io_lib:format("Start wx failed: ~p", [Reason]), + {skipped, lists:flatten(SkipReason)} + end. +end_per_group(_, _) -> + ok. app_file(suite) -> []; @@ -72,3 +101,162 @@ app_file(Config) when is_list(Config) -> %% Testing .appup file appup_file(Config) when is_list(Config) -> ok = ?t:appup_test(observer). + +-define(DBG(Foo), io:format("~p: ~p~n",[?LINE, catch Foo])). + +basic(suite) -> []; +basic(doc) -> [""]; +basic(Config) when is_list(Config) -> + ok = observer:start(), + Notebook = setup_whitebox_testing(), + + io:format("Notebook ~p~n",[Notebook]), + Count = wxNotebook:getPageCount(Notebook), + true = Count >= 6, + 0 = wxNotebook:getSelection(Notebook), + timer:sleep(500), + Check = fun(N, TestMore) -> + ok = wxNotebook:advanceSelection(Notebook), + TestMore andalso + test_page(wxNotebook:getPageText(Notebook, N), + wxNotebook:getCurrentPage(Notebook)), + timer:sleep(200) + end, + %% Just verify that we can toogle trough all pages + [_|_] = [Check(N, false) || N <- lists:seq(1, Count)], + %% Cause it to resize + Frame = get_top_level_parent(Notebook), + {W,H} = wxWindow:getSize(Frame), + wxWindow:setSize(Frame, W+10, H+10), + [_|_] = [Check(N, true) || N <- lists:seq(1, Count)], + + ok = observer:stop(). + +test_page("Load Charts" ++ _, _Window) -> + %% Just let it display some info and hopefully it doesn't crash + timer:sleep(2000), + ok; +test_page("Applications" ++ _, _Window) -> + ok = application:start(mnesia), + timer:sleep(1000), %% Give it time to refresh + Active = get_active(), + FakeEv = #wx{event=#wxCommand{type=command_listbox_selected, cmdString="mnesia"}}, + Active ! FakeEv, + timer:sleep(1000), %% Give it time to refresh + ok = application:stop(mnesia), + timer:sleep(1000), %% Give it time to refresh + ok; + +test_page("Processes" ++ _, _Window) -> + timer:sleep(500), %% Give it time to refresh + Active = get_active(), + ChangeSort = fun(N) -> + FakeEv = #wx{event=#wxList{type=command_list_col_click, col=N}}, + Active ! FakeEv, + timer:sleep(200) + end, + [ChangeSort(N) || N <- lists:seq(1,5) ++ [0]], + Focus = #wx{event=#wxList{type=command_list_item_focused, itemIndex=2}}, + Active ! Focus, + Activate = #wx{event=#wxList{type=command_list_item_activated}}, + Active ! Activate, + timer:sleep(1000), %% Give it time to refresh + ok; + +test_page("Table" ++ _, _Window) -> + Tables = [ets:new(list_to_atom("Test-" ++ [C]), [public]) || C <- lists:seq($A, $Z)], + Active = get_active(), + Active ! refresh_interval, + ChangeSort = fun(N) -> + FakeEv = #wx{event=#wxList{type=command_list_col_click, col=N}}, + Active ! FakeEv, + timer:sleep(200) + end, + [ChangeSort(N) || N <- lists:seq(1,5) ++ [0]], + timer:sleep(1000), + Table = lists:nth(3, Tables), + ets:insert(Table, [{N,100-N} || N <- lists:seq(1,100)]), + Focus = #wx{event=#wxList{type=command_list_item_selected, itemIndex=2}}, + Active ! Focus, + Activate = #wx{event=#wxList{type=command_list_item_activated, itemIndex=2}}, + Active ! Activate, + + Info = 407, %% whitebox... + Active ! #wx{id=Info}, + timer:sleep(1000), + ok; + +test_page(Title, Window) -> + io:format("Page ~p: ~p~n", [Title, Window]), + %% Just let it display some info and hopefully it doesn't crash + timer:sleep(1000), + ok. + + +process_win(suite) -> []; +process_win(doc) -> [""]; +process_win(Config) when is_list(Config) -> + ok = observer:start(), + ObserverNB = setup_whitebox_testing(), + Parent = get_top_level_parent(ObserverNB), + Frame = observer_procinfo:start(self(), Parent, self()), + PIPid = wx_object:get_pid(Frame), + PIPid ! {get_debug_info, self()}, + Notebook = receive {procinfo_debug, NB} -> NB end, + Count = wxNotebook:getPageCount(Notebook), + Check = fun(_N) -> + ok = wxNotebook:advanceSelection(Notebook), + timer:sleep(400) + end, + [_|_] = [Check(N) || N <- lists:seq(1, Count)], + PIPid ! #wx{event=#wxClose{type=close_window}}, + observer:stop(), + ok. + +table_win(suite) -> []; +table_win(doc) -> [""]; +table_win(Config) when is_list(Config) -> + Tables = [ets:new(list_to_atom("Test-" ++ [C]), [public]) || C <- lists:seq($A, $Z)], + Table = lists:nth(3, Tables), + ets:insert(Table, [{N,100-N} || N <- lists:seq(1,100)]), + ok = observer:start(), + Notebook = setup_whitebox_testing(), + Parent = get_top_level_parent(Notebook), + TObj = observer_tv_table:start_link(Parent, [{node,node()}, {type,ets}, {table,#tab{name=foo, id=Table}}]), + %% Modal can not test edit.. + %% TPid = wx_object:get_pid(TObj), + %% TPid ! #wx{event=#wxList{type=command_list_item_activated, itemIndex=12}}, + timer:sleep(2000), + wx_object:get_pid(TObj) ! #wx{event=#wxClose{type=close_window}}, + observer:stop(), + ok. + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +get_top_level_parent(Window) -> + Parent = wxWindow:getParent(Window), + case wx:is_null(Parent) of + true -> Window; + false -> get_top_level_parent(Parent) + end. + +setup_whitebox_testing() -> + %% So that if we die observer exists + link(whereis(observer)), + {Env, Notebook, _Active} = get_observer_debug(), + wx:set_env(Env), + Notebook. + +get_active() -> + {_, _, Active} = get_observer_debug(), + Active. + +get_observer_debug() -> + observer ! {get_debug_info, self()}, + receive + {observer_debug, Env, Notebook, Active} -> + {Env, Notebook, Active} + end. diff --git a/lib/odbc/aclocal.m4 b/lib/odbc/aclocal.m4 index c51c26794a..2b47f7c4bc 100644 --- a/lib/odbc/aclocal.m4 +++ b/lib/odbc/aclocal.m4 @@ -83,8 +83,10 @@ AC_ARG_VAR(erl_xcomp_ose_LM_POST_LINK, [OSE postlink tool (only used when cross AC_ARG_VAR(erl_xcomp_ose_LM_SET_CONF, [Sets the configuration for an OSE load module (only used when cross compiling for OSE)]) AC_ARG_VAR(erl_xcomp_ose_LM_ELF_SIZE, [Prints the section size information for an OSE load module (only used when cross compiling for OSE)]) AC_ARG_VAR(erl_xcomp_ose_LM_LCF, [OSE load module linker configuration file (only used when cross compiling for OSE)]) -AC_ARG_VAR(erl_xcomp_ose_LM_CONF, [OSE load module default configuration file (only used when cross compiling for OSE)]) -AC_ARG_VAR(erl_xcomp_ose_CONFD, [OSE OSE confd source file]) +AC_ARG_VAR(erl_xcomp_ose_BEAM_LM_CONF, [BEAM OSE load module default configuration file (only used when cross compiling for OSE)]) +AC_ARG_VAR(erl_xcomp_ose_EPMD_LM_CONF, [EPMD OSE load module default configuration file (only used when cross compiling for OSE)]) +AC_ARG_VAR(erl_xcomp_ose_RUN_ERL_LM_CONF, [run_erl_lm OSE load module default configuration file (only used when cross compiling for OSE)]) +AC_ARG_VAR(erl_xcomp_ose_CONFD, [OSE confd source file]) AC_ARG_VAR(erl_xcomp_ose_CRT0_LM, [OSE crt0 lm source file]) ]) diff --git a/lib/os_mon/test/cpu_sup_SUITE.erl b/lib/os_mon/test/cpu_sup_SUITE.erl index e0382cb0c7..9f58e043db 100644 --- a/lib/os_mon/test/cpu_sup_SUITE.erl +++ b/lib/os_mon/test/cpu_sup_SUITE.erl @@ -1,7 +1,7 @@ %% %% %CopyrightBegin% %% -%% Copyright Ericsson AB 2002-2011. All Rights Reserved. +%% Copyright Ericsson AB 2002-2014. All Rights Reserved. %% %% The contents of this file are subject to the Erlang Public License, %% Version 1.1, (the "License"); you may not use this file except in @@ -257,8 +257,8 @@ port(Config) when is_list(Config) -> terminate(suite) -> []; terminate(Config) when is_list(Config) -> - ?line ok = application:set_env(os_mon, start_cpu_sup, false), - ?line ok = supervisor:terminate_child(os_mon_sup, cpu_sup), + ok = application:set_env(os_mon, start_cpu_sup, false), + _ = supervisor:terminate_child(os_mon_sup, cpu_sup), ok. unavailable(suite) -> diff --git a/lib/os_mon/test/disksup_SUITE.erl b/lib/os_mon/test/disksup_SUITE.erl index 9c65d8b692..94661cfa77 100644 --- a/lib/os_mon/test/disksup_SUITE.erl +++ b/lib/os_mon/test/disksup_SUITE.erl @@ -1,7 +1,7 @@ %% %% %CopyrightBegin% %% -%% Copyright Ericsson AB 1996-2011. All Rights Reserved. +%% Copyright Ericsson AB 1996-2014. All Rights Reserved. %% %% The contents of this file are subject to the Erlang Public License, %% Version 1.1, (the "License"); you may not use this file except in @@ -350,15 +350,16 @@ otp_5910(doc) -> otp_5910(Config) when is_list(Config) -> %% Make sure disksup sets at least one alarm - Data = disksup:get_disk_data(), + Data = lists:sort(disksup:get_disk_data()), Threshold0 = disksup:get_almost_full_threshold(), Threshold = case over_threshold(Data, Threshold0) of - 0 -> - [{_Id,_Kbyte,Cap}|_] = Data, - ok = disksup:set_almost_full_threshold((Cap-1)/100), - Cap-1; - _N -> Threshold0 - end, + 0 -> + [{_Id,_Kbyte,Cap}|_] = Data, + io:format("Data ~p Threshold ~p ~n",[Data, Cap-1]), + ok = disksup:set_almost_full_threshold((Cap-1)/100), + Cap-1; + _N -> Threshold0 + end, ok = application:set_env(os_mon, disk_almost_full_threshold, Threshold/100), disksup ! timeout, % force a disk check Data2 = disksup:get_disk_data(), diff --git a/lib/ose/doc/src/ose_intro.xml b/lib/ose/doc/src/ose_intro.xml index 0dd3ec409e..b5e3ef8b33 100644 --- a/lib/ose/doc/src/ose_intro.xml +++ b/lib/ose/doc/src/ose_intro.xml @@ -78,7 +78,7 @@ rtose@acp3400> pm_start 0x110059</code> seperate machine the paths have to be updated. In the example above <c>/usr/local/lib/erlang</c> was replaced by <c>/mst/erlang/</c>. The goal is to in future releases not have to do the special argument handling - but for now (17.0-rc2) you have to do it. + but for now (OTP 17.0) you have to do it. </p> <note> Because of a limitation in the way the OSE handles stdio when starting @@ -146,7 +146,7 @@ os:type(). It is possible to set the priorities you want for the OSE processes that thr emulator creates in the lmconf. An example of how to do it can be found in the default lmconf file in - $ERL_TOP/erts/emulator/sys/ose/default.lmconf. + $ERL_TOP/erts/emulator/sys/ose/beam.lmconf. </p> </section> diff --git a/lib/ssh/doc/src/ssh.xml b/lib/ssh/doc/src/ssh.xml index eaf96d0230..7fbd70c87e 100644 --- a/lib/ssh/doc/src/ssh.xml +++ b/lib/ssh/doc/src/ssh.xml @@ -304,6 +304,23 @@ <c><![CDATA[true]]></c> if the password is valid and <c><![CDATA[false]]></c> otherwise.</p> </item> + + <tag><c><![CDATA[{negotiation_timeout, integer()}]]></c></tag> + <item> + <p>Max time in milliseconds for the authentication negotiation. The default value is 2 minutes. + </p> + </item> + + <tag><c><![CDATA[{parallel_login, boolean()}]]></c></tag> + <item> + <p>If set to false (the default value), only one login is handled a time. If set to true, an unlimited logins will be allowed simultanously. Note that this affects only the connections with authentication in progress, not the already authenticated connections. + </p> + <warning> + <p>Do not enable parallel_logins without protecting the server by other means like a firewall. If set to true, there is no protection against dos attacs.</p> + </warning> + + </item> + <tag><c><![CDATA[{key_cb, atom()}]]></c></tag> <item> <p>Module implementing the behaviour <seealso marker="ssh_server_key_api">ssh_server_key_api</seealso>. diff --git a/lib/ssh/src/ssh.erl b/lib/ssh/src/ssh.erl index d50d5a0cb3..de6e8cc421 100644 --- a/lib/ssh/src/ssh.erl +++ b/lib/ssh/src/ssh.erl @@ -1,4 +1,4 @@ -%% +% %% %CopyrightBegin% %% %% Copyright Ericsson AB 2004-2013. All Rights Reserved. @@ -332,6 +332,12 @@ handle_option([{idle_time, _} = Opt | Rest], SocketOptions, SshOptions) -> handle_option(Rest, SocketOptions, [handle_ssh_option(Opt) | SshOptions]); handle_option([{rekey_limit, _} = Opt|Rest], SocketOptions, SshOptions) -> handle_option(Rest, SocketOptions, [handle_ssh_option(Opt) | SshOptions]); +handle_option([{negotiation_timeout, _} = Opt|Rest], SocketOptions, SshOptions) -> + handle_option(Rest, SocketOptions, [handle_ssh_option(Opt) | SshOptions]); +handle_option([{parallel_login, _} = Opt|Rest], SocketOptions, SshOptions) -> + handle_option(Rest, SocketOptions, [handle_ssh_option(Opt) | SshOptions]); +handle_option([parallel_login|Rest], SocketOptions, SshOptions) -> + handle_option(Rest, SocketOptions, [handle_ssh_option({parallel_login,true}) | SshOptions]); handle_option([Opt | Rest], SocketOptions, SshOptions) -> handle_option(Rest, [handle_inet_option(Opt) | SocketOptions], SshOptions). @@ -360,6 +366,10 @@ handle_ssh_option({pref_public_key_algs, Value} = Opt) when is_list(Value), leng end; handle_ssh_option({connect_timeout, Value} = Opt) when is_integer(Value); Value == infinity -> Opt; +handle_ssh_option({negotiation_timeout, Value} = Opt) when is_integer(Value); Value == infinity -> + Opt; +handle_ssh_option({parallel_login, Value} = Opt) when Value==true ; Value==false -> + Opt; handle_ssh_option({user, Value} = Opt) when is_list(Value) -> Opt; handle_ssh_option({dsa_pass_phrase, Value} = Opt) when is_list(Value) -> diff --git a/lib/ssh/src/ssh_acceptor.erl b/lib/ssh/src/ssh_acceptor.erl index 91905b2eaf..e57b07cee8 100644 --- a/lib/ssh/src/ssh_acceptor.erl +++ b/lib/ssh/src/ssh_acceptor.erl @@ -84,11 +84,14 @@ handle_connection(_Callback, Address, Port, Options, Socket) -> SystemSup = ssh_system_sup:system_supervisor(Address, Port), {ok, SubSysSup} = ssh_system_sup:start_subsystem(SystemSup, Options), ConnectionSup = ssh_subsystem_sup:connection_supervisor(SubSysSup), + Timeout = proplists:get_value(negotiation_timeout, + proplists:get_value(ssh_opts, Options, []), + 2*60*1000), ssh_connection_handler:start_connection(server, Socket, [{supervisors, [{system_sup, SystemSup}, {subsystem_sup, SubSysSup}, {connection_sup, ConnectionSup}]} - | Options], infinity). + | Options], Timeout). handle_error(timeout) -> ok; diff --git a/lib/ssh/src/ssh_auth.erl b/lib/ssh/src/ssh_auth.erl index 409a1db6d5..45fd907383 100644 --- a/lib/ssh/src/ssh_auth.erl +++ b/lib/ssh/src/ssh_auth.erl @@ -196,7 +196,7 @@ handle_userauth_request(#ssh_msg_userauth_request{user = User, {authorized, User, ssh_transport:ssh_packet(#ssh_msg_userauth_success{}, Ssh)}; false -> - {not_authorized, {User, {passwd, Password}}, + {not_authorized, {User, {error,"Bad user or password"}}, ssh_transport:ssh_packet(#ssh_msg_userauth_failure{ authentications = "", partial_success = false}, Ssh)} @@ -228,7 +228,7 @@ handle_userauth_request(#ssh_msg_userauth_request{user = User, ssh_transport:ssh_packet( #ssh_msg_userauth_success{}, Ssh)}; false -> - {not_authorized, {User, {error, "Invalid signature"}}, + {not_authorized, {User, undefined}, ssh_transport:ssh_packet(#ssh_msg_userauth_failure{ authentications="publickey,password", partial_success = false}, Ssh)} diff --git a/lib/ssh/src/ssh_connection_handler.erl b/lib/ssh/src/ssh_connection_handler.erl index d7fff14f92..322da50f21 100644 --- a/lib/ssh/src/ssh_connection_handler.erl +++ b/lib/ssh/src/ssh_connection_handler.erl @@ -110,8 +110,16 @@ start_connection(server = Role, Socket, Options, Timeout) -> {ok, Pid} = ssh_connection_sup:start_child(ConnectionSup, [Role, Socket, Opts]), {_, Callback, _} = proplists:get_value(transport, Options, {tcp, gen_tcp, tcp_closed}), socket_control(Socket, Pid, Callback), - Ref = erlang:monitor(process, Pid), - handshake(Pid, Ref, Timeout) + case proplists:get_value(parallel_login, Opts, false) of + true -> + spawn(fun() -> + Ref = erlang:monitor(process, Pid), + handshake(Pid, Ref, Timeout) + end); + false -> + Ref = erlang:monitor(process, Pid), + handshake(Pid, Ref, Timeout) + end catch exit:{noproc, _} -> {error, ssh_not_started}; diff --git a/lib/ssl/test/ssl_crl_SUITE.erl b/lib/ssl/test/ssl_crl_SUITE.erl index da0349904c..4eacf3adfc 100644 --- a/lib/ssl/test/ssl_crl_SUITE.erl +++ b/lib/ssl/test/ssl_crl_SUITE.erl @@ -494,9 +494,15 @@ fetch([{uniformResourceIdentifier, "http"++_=URL}|Rest]) -> _ -> ct:log("~p:~p~npublic_key:pem_entry_decode,~nBody=~p~n)",[?MODULE,?LINE,{'CertificateList', Body, not_encrypted}]), %% assume DER encoded - CertList = public_key:pem_entry_decode( - {'CertificateList', Body, not_encrypted}), - {Body, CertList} + try + public_key:pem_entry_decode({'CertificateList', Body, not_encrypted}) + of + CertList -> {Body, CertList} + catch + _C:_E -> + ct:log("~p:~p~nfailed DER assumption~nRest=~p", [?MODULE,?LINE,Rest]), + fetch(Rest) + end end; {error, _Reason} -> ct:log("~p:~p~nfailed to get CRL ~p~n", [?MODULE,?LINE, _Reason]), diff --git a/lib/stdlib/doc/src/zip.xml b/lib/stdlib/doc/src/zip.xml index 66c21da193..48b376743d 100644 --- a/lib/stdlib/doc/src/zip.xml +++ b/lib/stdlib/doc/src/zip.xml @@ -123,6 +123,18 @@ </taglist> </desc> </datatype> + <datatype> + <name name="filename"/> + <p>The name of a zip file.</p> + </datatype> + <datatype><name name="extension"/></datatype> + <datatype><name name="extension_spec"/></datatype> + <datatype> + <name name="create_option"/> + <desc> + <p>These options are described in <seealso marker="#zip_options">create/3</seealso>.</p> + </desc> + </datatype> </datatypes> <funcs> <func> @@ -160,6 +172,7 @@ set to <c>["gif", "jpg"]</c> and <c>uncompress</c> is set to <c>["jpg"]</c>, only files with <c>"gif"</c> as extension will be compressed. No other files will be compressed.</p> + <marker id="zip_options"></marker> <p>The following options are available:</p> <taglist> <tag><c>cooked</c></tag> diff --git a/lib/stdlib/src/escript.erl b/lib/stdlib/src/escript.erl index a8a82272d6..6bd0eb8a22 100644 --- a/lib/stdlib/src/escript.erl +++ b/lib/stdlib/src/escript.erl @@ -59,7 +59,6 @@ file:filename() | {file:filename(), binary()} | {file:filename(), binary(), file:file_info()}. --type zip_create_option() :: term(). -type section() :: shebang | {shebang, shebang() | default | undefined} @@ -68,8 +67,8 @@ | {emu_args, emu_args() | undefined} | {source, file:filename() | binary()} | {beam, file:filename() | binary()} - | {archive, file:filename() | binary()} - | {archive, [zip_file()], [zip_create_option()]}. + | {archive, zip:filename() | binary()} + | {archive, [zip_file()], [zip:create_option()]}. %%----------------------------------------------------------------------- diff --git a/lib/stdlib/src/slave.erl b/lib/stdlib/src/slave.erl index 3e647635bc..1898dc8aba 100644 --- a/lib/stdlib/src/slave.erl +++ b/lib/stdlib/src/slave.erl @@ -290,7 +290,10 @@ register_unique_name(Number) -> %% no need to use rsh. mk_cmd(Host, Name, Args, Waiter, Prog0) -> - Prog = quote_progname(Prog0), + Prog = case os:type() of + {ose,_} -> mk_ose_prog(Prog0); + _ -> quote_progname(Prog0) + end, BasicCmd = lists:concat([Prog, " -detached -noinput -master ", node(), " ", long_or_short(), Name, "@", Host, @@ -310,6 +313,24 @@ mk_cmd(Host, Name, Args, Waiter, Prog0) -> end end. +%% On OSE we have to pass the beam arguments directory to the slave +%% process. To find out what arguments that should be passed on we +%% make an assumption. All arguments after the last "--" should be +%% skipped. So given these arguments: +%% -Muycs256 -A 1 -- -root /mst/ -progname beam.debug.smp -- -home /mst/ -- -kernel inetrc '"/mst/inetrc.conf"' -- -name test@localhost +%% we send +%% -Muycs256 -A 1 -- -root /mst/ -progname beam.debug.smp -- -home /mst/ -- -kernel inetrc '"/mst/inetrc.conf"' -- +%% to the slave with whatever other args that are added in mk_cmd. +mk_ose_prog(Prog) -> + SkipTail = fun("--",[]) -> + ["--"]; + (_,[]) -> + []; + (Arg,Args) -> + [Arg," "|Args] + end, + [Prog,tl(lists:foldr(SkipTail,[],erlang:system_info(emu_args)))]. + %% This is an attempt to distinguish between spaces in the program %% path and spaces that separate arguments. The program is quoted to %% allow spaces in the path. diff --git a/lib/stdlib/src/zip.erl b/lib/stdlib/src/zip.erl index c40ce8e203..b768c6d0b9 100644 --- a/lib/stdlib/src/zip.erl +++ b/lib/stdlib/src/zip.erl @@ -203,8 +203,18 @@ zip_comment_length}). --type zip_file() :: #zip_file{}. +-type create_option() :: memory | cooked | verbose | {comment, string()} + | {cwd, file:filename()} + | {compress, extension_spec()} + | {uncompress, extension_spec()}. +-type extension() :: string(). +-type extension_spec() :: all | [extension()] | {add, [extension()]} | {del, [extension()]}. +-type filename() :: file:filename(). + -type zip_comment() :: #zip_comment{}. +-type zip_file() :: #zip_file{}. + +-export_type([create_option/0, filename/0]). %% Open a zip archive with options %% @@ -340,13 +350,13 @@ unzip(F) -> unzip(F, []). -spec(unzip(Archive, Options) -> RetValue when Archive :: file:name() | binary(), Options :: [Option], - Option :: {file_list, FileList} + Option :: {file_list, FileList} | cooked | keep_old_files | verbose | memory | {file_filter, FileFilter} | {cwd, CWD}, FileList :: [file:name()], FileBinList :: [{file:name(),binary()}], FileFilter :: fun((ZipFile) -> boolean()), - CWD :: string(), + CWD :: file:filename(), ZipFile :: zip_file(), RetValue :: {ok, FileList} | {ok, FileBinList} @@ -430,7 +440,7 @@ zip(F, Files) -> zip(F, Files, []). What :: all | [Extension] | {add, [Extension]} | {del, [Extension]}, Extension :: string(), Comment :: string(), - CWD :: string(), + CWD :: file:filename(), RetValue :: {ok, FileName :: file:name()} | {ok, {FileName :: file:name(), binary()}} | {error, Reason :: term()}). @@ -712,8 +722,8 @@ table(F, O) -> list_dir(F, O). FileList :: [FileSpec], FileSpec :: file:name() | {file:name(), binary()} | {file:name(), binary(), file:file_info()}, - RetValue :: {ok, FileName :: file:name()} - | {ok, {FileName :: file:name(), binary()}} + RetValue :: {ok, FileName :: filename()} + | {ok, {FileName :: filename(), binary()}} | {error, Reason :: term()}). create(F, Fs) -> zip(F, Fs). @@ -724,14 +734,9 @@ create(F, Fs) -> zip(F, Fs). FileSpec :: file:name() | {file:name(), binary()} | {file:name(), binary(), file:file_info()}, Options :: [Option], - Option :: memory | cooked | verbose | {comment, Comment} - | {cwd, CWD} | {compress, What} | {uncompress, What}, - What :: all | [Extension] | {add, [Extension]} | {del, [Extension]}, - Extension :: string(), - Comment :: string(), - CWD :: string(), - RetValue :: {ok, FileName :: file:name()} - | {ok, {FileName :: file:name(), binary()}} + Option :: create_option(), + RetValue :: {ok, FileName :: filename()} + | {ok, {FileName :: filename(), binary()}} | {error, Reason :: term()}). create(F, Fs, O) -> zip(F, Fs, O). @@ -755,7 +760,7 @@ extract(F) -> unzip(F). FileList :: [file:name()], FileBinList :: [{file:name(),binary()}], FileFilter :: fun((ZipFile) -> boolean()), - CWD :: string(), + CWD :: file:filename(), ZipFile :: zip_file(), RetValue :: {ok, FileList} | {ok, FileBinList} @@ -1153,7 +1158,7 @@ zip_open(Archive) -> zip_open(Archive, []). Archive :: file:name() | binary(), ZipHandle :: pid(), Options :: [Option], - Option :: cooked | memory | {cwd, CWD :: string()}, + Option :: cooked | memory | {cwd, CWD :: file:filename()}, Reason :: term()). zip_open(Archive, Options) -> diff --git a/lib/stdlib/test/binary_module_SUITE.erl b/lib/stdlib/test/binary_module_SUITE.erl index d5a0fe21b4..32cec0db6f 100644 --- a/lib/stdlib/test/binary_module_SUITE.erl +++ b/lib/stdlib/test/binary_module_SUITE.erl @@ -1,7 +1,7 @@ %% %% %CopyrightBegin% %% -%% Copyright Ericsson AB 1997-2013. All Rights Reserved. +%% Copyright Ericsson AB 1997-2014. All Rights Reserved. %% %% The contents of this file are subject to the Erlang Public License, %% Version 1.1, (the "License"); you may not use this file except in @@ -40,7 +40,7 @@ -export([init_per_testcase/2, end_per_testcase/2]). % Default timetrap timeout (set in init_per_testcase). % Some of these testcases are really heavy... --define(default_timeout, ?t:minutes(20)). +-define(default_timeout, ?t:minutes(30)). -endif. diff --git a/lib/stdlib/test/dets_SUITE.erl b/lib/stdlib/test/dets_SUITE.erl index 00a5da42ad..6be37cbecf 100644 --- a/lib/stdlib/test/dets_SUITE.erl +++ b/lib/stdlib/test/dets_SUITE.erl @@ -3953,15 +3953,6 @@ otp_11709(Config) when is_list(Config) -> %% Parts common to several test cases %% -start_node_rel(Name, Rel, How) -> - Release = [{release, atom_to_list(Rel)}], - Pa = filename:dirname(code:which(?MODULE)), - test_server:start_node(Name, How, - [{args, - " -kernel net_setuptime 100 " - " -pa " ++ Pa}, - {erl, Release}]). - crash(File, Where) -> crash(File, Where, 10). @@ -4352,7 +4343,7 @@ check_badarg({'EXIT', {badarg, [{M,F,Args,_} | _]}}, M, F, Args) -> check_badarg({'EXIT', {badarg, [{M,F,A,_} | _]}}, M, F, Args) -> true = test_server:is_native(M) andalso length(Args) =:= A. -check_pps(P0) -> +check_pps({Ports0,Procs0} = P0) -> case pps() of P0 -> ok; @@ -4364,22 +4355,28 @@ check_pps(P0) -> case pps() of P0 -> ok; - P1 -> - io:format("failure, got ~p~n, expected ~p\n", [P1, P0]), - {Ports0,Procs0} = P0, - {Ports1,Procs1} = P1, - show("Old ports", Ports0 -- Ports1), - show("New ports", Ports1 -- Ports0), - show("Old procs", Procs0 -- Procs1), - show("New procs", Procs1 -- Procs0), - ?t:fail() - end + {Ports1,Procs1} = P1 -> + case {Ports1 -- Ports0, Procs1 -- Procs0} of + {[], []} -> ok; + {PortsDiff,ProcsDiff} -> + io:format("failure, got ~p~n, expected ~p\n", [P1, P0]), + show("Old port", Ports0 -- Ports1), + show("New port", PortsDiff), + show("Old proc", Procs0 -- Procs1), + show("New proc", ProcsDiff), + ?t:fail() + end + end end. show(_S, []) -> ok; -show(S, L) -> - io:format("~s: ~p~n", [S, L]). +show(S, [Pid|Pids]) when is_pid(Pid) -> + io:format("~s: ~p~n", [S, erlang:process_info(Pid)]), + show(S, Pids); +show(S, [Port|Ports]) when is_port(Port)-> + io:format("~s: ~p~n", [S, erlang:port_info(Port)]), + show(S, Ports). pps() -> dets:start(), diff --git a/lib/stdlib/test/supervisor_SUITE.erl b/lib/stdlib/test/supervisor_SUITE.erl index ac5a34c3bc..836ea7c030 100644 --- a/lib/stdlib/test/supervisor_SUITE.erl +++ b/lib/stdlib/test/supervisor_SUITE.erl @@ -1,7 +1,7 @@ %% %% %CopyrightBegin% %% -%% Copyright Ericsson AB 1996-2013. All Rights Reserved. +%% Copyright Ericsson AB 1996-2014. All Rights Reserved. %% %% The contents of this file are subject to the Erlang Public License, %% Version 1.1, (the "License"); you may not use this file except in @@ -60,7 +60,7 @@ simple_one_for_one_extra/1, simple_one_for_one_shutdown/1]). %% Misc tests --export([child_unlink/1, tree/1, count_children_memory/1, +-export([child_unlink/1, tree/1, count_children/1, do_not_save_start_parameters_for_temporary_children/1, do_not_save_child_specs_for_temporary_children/1, simple_one_for_one_scale_many_temporary_children/1, @@ -82,7 +82,7 @@ all() -> {group, normal_termination}, {group, shutdown_termination}, {group, abnormal_termination}, child_unlink, tree, - count_children_memory, do_not_save_start_parameters_for_temporary_children, + count_children, do_not_save_start_parameters_for_temporary_children, do_not_save_child_specs_for_temporary_children, simple_one_for_one_scale_many_temporary_children, temporary_bystander, simple_global_supervisor, hanging_restart_loop, hanging_restart_loop_simple]. @@ -129,23 +129,10 @@ init_per_group(_GroupName, Config) -> end_per_group(_GroupName, Config) -> Config. -init_per_testcase(count_children_memory, Config) -> - try erlang:memory() of - _ -> - erts_debug:set_internal_state(available_internal_state, true), - Dog = ?t:timetrap(?TIMEOUT), - [{watchdog,Dog}|Config] - catch error:notsup -> - {skip, "+Meamin used during test; erlang:memory/1 not available"} - end; init_per_testcase(_Case, Config) -> Dog = ?t:timetrap(?TIMEOUT), [{watchdog,Dog}|Config]. -end_per_testcase(count_children_memory, Config) -> - catch erts_debug:set_internal_state(available_internal_state, false), - ?t:timetrap_cancel(?config(watchdog,Config)), - ok; end_per_testcase(_Case, Config) -> ?t:timetrap_cancel(?config(watchdog,Config)), ok. @@ -1249,34 +1236,24 @@ tree(Config) when is_list(Config) -> [0,0,0,0] = get_child_counts(NewSup2). %%------------------------------------------------------------------------- -%% Test that count_children does not eat memory. -count_children_memory(Config) when is_list(Config) -> +%% Test count_children +count_children(Config) when is_list(Config) -> process_flag(trap_exit, true), Child = {child, {supervisor_1, start_child, []}, temporary, 1000, worker, []}, {ok, SupPid} = start_link({ok, {{simple_one_for_one, 2, 3600}, [Child]}}), [supervisor:start_child(sup_test, []) || _Ignore <- lists:seq(1,1000)], - garbage_collect(), - _Size1 = proc_memory(), Children = supervisor:which_children(sup_test), - _Size2 = proc_memory(), ChildCount = get_child_counts(sup_test), - _Size3 = proc_memory(), [supervisor:start_child(sup_test, []) || _Ignore2 <- lists:seq(1,1000)], - garbage_collect(), - Children2 = supervisor:which_children(sup_test), - Size4 = proc_memory(), ChildCount2 = get_child_counts(sup_test), - Size5 = proc_memory(), + Children2 = supervisor:which_children(sup_test), - garbage_collect(), - Children3 = supervisor:which_children(sup_test), - Size6 = proc_memory(), ChildCount3 = get_child_counts(sup_test), - Size7 = proc_memory(), + Children3 = supervisor:which_children(sup_test), 1000 = length(Children), [1,1000,0,1000] = ChildCount, @@ -1285,27 +1262,9 @@ count_children_memory(Config) when is_list(Config) -> Children3 = Children2, ChildCount3 = ChildCount2, - %% count_children consumes memory using an accumulator function, - %% but the space can be reclaimed incrementally, - %% which_children may generate garbage that will be reclaimed later. - case (Size5 =< Size4) of - true -> ok; - false -> - test_server:fail({count_children, used_more_memory,Size4,Size5}) - end, - case Size7 =< Size6 of - true -> ok; - false -> - test_server:fail({count_children, used_more_memory,Size6,Size7}) - end, - [terminate(SupPid, Pid, child, kill) || {undefined, Pid, worker, _Modules} <- Children3], [1,0,0,0] = get_child_counts(sup_test). -proc_memory() -> - erts_debug:set_internal_state(wait, deallocations), - erlang:memory(processes_used). - %%------------------------------------------------------------------------- %% Temporary children shall not be restarted so they should not save %% start parameters, as it potentially can take up a huge amount of @@ -1483,7 +1442,7 @@ simple_one_for_one_scale_many_temporary_children(_Config) -> if T1 > 0 -> Scaling = T2 div T1, - if Scaling > 20 -> + if Scaling > 50 -> %% The scaling shoul be linear (i.e.10, really), but we %% give some extra here to avoid failing the test %% unecessarily. diff --git a/lib/stdlib/test/unicode_SUITE.erl b/lib/stdlib/test/unicode_SUITE.erl index e2d789bbe6..10b29d0d28 100644 --- a/lib/stdlib/test/unicode_SUITE.erl +++ b/lib/stdlib/test/unicode_SUITE.erl @@ -1,7 +1,7 @@ %% %% %CopyrightBegin% %% -%% Copyright Ericsson AB 2008-2013. All Rights Reserved. +%% Copyright Ericsson AB 2008-2014. All Rights Reserved. %% %% The contents of this file are subject to the Erlang Public License, %% Version 1.1, (the "License"); you may not use this file except in @@ -98,7 +98,7 @@ ex_binaries_errors_utf8(Config) when is_list(Config) -> unicode:characters_to_list(Chomped), BrokenPart = iolist_to_binary(DeepBrokenPart2) end || X <- lists:seq(1,OKLen) ] - end || N <- lists:seq(1,20) ], + end || N <- lists:seq(1,21,4) ], ok. ex_binaries_errors_utf16_little(Config) when is_list(Config) -> @@ -124,7 +124,7 @@ ex_binaries_errors_utf16_little(Config) when is_list(Config) -> unicode:characters_to_list(Chomped,{utf16,little}), BrokenPart = iolist_to_binary(DeepBrokenPart2) end || X <- lists:seq(1,OKLen) ] - end || N <- lists:seq(1,15) ], + end || N <- lists:seq(1,16,3) ], ok. ex_binaries_errors_utf16_big(Config) when is_list(Config) -> BrokenPart = << <<X:16/big>> || X <- lists:seq(16#DC00,16#DFFF) >>, @@ -149,7 +149,7 @@ ex_binaries_errors_utf16_big(Config) when is_list(Config) -> unicode:characters_to_list(Chomped,{utf16,big}), BrokenPart = iolist_to_binary(DeepBrokenPart2) end || X <- lists:seq(1,OKLen) ] - end || N <- lists:seq(1,15) ], + end || N <- lists:seq(1,16,3) ], ok. ex_binaries_errors_utf32_big(Config) when is_list(Config) -> @@ -175,7 +175,7 @@ ex_binaries_errors_utf32_big(Config) when is_list(Config) -> unicode:characters_to_list(Chomped,{utf32,big}), BrokenPart = iolist_to_binary(DeepBrokenPart2) end || X <- lists:seq(1,OKLen) ] - end || N <- lists:seq(1,15) ], + end || N <- lists:seq(1,16,3) ], ok. ex_binaries_errors_utf32_little(Config) when is_list(Config) -> @@ -201,7 +201,7 @@ ex_binaries_errors_utf32_little(Config) when is_list(Config) -> unicode:characters_to_list(Chomped,{utf32,little}), BrokenPart = iolist_to_binary(DeepBrokenPart2) end || X <- lists:seq(1,OKLen) ] - end || N <- lists:seq(1,15) ], + end || N <- lists:seq(1,16,3) ], ok. diff --git a/lib/test_server/src/test_server.erl b/lib/test_server/src/test_server.erl index 82672521f7..9b05bddf63 100644 --- a/lib/test_server/src/test_server.erl +++ b/lib/test_server/src/test_server.erl @@ -1,7 +1,7 @@ %% %% %CopyrightBegin% %% -%% Copyright Ericsson AB 1996-2013. All Rights Reserved. +%% Copyright Ericsson AB 1996-2014. All Rights Reserved. %% %% The contents of this file are subject to the Erlang Public License, %% Version 1.1, (the "License"); you may not use this file except in @@ -1208,6 +1208,10 @@ do_init_per_testcase(Mod, Args) -> "a Config list.\n",[]}, {skip,{failed,{Mod,init_per_testcase,bad_return}}} catch + throw:{Skip,Reason} when Skip =:= skip; Skip =:= skipped -> + {skip,Reason}; + exit:{Skip,Reason} when Skip =:= skip; Skip =:= skipped -> + {skip,Reason}; throw:Other -> set_loc(erlang:get_stacktrace()), Line = get_loc(), @@ -1378,6 +1382,10 @@ ts_tc(M, F, A) -> Result = try apply(M, F, A) catch + throw:{skip, Reason} -> {skip, Reason}; + throw:{skipped, Reason} -> {skip, Reason}; + exit:{skip, Reason} -> {skip, Reason}; + exit:{skipped, Reason} -> {skip, Reason}; Type:Reason -> Stk = erlang:get_stacktrace(), set_loc(Stk), diff --git a/lib/test_server/test/test_server_SUITE_data/test_server_parallel01_SUITE.erl b/lib/test_server/test/test_server_SUITE_data/test_server_parallel01_SUITE.erl index f38f768f3b..9658191289 100644 --- a/lib/test_server/test/test_server_SUITE_data/test_server_parallel01_SUITE.erl +++ b/lib/test_server/test/test_server_SUITE_data/test_server_parallel01_SUITE.erl @@ -191,7 +191,7 @@ conf1_end(Config) -> %% check 2s & 3s < 4s Ms = timer:now_diff(now(),?config(t0,Config)), test_server:comment(io_lib:format("~p",[now()])), - if Ms > 3500000 -> exit({bad_parallel_exec,Ms}); + if Ms > 4000000 -> exit({bad_parallel_exec,Ms}); Ms < 3000000 -> exit({bad_parallel_exec,Ms}); true -> ok end. @@ -204,7 +204,7 @@ conf2_end(Config) -> %% check 3s & 2s < 4s Ms = timer:now_diff(now(),?config(t0,Config)), test_server:comment(io_lib:format("~p",[now()])), - if Ms > 3500000 -> exit({bad_parallel_exec,Ms}); + if Ms > 4000000 -> exit({bad_parallel_exec,Ms}); Ms < 3000000 -> exit({bad_parallel_exec,Ms}); true -> ok end. @@ -217,7 +217,7 @@ conf3_end(Config) -> %% check 6s & 6s & (2s & 3s) & 1s = ~6s Ms = timer:now_diff(now(),?config(t0,Config)), test_server:comment(io_lib:format("~p",[now()])), - if Ms > 6500000 -> exit({bad_parallel_exec,Ms}); + if Ms > 7000000 -> exit({bad_parallel_exec,Ms}); Ms < 6000000 -> exit({bad_parallel_exec,Ms}); true -> ok end. @@ -230,7 +230,7 @@ conf4_end(Config) -> %% check 2s & 3s >= 5s Ms = timer:now_diff(now(),?config(t0,Config)), test_server:comment(io_lib:format("~p",[now()])), - if Ms > 5500000 -> exit({bad_parallel_exec,Ms}); + if Ms > 6000000 -> exit({bad_parallel_exec,Ms}); Ms < 5000000 -> exit({bad_parallel_exec,Ms}); true -> ok end. @@ -243,7 +243,7 @@ conf5_end(Config) -> %% check 1s & 1s & (3s & 2s) & 1s = ~6s Ms = timer:now_diff(now(),?config(t0,Config)), test_server:comment(io_lib:format("~p",[now()])), - if Ms > 7000000 -> exit({bad_parallel_exec,Ms}); + if Ms > 7500000 -> exit({bad_parallel_exec,Ms}); Ms < 6000000 -> exit({bad_parallel_exec,Ms}); true -> ok end. @@ -257,7 +257,7 @@ conf6_end(Config) -> %% check 3s & 2s < 5s Ms = timer:now_diff(now(),?config(t0,Config)), test_server:comment(io_lib:format("~p",[now()])), - if Ms > 3500000 -> exit({bad_parallel_exec,Ms}); + if Ms > 4500000 -> exit({bad_parallel_exec,Ms}); Ms < 3000000 -> exit({bad_parallel_exec,Ms}); true -> ok end. @@ -277,7 +277,7 @@ conf7_end(Config) -> %% check 1s & 1s & (2s & 2s) & 1s = ~3s Ms = timer:now_diff(now(),?config(t0,Config)), test_server:comment(io_lib:format("~p",[now()])), - if Ms > 3500000 -> exit({bad_parallel_exec,Ms}); + if Ms > 4000000 -> exit({bad_parallel_exec,Ms}); Ms < 3000000 -> exit({bad_parallel_exec,Ms}); true -> ok end. @@ -291,7 +291,7 @@ conf8_end(Config) -> %% check 2s & 2s < 4s Ms = timer:now_diff(now(),?config(t0,Config)), test_server:comment(io_lib:format("~p",[now()])), - if Ms > 2500000 -> exit({bad_parallel_exec,Ms}); + if Ms > 3000000 -> exit({bad_parallel_exec,Ms}); Ms < 2000000 -> exit({bad_parallel_exec,Ms}); true -> ok end. diff --git a/lib/wx/aclocal.m4 b/lib/wx/aclocal.m4 index c51c26794a..2b47f7c4bc 100644 --- a/lib/wx/aclocal.m4 +++ b/lib/wx/aclocal.m4 @@ -83,8 +83,10 @@ AC_ARG_VAR(erl_xcomp_ose_LM_POST_LINK, [OSE postlink tool (only used when cross AC_ARG_VAR(erl_xcomp_ose_LM_SET_CONF, [Sets the configuration for an OSE load module (only used when cross compiling for OSE)]) AC_ARG_VAR(erl_xcomp_ose_LM_ELF_SIZE, [Prints the section size information for an OSE load module (only used when cross compiling for OSE)]) AC_ARG_VAR(erl_xcomp_ose_LM_LCF, [OSE load module linker configuration file (only used when cross compiling for OSE)]) -AC_ARG_VAR(erl_xcomp_ose_LM_CONF, [OSE load module default configuration file (only used when cross compiling for OSE)]) -AC_ARG_VAR(erl_xcomp_ose_CONFD, [OSE OSE confd source file]) +AC_ARG_VAR(erl_xcomp_ose_BEAM_LM_CONF, [BEAM OSE load module default configuration file (only used when cross compiling for OSE)]) +AC_ARG_VAR(erl_xcomp_ose_EPMD_LM_CONF, [EPMD OSE load module default configuration file (only used when cross compiling for OSE)]) +AC_ARG_VAR(erl_xcomp_ose_RUN_ERL_LM_CONF, [run_erl_lm OSE load module default configuration file (only used when cross compiling for OSE)]) +AC_ARG_VAR(erl_xcomp_ose_CONFD, [OSE confd source file]) AC_ARG_VAR(erl_xcomp_ose_CRT0_LM, [OSE crt0 lm source file]) ]) diff --git a/lib/wx/api_gen/wx_doxygen.conf b/lib/wx/api_gen/wx_doxygen.conf index 829702cbbf..a8516aa08e 100644 --- a/lib/wx/api_gen/wx_doxygen.conf +++ b/lib/wx/api_gen/wx_doxygen.conf @@ -57,7 +57,6 @@ GENERATE_DEPRECATEDLIST= NO ENABLED_SECTIONS = MAX_INITIALIZER_LINES = 30 SHOW_USED_FILES = YES -SHOW_DIRECTORIES = YES FILE_VERSION_FILTER = #--------------------------------------------------------------------------- # configuration options related to warning and progress messages @@ -110,7 +109,6 @@ HTML_FILE_EXTENSION = .html HTML_HEADER = HTML_FOOTER = HTML_STYLESHEET = -HTML_ALIGN_MEMBERS = YES GENERATE_HTMLHELP = NO CHM_FILE = HHC_LOCATION = @@ -252,6 +250,7 @@ PREDEFINED = \ wxUSE_SLIDER=1 \ wxUSE_CLIPBOARD=1 \ wxUSE_SYSTEM_OPTIONS=1 \ + wxUSE_INTL=1 \ wxABI_VERSION=20809 \ __WXGTK24__=1 \ __WXGTK20__=1 \ diff --git a/lib/wx/api_gen/wx_extra/wxListCtrl.c_src b/lib/wx/api_gen/wx_extra/wxListCtrl.c_src index 8fa31e512e..d6196d11a2 100644 --- a/lib/wx/api_gen/wx_extra/wxListCtrl.c_src +++ b/lib/wx/api_gen/wx_extra/wxListCtrl.c_src @@ -1,7 +1,7 @@ %% %% %CopyrightBegin% %% -%% Copyright Ericsson AB 2011-2013. All Rights Reserved. +%% Copyright Ericsson AB 2011-2014. All Rights Reserved. %% %% The contents of this file are subject to the Erlang Public License, %% Version 1.1, (the "License"); you may not use this file except in @@ -165,7 +165,7 @@ case ~s: { // wxListCtrl::SortItems taylormade callbackInfo* cb = new callbackInfo(); cb->port = Ecmd.port; cb->callbackID = sortCallback; - bool Result = This->SortItems(wxEListCtrlCompare, (long)cb); + bool Result = This->SortItems(wxEListCtrlCompare, (wxeIntPtr)cb); delete cb; /* Destroy the callback, see wxEPrintout::clear_cb */ diff --git a/lib/wx/api_gen/wx_gen.erl b/lib/wx/api_gen/wx_gen.erl index 0f28b3dd5e..a60a9a93d5 100644 --- a/lib/wx/api_gen/wx_gen.erl +++ b/lib/wx/api_gen/wx_gen.erl @@ -1,7 +1,7 @@ %% %% %CopyrightBegin% %% -%% Copyright Ericsson AB 2008-2013. All Rights Reserved. +%% Copyright Ericsson AB 2008-2014. All Rights Reserved. %% %% The contents of this file are subject to the Erlang Public License, %% Version 1.1, (the "License"); you may not use this file except in @@ -743,7 +743,14 @@ parse_type2([N="wxTreeItemData"|R],Info,Opts,T) -> parse_type2(R,Info,Opts,T#type{name="wxETreeItemData",base={term,N}}); parse_type2([N="wxClientData"|R],Info,Opts,T) -> parse_type2(R,Info,Opts,T#type{name="wxeErlTerm",base={term,N}}); -parse_type2([N="wxChar"|R],Info,Opts,T) -> +parse_type2([N="wxChar",{by_ref,_}|R],Info,Opts,T = #type{mod=[const]}) -> + case get(current_class) of + "wxLocale" -> %% Special since changed between 2.8 and 3.0 + parse_type2(R,Info,Opts,T#type{name="wxeLocaleC",base=string}); + _ -> + parse_type2(R,Info,Opts,T#type{name=N,base=int,single=false}) + end; +parse_type2([N="wxChar"|R],Info,Opts,T) -> parse_type2(R,Info,Opts,T#type{name=N,base=int}); parse_type2(["wxUint32"|R],Info,Opts,T=#type{mod=Mod}) -> parse_type2(R,Info,Opts,T#type{name=int,base=int,mod=[unsigned|Mod]}); @@ -1274,6 +1281,7 @@ parse_enums([File|Files], Parsed) -> %%io:format("Parse Enums in ~s ~n", [FileName]), case xmerl_scan:file(FileName, [{space, normalize}]) of {error, enoent} -> + %% io:format("Ignore ~p~n", [FileName]), parse_enums(Files, gb_sets:add(File,Parsed)); {Doc, _} -> ES = "./compounddef/sectiondef/memberdef[@kind=\"enum\"]", diff --git a/lib/wx/api_gen/wx_gen_cpp.erl b/lib/wx/api_gen/wx_gen_cpp.erl index ea5d89be72..31ed1374c2 100644 --- a/lib/wx/api_gen/wx_gen_cpp.erl +++ b/lib/wx/api_gen/wx_gen_cpp.erl @@ -235,24 +235,27 @@ gen_funcs(Defs) -> "wxFileDataObject", "wxTextDataObject", "wxBitmapDataObject" ], - w("void WxeApp::delete_object(void *ptr, wxeRefData *refd) {~n", []), + w("bool WxeApp::delete_object(void *ptr, wxeRefData *refd) {~n", []), w(" switch(refd->type) {~n", []), - Case = fun(#class{name=Class, id=Id, abstract=IsAbs, parent=P}) when P /= "static" -> + Case = fun(C=#class{name=Class, id=Id, abstract=IsAbs, parent=P}) when P /= "static" -> UglyWorkaround = lists:member(Class, UglySkipList), + HaveVirtual = virtual_dest(C), case hd(reverse(wx_gen_erl:parents(Class))) of - root when IsAbs == false, UglyWorkaround == false -> - w(" case ~p: delete (~s *) ptr; break;~n", [Id, Class]); root when IsAbs == false, UglyWorkaround == true -> w(" case ~p: /* delete (~s *) ptr;" "These objects must be deleted by owner object */ " "break;~n", [Id, Class]); + root when IsAbs == false, HaveVirtual == true -> + w(" case ~p: delete (E~s *) ptr; return false;~n", [Id, Class]); + root when IsAbs == false, UglyWorkaround == false -> + w(" case ~p: delete (~s *) ptr; break;~n", [Id, Class]); _ -> ok end; (_) -> ok end, [Case(Class) || Class <- Defs], - w(" default: delete (wxObject *) ptr;~n", []), - w("}}~n~n", []), + w(" default: delete (wxObject *) ptr; return false;~n", []), + w(" }~n return true;~n}~n~n", []), Res. gen_class(C=#class{name=Name,methods=Ms,options=Opts}) -> @@ -401,6 +404,8 @@ declare_type(N,true,Def,#type{base=Base,single=true,name=Type,by_val=false,ref={ w(" ~s *~s=~s;~n", [Type,N,Def]); declare_type(N,true,Def,#type{single=true,name="wxArtClient"}) -> w(" wxArtClient ~s= ~s;~n", [N,Def]); +declare_type(N,true,_Def,#type{name="wxeLocaleC", single=true,base=string}) -> + w(" wxString ~s= wxEmptyString;~n", [N]); declare_type(N,true,Def,#type{single=true,base=string}) -> w(" wxString ~s= ~s;~n", [N,Def]); %% declare_type(N,true,_Def,#type{name="wxString"}) -> @@ -997,6 +1002,8 @@ build_ret(Name,_,#type{base=float,single=true}) -> w(" rt.addFloat(~s);~n",[Name]); build_ret(Name,_,#type{base=double,single=true}) -> w(" rt.addFloat(~s);~n",[Name]); +build_ret(Name,_,#type{name="wxeLocaleC"}) -> + w(" rt.add(wxeLocaleC2String(~s));~n",[Name]); build_ret(Name,_,#type{base=string,single=true}) -> w(" rt.add(~s);~n",[Name]); build_ret(Name,_,#type{name="wxArrayString", single=array}) -> diff --git a/lib/wx/api_gen/wx_gen_erl.erl b/lib/wx/api_gen/wx_gen_erl.erl index a4b03d3fd1..5ac781b40c 100644 --- a/lib/wx/api_gen/wx_gen_erl.erl +++ b/lib/wx/api_gen/wx_gen_erl.erl @@ -44,7 +44,11 @@ gen(Defs) -> gen_unique_names(Defs), gen_event_recs(), gen_enums_ints(), - [gen_class(Class) || Class <- Defs], + Static = gen_static([C || C=#class{parent="static"} <- Defs]), + Replace = fun(C=#class{name=Name}, Dfs) -> + lists:keyreplace(Name, #class.name, Dfs, C) + end, + [gen_class(Class) || Class <- lists:foldl(Replace, Defs, Static)], gen_funcnames(). gen_class(Class) -> @@ -54,9 +58,8 @@ gen_class(Class) -> Class end. -gen_class1(C=#class{name=Name,parent="static",methods=Ms,options=_Opts}) -> +gen_static(Files) -> open_write("../src/gen/wx_misc.erl"), - put(current_class, Name), erl_copyright(), w("", []), w("%% This file is generated DO NOT EDIT~n~n", []), @@ -67,17 +70,27 @@ gen_class1(C=#class{name=Name,parent="static",methods=Ms,options=_Opts}) -> w("-module(wx_misc).~n", []), w("-include(\"wxe.hrl\").~n",[]), %% w("-compile(export_all).~n~n", []), %% XXXX remove ??? + [gen_static_exports(C) || C <- Files], + Classes = [gen_static_methods(C) || C <- Files], + close(), + Classes. + +gen_static_exports(C=#class{parent="static",methods=Ms}) -> Exp = fun(M) -> gen_export(C,M) end, ExportList = lists:usort(lists:append(lists:map(Exp,reverse(Ms)))), w("-export([~s]).~n~n", [args(fun({EF,_}) -> EF end, ",", ExportList, 60)]), + ok. +gen_static_methods(C=#class{name=Name, parent="static",methods=Ms}) -> + put(current_class, Name), Gen = fun(M) -> gen_method(Name,M) end, NewMs = lists:map(Gen,reverse(Ms)), - close(), erase(current_class), - C#class{methods=NewMs}; + C#class{methods=NewMs}. +gen_class1(C=#class{parent="static"}) -> + C; gen_class1(C=#class{name=Name,parent=Parent,methods=Ms,options=Opts}) -> case Opts of ["ignore"] -> throw(skipped); @@ -755,7 +768,7 @@ write_spec(Args, Optional, {complex, Res}, Eol) -> optional_type(Opts, Eol) -> "Option :: " ++ args(fun optional_type2/1, Eol++"\t\t | ", Opts). -optional_type2(#param{name=Name, def=Def, type=T}) -> +optional_type2(#param{name=Name, def=_Def, type=T}) -> "{" ++ erl_option_name(Name) ++ ", " ++ doc_arg_type2(T) ++ "}". %% %% Default: " ++ Def. doc_link("utils", Func) -> @@ -1357,4 +1370,3 @@ split_list(F, Keep, [M|Ms], Acc) -> split_list(_, _, [], []) -> []; split_list(_, _, [], Acc) -> [lists:reverse(Acc)]. - diff --git a/lib/wx/api_gen/wxapi.conf b/lib/wx/api_gen/wxapi.conf index 73c5af43d8..3a1dcc7ba5 100644 --- a/lib/wx/api_gen/wxapi.conf +++ b/lib/wx/api_gen/wxapi.conf @@ -1577,9 +1577,14 @@ 'wxShutdown', {'wxShell', 1}, 'wxLaunchDefaultBrowser', {'wxGetEmailAddress',0}, {'wxGetUserId',0}, {'wxGetHomeDir',0}, 'wxNewId', 'wxRegisterId', 'wxGetCurrentId', - 'wxGetOsDescription', 'wxIsPlatformLittleEndian', 'wxIsPlatform64Bit' + 'wxGetOsDescription', 'wxIsPlatformLittleEndian', 'wxIsPlatform64Bit' ]}. +{class, gdicmn, static, [], + [ {'wxDisplaySize', [{"width", [out]}, {"height", [out]}]}, 'wxSetCursor' + ]}. + + {class, wxPrintout, object, [{alias, [{wxePrintout, wxePrintout}]}], [{'wxPrintout', [{where, taylormade}]},'~wxPrintout', 'GetDC', %% 'GetPageInfo',Callback @@ -1885,3 +1890,15 @@ wxEVT_TASKBAR_LEFT_DCLICK,wxEVT_TASKBAR_RIGHT_DCLICK]}],[]}. {class, wxInitDialogEvent, wxEvent, [{event,[wxEVT_INIT_DIALOG]}], []}. + +{class, wxLocale, root, [{skip, [{'wxLocale', 5}, {'Init', 6}]}], + ['wxLocale', '~wxLocale', 'Init', + 'AddCatalog','AddCatalogLookupPathPrefix', + %%'AddLanguage','FindLanguageInfo', 'GetLanguageInfo', + 'GetCanonicalName','GetLanguage', + 'GetLanguageName','GetLocale','GetName','GetString', + 'GetHeaderValue', + 'GetSysName', + 'GetSystemEncoding','GetSystemEncodingName', + 'GetSystemLanguage', + 'IsLoaded','IsOk']}. diff --git a/lib/wx/c_src/gen/wxe_derived_dest.h b/lib/wx/c_src/gen/wxe_derived_dest.h index 7e2d4524cb..42925bff3a 100644 --- a/lib/wx/c_src/gen/wxe_derived_dest.h +++ b/lib/wx/c_src/gen/wxe_derived_dest.h @@ -1,7 +1,7 @@ /* * %CopyrightBegin% * - * Copyright Ericsson AB 2008-2013. All Rights Reserved. + * Copyright Ericsson AB 2008-2014. All Rights Reserved. * * The contents of this file are subject to the Erlang Public License, * Version 1.1, (the "License"); you may not use this file except in @@ -764,3 +764,9 @@ class EwxTaskBarIcon : public wxTaskBarIcon { EwxTaskBarIcon() : wxTaskBarIcon() {}; }; +class EwxLocale : public wxLocale { + public: ~EwxLocale() {((WxeApp *)wxTheApp)->clearPtr(this);}; + EwxLocale(int language,int flags) : wxLocale(language,flags) {}; + EwxLocale() : wxLocale() {}; +}; + diff --git a/lib/wx/c_src/gen/wxe_events.cpp b/lib/wx/c_src/gen/wxe_events.cpp index 1bd17366a2..0ca059ead4 100644 --- a/lib/wx/c_src/gen/wxe_events.cpp +++ b/lib/wx/c_src/gen/wxe_events.cpp @@ -220,84 +220,84 @@ void initEventTable() {wxEVT_STC_HOTSPOT_DCLICK, 203, "stc_hotspot_dclick"}, {wxEVT_STC_CALLTIP_CLICK, 203, "stc_calltip_click"}, {wxEVT_STC_AUTOCOMP_SELECTION, 203, "stc_autocomp_selection"}, - {wxEVT_COMMAND_TREE_BEGIN_DRAG, 208, "command_tree_begin_drag"}, - {wxEVT_COMMAND_TREE_BEGIN_RDRAG, 208, "command_tree_begin_rdrag"}, - {wxEVT_COMMAND_TREE_BEGIN_LABEL_EDIT, 208, "command_tree_begin_label_edit"}, - {wxEVT_COMMAND_TREE_END_LABEL_EDIT, 208, "command_tree_end_label_edit"}, - {wxEVT_COMMAND_TREE_DELETE_ITEM, 208, "command_tree_delete_item"}, - {wxEVT_COMMAND_TREE_GET_INFO, 208, "command_tree_get_info"}, - {wxEVT_COMMAND_TREE_SET_INFO, 208, "command_tree_set_info"}, - {wxEVT_COMMAND_TREE_ITEM_EXPANDED, 208, "command_tree_item_expanded"}, - {wxEVT_COMMAND_TREE_ITEM_EXPANDING, 208, "command_tree_item_expanding"}, - {wxEVT_COMMAND_TREE_ITEM_COLLAPSED, 208, "command_tree_item_collapsed"}, - {wxEVT_COMMAND_TREE_ITEM_COLLAPSING, 208, "command_tree_item_collapsing"}, - {wxEVT_COMMAND_TREE_SEL_CHANGED, 208, "command_tree_sel_changed"}, - {wxEVT_COMMAND_TREE_SEL_CHANGING, 208, "command_tree_sel_changing"}, - {wxEVT_COMMAND_TREE_KEY_DOWN, 208, "command_tree_key_down"}, - {wxEVT_COMMAND_TREE_ITEM_ACTIVATED, 208, "command_tree_item_activated"}, - {wxEVT_COMMAND_TREE_ITEM_RIGHT_CLICK, 208, "command_tree_item_right_click"}, - {wxEVT_COMMAND_TREE_ITEM_MIDDLE_CLICK, 208, "command_tree_item_middle_click"}, - {wxEVT_COMMAND_TREE_END_DRAG, 208, "command_tree_end_drag"}, - {wxEVT_COMMAND_TREE_STATE_IMAGE_CLICK, 208, "command_tree_state_image_click"}, - {wxEVT_COMMAND_TREE_ITEM_GETTOOLTIP, 208, "command_tree_item_gettooltip"}, - {wxEVT_COMMAND_TREE_ITEM_MENU, 208, "command_tree_item_menu"}, - {wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, 209, "command_notebook_page_changed"}, - {wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING, 209, "command_notebook_page_changing"}, - {wxEVT_COMMAND_TEXT_COPY, 215, "command_text_copy"}, - {wxEVT_COMMAND_TEXT_CUT, 215, "command_text_cut"}, - {wxEVT_COMMAND_TEXT_PASTE, 215, "command_text_paste"}, - {wxEVT_COMMAND_SPINCTRL_UPDATED, 216, "command_spinctrl_updated"}, + {wxEVT_COMMAND_TREE_BEGIN_DRAG, 209, "command_tree_begin_drag"}, + {wxEVT_COMMAND_TREE_BEGIN_RDRAG, 209, "command_tree_begin_rdrag"}, + {wxEVT_COMMAND_TREE_BEGIN_LABEL_EDIT, 209, "command_tree_begin_label_edit"}, + {wxEVT_COMMAND_TREE_END_LABEL_EDIT, 209, "command_tree_end_label_edit"}, + {wxEVT_COMMAND_TREE_DELETE_ITEM, 209, "command_tree_delete_item"}, + {wxEVT_COMMAND_TREE_GET_INFO, 209, "command_tree_get_info"}, + {wxEVT_COMMAND_TREE_SET_INFO, 209, "command_tree_set_info"}, + {wxEVT_COMMAND_TREE_ITEM_EXPANDED, 209, "command_tree_item_expanded"}, + {wxEVT_COMMAND_TREE_ITEM_EXPANDING, 209, "command_tree_item_expanding"}, + {wxEVT_COMMAND_TREE_ITEM_COLLAPSED, 209, "command_tree_item_collapsed"}, + {wxEVT_COMMAND_TREE_ITEM_COLLAPSING, 209, "command_tree_item_collapsing"}, + {wxEVT_COMMAND_TREE_SEL_CHANGED, 209, "command_tree_sel_changed"}, + {wxEVT_COMMAND_TREE_SEL_CHANGING, 209, "command_tree_sel_changing"}, + {wxEVT_COMMAND_TREE_KEY_DOWN, 209, "command_tree_key_down"}, + {wxEVT_COMMAND_TREE_ITEM_ACTIVATED, 209, "command_tree_item_activated"}, + {wxEVT_COMMAND_TREE_ITEM_RIGHT_CLICK, 209, "command_tree_item_right_click"}, + {wxEVT_COMMAND_TREE_ITEM_MIDDLE_CLICK, 209, "command_tree_item_middle_click"}, + {wxEVT_COMMAND_TREE_END_DRAG, 209, "command_tree_end_drag"}, + {wxEVT_COMMAND_TREE_STATE_IMAGE_CLICK, 209, "command_tree_state_image_click"}, + {wxEVT_COMMAND_TREE_ITEM_GETTOOLTIP, 209, "command_tree_item_gettooltip"}, + {wxEVT_COMMAND_TREE_ITEM_MENU, 209, "command_tree_item_menu"}, + {wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, 210, "command_notebook_page_changed"}, + {wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING, 210, "command_notebook_page_changing"}, + {wxEVT_COMMAND_TEXT_COPY, 216, "command_text_copy"}, + {wxEVT_COMMAND_TEXT_CUT, 216, "command_text_cut"}, + {wxEVT_COMMAND_TEXT_PASTE, 216, "command_text_paste"}, + {wxEVT_COMMAND_SPINCTRL_UPDATED, 217, "command_spinctrl_updated"}, {wxEVT_SCROLL_LINEUP + wxEVT_USER_FIRST, 165, "spin_up"}, {wxEVT_SCROLL_LINEDOWN + wxEVT_USER_FIRST, 165, "spin_down"}, {wxEVT_SCROLL_THUMBTRACK + wxEVT_USER_FIRST, 165, "spin"}, - {wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGED, 218, "command_splitter_sash_pos_changed"}, - {wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGING, 218, "command_splitter_sash_pos_changing"}, - {wxEVT_COMMAND_SPLITTER_DOUBLECLICKED, 218, "command_splitter_doubleclicked"}, - {wxEVT_COMMAND_SPLITTER_UNSPLIT, 218, "command_splitter_unsplit"}, - {wxEVT_COMMAND_HTML_LINK_CLICKED, 220, "command_html_link_clicked"}, - {wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSE, 223, "command_auinotebook_page_close"}, - {wxEVT_COMMAND_AUINOTEBOOK_PAGE_CHANGED, 223, "command_auinotebook_page_changed"}, - {wxEVT_COMMAND_AUINOTEBOOK_PAGE_CHANGING, 223, "command_auinotebook_page_changing"}, - {wxEVT_COMMAND_AUINOTEBOOK_BUTTON, 223, "command_auinotebook_button"}, - {wxEVT_COMMAND_AUINOTEBOOK_BEGIN_DRAG, 223, "command_auinotebook_begin_drag"}, - {wxEVT_COMMAND_AUINOTEBOOK_END_DRAG, 223, "command_auinotebook_end_drag"}, - {wxEVT_COMMAND_AUINOTEBOOK_DRAG_MOTION, 223, "command_auinotebook_drag_motion"}, - {wxEVT_COMMAND_AUINOTEBOOK_ALLOW_DND, 223, "command_auinotebook_allow_dnd"}, + {wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGED, 219, "command_splitter_sash_pos_changed"}, + {wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGING, 219, "command_splitter_sash_pos_changing"}, + {wxEVT_COMMAND_SPLITTER_DOUBLECLICKED, 219, "command_splitter_doubleclicked"}, + {wxEVT_COMMAND_SPLITTER_UNSPLIT, 219, "command_splitter_unsplit"}, + {wxEVT_COMMAND_HTML_LINK_CLICKED, 221, "command_html_link_clicked"}, + {wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSE, 224, "command_auinotebook_page_close"}, + {wxEVT_COMMAND_AUINOTEBOOK_PAGE_CHANGED, 224, "command_auinotebook_page_changed"}, + {wxEVT_COMMAND_AUINOTEBOOK_PAGE_CHANGING, 224, "command_auinotebook_page_changing"}, + {wxEVT_COMMAND_AUINOTEBOOK_BUTTON, 224, "command_auinotebook_button"}, + {wxEVT_COMMAND_AUINOTEBOOK_BEGIN_DRAG, 224, "command_auinotebook_begin_drag"}, + {wxEVT_COMMAND_AUINOTEBOOK_END_DRAG, 224, "command_auinotebook_end_drag"}, + {wxEVT_COMMAND_AUINOTEBOOK_DRAG_MOTION, 224, "command_auinotebook_drag_motion"}, + {wxEVT_COMMAND_AUINOTEBOOK_ALLOW_DND, 224, "command_auinotebook_allow_dnd"}, #if wxCHECK_VERSION(2,8,5) - {wxEVT_COMMAND_AUINOTEBOOK_TAB_MIDDLE_DOWN, 223, "command_auinotebook_tab_middle_down"}, + {wxEVT_COMMAND_AUINOTEBOOK_TAB_MIDDLE_DOWN, 224, "command_auinotebook_tab_middle_down"}, #endif #if wxCHECK_VERSION(2,8,5) - {wxEVT_COMMAND_AUINOTEBOOK_TAB_MIDDLE_UP, 223, "command_auinotebook_tab_middle_up"}, + {wxEVT_COMMAND_AUINOTEBOOK_TAB_MIDDLE_UP, 224, "command_auinotebook_tab_middle_up"}, #endif #if wxCHECK_VERSION(2,8,5) - {wxEVT_COMMAND_AUINOTEBOOK_TAB_RIGHT_DOWN, 223, "command_auinotebook_tab_right_down"}, + {wxEVT_COMMAND_AUINOTEBOOK_TAB_RIGHT_DOWN, 224, "command_auinotebook_tab_right_down"}, #endif #if wxCHECK_VERSION(2,8,5) - {wxEVT_COMMAND_AUINOTEBOOK_TAB_RIGHT_UP, 223, "command_auinotebook_tab_right_up"}, + {wxEVT_COMMAND_AUINOTEBOOK_TAB_RIGHT_UP, 224, "command_auinotebook_tab_right_up"}, #endif #if wxCHECK_VERSION(2,8,5) - {wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSED, 223, "command_auinotebook_page_closed"}, + {wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSED, 224, "command_auinotebook_page_closed"}, #endif #if wxCHECK_VERSION(2,8,5) - {wxEVT_COMMAND_AUINOTEBOOK_DRAG_DONE, 223, "command_auinotebook_drag_done"}, + {wxEVT_COMMAND_AUINOTEBOOK_DRAG_DONE, 224, "command_auinotebook_drag_done"}, #endif #if wxCHECK_VERSION(2,8,5) - {wxEVT_COMMAND_AUINOTEBOOK_BG_DCLICK, 223, "command_auinotebook_bg_dclick"}, + {wxEVT_COMMAND_AUINOTEBOOK_BG_DCLICK, 224, "command_auinotebook_bg_dclick"}, #endif - {wxEVT_AUI_PANE_BUTTON, 224, "aui_pane_button"}, - {wxEVT_AUI_PANE_CLOSE, 224, "aui_pane_close"}, - {wxEVT_AUI_PANE_MAXIMIZE, 224, "aui_pane_maximize"}, - {wxEVT_AUI_PANE_RESTORE, 224, "aui_pane_restore"}, - {wxEVT_AUI_RENDER, 224, "aui_render"}, - {wxEVT_AUI_FIND_MANAGER, 224, "aui_find_manager"}, - {wxEVT_TASKBAR_MOVE, 227, "taskbar_move"}, - {wxEVT_TASKBAR_LEFT_DOWN, 227, "taskbar_left_down"}, - {wxEVT_TASKBAR_LEFT_UP, 227, "taskbar_left_up"}, - {wxEVT_TASKBAR_RIGHT_DOWN, 227, "taskbar_right_down"}, - {wxEVT_TASKBAR_RIGHT_UP, 227, "taskbar_right_up"}, - {wxEVT_TASKBAR_LEFT_DCLICK, 227, "taskbar_left_dclick"}, - {wxEVT_TASKBAR_RIGHT_DCLICK, 227, "taskbar_right_dclick"}, - {wxEVT_INIT_DIALOG, 228, "init_dialog"}, + {wxEVT_AUI_PANE_BUTTON, 225, "aui_pane_button"}, + {wxEVT_AUI_PANE_CLOSE, 225, "aui_pane_close"}, + {wxEVT_AUI_PANE_MAXIMIZE, 225, "aui_pane_maximize"}, + {wxEVT_AUI_PANE_RESTORE, 225, "aui_pane_restore"}, + {wxEVT_AUI_RENDER, 225, "aui_render"}, + {wxEVT_AUI_FIND_MANAGER, 225, "aui_find_manager"}, + {wxEVT_TASKBAR_MOVE, 228, "taskbar_move"}, + {wxEVT_TASKBAR_LEFT_DOWN, 228, "taskbar_left_down"}, + {wxEVT_TASKBAR_LEFT_UP, 228, "taskbar_left_up"}, + {wxEVT_TASKBAR_RIGHT_DOWN, 228, "taskbar_right_down"}, + {wxEVT_TASKBAR_RIGHT_UP, 228, "taskbar_right_up"}, + {wxEVT_TASKBAR_LEFT_DCLICK, 228, "taskbar_left_dclick"}, + {wxEVT_TASKBAR_RIGHT_DCLICK, 228, "taskbar_right_dclick"}, + {wxEVT_INIT_DIALOG, 229, "init_dialog"}, {-1, 0, } }; for(int i=0; event_types[i].ev_type != -1; i++) { @@ -719,7 +719,7 @@ case 203: {// wxStyledTextEvent rt.addTupleCount(22); break; } -case 208: {// wxTreeEvent +case 209: {// wxTreeEvent wxTreeEvent * ev = (wxTreeEvent *) event; evClass = (char*)"wxTreeEvent"; rt.addAtom((char*)"wxTree"); @@ -730,21 +730,21 @@ case 208: {// wxTreeEvent rt.addTupleCount(5); break; } -case 209: {// wxNotebookEvent +case 210: {// wxNotebookEvent evClass = (char*)"wxNotebookEvent"; rt.addAtom((char*)"wxNotebook"); rt.addAtom(Etype->eName); rt.addTupleCount(2); break; } -case 215: {// wxClipboardTextEvent +case 216: {// wxClipboardTextEvent evClass = (char*)"wxClipboardTextEvent"; rt.addAtom((char*)"wxClipboardText"); rt.addAtom(Etype->eName); rt.addTupleCount(2); break; } -case 216: {// wxSpinEvent +case 217: {// wxSpinEvent wxSpinEvent * ev = (wxSpinEvent *) event; evClass = (char*)"wxSpinEvent"; rt.addAtom((char*)"wxSpin"); @@ -753,14 +753,14 @@ case 216: {// wxSpinEvent rt.addTupleCount(3); break; } -case 218: {// wxSplitterEvent +case 219: {// wxSplitterEvent evClass = (char*)"wxSplitterEvent"; rt.addAtom((char*)"wxSplitter"); rt.addAtom(Etype->eName); rt.addTupleCount(2); break; } -case 220: {// wxHtmlLinkEvent +case 221: {// wxHtmlLinkEvent wxHtmlLinkEvent * ev = (wxHtmlLinkEvent *) event; evClass = (char*)"wxHtmlLinkEvent"; rt.addAtom((char*)"wxHtmlLink"); @@ -769,7 +769,7 @@ case 220: {// wxHtmlLinkEvent rt.addTupleCount(3); break; } -case 223: {// wxAuiNotebookEvent +case 224: {// wxAuiNotebookEvent wxAuiNotebookEvent * ev = (wxAuiNotebookEvent *) event; wxAuiNotebook * GetDragSource = ev->GetDragSource(); evClass = (char*)"wxAuiNotebookEvent"; @@ -781,7 +781,7 @@ case 223: {// wxAuiNotebookEvent rt.addTupleCount(5); break; } -case 224: {// wxAuiManagerEvent +case 225: {// wxAuiManagerEvent wxAuiManagerEvent * ev = (wxAuiManagerEvent *) event; wxAuiManager * GetManager = ev->GetManager(); wxAuiPaneInfo * GetPane = ev->GetPane(); @@ -798,14 +798,14 @@ case 224: {// wxAuiManagerEvent rt.addTupleCount(8); break; } -case 227: {// wxTaskBarIconEvent +case 228: {// wxTaskBarIconEvent evClass = (char*)"wxTaskBarIconEvent"; rt.addAtom((char*)"wxTaskBarIcon"); rt.addAtom(Etype->eName); rt.addTupleCount(2); break; } -case 228: {// wxInitDialogEvent +case 229: {// wxInitDialogEvent evClass = (char*)"wxInitDialogEvent"; rt.addAtom((char*)"wxInitDialog"); rt.addAtom(Etype->eName); diff --git a/lib/wx/c_src/gen/wxe_funcs.cpp b/lib/wx/c_src/gen/wxe_funcs.cpp index 3f5cb4c0f5..c1e9f3829a 100644 --- a/lib/wx/c_src/gen/wxe_funcs.cpp +++ b/lib/wx/c_src/gen/wxe_funcs.cpp @@ -15875,7 +15875,7 @@ case wxListCtrl_SortItems: { // wxListCtrl::SortItems taylormade callbackInfo* cb = new callbackInfo(); cb->port = Ecmd.port; cb->callbackID = sortCallback; - bool Result = This->SortItems(wxEListCtrlCompare, (long)cb); + bool Result = This->SortItems(wxEListCtrlCompare, (wxeIntPtr)cb); delete cb; /* Destroy the callback, see wxEPrintout::clear_cb */ @@ -26730,6 +26730,20 @@ case utils_wxIsPlatform64Bit: { // utils::wxIsPlatform64Bit rt.addBool(Result); break; } +case gdicmn_wxDisplaySize: { // gdicmn::wxDisplaySize + int width; + int height; + ::wxDisplaySize(&width,&height); + rt.addInt(width); + rt.addInt(height); + rt.addTupleCount(2); + break; +} +case gdicmn_wxSetCursor: { // gdicmn::wxSetCursor + wxCursor *cursor = (wxCursor *) getPtr(bp,memenv); bp += 4; + ::wxSetCursor(*cursor); + break; +} case wxPrintout_new: { // wxPrintout::wxPrintout taylormade int onPreparePrinting=0,onBeginPrinting=0,onEndPrinting=0,onBeginDocument=0, @@ -30442,7 +30456,7 @@ case wxNotebookEvent_SetSelection: { // wxNotebookEvent::SetSelection } case wxFileDataObject_new: { // wxFileDataObject::wxFileDataObject wxFileDataObject * Result = new wxFileDataObject(); - newPtr((void *) Result, 211, memenv); + newPtr((void *) Result, 212, memenv); rt.addRef(getRef((void *)Result,memenv), "wxFileDataObject"); break; } @@ -30478,7 +30492,7 @@ case wxTextDataObject_new: { // wxTextDataObject::wxTextDataObject } break; }}; wxTextDataObject * Result = new wxTextDataObject(text); - newPtr((void *) Result, 212, memenv); + newPtr((void *) Result, 213, memenv); rt.addRef(getRef((void *)Result,memenv), "wxTextDataObject"); break; } @@ -30514,7 +30528,7 @@ case wxTextDataObject_destroy: { // wxTextDataObject::destroy case wxBitmapDataObject_new_1_1: { // wxBitmapDataObject::wxBitmapDataObject wxBitmap *bitmap = (wxBitmap *) getPtr(bp,memenv); bp += 4; wxBitmapDataObject * Result = new wxBitmapDataObject(*bitmap); - newPtr((void *) Result, 213, memenv); + newPtr((void *) Result, 214, memenv); rt.addRef(getRef((void *)Result,memenv), "wxBitmapDataObject"); break; } @@ -30526,7 +30540,7 @@ bitmap = (wxBitmap *) getPtr(bp,memenv); bp += 4; } break; }}; wxBitmapDataObject * Result = new wxBitmapDataObject(*bitmap); - newPtr((void *) Result, 213, memenv); + newPtr((void *) Result, 214, memenv); rt.addRef(getRef((void *)Result,memenv), "wxBitmapDataObject"); break; } @@ -31359,7 +31373,7 @@ case wxAuiManagerEvent_CanVeto: { // wxAuiManagerEvent::CanVeto } case wxLogNull_new: { // wxLogNull::wxLogNull wxLogNull * Result = new wxLogNull(); - newPtr((void *) Result, 225, memenv); + newPtr((void *) Result, 226, memenv); rt.addRef(getRef((void *)Result,memenv), "wxLogNull"); break; } @@ -31406,6 +31420,213 @@ case wxTaskBarIcon_SetIcon: { // wxTaskBarIcon::SetIcon rt.addBool(Result); break; } +case wxLocale_new_0: { // wxLocale::wxLocale + wxLocale * Result = new EwxLocale(); + newPtr((void *) Result, 230, memenv); + rt.addRef(getRef((void *)Result,memenv), "wxLocale"); + break; +} +case wxLocale_new_2: { // wxLocale::wxLocale + int flags=wxLOCALE_LOAD_DEFAULT|wxLOCALE_CONV_ENCODING; + int * language = (int *) bp; bp += 4; + bp += 4; /* Align */ + while( * (int*) bp) { switch (* (int*) bp) { + case 1: {bp += 4; + flags = (int)*(int *) bp; bp += 4; + } break; + }}; + wxLocale * Result = new EwxLocale(*language,flags); + newPtr((void *) Result, 230, memenv); + rt.addRef(getRef((void *)Result,memenv), "wxLocale"); + break; +} +case wxLocale_destruct: { // wxLocale::~wxLocale + wxLocale *This = (wxLocale *) getPtr(bp,memenv); bp += 4; + if(This) { ((WxeApp *) wxTheApp)->clearPtr((void *) This); + delete This;} + break; +} +case wxLocale_Init: { // wxLocale::Init + int language=wxLANGUAGE_DEFAULT; + int flags=wxLOCALE_LOAD_DEFAULT|wxLOCALE_CONV_ENCODING; + wxLocale *This = (wxLocale *) getPtr(bp,memenv); bp += 4; + bp += 4; /* Align */ + while( * (int*) bp) { switch (* (int*) bp) { + case 1: {bp += 4; + language = (int)*(int *) bp; bp += 4; + } break; + case 2: {bp += 4; + flags = (int)*(int *) bp; bp += 4; + } break; + }}; + if(!This) throw wxe_badarg(0); + bool Result = This->Init(language,flags); + rt.addBool(Result); + break; +} +case wxLocale_AddCatalog_1: { // wxLocale::AddCatalog + wxLocale *This = (wxLocale *) getPtr(bp,memenv); bp += 4; + int * szDomainLen = (int *) bp; bp += 4; + wxString szDomain = wxString(bp, wxConvUTF8); + bp += *szDomainLen+((8-((0+ *szDomainLen) & 7)) & 7); + if(!This) throw wxe_badarg(0); + bool Result = This->AddCatalog(szDomain); + rt.addBool(Result); + break; +} +case wxLocale_AddCatalog_3: { // wxLocale::AddCatalog + wxLocale *This = (wxLocale *) getPtr(bp,memenv); bp += 4; + int * szDomainLen = (int *) bp; bp += 4; + wxString szDomain = wxString(bp, wxConvUTF8); + bp += *szDomainLen+((8-((0+ *szDomainLen) & 7)) & 7); + wxLanguage msgIdLanguage = *(wxLanguage *) bp; bp += 4;; + int * msgIdCharsetLen = (int *) bp; bp += 4; + wxString msgIdCharset = wxString(bp, wxConvUTF8); + bp += *msgIdCharsetLen+((8-((0+ *msgIdCharsetLen) & 7)) & 7); + if(!This) throw wxe_badarg(0); + bool Result = This->AddCatalog(szDomain,msgIdLanguage,msgIdCharset); + rt.addBool(Result); + break; +} +case wxLocale_AddCatalogLookupPathPrefix: { // wxLocale::AddCatalogLookupPathPrefix + int * prefixLen = (int *) bp; bp += 4; + wxString prefix = wxString(bp, wxConvUTF8); + bp += *prefixLen+((8-((4+ *prefixLen) & 7)) & 7); + wxLocale::AddCatalogLookupPathPrefix(prefix); + break; +} +case wxLocale_GetCanonicalName: { // wxLocale::GetCanonicalName + wxLocale *This = (wxLocale *) getPtr(bp,memenv); bp += 4; + if(!This) throw wxe_badarg(0); + wxString Result = This->GetCanonicalName(); + rt.add(Result); + break; +} +case wxLocale_GetLanguage: { // wxLocale::GetLanguage + wxLocale *This = (wxLocale *) getPtr(bp,memenv); bp += 4; + if(!This) throw wxe_badarg(0); + int Result = This->GetLanguage(); + rt.addInt(Result); + break; +} +case wxLocale_GetLanguageName: { // wxLocale::GetLanguageName + int * lang = (int *) bp; bp += 4; + wxString Result = wxLocale::GetLanguageName(*lang); + rt.add(Result); + break; +} +case wxLocale_GetLocale: { // wxLocale::GetLocale + wxLocale *This = (wxLocale *) getPtr(bp,memenv); bp += 4; + if(!This) throw wxe_badarg(0); + const wxeLocaleC Result = This->GetLocale(); + rt.add(wxeLocaleC2String(Result)); + break; +} +case wxLocale_GetName: { // wxLocale::GetName + wxLocale *This = (wxLocale *) getPtr(bp,memenv); bp += 4; + if(!This) throw wxe_badarg(0); + const wxString * Result = &This->GetName(); + rt.add(Result); + break; +} +case wxLocale_GetString_2: { // wxLocale::GetString + wxString szDomain= wxEmptyString; + wxLocale *This = (wxLocale *) getPtr(bp,memenv); bp += 4; + int * szOrigStringLen = (int *) bp; bp += 4; + wxString szOrigString = wxString(bp, wxConvUTF8); + bp += *szOrigStringLen+((8-((0+ *szOrigStringLen) & 7)) & 7); + while( * (int*) bp) { switch (* (int*) bp) { + case 1: {bp += 4; + int * szDomainLen = (int *) bp; bp += 4; + szDomain = wxString(bp, wxConvUTF8); + bp += *szDomainLen+((8-((0+ *szDomainLen) & 7)) & 7); + } break; + }}; + if(!This) throw wxe_badarg(0); + const wxeLocaleC Result = This->GetString(szOrigString,szDomain); + rt.add(wxeLocaleC2String(Result)); + break; +} +case wxLocale_GetString_4: { // wxLocale::GetString + wxString szDomain= wxEmptyString; + wxLocale *This = (wxLocale *) getPtr(bp,memenv); bp += 4; + int * szOrigStringLen = (int *) bp; bp += 4; + wxString szOrigString = wxString(bp, wxConvUTF8); + bp += *szOrigStringLen+((8-((0+ *szOrigStringLen) & 7)) & 7); + int * szOrigString2Len = (int *) bp; bp += 4; + wxString szOrigString2 = wxString(bp, wxConvUTF8); + bp += *szOrigString2Len+((8-((4+ *szOrigString2Len) & 7)) & 7); + int * n = (int *) bp; bp += 4; + bp += 4; /* Align */ + while( * (int*) bp) { switch (* (int*) bp) { + case 1: {bp += 4; + int * szDomainLen = (int *) bp; bp += 4; + szDomain = wxString(bp, wxConvUTF8); + bp += *szDomainLen+((8-((0+ *szDomainLen) & 7)) & 7); + } break; + }}; + if(!This) throw wxe_badarg(0); + const wxeLocaleC Result = This->GetString(szOrigString,szOrigString2,*n,szDomain); + rt.add(wxeLocaleC2String(Result)); + break; +} +case wxLocale_GetHeaderValue: { // wxLocale::GetHeaderValue + wxString szDomain= wxEmptyString; + wxLocale *This = (wxLocale *) getPtr(bp,memenv); bp += 4; + int * szHeaderLen = (int *) bp; bp += 4; + wxString szHeader = wxString(bp, wxConvUTF8); + bp += *szHeaderLen+((8-((0+ *szHeaderLen) & 7)) & 7); + while( * (int*) bp) { switch (* (int*) bp) { + case 1: {bp += 4; + int * szDomainLen = (int *) bp; bp += 4; + szDomain = wxString(bp, wxConvUTF8); + bp += *szDomainLen+((8-((0+ *szDomainLen) & 7)) & 7); + } break; + }}; + if(!This) throw wxe_badarg(0); + wxString Result = This->GetHeaderValue(szHeader,szDomain); + rt.add(Result); + break; +} +case wxLocale_GetSysName: { // wxLocale::GetSysName + wxLocale *This = (wxLocale *) getPtr(bp,memenv); bp += 4; + if(!This) throw wxe_badarg(0); + wxString Result = This->GetSysName(); + rt.add(Result); + break; +} +case wxLocale_GetSystemEncoding: { // wxLocale::GetSystemEncoding + int Result = wxLocale::GetSystemEncoding(); + rt.addInt(Result); + break; +} +case wxLocale_GetSystemEncodingName: { // wxLocale::GetSystemEncodingName + wxString Result = wxLocale::GetSystemEncodingName(); + rt.add(Result); + break; +} +case wxLocale_GetSystemLanguage: { // wxLocale::GetSystemLanguage + int Result = wxLocale::GetSystemLanguage(); + rt.addInt(Result); + break; +} +case wxLocale_IsLoaded: { // wxLocale::IsLoaded + wxLocale *This = (wxLocale *) getPtr(bp,memenv); bp += 4; + int * szDomainLen = (int *) bp; bp += 4; + wxString szDomain = wxString(bp, wxConvUTF8); + bp += *szDomainLen+((8-((0+ *szDomainLen) & 7)) & 7); + if(!This) throw wxe_badarg(0); + bool Result = This->IsLoaded(szDomain); + rt.addBool(Result); + break; +} +case wxLocale_IsOk: { // wxLocale::IsOk + wxLocale *This = (wxLocale *) getPtr(bp,memenv); bp += 4; + if(!This) throw wxe_badarg(0); + bool Result = This->IsOk(); + rt.addBool(Result); + break; +} default: { wxeReturn error = wxeReturn(WXE_DRV_PORT, Ecmd.caller, false); error.addAtom("_wxe_error_"); error.addInt((int) Ecmd.op); @@ -31427,7 +31648,7 @@ case wxTaskBarIcon_SetIcon: { // wxTaskBarIcon::SetIcon }} /* The End */ -void WxeApp::delete_object(void *ptr, wxeRefData *refd) { +bool WxeApp::delete_object(void *ptr, wxeRefData *refd) { switch(refd->type) { case 24: delete (wxGridCellBoolRenderer *) ptr; break; case 25: delete (wxGridCellBoolEditor *) ptr; break; @@ -31446,10 +31667,13 @@ void WxeApp::delete_object(void *ptr, wxeRefData *refd) { case 101: delete (wxListItemAttr *) ptr; break; case 103: delete (wxTextAttr *) ptr; break; case 155: delete (wxAuiPaneInfo *) ptr; break; - case 211: /* delete (wxFileDataObject *) ptr;These objects must be deleted by owner object */ break; - case 212: /* delete (wxTextDataObject *) ptr;These objects must be deleted by owner object */ break; - case 213: /* delete (wxBitmapDataObject *) ptr;These objects must be deleted by owner object */ break; - case 225: delete (wxLogNull *) ptr; break; - default: delete (wxObject *) ptr; -}} + case 212: /* delete (wxFileDataObject *) ptr;These objects must be deleted by owner object */ break; + case 213: /* delete (wxTextDataObject *) ptr;These objects must be deleted by owner object */ break; + case 214: /* delete (wxBitmapDataObject *) ptr;These objects must be deleted by owner object */ break; + case 226: delete (wxLogNull *) ptr; break; + case 230: delete (EwxLocale *) ptr; return false; + default: delete (wxObject *) ptr; return false; + } + return true; +} diff --git a/lib/wx/c_src/gen/wxe_macros.h b/lib/wx/c_src/gen/wxe_macros.h index a1da6500d5..2da24f5d5e 100644 --- a/lib/wx/c_src/gen/wxe_macros.h +++ b/lib/wx/c_src/gen/wxe_macros.h @@ -1,7 +1,7 @@ /* * %CopyrightBegin% * - * Copyright Ericsson AB 2008-2013. All Rights Reserved. + * Copyright Ericsson AB 2008-2014. All Rights Reserved. * * The contents of this file are subject to the Erlang Public License, * Version 1.1, (the "License"); you may not use this file except in @@ -2756,601 +2756,624 @@ #define utils_wxGetOsDescription 2924 #define utils_wxIsPlatformLittleEndian 2925 #define utils_wxIsPlatform64Bit 2926 -#define wxPrintout_new 2927 -#define wxPrintout_destruct 2928 -#define wxPrintout_GetDC 2929 -#define wxPrintout_GetPageSizeMM 2930 -#define wxPrintout_GetPageSizePixels 2931 -#define wxPrintout_GetPaperRectPixels 2932 -#define wxPrintout_GetPPIPrinter 2933 -#define wxPrintout_GetPPIScreen 2934 -#define wxPrintout_GetTitle 2935 -#define wxPrintout_IsPreview 2936 -#define wxPrintout_FitThisSizeToPaper 2937 -#define wxPrintout_FitThisSizeToPage 2938 -#define wxPrintout_FitThisSizeToPageMargins 2939 -#define wxPrintout_MapScreenSizeToPaper 2940 -#define wxPrintout_MapScreenSizeToPage 2941 -#define wxPrintout_MapScreenSizeToPageMargins 2942 -#define wxPrintout_MapScreenSizeToDevice 2943 -#define wxPrintout_GetLogicalPaperRect 2944 -#define wxPrintout_GetLogicalPageRect 2945 -#define wxPrintout_GetLogicalPageMarginsRect 2946 -#define wxPrintout_SetLogicalOrigin 2947 -#define wxPrintout_OffsetLogicalOrigin 2948 -#define wxStyledTextCtrl_new_2 2949 -#define wxStyledTextCtrl_new_0 2950 -#define wxStyledTextCtrl_destruct 2951 -#define wxStyledTextCtrl_Create 2952 -#define wxStyledTextCtrl_AddText 2953 -#define wxStyledTextCtrl_AddStyledText 2954 -#define wxStyledTextCtrl_InsertText 2955 -#define wxStyledTextCtrl_ClearAll 2956 -#define wxStyledTextCtrl_ClearDocumentStyle 2957 -#define wxStyledTextCtrl_GetLength 2958 -#define wxStyledTextCtrl_GetCharAt 2959 -#define wxStyledTextCtrl_GetCurrentPos 2960 -#define wxStyledTextCtrl_GetAnchor 2961 -#define wxStyledTextCtrl_GetStyleAt 2962 -#define wxStyledTextCtrl_Redo 2963 -#define wxStyledTextCtrl_SetUndoCollection 2964 -#define wxStyledTextCtrl_SelectAll 2965 -#define wxStyledTextCtrl_SetSavePoint 2966 -#define wxStyledTextCtrl_GetStyledText 2967 -#define wxStyledTextCtrl_CanRedo 2968 -#define wxStyledTextCtrl_MarkerLineFromHandle 2969 -#define wxStyledTextCtrl_MarkerDeleteHandle 2970 -#define wxStyledTextCtrl_GetUndoCollection 2971 -#define wxStyledTextCtrl_GetViewWhiteSpace 2972 -#define wxStyledTextCtrl_SetViewWhiteSpace 2973 -#define wxStyledTextCtrl_PositionFromPoint 2974 -#define wxStyledTextCtrl_PositionFromPointClose 2975 -#define wxStyledTextCtrl_GotoLine 2976 -#define wxStyledTextCtrl_GotoPos 2977 -#define wxStyledTextCtrl_SetAnchor 2978 -#define wxStyledTextCtrl_GetCurLine 2979 -#define wxStyledTextCtrl_GetEndStyled 2980 -#define wxStyledTextCtrl_ConvertEOLs 2981 -#define wxStyledTextCtrl_GetEOLMode 2982 -#define wxStyledTextCtrl_SetEOLMode 2983 -#define wxStyledTextCtrl_StartStyling 2984 -#define wxStyledTextCtrl_SetStyling 2985 -#define wxStyledTextCtrl_GetBufferedDraw 2986 -#define wxStyledTextCtrl_SetBufferedDraw 2987 -#define wxStyledTextCtrl_SetTabWidth 2988 -#define wxStyledTextCtrl_GetTabWidth 2989 -#define wxStyledTextCtrl_SetCodePage 2990 -#define wxStyledTextCtrl_MarkerDefine 2991 -#define wxStyledTextCtrl_MarkerSetForeground 2992 -#define wxStyledTextCtrl_MarkerSetBackground 2993 -#define wxStyledTextCtrl_MarkerAdd 2994 -#define wxStyledTextCtrl_MarkerDelete 2995 -#define wxStyledTextCtrl_MarkerDeleteAll 2996 -#define wxStyledTextCtrl_MarkerGet 2997 -#define wxStyledTextCtrl_MarkerNext 2998 -#define wxStyledTextCtrl_MarkerPrevious 2999 -#define wxStyledTextCtrl_MarkerDefineBitmap 3000 -#define wxStyledTextCtrl_MarkerAddSet 3001 -#define wxStyledTextCtrl_MarkerSetAlpha 3002 -#define wxStyledTextCtrl_SetMarginType 3003 -#define wxStyledTextCtrl_GetMarginType 3004 -#define wxStyledTextCtrl_SetMarginWidth 3005 -#define wxStyledTextCtrl_GetMarginWidth 3006 -#define wxStyledTextCtrl_SetMarginMask 3007 -#define wxStyledTextCtrl_GetMarginMask 3008 -#define wxStyledTextCtrl_SetMarginSensitive 3009 -#define wxStyledTextCtrl_GetMarginSensitive 3010 -#define wxStyledTextCtrl_StyleClearAll 3011 -#define wxStyledTextCtrl_StyleSetForeground 3012 -#define wxStyledTextCtrl_StyleSetBackground 3013 -#define wxStyledTextCtrl_StyleSetBold 3014 -#define wxStyledTextCtrl_StyleSetItalic 3015 -#define wxStyledTextCtrl_StyleSetSize 3016 -#define wxStyledTextCtrl_StyleSetFaceName 3017 -#define wxStyledTextCtrl_StyleSetEOLFilled 3018 -#define wxStyledTextCtrl_StyleResetDefault 3019 -#define wxStyledTextCtrl_StyleSetUnderline 3020 -#define wxStyledTextCtrl_StyleSetCase 3021 -#define wxStyledTextCtrl_StyleSetHotSpot 3022 -#define wxStyledTextCtrl_SetSelForeground 3023 -#define wxStyledTextCtrl_SetSelBackground 3024 -#define wxStyledTextCtrl_GetSelAlpha 3025 -#define wxStyledTextCtrl_SetSelAlpha 3026 -#define wxStyledTextCtrl_SetCaretForeground 3027 -#define wxStyledTextCtrl_CmdKeyAssign 3028 -#define wxStyledTextCtrl_CmdKeyClear 3029 -#define wxStyledTextCtrl_CmdKeyClearAll 3030 -#define wxStyledTextCtrl_SetStyleBytes 3031 -#define wxStyledTextCtrl_StyleSetVisible 3032 -#define wxStyledTextCtrl_GetCaretPeriod 3033 -#define wxStyledTextCtrl_SetCaretPeriod 3034 -#define wxStyledTextCtrl_SetWordChars 3035 -#define wxStyledTextCtrl_BeginUndoAction 3036 -#define wxStyledTextCtrl_EndUndoAction 3037 -#define wxStyledTextCtrl_IndicatorSetStyle 3038 -#define wxStyledTextCtrl_IndicatorGetStyle 3039 -#define wxStyledTextCtrl_IndicatorSetForeground 3040 -#define wxStyledTextCtrl_IndicatorGetForeground 3041 -#define wxStyledTextCtrl_SetWhitespaceForeground 3042 -#define wxStyledTextCtrl_SetWhitespaceBackground 3043 -#define wxStyledTextCtrl_GetStyleBits 3044 -#define wxStyledTextCtrl_SetLineState 3045 -#define wxStyledTextCtrl_GetLineState 3046 -#define wxStyledTextCtrl_GetMaxLineState 3047 -#define wxStyledTextCtrl_GetCaretLineVisible 3048 -#define wxStyledTextCtrl_SetCaretLineVisible 3049 -#define wxStyledTextCtrl_GetCaretLineBackground 3050 -#define wxStyledTextCtrl_SetCaretLineBackground 3051 -#define wxStyledTextCtrl_AutoCompShow 3052 -#define wxStyledTextCtrl_AutoCompCancel 3053 -#define wxStyledTextCtrl_AutoCompActive 3054 -#define wxStyledTextCtrl_AutoCompPosStart 3055 -#define wxStyledTextCtrl_AutoCompComplete 3056 -#define wxStyledTextCtrl_AutoCompStops 3057 -#define wxStyledTextCtrl_AutoCompSetSeparator 3058 -#define wxStyledTextCtrl_AutoCompGetSeparator 3059 -#define wxStyledTextCtrl_AutoCompSelect 3060 -#define wxStyledTextCtrl_AutoCompSetCancelAtStart 3061 -#define wxStyledTextCtrl_AutoCompGetCancelAtStart 3062 -#define wxStyledTextCtrl_AutoCompSetFillUps 3063 -#define wxStyledTextCtrl_AutoCompSetChooseSingle 3064 -#define wxStyledTextCtrl_AutoCompGetChooseSingle 3065 -#define wxStyledTextCtrl_AutoCompSetIgnoreCase 3066 -#define wxStyledTextCtrl_AutoCompGetIgnoreCase 3067 -#define wxStyledTextCtrl_UserListShow 3068 -#define wxStyledTextCtrl_AutoCompSetAutoHide 3069 -#define wxStyledTextCtrl_AutoCompGetAutoHide 3070 -#define wxStyledTextCtrl_AutoCompSetDropRestOfWord 3071 -#define wxStyledTextCtrl_AutoCompGetDropRestOfWord 3072 -#define wxStyledTextCtrl_RegisterImage 3073 -#define wxStyledTextCtrl_ClearRegisteredImages 3074 -#define wxStyledTextCtrl_AutoCompGetTypeSeparator 3075 -#define wxStyledTextCtrl_AutoCompSetTypeSeparator 3076 -#define wxStyledTextCtrl_AutoCompSetMaxWidth 3077 -#define wxStyledTextCtrl_AutoCompGetMaxWidth 3078 -#define wxStyledTextCtrl_AutoCompSetMaxHeight 3079 -#define wxStyledTextCtrl_AutoCompGetMaxHeight 3080 -#define wxStyledTextCtrl_SetIndent 3081 -#define wxStyledTextCtrl_GetIndent 3082 -#define wxStyledTextCtrl_SetUseTabs 3083 -#define wxStyledTextCtrl_GetUseTabs 3084 -#define wxStyledTextCtrl_SetLineIndentation 3085 -#define wxStyledTextCtrl_GetLineIndentation 3086 -#define wxStyledTextCtrl_GetLineIndentPosition 3087 -#define wxStyledTextCtrl_GetColumn 3088 -#define wxStyledTextCtrl_SetUseHorizontalScrollBar 3089 -#define wxStyledTextCtrl_GetUseHorizontalScrollBar 3090 -#define wxStyledTextCtrl_SetIndentationGuides 3091 -#define wxStyledTextCtrl_GetIndentationGuides 3092 -#define wxStyledTextCtrl_SetHighlightGuide 3093 -#define wxStyledTextCtrl_GetHighlightGuide 3094 -#define wxStyledTextCtrl_GetLineEndPosition 3095 -#define wxStyledTextCtrl_GetCodePage 3096 -#define wxStyledTextCtrl_GetCaretForeground 3097 -#define wxStyledTextCtrl_GetReadOnly 3098 -#define wxStyledTextCtrl_SetCurrentPos 3099 -#define wxStyledTextCtrl_SetSelectionStart 3100 -#define wxStyledTextCtrl_GetSelectionStart 3101 -#define wxStyledTextCtrl_SetSelectionEnd 3102 -#define wxStyledTextCtrl_GetSelectionEnd 3103 -#define wxStyledTextCtrl_SetPrintMagnification 3104 -#define wxStyledTextCtrl_GetPrintMagnification 3105 -#define wxStyledTextCtrl_SetPrintColourMode 3106 -#define wxStyledTextCtrl_GetPrintColourMode 3107 -#define wxStyledTextCtrl_FindText 3108 -#define wxStyledTextCtrl_FormatRange 3109 -#define wxStyledTextCtrl_GetFirstVisibleLine 3110 -#define wxStyledTextCtrl_GetLine 3111 -#define wxStyledTextCtrl_GetLineCount 3112 -#define wxStyledTextCtrl_SetMarginLeft 3113 -#define wxStyledTextCtrl_GetMarginLeft 3114 -#define wxStyledTextCtrl_SetMarginRight 3115 -#define wxStyledTextCtrl_GetMarginRight 3116 -#define wxStyledTextCtrl_GetModify 3117 -#define wxStyledTextCtrl_SetSelection 3118 -#define wxStyledTextCtrl_GetSelectedText 3119 -#define wxStyledTextCtrl_GetTextRange 3120 -#define wxStyledTextCtrl_HideSelection 3121 -#define wxStyledTextCtrl_LineFromPosition 3122 -#define wxStyledTextCtrl_PositionFromLine 3123 -#define wxStyledTextCtrl_LineScroll 3124 -#define wxStyledTextCtrl_EnsureCaretVisible 3125 -#define wxStyledTextCtrl_ReplaceSelection 3126 -#define wxStyledTextCtrl_SetReadOnly 3127 -#define wxStyledTextCtrl_CanPaste 3128 -#define wxStyledTextCtrl_CanUndo 3129 -#define wxStyledTextCtrl_EmptyUndoBuffer 3130 -#define wxStyledTextCtrl_Undo 3131 -#define wxStyledTextCtrl_Cut 3132 -#define wxStyledTextCtrl_Copy 3133 -#define wxStyledTextCtrl_Paste 3134 -#define wxStyledTextCtrl_Clear 3135 -#define wxStyledTextCtrl_SetText 3136 -#define wxStyledTextCtrl_GetText 3137 -#define wxStyledTextCtrl_GetTextLength 3138 -#define wxStyledTextCtrl_GetOvertype 3139 -#define wxStyledTextCtrl_SetCaretWidth 3140 -#define wxStyledTextCtrl_GetCaretWidth 3141 -#define wxStyledTextCtrl_SetTargetStart 3142 -#define wxStyledTextCtrl_GetTargetStart 3143 -#define wxStyledTextCtrl_SetTargetEnd 3144 -#define wxStyledTextCtrl_GetTargetEnd 3145 -#define wxStyledTextCtrl_ReplaceTarget 3146 -#define wxStyledTextCtrl_SearchInTarget 3147 -#define wxStyledTextCtrl_SetSearchFlags 3148 -#define wxStyledTextCtrl_GetSearchFlags 3149 -#define wxStyledTextCtrl_CallTipShow 3150 -#define wxStyledTextCtrl_CallTipCancel 3151 -#define wxStyledTextCtrl_CallTipActive 3152 -#define wxStyledTextCtrl_CallTipPosAtStart 3153 -#define wxStyledTextCtrl_CallTipSetHighlight 3154 -#define wxStyledTextCtrl_CallTipSetBackground 3155 -#define wxStyledTextCtrl_CallTipSetForeground 3156 -#define wxStyledTextCtrl_CallTipSetForegroundHighlight 3157 -#define wxStyledTextCtrl_CallTipUseStyle 3158 -#define wxStyledTextCtrl_VisibleFromDocLine 3159 -#define wxStyledTextCtrl_DocLineFromVisible 3160 -#define wxStyledTextCtrl_WrapCount 3161 -#define wxStyledTextCtrl_SetFoldLevel 3162 -#define wxStyledTextCtrl_GetFoldLevel 3163 -#define wxStyledTextCtrl_GetLastChild 3164 -#define wxStyledTextCtrl_GetFoldParent 3165 -#define wxStyledTextCtrl_ShowLines 3166 -#define wxStyledTextCtrl_HideLines 3167 -#define wxStyledTextCtrl_GetLineVisible 3168 -#define wxStyledTextCtrl_SetFoldExpanded 3169 -#define wxStyledTextCtrl_GetFoldExpanded 3170 -#define wxStyledTextCtrl_ToggleFold 3171 -#define wxStyledTextCtrl_EnsureVisible 3172 -#define wxStyledTextCtrl_SetFoldFlags 3173 -#define wxStyledTextCtrl_EnsureVisibleEnforcePolicy 3174 -#define wxStyledTextCtrl_SetTabIndents 3175 -#define wxStyledTextCtrl_GetTabIndents 3176 -#define wxStyledTextCtrl_SetBackSpaceUnIndents 3177 -#define wxStyledTextCtrl_GetBackSpaceUnIndents 3178 -#define wxStyledTextCtrl_SetMouseDwellTime 3179 -#define wxStyledTextCtrl_GetMouseDwellTime 3180 -#define wxStyledTextCtrl_WordStartPosition 3181 -#define wxStyledTextCtrl_WordEndPosition 3182 -#define wxStyledTextCtrl_SetWrapMode 3183 -#define wxStyledTextCtrl_GetWrapMode 3184 -#define wxStyledTextCtrl_SetWrapVisualFlags 3185 -#define wxStyledTextCtrl_GetWrapVisualFlags 3186 -#define wxStyledTextCtrl_SetWrapVisualFlagsLocation 3187 -#define wxStyledTextCtrl_GetWrapVisualFlagsLocation 3188 -#define wxStyledTextCtrl_SetWrapStartIndent 3189 -#define wxStyledTextCtrl_GetWrapStartIndent 3190 -#define wxStyledTextCtrl_SetLayoutCache 3191 -#define wxStyledTextCtrl_GetLayoutCache 3192 -#define wxStyledTextCtrl_SetScrollWidth 3193 -#define wxStyledTextCtrl_GetScrollWidth 3194 -#define wxStyledTextCtrl_TextWidth 3195 -#define wxStyledTextCtrl_GetEndAtLastLine 3196 -#define wxStyledTextCtrl_TextHeight 3197 -#define wxStyledTextCtrl_SetUseVerticalScrollBar 3198 -#define wxStyledTextCtrl_GetUseVerticalScrollBar 3199 -#define wxStyledTextCtrl_AppendText 3200 -#define wxStyledTextCtrl_GetTwoPhaseDraw 3201 -#define wxStyledTextCtrl_SetTwoPhaseDraw 3202 -#define wxStyledTextCtrl_TargetFromSelection 3203 -#define wxStyledTextCtrl_LinesJoin 3204 -#define wxStyledTextCtrl_LinesSplit 3205 -#define wxStyledTextCtrl_SetFoldMarginColour 3206 -#define wxStyledTextCtrl_SetFoldMarginHiColour 3207 -#define wxStyledTextCtrl_LineDown 3208 -#define wxStyledTextCtrl_LineDownExtend 3209 -#define wxStyledTextCtrl_LineUp 3210 -#define wxStyledTextCtrl_LineUpExtend 3211 -#define wxStyledTextCtrl_CharLeft 3212 -#define wxStyledTextCtrl_CharLeftExtend 3213 -#define wxStyledTextCtrl_CharRight 3214 -#define wxStyledTextCtrl_CharRightExtend 3215 -#define wxStyledTextCtrl_WordLeft 3216 -#define wxStyledTextCtrl_WordLeftExtend 3217 -#define wxStyledTextCtrl_WordRight 3218 -#define wxStyledTextCtrl_WordRightExtend 3219 -#define wxStyledTextCtrl_Home 3220 -#define wxStyledTextCtrl_HomeExtend 3221 -#define wxStyledTextCtrl_LineEnd 3222 -#define wxStyledTextCtrl_LineEndExtend 3223 -#define wxStyledTextCtrl_DocumentStart 3224 -#define wxStyledTextCtrl_DocumentStartExtend 3225 -#define wxStyledTextCtrl_DocumentEnd 3226 -#define wxStyledTextCtrl_DocumentEndExtend 3227 -#define wxStyledTextCtrl_PageUp 3228 -#define wxStyledTextCtrl_PageUpExtend 3229 -#define wxStyledTextCtrl_PageDown 3230 -#define wxStyledTextCtrl_PageDownExtend 3231 -#define wxStyledTextCtrl_EditToggleOvertype 3232 -#define wxStyledTextCtrl_Cancel 3233 -#define wxStyledTextCtrl_DeleteBack 3234 -#define wxStyledTextCtrl_Tab 3235 -#define wxStyledTextCtrl_BackTab 3236 -#define wxStyledTextCtrl_NewLine 3237 -#define wxStyledTextCtrl_FormFeed 3238 -#define wxStyledTextCtrl_VCHome 3239 -#define wxStyledTextCtrl_VCHomeExtend 3240 -#define wxStyledTextCtrl_ZoomIn 3241 -#define wxStyledTextCtrl_ZoomOut 3242 -#define wxStyledTextCtrl_DelWordLeft 3243 -#define wxStyledTextCtrl_DelWordRight 3244 -#define wxStyledTextCtrl_LineCut 3245 -#define wxStyledTextCtrl_LineDelete 3246 -#define wxStyledTextCtrl_LineTranspose 3247 -#define wxStyledTextCtrl_LineDuplicate 3248 -#define wxStyledTextCtrl_LowerCase 3249 -#define wxStyledTextCtrl_UpperCase 3250 -#define wxStyledTextCtrl_LineScrollDown 3251 -#define wxStyledTextCtrl_LineScrollUp 3252 -#define wxStyledTextCtrl_DeleteBackNotLine 3253 -#define wxStyledTextCtrl_HomeDisplay 3254 -#define wxStyledTextCtrl_HomeDisplayExtend 3255 -#define wxStyledTextCtrl_LineEndDisplay 3256 -#define wxStyledTextCtrl_LineEndDisplayExtend 3257 -#define wxStyledTextCtrl_HomeWrapExtend 3258 -#define wxStyledTextCtrl_LineEndWrap 3259 -#define wxStyledTextCtrl_LineEndWrapExtend 3260 -#define wxStyledTextCtrl_VCHomeWrap 3261 -#define wxStyledTextCtrl_VCHomeWrapExtend 3262 -#define wxStyledTextCtrl_LineCopy 3263 -#define wxStyledTextCtrl_MoveCaretInsideView 3264 -#define wxStyledTextCtrl_LineLength 3265 -#define wxStyledTextCtrl_BraceHighlight 3266 -#define wxStyledTextCtrl_BraceBadLight 3267 -#define wxStyledTextCtrl_BraceMatch 3268 -#define wxStyledTextCtrl_GetViewEOL 3269 -#define wxStyledTextCtrl_SetViewEOL 3270 -#define wxStyledTextCtrl_SetModEventMask 3271 -#define wxStyledTextCtrl_GetEdgeColumn 3272 -#define wxStyledTextCtrl_SetEdgeColumn 3273 -#define wxStyledTextCtrl_SetEdgeMode 3274 -#define wxStyledTextCtrl_GetEdgeMode 3275 -#define wxStyledTextCtrl_GetEdgeColour 3276 -#define wxStyledTextCtrl_SetEdgeColour 3277 -#define wxStyledTextCtrl_SearchAnchor 3278 -#define wxStyledTextCtrl_SearchNext 3279 -#define wxStyledTextCtrl_SearchPrev 3280 -#define wxStyledTextCtrl_LinesOnScreen 3281 -#define wxStyledTextCtrl_UsePopUp 3282 -#define wxStyledTextCtrl_SelectionIsRectangle 3283 -#define wxStyledTextCtrl_SetZoom 3284 -#define wxStyledTextCtrl_GetZoom 3285 -#define wxStyledTextCtrl_GetModEventMask 3286 -#define wxStyledTextCtrl_SetSTCFocus 3287 -#define wxStyledTextCtrl_GetSTCFocus 3288 -#define wxStyledTextCtrl_SetStatus 3289 -#define wxStyledTextCtrl_GetStatus 3290 -#define wxStyledTextCtrl_SetMouseDownCaptures 3291 -#define wxStyledTextCtrl_GetMouseDownCaptures 3292 -#define wxStyledTextCtrl_SetSTCCursor 3293 -#define wxStyledTextCtrl_GetSTCCursor 3294 -#define wxStyledTextCtrl_SetControlCharSymbol 3295 -#define wxStyledTextCtrl_GetControlCharSymbol 3296 -#define wxStyledTextCtrl_WordPartLeft 3297 -#define wxStyledTextCtrl_WordPartLeftExtend 3298 -#define wxStyledTextCtrl_WordPartRight 3299 -#define wxStyledTextCtrl_WordPartRightExtend 3300 -#define wxStyledTextCtrl_SetVisiblePolicy 3301 -#define wxStyledTextCtrl_DelLineLeft 3302 -#define wxStyledTextCtrl_DelLineRight 3303 -#define wxStyledTextCtrl_GetXOffset 3304 -#define wxStyledTextCtrl_ChooseCaretX 3305 -#define wxStyledTextCtrl_SetXCaretPolicy 3306 -#define wxStyledTextCtrl_SetYCaretPolicy 3307 -#define wxStyledTextCtrl_GetPrintWrapMode 3308 -#define wxStyledTextCtrl_SetHotspotActiveForeground 3309 -#define wxStyledTextCtrl_SetHotspotActiveBackground 3310 -#define wxStyledTextCtrl_SetHotspotActiveUnderline 3311 -#define wxStyledTextCtrl_SetHotspotSingleLine 3312 -#define wxStyledTextCtrl_ParaDownExtend 3313 -#define wxStyledTextCtrl_ParaUp 3314 -#define wxStyledTextCtrl_ParaUpExtend 3315 -#define wxStyledTextCtrl_PositionBefore 3316 -#define wxStyledTextCtrl_PositionAfter 3317 -#define wxStyledTextCtrl_CopyRange 3318 -#define wxStyledTextCtrl_CopyText 3319 -#define wxStyledTextCtrl_SetSelectionMode 3320 -#define wxStyledTextCtrl_GetSelectionMode 3321 -#define wxStyledTextCtrl_LineDownRectExtend 3322 -#define wxStyledTextCtrl_LineUpRectExtend 3323 -#define wxStyledTextCtrl_CharLeftRectExtend 3324 -#define wxStyledTextCtrl_CharRightRectExtend 3325 -#define wxStyledTextCtrl_HomeRectExtend 3326 -#define wxStyledTextCtrl_VCHomeRectExtend 3327 -#define wxStyledTextCtrl_LineEndRectExtend 3328 -#define wxStyledTextCtrl_PageUpRectExtend 3329 -#define wxStyledTextCtrl_PageDownRectExtend 3330 -#define wxStyledTextCtrl_StutteredPageUp 3331 -#define wxStyledTextCtrl_StutteredPageUpExtend 3332 -#define wxStyledTextCtrl_StutteredPageDown 3333 -#define wxStyledTextCtrl_StutteredPageDownExtend 3334 -#define wxStyledTextCtrl_WordLeftEnd 3335 -#define wxStyledTextCtrl_WordLeftEndExtend 3336 -#define wxStyledTextCtrl_WordRightEnd 3337 -#define wxStyledTextCtrl_WordRightEndExtend 3338 -#define wxStyledTextCtrl_SetWhitespaceChars 3339 -#define wxStyledTextCtrl_SetCharsDefault 3340 -#define wxStyledTextCtrl_AutoCompGetCurrent 3341 -#define wxStyledTextCtrl_Allocate 3342 -#define wxStyledTextCtrl_FindColumn 3343 -#define wxStyledTextCtrl_GetCaretSticky 3344 -#define wxStyledTextCtrl_SetCaretSticky 3345 -#define wxStyledTextCtrl_ToggleCaretSticky 3346 -#define wxStyledTextCtrl_SetPasteConvertEndings 3347 -#define wxStyledTextCtrl_GetPasteConvertEndings 3348 -#define wxStyledTextCtrl_SelectionDuplicate 3349 -#define wxStyledTextCtrl_SetCaretLineBackAlpha 3350 -#define wxStyledTextCtrl_GetCaretLineBackAlpha 3351 -#define wxStyledTextCtrl_StartRecord 3352 -#define wxStyledTextCtrl_StopRecord 3353 -#define wxStyledTextCtrl_SetLexer 3354 -#define wxStyledTextCtrl_GetLexer 3355 -#define wxStyledTextCtrl_Colourise 3356 -#define wxStyledTextCtrl_SetProperty 3357 -#define wxStyledTextCtrl_SetKeyWords 3358 -#define wxStyledTextCtrl_SetLexerLanguage 3359 -#define wxStyledTextCtrl_GetProperty 3360 -#define wxStyledTextCtrl_GetStyleBitsNeeded 3361 -#define wxStyledTextCtrl_GetCurrentLine 3362 -#define wxStyledTextCtrl_StyleSetSpec 3363 -#define wxStyledTextCtrl_StyleSetFont 3364 -#define wxStyledTextCtrl_StyleSetFontAttr 3365 -#define wxStyledTextCtrl_StyleSetCharacterSet 3366 -#define wxStyledTextCtrl_StyleSetFontEncoding 3367 -#define wxStyledTextCtrl_CmdKeyExecute 3368 -#define wxStyledTextCtrl_SetMargins 3369 -#define wxStyledTextCtrl_GetSelection 3370 -#define wxStyledTextCtrl_PointFromPosition 3371 -#define wxStyledTextCtrl_ScrollToLine 3372 -#define wxStyledTextCtrl_ScrollToColumn 3373 -#define wxStyledTextCtrl_SetVScrollBar 3374 -#define wxStyledTextCtrl_SetHScrollBar 3375 -#define wxStyledTextCtrl_GetLastKeydownProcessed 3376 -#define wxStyledTextCtrl_SetLastKeydownProcessed 3377 -#define wxStyledTextCtrl_SaveFile 3378 -#define wxStyledTextCtrl_LoadFile 3379 -#define wxStyledTextCtrl_DoDragOver 3380 -#define wxStyledTextCtrl_DoDropText 3381 -#define wxStyledTextCtrl_GetUseAntiAliasing 3382 -#define wxStyledTextCtrl_AddTextRaw 3383 -#define wxStyledTextCtrl_InsertTextRaw 3384 -#define wxStyledTextCtrl_GetCurLineRaw 3385 -#define wxStyledTextCtrl_GetLineRaw 3386 -#define wxStyledTextCtrl_GetSelectedTextRaw 3387 -#define wxStyledTextCtrl_GetTextRangeRaw 3388 -#define wxStyledTextCtrl_SetTextRaw 3389 -#define wxStyledTextCtrl_GetTextRaw 3390 -#define wxStyledTextCtrl_AppendTextRaw 3391 -#define wxArtProvider_GetBitmap 3392 -#define wxArtProvider_GetIcon 3393 -#define wxTreeEvent_GetKeyCode 3394 -#define wxTreeEvent_GetItem 3395 -#define wxTreeEvent_GetKeyEvent 3396 -#define wxTreeEvent_GetLabel 3397 -#define wxTreeEvent_GetOldItem 3398 -#define wxTreeEvent_GetPoint 3399 -#define wxTreeEvent_IsEditCancelled 3400 -#define wxTreeEvent_SetToolTip 3401 -#define wxNotebookEvent_GetOldSelection 3402 -#define wxNotebookEvent_GetSelection 3403 -#define wxNotebookEvent_SetOldSelection 3404 -#define wxNotebookEvent_SetSelection 3405 -#define wxFileDataObject_new 3406 -#define wxFileDataObject_AddFile 3407 -#define wxFileDataObject_GetFilenames 3408 -#define wxFileDataObject_destroy 3409 -#define wxTextDataObject_new 3410 -#define wxTextDataObject_GetTextLength 3411 -#define wxTextDataObject_GetText 3412 -#define wxTextDataObject_SetText 3413 -#define wxTextDataObject_destroy 3414 -#define wxBitmapDataObject_new_1_1 3415 -#define wxBitmapDataObject_new_1_0 3416 -#define wxBitmapDataObject_GetBitmap 3417 -#define wxBitmapDataObject_SetBitmap 3418 -#define wxBitmapDataObject_destroy 3419 -#define wxClipboard_new 3421 -#define wxClipboard_destruct 3422 -#define wxClipboard_AddData 3423 -#define wxClipboard_Clear 3424 -#define wxClipboard_Close 3425 -#define wxClipboard_Flush 3426 -#define wxClipboard_GetData 3427 -#define wxClipboard_IsOpened 3428 -#define wxClipboard_Open 3429 -#define wxClipboard_SetData 3430 -#define wxClipboard_UsePrimarySelection 3432 -#define wxClipboard_IsSupported 3433 -#define wxClipboard_Get 3434 -#define wxSpinEvent_GetPosition 3435 -#define wxSpinEvent_SetPosition 3436 -#define wxSplitterWindow_new_0 3437 -#define wxSplitterWindow_new_2 3438 -#define wxSplitterWindow_destruct 3439 -#define wxSplitterWindow_Create 3440 -#define wxSplitterWindow_GetMinimumPaneSize 3441 -#define wxSplitterWindow_GetSashGravity 3442 -#define wxSplitterWindow_GetSashPosition 3443 -#define wxSplitterWindow_GetSplitMode 3444 -#define wxSplitterWindow_GetWindow1 3445 -#define wxSplitterWindow_GetWindow2 3446 -#define wxSplitterWindow_Initialize 3447 -#define wxSplitterWindow_IsSplit 3448 -#define wxSplitterWindow_ReplaceWindow 3449 -#define wxSplitterWindow_SetSashGravity 3450 -#define wxSplitterWindow_SetSashPosition 3451 -#define wxSplitterWindow_SetSashSize 3452 -#define wxSplitterWindow_SetMinimumPaneSize 3453 -#define wxSplitterWindow_SetSplitMode 3454 -#define wxSplitterWindow_SplitHorizontally 3455 -#define wxSplitterWindow_SplitVertically 3456 -#define wxSplitterWindow_Unsplit 3457 -#define wxSplitterWindow_UpdateSize 3458 -#define wxSplitterEvent_GetSashPosition 3459 -#define wxSplitterEvent_GetX 3460 -#define wxSplitterEvent_GetY 3461 -#define wxSplitterEvent_GetWindowBeingRemoved 3462 -#define wxSplitterEvent_SetSashPosition 3463 -#define wxHtmlWindow_new_0 3464 -#define wxHtmlWindow_new_2 3465 -#define wxHtmlWindow_AppendToPage 3466 -#define wxHtmlWindow_GetOpenedAnchor 3467 -#define wxHtmlWindow_GetOpenedPage 3468 -#define wxHtmlWindow_GetOpenedPageTitle 3469 -#define wxHtmlWindow_GetRelatedFrame 3470 -#define wxHtmlWindow_HistoryBack 3471 -#define wxHtmlWindow_HistoryCanBack 3472 -#define wxHtmlWindow_HistoryCanForward 3473 -#define wxHtmlWindow_HistoryClear 3474 -#define wxHtmlWindow_HistoryForward 3475 -#define wxHtmlWindow_LoadFile 3476 -#define wxHtmlWindow_LoadPage 3477 -#define wxHtmlWindow_SelectAll 3478 -#define wxHtmlWindow_SelectionToText 3479 -#define wxHtmlWindow_SelectLine 3480 -#define wxHtmlWindow_SelectWord 3481 -#define wxHtmlWindow_SetBorders 3482 -#define wxHtmlWindow_SetFonts 3483 -#define wxHtmlWindow_SetPage 3484 -#define wxHtmlWindow_SetRelatedFrame 3485 -#define wxHtmlWindow_SetRelatedStatusBar 3486 -#define wxHtmlWindow_ToText 3487 -#define wxHtmlWindow_destroy 3488 -#define wxHtmlLinkEvent_GetLinkInfo 3489 -#define wxSystemSettings_GetColour 3490 -#define wxSystemSettings_GetFont 3491 -#define wxSystemSettings_GetMetric 3492 -#define wxSystemSettings_GetScreenType 3493 -#define wxSystemOptions_GetOption 3494 -#define wxSystemOptions_GetOptionInt 3495 -#define wxSystemOptions_HasOption 3496 -#define wxSystemOptions_IsFalse 3497 -#define wxSystemOptions_SetOption_2_1 3498 -#define wxSystemOptions_SetOption_2_0 3499 -#define wxAuiNotebookEvent_SetSelection 3500 -#define wxAuiNotebookEvent_GetSelection 3501 -#define wxAuiNotebookEvent_SetOldSelection 3502 -#define wxAuiNotebookEvent_GetOldSelection 3503 -#define wxAuiNotebookEvent_SetDragSource 3504 -#define wxAuiNotebookEvent_GetDragSource 3505 -#define wxAuiManagerEvent_SetManager 3506 -#define wxAuiManagerEvent_GetManager 3507 -#define wxAuiManagerEvent_SetPane 3508 -#define wxAuiManagerEvent_GetPane 3509 -#define wxAuiManagerEvent_SetButton 3510 -#define wxAuiManagerEvent_GetButton 3511 -#define wxAuiManagerEvent_SetDC 3512 -#define wxAuiManagerEvent_GetDC 3513 -#define wxAuiManagerEvent_Veto 3514 -#define wxAuiManagerEvent_GetVeto 3515 -#define wxAuiManagerEvent_SetCanVeto 3516 -#define wxAuiManagerEvent_CanVeto 3517 -#define wxLogNull_new 3518 -#define wxLogNull_destroy 3519 -#define wxTaskBarIcon_new 3520 -#define wxTaskBarIcon_destruct 3521 -#define wxTaskBarIcon_PopupMenu 3522 -#define wxTaskBarIcon_RemoveIcon 3523 -#define wxTaskBarIcon_SetIcon 3524 +#define gdicmn_wxDisplaySize 2927 +#define gdicmn_wxSetCursor 2928 +#define wxPrintout_new 2929 +#define wxPrintout_destruct 2930 +#define wxPrintout_GetDC 2931 +#define wxPrintout_GetPageSizeMM 2932 +#define wxPrintout_GetPageSizePixels 2933 +#define wxPrintout_GetPaperRectPixels 2934 +#define wxPrintout_GetPPIPrinter 2935 +#define wxPrintout_GetPPIScreen 2936 +#define wxPrintout_GetTitle 2937 +#define wxPrintout_IsPreview 2938 +#define wxPrintout_FitThisSizeToPaper 2939 +#define wxPrintout_FitThisSizeToPage 2940 +#define wxPrintout_FitThisSizeToPageMargins 2941 +#define wxPrintout_MapScreenSizeToPaper 2942 +#define wxPrintout_MapScreenSizeToPage 2943 +#define wxPrintout_MapScreenSizeToPageMargins 2944 +#define wxPrintout_MapScreenSizeToDevice 2945 +#define wxPrintout_GetLogicalPaperRect 2946 +#define wxPrintout_GetLogicalPageRect 2947 +#define wxPrintout_GetLogicalPageMarginsRect 2948 +#define wxPrintout_SetLogicalOrigin 2949 +#define wxPrintout_OffsetLogicalOrigin 2950 +#define wxStyledTextCtrl_new_2 2951 +#define wxStyledTextCtrl_new_0 2952 +#define wxStyledTextCtrl_destruct 2953 +#define wxStyledTextCtrl_Create 2954 +#define wxStyledTextCtrl_AddText 2955 +#define wxStyledTextCtrl_AddStyledText 2956 +#define wxStyledTextCtrl_InsertText 2957 +#define wxStyledTextCtrl_ClearAll 2958 +#define wxStyledTextCtrl_ClearDocumentStyle 2959 +#define wxStyledTextCtrl_GetLength 2960 +#define wxStyledTextCtrl_GetCharAt 2961 +#define wxStyledTextCtrl_GetCurrentPos 2962 +#define wxStyledTextCtrl_GetAnchor 2963 +#define wxStyledTextCtrl_GetStyleAt 2964 +#define wxStyledTextCtrl_Redo 2965 +#define wxStyledTextCtrl_SetUndoCollection 2966 +#define wxStyledTextCtrl_SelectAll 2967 +#define wxStyledTextCtrl_SetSavePoint 2968 +#define wxStyledTextCtrl_GetStyledText 2969 +#define wxStyledTextCtrl_CanRedo 2970 +#define wxStyledTextCtrl_MarkerLineFromHandle 2971 +#define wxStyledTextCtrl_MarkerDeleteHandle 2972 +#define wxStyledTextCtrl_GetUndoCollection 2973 +#define wxStyledTextCtrl_GetViewWhiteSpace 2974 +#define wxStyledTextCtrl_SetViewWhiteSpace 2975 +#define wxStyledTextCtrl_PositionFromPoint 2976 +#define wxStyledTextCtrl_PositionFromPointClose 2977 +#define wxStyledTextCtrl_GotoLine 2978 +#define wxStyledTextCtrl_GotoPos 2979 +#define wxStyledTextCtrl_SetAnchor 2980 +#define wxStyledTextCtrl_GetCurLine 2981 +#define wxStyledTextCtrl_GetEndStyled 2982 +#define wxStyledTextCtrl_ConvertEOLs 2983 +#define wxStyledTextCtrl_GetEOLMode 2984 +#define wxStyledTextCtrl_SetEOLMode 2985 +#define wxStyledTextCtrl_StartStyling 2986 +#define wxStyledTextCtrl_SetStyling 2987 +#define wxStyledTextCtrl_GetBufferedDraw 2988 +#define wxStyledTextCtrl_SetBufferedDraw 2989 +#define wxStyledTextCtrl_SetTabWidth 2990 +#define wxStyledTextCtrl_GetTabWidth 2991 +#define wxStyledTextCtrl_SetCodePage 2992 +#define wxStyledTextCtrl_MarkerDefine 2993 +#define wxStyledTextCtrl_MarkerSetForeground 2994 +#define wxStyledTextCtrl_MarkerSetBackground 2995 +#define wxStyledTextCtrl_MarkerAdd 2996 +#define wxStyledTextCtrl_MarkerDelete 2997 +#define wxStyledTextCtrl_MarkerDeleteAll 2998 +#define wxStyledTextCtrl_MarkerGet 2999 +#define wxStyledTextCtrl_MarkerNext 3000 +#define wxStyledTextCtrl_MarkerPrevious 3001 +#define wxStyledTextCtrl_MarkerDefineBitmap 3002 +#define wxStyledTextCtrl_MarkerAddSet 3003 +#define wxStyledTextCtrl_MarkerSetAlpha 3004 +#define wxStyledTextCtrl_SetMarginType 3005 +#define wxStyledTextCtrl_GetMarginType 3006 +#define wxStyledTextCtrl_SetMarginWidth 3007 +#define wxStyledTextCtrl_GetMarginWidth 3008 +#define wxStyledTextCtrl_SetMarginMask 3009 +#define wxStyledTextCtrl_GetMarginMask 3010 +#define wxStyledTextCtrl_SetMarginSensitive 3011 +#define wxStyledTextCtrl_GetMarginSensitive 3012 +#define wxStyledTextCtrl_StyleClearAll 3013 +#define wxStyledTextCtrl_StyleSetForeground 3014 +#define wxStyledTextCtrl_StyleSetBackground 3015 +#define wxStyledTextCtrl_StyleSetBold 3016 +#define wxStyledTextCtrl_StyleSetItalic 3017 +#define wxStyledTextCtrl_StyleSetSize 3018 +#define wxStyledTextCtrl_StyleSetFaceName 3019 +#define wxStyledTextCtrl_StyleSetEOLFilled 3020 +#define wxStyledTextCtrl_StyleResetDefault 3021 +#define wxStyledTextCtrl_StyleSetUnderline 3022 +#define wxStyledTextCtrl_StyleSetCase 3023 +#define wxStyledTextCtrl_StyleSetHotSpot 3024 +#define wxStyledTextCtrl_SetSelForeground 3025 +#define wxStyledTextCtrl_SetSelBackground 3026 +#define wxStyledTextCtrl_GetSelAlpha 3027 +#define wxStyledTextCtrl_SetSelAlpha 3028 +#define wxStyledTextCtrl_SetCaretForeground 3029 +#define wxStyledTextCtrl_CmdKeyAssign 3030 +#define wxStyledTextCtrl_CmdKeyClear 3031 +#define wxStyledTextCtrl_CmdKeyClearAll 3032 +#define wxStyledTextCtrl_SetStyleBytes 3033 +#define wxStyledTextCtrl_StyleSetVisible 3034 +#define wxStyledTextCtrl_GetCaretPeriod 3035 +#define wxStyledTextCtrl_SetCaretPeriod 3036 +#define wxStyledTextCtrl_SetWordChars 3037 +#define wxStyledTextCtrl_BeginUndoAction 3038 +#define wxStyledTextCtrl_EndUndoAction 3039 +#define wxStyledTextCtrl_IndicatorSetStyle 3040 +#define wxStyledTextCtrl_IndicatorGetStyle 3041 +#define wxStyledTextCtrl_IndicatorSetForeground 3042 +#define wxStyledTextCtrl_IndicatorGetForeground 3043 +#define wxStyledTextCtrl_SetWhitespaceForeground 3044 +#define wxStyledTextCtrl_SetWhitespaceBackground 3045 +#define wxStyledTextCtrl_GetStyleBits 3046 +#define wxStyledTextCtrl_SetLineState 3047 +#define wxStyledTextCtrl_GetLineState 3048 +#define wxStyledTextCtrl_GetMaxLineState 3049 +#define wxStyledTextCtrl_GetCaretLineVisible 3050 +#define wxStyledTextCtrl_SetCaretLineVisible 3051 +#define wxStyledTextCtrl_GetCaretLineBackground 3052 +#define wxStyledTextCtrl_SetCaretLineBackground 3053 +#define wxStyledTextCtrl_AutoCompShow 3054 +#define wxStyledTextCtrl_AutoCompCancel 3055 +#define wxStyledTextCtrl_AutoCompActive 3056 +#define wxStyledTextCtrl_AutoCompPosStart 3057 +#define wxStyledTextCtrl_AutoCompComplete 3058 +#define wxStyledTextCtrl_AutoCompStops 3059 +#define wxStyledTextCtrl_AutoCompSetSeparator 3060 +#define wxStyledTextCtrl_AutoCompGetSeparator 3061 +#define wxStyledTextCtrl_AutoCompSelect 3062 +#define wxStyledTextCtrl_AutoCompSetCancelAtStart 3063 +#define wxStyledTextCtrl_AutoCompGetCancelAtStart 3064 +#define wxStyledTextCtrl_AutoCompSetFillUps 3065 +#define wxStyledTextCtrl_AutoCompSetChooseSingle 3066 +#define wxStyledTextCtrl_AutoCompGetChooseSingle 3067 +#define wxStyledTextCtrl_AutoCompSetIgnoreCase 3068 +#define wxStyledTextCtrl_AutoCompGetIgnoreCase 3069 +#define wxStyledTextCtrl_UserListShow 3070 +#define wxStyledTextCtrl_AutoCompSetAutoHide 3071 +#define wxStyledTextCtrl_AutoCompGetAutoHide 3072 +#define wxStyledTextCtrl_AutoCompSetDropRestOfWord 3073 +#define wxStyledTextCtrl_AutoCompGetDropRestOfWord 3074 +#define wxStyledTextCtrl_RegisterImage 3075 +#define wxStyledTextCtrl_ClearRegisteredImages 3076 +#define wxStyledTextCtrl_AutoCompGetTypeSeparator 3077 +#define wxStyledTextCtrl_AutoCompSetTypeSeparator 3078 +#define wxStyledTextCtrl_AutoCompSetMaxWidth 3079 +#define wxStyledTextCtrl_AutoCompGetMaxWidth 3080 +#define wxStyledTextCtrl_AutoCompSetMaxHeight 3081 +#define wxStyledTextCtrl_AutoCompGetMaxHeight 3082 +#define wxStyledTextCtrl_SetIndent 3083 +#define wxStyledTextCtrl_GetIndent 3084 +#define wxStyledTextCtrl_SetUseTabs 3085 +#define wxStyledTextCtrl_GetUseTabs 3086 +#define wxStyledTextCtrl_SetLineIndentation 3087 +#define wxStyledTextCtrl_GetLineIndentation 3088 +#define wxStyledTextCtrl_GetLineIndentPosition 3089 +#define wxStyledTextCtrl_GetColumn 3090 +#define wxStyledTextCtrl_SetUseHorizontalScrollBar 3091 +#define wxStyledTextCtrl_GetUseHorizontalScrollBar 3092 +#define wxStyledTextCtrl_SetIndentationGuides 3093 +#define wxStyledTextCtrl_GetIndentationGuides 3094 +#define wxStyledTextCtrl_SetHighlightGuide 3095 +#define wxStyledTextCtrl_GetHighlightGuide 3096 +#define wxStyledTextCtrl_GetLineEndPosition 3097 +#define wxStyledTextCtrl_GetCodePage 3098 +#define wxStyledTextCtrl_GetCaretForeground 3099 +#define wxStyledTextCtrl_GetReadOnly 3100 +#define wxStyledTextCtrl_SetCurrentPos 3101 +#define wxStyledTextCtrl_SetSelectionStart 3102 +#define wxStyledTextCtrl_GetSelectionStart 3103 +#define wxStyledTextCtrl_SetSelectionEnd 3104 +#define wxStyledTextCtrl_GetSelectionEnd 3105 +#define wxStyledTextCtrl_SetPrintMagnification 3106 +#define wxStyledTextCtrl_GetPrintMagnification 3107 +#define wxStyledTextCtrl_SetPrintColourMode 3108 +#define wxStyledTextCtrl_GetPrintColourMode 3109 +#define wxStyledTextCtrl_FindText 3110 +#define wxStyledTextCtrl_FormatRange 3111 +#define wxStyledTextCtrl_GetFirstVisibleLine 3112 +#define wxStyledTextCtrl_GetLine 3113 +#define wxStyledTextCtrl_GetLineCount 3114 +#define wxStyledTextCtrl_SetMarginLeft 3115 +#define wxStyledTextCtrl_GetMarginLeft 3116 +#define wxStyledTextCtrl_SetMarginRight 3117 +#define wxStyledTextCtrl_GetMarginRight 3118 +#define wxStyledTextCtrl_GetModify 3119 +#define wxStyledTextCtrl_SetSelection 3120 +#define wxStyledTextCtrl_GetSelectedText 3121 +#define wxStyledTextCtrl_GetTextRange 3122 +#define wxStyledTextCtrl_HideSelection 3123 +#define wxStyledTextCtrl_LineFromPosition 3124 +#define wxStyledTextCtrl_PositionFromLine 3125 +#define wxStyledTextCtrl_LineScroll 3126 +#define wxStyledTextCtrl_EnsureCaretVisible 3127 +#define wxStyledTextCtrl_ReplaceSelection 3128 +#define wxStyledTextCtrl_SetReadOnly 3129 +#define wxStyledTextCtrl_CanPaste 3130 +#define wxStyledTextCtrl_CanUndo 3131 +#define wxStyledTextCtrl_EmptyUndoBuffer 3132 +#define wxStyledTextCtrl_Undo 3133 +#define wxStyledTextCtrl_Cut 3134 +#define wxStyledTextCtrl_Copy 3135 +#define wxStyledTextCtrl_Paste 3136 +#define wxStyledTextCtrl_Clear 3137 +#define wxStyledTextCtrl_SetText 3138 +#define wxStyledTextCtrl_GetText 3139 +#define wxStyledTextCtrl_GetTextLength 3140 +#define wxStyledTextCtrl_GetOvertype 3141 +#define wxStyledTextCtrl_SetCaretWidth 3142 +#define wxStyledTextCtrl_GetCaretWidth 3143 +#define wxStyledTextCtrl_SetTargetStart 3144 +#define wxStyledTextCtrl_GetTargetStart 3145 +#define wxStyledTextCtrl_SetTargetEnd 3146 +#define wxStyledTextCtrl_GetTargetEnd 3147 +#define wxStyledTextCtrl_ReplaceTarget 3148 +#define wxStyledTextCtrl_SearchInTarget 3149 +#define wxStyledTextCtrl_SetSearchFlags 3150 +#define wxStyledTextCtrl_GetSearchFlags 3151 +#define wxStyledTextCtrl_CallTipShow 3152 +#define wxStyledTextCtrl_CallTipCancel 3153 +#define wxStyledTextCtrl_CallTipActive 3154 +#define wxStyledTextCtrl_CallTipPosAtStart 3155 +#define wxStyledTextCtrl_CallTipSetHighlight 3156 +#define wxStyledTextCtrl_CallTipSetBackground 3157 +#define wxStyledTextCtrl_CallTipSetForeground 3158 +#define wxStyledTextCtrl_CallTipSetForegroundHighlight 3159 +#define wxStyledTextCtrl_CallTipUseStyle 3160 +#define wxStyledTextCtrl_VisibleFromDocLine 3161 +#define wxStyledTextCtrl_DocLineFromVisible 3162 +#define wxStyledTextCtrl_WrapCount 3163 +#define wxStyledTextCtrl_SetFoldLevel 3164 +#define wxStyledTextCtrl_GetFoldLevel 3165 +#define wxStyledTextCtrl_GetLastChild 3166 +#define wxStyledTextCtrl_GetFoldParent 3167 +#define wxStyledTextCtrl_ShowLines 3168 +#define wxStyledTextCtrl_HideLines 3169 +#define wxStyledTextCtrl_GetLineVisible 3170 +#define wxStyledTextCtrl_SetFoldExpanded 3171 +#define wxStyledTextCtrl_GetFoldExpanded 3172 +#define wxStyledTextCtrl_ToggleFold 3173 +#define wxStyledTextCtrl_EnsureVisible 3174 +#define wxStyledTextCtrl_SetFoldFlags 3175 +#define wxStyledTextCtrl_EnsureVisibleEnforcePolicy 3176 +#define wxStyledTextCtrl_SetTabIndents 3177 +#define wxStyledTextCtrl_GetTabIndents 3178 +#define wxStyledTextCtrl_SetBackSpaceUnIndents 3179 +#define wxStyledTextCtrl_GetBackSpaceUnIndents 3180 +#define wxStyledTextCtrl_SetMouseDwellTime 3181 +#define wxStyledTextCtrl_GetMouseDwellTime 3182 +#define wxStyledTextCtrl_WordStartPosition 3183 +#define wxStyledTextCtrl_WordEndPosition 3184 +#define wxStyledTextCtrl_SetWrapMode 3185 +#define wxStyledTextCtrl_GetWrapMode 3186 +#define wxStyledTextCtrl_SetWrapVisualFlags 3187 +#define wxStyledTextCtrl_GetWrapVisualFlags 3188 +#define wxStyledTextCtrl_SetWrapVisualFlagsLocation 3189 +#define wxStyledTextCtrl_GetWrapVisualFlagsLocation 3190 +#define wxStyledTextCtrl_SetWrapStartIndent 3191 +#define wxStyledTextCtrl_GetWrapStartIndent 3192 +#define wxStyledTextCtrl_SetLayoutCache 3193 +#define wxStyledTextCtrl_GetLayoutCache 3194 +#define wxStyledTextCtrl_SetScrollWidth 3195 +#define wxStyledTextCtrl_GetScrollWidth 3196 +#define wxStyledTextCtrl_TextWidth 3197 +#define wxStyledTextCtrl_GetEndAtLastLine 3198 +#define wxStyledTextCtrl_TextHeight 3199 +#define wxStyledTextCtrl_SetUseVerticalScrollBar 3200 +#define wxStyledTextCtrl_GetUseVerticalScrollBar 3201 +#define wxStyledTextCtrl_AppendText 3202 +#define wxStyledTextCtrl_GetTwoPhaseDraw 3203 +#define wxStyledTextCtrl_SetTwoPhaseDraw 3204 +#define wxStyledTextCtrl_TargetFromSelection 3205 +#define wxStyledTextCtrl_LinesJoin 3206 +#define wxStyledTextCtrl_LinesSplit 3207 +#define wxStyledTextCtrl_SetFoldMarginColour 3208 +#define wxStyledTextCtrl_SetFoldMarginHiColour 3209 +#define wxStyledTextCtrl_LineDown 3210 +#define wxStyledTextCtrl_LineDownExtend 3211 +#define wxStyledTextCtrl_LineUp 3212 +#define wxStyledTextCtrl_LineUpExtend 3213 +#define wxStyledTextCtrl_CharLeft 3214 +#define wxStyledTextCtrl_CharLeftExtend 3215 +#define wxStyledTextCtrl_CharRight 3216 +#define wxStyledTextCtrl_CharRightExtend 3217 +#define wxStyledTextCtrl_WordLeft 3218 +#define wxStyledTextCtrl_WordLeftExtend 3219 +#define wxStyledTextCtrl_WordRight 3220 +#define wxStyledTextCtrl_WordRightExtend 3221 +#define wxStyledTextCtrl_Home 3222 +#define wxStyledTextCtrl_HomeExtend 3223 +#define wxStyledTextCtrl_LineEnd 3224 +#define wxStyledTextCtrl_LineEndExtend 3225 +#define wxStyledTextCtrl_DocumentStart 3226 +#define wxStyledTextCtrl_DocumentStartExtend 3227 +#define wxStyledTextCtrl_DocumentEnd 3228 +#define wxStyledTextCtrl_DocumentEndExtend 3229 +#define wxStyledTextCtrl_PageUp 3230 +#define wxStyledTextCtrl_PageUpExtend 3231 +#define wxStyledTextCtrl_PageDown 3232 +#define wxStyledTextCtrl_PageDownExtend 3233 +#define wxStyledTextCtrl_EditToggleOvertype 3234 +#define wxStyledTextCtrl_Cancel 3235 +#define wxStyledTextCtrl_DeleteBack 3236 +#define wxStyledTextCtrl_Tab 3237 +#define wxStyledTextCtrl_BackTab 3238 +#define wxStyledTextCtrl_NewLine 3239 +#define wxStyledTextCtrl_FormFeed 3240 +#define wxStyledTextCtrl_VCHome 3241 +#define wxStyledTextCtrl_VCHomeExtend 3242 +#define wxStyledTextCtrl_ZoomIn 3243 +#define wxStyledTextCtrl_ZoomOut 3244 +#define wxStyledTextCtrl_DelWordLeft 3245 +#define wxStyledTextCtrl_DelWordRight 3246 +#define wxStyledTextCtrl_LineCut 3247 +#define wxStyledTextCtrl_LineDelete 3248 +#define wxStyledTextCtrl_LineTranspose 3249 +#define wxStyledTextCtrl_LineDuplicate 3250 +#define wxStyledTextCtrl_LowerCase 3251 +#define wxStyledTextCtrl_UpperCase 3252 +#define wxStyledTextCtrl_LineScrollDown 3253 +#define wxStyledTextCtrl_LineScrollUp 3254 +#define wxStyledTextCtrl_DeleteBackNotLine 3255 +#define wxStyledTextCtrl_HomeDisplay 3256 +#define wxStyledTextCtrl_HomeDisplayExtend 3257 +#define wxStyledTextCtrl_LineEndDisplay 3258 +#define wxStyledTextCtrl_LineEndDisplayExtend 3259 +#define wxStyledTextCtrl_HomeWrapExtend 3260 +#define wxStyledTextCtrl_LineEndWrap 3261 +#define wxStyledTextCtrl_LineEndWrapExtend 3262 +#define wxStyledTextCtrl_VCHomeWrap 3263 +#define wxStyledTextCtrl_VCHomeWrapExtend 3264 +#define wxStyledTextCtrl_LineCopy 3265 +#define wxStyledTextCtrl_MoveCaretInsideView 3266 +#define wxStyledTextCtrl_LineLength 3267 +#define wxStyledTextCtrl_BraceHighlight 3268 +#define wxStyledTextCtrl_BraceBadLight 3269 +#define wxStyledTextCtrl_BraceMatch 3270 +#define wxStyledTextCtrl_GetViewEOL 3271 +#define wxStyledTextCtrl_SetViewEOL 3272 +#define wxStyledTextCtrl_SetModEventMask 3273 +#define wxStyledTextCtrl_GetEdgeColumn 3274 +#define wxStyledTextCtrl_SetEdgeColumn 3275 +#define wxStyledTextCtrl_SetEdgeMode 3276 +#define wxStyledTextCtrl_GetEdgeMode 3277 +#define wxStyledTextCtrl_GetEdgeColour 3278 +#define wxStyledTextCtrl_SetEdgeColour 3279 +#define wxStyledTextCtrl_SearchAnchor 3280 +#define wxStyledTextCtrl_SearchNext 3281 +#define wxStyledTextCtrl_SearchPrev 3282 +#define wxStyledTextCtrl_LinesOnScreen 3283 +#define wxStyledTextCtrl_UsePopUp 3284 +#define wxStyledTextCtrl_SelectionIsRectangle 3285 +#define wxStyledTextCtrl_SetZoom 3286 +#define wxStyledTextCtrl_GetZoom 3287 +#define wxStyledTextCtrl_GetModEventMask 3288 +#define wxStyledTextCtrl_SetSTCFocus 3289 +#define wxStyledTextCtrl_GetSTCFocus 3290 +#define wxStyledTextCtrl_SetStatus 3291 +#define wxStyledTextCtrl_GetStatus 3292 +#define wxStyledTextCtrl_SetMouseDownCaptures 3293 +#define wxStyledTextCtrl_GetMouseDownCaptures 3294 +#define wxStyledTextCtrl_SetSTCCursor 3295 +#define wxStyledTextCtrl_GetSTCCursor 3296 +#define wxStyledTextCtrl_SetControlCharSymbol 3297 +#define wxStyledTextCtrl_GetControlCharSymbol 3298 +#define wxStyledTextCtrl_WordPartLeft 3299 +#define wxStyledTextCtrl_WordPartLeftExtend 3300 +#define wxStyledTextCtrl_WordPartRight 3301 +#define wxStyledTextCtrl_WordPartRightExtend 3302 +#define wxStyledTextCtrl_SetVisiblePolicy 3303 +#define wxStyledTextCtrl_DelLineLeft 3304 +#define wxStyledTextCtrl_DelLineRight 3305 +#define wxStyledTextCtrl_GetXOffset 3306 +#define wxStyledTextCtrl_ChooseCaretX 3307 +#define wxStyledTextCtrl_SetXCaretPolicy 3308 +#define wxStyledTextCtrl_SetYCaretPolicy 3309 +#define wxStyledTextCtrl_GetPrintWrapMode 3310 +#define wxStyledTextCtrl_SetHotspotActiveForeground 3311 +#define wxStyledTextCtrl_SetHotspotActiveBackground 3312 +#define wxStyledTextCtrl_SetHotspotActiveUnderline 3313 +#define wxStyledTextCtrl_SetHotspotSingleLine 3314 +#define wxStyledTextCtrl_ParaDownExtend 3315 +#define wxStyledTextCtrl_ParaUp 3316 +#define wxStyledTextCtrl_ParaUpExtend 3317 +#define wxStyledTextCtrl_PositionBefore 3318 +#define wxStyledTextCtrl_PositionAfter 3319 +#define wxStyledTextCtrl_CopyRange 3320 +#define wxStyledTextCtrl_CopyText 3321 +#define wxStyledTextCtrl_SetSelectionMode 3322 +#define wxStyledTextCtrl_GetSelectionMode 3323 +#define wxStyledTextCtrl_LineDownRectExtend 3324 +#define wxStyledTextCtrl_LineUpRectExtend 3325 +#define wxStyledTextCtrl_CharLeftRectExtend 3326 +#define wxStyledTextCtrl_CharRightRectExtend 3327 +#define wxStyledTextCtrl_HomeRectExtend 3328 +#define wxStyledTextCtrl_VCHomeRectExtend 3329 +#define wxStyledTextCtrl_LineEndRectExtend 3330 +#define wxStyledTextCtrl_PageUpRectExtend 3331 +#define wxStyledTextCtrl_PageDownRectExtend 3332 +#define wxStyledTextCtrl_StutteredPageUp 3333 +#define wxStyledTextCtrl_StutteredPageUpExtend 3334 +#define wxStyledTextCtrl_StutteredPageDown 3335 +#define wxStyledTextCtrl_StutteredPageDownExtend 3336 +#define wxStyledTextCtrl_WordLeftEnd 3337 +#define wxStyledTextCtrl_WordLeftEndExtend 3338 +#define wxStyledTextCtrl_WordRightEnd 3339 +#define wxStyledTextCtrl_WordRightEndExtend 3340 +#define wxStyledTextCtrl_SetWhitespaceChars 3341 +#define wxStyledTextCtrl_SetCharsDefault 3342 +#define wxStyledTextCtrl_AutoCompGetCurrent 3343 +#define wxStyledTextCtrl_Allocate 3344 +#define wxStyledTextCtrl_FindColumn 3345 +#define wxStyledTextCtrl_GetCaretSticky 3346 +#define wxStyledTextCtrl_SetCaretSticky 3347 +#define wxStyledTextCtrl_ToggleCaretSticky 3348 +#define wxStyledTextCtrl_SetPasteConvertEndings 3349 +#define wxStyledTextCtrl_GetPasteConvertEndings 3350 +#define wxStyledTextCtrl_SelectionDuplicate 3351 +#define wxStyledTextCtrl_SetCaretLineBackAlpha 3352 +#define wxStyledTextCtrl_GetCaretLineBackAlpha 3353 +#define wxStyledTextCtrl_StartRecord 3354 +#define wxStyledTextCtrl_StopRecord 3355 +#define wxStyledTextCtrl_SetLexer 3356 +#define wxStyledTextCtrl_GetLexer 3357 +#define wxStyledTextCtrl_Colourise 3358 +#define wxStyledTextCtrl_SetProperty 3359 +#define wxStyledTextCtrl_SetKeyWords 3360 +#define wxStyledTextCtrl_SetLexerLanguage 3361 +#define wxStyledTextCtrl_GetProperty 3362 +#define wxStyledTextCtrl_GetStyleBitsNeeded 3363 +#define wxStyledTextCtrl_GetCurrentLine 3364 +#define wxStyledTextCtrl_StyleSetSpec 3365 +#define wxStyledTextCtrl_StyleSetFont 3366 +#define wxStyledTextCtrl_StyleSetFontAttr 3367 +#define wxStyledTextCtrl_StyleSetCharacterSet 3368 +#define wxStyledTextCtrl_StyleSetFontEncoding 3369 +#define wxStyledTextCtrl_CmdKeyExecute 3370 +#define wxStyledTextCtrl_SetMargins 3371 +#define wxStyledTextCtrl_GetSelection 3372 +#define wxStyledTextCtrl_PointFromPosition 3373 +#define wxStyledTextCtrl_ScrollToLine 3374 +#define wxStyledTextCtrl_ScrollToColumn 3375 +#define wxStyledTextCtrl_SetVScrollBar 3376 +#define wxStyledTextCtrl_SetHScrollBar 3377 +#define wxStyledTextCtrl_GetLastKeydownProcessed 3378 +#define wxStyledTextCtrl_SetLastKeydownProcessed 3379 +#define wxStyledTextCtrl_SaveFile 3380 +#define wxStyledTextCtrl_LoadFile 3381 +#define wxStyledTextCtrl_DoDragOver 3382 +#define wxStyledTextCtrl_DoDropText 3383 +#define wxStyledTextCtrl_GetUseAntiAliasing 3384 +#define wxStyledTextCtrl_AddTextRaw 3385 +#define wxStyledTextCtrl_InsertTextRaw 3386 +#define wxStyledTextCtrl_GetCurLineRaw 3387 +#define wxStyledTextCtrl_GetLineRaw 3388 +#define wxStyledTextCtrl_GetSelectedTextRaw 3389 +#define wxStyledTextCtrl_GetTextRangeRaw 3390 +#define wxStyledTextCtrl_SetTextRaw 3391 +#define wxStyledTextCtrl_GetTextRaw 3392 +#define wxStyledTextCtrl_AppendTextRaw 3393 +#define wxArtProvider_GetBitmap 3394 +#define wxArtProvider_GetIcon 3395 +#define wxTreeEvent_GetKeyCode 3396 +#define wxTreeEvent_GetItem 3397 +#define wxTreeEvent_GetKeyEvent 3398 +#define wxTreeEvent_GetLabel 3399 +#define wxTreeEvent_GetOldItem 3400 +#define wxTreeEvent_GetPoint 3401 +#define wxTreeEvent_IsEditCancelled 3402 +#define wxTreeEvent_SetToolTip 3403 +#define wxNotebookEvent_GetOldSelection 3404 +#define wxNotebookEvent_GetSelection 3405 +#define wxNotebookEvent_SetOldSelection 3406 +#define wxNotebookEvent_SetSelection 3407 +#define wxFileDataObject_new 3408 +#define wxFileDataObject_AddFile 3409 +#define wxFileDataObject_GetFilenames 3410 +#define wxFileDataObject_destroy 3411 +#define wxTextDataObject_new 3412 +#define wxTextDataObject_GetTextLength 3413 +#define wxTextDataObject_GetText 3414 +#define wxTextDataObject_SetText 3415 +#define wxTextDataObject_destroy 3416 +#define wxBitmapDataObject_new_1_1 3417 +#define wxBitmapDataObject_new_1_0 3418 +#define wxBitmapDataObject_GetBitmap 3419 +#define wxBitmapDataObject_SetBitmap 3420 +#define wxBitmapDataObject_destroy 3421 +#define wxClipboard_new 3423 +#define wxClipboard_destruct 3424 +#define wxClipboard_AddData 3425 +#define wxClipboard_Clear 3426 +#define wxClipboard_Close 3427 +#define wxClipboard_Flush 3428 +#define wxClipboard_GetData 3429 +#define wxClipboard_IsOpened 3430 +#define wxClipboard_Open 3431 +#define wxClipboard_SetData 3432 +#define wxClipboard_UsePrimarySelection 3434 +#define wxClipboard_IsSupported 3435 +#define wxClipboard_Get 3436 +#define wxSpinEvent_GetPosition 3437 +#define wxSpinEvent_SetPosition 3438 +#define wxSplitterWindow_new_0 3439 +#define wxSplitterWindow_new_2 3440 +#define wxSplitterWindow_destruct 3441 +#define wxSplitterWindow_Create 3442 +#define wxSplitterWindow_GetMinimumPaneSize 3443 +#define wxSplitterWindow_GetSashGravity 3444 +#define wxSplitterWindow_GetSashPosition 3445 +#define wxSplitterWindow_GetSplitMode 3446 +#define wxSplitterWindow_GetWindow1 3447 +#define wxSplitterWindow_GetWindow2 3448 +#define wxSplitterWindow_Initialize 3449 +#define wxSplitterWindow_IsSplit 3450 +#define wxSplitterWindow_ReplaceWindow 3451 +#define wxSplitterWindow_SetSashGravity 3452 +#define wxSplitterWindow_SetSashPosition 3453 +#define wxSplitterWindow_SetSashSize 3454 +#define wxSplitterWindow_SetMinimumPaneSize 3455 +#define wxSplitterWindow_SetSplitMode 3456 +#define wxSplitterWindow_SplitHorizontally 3457 +#define wxSplitterWindow_SplitVertically 3458 +#define wxSplitterWindow_Unsplit 3459 +#define wxSplitterWindow_UpdateSize 3460 +#define wxSplitterEvent_GetSashPosition 3461 +#define wxSplitterEvent_GetX 3462 +#define wxSplitterEvent_GetY 3463 +#define wxSplitterEvent_GetWindowBeingRemoved 3464 +#define wxSplitterEvent_SetSashPosition 3465 +#define wxHtmlWindow_new_0 3466 +#define wxHtmlWindow_new_2 3467 +#define wxHtmlWindow_AppendToPage 3468 +#define wxHtmlWindow_GetOpenedAnchor 3469 +#define wxHtmlWindow_GetOpenedPage 3470 +#define wxHtmlWindow_GetOpenedPageTitle 3471 +#define wxHtmlWindow_GetRelatedFrame 3472 +#define wxHtmlWindow_HistoryBack 3473 +#define wxHtmlWindow_HistoryCanBack 3474 +#define wxHtmlWindow_HistoryCanForward 3475 +#define wxHtmlWindow_HistoryClear 3476 +#define wxHtmlWindow_HistoryForward 3477 +#define wxHtmlWindow_LoadFile 3478 +#define wxHtmlWindow_LoadPage 3479 +#define wxHtmlWindow_SelectAll 3480 +#define wxHtmlWindow_SelectionToText 3481 +#define wxHtmlWindow_SelectLine 3482 +#define wxHtmlWindow_SelectWord 3483 +#define wxHtmlWindow_SetBorders 3484 +#define wxHtmlWindow_SetFonts 3485 +#define wxHtmlWindow_SetPage 3486 +#define wxHtmlWindow_SetRelatedFrame 3487 +#define wxHtmlWindow_SetRelatedStatusBar 3488 +#define wxHtmlWindow_ToText 3489 +#define wxHtmlWindow_destroy 3490 +#define wxHtmlLinkEvent_GetLinkInfo 3491 +#define wxSystemSettings_GetColour 3492 +#define wxSystemSettings_GetFont 3493 +#define wxSystemSettings_GetMetric 3494 +#define wxSystemSettings_GetScreenType 3495 +#define wxSystemOptions_GetOption 3496 +#define wxSystemOptions_GetOptionInt 3497 +#define wxSystemOptions_HasOption 3498 +#define wxSystemOptions_IsFalse 3499 +#define wxSystemOptions_SetOption_2_1 3500 +#define wxSystemOptions_SetOption_2_0 3501 +#define wxAuiNotebookEvent_SetSelection 3502 +#define wxAuiNotebookEvent_GetSelection 3503 +#define wxAuiNotebookEvent_SetOldSelection 3504 +#define wxAuiNotebookEvent_GetOldSelection 3505 +#define wxAuiNotebookEvent_SetDragSource 3506 +#define wxAuiNotebookEvent_GetDragSource 3507 +#define wxAuiManagerEvent_SetManager 3508 +#define wxAuiManagerEvent_GetManager 3509 +#define wxAuiManagerEvent_SetPane 3510 +#define wxAuiManagerEvent_GetPane 3511 +#define wxAuiManagerEvent_SetButton 3512 +#define wxAuiManagerEvent_GetButton 3513 +#define wxAuiManagerEvent_SetDC 3514 +#define wxAuiManagerEvent_GetDC 3515 +#define wxAuiManagerEvent_Veto 3516 +#define wxAuiManagerEvent_GetVeto 3517 +#define wxAuiManagerEvent_SetCanVeto 3518 +#define wxAuiManagerEvent_CanVeto 3519 +#define wxLogNull_new 3520 +#define wxLogNull_destroy 3521 +#define wxTaskBarIcon_new 3522 +#define wxTaskBarIcon_destruct 3523 +#define wxTaskBarIcon_PopupMenu 3524 +#define wxTaskBarIcon_RemoveIcon 3525 +#define wxTaskBarIcon_SetIcon 3526 +#define wxLocale_new_0 3527 +#define wxLocale_new_2 3529 +#define wxLocale_destruct 3530 +#define wxLocale_Init 3532 +#define wxLocale_AddCatalog_1 3533 +#define wxLocale_AddCatalog_3 3534 +#define wxLocale_AddCatalogLookupPathPrefix 3535 +#define wxLocale_GetCanonicalName 3536 +#define wxLocale_GetLanguage 3537 +#define wxLocale_GetLanguageName 3538 +#define wxLocale_GetLocale 3539 +#define wxLocale_GetName 3540 +#define wxLocale_GetString_2 3541 +#define wxLocale_GetString_4 3542 +#define wxLocale_GetHeaderValue 3543 +#define wxLocale_GetSysName 3544 +#define wxLocale_GetSystemEncoding 3545 +#define wxLocale_GetSystemEncodingName 3546 +#define wxLocale_GetSystemLanguage 3547 +#define wxLocale_IsLoaded 3548 +#define wxLocale_IsOk 3549 diff --git a/lib/wx/c_src/wxe_callback_impl.cpp b/lib/wx/c_src/wxe_callback_impl.cpp index e06f68dcbf..3a59004eb0 100644 --- a/lib/wx/c_src/wxe_callback_impl.cpp +++ b/lib/wx/c_src/wxe_callback_impl.cpp @@ -284,7 +284,7 @@ EwxListCtrl::~EwxListCtrl() { * wxListCtrlCompare wrapper * ****************************************************************************/ -int wxCALLBACK wxEListCtrlCompare(long item1, long item2, long callbackInfoPtr) +int wxCALLBACK wxEListCtrlCompare(wxeIntPtr item1, wxeIntPtr item2, wxeIntPtr callbackInfoPtr) { callbackInfo * cb = (callbackInfo *)callbackInfoPtr; wxeMemEnv * memenv = ((WxeApp *) wxTheApp)->getMemEnv(cb->port); diff --git a/lib/wx/c_src/wxe_callback_impl.h b/lib/wx/c_src/wxe_callback_impl.h index 1c355e4d38..ecfcd3db41 100644 --- a/lib/wx/c_src/wxe_callback_impl.h +++ b/lib/wx/c_src/wxe_callback_impl.h @@ -23,6 +23,13 @@ void pre_callback(); void handle_event_callback(ErlDrvPort port, ErlDrvTermData process); +#if wxCHECK_VERSION(2,9,0) + #define wxeIntPtr wxIntPtr +#else + // This is bad but how it was in wx-2.8 + #define wxeIntPtr long +#endif + /* Fun Callback id */ class wxeEvtListener : public wxEvtHandler { @@ -88,6 +95,6 @@ struct callbackInfo { int callbackID; }; -int wxCALLBACK wxEListCtrlCompare(long item1, long item2, long callbackInfoPtr); +int wxCALLBACK wxEListCtrlCompare(wxeIntPtr item1, wxeIntPtr item2, wxeIntPtr callbackInfoPtr); #endif diff --git a/lib/wx/c_src/wxe_impl.cpp b/lib/wx/c_src/wxe_impl.cpp index 5964ccfd00..f617aaf349 100644 --- a/lib/wx/c_src/wxe_impl.cpp +++ b/lib/wx/c_src/wxe_impl.cpp @@ -104,7 +104,7 @@ void meta_command(int what, wxe_data *sd) { } } -void send_msg(const char * type, wxString * msg) { +void send_msg(const char * type, const wxString * msg) { wxeReturn rt = wxeReturn(WXE_DRV_PORT, init_caller); rt.addAtom((char *) "wxe_driver"); rt.addAtom((char *) type); @@ -160,6 +160,13 @@ bool WxeApp::OnInit() return TRUE; } + +#ifdef _MACOSX +void WxeApp::MacOpenFile(const wxString &filename) { + send_msg("open_file", &filename); +} +#endif + void WxeApp::shutdown(wxeMetaCommand& Ecmd) { ExitMainLoop(); } @@ -411,6 +418,13 @@ void WxeApp::destroyMemEnv(wxeMetaCommand& Ecmd) wxWindow *parent = NULL; wxeMemEnv * memenv = refmap[Ecmd.port]; + if(!memenv) { + wxString msg; + msg.Printf(wxT("MemEnv already deleted")); + send_msg("debug", &msg); + return; + } + if(wxe_debug) { wxString msg; msg.Printf(wxT("Destroying all memory ")); @@ -439,7 +453,6 @@ void WxeApp::destroyMemEnv(wxeMetaCommand& Ecmd) } if(recurse_level > 0) { // Delay delete until we are out of dispatch* - delayed_cleanup->Append(Ecmd.Clone()); } else { delete win; } @@ -448,9 +461,10 @@ void WxeApp::destroyMemEnv(wxeMetaCommand& Ecmd) } } - if(recurse_level > 0) + if(recurse_level > 0) { + delayed_cleanup->Append(Ecmd.Clone()); return; - + } // First pass, delete all top parents/windows of all linked objects // fprintf(stderr, "close port %x\r\n", Ecmd.port);fflush(stderr); @@ -486,20 +500,20 @@ void WxeApp::destroyMemEnv(wxeMetaCommand& Ecmd) if(it != ptr2ref.end()) { wxeRefData *refd = it->second; if(refd->alloc_in_erl) { - int type = refd->type; if((refd->type == 1) && ((wxObject *)ptr)->IsKindOf(CLASSINFO(wxBufferedDC))) { ((wxBufferedDC *)ptr)->m_dc = NULL; // Workaround } wxString msg; - if((refd->type == 0)) { // Maybe also class 1 + bool cleanup_ref=true; + if(refd->type == 0) { // Maybe also class 1 wxClassInfo *cinfo = ((wxObject *)ptr)->GetClassInfo(); msg.Printf(wxT("Memory leak: {wx_ref, %d, %s}"), refd->ref, cinfo->GetClassName()); send_msg("error", &msg); } else { - delete_object(ptr, refd); + cleanup_ref = delete_object(ptr, refd); } - if(type == 0 || type > 2) { + if(cleanup_ref) { // Delete refs for leaks and non overridden allocs delete refd; ptr2ref.erase(it); @@ -607,7 +621,7 @@ void WxeApp::clearPtr(void * ptr) { if(((int) refd->pid) != -1) { // Send terminate pid to owner - wxeReturn rt = wxeReturn(WXE_DRV_PORT,refd->memenv->owner, false); + wxeReturn rt = wxeReturn(WXE_DRV_PORT,refd->pid, false); rt.addAtom("_wxe_destroy_"); rt.add(ERL_DRV_PID, refd->pid); rt.addTupleCount(2); diff --git a/lib/wx/c_src/wxe_impl.h b/lib/wx/c_src/wxe_impl.h index bb54961edd..5b23e1cbbd 100644 --- a/lib/wx/c_src/wxe_impl.h +++ b/lib/wx/c_src/wxe_impl.h @@ -36,17 +36,28 @@ extern "C" { #include "wxe_callback_impl.h" #include "wxe_memory.h" +#if !wxCHECK_VERSION(2,9,0) +#define wxeLocaleC wxChar * +#define wxeLocaleC2String(Str) wxString(Str) +#else +typedef wxString wxeLocaleC; +#define wxeLocaleC2String(Str) Str +#endif + #define WXE_NOT_INITIATED 0 #define WXE_INITIATED 1 #define WXE_EXITED 2 #define WXE_ERROR -1 -void send_msg(const char *, wxString *); // For debugging and error msgs +void send_msg(const char *, const wxString *); // For debugging and error msgs class WxeApp : public wxApp { public: - virtual bool OnInit(); + virtual bool OnInit(); +#ifdef _MACOSX + virtual void MacOpenFile(const wxString &filename); +#endif void shutdown(wxeMetaCommand& event); int dispatch(wxList *, int, int); @@ -73,7 +84,7 @@ public: void init_nonconsts(wxeMemEnv *memenv, ErlDrvTermData caller); // Code found in gen/wxe_derived_dest.h - void delete_object(void *ptr, wxeRefData *refd); + bool delete_object(void *ptr, wxeRefData *refd); wxeMemMap refmap; ptrMap ptr2ref; diff --git a/lib/wx/configure.in b/lib/wx/configure.in index 3756786831..a96f1f2632 100755 --- a/lib/wx/configure.in +++ b/lib/wx/configure.in @@ -441,12 +441,12 @@ else else CWXWIN_PROG=`cygpath -d "$PROGRAMFILES" | cygpath -f - 2>/dev/null` fi - CWXWIN3=$CWXWIN_PROG/wxWidgets-2.*.* - CWXWIN4=$CWXWIN_PROG/wxMSW-2.*.* - CWX_DOCUMENTED="/opt/local/pgm/wxMSW-2.*.* /opt/local/pgm/wxWidgets-2.*.*" + CWXWIN3=$CWXWIN_PROG/wxWidgets-?.*.* + CWXWIN4=$CWXWIN_PROG/wxMSW-?.*.* + CWX_DOCUMENTED="/opt/local/pgm/wxMSW-?.*.* /opt/local/pgm/wxWidgets-?.*.*" case $ac_cv_sizeof_void_p in 8) - CWX_DOCUMENTED="/opt/local64/pgm/wxMSW-2.*.* /opt/local64/pgm/wxWidgets-2.*.* $CWX_DOCUMENTED" + CWX_DOCUMENTED="/opt/local64/pgm/wxMSW-?.*.* /opt/local64/pgm/wxWidgets-?.*.* $CWX_DOCUMENTED" ;; *) true @@ -464,12 +464,14 @@ else WX_CFLAGS="-EHsc -D_UNICODE -DUNICODE -I$WXINCLUDE_MSVC -I$WXINCLUDE_PLAIN -I$WXINCLUDE_CONTRIB -D__WXMSW__" WX_CXXFLAGS="-TP $WX_CFLAGS" WX_LIBDIR=$dir/lib/vc_lib + WX_LIBDIR64=$dir/lib/vc_x64_lib WX_RESCOMP="rc.sh -I$WXINCLUDE_PLAIN -D __WIN32__" RC_FILE_TYPE=res - for lib in $WX_LIBDIR/wxbase*.lib $WX_LIBDIR2/wxbase*.lib; do - maybe=`echo $lib | egrep 'wxbase[[0-9]]*u\.lib'` + for lib in $WX_LIBDIR $WX_LIBDIR64; do + maybe=`ls $lib/wxbase*.lib | egrep 'wxbase[[0-9]]*u\.lib'` if test '!' -z "$maybe"; then corelib_number=`echo $maybe | sed 's,.*\([[0-9]].\)u\.lib,\1,'` + WX_LIBDIR=$lib break fi done diff --git a/lib/wx/include/wx.hrl b/lib/wx/include/wx.hrl index 2dc1791cce..ac852ce054 100644 --- a/lib/wx/include/wx.hrl +++ b/lib/wx/include/wx.hrl @@ -1980,10 +1980,255 @@ -define(wxIMAGELIST_DRAW_SELECTED, 4). -define(wxIMAGELIST_DRAW_TRANSPARENT, 2). -define(wxIMAGELIST_DRAW_NORMAL, 1). +% From "intl.h": wxLanguage +-define(wxLANGUAGE_DEFAULT, 0). +-define(wxLANGUAGE_UNKNOWN, 1). +-define(wxLANGUAGE_ABKHAZIAN, 2). +-define(wxLANGUAGE_AFAR, 3). +-define(wxLANGUAGE_AFRIKAANS, 4). +-define(wxLANGUAGE_ALBANIAN, 5). +-define(wxLANGUAGE_AMHARIC, 6). +-define(wxLANGUAGE_ARABIC, 7). +-define(wxLANGUAGE_ARABIC_ALGERIA, 8). +-define(wxLANGUAGE_ARABIC_BAHRAIN, 9). +-define(wxLANGUAGE_ARABIC_EGYPT, 10). +-define(wxLANGUAGE_ARABIC_IRAQ, 11). +-define(wxLANGUAGE_ARABIC_JORDAN, 12). +-define(wxLANGUAGE_ARABIC_KUWAIT, 13). +-define(wxLANGUAGE_ARABIC_LEBANON, 14). +-define(wxLANGUAGE_ARABIC_LIBYA, 15). +-define(wxLANGUAGE_ARABIC_MOROCCO, 16). +-define(wxLANGUAGE_ARABIC_OMAN, 17). +-define(wxLANGUAGE_ARABIC_QATAR, 18). +-define(wxLANGUAGE_ARABIC_SAUDI_ARABIA, 19). +-define(wxLANGUAGE_ARABIC_SUDAN, 20). +-define(wxLANGUAGE_ARABIC_SYRIA, 21). +-define(wxLANGUAGE_ARABIC_TUNISIA, 22). +-define(wxLANGUAGE_ARABIC_UAE, 23). +-define(wxLANGUAGE_ARABIC_YEMEN, 24). +-define(wxLANGUAGE_ARMENIAN, 25). +-define(wxLANGUAGE_ASSAMESE, 26). +-define(wxLANGUAGE_AYMARA, 27). +-define(wxLANGUAGE_AZERI, 28). +-define(wxLANGUAGE_AZERI_CYRILLIC, 29). +-define(wxLANGUAGE_AZERI_LATIN, 30). +-define(wxLANGUAGE_BASHKIR, 31). +-define(wxLANGUAGE_BASQUE, 32). +-define(wxLANGUAGE_BELARUSIAN, 33). +-define(wxLANGUAGE_BENGALI, 34). +-define(wxLANGUAGE_BHUTANI, 35). +-define(wxLANGUAGE_BIHARI, 36). +-define(wxLANGUAGE_BISLAMA, 37). +-define(wxLANGUAGE_BRETON, 38). +-define(wxLANGUAGE_BULGARIAN, 39). +-define(wxLANGUAGE_BURMESE, 40). +-define(wxLANGUAGE_CAMBODIAN, 41). +-define(wxLANGUAGE_CATALAN, 42). +-define(wxLANGUAGE_CHINESE, 43). +-define(wxLANGUAGE_CHINESE_SIMPLIFIED, 44). +-define(wxLANGUAGE_CHINESE_TRADITIONAL, 45). +-define(wxLANGUAGE_CHINESE_HONGKONG, 46). +-define(wxLANGUAGE_CHINESE_MACAU, 47). +-define(wxLANGUAGE_CHINESE_SINGAPORE, 48). +-define(wxLANGUAGE_CHINESE_TAIWAN, 49). +-define(wxLANGUAGE_CORSICAN, 50). +-define(wxLANGUAGE_CROATIAN, 51). +-define(wxLANGUAGE_CZECH, 52). +-define(wxLANGUAGE_DANISH, 53). +-define(wxLANGUAGE_DUTCH, 54). +-define(wxLANGUAGE_DUTCH_BELGIAN, 55). +-define(wxLANGUAGE_ENGLISH, 56). +-define(wxLANGUAGE_ENGLISH_UK, 57). +-define(wxLANGUAGE_ENGLISH_US, 58). +-define(wxLANGUAGE_ENGLISH_AUSTRALIA, 59). +-define(wxLANGUAGE_ENGLISH_BELIZE, 60). +-define(wxLANGUAGE_ENGLISH_BOTSWANA, 61). +-define(wxLANGUAGE_ENGLISH_CANADA, 62). +-define(wxLANGUAGE_ENGLISH_CARIBBEAN, 63). +-define(wxLANGUAGE_ENGLISH_DENMARK, 64). +-define(wxLANGUAGE_ENGLISH_EIRE, 65). +-define(wxLANGUAGE_ENGLISH_JAMAICA, 66). +-define(wxLANGUAGE_ENGLISH_NEW_ZEALAND, 67). +-define(wxLANGUAGE_ENGLISH_PHILIPPINES, 68). +-define(wxLANGUAGE_ENGLISH_SOUTH_AFRICA, 69). +-define(wxLANGUAGE_ENGLISH_TRINIDAD, 70). +-define(wxLANGUAGE_ENGLISH_ZIMBABWE, 71). +-define(wxLANGUAGE_ESPERANTO, 72). +-define(wxLANGUAGE_ESTONIAN, 73). +-define(wxLANGUAGE_FAEROESE, 74). +-define(wxLANGUAGE_FARSI, 75). +-define(wxLANGUAGE_FIJI, 76). +-define(wxLANGUAGE_FINNISH, 77). +-define(wxLANGUAGE_FRENCH, 78). +-define(wxLANGUAGE_FRENCH_BELGIAN, 79). +-define(wxLANGUAGE_FRENCH_CANADIAN, 80). +-define(wxLANGUAGE_FRENCH_LUXEMBOURG, 81). +-define(wxLANGUAGE_FRENCH_MONACO, 82). +-define(wxLANGUAGE_FRENCH_SWISS, 83). +-define(wxLANGUAGE_FRISIAN, 84). +-define(wxLANGUAGE_GALICIAN, 85). +-define(wxLANGUAGE_GEORGIAN, 86). +-define(wxLANGUAGE_GERMAN, 87). +-define(wxLANGUAGE_GERMAN_AUSTRIAN, 88). +-define(wxLANGUAGE_GERMAN_BELGIUM, 89). +-define(wxLANGUAGE_GERMAN_LIECHTENSTEIN, 90). +-define(wxLANGUAGE_GERMAN_LUXEMBOURG, 91). +-define(wxLANGUAGE_GERMAN_SWISS, 92). +-define(wxLANGUAGE_GREEK, 93). +-define(wxLANGUAGE_GREENLANDIC, 94). +-define(wxLANGUAGE_GUARANI, 95). +-define(wxLANGUAGE_GUJARATI, 96). +-define(wxLANGUAGE_HAUSA, 97). +-define(wxLANGUAGE_HEBREW, 98). +-define(wxLANGUAGE_HINDI, 99). +-define(wxLANGUAGE_HUNGARIAN, 100). +-define(wxLANGUAGE_ICELANDIC, 101). +-define(wxLANGUAGE_INDONESIAN, 102). +-define(wxLANGUAGE_INTERLINGUA, 103). +-define(wxLANGUAGE_INTERLINGUE, 104). +-define(wxLANGUAGE_INUKTITUT, 105). +-define(wxLANGUAGE_INUPIAK, 106). +-define(wxLANGUAGE_IRISH, 107). +-define(wxLANGUAGE_ITALIAN, 108). +-define(wxLANGUAGE_ITALIAN_SWISS, 109). +-define(wxLANGUAGE_JAPANESE, 110). +-define(wxLANGUAGE_JAVANESE, 111). +-define(wxLANGUAGE_KANNADA, 112). +-define(wxLANGUAGE_KASHMIRI, 113). +-define(wxLANGUAGE_KASHMIRI_INDIA, 114). +-define(wxLANGUAGE_KAZAKH, 115). +-define(wxLANGUAGE_KERNEWEK, 116). +-define(wxLANGUAGE_KINYARWANDA, 117). +-define(wxLANGUAGE_KIRGHIZ, 118). +-define(wxLANGUAGE_KIRUNDI, 119). +-define(wxLANGUAGE_KONKANI, 120). +-define(wxLANGUAGE_KOREAN, 121). +-define(wxLANGUAGE_KURDISH, 122). +-define(wxLANGUAGE_LAOTHIAN, 123). +-define(wxLANGUAGE_LATIN, 124). +-define(wxLANGUAGE_LATVIAN, 125). +-define(wxLANGUAGE_LINGALA, 126). +-define(wxLANGUAGE_LITHUANIAN, 127). +-define(wxLANGUAGE_MACEDONIAN, 128). +-define(wxLANGUAGE_MALAGASY, 129). +-define(wxLANGUAGE_MALAY, 130). +-define(wxLANGUAGE_MALAYALAM, 131). +-define(wxLANGUAGE_MALAY_BRUNEI_DARUSSALAM, 132). +-define(wxLANGUAGE_MALAY_MALAYSIA, 133). +-define(wxLANGUAGE_MALTESE, 134). +-define(wxLANGUAGE_MANIPURI, 135). +-define(wxLANGUAGE_MAORI, 136). +-define(wxLANGUAGE_MARATHI, 137). +-define(wxLANGUAGE_MOLDAVIAN, 138). +-define(wxLANGUAGE_MONGOLIAN, 139). +-define(wxLANGUAGE_NAURU, 140). +-define(wxLANGUAGE_NEPALI, 141). +-define(wxLANGUAGE_NEPALI_INDIA, 142). +-define(wxLANGUAGE_NORWEGIAN_BOKMAL, 143). +-define(wxLANGUAGE_NORWEGIAN_NYNORSK, 144). +-define(wxLANGUAGE_OCCITAN, 145). +-define(wxLANGUAGE_ORIYA, 146). +-define(wxLANGUAGE_OROMO, 147). +-define(wxLANGUAGE_PASHTO, 148). +-define(wxLANGUAGE_POLISH, 149). +-define(wxLANGUAGE_PORTUGUESE, 150). +-define(wxLANGUAGE_PORTUGUESE_BRAZILIAN, 151). +-define(wxLANGUAGE_PUNJABI, 152). +-define(wxLANGUAGE_QUECHUA, 153). +-define(wxLANGUAGE_RHAETO_ROMANCE, 154). +-define(wxLANGUAGE_ROMANIAN, 155). +-define(wxLANGUAGE_RUSSIAN, 156). +-define(wxLANGUAGE_RUSSIAN_UKRAINE, 157). +-define(wxLANGUAGE_SAMOAN, 158). +-define(wxLANGUAGE_SANGHO, 159). +-define(wxLANGUAGE_SANSKRIT, 160). +-define(wxLANGUAGE_SCOTS_GAELIC, 161). +-define(wxLANGUAGE_SERBIAN, 162). +-define(wxLANGUAGE_SERBIAN_CYRILLIC, 163). +-define(wxLANGUAGE_SERBIAN_LATIN, 164). +-define(wxLANGUAGE_SERBO_CROATIAN, 165). +-define(wxLANGUAGE_SESOTHO, 166). +-define(wxLANGUAGE_SETSWANA, 167). +-define(wxLANGUAGE_SHONA, 168). +-define(wxLANGUAGE_SINDHI, 169). +-define(wxLANGUAGE_SINHALESE, 170). +-define(wxLANGUAGE_SISWATI, 171). +-define(wxLANGUAGE_SLOVAK, 172). +-define(wxLANGUAGE_SLOVENIAN, 173). +-define(wxLANGUAGE_SOMALI, 174). +-define(wxLANGUAGE_SPANISH, 175). +-define(wxLANGUAGE_SPANISH_ARGENTINA, 176). +-define(wxLANGUAGE_SPANISH_BOLIVIA, 177). +-define(wxLANGUAGE_SPANISH_CHILE, 178). +-define(wxLANGUAGE_SPANISH_COLOMBIA, 179). +-define(wxLANGUAGE_SPANISH_COSTA_RICA, 180). +-define(wxLANGUAGE_SPANISH_DOMINICAN_REPUBLIC, 181). +-define(wxLANGUAGE_SPANISH_ECUADOR, 182). +-define(wxLANGUAGE_SPANISH_EL_SALVADOR, 183). +-define(wxLANGUAGE_SPANISH_GUATEMALA, 184). +-define(wxLANGUAGE_SPANISH_HONDURAS, 185). +-define(wxLANGUAGE_SPANISH_MEXICAN, 186). +-define(wxLANGUAGE_SPANISH_MODERN, 187). +-define(wxLANGUAGE_SPANISH_NICARAGUA, 188). +-define(wxLANGUAGE_SPANISH_PANAMA, 189). +-define(wxLANGUAGE_SPANISH_PARAGUAY, 190). +-define(wxLANGUAGE_SPANISH_PERU, 191). +-define(wxLANGUAGE_SPANISH_PUERTO_RICO, 192). +-define(wxLANGUAGE_SPANISH_URUGUAY, 193). +-define(wxLANGUAGE_SPANISH_US, 194). +-define(wxLANGUAGE_SPANISH_VENEZUELA, 195). +-define(wxLANGUAGE_SUNDANESE, 196). +-define(wxLANGUAGE_SWAHILI, 197). +-define(wxLANGUAGE_SWEDISH, 198). +-define(wxLANGUAGE_SWEDISH_FINLAND, 199). +-define(wxLANGUAGE_TAGALOG, 200). +-define(wxLANGUAGE_TAJIK, 201). +-define(wxLANGUAGE_TAMIL, 202). +-define(wxLANGUAGE_TATAR, 203). +-define(wxLANGUAGE_TELUGU, 204). +-define(wxLANGUAGE_THAI, 205). +-define(wxLANGUAGE_TIBETAN, 206). +-define(wxLANGUAGE_TIGRINYA, 207). +-define(wxLANGUAGE_TONGA, 208). +-define(wxLANGUAGE_TSONGA, 209). +-define(wxLANGUAGE_TURKISH, 210). +-define(wxLANGUAGE_TURKMEN, 211). +-define(wxLANGUAGE_TWI, 212). +-define(wxLANGUAGE_UIGHUR, 213). +-define(wxLANGUAGE_UKRAINIAN, 214). +-define(wxLANGUAGE_URDU, 215). +-define(wxLANGUAGE_URDU_INDIA, 216). +-define(wxLANGUAGE_URDU_PAKISTAN, 217). +-define(wxLANGUAGE_UZBEK, 218). +-define(wxLANGUAGE_UZBEK_CYRILLIC, 219). +-define(wxLANGUAGE_UZBEK_LATIN, 220). +-define(wxLANGUAGE_VIETNAMESE, 221). +-define(wxLANGUAGE_VOLAPUK, 222). +-define(wxLANGUAGE_WELSH, 223). +-define(wxLANGUAGE_WOLOF, 224). +-define(wxLANGUAGE_XHOSA, 225). +-define(wxLANGUAGE_YIDDISH, 226). +-define(wxLANGUAGE_YORUBA, 227). +-define(wxLANGUAGE_ZHUANG, 228). +-define(wxLANGUAGE_ZULU, 229). +-define(wxLANGUAGE_USER_DEFINED, 230). +-define(wxLANGUAGE_VALENCIAN, 536870911). +-define(wxLANGUAGE_SAMI, 536870912). % From "intl.h": wxLayoutDirection -define(wxLayout_Default, 0). -define(wxLayout_LeftToRight, 1). -define(wxLayout_RightToLeft, 2). +% From "intl.h": wxLocaleCategory +-define(wxLOCALE_CAT_NUMBER, 0). +-define(wxLOCALE_CAT_DATE, 1). +-define(wxLOCALE_CAT_MONEY, 2). +-define(wxLOCALE_CAT_MAX, 3). +% From "intl.h": wxLocaleInfo +-define(wxLOCALE_THOUSANDS_SEP, 0). +-define(wxLOCALE_DECIMAL_POINT, 1). +% From "intl.h": wxLocaleInitFlags +-define(wxLOCALE_LOAD_DEFAULT, 1). +-define(wxLOCALE_CONV_ENCODING, 2). % From "layout.h" -define(wxLAYOUT_DEFAULT_MARGIN, 0). % From "layout.h": wxEdge diff --git a/lib/wx/src/gen/wxLocale.erl b/lib/wx/src/gen/wxLocale.erl new file mode 100644 index 0000000000..a1a418bcee --- /dev/null +++ b/lib/wx/src/gen/wxLocale.erl @@ -0,0 +1,278 @@ +%% +%% %CopyrightBegin% +%% +%% Copyright Ericsson AB 2008-2014. All Rights Reserved. +%% +%% The contents of this file are subject to the Erlang Public License, +%% Version 1.1, (the "License"); you may not use this file except in +%% compliance with the License. You should have received a copy of the +%% Erlang Public License along with this software. If not, it can be +%% retrieved online at http://www.erlang.org/. +%% +%% Software distributed under the License is distributed on an "AS IS" +%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See +%% the License for the specific language governing rights and limitations +%% under the License. +%% +%% %CopyrightEnd% +%% This file is generated DO NOT EDIT + +%% @doc See external documentation: <a href="http://www.wxwidgets.org/manuals/2.8.12/wx_wxlocale.html">wxLocale</a>. +%% @type wxLocale(). An object reference, The representation is internal +%% and can be changed without notice. It can't be used for comparsion +%% stored on disc or distributed for use on other nodes. + +-module(wxLocale). +-include("wxe.hrl"). +-export([addCatalog/2,addCatalog/4,addCatalogLookupPathPrefix/1,destroy/1, + getCanonicalName/1,getHeaderValue/2,getHeaderValue/3,getLanguage/1, + getLanguageName/1,getLocale/1,getName/1,getString/2,getString/3,getString/4, + getString/5,getSysName/1,getSystemEncoding/0,getSystemEncodingName/0, + getSystemLanguage/0,init/1,init/2,isLoaded/2,isOk/1,new/0,new/1,new/2]). + +%% inherited exports +-export([parent_class/1]). + +-export_type([wxLocale/0]). +%% @hidden +parent_class(_Class) -> erlang:error({badtype, ?MODULE}). + +-type wxLocale() :: wx:wx_object(). +%% @doc See <a href="http://www.wxwidgets.org/manuals/2.8.12/wx_wxlocale.html#wxlocalewxlocale">external documentation</a>. +-spec new() -> wxLocale(). +new() -> + wxe_util:construct(?wxLocale_new_0, + <<>>). + +%% @equiv new(Language, []) +-spec new(Language) -> wxLocale() when + Language::integer(). + +new(Language) + when is_integer(Language) -> + new(Language, []). + +%% @doc See <a href="http://www.wxwidgets.org/manuals/2.8.12/wx_wxlocale.html#wxlocalewxlocale">external documentation</a>. +-spec new(Language, [Option]) -> wxLocale() when + Language::integer(), + Option :: {flags, integer()}. +new(Language, Options) + when is_integer(Language),is_list(Options) -> + MOpts = fun({flags, Flags}, Acc) -> [<<1:32/?UI,Flags:32/?UI>>|Acc]; + (BadOpt, _) -> erlang:error({badoption, BadOpt}) end, + BinOpt = list_to_binary(lists:foldl(MOpts, [<<0:32>>], Options)), + wxe_util:construct(?wxLocale_new_2, + <<Language:32/?UI, 0:32,BinOpt/binary>>). + +%% @equiv init(This, []) +-spec init(This) -> boolean() when + This::wxLocale(). + +init(This) + when is_record(This, wx_ref) -> + init(This, []). + +%% @doc See <a href="http://www.wxwidgets.org/manuals/2.8.12/wx_wxlocale.html#wxlocaleinit">external documentation</a>. +-spec init(This, [Option]) -> boolean() when + This::wxLocale(), + Option :: {language, integer()} + | {flags, integer()}. +init(#wx_ref{type=ThisT,ref=ThisRef}, Options) + when is_list(Options) -> + ?CLASS(ThisT,wxLocale), + MOpts = fun({language, Language}, Acc) -> [<<1:32/?UI,Language:32/?UI>>|Acc]; + ({flags, Flags}, Acc) -> [<<2:32/?UI,Flags:32/?UI>>|Acc]; + (BadOpt, _) -> erlang:error({badoption, BadOpt}) end, + BinOpt = list_to_binary(lists:foldl(MOpts, [<<0:32>>], Options)), + wxe_util:call(?wxLocale_Init, + <<ThisRef:32/?UI, 0:32,BinOpt/binary>>). + +%% @doc See <a href="http://www.wxwidgets.org/manuals/2.8.12/wx_wxlocale.html#wxlocaleaddcatalog">external documentation</a>. +-spec addCatalog(This, SzDomain) -> boolean() when + This::wxLocale(), SzDomain::unicode:chardata(). +addCatalog(#wx_ref{type=ThisT,ref=ThisRef},SzDomain) + when is_list(SzDomain) -> + ?CLASS(ThisT,wxLocale), + SzDomain_UC = unicode:characters_to_binary([SzDomain,0]), + wxe_util:call(?wxLocale_AddCatalog_1, + <<ThisRef:32/?UI,(byte_size(SzDomain_UC)):32/?UI,(SzDomain_UC)/binary, 0:(((8- ((0+byte_size(SzDomain_UC)) band 16#7)) band 16#7))/unit:8>>). + +%% @doc See <a href="http://www.wxwidgets.org/manuals/2.8.12/wx_wxlocale.html#wxlocaleaddcatalog">external documentation</a>. +%%<br /> MsgIdLanguage = ?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 | ?wxLANGUAGE_VALENCIAN | ?wxLANGUAGE_SAMI +-spec addCatalog(This, SzDomain, MsgIdLanguage, MsgIdCharset) -> boolean() when + This::wxLocale(), SzDomain::unicode:chardata(), MsgIdLanguage::wx:wx_enum(), MsgIdCharset::unicode:chardata(). +addCatalog(#wx_ref{type=ThisT,ref=ThisRef},SzDomain,MsgIdLanguage,MsgIdCharset) + when is_list(SzDomain),is_integer(MsgIdLanguage),is_list(MsgIdCharset) -> + ?CLASS(ThisT,wxLocale), + SzDomain_UC = unicode:characters_to_binary([SzDomain,0]), + MsgIdCharset_UC = unicode:characters_to_binary([MsgIdCharset,0]), + wxe_util:call(?wxLocale_AddCatalog_3, + <<ThisRef:32/?UI,(byte_size(SzDomain_UC)):32/?UI,(SzDomain_UC)/binary, 0:(((8- ((0+byte_size(SzDomain_UC)) band 16#7)) band 16#7))/unit:8,MsgIdLanguage:32/?UI,(byte_size(MsgIdCharset_UC)):32/?UI,(MsgIdCharset_UC)/binary, 0:(((8- ((0+byte_size(MsgIdCharset_UC)) band 16#7)) band 16#7))/unit:8>>). + +%% @doc See <a href="http://www.wxwidgets.org/manuals/2.8.12/wx_wxlocale.html#wxlocaleaddcataloglookuppathprefix">external documentation</a>. +-spec addCatalogLookupPathPrefix(Prefix) -> ok when + Prefix::unicode:chardata(). +addCatalogLookupPathPrefix(Prefix) + when is_list(Prefix) -> + Prefix_UC = unicode:characters_to_binary([Prefix,0]), + wxe_util:cast(?wxLocale_AddCatalogLookupPathPrefix, + <<(byte_size(Prefix_UC)):32/?UI,(Prefix_UC)/binary, 0:(((8- ((4+byte_size(Prefix_UC)) band 16#7)) band 16#7))/unit:8>>). + +%% @doc See <a href="http://www.wxwidgets.org/manuals/2.8.12/wx_wxlocale.html#wxlocalegetcanonicalname">external documentation</a>. +-spec getCanonicalName(This) -> unicode:charlist() when + This::wxLocale(). +getCanonicalName(#wx_ref{type=ThisT,ref=ThisRef}) -> + ?CLASS(ThisT,wxLocale), + wxe_util:call(?wxLocale_GetCanonicalName, + <<ThisRef:32/?UI>>). + +%% @doc See <a href="http://www.wxwidgets.org/manuals/2.8.12/wx_wxlocale.html#wxlocalegetlanguage">external documentation</a>. +-spec getLanguage(This) -> integer() when + This::wxLocale(). +getLanguage(#wx_ref{type=ThisT,ref=ThisRef}) -> + ?CLASS(ThisT,wxLocale), + wxe_util:call(?wxLocale_GetLanguage, + <<ThisRef:32/?UI>>). + +%% @doc See <a href="http://www.wxwidgets.org/manuals/2.8.12/wx_wxlocale.html#wxlocalegetlanguagename">external documentation</a>. +-spec getLanguageName(Lang) -> unicode:charlist() when + Lang::integer(). +getLanguageName(Lang) + when is_integer(Lang) -> + wxe_util:call(?wxLocale_GetLanguageName, + <<Lang:32/?UI>>). + +%% @doc See <a href="http://www.wxwidgets.org/manuals/2.8.12/wx_wxlocale.html#wxlocalegetlocale">external documentation</a>. +-spec getLocale(This) -> unicode:charlist() when + This::wxLocale(). +getLocale(#wx_ref{type=ThisT,ref=ThisRef}) -> + ?CLASS(ThisT,wxLocale), + wxe_util:call(?wxLocale_GetLocale, + <<ThisRef:32/?UI>>). + +%% @doc See <a href="http://www.wxwidgets.org/manuals/2.8.12/wx_wxlocale.html#wxlocalegetname">external documentation</a>. +-spec getName(This) -> unicode:charlist() when + This::wxLocale(). +getName(#wx_ref{type=ThisT,ref=ThisRef}) -> + ?CLASS(ThisT,wxLocale), + wxe_util:call(?wxLocale_GetName, + <<ThisRef:32/?UI>>). + +%% @equiv getString(This,SzOrigString, []) +-spec getString(This, SzOrigString) -> unicode:charlist() when + This::wxLocale(), SzOrigString::unicode:chardata(). + +getString(This,SzOrigString) + when is_record(This, wx_ref),is_list(SzOrigString) -> + getString(This,SzOrigString, []). + +%% @doc See <a href="http://www.wxwidgets.org/manuals/2.8.12/wx_wxlocale.html#wxlocalegetstring">external documentation</a>. +-spec getString(This, SzOrigString, [Option]) -> unicode:charlist() when + This::wxLocale(), SzOrigString::unicode:chardata(), + Option :: {szDomain, unicode:chardata()}. +getString(#wx_ref{type=ThisT,ref=ThisRef},SzOrigString, Options) + when is_list(SzOrigString),is_list(Options) -> + ?CLASS(ThisT,wxLocale), + SzOrigString_UC = unicode:characters_to_binary([SzOrigString,0]), + MOpts = fun({szDomain, SzDomain}, Acc) -> SzDomain_UC = unicode:characters_to_binary([SzDomain,0]),[<<1:32/?UI,(byte_size(SzDomain_UC)):32/?UI,(SzDomain_UC)/binary, 0:(((8- ((0+byte_size(SzDomain_UC)) band 16#7)) band 16#7))/unit:8>>|Acc]; + (BadOpt, _) -> erlang:error({badoption, BadOpt}) end, + BinOpt = list_to_binary(lists:foldl(MOpts, [<<0:32>>], Options)), + wxe_util:call(?wxLocale_GetString_2, + <<ThisRef:32/?UI,(byte_size(SzOrigString_UC)):32/?UI,(SzOrigString_UC)/binary, 0:(((8- ((0+byte_size(SzOrigString_UC)) band 16#7)) band 16#7))/unit:8, BinOpt/binary>>). + +%% @equiv getString(This,SzOrigString,SzOrigString2,N, []) +-spec getString(This, SzOrigString, SzOrigString2, N) -> unicode:charlist() when + This::wxLocale(), SzOrigString::unicode:chardata(), SzOrigString2::unicode:chardata(), N::integer(). + +getString(This,SzOrigString,SzOrigString2,N) + when is_record(This, wx_ref),is_list(SzOrigString),is_list(SzOrigString2),is_integer(N) -> + getString(This,SzOrigString,SzOrigString2,N, []). + +%% @doc See <a href="http://www.wxwidgets.org/manuals/2.8.12/wx_wxlocale.html#wxlocalegetstring">external documentation</a>. +-spec getString(This, SzOrigString, SzOrigString2, N, [Option]) -> unicode:charlist() when + This::wxLocale(), SzOrigString::unicode:chardata(), SzOrigString2::unicode:chardata(), N::integer(), + Option :: {szDomain, unicode:chardata()}. +getString(#wx_ref{type=ThisT,ref=ThisRef},SzOrigString,SzOrigString2,N, Options) + when is_list(SzOrigString),is_list(SzOrigString2),is_integer(N),is_list(Options) -> + ?CLASS(ThisT,wxLocale), + SzOrigString_UC = unicode:characters_to_binary([SzOrigString,0]), + SzOrigString2_UC = unicode:characters_to_binary([SzOrigString2,0]), + MOpts = fun({szDomain, SzDomain}, Acc) -> SzDomain_UC = unicode:characters_to_binary([SzDomain,0]),[<<1:32/?UI,(byte_size(SzDomain_UC)):32/?UI,(SzDomain_UC)/binary, 0:(((8- ((0+byte_size(SzDomain_UC)) band 16#7)) band 16#7))/unit:8>>|Acc]; + (BadOpt, _) -> erlang:error({badoption, BadOpt}) end, + BinOpt = list_to_binary(lists:foldl(MOpts, [<<0:32>>], Options)), + wxe_util:call(?wxLocale_GetString_4, + <<ThisRef:32/?UI,(byte_size(SzOrigString_UC)):32/?UI,(SzOrigString_UC)/binary, 0:(((8- ((0+byte_size(SzOrigString_UC)) band 16#7)) band 16#7))/unit:8,(byte_size(SzOrigString2_UC)):32/?UI,(SzOrigString2_UC)/binary, 0:(((8- ((4+byte_size(SzOrigString2_UC)) band 16#7)) band 16#7))/unit:8,N:32/?UI, 0:32,BinOpt/binary>>). + +%% @equiv getHeaderValue(This,SzHeader, []) +-spec getHeaderValue(This, SzHeader) -> unicode:charlist() when + This::wxLocale(), SzHeader::unicode:chardata(). + +getHeaderValue(This,SzHeader) + when is_record(This, wx_ref),is_list(SzHeader) -> + getHeaderValue(This,SzHeader, []). + +%% @doc See <a href="http://www.wxwidgets.org/manuals/2.8.12/wx_wxlocale.html#wxlocalegetheadervalue">external documentation</a>. +-spec getHeaderValue(This, SzHeader, [Option]) -> unicode:charlist() when + This::wxLocale(), SzHeader::unicode:chardata(), + Option :: {szDomain, unicode:chardata()}. +getHeaderValue(#wx_ref{type=ThisT,ref=ThisRef},SzHeader, Options) + when is_list(SzHeader),is_list(Options) -> + ?CLASS(ThisT,wxLocale), + SzHeader_UC = unicode:characters_to_binary([SzHeader,0]), + MOpts = fun({szDomain, SzDomain}, Acc) -> SzDomain_UC = unicode:characters_to_binary([SzDomain,0]),[<<1:32/?UI,(byte_size(SzDomain_UC)):32/?UI,(SzDomain_UC)/binary, 0:(((8- ((0+byte_size(SzDomain_UC)) band 16#7)) band 16#7))/unit:8>>|Acc]; + (BadOpt, _) -> erlang:error({badoption, BadOpt}) end, + BinOpt = list_to_binary(lists:foldl(MOpts, [<<0:32>>], Options)), + wxe_util:call(?wxLocale_GetHeaderValue, + <<ThisRef:32/?UI,(byte_size(SzHeader_UC)):32/?UI,(SzHeader_UC)/binary, 0:(((8- ((0+byte_size(SzHeader_UC)) band 16#7)) band 16#7))/unit:8, BinOpt/binary>>). + +%% @doc See <a href="http://www.wxwidgets.org/manuals/2.8.12/wx_wxlocale.html#wxlocalegetsysname">external documentation</a>. +-spec getSysName(This) -> unicode:charlist() when + This::wxLocale(). +getSysName(#wx_ref{type=ThisT,ref=ThisRef}) -> + ?CLASS(ThisT,wxLocale), + wxe_util:call(?wxLocale_GetSysName, + <<ThisRef:32/?UI>>). + +%% @doc See <a href="http://www.wxwidgets.org/manuals/2.8.12/wx_wxlocale.html#wxlocalegetsystemencoding">external documentation</a>. +%%<br /> Res = ?wxFONTENCODING_SYSTEM | ?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_KOI8_U | ?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_EUC_JP | ?wxFONTENCODING_UTF16BE | ?wxFONTENCODING_UTF16LE | ?wxFONTENCODING_UTF32BE | ?wxFONTENCODING_UTF32LE | ?wxFONTENCODING_MACROMAN | ?wxFONTENCODING_MACJAPANESE | ?wxFONTENCODING_MACCHINESETRAD | ?wxFONTENCODING_MACKOREAN | ?wxFONTENCODING_MACARABIC | ?wxFONTENCODING_MACHEBREW | ?wxFONTENCODING_MACGREEK | ?wxFONTENCODING_MACCYRILLIC | ?wxFONTENCODING_MACDEVANAGARI | ?wxFONTENCODING_MACGURMUKHI | ?wxFONTENCODING_MACGUJARATI | ?wxFONTENCODING_MACORIYA | ?wxFONTENCODING_MACBENGALI | ?wxFONTENCODING_MACTAMIL | ?wxFONTENCODING_MACTELUGU | ?wxFONTENCODING_MACKANNADA | ?wxFONTENCODING_MACMALAJALAM | ?wxFONTENCODING_MACSINHALESE | ?wxFONTENCODING_MACBURMESE | ?wxFONTENCODING_MACKHMER | ?wxFONTENCODING_MACTHAI | ?wxFONTENCODING_MACLAOTIAN | ?wxFONTENCODING_MACGEORGIAN | ?wxFONTENCODING_MACARMENIAN | ?wxFONTENCODING_MACCHINESESIMP | ?wxFONTENCODING_MACTIBETAN | ?wxFONTENCODING_MACMONGOLIAN | ?wxFONTENCODING_MACETHIOPIC | ?wxFONTENCODING_MACCENTRALEUR | ?wxFONTENCODING_MACVIATNAMESE | ?wxFONTENCODING_MACARABICEXT | ?wxFONTENCODING_MACSYMBOL | ?wxFONTENCODING_MACDINGBATS | ?wxFONTENCODING_MACTURKISH | ?wxFONTENCODING_MACCROATIAN | ?wxFONTENCODING_MACICELANDIC | ?wxFONTENCODING_MACROMANIAN | ?wxFONTENCODING_MACCELTIC | ?wxFONTENCODING_MACGAELIC | ?wxFONTENCODING_MACKEYBOARD | ?wxFONTENCODING_MAX | ?wxFONTENCODING_MACMIN | ?wxFONTENCODING_MACMAX | ?wxFONTENCODING_UTF16 | ?wxFONTENCODING_UTF32 | ?wxFONTENCODING_UNICODE | ?wxFONTENCODING_GB2312 | ?wxFONTENCODING_BIG5 | ?wxFONTENCODING_SHIFT_JIS +-spec getSystemEncoding() -> wx:wx_enum(). +getSystemEncoding() -> + wxe_util:call(?wxLocale_GetSystemEncoding, + <<>>). + +%% @doc See <a href="http://www.wxwidgets.org/manuals/2.8.12/wx_wxlocale.html#wxlocalegetsystemencodingname">external documentation</a>. +-spec getSystemEncodingName() -> unicode:charlist(). +getSystemEncodingName() -> + wxe_util:call(?wxLocale_GetSystemEncodingName, + <<>>). + +%% @doc See <a href="http://www.wxwidgets.org/manuals/2.8.12/wx_wxlocale.html#wxlocalegetsystemlanguage">external documentation</a>. +-spec getSystemLanguage() -> integer(). +getSystemLanguage() -> + wxe_util:call(?wxLocale_GetSystemLanguage, + <<>>). + +%% @doc See <a href="http://www.wxwidgets.org/manuals/2.8.12/wx_wxlocale.html#wxlocaleisloaded">external documentation</a>. +-spec isLoaded(This, SzDomain) -> boolean() when + This::wxLocale(), SzDomain::unicode:chardata(). +isLoaded(#wx_ref{type=ThisT,ref=ThisRef},SzDomain) + when is_list(SzDomain) -> + ?CLASS(ThisT,wxLocale), + SzDomain_UC = unicode:characters_to_binary([SzDomain,0]), + wxe_util:call(?wxLocale_IsLoaded, + <<ThisRef:32/?UI,(byte_size(SzDomain_UC)):32/?UI,(SzDomain_UC)/binary, 0:(((8- ((0+byte_size(SzDomain_UC)) band 16#7)) band 16#7))/unit:8>>). + +%% @doc See <a href="http://www.wxwidgets.org/manuals/2.8.12/wx_wxlocale.html#wxlocaleisok">external documentation</a>. +-spec isOk(This) -> boolean() when + This::wxLocale(). +isOk(#wx_ref{type=ThisT,ref=ThisRef}) -> + ?CLASS(ThisT,wxLocale), + wxe_util:call(?wxLocale_IsOk, + <<ThisRef:32/?UI>>). + +%% @doc Destroys this object, do not use object again +-spec destroy(This::wxLocale()) -> ok. +destroy(Obj=#wx_ref{type=Type}) -> + ?CLASS(Type,wxLocale), + wxe_util:destroy(?wxLocale_destruct,Obj), + ok. diff --git a/lib/wx/src/gen/wx_misc.erl b/lib/wx/src/gen/wx_misc.erl index 96912ce651..397d48b727 100644 --- a/lib/wx/src/gen/wx_misc.erl +++ b/lib/wx/src/gen/wx_misc.erl @@ -1,7 +1,7 @@ %% %% %CopyrightBegin% %% -%% Copyright Ericsson AB 2008-2013. All Rights Reserved. +%% Copyright Ericsson AB 2008-2014. All Rights Reserved. %% %% The contents of this file are subject to the Erlang Public License, %% Version 1.1, (the "License"); you may not use this file except in @@ -30,6 +30,8 @@ launchDefaultBrowser/2,newId/0,registerId/1,setDetectableAutoRepeat/1, shell/0,shell/1,shutdown/1]). +-export([displaySize/0,setCursor/1]). + %% @doc See <a href="http://www.wxwidgets.org/manuals/2.8.12/wx_miscellany.html#wxgetkeystate">external documentation</a>. %%<br /> Key = ?WXK_BACK | ?WXK_TAB | ?WXK_RETURN | ?WXK_ESCAPE | ?WXK_SPACE | ?WXK_DELETE | ?WXK_START | ?WXK_LBUTTON | ?WXK_RBUTTON | ?WXK_CANCEL | ?WXK_MBUTTON | ?WXK_CLEAR | ?WXK_SHIFT | ?WXK_ALT | ?WXK_CONTROL | ?WXK_MENU | ?WXK_PAUSE | ?WXK_CAPITAL | ?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_PAGEUP | ?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 | ?WXK_WINDOWS_LEFT | ?WXK_WINDOWS_RIGHT | ?WXK_WINDOWS_MENU | ?WXK_COMMAND | ?WXK_SPECIAL1 | ?WXK_SPECIAL2 | ?WXK_SPECIAL3 | ?WXK_SPECIAL4 | ?WXK_SPECIAL5 | ?WXK_SPECIAL6 | ?WXK_SPECIAL7 | ?WXK_SPECIAL8 | ?WXK_SPECIAL9 | ?WXK_SPECIAL10 | ?WXK_SPECIAL11 | ?WXK_SPECIAL12 | ?WXK_SPECIAL13 | ?WXK_SPECIAL14 | ?WXK_SPECIAL15 | ?WXK_SPECIAL16 | ?WXK_SPECIAL17 | ?WXK_SPECIAL18 | ?WXK_SPECIAL19 | ?WXK_SPECIAL20 -spec getKeyState(Key) -> boolean() when @@ -224,3 +226,17 @@ isPlatform64Bit() -> wxe_util:call(?utils_wxIsPlatform64Bit, <<>>). +%% @doc See <a href="http://www.wxwidgets.org/manuals/2.8.12/wx_gdicmn.html#gdicmnwxdisplaysize">external documentation</a>. +-spec displaySize() -> {Width::integer(), Height::integer()}. +displaySize() -> + wxe_util:call(?gdicmn_wxDisplaySize, + <<>>). + +%% @doc See <a href="http://www.wxwidgets.org/manuals/2.8.12/wx_gdicmn.html#gdicmnwxsetcursor">external documentation</a>. +-spec setCursor(Cursor) -> ok when + Cursor::wxCursor:wxCursor(). +setCursor(#wx_ref{type=CursorT,ref=CursorRef}) -> + ?CLASS(CursorT,wxCursor), + wxe_util:cast(?gdicmn_wxSetCursor, + <<CursorRef:32/?UI>>). + diff --git a/lib/wx/src/gen/wxe_debug.hrl b/lib/wx/src/gen/wxe_debug.hrl index 1f4f22f704..e208b081e8 100644 --- a/lib/wx/src/gen/wxe_debug.hrl +++ b/lib/wx/src/gen/wxe_debug.hrl @@ -1,7 +1,7 @@ %% %% %CopyrightBegin% %% -%% Copyright Ericsson AB 2008-2013. All Rights Reserved. +%% Copyright Ericsson AB 2008-2014. All Rights Reserved. %% %% The contents of this file are subject to the Erlang Public License, %% Version 1.1, (the "License"); you may not use this file except in @@ -2709,602 +2709,625 @@ wxdebug_table() -> {2924, {utils, getOsDescription, 0}}, {2925, {utils, isPlatformLittleEndian, 0}}, {2926, {utils, isPlatform64Bit, 0}}, - {2927, {wxPrintout, new, 1}}, - {2928, {wxPrintout, destruct, 0}}, - {2929, {wxPrintout, getDC, 0}}, - {2930, {wxPrintout, getPageSizeMM, 2}}, - {2931, {wxPrintout, getPageSizePixels, 2}}, - {2932, {wxPrintout, getPaperRectPixels, 0}}, - {2933, {wxPrintout, getPPIPrinter, 2}}, - {2934, {wxPrintout, getPPIScreen, 2}}, - {2935, {wxPrintout, getTitle, 0}}, - {2936, {wxPrintout, isPreview, 0}}, - {2937, {wxPrintout, fitThisSizeToPaper, 1}}, - {2938, {wxPrintout, fitThisSizeToPage, 1}}, - {2939, {wxPrintout, fitThisSizeToPageMargins, 2}}, - {2940, {wxPrintout, mapScreenSizeToPaper, 0}}, - {2941, {wxPrintout, mapScreenSizeToPage, 0}}, - {2942, {wxPrintout, mapScreenSizeToPageMargins, 1}}, - {2943, {wxPrintout, mapScreenSizeToDevice, 0}}, - {2944, {wxPrintout, getLogicalPaperRect, 0}}, - {2945, {wxPrintout, getLogicalPageRect, 0}}, - {2946, {wxPrintout, getLogicalPageMarginsRect, 1}}, - {2947, {wxPrintout, setLogicalOrigin, 2}}, - {2948, {wxPrintout, offsetLogicalOrigin, 2}}, - {2949, {wxStyledTextCtrl, new_2, 2}}, - {2950, {wxStyledTextCtrl, new_0, 0}}, - {2951, {wxStyledTextCtrl, destruct, 0}}, - {2952, {wxStyledTextCtrl, create, 2}}, - {2953, {wxStyledTextCtrl, addText, 1}}, - {2954, {wxStyledTextCtrl, addStyledText, 1}}, - {2955, {wxStyledTextCtrl, insertText, 2}}, - {2956, {wxStyledTextCtrl, clearAll, 0}}, - {2957, {wxStyledTextCtrl, clearDocumentStyle, 0}}, - {2958, {wxStyledTextCtrl, getLength, 0}}, - {2959, {wxStyledTextCtrl, getCharAt, 1}}, - {2960, {wxStyledTextCtrl, getCurrentPos, 0}}, - {2961, {wxStyledTextCtrl, getAnchor, 0}}, - {2962, {wxStyledTextCtrl, getStyleAt, 1}}, - {2963, {wxStyledTextCtrl, redo, 0}}, - {2964, {wxStyledTextCtrl, setUndoCollection, 1}}, - {2965, {wxStyledTextCtrl, selectAll, 0}}, - {2966, {wxStyledTextCtrl, setSavePoint, 0}}, - {2967, {wxStyledTextCtrl, getStyledText, 2}}, - {2968, {wxStyledTextCtrl, canRedo, 0}}, - {2969, {wxStyledTextCtrl, markerLineFromHandle, 1}}, - {2970, {wxStyledTextCtrl, markerDeleteHandle, 1}}, - {2971, {wxStyledTextCtrl, getUndoCollection, 0}}, - {2972, {wxStyledTextCtrl, getViewWhiteSpace, 0}}, - {2973, {wxStyledTextCtrl, setViewWhiteSpace, 1}}, - {2974, {wxStyledTextCtrl, positionFromPoint, 1}}, - {2975, {wxStyledTextCtrl, positionFromPointClose, 2}}, - {2976, {wxStyledTextCtrl, gotoLine, 1}}, - {2977, {wxStyledTextCtrl, gotoPos, 1}}, - {2978, {wxStyledTextCtrl, setAnchor, 1}}, - {2979, {wxStyledTextCtrl, getCurLine, 1}}, - {2980, {wxStyledTextCtrl, getEndStyled, 0}}, - {2981, {wxStyledTextCtrl, convertEOLs, 1}}, - {2982, {wxStyledTextCtrl, getEOLMode, 0}}, - {2983, {wxStyledTextCtrl, setEOLMode, 1}}, - {2984, {wxStyledTextCtrl, startStyling, 2}}, - {2985, {wxStyledTextCtrl, setStyling, 2}}, - {2986, {wxStyledTextCtrl, getBufferedDraw, 0}}, - {2987, {wxStyledTextCtrl, setBufferedDraw, 1}}, - {2988, {wxStyledTextCtrl, setTabWidth, 1}}, - {2989, {wxStyledTextCtrl, getTabWidth, 0}}, - {2990, {wxStyledTextCtrl, setCodePage, 1}}, - {2991, {wxStyledTextCtrl, markerDefine, 3}}, - {2992, {wxStyledTextCtrl, markerSetForeground, 2}}, - {2993, {wxStyledTextCtrl, markerSetBackground, 2}}, - {2994, {wxStyledTextCtrl, markerAdd, 2}}, - {2995, {wxStyledTextCtrl, markerDelete, 2}}, - {2996, {wxStyledTextCtrl, markerDeleteAll, 1}}, - {2997, {wxStyledTextCtrl, markerGet, 1}}, - {2998, {wxStyledTextCtrl, markerNext, 2}}, - {2999, {wxStyledTextCtrl, markerPrevious, 2}}, - {3000, {wxStyledTextCtrl, markerDefineBitmap, 2}}, - {3001, {wxStyledTextCtrl, markerAddSet, 2}}, - {3002, {wxStyledTextCtrl, markerSetAlpha, 2}}, - {3003, {wxStyledTextCtrl, setMarginType, 2}}, - {3004, {wxStyledTextCtrl, getMarginType, 1}}, - {3005, {wxStyledTextCtrl, setMarginWidth, 2}}, - {3006, {wxStyledTextCtrl, getMarginWidth, 1}}, - {3007, {wxStyledTextCtrl, setMarginMask, 2}}, - {3008, {wxStyledTextCtrl, getMarginMask, 1}}, - {3009, {wxStyledTextCtrl, setMarginSensitive, 2}}, - {3010, {wxStyledTextCtrl, getMarginSensitive, 1}}, - {3011, {wxStyledTextCtrl, styleClearAll, 0}}, - {3012, {wxStyledTextCtrl, styleSetForeground, 2}}, - {3013, {wxStyledTextCtrl, styleSetBackground, 2}}, - {3014, {wxStyledTextCtrl, styleSetBold, 2}}, - {3015, {wxStyledTextCtrl, styleSetItalic, 2}}, - {3016, {wxStyledTextCtrl, styleSetSize, 2}}, - {3017, {wxStyledTextCtrl, styleSetFaceName, 2}}, - {3018, {wxStyledTextCtrl, styleSetEOLFilled, 2}}, - {3019, {wxStyledTextCtrl, styleResetDefault, 0}}, - {3020, {wxStyledTextCtrl, styleSetUnderline, 2}}, - {3021, {wxStyledTextCtrl, styleSetCase, 2}}, - {3022, {wxStyledTextCtrl, styleSetHotSpot, 2}}, - {3023, {wxStyledTextCtrl, setSelForeground, 2}}, - {3024, {wxStyledTextCtrl, setSelBackground, 2}}, - {3025, {wxStyledTextCtrl, getSelAlpha, 0}}, - {3026, {wxStyledTextCtrl, setSelAlpha, 1}}, - {3027, {wxStyledTextCtrl, setCaretForeground, 1}}, - {3028, {wxStyledTextCtrl, cmdKeyAssign, 3}}, - {3029, {wxStyledTextCtrl, cmdKeyClear, 2}}, - {3030, {wxStyledTextCtrl, cmdKeyClearAll, 0}}, - {3031, {wxStyledTextCtrl, setStyleBytes, 2}}, - {3032, {wxStyledTextCtrl, styleSetVisible, 2}}, - {3033, {wxStyledTextCtrl, getCaretPeriod, 0}}, - {3034, {wxStyledTextCtrl, setCaretPeriod, 1}}, - {3035, {wxStyledTextCtrl, setWordChars, 1}}, - {3036, {wxStyledTextCtrl, beginUndoAction, 0}}, - {3037, {wxStyledTextCtrl, endUndoAction, 0}}, - {3038, {wxStyledTextCtrl, indicatorSetStyle, 2}}, - {3039, {wxStyledTextCtrl, indicatorGetStyle, 1}}, - {3040, {wxStyledTextCtrl, indicatorSetForeground, 2}}, - {3041, {wxStyledTextCtrl, indicatorGetForeground, 1}}, - {3042, {wxStyledTextCtrl, setWhitespaceForeground, 2}}, - {3043, {wxStyledTextCtrl, setWhitespaceBackground, 2}}, - {3044, {wxStyledTextCtrl, getStyleBits, 0}}, - {3045, {wxStyledTextCtrl, setLineState, 2}}, - {3046, {wxStyledTextCtrl, getLineState, 1}}, - {3047, {wxStyledTextCtrl, getMaxLineState, 0}}, - {3048, {wxStyledTextCtrl, getCaretLineVisible, 0}}, - {3049, {wxStyledTextCtrl, setCaretLineVisible, 1}}, - {3050, {wxStyledTextCtrl, getCaretLineBackground, 0}}, - {3051, {wxStyledTextCtrl, setCaretLineBackground, 1}}, - {3052, {wxStyledTextCtrl, autoCompShow, 2}}, - {3053, {wxStyledTextCtrl, autoCompCancel, 0}}, - {3054, {wxStyledTextCtrl, autoCompActive, 0}}, - {3055, {wxStyledTextCtrl, autoCompPosStart, 0}}, - {3056, {wxStyledTextCtrl, autoCompComplete, 0}}, - {3057, {wxStyledTextCtrl, autoCompStops, 1}}, - {3058, {wxStyledTextCtrl, autoCompSetSeparator, 1}}, - {3059, {wxStyledTextCtrl, autoCompGetSeparator, 0}}, - {3060, {wxStyledTextCtrl, autoCompSelect, 1}}, - {3061, {wxStyledTextCtrl, autoCompSetCancelAtStart, 1}}, - {3062, {wxStyledTextCtrl, autoCompGetCancelAtStart, 0}}, - {3063, {wxStyledTextCtrl, autoCompSetFillUps, 1}}, - {3064, {wxStyledTextCtrl, autoCompSetChooseSingle, 1}}, - {3065, {wxStyledTextCtrl, autoCompGetChooseSingle, 0}}, - {3066, {wxStyledTextCtrl, autoCompSetIgnoreCase, 1}}, - {3067, {wxStyledTextCtrl, autoCompGetIgnoreCase, 0}}, - {3068, {wxStyledTextCtrl, userListShow, 2}}, - {3069, {wxStyledTextCtrl, autoCompSetAutoHide, 1}}, - {3070, {wxStyledTextCtrl, autoCompGetAutoHide, 0}}, - {3071, {wxStyledTextCtrl, autoCompSetDropRestOfWord, 1}}, - {3072, {wxStyledTextCtrl, autoCompGetDropRestOfWord, 0}}, - {3073, {wxStyledTextCtrl, registerImage, 2}}, - {3074, {wxStyledTextCtrl, clearRegisteredImages, 0}}, - {3075, {wxStyledTextCtrl, autoCompGetTypeSeparator, 0}}, - {3076, {wxStyledTextCtrl, autoCompSetTypeSeparator, 1}}, - {3077, {wxStyledTextCtrl, autoCompSetMaxWidth, 1}}, - {3078, {wxStyledTextCtrl, autoCompGetMaxWidth, 0}}, - {3079, {wxStyledTextCtrl, autoCompSetMaxHeight, 1}}, - {3080, {wxStyledTextCtrl, autoCompGetMaxHeight, 0}}, - {3081, {wxStyledTextCtrl, setIndent, 1}}, - {3082, {wxStyledTextCtrl, getIndent, 0}}, - {3083, {wxStyledTextCtrl, setUseTabs, 1}}, - {3084, {wxStyledTextCtrl, getUseTabs, 0}}, - {3085, {wxStyledTextCtrl, setLineIndentation, 2}}, - {3086, {wxStyledTextCtrl, getLineIndentation, 1}}, - {3087, {wxStyledTextCtrl, getLineIndentPosition, 1}}, - {3088, {wxStyledTextCtrl, getColumn, 1}}, - {3089, {wxStyledTextCtrl, setUseHorizontalScrollBar, 1}}, - {3090, {wxStyledTextCtrl, getUseHorizontalScrollBar, 0}}, - {3091, {wxStyledTextCtrl, setIndentationGuides, 1}}, - {3092, {wxStyledTextCtrl, getIndentationGuides, 0}}, - {3093, {wxStyledTextCtrl, setHighlightGuide, 1}}, - {3094, {wxStyledTextCtrl, getHighlightGuide, 0}}, - {3095, {wxStyledTextCtrl, getLineEndPosition, 1}}, - {3096, {wxStyledTextCtrl, getCodePage, 0}}, - {3097, {wxStyledTextCtrl, getCaretForeground, 0}}, - {3098, {wxStyledTextCtrl, getReadOnly, 0}}, - {3099, {wxStyledTextCtrl, setCurrentPos, 1}}, - {3100, {wxStyledTextCtrl, setSelectionStart, 1}}, - {3101, {wxStyledTextCtrl, getSelectionStart, 0}}, - {3102, {wxStyledTextCtrl, setSelectionEnd, 1}}, - {3103, {wxStyledTextCtrl, getSelectionEnd, 0}}, - {3104, {wxStyledTextCtrl, setPrintMagnification, 1}}, - {3105, {wxStyledTextCtrl, getPrintMagnification, 0}}, - {3106, {wxStyledTextCtrl, setPrintColourMode, 1}}, - {3107, {wxStyledTextCtrl, getPrintColourMode, 0}}, - {3108, {wxStyledTextCtrl, findText, 4}}, - {3109, {wxStyledTextCtrl, formatRange, 7}}, - {3110, {wxStyledTextCtrl, getFirstVisibleLine, 0}}, - {3111, {wxStyledTextCtrl, getLine, 1}}, - {3112, {wxStyledTextCtrl, getLineCount, 0}}, - {3113, {wxStyledTextCtrl, setMarginLeft, 1}}, - {3114, {wxStyledTextCtrl, getMarginLeft, 0}}, - {3115, {wxStyledTextCtrl, setMarginRight, 1}}, - {3116, {wxStyledTextCtrl, getMarginRight, 0}}, - {3117, {wxStyledTextCtrl, getModify, 0}}, - {3118, {wxStyledTextCtrl, setSelection, 2}}, - {3119, {wxStyledTextCtrl, getSelectedText, 0}}, - {3120, {wxStyledTextCtrl, getTextRange, 2}}, - {3121, {wxStyledTextCtrl, hideSelection, 1}}, - {3122, {wxStyledTextCtrl, lineFromPosition, 1}}, - {3123, {wxStyledTextCtrl, positionFromLine, 1}}, - {3124, {wxStyledTextCtrl, lineScroll, 2}}, - {3125, {wxStyledTextCtrl, ensureCaretVisible, 0}}, - {3126, {wxStyledTextCtrl, replaceSelection, 1}}, - {3127, {wxStyledTextCtrl, setReadOnly, 1}}, - {3128, {wxStyledTextCtrl, canPaste, 0}}, - {3129, {wxStyledTextCtrl, canUndo, 0}}, - {3130, {wxStyledTextCtrl, emptyUndoBuffer, 0}}, - {3131, {wxStyledTextCtrl, undo, 0}}, - {3132, {wxStyledTextCtrl, cut, 0}}, - {3133, {wxStyledTextCtrl, copy, 0}}, - {3134, {wxStyledTextCtrl, paste, 0}}, - {3135, {wxStyledTextCtrl, clear, 0}}, - {3136, {wxStyledTextCtrl, setText, 1}}, - {3137, {wxStyledTextCtrl, getText, 0}}, - {3138, {wxStyledTextCtrl, getTextLength, 0}}, - {3139, {wxStyledTextCtrl, getOvertype, 0}}, - {3140, {wxStyledTextCtrl, setCaretWidth, 1}}, - {3141, {wxStyledTextCtrl, getCaretWidth, 0}}, - {3142, {wxStyledTextCtrl, setTargetStart, 1}}, - {3143, {wxStyledTextCtrl, getTargetStart, 0}}, - {3144, {wxStyledTextCtrl, setTargetEnd, 1}}, - {3145, {wxStyledTextCtrl, getTargetEnd, 0}}, - {3146, {wxStyledTextCtrl, replaceTarget, 1}}, - {3147, {wxStyledTextCtrl, searchInTarget, 1}}, - {3148, {wxStyledTextCtrl, setSearchFlags, 1}}, - {3149, {wxStyledTextCtrl, getSearchFlags, 0}}, - {3150, {wxStyledTextCtrl, callTipShow, 2}}, - {3151, {wxStyledTextCtrl, callTipCancel, 0}}, - {3152, {wxStyledTextCtrl, callTipActive, 0}}, - {3153, {wxStyledTextCtrl, callTipPosAtStart, 0}}, - {3154, {wxStyledTextCtrl, callTipSetHighlight, 2}}, - {3155, {wxStyledTextCtrl, callTipSetBackground, 1}}, - {3156, {wxStyledTextCtrl, callTipSetForeground, 1}}, - {3157, {wxStyledTextCtrl, callTipSetForegroundHighlight, 1}}, - {3158, {wxStyledTextCtrl, callTipUseStyle, 1}}, - {3159, {wxStyledTextCtrl, visibleFromDocLine, 1}}, - {3160, {wxStyledTextCtrl, docLineFromVisible, 1}}, - {3161, {wxStyledTextCtrl, wrapCount, 1}}, - {3162, {wxStyledTextCtrl, setFoldLevel, 2}}, - {3163, {wxStyledTextCtrl, getFoldLevel, 1}}, - {3164, {wxStyledTextCtrl, getLastChild, 2}}, - {3165, {wxStyledTextCtrl, getFoldParent, 1}}, - {3166, {wxStyledTextCtrl, showLines, 2}}, - {3167, {wxStyledTextCtrl, hideLines, 2}}, - {3168, {wxStyledTextCtrl, getLineVisible, 1}}, - {3169, {wxStyledTextCtrl, setFoldExpanded, 2}}, - {3170, {wxStyledTextCtrl, getFoldExpanded, 1}}, - {3171, {wxStyledTextCtrl, toggleFold, 1}}, - {3172, {wxStyledTextCtrl, ensureVisible, 1}}, - {3173, {wxStyledTextCtrl, setFoldFlags, 1}}, - {3174, {wxStyledTextCtrl, ensureVisibleEnforcePolicy, 1}}, - {3175, {wxStyledTextCtrl, setTabIndents, 1}}, - {3176, {wxStyledTextCtrl, getTabIndents, 0}}, - {3177, {wxStyledTextCtrl, setBackSpaceUnIndents, 1}}, - {3178, {wxStyledTextCtrl, getBackSpaceUnIndents, 0}}, - {3179, {wxStyledTextCtrl, setMouseDwellTime, 1}}, - {3180, {wxStyledTextCtrl, getMouseDwellTime, 0}}, - {3181, {wxStyledTextCtrl, wordStartPosition, 2}}, - {3182, {wxStyledTextCtrl, wordEndPosition, 2}}, - {3183, {wxStyledTextCtrl, setWrapMode, 1}}, - {3184, {wxStyledTextCtrl, getWrapMode, 0}}, - {3185, {wxStyledTextCtrl, setWrapVisualFlags, 1}}, - {3186, {wxStyledTextCtrl, getWrapVisualFlags, 0}}, - {3187, {wxStyledTextCtrl, setWrapVisualFlagsLocation, 1}}, - {3188, {wxStyledTextCtrl, getWrapVisualFlagsLocation, 0}}, - {3189, {wxStyledTextCtrl, setWrapStartIndent, 1}}, - {3190, {wxStyledTextCtrl, getWrapStartIndent, 0}}, - {3191, {wxStyledTextCtrl, setLayoutCache, 1}}, - {3192, {wxStyledTextCtrl, getLayoutCache, 0}}, - {3193, {wxStyledTextCtrl, setScrollWidth, 1}}, - {3194, {wxStyledTextCtrl, getScrollWidth, 0}}, - {3195, {wxStyledTextCtrl, textWidth, 2}}, - {3196, {wxStyledTextCtrl, getEndAtLastLine, 0}}, - {3197, {wxStyledTextCtrl, textHeight, 1}}, - {3198, {wxStyledTextCtrl, setUseVerticalScrollBar, 1}}, - {3199, {wxStyledTextCtrl, getUseVerticalScrollBar, 0}}, - {3200, {wxStyledTextCtrl, appendText, 1}}, - {3201, {wxStyledTextCtrl, getTwoPhaseDraw, 0}}, - {3202, {wxStyledTextCtrl, setTwoPhaseDraw, 1}}, - {3203, {wxStyledTextCtrl, targetFromSelection, 0}}, - {3204, {wxStyledTextCtrl, linesJoin, 0}}, - {3205, {wxStyledTextCtrl, linesSplit, 1}}, - {3206, {wxStyledTextCtrl, setFoldMarginColour, 2}}, - {3207, {wxStyledTextCtrl, setFoldMarginHiColour, 2}}, - {3208, {wxStyledTextCtrl, lineDown, 0}}, - {3209, {wxStyledTextCtrl, lineDownExtend, 0}}, - {3210, {wxStyledTextCtrl, lineUp, 0}}, - {3211, {wxStyledTextCtrl, lineUpExtend, 0}}, - {3212, {wxStyledTextCtrl, charLeft, 0}}, - {3213, {wxStyledTextCtrl, charLeftExtend, 0}}, - {3214, {wxStyledTextCtrl, charRight, 0}}, - {3215, {wxStyledTextCtrl, charRightExtend, 0}}, - {3216, {wxStyledTextCtrl, wordLeft, 0}}, - {3217, {wxStyledTextCtrl, wordLeftExtend, 0}}, - {3218, {wxStyledTextCtrl, wordRight, 0}}, - {3219, {wxStyledTextCtrl, wordRightExtend, 0}}, - {3220, {wxStyledTextCtrl, home, 0}}, - {3221, {wxStyledTextCtrl, homeExtend, 0}}, - {3222, {wxStyledTextCtrl, lineEnd, 0}}, - {3223, {wxStyledTextCtrl, lineEndExtend, 0}}, - {3224, {wxStyledTextCtrl, documentStart, 0}}, - {3225, {wxStyledTextCtrl, documentStartExtend, 0}}, - {3226, {wxStyledTextCtrl, documentEnd, 0}}, - {3227, {wxStyledTextCtrl, documentEndExtend, 0}}, - {3228, {wxStyledTextCtrl, pageUp, 0}}, - {3229, {wxStyledTextCtrl, pageUpExtend, 0}}, - {3230, {wxStyledTextCtrl, pageDown, 0}}, - {3231, {wxStyledTextCtrl, pageDownExtend, 0}}, - {3232, {wxStyledTextCtrl, editToggleOvertype, 0}}, - {3233, {wxStyledTextCtrl, cancel, 0}}, - {3234, {wxStyledTextCtrl, deleteBack, 0}}, - {3235, {wxStyledTextCtrl, tab, 0}}, - {3236, {wxStyledTextCtrl, backTab, 0}}, - {3237, {wxStyledTextCtrl, newLine, 0}}, - {3238, {wxStyledTextCtrl, formFeed, 0}}, - {3239, {wxStyledTextCtrl, vCHome, 0}}, - {3240, {wxStyledTextCtrl, vCHomeExtend, 0}}, - {3241, {wxStyledTextCtrl, zoomIn, 0}}, - {3242, {wxStyledTextCtrl, zoomOut, 0}}, - {3243, {wxStyledTextCtrl, delWordLeft, 0}}, - {3244, {wxStyledTextCtrl, delWordRight, 0}}, - {3245, {wxStyledTextCtrl, lineCut, 0}}, - {3246, {wxStyledTextCtrl, lineDelete, 0}}, - {3247, {wxStyledTextCtrl, lineTranspose, 0}}, - {3248, {wxStyledTextCtrl, lineDuplicate, 0}}, - {3249, {wxStyledTextCtrl, lowerCase, 0}}, - {3250, {wxStyledTextCtrl, upperCase, 0}}, - {3251, {wxStyledTextCtrl, lineScrollDown, 0}}, - {3252, {wxStyledTextCtrl, lineScrollUp, 0}}, - {3253, {wxStyledTextCtrl, deleteBackNotLine, 0}}, - {3254, {wxStyledTextCtrl, homeDisplay, 0}}, - {3255, {wxStyledTextCtrl, homeDisplayExtend, 0}}, - {3256, {wxStyledTextCtrl, lineEndDisplay, 0}}, - {3257, {wxStyledTextCtrl, lineEndDisplayExtend, 0}}, - {3258, {wxStyledTextCtrl, homeWrapExtend, 0}}, - {3259, {wxStyledTextCtrl, lineEndWrap, 0}}, - {3260, {wxStyledTextCtrl, lineEndWrapExtend, 0}}, - {3261, {wxStyledTextCtrl, vCHomeWrap, 0}}, - {3262, {wxStyledTextCtrl, vCHomeWrapExtend, 0}}, - {3263, {wxStyledTextCtrl, lineCopy, 0}}, - {3264, {wxStyledTextCtrl, moveCaretInsideView, 0}}, - {3265, {wxStyledTextCtrl, lineLength, 1}}, - {3266, {wxStyledTextCtrl, braceHighlight, 2}}, - {3267, {wxStyledTextCtrl, braceBadLight, 1}}, - {3268, {wxStyledTextCtrl, braceMatch, 1}}, - {3269, {wxStyledTextCtrl, getViewEOL, 0}}, - {3270, {wxStyledTextCtrl, setViewEOL, 1}}, - {3271, {wxStyledTextCtrl, setModEventMask, 1}}, - {3272, {wxStyledTextCtrl, getEdgeColumn, 0}}, - {3273, {wxStyledTextCtrl, setEdgeColumn, 1}}, - {3274, {wxStyledTextCtrl, setEdgeMode, 1}}, - {3275, {wxStyledTextCtrl, getEdgeMode, 0}}, - {3276, {wxStyledTextCtrl, getEdgeColour, 0}}, - {3277, {wxStyledTextCtrl, setEdgeColour, 1}}, - {3278, {wxStyledTextCtrl, searchAnchor, 0}}, - {3279, {wxStyledTextCtrl, searchNext, 2}}, - {3280, {wxStyledTextCtrl, searchPrev, 2}}, - {3281, {wxStyledTextCtrl, linesOnScreen, 0}}, - {3282, {wxStyledTextCtrl, usePopUp, 1}}, - {3283, {wxStyledTextCtrl, selectionIsRectangle, 0}}, - {3284, {wxStyledTextCtrl, setZoom, 1}}, - {3285, {wxStyledTextCtrl, getZoom, 0}}, - {3286, {wxStyledTextCtrl, getModEventMask, 0}}, - {3287, {wxStyledTextCtrl, setSTCFocus, 1}}, - {3288, {wxStyledTextCtrl, getSTCFocus, 0}}, - {3289, {wxStyledTextCtrl, setStatus, 1}}, - {3290, {wxStyledTextCtrl, getStatus, 0}}, - {3291, {wxStyledTextCtrl, setMouseDownCaptures, 1}}, - {3292, {wxStyledTextCtrl, getMouseDownCaptures, 0}}, - {3293, {wxStyledTextCtrl, setSTCCursor, 1}}, - {3294, {wxStyledTextCtrl, getSTCCursor, 0}}, - {3295, {wxStyledTextCtrl, setControlCharSymbol, 1}}, - {3296, {wxStyledTextCtrl, getControlCharSymbol, 0}}, - {3297, {wxStyledTextCtrl, wordPartLeft, 0}}, - {3298, {wxStyledTextCtrl, wordPartLeftExtend, 0}}, - {3299, {wxStyledTextCtrl, wordPartRight, 0}}, - {3300, {wxStyledTextCtrl, wordPartRightExtend, 0}}, - {3301, {wxStyledTextCtrl, setVisiblePolicy, 2}}, - {3302, {wxStyledTextCtrl, delLineLeft, 0}}, - {3303, {wxStyledTextCtrl, delLineRight, 0}}, - {3304, {wxStyledTextCtrl, getXOffset, 0}}, - {3305, {wxStyledTextCtrl, chooseCaretX, 0}}, - {3306, {wxStyledTextCtrl, setXCaretPolicy, 2}}, - {3307, {wxStyledTextCtrl, setYCaretPolicy, 2}}, - {3308, {wxStyledTextCtrl, getPrintWrapMode, 0}}, - {3309, {wxStyledTextCtrl, setHotspotActiveForeground, 2}}, - {3310, {wxStyledTextCtrl, setHotspotActiveBackground, 2}}, - {3311, {wxStyledTextCtrl, setHotspotActiveUnderline, 1}}, - {3312, {wxStyledTextCtrl, setHotspotSingleLine, 1}}, - {3313, {wxStyledTextCtrl, paraDownExtend, 0}}, - {3314, {wxStyledTextCtrl, paraUp, 0}}, - {3315, {wxStyledTextCtrl, paraUpExtend, 0}}, - {3316, {wxStyledTextCtrl, positionBefore, 1}}, - {3317, {wxStyledTextCtrl, positionAfter, 1}}, - {3318, {wxStyledTextCtrl, copyRange, 2}}, - {3319, {wxStyledTextCtrl, copyText, 2}}, - {3320, {wxStyledTextCtrl, setSelectionMode, 1}}, - {3321, {wxStyledTextCtrl, getSelectionMode, 0}}, - {3322, {wxStyledTextCtrl, lineDownRectExtend, 0}}, - {3323, {wxStyledTextCtrl, lineUpRectExtend, 0}}, - {3324, {wxStyledTextCtrl, charLeftRectExtend, 0}}, - {3325, {wxStyledTextCtrl, charRightRectExtend, 0}}, - {3326, {wxStyledTextCtrl, homeRectExtend, 0}}, - {3327, {wxStyledTextCtrl, vCHomeRectExtend, 0}}, - {3328, {wxStyledTextCtrl, lineEndRectExtend, 0}}, - {3329, {wxStyledTextCtrl, pageUpRectExtend, 0}}, - {3330, {wxStyledTextCtrl, pageDownRectExtend, 0}}, - {3331, {wxStyledTextCtrl, stutteredPageUp, 0}}, - {3332, {wxStyledTextCtrl, stutteredPageUpExtend, 0}}, - {3333, {wxStyledTextCtrl, stutteredPageDown, 0}}, - {3334, {wxStyledTextCtrl, stutteredPageDownExtend, 0}}, - {3335, {wxStyledTextCtrl, wordLeftEnd, 0}}, - {3336, {wxStyledTextCtrl, wordLeftEndExtend, 0}}, - {3337, {wxStyledTextCtrl, wordRightEnd, 0}}, - {3338, {wxStyledTextCtrl, wordRightEndExtend, 0}}, - {3339, {wxStyledTextCtrl, setWhitespaceChars, 1}}, - {3340, {wxStyledTextCtrl, setCharsDefault, 0}}, - {3341, {wxStyledTextCtrl, autoCompGetCurrent, 0}}, - {3342, {wxStyledTextCtrl, allocate, 1}}, - {3343, {wxStyledTextCtrl, findColumn, 2}}, - {3344, {wxStyledTextCtrl, getCaretSticky, 0}}, - {3345, {wxStyledTextCtrl, setCaretSticky, 1}}, - {3346, {wxStyledTextCtrl, toggleCaretSticky, 0}}, - {3347, {wxStyledTextCtrl, setPasteConvertEndings, 1}}, - {3348, {wxStyledTextCtrl, getPasteConvertEndings, 0}}, - {3349, {wxStyledTextCtrl, selectionDuplicate, 0}}, - {3350, {wxStyledTextCtrl, setCaretLineBackAlpha, 1}}, - {3351, {wxStyledTextCtrl, getCaretLineBackAlpha, 0}}, - {3352, {wxStyledTextCtrl, startRecord, 0}}, - {3353, {wxStyledTextCtrl, stopRecord, 0}}, - {3354, {wxStyledTextCtrl, setLexer, 1}}, - {3355, {wxStyledTextCtrl, getLexer, 0}}, - {3356, {wxStyledTextCtrl, colourise, 2}}, - {3357, {wxStyledTextCtrl, setProperty, 2}}, - {3358, {wxStyledTextCtrl, setKeyWords, 2}}, - {3359, {wxStyledTextCtrl, setLexerLanguage, 1}}, - {3360, {wxStyledTextCtrl, getProperty, 1}}, - {3361, {wxStyledTextCtrl, getStyleBitsNeeded, 0}}, - {3362, {wxStyledTextCtrl, getCurrentLine, 0}}, - {3363, {wxStyledTextCtrl, styleSetSpec, 2}}, - {3364, {wxStyledTextCtrl, styleSetFont, 2}}, - {3365, {wxStyledTextCtrl, styleSetFontAttr, 7}}, - {3366, {wxStyledTextCtrl, styleSetCharacterSet, 2}}, - {3367, {wxStyledTextCtrl, styleSetFontEncoding, 2}}, - {3368, {wxStyledTextCtrl, cmdKeyExecute, 1}}, - {3369, {wxStyledTextCtrl, setMargins, 2}}, - {3370, {wxStyledTextCtrl, getSelection, 2}}, - {3371, {wxStyledTextCtrl, pointFromPosition, 1}}, - {3372, {wxStyledTextCtrl, scrollToLine, 1}}, - {3373, {wxStyledTextCtrl, scrollToColumn, 1}}, - {3374, {wxStyledTextCtrl, setVScrollBar, 1}}, - {3375, {wxStyledTextCtrl, setHScrollBar, 1}}, - {3376, {wxStyledTextCtrl, getLastKeydownProcessed, 0}}, - {3377, {wxStyledTextCtrl, setLastKeydownProcessed, 1}}, - {3378, {wxStyledTextCtrl, saveFile, 1}}, - {3379, {wxStyledTextCtrl, loadFile, 1}}, - {3380, {wxStyledTextCtrl, doDragOver, 3}}, - {3381, {wxStyledTextCtrl, doDropText, 3}}, - {3382, {wxStyledTextCtrl, getUseAntiAliasing, 0}}, - {3383, {wxStyledTextCtrl, addTextRaw, 1}}, - {3384, {wxStyledTextCtrl, insertTextRaw, 2}}, - {3385, {wxStyledTextCtrl, getCurLineRaw, 1}}, - {3386, {wxStyledTextCtrl, getLineRaw, 1}}, - {3387, {wxStyledTextCtrl, getSelectedTextRaw, 0}}, - {3388, {wxStyledTextCtrl, getTextRangeRaw, 2}}, - {3389, {wxStyledTextCtrl, setTextRaw, 1}}, - {3390, {wxStyledTextCtrl, getTextRaw, 0}}, - {3391, {wxStyledTextCtrl, appendTextRaw, 1}}, - {3392, {wxArtProvider, getBitmap, 2}}, - {3393, {wxArtProvider, getIcon, 2}}, - {3394, {wxTreeEvent, getKeyCode, 0}}, - {3395, {wxTreeEvent, getItem, 0}}, - {3396, {wxTreeEvent, getKeyEvent, 0}}, - {3397, {wxTreeEvent, getLabel, 0}}, - {3398, {wxTreeEvent, getOldItem, 0}}, - {3399, {wxTreeEvent, getPoint, 0}}, - {3400, {wxTreeEvent, isEditCancelled, 0}}, - {3401, {wxTreeEvent, setToolTip, 1}}, - {3402, {wxNotebookEvent, getOldSelection, 0}}, - {3403, {wxNotebookEvent, getSelection, 0}}, - {3404, {wxNotebookEvent, setOldSelection, 1}}, - {3405, {wxNotebookEvent, setSelection, 1}}, - {3406, {wxFileDataObject, new, 0}}, - {3407, {wxFileDataObject, addFile, 1}}, - {3408, {wxFileDataObject, getFilenames, 0}}, - {3409, {wxFileDataObject, 'Destroy', undefined}}, - {3410, {wxTextDataObject, new, 1}}, - {3411, {wxTextDataObject, getTextLength, 0}}, - {3412, {wxTextDataObject, getText, 0}}, - {3413, {wxTextDataObject, setText, 1}}, - {3414, {wxTextDataObject, 'Destroy', undefined}}, - {3415, {wxBitmapDataObject, new_1_1, 1}}, - {3416, {wxBitmapDataObject, new_1_0, 1}}, - {3417, {wxBitmapDataObject, getBitmap, 0}}, - {3418, {wxBitmapDataObject, setBitmap, 1}}, - {3419, {wxBitmapDataObject, 'Destroy', undefined}}, - {3421, {wxClipboard, new, 0}}, - {3422, {wxClipboard, destruct, 0}}, - {3423, {wxClipboard, addData, 1}}, - {3424, {wxClipboard, clear, 0}}, - {3425, {wxClipboard, close, 0}}, - {3426, {wxClipboard, flush, 0}}, - {3427, {wxClipboard, getData, 1}}, - {3428, {wxClipboard, isOpened, 0}}, - {3429, {wxClipboard, open, 0}}, - {3430, {wxClipboard, setData, 1}}, - {3432, {wxClipboard, usePrimarySelection, 1}}, - {3433, {wxClipboard, isSupported, 1}}, - {3434, {wxClipboard, get, 0}}, - {3435, {wxSpinEvent, getPosition, 0}}, - {3436, {wxSpinEvent, setPosition, 1}}, - {3437, {wxSplitterWindow, new_0, 0}}, - {3438, {wxSplitterWindow, new_2, 2}}, - {3439, {wxSplitterWindow, destruct, 0}}, - {3440, {wxSplitterWindow, create, 2}}, - {3441, {wxSplitterWindow, getMinimumPaneSize, 0}}, - {3442, {wxSplitterWindow, getSashGravity, 0}}, - {3443, {wxSplitterWindow, getSashPosition, 0}}, - {3444, {wxSplitterWindow, getSplitMode, 0}}, - {3445, {wxSplitterWindow, getWindow1, 0}}, - {3446, {wxSplitterWindow, getWindow2, 0}}, - {3447, {wxSplitterWindow, initialize, 1}}, - {3448, {wxSplitterWindow, isSplit, 0}}, - {3449, {wxSplitterWindow, replaceWindow, 2}}, - {3450, {wxSplitterWindow, setSashGravity, 1}}, - {3451, {wxSplitterWindow, setSashPosition, 2}}, - {3452, {wxSplitterWindow, setSashSize, 1}}, - {3453, {wxSplitterWindow, setMinimumPaneSize, 1}}, - {3454, {wxSplitterWindow, setSplitMode, 1}}, - {3455, {wxSplitterWindow, splitHorizontally, 3}}, - {3456, {wxSplitterWindow, splitVertically, 3}}, - {3457, {wxSplitterWindow, unsplit, 1}}, - {3458, {wxSplitterWindow, updateSize, 0}}, - {3459, {wxSplitterEvent, getSashPosition, 0}}, - {3460, {wxSplitterEvent, getX, 0}}, - {3461, {wxSplitterEvent, getY, 0}}, - {3462, {wxSplitterEvent, getWindowBeingRemoved, 0}}, - {3463, {wxSplitterEvent, setSashPosition, 1}}, - {3464, {wxHtmlWindow, new_0, 0}}, - {3465, {wxHtmlWindow, new_2, 2}}, - {3466, {wxHtmlWindow, appendToPage, 1}}, - {3467, {wxHtmlWindow, getOpenedAnchor, 0}}, - {3468, {wxHtmlWindow, getOpenedPage, 0}}, - {3469, {wxHtmlWindow, getOpenedPageTitle, 0}}, - {3470, {wxHtmlWindow, getRelatedFrame, 0}}, - {3471, {wxHtmlWindow, historyBack, 0}}, - {3472, {wxHtmlWindow, historyCanBack, 0}}, - {3473, {wxHtmlWindow, historyCanForward, 0}}, - {3474, {wxHtmlWindow, historyClear, 0}}, - {3475, {wxHtmlWindow, historyForward, 0}}, - {3476, {wxHtmlWindow, loadFile, 1}}, - {3477, {wxHtmlWindow, loadPage, 1}}, - {3478, {wxHtmlWindow, selectAll, 0}}, - {3479, {wxHtmlWindow, selectionToText, 0}}, - {3480, {wxHtmlWindow, selectLine, 1}}, - {3481, {wxHtmlWindow, selectWord, 1}}, - {3482, {wxHtmlWindow, setBorders, 1}}, - {3483, {wxHtmlWindow, setFonts, 3}}, - {3484, {wxHtmlWindow, setPage, 1}}, - {3485, {wxHtmlWindow, setRelatedFrame, 2}}, - {3486, {wxHtmlWindow, setRelatedStatusBar, 1}}, - {3487, {wxHtmlWindow, toText, 0}}, - {3488, {wxHtmlWindow, 'Destroy', undefined}}, - {3489, {wxHtmlLinkEvent, getLinkInfo, 0}}, - {3490, {wxSystemSettings, getColour, 1}}, - {3491, {wxSystemSettings, getFont, 1}}, - {3492, {wxSystemSettings, getMetric, 2}}, - {3493, {wxSystemSettings, getScreenType, 0}}, - {3494, {wxSystemOptions, getOption, 1}}, - {3495, {wxSystemOptions, getOptionInt, 1}}, - {3496, {wxSystemOptions, hasOption, 1}}, - {3497, {wxSystemOptions, isFalse, 1}}, - {3498, {wxSystemOptions, setOption_2_1, 2}}, - {3499, {wxSystemOptions, setOption_2_0, 2}}, - {3500, {wxAuiNotebookEvent, setSelection, 1}}, - {3501, {wxAuiNotebookEvent, getSelection, 0}}, - {3502, {wxAuiNotebookEvent, setOldSelection, 1}}, - {3503, {wxAuiNotebookEvent, getOldSelection, 0}}, - {3504, {wxAuiNotebookEvent, setDragSource, 1}}, - {3505, {wxAuiNotebookEvent, getDragSource, 0}}, - {3506, {wxAuiManagerEvent, setManager, 1}}, - {3507, {wxAuiManagerEvent, getManager, 0}}, - {3508, {wxAuiManagerEvent, setPane, 1}}, - {3509, {wxAuiManagerEvent, getPane, 0}}, - {3510, {wxAuiManagerEvent, setButton, 1}}, - {3511, {wxAuiManagerEvent, getButton, 0}}, - {3512, {wxAuiManagerEvent, setDC, 1}}, - {3513, {wxAuiManagerEvent, getDC, 0}}, - {3514, {wxAuiManagerEvent, veto, 1}}, - {3515, {wxAuiManagerEvent, getVeto, 0}}, - {3516, {wxAuiManagerEvent, setCanVeto, 1}}, - {3517, {wxAuiManagerEvent, canVeto, 0}}, - {3518, {wxLogNull, new, 0}}, - {3519, {wxLogNull, 'Destroy', undefined}}, - {3520, {wxTaskBarIcon, new, 0}}, - {3521, {wxTaskBarIcon, destruct, 0}}, - {3522, {wxTaskBarIcon, popupMenu, 1}}, - {3523, {wxTaskBarIcon, removeIcon, 0}}, - {3524, {wxTaskBarIcon, setIcon, 2}}, + {2927, {gdicmn, displaySize, 2}}, + {2928, {gdicmn, setCursor, 1}}, + {2929, {wxPrintout, new, 1}}, + {2930, {wxPrintout, destruct, 0}}, + {2931, {wxPrintout, getDC, 0}}, + {2932, {wxPrintout, getPageSizeMM, 2}}, + {2933, {wxPrintout, getPageSizePixels, 2}}, + {2934, {wxPrintout, getPaperRectPixels, 0}}, + {2935, {wxPrintout, getPPIPrinter, 2}}, + {2936, {wxPrintout, getPPIScreen, 2}}, + {2937, {wxPrintout, getTitle, 0}}, + {2938, {wxPrintout, isPreview, 0}}, + {2939, {wxPrintout, fitThisSizeToPaper, 1}}, + {2940, {wxPrintout, fitThisSizeToPage, 1}}, + {2941, {wxPrintout, fitThisSizeToPageMargins, 2}}, + {2942, {wxPrintout, mapScreenSizeToPaper, 0}}, + {2943, {wxPrintout, mapScreenSizeToPage, 0}}, + {2944, {wxPrintout, mapScreenSizeToPageMargins, 1}}, + {2945, {wxPrintout, mapScreenSizeToDevice, 0}}, + {2946, {wxPrintout, getLogicalPaperRect, 0}}, + {2947, {wxPrintout, getLogicalPageRect, 0}}, + {2948, {wxPrintout, getLogicalPageMarginsRect, 1}}, + {2949, {wxPrintout, setLogicalOrigin, 2}}, + {2950, {wxPrintout, offsetLogicalOrigin, 2}}, + {2951, {wxStyledTextCtrl, new_2, 2}}, + {2952, {wxStyledTextCtrl, new_0, 0}}, + {2953, {wxStyledTextCtrl, destruct, 0}}, + {2954, {wxStyledTextCtrl, create, 2}}, + {2955, {wxStyledTextCtrl, addText, 1}}, + {2956, {wxStyledTextCtrl, addStyledText, 1}}, + {2957, {wxStyledTextCtrl, insertText, 2}}, + {2958, {wxStyledTextCtrl, clearAll, 0}}, + {2959, {wxStyledTextCtrl, clearDocumentStyle, 0}}, + {2960, {wxStyledTextCtrl, getLength, 0}}, + {2961, {wxStyledTextCtrl, getCharAt, 1}}, + {2962, {wxStyledTextCtrl, getCurrentPos, 0}}, + {2963, {wxStyledTextCtrl, getAnchor, 0}}, + {2964, {wxStyledTextCtrl, getStyleAt, 1}}, + {2965, {wxStyledTextCtrl, redo, 0}}, + {2966, {wxStyledTextCtrl, setUndoCollection, 1}}, + {2967, {wxStyledTextCtrl, selectAll, 0}}, + {2968, {wxStyledTextCtrl, setSavePoint, 0}}, + {2969, {wxStyledTextCtrl, getStyledText, 2}}, + {2970, {wxStyledTextCtrl, canRedo, 0}}, + {2971, {wxStyledTextCtrl, markerLineFromHandle, 1}}, + {2972, {wxStyledTextCtrl, markerDeleteHandle, 1}}, + {2973, {wxStyledTextCtrl, getUndoCollection, 0}}, + {2974, {wxStyledTextCtrl, getViewWhiteSpace, 0}}, + {2975, {wxStyledTextCtrl, setViewWhiteSpace, 1}}, + {2976, {wxStyledTextCtrl, positionFromPoint, 1}}, + {2977, {wxStyledTextCtrl, positionFromPointClose, 2}}, + {2978, {wxStyledTextCtrl, gotoLine, 1}}, + {2979, {wxStyledTextCtrl, gotoPos, 1}}, + {2980, {wxStyledTextCtrl, setAnchor, 1}}, + {2981, {wxStyledTextCtrl, getCurLine, 1}}, + {2982, {wxStyledTextCtrl, getEndStyled, 0}}, + {2983, {wxStyledTextCtrl, convertEOLs, 1}}, + {2984, {wxStyledTextCtrl, getEOLMode, 0}}, + {2985, {wxStyledTextCtrl, setEOLMode, 1}}, + {2986, {wxStyledTextCtrl, startStyling, 2}}, + {2987, {wxStyledTextCtrl, setStyling, 2}}, + {2988, {wxStyledTextCtrl, getBufferedDraw, 0}}, + {2989, {wxStyledTextCtrl, setBufferedDraw, 1}}, + {2990, {wxStyledTextCtrl, setTabWidth, 1}}, + {2991, {wxStyledTextCtrl, getTabWidth, 0}}, + {2992, {wxStyledTextCtrl, setCodePage, 1}}, + {2993, {wxStyledTextCtrl, markerDefine, 3}}, + {2994, {wxStyledTextCtrl, markerSetForeground, 2}}, + {2995, {wxStyledTextCtrl, markerSetBackground, 2}}, + {2996, {wxStyledTextCtrl, markerAdd, 2}}, + {2997, {wxStyledTextCtrl, markerDelete, 2}}, + {2998, {wxStyledTextCtrl, markerDeleteAll, 1}}, + {2999, {wxStyledTextCtrl, markerGet, 1}}, + {3000, {wxStyledTextCtrl, markerNext, 2}}, + {3001, {wxStyledTextCtrl, markerPrevious, 2}}, + {3002, {wxStyledTextCtrl, markerDefineBitmap, 2}}, + {3003, {wxStyledTextCtrl, markerAddSet, 2}}, + {3004, {wxStyledTextCtrl, markerSetAlpha, 2}}, + {3005, {wxStyledTextCtrl, setMarginType, 2}}, + {3006, {wxStyledTextCtrl, getMarginType, 1}}, + {3007, {wxStyledTextCtrl, setMarginWidth, 2}}, + {3008, {wxStyledTextCtrl, getMarginWidth, 1}}, + {3009, {wxStyledTextCtrl, setMarginMask, 2}}, + {3010, {wxStyledTextCtrl, getMarginMask, 1}}, + {3011, {wxStyledTextCtrl, setMarginSensitive, 2}}, + {3012, {wxStyledTextCtrl, getMarginSensitive, 1}}, + {3013, {wxStyledTextCtrl, styleClearAll, 0}}, + {3014, {wxStyledTextCtrl, styleSetForeground, 2}}, + {3015, {wxStyledTextCtrl, styleSetBackground, 2}}, + {3016, {wxStyledTextCtrl, styleSetBold, 2}}, + {3017, {wxStyledTextCtrl, styleSetItalic, 2}}, + {3018, {wxStyledTextCtrl, styleSetSize, 2}}, + {3019, {wxStyledTextCtrl, styleSetFaceName, 2}}, + {3020, {wxStyledTextCtrl, styleSetEOLFilled, 2}}, + {3021, {wxStyledTextCtrl, styleResetDefault, 0}}, + {3022, {wxStyledTextCtrl, styleSetUnderline, 2}}, + {3023, {wxStyledTextCtrl, styleSetCase, 2}}, + {3024, {wxStyledTextCtrl, styleSetHotSpot, 2}}, + {3025, {wxStyledTextCtrl, setSelForeground, 2}}, + {3026, {wxStyledTextCtrl, setSelBackground, 2}}, + {3027, {wxStyledTextCtrl, getSelAlpha, 0}}, + {3028, {wxStyledTextCtrl, setSelAlpha, 1}}, + {3029, {wxStyledTextCtrl, setCaretForeground, 1}}, + {3030, {wxStyledTextCtrl, cmdKeyAssign, 3}}, + {3031, {wxStyledTextCtrl, cmdKeyClear, 2}}, + {3032, {wxStyledTextCtrl, cmdKeyClearAll, 0}}, + {3033, {wxStyledTextCtrl, setStyleBytes, 2}}, + {3034, {wxStyledTextCtrl, styleSetVisible, 2}}, + {3035, {wxStyledTextCtrl, getCaretPeriod, 0}}, + {3036, {wxStyledTextCtrl, setCaretPeriod, 1}}, + {3037, {wxStyledTextCtrl, setWordChars, 1}}, + {3038, {wxStyledTextCtrl, beginUndoAction, 0}}, + {3039, {wxStyledTextCtrl, endUndoAction, 0}}, + {3040, {wxStyledTextCtrl, indicatorSetStyle, 2}}, + {3041, {wxStyledTextCtrl, indicatorGetStyle, 1}}, + {3042, {wxStyledTextCtrl, indicatorSetForeground, 2}}, + {3043, {wxStyledTextCtrl, indicatorGetForeground, 1}}, + {3044, {wxStyledTextCtrl, setWhitespaceForeground, 2}}, + {3045, {wxStyledTextCtrl, setWhitespaceBackground, 2}}, + {3046, {wxStyledTextCtrl, getStyleBits, 0}}, + {3047, {wxStyledTextCtrl, setLineState, 2}}, + {3048, {wxStyledTextCtrl, getLineState, 1}}, + {3049, {wxStyledTextCtrl, getMaxLineState, 0}}, + {3050, {wxStyledTextCtrl, getCaretLineVisible, 0}}, + {3051, {wxStyledTextCtrl, setCaretLineVisible, 1}}, + {3052, {wxStyledTextCtrl, getCaretLineBackground, 0}}, + {3053, {wxStyledTextCtrl, setCaretLineBackground, 1}}, + {3054, {wxStyledTextCtrl, autoCompShow, 2}}, + {3055, {wxStyledTextCtrl, autoCompCancel, 0}}, + {3056, {wxStyledTextCtrl, autoCompActive, 0}}, + {3057, {wxStyledTextCtrl, autoCompPosStart, 0}}, + {3058, {wxStyledTextCtrl, autoCompComplete, 0}}, + {3059, {wxStyledTextCtrl, autoCompStops, 1}}, + {3060, {wxStyledTextCtrl, autoCompSetSeparator, 1}}, + {3061, {wxStyledTextCtrl, autoCompGetSeparator, 0}}, + {3062, {wxStyledTextCtrl, autoCompSelect, 1}}, + {3063, {wxStyledTextCtrl, autoCompSetCancelAtStart, 1}}, + {3064, {wxStyledTextCtrl, autoCompGetCancelAtStart, 0}}, + {3065, {wxStyledTextCtrl, autoCompSetFillUps, 1}}, + {3066, {wxStyledTextCtrl, autoCompSetChooseSingle, 1}}, + {3067, {wxStyledTextCtrl, autoCompGetChooseSingle, 0}}, + {3068, {wxStyledTextCtrl, autoCompSetIgnoreCase, 1}}, + {3069, {wxStyledTextCtrl, autoCompGetIgnoreCase, 0}}, + {3070, {wxStyledTextCtrl, userListShow, 2}}, + {3071, {wxStyledTextCtrl, autoCompSetAutoHide, 1}}, + {3072, {wxStyledTextCtrl, autoCompGetAutoHide, 0}}, + {3073, {wxStyledTextCtrl, autoCompSetDropRestOfWord, 1}}, + {3074, {wxStyledTextCtrl, autoCompGetDropRestOfWord, 0}}, + {3075, {wxStyledTextCtrl, registerImage, 2}}, + {3076, {wxStyledTextCtrl, clearRegisteredImages, 0}}, + {3077, {wxStyledTextCtrl, autoCompGetTypeSeparator, 0}}, + {3078, {wxStyledTextCtrl, autoCompSetTypeSeparator, 1}}, + {3079, {wxStyledTextCtrl, autoCompSetMaxWidth, 1}}, + {3080, {wxStyledTextCtrl, autoCompGetMaxWidth, 0}}, + {3081, {wxStyledTextCtrl, autoCompSetMaxHeight, 1}}, + {3082, {wxStyledTextCtrl, autoCompGetMaxHeight, 0}}, + {3083, {wxStyledTextCtrl, setIndent, 1}}, + {3084, {wxStyledTextCtrl, getIndent, 0}}, + {3085, {wxStyledTextCtrl, setUseTabs, 1}}, + {3086, {wxStyledTextCtrl, getUseTabs, 0}}, + {3087, {wxStyledTextCtrl, setLineIndentation, 2}}, + {3088, {wxStyledTextCtrl, getLineIndentation, 1}}, + {3089, {wxStyledTextCtrl, getLineIndentPosition, 1}}, + {3090, {wxStyledTextCtrl, getColumn, 1}}, + {3091, {wxStyledTextCtrl, setUseHorizontalScrollBar, 1}}, + {3092, {wxStyledTextCtrl, getUseHorizontalScrollBar, 0}}, + {3093, {wxStyledTextCtrl, setIndentationGuides, 1}}, + {3094, {wxStyledTextCtrl, getIndentationGuides, 0}}, + {3095, {wxStyledTextCtrl, setHighlightGuide, 1}}, + {3096, {wxStyledTextCtrl, getHighlightGuide, 0}}, + {3097, {wxStyledTextCtrl, getLineEndPosition, 1}}, + {3098, {wxStyledTextCtrl, getCodePage, 0}}, + {3099, {wxStyledTextCtrl, getCaretForeground, 0}}, + {3100, {wxStyledTextCtrl, getReadOnly, 0}}, + {3101, {wxStyledTextCtrl, setCurrentPos, 1}}, + {3102, {wxStyledTextCtrl, setSelectionStart, 1}}, + {3103, {wxStyledTextCtrl, getSelectionStart, 0}}, + {3104, {wxStyledTextCtrl, setSelectionEnd, 1}}, + {3105, {wxStyledTextCtrl, getSelectionEnd, 0}}, + {3106, {wxStyledTextCtrl, setPrintMagnification, 1}}, + {3107, {wxStyledTextCtrl, getPrintMagnification, 0}}, + {3108, {wxStyledTextCtrl, setPrintColourMode, 1}}, + {3109, {wxStyledTextCtrl, getPrintColourMode, 0}}, + {3110, {wxStyledTextCtrl, findText, 4}}, + {3111, {wxStyledTextCtrl, formatRange, 7}}, + {3112, {wxStyledTextCtrl, getFirstVisibleLine, 0}}, + {3113, {wxStyledTextCtrl, getLine, 1}}, + {3114, {wxStyledTextCtrl, getLineCount, 0}}, + {3115, {wxStyledTextCtrl, setMarginLeft, 1}}, + {3116, {wxStyledTextCtrl, getMarginLeft, 0}}, + {3117, {wxStyledTextCtrl, setMarginRight, 1}}, + {3118, {wxStyledTextCtrl, getMarginRight, 0}}, + {3119, {wxStyledTextCtrl, getModify, 0}}, + {3120, {wxStyledTextCtrl, setSelection, 2}}, + {3121, {wxStyledTextCtrl, getSelectedText, 0}}, + {3122, {wxStyledTextCtrl, getTextRange, 2}}, + {3123, {wxStyledTextCtrl, hideSelection, 1}}, + {3124, {wxStyledTextCtrl, lineFromPosition, 1}}, + {3125, {wxStyledTextCtrl, positionFromLine, 1}}, + {3126, {wxStyledTextCtrl, lineScroll, 2}}, + {3127, {wxStyledTextCtrl, ensureCaretVisible, 0}}, + {3128, {wxStyledTextCtrl, replaceSelection, 1}}, + {3129, {wxStyledTextCtrl, setReadOnly, 1}}, + {3130, {wxStyledTextCtrl, canPaste, 0}}, + {3131, {wxStyledTextCtrl, canUndo, 0}}, + {3132, {wxStyledTextCtrl, emptyUndoBuffer, 0}}, + {3133, {wxStyledTextCtrl, undo, 0}}, + {3134, {wxStyledTextCtrl, cut, 0}}, + {3135, {wxStyledTextCtrl, copy, 0}}, + {3136, {wxStyledTextCtrl, paste, 0}}, + {3137, {wxStyledTextCtrl, clear, 0}}, + {3138, {wxStyledTextCtrl, setText, 1}}, + {3139, {wxStyledTextCtrl, getText, 0}}, + {3140, {wxStyledTextCtrl, getTextLength, 0}}, + {3141, {wxStyledTextCtrl, getOvertype, 0}}, + {3142, {wxStyledTextCtrl, setCaretWidth, 1}}, + {3143, {wxStyledTextCtrl, getCaretWidth, 0}}, + {3144, {wxStyledTextCtrl, setTargetStart, 1}}, + {3145, {wxStyledTextCtrl, getTargetStart, 0}}, + {3146, {wxStyledTextCtrl, setTargetEnd, 1}}, + {3147, {wxStyledTextCtrl, getTargetEnd, 0}}, + {3148, {wxStyledTextCtrl, replaceTarget, 1}}, + {3149, {wxStyledTextCtrl, searchInTarget, 1}}, + {3150, {wxStyledTextCtrl, setSearchFlags, 1}}, + {3151, {wxStyledTextCtrl, getSearchFlags, 0}}, + {3152, {wxStyledTextCtrl, callTipShow, 2}}, + {3153, {wxStyledTextCtrl, callTipCancel, 0}}, + {3154, {wxStyledTextCtrl, callTipActive, 0}}, + {3155, {wxStyledTextCtrl, callTipPosAtStart, 0}}, + {3156, {wxStyledTextCtrl, callTipSetHighlight, 2}}, + {3157, {wxStyledTextCtrl, callTipSetBackground, 1}}, + {3158, {wxStyledTextCtrl, callTipSetForeground, 1}}, + {3159, {wxStyledTextCtrl, callTipSetForegroundHighlight, 1}}, + {3160, {wxStyledTextCtrl, callTipUseStyle, 1}}, + {3161, {wxStyledTextCtrl, visibleFromDocLine, 1}}, + {3162, {wxStyledTextCtrl, docLineFromVisible, 1}}, + {3163, {wxStyledTextCtrl, wrapCount, 1}}, + {3164, {wxStyledTextCtrl, setFoldLevel, 2}}, + {3165, {wxStyledTextCtrl, getFoldLevel, 1}}, + {3166, {wxStyledTextCtrl, getLastChild, 2}}, + {3167, {wxStyledTextCtrl, getFoldParent, 1}}, + {3168, {wxStyledTextCtrl, showLines, 2}}, + {3169, {wxStyledTextCtrl, hideLines, 2}}, + {3170, {wxStyledTextCtrl, getLineVisible, 1}}, + {3171, {wxStyledTextCtrl, setFoldExpanded, 2}}, + {3172, {wxStyledTextCtrl, getFoldExpanded, 1}}, + {3173, {wxStyledTextCtrl, toggleFold, 1}}, + {3174, {wxStyledTextCtrl, ensureVisible, 1}}, + {3175, {wxStyledTextCtrl, setFoldFlags, 1}}, + {3176, {wxStyledTextCtrl, ensureVisibleEnforcePolicy, 1}}, + {3177, {wxStyledTextCtrl, setTabIndents, 1}}, + {3178, {wxStyledTextCtrl, getTabIndents, 0}}, + {3179, {wxStyledTextCtrl, setBackSpaceUnIndents, 1}}, + {3180, {wxStyledTextCtrl, getBackSpaceUnIndents, 0}}, + {3181, {wxStyledTextCtrl, setMouseDwellTime, 1}}, + {3182, {wxStyledTextCtrl, getMouseDwellTime, 0}}, + {3183, {wxStyledTextCtrl, wordStartPosition, 2}}, + {3184, {wxStyledTextCtrl, wordEndPosition, 2}}, + {3185, {wxStyledTextCtrl, setWrapMode, 1}}, + {3186, {wxStyledTextCtrl, getWrapMode, 0}}, + {3187, {wxStyledTextCtrl, setWrapVisualFlags, 1}}, + {3188, {wxStyledTextCtrl, getWrapVisualFlags, 0}}, + {3189, {wxStyledTextCtrl, setWrapVisualFlagsLocation, 1}}, + {3190, {wxStyledTextCtrl, getWrapVisualFlagsLocation, 0}}, + {3191, {wxStyledTextCtrl, setWrapStartIndent, 1}}, + {3192, {wxStyledTextCtrl, getWrapStartIndent, 0}}, + {3193, {wxStyledTextCtrl, setLayoutCache, 1}}, + {3194, {wxStyledTextCtrl, getLayoutCache, 0}}, + {3195, {wxStyledTextCtrl, setScrollWidth, 1}}, + {3196, {wxStyledTextCtrl, getScrollWidth, 0}}, + {3197, {wxStyledTextCtrl, textWidth, 2}}, + {3198, {wxStyledTextCtrl, getEndAtLastLine, 0}}, + {3199, {wxStyledTextCtrl, textHeight, 1}}, + {3200, {wxStyledTextCtrl, setUseVerticalScrollBar, 1}}, + {3201, {wxStyledTextCtrl, getUseVerticalScrollBar, 0}}, + {3202, {wxStyledTextCtrl, appendText, 1}}, + {3203, {wxStyledTextCtrl, getTwoPhaseDraw, 0}}, + {3204, {wxStyledTextCtrl, setTwoPhaseDraw, 1}}, + {3205, {wxStyledTextCtrl, targetFromSelection, 0}}, + {3206, {wxStyledTextCtrl, linesJoin, 0}}, + {3207, {wxStyledTextCtrl, linesSplit, 1}}, + {3208, {wxStyledTextCtrl, setFoldMarginColour, 2}}, + {3209, {wxStyledTextCtrl, setFoldMarginHiColour, 2}}, + {3210, {wxStyledTextCtrl, lineDown, 0}}, + {3211, {wxStyledTextCtrl, lineDownExtend, 0}}, + {3212, {wxStyledTextCtrl, lineUp, 0}}, + {3213, {wxStyledTextCtrl, lineUpExtend, 0}}, + {3214, {wxStyledTextCtrl, charLeft, 0}}, + {3215, {wxStyledTextCtrl, charLeftExtend, 0}}, + {3216, {wxStyledTextCtrl, charRight, 0}}, + {3217, {wxStyledTextCtrl, charRightExtend, 0}}, + {3218, {wxStyledTextCtrl, wordLeft, 0}}, + {3219, {wxStyledTextCtrl, wordLeftExtend, 0}}, + {3220, {wxStyledTextCtrl, wordRight, 0}}, + {3221, {wxStyledTextCtrl, wordRightExtend, 0}}, + {3222, {wxStyledTextCtrl, home, 0}}, + {3223, {wxStyledTextCtrl, homeExtend, 0}}, + {3224, {wxStyledTextCtrl, lineEnd, 0}}, + {3225, {wxStyledTextCtrl, lineEndExtend, 0}}, + {3226, {wxStyledTextCtrl, documentStart, 0}}, + {3227, {wxStyledTextCtrl, documentStartExtend, 0}}, + {3228, {wxStyledTextCtrl, documentEnd, 0}}, + {3229, {wxStyledTextCtrl, documentEndExtend, 0}}, + {3230, {wxStyledTextCtrl, pageUp, 0}}, + {3231, {wxStyledTextCtrl, pageUpExtend, 0}}, + {3232, {wxStyledTextCtrl, pageDown, 0}}, + {3233, {wxStyledTextCtrl, pageDownExtend, 0}}, + {3234, {wxStyledTextCtrl, editToggleOvertype, 0}}, + {3235, {wxStyledTextCtrl, cancel, 0}}, + {3236, {wxStyledTextCtrl, deleteBack, 0}}, + {3237, {wxStyledTextCtrl, tab, 0}}, + {3238, {wxStyledTextCtrl, backTab, 0}}, + {3239, {wxStyledTextCtrl, newLine, 0}}, + {3240, {wxStyledTextCtrl, formFeed, 0}}, + {3241, {wxStyledTextCtrl, vCHome, 0}}, + {3242, {wxStyledTextCtrl, vCHomeExtend, 0}}, + {3243, {wxStyledTextCtrl, zoomIn, 0}}, + {3244, {wxStyledTextCtrl, zoomOut, 0}}, + {3245, {wxStyledTextCtrl, delWordLeft, 0}}, + {3246, {wxStyledTextCtrl, delWordRight, 0}}, + {3247, {wxStyledTextCtrl, lineCut, 0}}, + {3248, {wxStyledTextCtrl, lineDelete, 0}}, + {3249, {wxStyledTextCtrl, lineTranspose, 0}}, + {3250, {wxStyledTextCtrl, lineDuplicate, 0}}, + {3251, {wxStyledTextCtrl, lowerCase, 0}}, + {3252, {wxStyledTextCtrl, upperCase, 0}}, + {3253, {wxStyledTextCtrl, lineScrollDown, 0}}, + {3254, {wxStyledTextCtrl, lineScrollUp, 0}}, + {3255, {wxStyledTextCtrl, deleteBackNotLine, 0}}, + {3256, {wxStyledTextCtrl, homeDisplay, 0}}, + {3257, {wxStyledTextCtrl, homeDisplayExtend, 0}}, + {3258, {wxStyledTextCtrl, lineEndDisplay, 0}}, + {3259, {wxStyledTextCtrl, lineEndDisplayExtend, 0}}, + {3260, {wxStyledTextCtrl, homeWrapExtend, 0}}, + {3261, {wxStyledTextCtrl, lineEndWrap, 0}}, + {3262, {wxStyledTextCtrl, lineEndWrapExtend, 0}}, + {3263, {wxStyledTextCtrl, vCHomeWrap, 0}}, + {3264, {wxStyledTextCtrl, vCHomeWrapExtend, 0}}, + {3265, {wxStyledTextCtrl, lineCopy, 0}}, + {3266, {wxStyledTextCtrl, moveCaretInsideView, 0}}, + {3267, {wxStyledTextCtrl, lineLength, 1}}, + {3268, {wxStyledTextCtrl, braceHighlight, 2}}, + {3269, {wxStyledTextCtrl, braceBadLight, 1}}, + {3270, {wxStyledTextCtrl, braceMatch, 1}}, + {3271, {wxStyledTextCtrl, getViewEOL, 0}}, + {3272, {wxStyledTextCtrl, setViewEOL, 1}}, + {3273, {wxStyledTextCtrl, setModEventMask, 1}}, + {3274, {wxStyledTextCtrl, getEdgeColumn, 0}}, + {3275, {wxStyledTextCtrl, setEdgeColumn, 1}}, + {3276, {wxStyledTextCtrl, setEdgeMode, 1}}, + {3277, {wxStyledTextCtrl, getEdgeMode, 0}}, + {3278, {wxStyledTextCtrl, getEdgeColour, 0}}, + {3279, {wxStyledTextCtrl, setEdgeColour, 1}}, + {3280, {wxStyledTextCtrl, searchAnchor, 0}}, + {3281, {wxStyledTextCtrl, searchNext, 2}}, + {3282, {wxStyledTextCtrl, searchPrev, 2}}, + {3283, {wxStyledTextCtrl, linesOnScreen, 0}}, + {3284, {wxStyledTextCtrl, usePopUp, 1}}, + {3285, {wxStyledTextCtrl, selectionIsRectangle, 0}}, + {3286, {wxStyledTextCtrl, setZoom, 1}}, + {3287, {wxStyledTextCtrl, getZoom, 0}}, + {3288, {wxStyledTextCtrl, getModEventMask, 0}}, + {3289, {wxStyledTextCtrl, setSTCFocus, 1}}, + {3290, {wxStyledTextCtrl, getSTCFocus, 0}}, + {3291, {wxStyledTextCtrl, setStatus, 1}}, + {3292, {wxStyledTextCtrl, getStatus, 0}}, + {3293, {wxStyledTextCtrl, setMouseDownCaptures, 1}}, + {3294, {wxStyledTextCtrl, getMouseDownCaptures, 0}}, + {3295, {wxStyledTextCtrl, setSTCCursor, 1}}, + {3296, {wxStyledTextCtrl, getSTCCursor, 0}}, + {3297, {wxStyledTextCtrl, setControlCharSymbol, 1}}, + {3298, {wxStyledTextCtrl, getControlCharSymbol, 0}}, + {3299, {wxStyledTextCtrl, wordPartLeft, 0}}, + {3300, {wxStyledTextCtrl, wordPartLeftExtend, 0}}, + {3301, {wxStyledTextCtrl, wordPartRight, 0}}, + {3302, {wxStyledTextCtrl, wordPartRightExtend, 0}}, + {3303, {wxStyledTextCtrl, setVisiblePolicy, 2}}, + {3304, {wxStyledTextCtrl, delLineLeft, 0}}, + {3305, {wxStyledTextCtrl, delLineRight, 0}}, + {3306, {wxStyledTextCtrl, getXOffset, 0}}, + {3307, {wxStyledTextCtrl, chooseCaretX, 0}}, + {3308, {wxStyledTextCtrl, setXCaretPolicy, 2}}, + {3309, {wxStyledTextCtrl, setYCaretPolicy, 2}}, + {3310, {wxStyledTextCtrl, getPrintWrapMode, 0}}, + {3311, {wxStyledTextCtrl, setHotspotActiveForeground, 2}}, + {3312, {wxStyledTextCtrl, setHotspotActiveBackground, 2}}, + {3313, {wxStyledTextCtrl, setHotspotActiveUnderline, 1}}, + {3314, {wxStyledTextCtrl, setHotspotSingleLine, 1}}, + {3315, {wxStyledTextCtrl, paraDownExtend, 0}}, + {3316, {wxStyledTextCtrl, paraUp, 0}}, + {3317, {wxStyledTextCtrl, paraUpExtend, 0}}, + {3318, {wxStyledTextCtrl, positionBefore, 1}}, + {3319, {wxStyledTextCtrl, positionAfter, 1}}, + {3320, {wxStyledTextCtrl, copyRange, 2}}, + {3321, {wxStyledTextCtrl, copyText, 2}}, + {3322, {wxStyledTextCtrl, setSelectionMode, 1}}, + {3323, {wxStyledTextCtrl, getSelectionMode, 0}}, + {3324, {wxStyledTextCtrl, lineDownRectExtend, 0}}, + {3325, {wxStyledTextCtrl, lineUpRectExtend, 0}}, + {3326, {wxStyledTextCtrl, charLeftRectExtend, 0}}, + {3327, {wxStyledTextCtrl, charRightRectExtend, 0}}, + {3328, {wxStyledTextCtrl, homeRectExtend, 0}}, + {3329, {wxStyledTextCtrl, vCHomeRectExtend, 0}}, + {3330, {wxStyledTextCtrl, lineEndRectExtend, 0}}, + {3331, {wxStyledTextCtrl, pageUpRectExtend, 0}}, + {3332, {wxStyledTextCtrl, pageDownRectExtend, 0}}, + {3333, {wxStyledTextCtrl, stutteredPageUp, 0}}, + {3334, {wxStyledTextCtrl, stutteredPageUpExtend, 0}}, + {3335, {wxStyledTextCtrl, stutteredPageDown, 0}}, + {3336, {wxStyledTextCtrl, stutteredPageDownExtend, 0}}, + {3337, {wxStyledTextCtrl, wordLeftEnd, 0}}, + {3338, {wxStyledTextCtrl, wordLeftEndExtend, 0}}, + {3339, {wxStyledTextCtrl, wordRightEnd, 0}}, + {3340, {wxStyledTextCtrl, wordRightEndExtend, 0}}, + {3341, {wxStyledTextCtrl, setWhitespaceChars, 1}}, + {3342, {wxStyledTextCtrl, setCharsDefault, 0}}, + {3343, {wxStyledTextCtrl, autoCompGetCurrent, 0}}, + {3344, {wxStyledTextCtrl, allocate, 1}}, + {3345, {wxStyledTextCtrl, findColumn, 2}}, + {3346, {wxStyledTextCtrl, getCaretSticky, 0}}, + {3347, {wxStyledTextCtrl, setCaretSticky, 1}}, + {3348, {wxStyledTextCtrl, toggleCaretSticky, 0}}, + {3349, {wxStyledTextCtrl, setPasteConvertEndings, 1}}, + {3350, {wxStyledTextCtrl, getPasteConvertEndings, 0}}, + {3351, {wxStyledTextCtrl, selectionDuplicate, 0}}, + {3352, {wxStyledTextCtrl, setCaretLineBackAlpha, 1}}, + {3353, {wxStyledTextCtrl, getCaretLineBackAlpha, 0}}, + {3354, {wxStyledTextCtrl, startRecord, 0}}, + {3355, {wxStyledTextCtrl, stopRecord, 0}}, + {3356, {wxStyledTextCtrl, setLexer, 1}}, + {3357, {wxStyledTextCtrl, getLexer, 0}}, + {3358, {wxStyledTextCtrl, colourise, 2}}, + {3359, {wxStyledTextCtrl, setProperty, 2}}, + {3360, {wxStyledTextCtrl, setKeyWords, 2}}, + {3361, {wxStyledTextCtrl, setLexerLanguage, 1}}, + {3362, {wxStyledTextCtrl, getProperty, 1}}, + {3363, {wxStyledTextCtrl, getStyleBitsNeeded, 0}}, + {3364, {wxStyledTextCtrl, getCurrentLine, 0}}, + {3365, {wxStyledTextCtrl, styleSetSpec, 2}}, + {3366, {wxStyledTextCtrl, styleSetFont, 2}}, + {3367, {wxStyledTextCtrl, styleSetFontAttr, 7}}, + {3368, {wxStyledTextCtrl, styleSetCharacterSet, 2}}, + {3369, {wxStyledTextCtrl, styleSetFontEncoding, 2}}, + {3370, {wxStyledTextCtrl, cmdKeyExecute, 1}}, + {3371, {wxStyledTextCtrl, setMargins, 2}}, + {3372, {wxStyledTextCtrl, getSelection, 2}}, + {3373, {wxStyledTextCtrl, pointFromPosition, 1}}, + {3374, {wxStyledTextCtrl, scrollToLine, 1}}, + {3375, {wxStyledTextCtrl, scrollToColumn, 1}}, + {3376, {wxStyledTextCtrl, setVScrollBar, 1}}, + {3377, {wxStyledTextCtrl, setHScrollBar, 1}}, + {3378, {wxStyledTextCtrl, getLastKeydownProcessed, 0}}, + {3379, {wxStyledTextCtrl, setLastKeydownProcessed, 1}}, + {3380, {wxStyledTextCtrl, saveFile, 1}}, + {3381, {wxStyledTextCtrl, loadFile, 1}}, + {3382, {wxStyledTextCtrl, doDragOver, 3}}, + {3383, {wxStyledTextCtrl, doDropText, 3}}, + {3384, {wxStyledTextCtrl, getUseAntiAliasing, 0}}, + {3385, {wxStyledTextCtrl, addTextRaw, 1}}, + {3386, {wxStyledTextCtrl, insertTextRaw, 2}}, + {3387, {wxStyledTextCtrl, getCurLineRaw, 1}}, + {3388, {wxStyledTextCtrl, getLineRaw, 1}}, + {3389, {wxStyledTextCtrl, getSelectedTextRaw, 0}}, + {3390, {wxStyledTextCtrl, getTextRangeRaw, 2}}, + {3391, {wxStyledTextCtrl, setTextRaw, 1}}, + {3392, {wxStyledTextCtrl, getTextRaw, 0}}, + {3393, {wxStyledTextCtrl, appendTextRaw, 1}}, + {3394, {wxArtProvider, getBitmap, 2}}, + {3395, {wxArtProvider, getIcon, 2}}, + {3396, {wxTreeEvent, getKeyCode, 0}}, + {3397, {wxTreeEvent, getItem, 0}}, + {3398, {wxTreeEvent, getKeyEvent, 0}}, + {3399, {wxTreeEvent, getLabel, 0}}, + {3400, {wxTreeEvent, getOldItem, 0}}, + {3401, {wxTreeEvent, getPoint, 0}}, + {3402, {wxTreeEvent, isEditCancelled, 0}}, + {3403, {wxTreeEvent, setToolTip, 1}}, + {3404, {wxNotebookEvent, getOldSelection, 0}}, + {3405, {wxNotebookEvent, getSelection, 0}}, + {3406, {wxNotebookEvent, setOldSelection, 1}}, + {3407, {wxNotebookEvent, setSelection, 1}}, + {3408, {wxFileDataObject, new, 0}}, + {3409, {wxFileDataObject, addFile, 1}}, + {3410, {wxFileDataObject, getFilenames, 0}}, + {3411, {wxFileDataObject, 'Destroy', undefined}}, + {3412, {wxTextDataObject, new, 1}}, + {3413, {wxTextDataObject, getTextLength, 0}}, + {3414, {wxTextDataObject, getText, 0}}, + {3415, {wxTextDataObject, setText, 1}}, + {3416, {wxTextDataObject, 'Destroy', undefined}}, + {3417, {wxBitmapDataObject, new_1_1, 1}}, + {3418, {wxBitmapDataObject, new_1_0, 1}}, + {3419, {wxBitmapDataObject, getBitmap, 0}}, + {3420, {wxBitmapDataObject, setBitmap, 1}}, + {3421, {wxBitmapDataObject, 'Destroy', undefined}}, + {3423, {wxClipboard, new, 0}}, + {3424, {wxClipboard, destruct, 0}}, + {3425, {wxClipboard, addData, 1}}, + {3426, {wxClipboard, clear, 0}}, + {3427, {wxClipboard, close, 0}}, + {3428, {wxClipboard, flush, 0}}, + {3429, {wxClipboard, getData, 1}}, + {3430, {wxClipboard, isOpened, 0}}, + {3431, {wxClipboard, open, 0}}, + {3432, {wxClipboard, setData, 1}}, + {3434, {wxClipboard, usePrimarySelection, 1}}, + {3435, {wxClipboard, isSupported, 1}}, + {3436, {wxClipboard, get, 0}}, + {3437, {wxSpinEvent, getPosition, 0}}, + {3438, {wxSpinEvent, setPosition, 1}}, + {3439, {wxSplitterWindow, new_0, 0}}, + {3440, {wxSplitterWindow, new_2, 2}}, + {3441, {wxSplitterWindow, destruct, 0}}, + {3442, {wxSplitterWindow, create, 2}}, + {3443, {wxSplitterWindow, getMinimumPaneSize, 0}}, + {3444, {wxSplitterWindow, getSashGravity, 0}}, + {3445, {wxSplitterWindow, getSashPosition, 0}}, + {3446, {wxSplitterWindow, getSplitMode, 0}}, + {3447, {wxSplitterWindow, getWindow1, 0}}, + {3448, {wxSplitterWindow, getWindow2, 0}}, + {3449, {wxSplitterWindow, initialize, 1}}, + {3450, {wxSplitterWindow, isSplit, 0}}, + {3451, {wxSplitterWindow, replaceWindow, 2}}, + {3452, {wxSplitterWindow, setSashGravity, 1}}, + {3453, {wxSplitterWindow, setSashPosition, 2}}, + {3454, {wxSplitterWindow, setSashSize, 1}}, + {3455, {wxSplitterWindow, setMinimumPaneSize, 1}}, + {3456, {wxSplitterWindow, setSplitMode, 1}}, + {3457, {wxSplitterWindow, splitHorizontally, 3}}, + {3458, {wxSplitterWindow, splitVertically, 3}}, + {3459, {wxSplitterWindow, unsplit, 1}}, + {3460, {wxSplitterWindow, updateSize, 0}}, + {3461, {wxSplitterEvent, getSashPosition, 0}}, + {3462, {wxSplitterEvent, getX, 0}}, + {3463, {wxSplitterEvent, getY, 0}}, + {3464, {wxSplitterEvent, getWindowBeingRemoved, 0}}, + {3465, {wxSplitterEvent, setSashPosition, 1}}, + {3466, {wxHtmlWindow, new_0, 0}}, + {3467, {wxHtmlWindow, new_2, 2}}, + {3468, {wxHtmlWindow, appendToPage, 1}}, + {3469, {wxHtmlWindow, getOpenedAnchor, 0}}, + {3470, {wxHtmlWindow, getOpenedPage, 0}}, + {3471, {wxHtmlWindow, getOpenedPageTitle, 0}}, + {3472, {wxHtmlWindow, getRelatedFrame, 0}}, + {3473, {wxHtmlWindow, historyBack, 0}}, + {3474, {wxHtmlWindow, historyCanBack, 0}}, + {3475, {wxHtmlWindow, historyCanForward, 0}}, + {3476, {wxHtmlWindow, historyClear, 0}}, + {3477, {wxHtmlWindow, historyForward, 0}}, + {3478, {wxHtmlWindow, loadFile, 1}}, + {3479, {wxHtmlWindow, loadPage, 1}}, + {3480, {wxHtmlWindow, selectAll, 0}}, + {3481, {wxHtmlWindow, selectionToText, 0}}, + {3482, {wxHtmlWindow, selectLine, 1}}, + {3483, {wxHtmlWindow, selectWord, 1}}, + {3484, {wxHtmlWindow, setBorders, 1}}, + {3485, {wxHtmlWindow, setFonts, 3}}, + {3486, {wxHtmlWindow, setPage, 1}}, + {3487, {wxHtmlWindow, setRelatedFrame, 2}}, + {3488, {wxHtmlWindow, setRelatedStatusBar, 1}}, + {3489, {wxHtmlWindow, toText, 0}}, + {3490, {wxHtmlWindow, 'Destroy', undefined}}, + {3491, {wxHtmlLinkEvent, getLinkInfo, 0}}, + {3492, {wxSystemSettings, getColour, 1}}, + {3493, {wxSystemSettings, getFont, 1}}, + {3494, {wxSystemSettings, getMetric, 2}}, + {3495, {wxSystemSettings, getScreenType, 0}}, + {3496, {wxSystemOptions, getOption, 1}}, + {3497, {wxSystemOptions, getOptionInt, 1}}, + {3498, {wxSystemOptions, hasOption, 1}}, + {3499, {wxSystemOptions, isFalse, 1}}, + {3500, {wxSystemOptions, setOption_2_1, 2}}, + {3501, {wxSystemOptions, setOption_2_0, 2}}, + {3502, {wxAuiNotebookEvent, setSelection, 1}}, + {3503, {wxAuiNotebookEvent, getSelection, 0}}, + {3504, {wxAuiNotebookEvent, setOldSelection, 1}}, + {3505, {wxAuiNotebookEvent, getOldSelection, 0}}, + {3506, {wxAuiNotebookEvent, setDragSource, 1}}, + {3507, {wxAuiNotebookEvent, getDragSource, 0}}, + {3508, {wxAuiManagerEvent, setManager, 1}}, + {3509, {wxAuiManagerEvent, getManager, 0}}, + {3510, {wxAuiManagerEvent, setPane, 1}}, + {3511, {wxAuiManagerEvent, getPane, 0}}, + {3512, {wxAuiManagerEvent, setButton, 1}}, + {3513, {wxAuiManagerEvent, getButton, 0}}, + {3514, {wxAuiManagerEvent, setDC, 1}}, + {3515, {wxAuiManagerEvent, getDC, 0}}, + {3516, {wxAuiManagerEvent, veto, 1}}, + {3517, {wxAuiManagerEvent, getVeto, 0}}, + {3518, {wxAuiManagerEvent, setCanVeto, 1}}, + {3519, {wxAuiManagerEvent, canVeto, 0}}, + {3520, {wxLogNull, new, 0}}, + {3521, {wxLogNull, 'Destroy', undefined}}, + {3522, {wxTaskBarIcon, new, 0}}, + {3523, {wxTaskBarIcon, destruct, 0}}, + {3524, {wxTaskBarIcon, popupMenu, 1}}, + {3525, {wxTaskBarIcon, removeIcon, 0}}, + {3526, {wxTaskBarIcon, setIcon, 2}}, + {3527, {wxLocale, new_0, 0}}, + {3529, {wxLocale, new_2, 2}}, + {3530, {wxLocale, destruct, 0}}, + {3532, {wxLocale, init, 1}}, + {3533, {wxLocale, addCatalog_1, 1}}, + {3534, {wxLocale, addCatalog_3, 3}}, + {3535, {wxLocale, addCatalogLookupPathPrefix, 1}}, + {3536, {wxLocale, getCanonicalName, 0}}, + {3537, {wxLocale, getLanguage, 0}}, + {3538, {wxLocale, getLanguageName, 1}}, + {3539, {wxLocale, getLocale, 0}}, + {3540, {wxLocale, getName, 0}}, + {3541, {wxLocale, getString_2, 2}}, + {3542, {wxLocale, getString_4, 4}}, + {3543, {wxLocale, getHeaderValue, 2}}, + {3544, {wxLocale, getSysName, 0}}, + {3545, {wxLocale, getSystemEncoding, 0}}, + {3546, {wxLocale, getSystemEncodingName, 0}}, + {3547, {wxLocale, getSystemLanguage, 0}}, + {3548, {wxLocale, isLoaded, 1}}, + {3549, {wxLocale, isOk, 0}}, {-1, {mod, func, -1}} ]. diff --git a/lib/wx/src/gen/wxe_funcs.hrl b/lib/wx/src/gen/wxe_funcs.hrl index 109368adb3..97f9bd9695 100644 --- a/lib/wx/src/gen/wxe_funcs.hrl +++ b/lib/wx/src/gen/wxe_funcs.hrl @@ -1,7 +1,7 @@ %% %% %CopyrightBegin% %% -%% Copyright Ericsson AB 2008-2013. All Rights Reserved. +%% Copyright Ericsson AB 2008-2014. All Rights Reserved. %% %% The contents of this file are subject to the Erlang Public License, %% Version 1.1, (the "License"); you may not use this file except in @@ -2706,599 +2706,622 @@ -define(utils_wxGetOsDescription, 2924). -define(utils_wxIsPlatformLittleEndian, 2925). -define(utils_wxIsPlatform64Bit, 2926). --define(wxPrintout_new, 2927). --define(wxPrintout_destruct, 2928). --define(wxPrintout_GetDC, 2929). --define(wxPrintout_GetPageSizeMM, 2930). --define(wxPrintout_GetPageSizePixels, 2931). --define(wxPrintout_GetPaperRectPixels, 2932). --define(wxPrintout_GetPPIPrinter, 2933). --define(wxPrintout_GetPPIScreen, 2934). --define(wxPrintout_GetTitle, 2935). --define(wxPrintout_IsPreview, 2936). --define(wxPrintout_FitThisSizeToPaper, 2937). --define(wxPrintout_FitThisSizeToPage, 2938). --define(wxPrintout_FitThisSizeToPageMargins, 2939). --define(wxPrintout_MapScreenSizeToPaper, 2940). --define(wxPrintout_MapScreenSizeToPage, 2941). --define(wxPrintout_MapScreenSizeToPageMargins, 2942). --define(wxPrintout_MapScreenSizeToDevice, 2943). --define(wxPrintout_GetLogicalPaperRect, 2944). --define(wxPrintout_GetLogicalPageRect, 2945). --define(wxPrintout_GetLogicalPageMarginsRect, 2946). --define(wxPrintout_SetLogicalOrigin, 2947). --define(wxPrintout_OffsetLogicalOrigin, 2948). --define(wxStyledTextCtrl_new_2, 2949). --define(wxStyledTextCtrl_new_0, 2950). --define(wxStyledTextCtrl_destruct, 2951). --define(wxStyledTextCtrl_Create, 2952). --define(wxStyledTextCtrl_AddText, 2953). --define(wxStyledTextCtrl_AddStyledText, 2954). --define(wxStyledTextCtrl_InsertText, 2955). --define(wxStyledTextCtrl_ClearAll, 2956). --define(wxStyledTextCtrl_ClearDocumentStyle, 2957). --define(wxStyledTextCtrl_GetLength, 2958). --define(wxStyledTextCtrl_GetCharAt, 2959). --define(wxStyledTextCtrl_GetCurrentPos, 2960). --define(wxStyledTextCtrl_GetAnchor, 2961). --define(wxStyledTextCtrl_GetStyleAt, 2962). --define(wxStyledTextCtrl_Redo, 2963). --define(wxStyledTextCtrl_SetUndoCollection, 2964). --define(wxStyledTextCtrl_SelectAll, 2965). --define(wxStyledTextCtrl_SetSavePoint, 2966). --define(wxStyledTextCtrl_GetStyledText, 2967). --define(wxStyledTextCtrl_CanRedo, 2968). --define(wxStyledTextCtrl_MarkerLineFromHandle, 2969). --define(wxStyledTextCtrl_MarkerDeleteHandle, 2970). --define(wxStyledTextCtrl_GetUndoCollection, 2971). --define(wxStyledTextCtrl_GetViewWhiteSpace, 2972). --define(wxStyledTextCtrl_SetViewWhiteSpace, 2973). --define(wxStyledTextCtrl_PositionFromPoint, 2974). --define(wxStyledTextCtrl_PositionFromPointClose, 2975). --define(wxStyledTextCtrl_GotoLine, 2976). --define(wxStyledTextCtrl_GotoPos, 2977). --define(wxStyledTextCtrl_SetAnchor, 2978). --define(wxStyledTextCtrl_GetCurLine, 2979). --define(wxStyledTextCtrl_GetEndStyled, 2980). --define(wxStyledTextCtrl_ConvertEOLs, 2981). --define(wxStyledTextCtrl_GetEOLMode, 2982). --define(wxStyledTextCtrl_SetEOLMode, 2983). --define(wxStyledTextCtrl_StartStyling, 2984). --define(wxStyledTextCtrl_SetStyling, 2985). --define(wxStyledTextCtrl_GetBufferedDraw, 2986). --define(wxStyledTextCtrl_SetBufferedDraw, 2987). --define(wxStyledTextCtrl_SetTabWidth, 2988). --define(wxStyledTextCtrl_GetTabWidth, 2989). --define(wxStyledTextCtrl_SetCodePage, 2990). --define(wxStyledTextCtrl_MarkerDefine, 2991). --define(wxStyledTextCtrl_MarkerSetForeground, 2992). --define(wxStyledTextCtrl_MarkerSetBackground, 2993). --define(wxStyledTextCtrl_MarkerAdd, 2994). --define(wxStyledTextCtrl_MarkerDelete, 2995). --define(wxStyledTextCtrl_MarkerDeleteAll, 2996). --define(wxStyledTextCtrl_MarkerGet, 2997). --define(wxStyledTextCtrl_MarkerNext, 2998). --define(wxStyledTextCtrl_MarkerPrevious, 2999). --define(wxStyledTextCtrl_MarkerDefineBitmap, 3000). --define(wxStyledTextCtrl_MarkerAddSet, 3001). --define(wxStyledTextCtrl_MarkerSetAlpha, 3002). --define(wxStyledTextCtrl_SetMarginType, 3003). --define(wxStyledTextCtrl_GetMarginType, 3004). --define(wxStyledTextCtrl_SetMarginWidth, 3005). --define(wxStyledTextCtrl_GetMarginWidth, 3006). --define(wxStyledTextCtrl_SetMarginMask, 3007). --define(wxStyledTextCtrl_GetMarginMask, 3008). --define(wxStyledTextCtrl_SetMarginSensitive, 3009). --define(wxStyledTextCtrl_GetMarginSensitive, 3010). --define(wxStyledTextCtrl_StyleClearAll, 3011). --define(wxStyledTextCtrl_StyleSetForeground, 3012). --define(wxStyledTextCtrl_StyleSetBackground, 3013). --define(wxStyledTextCtrl_StyleSetBold, 3014). --define(wxStyledTextCtrl_StyleSetItalic, 3015). --define(wxStyledTextCtrl_StyleSetSize, 3016). --define(wxStyledTextCtrl_StyleSetFaceName, 3017). --define(wxStyledTextCtrl_StyleSetEOLFilled, 3018). --define(wxStyledTextCtrl_StyleResetDefault, 3019). --define(wxStyledTextCtrl_StyleSetUnderline, 3020). --define(wxStyledTextCtrl_StyleSetCase, 3021). --define(wxStyledTextCtrl_StyleSetHotSpot, 3022). --define(wxStyledTextCtrl_SetSelForeground, 3023). --define(wxStyledTextCtrl_SetSelBackground, 3024). --define(wxStyledTextCtrl_GetSelAlpha, 3025). --define(wxStyledTextCtrl_SetSelAlpha, 3026). --define(wxStyledTextCtrl_SetCaretForeground, 3027). --define(wxStyledTextCtrl_CmdKeyAssign, 3028). --define(wxStyledTextCtrl_CmdKeyClear, 3029). --define(wxStyledTextCtrl_CmdKeyClearAll, 3030). --define(wxStyledTextCtrl_SetStyleBytes, 3031). --define(wxStyledTextCtrl_StyleSetVisible, 3032). --define(wxStyledTextCtrl_GetCaretPeriod, 3033). --define(wxStyledTextCtrl_SetCaretPeriod, 3034). --define(wxStyledTextCtrl_SetWordChars, 3035). --define(wxStyledTextCtrl_BeginUndoAction, 3036). --define(wxStyledTextCtrl_EndUndoAction, 3037). --define(wxStyledTextCtrl_IndicatorSetStyle, 3038). --define(wxStyledTextCtrl_IndicatorGetStyle, 3039). --define(wxStyledTextCtrl_IndicatorSetForeground, 3040). --define(wxStyledTextCtrl_IndicatorGetForeground, 3041). --define(wxStyledTextCtrl_SetWhitespaceForeground, 3042). --define(wxStyledTextCtrl_SetWhitespaceBackground, 3043). --define(wxStyledTextCtrl_GetStyleBits, 3044). --define(wxStyledTextCtrl_SetLineState, 3045). --define(wxStyledTextCtrl_GetLineState, 3046). --define(wxStyledTextCtrl_GetMaxLineState, 3047). --define(wxStyledTextCtrl_GetCaretLineVisible, 3048). --define(wxStyledTextCtrl_SetCaretLineVisible, 3049). --define(wxStyledTextCtrl_GetCaretLineBackground, 3050). --define(wxStyledTextCtrl_SetCaretLineBackground, 3051). --define(wxStyledTextCtrl_AutoCompShow, 3052). --define(wxStyledTextCtrl_AutoCompCancel, 3053). --define(wxStyledTextCtrl_AutoCompActive, 3054). --define(wxStyledTextCtrl_AutoCompPosStart, 3055). --define(wxStyledTextCtrl_AutoCompComplete, 3056). --define(wxStyledTextCtrl_AutoCompStops, 3057). --define(wxStyledTextCtrl_AutoCompSetSeparator, 3058). --define(wxStyledTextCtrl_AutoCompGetSeparator, 3059). --define(wxStyledTextCtrl_AutoCompSelect, 3060). --define(wxStyledTextCtrl_AutoCompSetCancelAtStart, 3061). --define(wxStyledTextCtrl_AutoCompGetCancelAtStart, 3062). --define(wxStyledTextCtrl_AutoCompSetFillUps, 3063). --define(wxStyledTextCtrl_AutoCompSetChooseSingle, 3064). --define(wxStyledTextCtrl_AutoCompGetChooseSingle, 3065). --define(wxStyledTextCtrl_AutoCompSetIgnoreCase, 3066). --define(wxStyledTextCtrl_AutoCompGetIgnoreCase, 3067). --define(wxStyledTextCtrl_UserListShow, 3068). --define(wxStyledTextCtrl_AutoCompSetAutoHide, 3069). --define(wxStyledTextCtrl_AutoCompGetAutoHide, 3070). --define(wxStyledTextCtrl_AutoCompSetDropRestOfWord, 3071). --define(wxStyledTextCtrl_AutoCompGetDropRestOfWord, 3072). --define(wxStyledTextCtrl_RegisterImage, 3073). --define(wxStyledTextCtrl_ClearRegisteredImages, 3074). --define(wxStyledTextCtrl_AutoCompGetTypeSeparator, 3075). --define(wxStyledTextCtrl_AutoCompSetTypeSeparator, 3076). --define(wxStyledTextCtrl_AutoCompSetMaxWidth, 3077). --define(wxStyledTextCtrl_AutoCompGetMaxWidth, 3078). --define(wxStyledTextCtrl_AutoCompSetMaxHeight, 3079). --define(wxStyledTextCtrl_AutoCompGetMaxHeight, 3080). --define(wxStyledTextCtrl_SetIndent, 3081). --define(wxStyledTextCtrl_GetIndent, 3082). --define(wxStyledTextCtrl_SetUseTabs, 3083). --define(wxStyledTextCtrl_GetUseTabs, 3084). --define(wxStyledTextCtrl_SetLineIndentation, 3085). --define(wxStyledTextCtrl_GetLineIndentation, 3086). --define(wxStyledTextCtrl_GetLineIndentPosition, 3087). --define(wxStyledTextCtrl_GetColumn, 3088). --define(wxStyledTextCtrl_SetUseHorizontalScrollBar, 3089). --define(wxStyledTextCtrl_GetUseHorizontalScrollBar, 3090). --define(wxStyledTextCtrl_SetIndentationGuides, 3091). --define(wxStyledTextCtrl_GetIndentationGuides, 3092). --define(wxStyledTextCtrl_SetHighlightGuide, 3093). --define(wxStyledTextCtrl_GetHighlightGuide, 3094). --define(wxStyledTextCtrl_GetLineEndPosition, 3095). --define(wxStyledTextCtrl_GetCodePage, 3096). --define(wxStyledTextCtrl_GetCaretForeground, 3097). --define(wxStyledTextCtrl_GetReadOnly, 3098). --define(wxStyledTextCtrl_SetCurrentPos, 3099). --define(wxStyledTextCtrl_SetSelectionStart, 3100). --define(wxStyledTextCtrl_GetSelectionStart, 3101). --define(wxStyledTextCtrl_SetSelectionEnd, 3102). --define(wxStyledTextCtrl_GetSelectionEnd, 3103). --define(wxStyledTextCtrl_SetPrintMagnification, 3104). --define(wxStyledTextCtrl_GetPrintMagnification, 3105). --define(wxStyledTextCtrl_SetPrintColourMode, 3106). --define(wxStyledTextCtrl_GetPrintColourMode, 3107). --define(wxStyledTextCtrl_FindText, 3108). --define(wxStyledTextCtrl_FormatRange, 3109). --define(wxStyledTextCtrl_GetFirstVisibleLine, 3110). --define(wxStyledTextCtrl_GetLine, 3111). --define(wxStyledTextCtrl_GetLineCount, 3112). --define(wxStyledTextCtrl_SetMarginLeft, 3113). --define(wxStyledTextCtrl_GetMarginLeft, 3114). --define(wxStyledTextCtrl_SetMarginRight, 3115). --define(wxStyledTextCtrl_GetMarginRight, 3116). --define(wxStyledTextCtrl_GetModify, 3117). --define(wxStyledTextCtrl_SetSelection, 3118). --define(wxStyledTextCtrl_GetSelectedText, 3119). --define(wxStyledTextCtrl_GetTextRange, 3120). --define(wxStyledTextCtrl_HideSelection, 3121). --define(wxStyledTextCtrl_LineFromPosition, 3122). --define(wxStyledTextCtrl_PositionFromLine, 3123). --define(wxStyledTextCtrl_LineScroll, 3124). --define(wxStyledTextCtrl_EnsureCaretVisible, 3125). --define(wxStyledTextCtrl_ReplaceSelection, 3126). --define(wxStyledTextCtrl_SetReadOnly, 3127). --define(wxStyledTextCtrl_CanPaste, 3128). --define(wxStyledTextCtrl_CanUndo, 3129). --define(wxStyledTextCtrl_EmptyUndoBuffer, 3130). --define(wxStyledTextCtrl_Undo, 3131). --define(wxStyledTextCtrl_Cut, 3132). --define(wxStyledTextCtrl_Copy, 3133). --define(wxStyledTextCtrl_Paste, 3134). --define(wxStyledTextCtrl_Clear, 3135). --define(wxStyledTextCtrl_SetText, 3136). --define(wxStyledTextCtrl_GetText, 3137). --define(wxStyledTextCtrl_GetTextLength, 3138). --define(wxStyledTextCtrl_GetOvertype, 3139). --define(wxStyledTextCtrl_SetCaretWidth, 3140). --define(wxStyledTextCtrl_GetCaretWidth, 3141). --define(wxStyledTextCtrl_SetTargetStart, 3142). --define(wxStyledTextCtrl_GetTargetStart, 3143). --define(wxStyledTextCtrl_SetTargetEnd, 3144). --define(wxStyledTextCtrl_GetTargetEnd, 3145). --define(wxStyledTextCtrl_ReplaceTarget, 3146). --define(wxStyledTextCtrl_SearchInTarget, 3147). --define(wxStyledTextCtrl_SetSearchFlags, 3148). --define(wxStyledTextCtrl_GetSearchFlags, 3149). --define(wxStyledTextCtrl_CallTipShow, 3150). --define(wxStyledTextCtrl_CallTipCancel, 3151). --define(wxStyledTextCtrl_CallTipActive, 3152). --define(wxStyledTextCtrl_CallTipPosAtStart, 3153). --define(wxStyledTextCtrl_CallTipSetHighlight, 3154). --define(wxStyledTextCtrl_CallTipSetBackground, 3155). --define(wxStyledTextCtrl_CallTipSetForeground, 3156). --define(wxStyledTextCtrl_CallTipSetForegroundHighlight, 3157). --define(wxStyledTextCtrl_CallTipUseStyle, 3158). --define(wxStyledTextCtrl_VisibleFromDocLine, 3159). --define(wxStyledTextCtrl_DocLineFromVisible, 3160). --define(wxStyledTextCtrl_WrapCount, 3161). --define(wxStyledTextCtrl_SetFoldLevel, 3162). --define(wxStyledTextCtrl_GetFoldLevel, 3163). --define(wxStyledTextCtrl_GetLastChild, 3164). --define(wxStyledTextCtrl_GetFoldParent, 3165). --define(wxStyledTextCtrl_ShowLines, 3166). --define(wxStyledTextCtrl_HideLines, 3167). --define(wxStyledTextCtrl_GetLineVisible, 3168). --define(wxStyledTextCtrl_SetFoldExpanded, 3169). --define(wxStyledTextCtrl_GetFoldExpanded, 3170). --define(wxStyledTextCtrl_ToggleFold, 3171). --define(wxStyledTextCtrl_EnsureVisible, 3172). --define(wxStyledTextCtrl_SetFoldFlags, 3173). --define(wxStyledTextCtrl_EnsureVisibleEnforcePolicy, 3174). --define(wxStyledTextCtrl_SetTabIndents, 3175). --define(wxStyledTextCtrl_GetTabIndents, 3176). --define(wxStyledTextCtrl_SetBackSpaceUnIndents, 3177). --define(wxStyledTextCtrl_GetBackSpaceUnIndents, 3178). --define(wxStyledTextCtrl_SetMouseDwellTime, 3179). --define(wxStyledTextCtrl_GetMouseDwellTime, 3180). --define(wxStyledTextCtrl_WordStartPosition, 3181). --define(wxStyledTextCtrl_WordEndPosition, 3182). --define(wxStyledTextCtrl_SetWrapMode, 3183). --define(wxStyledTextCtrl_GetWrapMode, 3184). --define(wxStyledTextCtrl_SetWrapVisualFlags, 3185). --define(wxStyledTextCtrl_GetWrapVisualFlags, 3186). --define(wxStyledTextCtrl_SetWrapVisualFlagsLocation, 3187). --define(wxStyledTextCtrl_GetWrapVisualFlagsLocation, 3188). --define(wxStyledTextCtrl_SetWrapStartIndent, 3189). --define(wxStyledTextCtrl_GetWrapStartIndent, 3190). --define(wxStyledTextCtrl_SetLayoutCache, 3191). --define(wxStyledTextCtrl_GetLayoutCache, 3192). --define(wxStyledTextCtrl_SetScrollWidth, 3193). --define(wxStyledTextCtrl_GetScrollWidth, 3194). --define(wxStyledTextCtrl_TextWidth, 3195). --define(wxStyledTextCtrl_GetEndAtLastLine, 3196). --define(wxStyledTextCtrl_TextHeight, 3197). --define(wxStyledTextCtrl_SetUseVerticalScrollBar, 3198). --define(wxStyledTextCtrl_GetUseVerticalScrollBar, 3199). --define(wxStyledTextCtrl_AppendText, 3200). --define(wxStyledTextCtrl_GetTwoPhaseDraw, 3201). --define(wxStyledTextCtrl_SetTwoPhaseDraw, 3202). --define(wxStyledTextCtrl_TargetFromSelection, 3203). --define(wxStyledTextCtrl_LinesJoin, 3204). --define(wxStyledTextCtrl_LinesSplit, 3205). --define(wxStyledTextCtrl_SetFoldMarginColour, 3206). --define(wxStyledTextCtrl_SetFoldMarginHiColour, 3207). --define(wxStyledTextCtrl_LineDown, 3208). --define(wxStyledTextCtrl_LineDownExtend, 3209). --define(wxStyledTextCtrl_LineUp, 3210). --define(wxStyledTextCtrl_LineUpExtend, 3211). --define(wxStyledTextCtrl_CharLeft, 3212). --define(wxStyledTextCtrl_CharLeftExtend, 3213). --define(wxStyledTextCtrl_CharRight, 3214). --define(wxStyledTextCtrl_CharRightExtend, 3215). --define(wxStyledTextCtrl_WordLeft, 3216). --define(wxStyledTextCtrl_WordLeftExtend, 3217). --define(wxStyledTextCtrl_WordRight, 3218). --define(wxStyledTextCtrl_WordRightExtend, 3219). --define(wxStyledTextCtrl_Home, 3220). --define(wxStyledTextCtrl_HomeExtend, 3221). --define(wxStyledTextCtrl_LineEnd, 3222). --define(wxStyledTextCtrl_LineEndExtend, 3223). --define(wxStyledTextCtrl_DocumentStart, 3224). --define(wxStyledTextCtrl_DocumentStartExtend, 3225). --define(wxStyledTextCtrl_DocumentEnd, 3226). --define(wxStyledTextCtrl_DocumentEndExtend, 3227). --define(wxStyledTextCtrl_PageUp, 3228). --define(wxStyledTextCtrl_PageUpExtend, 3229). --define(wxStyledTextCtrl_PageDown, 3230). --define(wxStyledTextCtrl_PageDownExtend, 3231). --define(wxStyledTextCtrl_EditToggleOvertype, 3232). --define(wxStyledTextCtrl_Cancel, 3233). --define(wxStyledTextCtrl_DeleteBack, 3234). --define(wxStyledTextCtrl_Tab, 3235). --define(wxStyledTextCtrl_BackTab, 3236). --define(wxStyledTextCtrl_NewLine, 3237). --define(wxStyledTextCtrl_FormFeed, 3238). --define(wxStyledTextCtrl_VCHome, 3239). --define(wxStyledTextCtrl_VCHomeExtend, 3240). --define(wxStyledTextCtrl_ZoomIn, 3241). --define(wxStyledTextCtrl_ZoomOut, 3242). --define(wxStyledTextCtrl_DelWordLeft, 3243). --define(wxStyledTextCtrl_DelWordRight, 3244). --define(wxStyledTextCtrl_LineCut, 3245). --define(wxStyledTextCtrl_LineDelete, 3246). --define(wxStyledTextCtrl_LineTranspose, 3247). --define(wxStyledTextCtrl_LineDuplicate, 3248). --define(wxStyledTextCtrl_LowerCase, 3249). --define(wxStyledTextCtrl_UpperCase, 3250). --define(wxStyledTextCtrl_LineScrollDown, 3251). --define(wxStyledTextCtrl_LineScrollUp, 3252). --define(wxStyledTextCtrl_DeleteBackNotLine, 3253). --define(wxStyledTextCtrl_HomeDisplay, 3254). --define(wxStyledTextCtrl_HomeDisplayExtend, 3255). --define(wxStyledTextCtrl_LineEndDisplay, 3256). --define(wxStyledTextCtrl_LineEndDisplayExtend, 3257). --define(wxStyledTextCtrl_HomeWrapExtend, 3258). --define(wxStyledTextCtrl_LineEndWrap, 3259). --define(wxStyledTextCtrl_LineEndWrapExtend, 3260). --define(wxStyledTextCtrl_VCHomeWrap, 3261). --define(wxStyledTextCtrl_VCHomeWrapExtend, 3262). --define(wxStyledTextCtrl_LineCopy, 3263). --define(wxStyledTextCtrl_MoveCaretInsideView, 3264). --define(wxStyledTextCtrl_LineLength, 3265). --define(wxStyledTextCtrl_BraceHighlight, 3266). --define(wxStyledTextCtrl_BraceBadLight, 3267). --define(wxStyledTextCtrl_BraceMatch, 3268). --define(wxStyledTextCtrl_GetViewEOL, 3269). --define(wxStyledTextCtrl_SetViewEOL, 3270). --define(wxStyledTextCtrl_SetModEventMask, 3271). --define(wxStyledTextCtrl_GetEdgeColumn, 3272). --define(wxStyledTextCtrl_SetEdgeColumn, 3273). --define(wxStyledTextCtrl_SetEdgeMode, 3274). --define(wxStyledTextCtrl_GetEdgeMode, 3275). --define(wxStyledTextCtrl_GetEdgeColour, 3276). --define(wxStyledTextCtrl_SetEdgeColour, 3277). --define(wxStyledTextCtrl_SearchAnchor, 3278). --define(wxStyledTextCtrl_SearchNext, 3279). --define(wxStyledTextCtrl_SearchPrev, 3280). --define(wxStyledTextCtrl_LinesOnScreen, 3281). --define(wxStyledTextCtrl_UsePopUp, 3282). --define(wxStyledTextCtrl_SelectionIsRectangle, 3283). --define(wxStyledTextCtrl_SetZoom, 3284). --define(wxStyledTextCtrl_GetZoom, 3285). --define(wxStyledTextCtrl_GetModEventMask, 3286). --define(wxStyledTextCtrl_SetSTCFocus, 3287). --define(wxStyledTextCtrl_GetSTCFocus, 3288). --define(wxStyledTextCtrl_SetStatus, 3289). --define(wxStyledTextCtrl_GetStatus, 3290). --define(wxStyledTextCtrl_SetMouseDownCaptures, 3291). --define(wxStyledTextCtrl_GetMouseDownCaptures, 3292). --define(wxStyledTextCtrl_SetSTCCursor, 3293). --define(wxStyledTextCtrl_GetSTCCursor, 3294). --define(wxStyledTextCtrl_SetControlCharSymbol, 3295). --define(wxStyledTextCtrl_GetControlCharSymbol, 3296). --define(wxStyledTextCtrl_WordPartLeft, 3297). --define(wxStyledTextCtrl_WordPartLeftExtend, 3298). --define(wxStyledTextCtrl_WordPartRight, 3299). --define(wxStyledTextCtrl_WordPartRightExtend, 3300). --define(wxStyledTextCtrl_SetVisiblePolicy, 3301). --define(wxStyledTextCtrl_DelLineLeft, 3302). --define(wxStyledTextCtrl_DelLineRight, 3303). --define(wxStyledTextCtrl_GetXOffset, 3304). --define(wxStyledTextCtrl_ChooseCaretX, 3305). --define(wxStyledTextCtrl_SetXCaretPolicy, 3306). --define(wxStyledTextCtrl_SetYCaretPolicy, 3307). --define(wxStyledTextCtrl_GetPrintWrapMode, 3308). --define(wxStyledTextCtrl_SetHotspotActiveForeground, 3309). --define(wxStyledTextCtrl_SetHotspotActiveBackground, 3310). --define(wxStyledTextCtrl_SetHotspotActiveUnderline, 3311). --define(wxStyledTextCtrl_SetHotspotSingleLine, 3312). --define(wxStyledTextCtrl_ParaDownExtend, 3313). --define(wxStyledTextCtrl_ParaUp, 3314). --define(wxStyledTextCtrl_ParaUpExtend, 3315). --define(wxStyledTextCtrl_PositionBefore, 3316). --define(wxStyledTextCtrl_PositionAfter, 3317). --define(wxStyledTextCtrl_CopyRange, 3318). --define(wxStyledTextCtrl_CopyText, 3319). --define(wxStyledTextCtrl_SetSelectionMode, 3320). --define(wxStyledTextCtrl_GetSelectionMode, 3321). --define(wxStyledTextCtrl_LineDownRectExtend, 3322). --define(wxStyledTextCtrl_LineUpRectExtend, 3323). --define(wxStyledTextCtrl_CharLeftRectExtend, 3324). --define(wxStyledTextCtrl_CharRightRectExtend, 3325). --define(wxStyledTextCtrl_HomeRectExtend, 3326). --define(wxStyledTextCtrl_VCHomeRectExtend, 3327). --define(wxStyledTextCtrl_LineEndRectExtend, 3328). --define(wxStyledTextCtrl_PageUpRectExtend, 3329). --define(wxStyledTextCtrl_PageDownRectExtend, 3330). --define(wxStyledTextCtrl_StutteredPageUp, 3331). --define(wxStyledTextCtrl_StutteredPageUpExtend, 3332). --define(wxStyledTextCtrl_StutteredPageDown, 3333). --define(wxStyledTextCtrl_StutteredPageDownExtend, 3334). --define(wxStyledTextCtrl_WordLeftEnd, 3335). --define(wxStyledTextCtrl_WordLeftEndExtend, 3336). --define(wxStyledTextCtrl_WordRightEnd, 3337). --define(wxStyledTextCtrl_WordRightEndExtend, 3338). --define(wxStyledTextCtrl_SetWhitespaceChars, 3339). --define(wxStyledTextCtrl_SetCharsDefault, 3340). --define(wxStyledTextCtrl_AutoCompGetCurrent, 3341). --define(wxStyledTextCtrl_Allocate, 3342). --define(wxStyledTextCtrl_FindColumn, 3343). --define(wxStyledTextCtrl_GetCaretSticky, 3344). --define(wxStyledTextCtrl_SetCaretSticky, 3345). --define(wxStyledTextCtrl_ToggleCaretSticky, 3346). --define(wxStyledTextCtrl_SetPasteConvertEndings, 3347). --define(wxStyledTextCtrl_GetPasteConvertEndings, 3348). --define(wxStyledTextCtrl_SelectionDuplicate, 3349). --define(wxStyledTextCtrl_SetCaretLineBackAlpha, 3350). --define(wxStyledTextCtrl_GetCaretLineBackAlpha, 3351). --define(wxStyledTextCtrl_StartRecord, 3352). --define(wxStyledTextCtrl_StopRecord, 3353). --define(wxStyledTextCtrl_SetLexer, 3354). --define(wxStyledTextCtrl_GetLexer, 3355). --define(wxStyledTextCtrl_Colourise, 3356). --define(wxStyledTextCtrl_SetProperty, 3357). --define(wxStyledTextCtrl_SetKeyWords, 3358). --define(wxStyledTextCtrl_SetLexerLanguage, 3359). --define(wxStyledTextCtrl_GetProperty, 3360). --define(wxStyledTextCtrl_GetStyleBitsNeeded, 3361). --define(wxStyledTextCtrl_GetCurrentLine, 3362). --define(wxStyledTextCtrl_StyleSetSpec, 3363). --define(wxStyledTextCtrl_StyleSetFont, 3364). --define(wxStyledTextCtrl_StyleSetFontAttr, 3365). --define(wxStyledTextCtrl_StyleSetCharacterSet, 3366). --define(wxStyledTextCtrl_StyleSetFontEncoding, 3367). --define(wxStyledTextCtrl_CmdKeyExecute, 3368). --define(wxStyledTextCtrl_SetMargins, 3369). --define(wxStyledTextCtrl_GetSelection, 3370). --define(wxStyledTextCtrl_PointFromPosition, 3371). --define(wxStyledTextCtrl_ScrollToLine, 3372). --define(wxStyledTextCtrl_ScrollToColumn, 3373). --define(wxStyledTextCtrl_SetVScrollBar, 3374). --define(wxStyledTextCtrl_SetHScrollBar, 3375). --define(wxStyledTextCtrl_GetLastKeydownProcessed, 3376). --define(wxStyledTextCtrl_SetLastKeydownProcessed, 3377). --define(wxStyledTextCtrl_SaveFile, 3378). --define(wxStyledTextCtrl_LoadFile, 3379). --define(wxStyledTextCtrl_DoDragOver, 3380). --define(wxStyledTextCtrl_DoDropText, 3381). --define(wxStyledTextCtrl_GetUseAntiAliasing, 3382). --define(wxStyledTextCtrl_AddTextRaw, 3383). --define(wxStyledTextCtrl_InsertTextRaw, 3384). --define(wxStyledTextCtrl_GetCurLineRaw, 3385). --define(wxStyledTextCtrl_GetLineRaw, 3386). --define(wxStyledTextCtrl_GetSelectedTextRaw, 3387). --define(wxStyledTextCtrl_GetTextRangeRaw, 3388). --define(wxStyledTextCtrl_SetTextRaw, 3389). --define(wxStyledTextCtrl_GetTextRaw, 3390). --define(wxStyledTextCtrl_AppendTextRaw, 3391). --define(wxArtProvider_GetBitmap, 3392). --define(wxArtProvider_GetIcon, 3393). --define(wxTreeEvent_GetKeyCode, 3394). --define(wxTreeEvent_GetItem, 3395). --define(wxTreeEvent_GetKeyEvent, 3396). --define(wxTreeEvent_GetLabel, 3397). --define(wxTreeEvent_GetOldItem, 3398). --define(wxTreeEvent_GetPoint, 3399). --define(wxTreeEvent_IsEditCancelled, 3400). --define(wxTreeEvent_SetToolTip, 3401). --define(wxNotebookEvent_GetOldSelection, 3402). --define(wxNotebookEvent_GetSelection, 3403). --define(wxNotebookEvent_SetOldSelection, 3404). --define(wxNotebookEvent_SetSelection, 3405). --define(wxFileDataObject_new, 3406). --define(wxFileDataObject_AddFile, 3407). --define(wxFileDataObject_GetFilenames, 3408). --define(wxFileDataObject_destroy, 3409). --define(wxTextDataObject_new, 3410). --define(wxTextDataObject_GetTextLength, 3411). --define(wxTextDataObject_GetText, 3412). --define(wxTextDataObject_SetText, 3413). --define(wxTextDataObject_destroy, 3414). --define(wxBitmapDataObject_new_1_1, 3415). --define(wxBitmapDataObject_new_1_0, 3416). --define(wxBitmapDataObject_GetBitmap, 3417). --define(wxBitmapDataObject_SetBitmap, 3418). --define(wxBitmapDataObject_destroy, 3419). --define(wxClipboard_new, 3421). --define(wxClipboard_destruct, 3422). --define(wxClipboard_AddData, 3423). --define(wxClipboard_Clear, 3424). --define(wxClipboard_Close, 3425). --define(wxClipboard_Flush, 3426). --define(wxClipboard_GetData, 3427). --define(wxClipboard_IsOpened, 3428). --define(wxClipboard_Open, 3429). --define(wxClipboard_SetData, 3430). --define(wxClipboard_UsePrimarySelection, 3432). --define(wxClipboard_IsSupported, 3433). --define(wxClipboard_Get, 3434). --define(wxSpinEvent_GetPosition, 3435). --define(wxSpinEvent_SetPosition, 3436). --define(wxSplitterWindow_new_0, 3437). --define(wxSplitterWindow_new_2, 3438). --define(wxSplitterWindow_destruct, 3439). --define(wxSplitterWindow_Create, 3440). --define(wxSplitterWindow_GetMinimumPaneSize, 3441). --define(wxSplitterWindow_GetSashGravity, 3442). --define(wxSplitterWindow_GetSashPosition, 3443). --define(wxSplitterWindow_GetSplitMode, 3444). --define(wxSplitterWindow_GetWindow1, 3445). --define(wxSplitterWindow_GetWindow2, 3446). --define(wxSplitterWindow_Initialize, 3447). --define(wxSplitterWindow_IsSplit, 3448). --define(wxSplitterWindow_ReplaceWindow, 3449). --define(wxSplitterWindow_SetSashGravity, 3450). --define(wxSplitterWindow_SetSashPosition, 3451). --define(wxSplitterWindow_SetSashSize, 3452). --define(wxSplitterWindow_SetMinimumPaneSize, 3453). --define(wxSplitterWindow_SetSplitMode, 3454). --define(wxSplitterWindow_SplitHorizontally, 3455). --define(wxSplitterWindow_SplitVertically, 3456). --define(wxSplitterWindow_Unsplit, 3457). --define(wxSplitterWindow_UpdateSize, 3458). --define(wxSplitterEvent_GetSashPosition, 3459). --define(wxSplitterEvent_GetX, 3460). --define(wxSplitterEvent_GetY, 3461). --define(wxSplitterEvent_GetWindowBeingRemoved, 3462). --define(wxSplitterEvent_SetSashPosition, 3463). --define(wxHtmlWindow_new_0, 3464). --define(wxHtmlWindow_new_2, 3465). --define(wxHtmlWindow_AppendToPage, 3466). --define(wxHtmlWindow_GetOpenedAnchor, 3467). --define(wxHtmlWindow_GetOpenedPage, 3468). --define(wxHtmlWindow_GetOpenedPageTitle, 3469). --define(wxHtmlWindow_GetRelatedFrame, 3470). --define(wxHtmlWindow_HistoryBack, 3471). --define(wxHtmlWindow_HistoryCanBack, 3472). --define(wxHtmlWindow_HistoryCanForward, 3473). --define(wxHtmlWindow_HistoryClear, 3474). --define(wxHtmlWindow_HistoryForward, 3475). --define(wxHtmlWindow_LoadFile, 3476). --define(wxHtmlWindow_LoadPage, 3477). --define(wxHtmlWindow_SelectAll, 3478). --define(wxHtmlWindow_SelectionToText, 3479). --define(wxHtmlWindow_SelectLine, 3480). --define(wxHtmlWindow_SelectWord, 3481). --define(wxHtmlWindow_SetBorders, 3482). --define(wxHtmlWindow_SetFonts, 3483). --define(wxHtmlWindow_SetPage, 3484). --define(wxHtmlWindow_SetRelatedFrame, 3485). --define(wxHtmlWindow_SetRelatedStatusBar, 3486). --define(wxHtmlWindow_ToText, 3487). --define(wxHtmlWindow_destroy, 3488). --define(wxHtmlLinkEvent_GetLinkInfo, 3489). --define(wxSystemSettings_GetColour, 3490). --define(wxSystemSettings_GetFont, 3491). --define(wxSystemSettings_GetMetric, 3492). --define(wxSystemSettings_GetScreenType, 3493). --define(wxSystemOptions_GetOption, 3494). --define(wxSystemOptions_GetOptionInt, 3495). --define(wxSystemOptions_HasOption, 3496). --define(wxSystemOptions_IsFalse, 3497). --define(wxSystemOptions_SetOption_2_1, 3498). --define(wxSystemOptions_SetOption_2_0, 3499). --define(wxAuiNotebookEvent_SetSelection, 3500). --define(wxAuiNotebookEvent_GetSelection, 3501). --define(wxAuiNotebookEvent_SetOldSelection, 3502). --define(wxAuiNotebookEvent_GetOldSelection, 3503). --define(wxAuiNotebookEvent_SetDragSource, 3504). --define(wxAuiNotebookEvent_GetDragSource, 3505). --define(wxAuiManagerEvent_SetManager, 3506). --define(wxAuiManagerEvent_GetManager, 3507). --define(wxAuiManagerEvent_SetPane, 3508). --define(wxAuiManagerEvent_GetPane, 3509). --define(wxAuiManagerEvent_SetButton, 3510). --define(wxAuiManagerEvent_GetButton, 3511). --define(wxAuiManagerEvent_SetDC, 3512). --define(wxAuiManagerEvent_GetDC, 3513). --define(wxAuiManagerEvent_Veto, 3514). --define(wxAuiManagerEvent_GetVeto, 3515). --define(wxAuiManagerEvent_SetCanVeto, 3516). --define(wxAuiManagerEvent_CanVeto, 3517). --define(wxLogNull_new, 3518). --define(wxLogNull_destroy, 3519). --define(wxTaskBarIcon_new, 3520). --define(wxTaskBarIcon_destruct, 3521). --define(wxTaskBarIcon_PopupMenu, 3522). --define(wxTaskBarIcon_RemoveIcon, 3523). --define(wxTaskBarIcon_SetIcon, 3524). +-define(gdicmn_wxDisplaySize, 2927). +-define(gdicmn_wxSetCursor, 2928). +-define(wxPrintout_new, 2929). +-define(wxPrintout_destruct, 2930). +-define(wxPrintout_GetDC, 2931). +-define(wxPrintout_GetPageSizeMM, 2932). +-define(wxPrintout_GetPageSizePixels, 2933). +-define(wxPrintout_GetPaperRectPixels, 2934). +-define(wxPrintout_GetPPIPrinter, 2935). +-define(wxPrintout_GetPPIScreen, 2936). +-define(wxPrintout_GetTitle, 2937). +-define(wxPrintout_IsPreview, 2938). +-define(wxPrintout_FitThisSizeToPaper, 2939). +-define(wxPrintout_FitThisSizeToPage, 2940). +-define(wxPrintout_FitThisSizeToPageMargins, 2941). +-define(wxPrintout_MapScreenSizeToPaper, 2942). +-define(wxPrintout_MapScreenSizeToPage, 2943). +-define(wxPrintout_MapScreenSizeToPageMargins, 2944). +-define(wxPrintout_MapScreenSizeToDevice, 2945). +-define(wxPrintout_GetLogicalPaperRect, 2946). +-define(wxPrintout_GetLogicalPageRect, 2947). +-define(wxPrintout_GetLogicalPageMarginsRect, 2948). +-define(wxPrintout_SetLogicalOrigin, 2949). +-define(wxPrintout_OffsetLogicalOrigin, 2950). +-define(wxStyledTextCtrl_new_2, 2951). +-define(wxStyledTextCtrl_new_0, 2952). +-define(wxStyledTextCtrl_destruct, 2953). +-define(wxStyledTextCtrl_Create, 2954). +-define(wxStyledTextCtrl_AddText, 2955). +-define(wxStyledTextCtrl_AddStyledText, 2956). +-define(wxStyledTextCtrl_InsertText, 2957). +-define(wxStyledTextCtrl_ClearAll, 2958). +-define(wxStyledTextCtrl_ClearDocumentStyle, 2959). +-define(wxStyledTextCtrl_GetLength, 2960). +-define(wxStyledTextCtrl_GetCharAt, 2961). +-define(wxStyledTextCtrl_GetCurrentPos, 2962). +-define(wxStyledTextCtrl_GetAnchor, 2963). +-define(wxStyledTextCtrl_GetStyleAt, 2964). +-define(wxStyledTextCtrl_Redo, 2965). +-define(wxStyledTextCtrl_SetUndoCollection, 2966). +-define(wxStyledTextCtrl_SelectAll, 2967). +-define(wxStyledTextCtrl_SetSavePoint, 2968). +-define(wxStyledTextCtrl_GetStyledText, 2969). +-define(wxStyledTextCtrl_CanRedo, 2970). +-define(wxStyledTextCtrl_MarkerLineFromHandle, 2971). +-define(wxStyledTextCtrl_MarkerDeleteHandle, 2972). +-define(wxStyledTextCtrl_GetUndoCollection, 2973). +-define(wxStyledTextCtrl_GetViewWhiteSpace, 2974). +-define(wxStyledTextCtrl_SetViewWhiteSpace, 2975). +-define(wxStyledTextCtrl_PositionFromPoint, 2976). +-define(wxStyledTextCtrl_PositionFromPointClose, 2977). +-define(wxStyledTextCtrl_GotoLine, 2978). +-define(wxStyledTextCtrl_GotoPos, 2979). +-define(wxStyledTextCtrl_SetAnchor, 2980). +-define(wxStyledTextCtrl_GetCurLine, 2981). +-define(wxStyledTextCtrl_GetEndStyled, 2982). +-define(wxStyledTextCtrl_ConvertEOLs, 2983). +-define(wxStyledTextCtrl_GetEOLMode, 2984). +-define(wxStyledTextCtrl_SetEOLMode, 2985). +-define(wxStyledTextCtrl_StartStyling, 2986). +-define(wxStyledTextCtrl_SetStyling, 2987). +-define(wxStyledTextCtrl_GetBufferedDraw, 2988). +-define(wxStyledTextCtrl_SetBufferedDraw, 2989). +-define(wxStyledTextCtrl_SetTabWidth, 2990). +-define(wxStyledTextCtrl_GetTabWidth, 2991). +-define(wxStyledTextCtrl_SetCodePage, 2992). +-define(wxStyledTextCtrl_MarkerDefine, 2993). +-define(wxStyledTextCtrl_MarkerSetForeground, 2994). +-define(wxStyledTextCtrl_MarkerSetBackground, 2995). +-define(wxStyledTextCtrl_MarkerAdd, 2996). +-define(wxStyledTextCtrl_MarkerDelete, 2997). +-define(wxStyledTextCtrl_MarkerDeleteAll, 2998). +-define(wxStyledTextCtrl_MarkerGet, 2999). +-define(wxStyledTextCtrl_MarkerNext, 3000). +-define(wxStyledTextCtrl_MarkerPrevious, 3001). +-define(wxStyledTextCtrl_MarkerDefineBitmap, 3002). +-define(wxStyledTextCtrl_MarkerAddSet, 3003). +-define(wxStyledTextCtrl_MarkerSetAlpha, 3004). +-define(wxStyledTextCtrl_SetMarginType, 3005). +-define(wxStyledTextCtrl_GetMarginType, 3006). +-define(wxStyledTextCtrl_SetMarginWidth, 3007). +-define(wxStyledTextCtrl_GetMarginWidth, 3008). +-define(wxStyledTextCtrl_SetMarginMask, 3009). +-define(wxStyledTextCtrl_GetMarginMask, 3010). +-define(wxStyledTextCtrl_SetMarginSensitive, 3011). +-define(wxStyledTextCtrl_GetMarginSensitive, 3012). +-define(wxStyledTextCtrl_StyleClearAll, 3013). +-define(wxStyledTextCtrl_StyleSetForeground, 3014). +-define(wxStyledTextCtrl_StyleSetBackground, 3015). +-define(wxStyledTextCtrl_StyleSetBold, 3016). +-define(wxStyledTextCtrl_StyleSetItalic, 3017). +-define(wxStyledTextCtrl_StyleSetSize, 3018). +-define(wxStyledTextCtrl_StyleSetFaceName, 3019). +-define(wxStyledTextCtrl_StyleSetEOLFilled, 3020). +-define(wxStyledTextCtrl_StyleResetDefault, 3021). +-define(wxStyledTextCtrl_StyleSetUnderline, 3022). +-define(wxStyledTextCtrl_StyleSetCase, 3023). +-define(wxStyledTextCtrl_StyleSetHotSpot, 3024). +-define(wxStyledTextCtrl_SetSelForeground, 3025). +-define(wxStyledTextCtrl_SetSelBackground, 3026). +-define(wxStyledTextCtrl_GetSelAlpha, 3027). +-define(wxStyledTextCtrl_SetSelAlpha, 3028). +-define(wxStyledTextCtrl_SetCaretForeground, 3029). +-define(wxStyledTextCtrl_CmdKeyAssign, 3030). +-define(wxStyledTextCtrl_CmdKeyClear, 3031). +-define(wxStyledTextCtrl_CmdKeyClearAll, 3032). +-define(wxStyledTextCtrl_SetStyleBytes, 3033). +-define(wxStyledTextCtrl_StyleSetVisible, 3034). +-define(wxStyledTextCtrl_GetCaretPeriod, 3035). +-define(wxStyledTextCtrl_SetCaretPeriod, 3036). +-define(wxStyledTextCtrl_SetWordChars, 3037). +-define(wxStyledTextCtrl_BeginUndoAction, 3038). +-define(wxStyledTextCtrl_EndUndoAction, 3039). +-define(wxStyledTextCtrl_IndicatorSetStyle, 3040). +-define(wxStyledTextCtrl_IndicatorGetStyle, 3041). +-define(wxStyledTextCtrl_IndicatorSetForeground, 3042). +-define(wxStyledTextCtrl_IndicatorGetForeground, 3043). +-define(wxStyledTextCtrl_SetWhitespaceForeground, 3044). +-define(wxStyledTextCtrl_SetWhitespaceBackground, 3045). +-define(wxStyledTextCtrl_GetStyleBits, 3046). +-define(wxStyledTextCtrl_SetLineState, 3047). +-define(wxStyledTextCtrl_GetLineState, 3048). +-define(wxStyledTextCtrl_GetMaxLineState, 3049). +-define(wxStyledTextCtrl_GetCaretLineVisible, 3050). +-define(wxStyledTextCtrl_SetCaretLineVisible, 3051). +-define(wxStyledTextCtrl_GetCaretLineBackground, 3052). +-define(wxStyledTextCtrl_SetCaretLineBackground, 3053). +-define(wxStyledTextCtrl_AutoCompShow, 3054). +-define(wxStyledTextCtrl_AutoCompCancel, 3055). +-define(wxStyledTextCtrl_AutoCompActive, 3056). +-define(wxStyledTextCtrl_AutoCompPosStart, 3057). +-define(wxStyledTextCtrl_AutoCompComplete, 3058). +-define(wxStyledTextCtrl_AutoCompStops, 3059). +-define(wxStyledTextCtrl_AutoCompSetSeparator, 3060). +-define(wxStyledTextCtrl_AutoCompGetSeparator, 3061). +-define(wxStyledTextCtrl_AutoCompSelect, 3062). +-define(wxStyledTextCtrl_AutoCompSetCancelAtStart, 3063). +-define(wxStyledTextCtrl_AutoCompGetCancelAtStart, 3064). +-define(wxStyledTextCtrl_AutoCompSetFillUps, 3065). +-define(wxStyledTextCtrl_AutoCompSetChooseSingle, 3066). +-define(wxStyledTextCtrl_AutoCompGetChooseSingle, 3067). +-define(wxStyledTextCtrl_AutoCompSetIgnoreCase, 3068). +-define(wxStyledTextCtrl_AutoCompGetIgnoreCase, 3069). +-define(wxStyledTextCtrl_UserListShow, 3070). +-define(wxStyledTextCtrl_AutoCompSetAutoHide, 3071). +-define(wxStyledTextCtrl_AutoCompGetAutoHide, 3072). +-define(wxStyledTextCtrl_AutoCompSetDropRestOfWord, 3073). +-define(wxStyledTextCtrl_AutoCompGetDropRestOfWord, 3074). +-define(wxStyledTextCtrl_RegisterImage, 3075). +-define(wxStyledTextCtrl_ClearRegisteredImages, 3076). +-define(wxStyledTextCtrl_AutoCompGetTypeSeparator, 3077). +-define(wxStyledTextCtrl_AutoCompSetTypeSeparator, 3078). +-define(wxStyledTextCtrl_AutoCompSetMaxWidth, 3079). +-define(wxStyledTextCtrl_AutoCompGetMaxWidth, 3080). +-define(wxStyledTextCtrl_AutoCompSetMaxHeight, 3081). +-define(wxStyledTextCtrl_AutoCompGetMaxHeight, 3082). +-define(wxStyledTextCtrl_SetIndent, 3083). +-define(wxStyledTextCtrl_GetIndent, 3084). +-define(wxStyledTextCtrl_SetUseTabs, 3085). +-define(wxStyledTextCtrl_GetUseTabs, 3086). +-define(wxStyledTextCtrl_SetLineIndentation, 3087). +-define(wxStyledTextCtrl_GetLineIndentation, 3088). +-define(wxStyledTextCtrl_GetLineIndentPosition, 3089). +-define(wxStyledTextCtrl_GetColumn, 3090). +-define(wxStyledTextCtrl_SetUseHorizontalScrollBar, 3091). +-define(wxStyledTextCtrl_GetUseHorizontalScrollBar, 3092). +-define(wxStyledTextCtrl_SetIndentationGuides, 3093). +-define(wxStyledTextCtrl_GetIndentationGuides, 3094). +-define(wxStyledTextCtrl_SetHighlightGuide, 3095). +-define(wxStyledTextCtrl_GetHighlightGuide, 3096). +-define(wxStyledTextCtrl_GetLineEndPosition, 3097). +-define(wxStyledTextCtrl_GetCodePage, 3098). +-define(wxStyledTextCtrl_GetCaretForeground, 3099). +-define(wxStyledTextCtrl_GetReadOnly, 3100). +-define(wxStyledTextCtrl_SetCurrentPos, 3101). +-define(wxStyledTextCtrl_SetSelectionStart, 3102). +-define(wxStyledTextCtrl_GetSelectionStart, 3103). +-define(wxStyledTextCtrl_SetSelectionEnd, 3104). +-define(wxStyledTextCtrl_GetSelectionEnd, 3105). +-define(wxStyledTextCtrl_SetPrintMagnification, 3106). +-define(wxStyledTextCtrl_GetPrintMagnification, 3107). +-define(wxStyledTextCtrl_SetPrintColourMode, 3108). +-define(wxStyledTextCtrl_GetPrintColourMode, 3109). +-define(wxStyledTextCtrl_FindText, 3110). +-define(wxStyledTextCtrl_FormatRange, 3111). +-define(wxStyledTextCtrl_GetFirstVisibleLine, 3112). +-define(wxStyledTextCtrl_GetLine, 3113). +-define(wxStyledTextCtrl_GetLineCount, 3114). +-define(wxStyledTextCtrl_SetMarginLeft, 3115). +-define(wxStyledTextCtrl_GetMarginLeft, 3116). +-define(wxStyledTextCtrl_SetMarginRight, 3117). +-define(wxStyledTextCtrl_GetMarginRight, 3118). +-define(wxStyledTextCtrl_GetModify, 3119). +-define(wxStyledTextCtrl_SetSelection, 3120). +-define(wxStyledTextCtrl_GetSelectedText, 3121). +-define(wxStyledTextCtrl_GetTextRange, 3122). +-define(wxStyledTextCtrl_HideSelection, 3123). +-define(wxStyledTextCtrl_LineFromPosition, 3124). +-define(wxStyledTextCtrl_PositionFromLine, 3125). +-define(wxStyledTextCtrl_LineScroll, 3126). +-define(wxStyledTextCtrl_EnsureCaretVisible, 3127). +-define(wxStyledTextCtrl_ReplaceSelection, 3128). +-define(wxStyledTextCtrl_SetReadOnly, 3129). +-define(wxStyledTextCtrl_CanPaste, 3130). +-define(wxStyledTextCtrl_CanUndo, 3131). +-define(wxStyledTextCtrl_EmptyUndoBuffer, 3132). +-define(wxStyledTextCtrl_Undo, 3133). +-define(wxStyledTextCtrl_Cut, 3134). +-define(wxStyledTextCtrl_Copy, 3135). +-define(wxStyledTextCtrl_Paste, 3136). +-define(wxStyledTextCtrl_Clear, 3137). +-define(wxStyledTextCtrl_SetText, 3138). +-define(wxStyledTextCtrl_GetText, 3139). +-define(wxStyledTextCtrl_GetTextLength, 3140). +-define(wxStyledTextCtrl_GetOvertype, 3141). +-define(wxStyledTextCtrl_SetCaretWidth, 3142). +-define(wxStyledTextCtrl_GetCaretWidth, 3143). +-define(wxStyledTextCtrl_SetTargetStart, 3144). +-define(wxStyledTextCtrl_GetTargetStart, 3145). +-define(wxStyledTextCtrl_SetTargetEnd, 3146). +-define(wxStyledTextCtrl_GetTargetEnd, 3147). +-define(wxStyledTextCtrl_ReplaceTarget, 3148). +-define(wxStyledTextCtrl_SearchInTarget, 3149). +-define(wxStyledTextCtrl_SetSearchFlags, 3150). +-define(wxStyledTextCtrl_GetSearchFlags, 3151). +-define(wxStyledTextCtrl_CallTipShow, 3152). +-define(wxStyledTextCtrl_CallTipCancel, 3153). +-define(wxStyledTextCtrl_CallTipActive, 3154). +-define(wxStyledTextCtrl_CallTipPosAtStart, 3155). +-define(wxStyledTextCtrl_CallTipSetHighlight, 3156). +-define(wxStyledTextCtrl_CallTipSetBackground, 3157). +-define(wxStyledTextCtrl_CallTipSetForeground, 3158). +-define(wxStyledTextCtrl_CallTipSetForegroundHighlight, 3159). +-define(wxStyledTextCtrl_CallTipUseStyle, 3160). +-define(wxStyledTextCtrl_VisibleFromDocLine, 3161). +-define(wxStyledTextCtrl_DocLineFromVisible, 3162). +-define(wxStyledTextCtrl_WrapCount, 3163). +-define(wxStyledTextCtrl_SetFoldLevel, 3164). +-define(wxStyledTextCtrl_GetFoldLevel, 3165). +-define(wxStyledTextCtrl_GetLastChild, 3166). +-define(wxStyledTextCtrl_GetFoldParent, 3167). +-define(wxStyledTextCtrl_ShowLines, 3168). +-define(wxStyledTextCtrl_HideLines, 3169). +-define(wxStyledTextCtrl_GetLineVisible, 3170). +-define(wxStyledTextCtrl_SetFoldExpanded, 3171). +-define(wxStyledTextCtrl_GetFoldExpanded, 3172). +-define(wxStyledTextCtrl_ToggleFold, 3173). +-define(wxStyledTextCtrl_EnsureVisible, 3174). +-define(wxStyledTextCtrl_SetFoldFlags, 3175). +-define(wxStyledTextCtrl_EnsureVisibleEnforcePolicy, 3176). +-define(wxStyledTextCtrl_SetTabIndents, 3177). +-define(wxStyledTextCtrl_GetTabIndents, 3178). +-define(wxStyledTextCtrl_SetBackSpaceUnIndents, 3179). +-define(wxStyledTextCtrl_GetBackSpaceUnIndents, 3180). +-define(wxStyledTextCtrl_SetMouseDwellTime, 3181). +-define(wxStyledTextCtrl_GetMouseDwellTime, 3182). +-define(wxStyledTextCtrl_WordStartPosition, 3183). +-define(wxStyledTextCtrl_WordEndPosition, 3184). +-define(wxStyledTextCtrl_SetWrapMode, 3185). +-define(wxStyledTextCtrl_GetWrapMode, 3186). +-define(wxStyledTextCtrl_SetWrapVisualFlags, 3187). +-define(wxStyledTextCtrl_GetWrapVisualFlags, 3188). +-define(wxStyledTextCtrl_SetWrapVisualFlagsLocation, 3189). +-define(wxStyledTextCtrl_GetWrapVisualFlagsLocation, 3190). +-define(wxStyledTextCtrl_SetWrapStartIndent, 3191). +-define(wxStyledTextCtrl_GetWrapStartIndent, 3192). +-define(wxStyledTextCtrl_SetLayoutCache, 3193). +-define(wxStyledTextCtrl_GetLayoutCache, 3194). +-define(wxStyledTextCtrl_SetScrollWidth, 3195). +-define(wxStyledTextCtrl_GetScrollWidth, 3196). +-define(wxStyledTextCtrl_TextWidth, 3197). +-define(wxStyledTextCtrl_GetEndAtLastLine, 3198). +-define(wxStyledTextCtrl_TextHeight, 3199). +-define(wxStyledTextCtrl_SetUseVerticalScrollBar, 3200). +-define(wxStyledTextCtrl_GetUseVerticalScrollBar, 3201). +-define(wxStyledTextCtrl_AppendText, 3202). +-define(wxStyledTextCtrl_GetTwoPhaseDraw, 3203). +-define(wxStyledTextCtrl_SetTwoPhaseDraw, 3204). +-define(wxStyledTextCtrl_TargetFromSelection, 3205). +-define(wxStyledTextCtrl_LinesJoin, 3206). +-define(wxStyledTextCtrl_LinesSplit, 3207). +-define(wxStyledTextCtrl_SetFoldMarginColour, 3208). +-define(wxStyledTextCtrl_SetFoldMarginHiColour, 3209). +-define(wxStyledTextCtrl_LineDown, 3210). +-define(wxStyledTextCtrl_LineDownExtend, 3211). +-define(wxStyledTextCtrl_LineUp, 3212). +-define(wxStyledTextCtrl_LineUpExtend, 3213). +-define(wxStyledTextCtrl_CharLeft, 3214). +-define(wxStyledTextCtrl_CharLeftExtend, 3215). +-define(wxStyledTextCtrl_CharRight, 3216). +-define(wxStyledTextCtrl_CharRightExtend, 3217). +-define(wxStyledTextCtrl_WordLeft, 3218). +-define(wxStyledTextCtrl_WordLeftExtend, 3219). +-define(wxStyledTextCtrl_WordRight, 3220). +-define(wxStyledTextCtrl_WordRightExtend, 3221). +-define(wxStyledTextCtrl_Home, 3222). +-define(wxStyledTextCtrl_HomeExtend, 3223). +-define(wxStyledTextCtrl_LineEnd, 3224). +-define(wxStyledTextCtrl_LineEndExtend, 3225). +-define(wxStyledTextCtrl_DocumentStart, 3226). +-define(wxStyledTextCtrl_DocumentStartExtend, 3227). +-define(wxStyledTextCtrl_DocumentEnd, 3228). +-define(wxStyledTextCtrl_DocumentEndExtend, 3229). +-define(wxStyledTextCtrl_PageUp, 3230). +-define(wxStyledTextCtrl_PageUpExtend, 3231). +-define(wxStyledTextCtrl_PageDown, 3232). +-define(wxStyledTextCtrl_PageDownExtend, 3233). +-define(wxStyledTextCtrl_EditToggleOvertype, 3234). +-define(wxStyledTextCtrl_Cancel, 3235). +-define(wxStyledTextCtrl_DeleteBack, 3236). +-define(wxStyledTextCtrl_Tab, 3237). +-define(wxStyledTextCtrl_BackTab, 3238). +-define(wxStyledTextCtrl_NewLine, 3239). +-define(wxStyledTextCtrl_FormFeed, 3240). +-define(wxStyledTextCtrl_VCHome, 3241). +-define(wxStyledTextCtrl_VCHomeExtend, 3242). +-define(wxStyledTextCtrl_ZoomIn, 3243). +-define(wxStyledTextCtrl_ZoomOut, 3244). +-define(wxStyledTextCtrl_DelWordLeft, 3245). +-define(wxStyledTextCtrl_DelWordRight, 3246). +-define(wxStyledTextCtrl_LineCut, 3247). +-define(wxStyledTextCtrl_LineDelete, 3248). +-define(wxStyledTextCtrl_LineTranspose, 3249). +-define(wxStyledTextCtrl_LineDuplicate, 3250). +-define(wxStyledTextCtrl_LowerCase, 3251). +-define(wxStyledTextCtrl_UpperCase, 3252). +-define(wxStyledTextCtrl_LineScrollDown, 3253). +-define(wxStyledTextCtrl_LineScrollUp, 3254). +-define(wxStyledTextCtrl_DeleteBackNotLine, 3255). +-define(wxStyledTextCtrl_HomeDisplay, 3256). +-define(wxStyledTextCtrl_HomeDisplayExtend, 3257). +-define(wxStyledTextCtrl_LineEndDisplay, 3258). +-define(wxStyledTextCtrl_LineEndDisplayExtend, 3259). +-define(wxStyledTextCtrl_HomeWrapExtend, 3260). +-define(wxStyledTextCtrl_LineEndWrap, 3261). +-define(wxStyledTextCtrl_LineEndWrapExtend, 3262). +-define(wxStyledTextCtrl_VCHomeWrap, 3263). +-define(wxStyledTextCtrl_VCHomeWrapExtend, 3264). +-define(wxStyledTextCtrl_LineCopy, 3265). +-define(wxStyledTextCtrl_MoveCaretInsideView, 3266). +-define(wxStyledTextCtrl_LineLength, 3267). +-define(wxStyledTextCtrl_BraceHighlight, 3268). +-define(wxStyledTextCtrl_BraceBadLight, 3269). +-define(wxStyledTextCtrl_BraceMatch, 3270). +-define(wxStyledTextCtrl_GetViewEOL, 3271). +-define(wxStyledTextCtrl_SetViewEOL, 3272). +-define(wxStyledTextCtrl_SetModEventMask, 3273). +-define(wxStyledTextCtrl_GetEdgeColumn, 3274). +-define(wxStyledTextCtrl_SetEdgeColumn, 3275). +-define(wxStyledTextCtrl_SetEdgeMode, 3276). +-define(wxStyledTextCtrl_GetEdgeMode, 3277). +-define(wxStyledTextCtrl_GetEdgeColour, 3278). +-define(wxStyledTextCtrl_SetEdgeColour, 3279). +-define(wxStyledTextCtrl_SearchAnchor, 3280). +-define(wxStyledTextCtrl_SearchNext, 3281). +-define(wxStyledTextCtrl_SearchPrev, 3282). +-define(wxStyledTextCtrl_LinesOnScreen, 3283). +-define(wxStyledTextCtrl_UsePopUp, 3284). +-define(wxStyledTextCtrl_SelectionIsRectangle, 3285). +-define(wxStyledTextCtrl_SetZoom, 3286). +-define(wxStyledTextCtrl_GetZoom, 3287). +-define(wxStyledTextCtrl_GetModEventMask, 3288). +-define(wxStyledTextCtrl_SetSTCFocus, 3289). +-define(wxStyledTextCtrl_GetSTCFocus, 3290). +-define(wxStyledTextCtrl_SetStatus, 3291). +-define(wxStyledTextCtrl_GetStatus, 3292). +-define(wxStyledTextCtrl_SetMouseDownCaptures, 3293). +-define(wxStyledTextCtrl_GetMouseDownCaptures, 3294). +-define(wxStyledTextCtrl_SetSTCCursor, 3295). +-define(wxStyledTextCtrl_GetSTCCursor, 3296). +-define(wxStyledTextCtrl_SetControlCharSymbol, 3297). +-define(wxStyledTextCtrl_GetControlCharSymbol, 3298). +-define(wxStyledTextCtrl_WordPartLeft, 3299). +-define(wxStyledTextCtrl_WordPartLeftExtend, 3300). +-define(wxStyledTextCtrl_WordPartRight, 3301). +-define(wxStyledTextCtrl_WordPartRightExtend, 3302). +-define(wxStyledTextCtrl_SetVisiblePolicy, 3303). +-define(wxStyledTextCtrl_DelLineLeft, 3304). +-define(wxStyledTextCtrl_DelLineRight, 3305). +-define(wxStyledTextCtrl_GetXOffset, 3306). +-define(wxStyledTextCtrl_ChooseCaretX, 3307). +-define(wxStyledTextCtrl_SetXCaretPolicy, 3308). +-define(wxStyledTextCtrl_SetYCaretPolicy, 3309). +-define(wxStyledTextCtrl_GetPrintWrapMode, 3310). +-define(wxStyledTextCtrl_SetHotspotActiveForeground, 3311). +-define(wxStyledTextCtrl_SetHotspotActiveBackground, 3312). +-define(wxStyledTextCtrl_SetHotspotActiveUnderline, 3313). +-define(wxStyledTextCtrl_SetHotspotSingleLine, 3314). +-define(wxStyledTextCtrl_ParaDownExtend, 3315). +-define(wxStyledTextCtrl_ParaUp, 3316). +-define(wxStyledTextCtrl_ParaUpExtend, 3317). +-define(wxStyledTextCtrl_PositionBefore, 3318). +-define(wxStyledTextCtrl_PositionAfter, 3319). +-define(wxStyledTextCtrl_CopyRange, 3320). +-define(wxStyledTextCtrl_CopyText, 3321). +-define(wxStyledTextCtrl_SetSelectionMode, 3322). +-define(wxStyledTextCtrl_GetSelectionMode, 3323). +-define(wxStyledTextCtrl_LineDownRectExtend, 3324). +-define(wxStyledTextCtrl_LineUpRectExtend, 3325). +-define(wxStyledTextCtrl_CharLeftRectExtend, 3326). +-define(wxStyledTextCtrl_CharRightRectExtend, 3327). +-define(wxStyledTextCtrl_HomeRectExtend, 3328). +-define(wxStyledTextCtrl_VCHomeRectExtend, 3329). +-define(wxStyledTextCtrl_LineEndRectExtend, 3330). +-define(wxStyledTextCtrl_PageUpRectExtend, 3331). +-define(wxStyledTextCtrl_PageDownRectExtend, 3332). +-define(wxStyledTextCtrl_StutteredPageUp, 3333). +-define(wxStyledTextCtrl_StutteredPageUpExtend, 3334). +-define(wxStyledTextCtrl_StutteredPageDown, 3335). +-define(wxStyledTextCtrl_StutteredPageDownExtend, 3336). +-define(wxStyledTextCtrl_WordLeftEnd, 3337). +-define(wxStyledTextCtrl_WordLeftEndExtend, 3338). +-define(wxStyledTextCtrl_WordRightEnd, 3339). +-define(wxStyledTextCtrl_WordRightEndExtend, 3340). +-define(wxStyledTextCtrl_SetWhitespaceChars, 3341). +-define(wxStyledTextCtrl_SetCharsDefault, 3342). +-define(wxStyledTextCtrl_AutoCompGetCurrent, 3343). +-define(wxStyledTextCtrl_Allocate, 3344). +-define(wxStyledTextCtrl_FindColumn, 3345). +-define(wxStyledTextCtrl_GetCaretSticky, 3346). +-define(wxStyledTextCtrl_SetCaretSticky, 3347). +-define(wxStyledTextCtrl_ToggleCaretSticky, 3348). +-define(wxStyledTextCtrl_SetPasteConvertEndings, 3349). +-define(wxStyledTextCtrl_GetPasteConvertEndings, 3350). +-define(wxStyledTextCtrl_SelectionDuplicate, 3351). +-define(wxStyledTextCtrl_SetCaretLineBackAlpha, 3352). +-define(wxStyledTextCtrl_GetCaretLineBackAlpha, 3353). +-define(wxStyledTextCtrl_StartRecord, 3354). +-define(wxStyledTextCtrl_StopRecord, 3355). +-define(wxStyledTextCtrl_SetLexer, 3356). +-define(wxStyledTextCtrl_GetLexer, 3357). +-define(wxStyledTextCtrl_Colourise, 3358). +-define(wxStyledTextCtrl_SetProperty, 3359). +-define(wxStyledTextCtrl_SetKeyWords, 3360). +-define(wxStyledTextCtrl_SetLexerLanguage, 3361). +-define(wxStyledTextCtrl_GetProperty, 3362). +-define(wxStyledTextCtrl_GetStyleBitsNeeded, 3363). +-define(wxStyledTextCtrl_GetCurrentLine, 3364). +-define(wxStyledTextCtrl_StyleSetSpec, 3365). +-define(wxStyledTextCtrl_StyleSetFont, 3366). +-define(wxStyledTextCtrl_StyleSetFontAttr, 3367). +-define(wxStyledTextCtrl_StyleSetCharacterSet, 3368). +-define(wxStyledTextCtrl_StyleSetFontEncoding, 3369). +-define(wxStyledTextCtrl_CmdKeyExecute, 3370). +-define(wxStyledTextCtrl_SetMargins, 3371). +-define(wxStyledTextCtrl_GetSelection, 3372). +-define(wxStyledTextCtrl_PointFromPosition, 3373). +-define(wxStyledTextCtrl_ScrollToLine, 3374). +-define(wxStyledTextCtrl_ScrollToColumn, 3375). +-define(wxStyledTextCtrl_SetVScrollBar, 3376). +-define(wxStyledTextCtrl_SetHScrollBar, 3377). +-define(wxStyledTextCtrl_GetLastKeydownProcessed, 3378). +-define(wxStyledTextCtrl_SetLastKeydownProcessed, 3379). +-define(wxStyledTextCtrl_SaveFile, 3380). +-define(wxStyledTextCtrl_LoadFile, 3381). +-define(wxStyledTextCtrl_DoDragOver, 3382). +-define(wxStyledTextCtrl_DoDropText, 3383). +-define(wxStyledTextCtrl_GetUseAntiAliasing, 3384). +-define(wxStyledTextCtrl_AddTextRaw, 3385). +-define(wxStyledTextCtrl_InsertTextRaw, 3386). +-define(wxStyledTextCtrl_GetCurLineRaw, 3387). +-define(wxStyledTextCtrl_GetLineRaw, 3388). +-define(wxStyledTextCtrl_GetSelectedTextRaw, 3389). +-define(wxStyledTextCtrl_GetTextRangeRaw, 3390). +-define(wxStyledTextCtrl_SetTextRaw, 3391). +-define(wxStyledTextCtrl_GetTextRaw, 3392). +-define(wxStyledTextCtrl_AppendTextRaw, 3393). +-define(wxArtProvider_GetBitmap, 3394). +-define(wxArtProvider_GetIcon, 3395). +-define(wxTreeEvent_GetKeyCode, 3396). +-define(wxTreeEvent_GetItem, 3397). +-define(wxTreeEvent_GetKeyEvent, 3398). +-define(wxTreeEvent_GetLabel, 3399). +-define(wxTreeEvent_GetOldItem, 3400). +-define(wxTreeEvent_GetPoint, 3401). +-define(wxTreeEvent_IsEditCancelled, 3402). +-define(wxTreeEvent_SetToolTip, 3403). +-define(wxNotebookEvent_GetOldSelection, 3404). +-define(wxNotebookEvent_GetSelection, 3405). +-define(wxNotebookEvent_SetOldSelection, 3406). +-define(wxNotebookEvent_SetSelection, 3407). +-define(wxFileDataObject_new, 3408). +-define(wxFileDataObject_AddFile, 3409). +-define(wxFileDataObject_GetFilenames, 3410). +-define(wxFileDataObject_destroy, 3411). +-define(wxTextDataObject_new, 3412). +-define(wxTextDataObject_GetTextLength, 3413). +-define(wxTextDataObject_GetText, 3414). +-define(wxTextDataObject_SetText, 3415). +-define(wxTextDataObject_destroy, 3416). +-define(wxBitmapDataObject_new_1_1, 3417). +-define(wxBitmapDataObject_new_1_0, 3418). +-define(wxBitmapDataObject_GetBitmap, 3419). +-define(wxBitmapDataObject_SetBitmap, 3420). +-define(wxBitmapDataObject_destroy, 3421). +-define(wxClipboard_new, 3423). +-define(wxClipboard_destruct, 3424). +-define(wxClipboard_AddData, 3425). +-define(wxClipboard_Clear, 3426). +-define(wxClipboard_Close, 3427). +-define(wxClipboard_Flush, 3428). +-define(wxClipboard_GetData, 3429). +-define(wxClipboard_IsOpened, 3430). +-define(wxClipboard_Open, 3431). +-define(wxClipboard_SetData, 3432). +-define(wxClipboard_UsePrimarySelection, 3434). +-define(wxClipboard_IsSupported, 3435). +-define(wxClipboard_Get, 3436). +-define(wxSpinEvent_GetPosition, 3437). +-define(wxSpinEvent_SetPosition, 3438). +-define(wxSplitterWindow_new_0, 3439). +-define(wxSplitterWindow_new_2, 3440). +-define(wxSplitterWindow_destruct, 3441). +-define(wxSplitterWindow_Create, 3442). +-define(wxSplitterWindow_GetMinimumPaneSize, 3443). +-define(wxSplitterWindow_GetSashGravity, 3444). +-define(wxSplitterWindow_GetSashPosition, 3445). +-define(wxSplitterWindow_GetSplitMode, 3446). +-define(wxSplitterWindow_GetWindow1, 3447). +-define(wxSplitterWindow_GetWindow2, 3448). +-define(wxSplitterWindow_Initialize, 3449). +-define(wxSplitterWindow_IsSplit, 3450). +-define(wxSplitterWindow_ReplaceWindow, 3451). +-define(wxSplitterWindow_SetSashGravity, 3452). +-define(wxSplitterWindow_SetSashPosition, 3453). +-define(wxSplitterWindow_SetSashSize, 3454). +-define(wxSplitterWindow_SetMinimumPaneSize, 3455). +-define(wxSplitterWindow_SetSplitMode, 3456). +-define(wxSplitterWindow_SplitHorizontally, 3457). +-define(wxSplitterWindow_SplitVertically, 3458). +-define(wxSplitterWindow_Unsplit, 3459). +-define(wxSplitterWindow_UpdateSize, 3460). +-define(wxSplitterEvent_GetSashPosition, 3461). +-define(wxSplitterEvent_GetX, 3462). +-define(wxSplitterEvent_GetY, 3463). +-define(wxSplitterEvent_GetWindowBeingRemoved, 3464). +-define(wxSplitterEvent_SetSashPosition, 3465). +-define(wxHtmlWindow_new_0, 3466). +-define(wxHtmlWindow_new_2, 3467). +-define(wxHtmlWindow_AppendToPage, 3468). +-define(wxHtmlWindow_GetOpenedAnchor, 3469). +-define(wxHtmlWindow_GetOpenedPage, 3470). +-define(wxHtmlWindow_GetOpenedPageTitle, 3471). +-define(wxHtmlWindow_GetRelatedFrame, 3472). +-define(wxHtmlWindow_HistoryBack, 3473). +-define(wxHtmlWindow_HistoryCanBack, 3474). +-define(wxHtmlWindow_HistoryCanForward, 3475). +-define(wxHtmlWindow_HistoryClear, 3476). +-define(wxHtmlWindow_HistoryForward, 3477). +-define(wxHtmlWindow_LoadFile, 3478). +-define(wxHtmlWindow_LoadPage, 3479). +-define(wxHtmlWindow_SelectAll, 3480). +-define(wxHtmlWindow_SelectionToText, 3481). +-define(wxHtmlWindow_SelectLine, 3482). +-define(wxHtmlWindow_SelectWord, 3483). +-define(wxHtmlWindow_SetBorders, 3484). +-define(wxHtmlWindow_SetFonts, 3485). +-define(wxHtmlWindow_SetPage, 3486). +-define(wxHtmlWindow_SetRelatedFrame, 3487). +-define(wxHtmlWindow_SetRelatedStatusBar, 3488). +-define(wxHtmlWindow_ToText, 3489). +-define(wxHtmlWindow_destroy, 3490). +-define(wxHtmlLinkEvent_GetLinkInfo, 3491). +-define(wxSystemSettings_GetColour, 3492). +-define(wxSystemSettings_GetFont, 3493). +-define(wxSystemSettings_GetMetric, 3494). +-define(wxSystemSettings_GetScreenType, 3495). +-define(wxSystemOptions_GetOption, 3496). +-define(wxSystemOptions_GetOptionInt, 3497). +-define(wxSystemOptions_HasOption, 3498). +-define(wxSystemOptions_IsFalse, 3499). +-define(wxSystemOptions_SetOption_2_1, 3500). +-define(wxSystemOptions_SetOption_2_0, 3501). +-define(wxAuiNotebookEvent_SetSelection, 3502). +-define(wxAuiNotebookEvent_GetSelection, 3503). +-define(wxAuiNotebookEvent_SetOldSelection, 3504). +-define(wxAuiNotebookEvent_GetOldSelection, 3505). +-define(wxAuiNotebookEvent_SetDragSource, 3506). +-define(wxAuiNotebookEvent_GetDragSource, 3507). +-define(wxAuiManagerEvent_SetManager, 3508). +-define(wxAuiManagerEvent_GetManager, 3509). +-define(wxAuiManagerEvent_SetPane, 3510). +-define(wxAuiManagerEvent_GetPane, 3511). +-define(wxAuiManagerEvent_SetButton, 3512). +-define(wxAuiManagerEvent_GetButton, 3513). +-define(wxAuiManagerEvent_SetDC, 3514). +-define(wxAuiManagerEvent_GetDC, 3515). +-define(wxAuiManagerEvent_Veto, 3516). +-define(wxAuiManagerEvent_GetVeto, 3517). +-define(wxAuiManagerEvent_SetCanVeto, 3518). +-define(wxAuiManagerEvent_CanVeto, 3519). +-define(wxLogNull_new, 3520). +-define(wxLogNull_destroy, 3521). +-define(wxTaskBarIcon_new, 3522). +-define(wxTaskBarIcon_destruct, 3523). +-define(wxTaskBarIcon_PopupMenu, 3524). +-define(wxTaskBarIcon_RemoveIcon, 3525). +-define(wxTaskBarIcon_SetIcon, 3526). +-define(wxLocale_new_0, 3527). +-define(wxLocale_new_2, 3529). +-define(wxLocale_destruct, 3530). +-define(wxLocale_Init, 3532). +-define(wxLocale_AddCatalog_1, 3533). +-define(wxLocale_AddCatalog_3, 3534). +-define(wxLocale_AddCatalogLookupPathPrefix, 3535). +-define(wxLocale_GetCanonicalName, 3536). +-define(wxLocale_GetLanguage, 3537). +-define(wxLocale_GetLanguageName, 3538). +-define(wxLocale_GetLocale, 3539). +-define(wxLocale_GetName, 3540). +-define(wxLocale_GetString_2, 3541). +-define(wxLocale_GetString_4, 3542). +-define(wxLocale_GetHeaderValue, 3543). +-define(wxLocale_GetSysName, 3544). +-define(wxLocale_GetSystemEncoding, 3545). +-define(wxLocale_GetSystemEncodingName, 3546). +-define(wxLocale_GetSystemLanguage, 3547). +-define(wxLocale_IsLoaded, 3548). +-define(wxLocale_IsOk, 3549). diff --git a/lib/wx/src/wxe_master.erl b/lib/wx/src/wxe_master.erl index b98a7c793e..4b8a8f5720 100644 --- a/lib/wx/src/wxe_master.erl +++ b/lib/wx/src/wxe_master.erl @@ -28,7 +28,7 @@ -behaviour(gen_server). %% API --export([start/1, init_port/1, init_opengl/0]). +-export([start/1, init_port/1, init_opengl/0, fetch_msgs/0]). %% gen_server callbacks -export([init/1, handle_call/3, handle_cast/2, handle_info/2, @@ -36,7 +36,9 @@ -record(state, {cb_port, %% Callback port and to erlang messages goes via it. users, %% List of wx servers, needed ?? - driver}). %% Driver name so wx_server can create it's own port + driver, %% Driver name so wx_server can create it's own port + msgs=[] %% Early messages (such as openfiles on OSX) + }). -include("wxe.hrl"). -include("gen/wxe_debug.hrl"). @@ -76,12 +78,18 @@ init_port(SilentStart) -> %%-------------------------------------------------------------------- -%% Initlizes the opengl library +%% Initalizes the opengl library %%-------------------------------------------------------------------- init_opengl() -> GLLib = wxe_util:wxgl_dl(), wxe_util:call(?WXE_INIT_OPENGL, <<(list_to_binary(GLLib))/binary, 0:8>>). +%%-------------------------------------------------------------------- +%% Fetch early messages, hack to get start up args on mac +%%-------------------------------------------------------------------- +fetch_msgs() -> + gen_server:call(?MODULE, fetch_msgs, infinity). + %%==================================================================== %% gen_server callbacks %%==================================================================== @@ -152,6 +160,8 @@ init([SilentStart]) -> %%-------------------------------------------------------------------- handle_call(init_port, From, State=#state{driver=Driver,cb_port=CBPort, users=Users}) -> {reply, {Driver,CBPort}, State#state{users=gb_sets:add(From,Users)}}; +handle_call(fetch_msgs, _From, State=#state{msgs=Msgs}) -> + {reply, lists:reverse(Msgs), State#state{msgs=[]}}; handle_call(_Request, _From, State) -> %%io:format("Unknown request ~p sent to ~p from ~p ~n",[_Request, ?MODULE, _From]), Reply = ok, @@ -182,6 +192,8 @@ handle_info({wxe_driver, internal_error, Msg}, State) -> handle_info({wxe_driver, debug, Msg}, State) -> io:format("WX DBG: ~s~n", [Msg]), {noreply, State}; +handle_info({wxe_driver, open_file, File}, State=#state{msgs=Msgs}) -> + {noreply, State#state{msgs=[File|Msgs]}}; handle_info(_Info, State) -> io:format("Unknown message ~p sent to ~p~n",[_Info, ?MODULE]), {noreply, State}. diff --git a/lib/wx/src/wxe_server.erl b/lib/wx/src/wxe_server.erl index aed9dca7ce..465b9da2e0 100644 --- a/lib/wx/src/wxe_server.erl +++ b/lib/wx/src/wxe_server.erl @@ -1,7 +1,7 @@ %% %% %CopyrightBegin% %% -%% Copyright Ericsson AB 2008-2013. All Rights Reserved. +%% Copyright Ericsson AB 2008-2014. All Rights Reserved. %% %% The contents of this file are subject to the Erlang Public License, %% Version 1.1, (the "License"); you may not use this file except in @@ -192,17 +192,6 @@ handle_info({'DOWN',_,process,Pid,_}, State=#state{users=Users0,cleaners=Cs}) -> {noreply, State} end; -handle_info(Msg = {'_wxe_destroy_', Pid}, State) - when is_pid(Pid) -> - case erlang:is_process_alive(Pid) of - true -> - Pid ! Msg, - ok; - false -> - ok - end, - {noreply, State}; - handle_info(_Info, State) -> ?log("Unknown message ~p sent to ~p~n",[_Info, ?MODULE]), {noreply, State}. diff --git a/lib/wx/test/wx_basic_SUITE.erl b/lib/wx/test/wx_basic_SUITE.erl index 7bdbd4594c..e3bbb21a23 100644 --- a/lib/wx/test/wx_basic_SUITE.erl +++ b/lib/wx/test/wx_basic_SUITE.erl @@ -341,23 +341,22 @@ wx_object(Config) -> Me = self(), ?m({call, foobar, {Me, _}}, wx_object:call(Frame, foobar)), ?m(ok, wx_object:cast(Frame, foobar2)), - ?m([{cast, foobar2}], flush()), + ?m([{cast, foobar2}|_], flush()), FramePid = wx_object:get_pid(Frame), io:format("wx_object pid ~p~n",[FramePid]), FramePid ! foo3, - ?m([{info, foo3}], flush()), + ?m([{info, foo3}|_], flush()), ?m(ok, wx_object:cast(Frame, fun(_) -> hehe end)), - ?m([{cast, hehe}], flush()), + ?m([{cast, hehe}|_], flush()), wxWindow:refresh(Frame), - ?m([{sync_event, #wx{event=#wxPaint{}}, _}], flush()), + ?m([{sync_event, #wx{event=#wxPaint{}}, _}|_], flush()), ?m(ok, wx_object:cast(Frame, fun(_) -> timer:sleep(200), slept end)), %% The sleep above should not hinder the Paint event below %% Which it did in my buggy handling of the sync_callback wxWindow:refresh(Frame), - ?m([{sync_event, #wx{event=#wxPaint{}}, _}], flush()), timer:sleep(500), - ?m([{cast, slept}], flush()), + ?m([{sync_event, #wx{event=#wxPaint{}}, _}, {cast, slept}|_], flush()), Monitor = erlang:monitor(process, FramePid), case proplists:get_value(user, Config, false) of @@ -397,7 +396,7 @@ check_events([], Async, Sync) -> end. flush() -> - flush([], 500). + flush([], 1500). flush(Acc, Wait) -> receive diff --git a/lib/wx/test/wx_class_SUITE.erl b/lib/wx/test/wx_class_SUITE.erl index 0e151ccc9b..b375c9d515 100644 --- a/lib/wx/test/wx_class_SUITE.erl +++ b/lib/wx/test/wx_class_SUITE.erl @@ -1,7 +1,7 @@ %% %% %CopyrightBegin% %% -%% Copyright Ericsson AB 2008-2013. All Rights Reserved. +%% Copyright Ericsson AB 2008-2014. All Rights Reserved. %% %% The contents of this file are subject to the Erlang Public License, %% Version 1.1, (the "License"); you may not use this file except in @@ -344,21 +344,21 @@ listCtrlSort(Config) -> Wx = wx:new(), Frame = wxFrame:new(Wx, ?wxID_ANY, "Frame"), - LC = wxListCtrl:new(Frame, [{style, ?wxLC_REPORT bor ?wxLC_SORT_ASCENDING}]), + LC = wxListCtrl:new(Frame, [{style, ?wxLC_REPORT}]), %% must be done crashes in wxwidgets otherwise. wxListCtrl:insertColumn(LC, 0, "Column"), Add = fun(Int) -> - wxListCtrl:insertItem(LC, Int, integer_to_list(Int)), + wxListCtrl:insertItem(LC, Int, "ABC " ++ integer_to_list(Int)), %% ItemData Can only be integers currently - wxListCtrl:setItemData(LC, Int, abs(2500-Int)) + wxListCtrl:setItemData(LC, Int, abs(50-Int)) end, - wx:foreach(Add, lists:seq(0,5000)), + wx:foreach(Add, lists:seq(0,50)), wxWindow:show(Frame), - timer:sleep(200), + timer:sleep(2000), Sort = fun() -> wxListCtrl:sortItems(LC, fun(A, B) -> @@ -374,11 +374,12 @@ listCtrlSort(Config) -> io:format("Sorted ~p ~n",[Time]), Item = wxListItem:new(), + wxListItem:setMask(Item, ?wxLIST_MASK_TEXT), _List = wx:map(fun(Int) -> wxListItem:setId(Item, Int), ?m(true, wxListCtrl:getItem(LC, Item)), - io:format("~s~n",[wxListItem:getText(Item)]) - end, lists:seq(0,100)), + io:format("~p: ~s~n",[Int, wxListItem:getText(Item)]) + end, lists:seq(0,10)), wxListItem:destroy(Item), wx_test_lib:wx_destroy(Frame,Config). diff --git a/make/ose_lm.mk.in b/make/ose_lm.mk.in index 2e659ada1a..5455ad94c6 100644 --- a/make/ose_lm.mk.in +++ b/make/ose_lm.mk.in @@ -37,7 +37,9 @@ LDR1FLAGS = @erl_xcomp_ose_ldflags_pass1@ LDR2FLAGS = @erl_xcomp_ose_ldflags_pass2@ OSEROOT = @erl_xcomp_ose_OSEROOT@ LCF = @erl_xcomp_ose_LM_LCF@ -LMCONF = @erl_xcomp_ose_LM_CONF@ +BEAM_LMCONF = @erl_xcomp_ose_BEAM_LM_CONF@ +EPMD_LMCONF = @erl_xcomp_ose_EPMD_LM_CONF@ +RUN_ERL_LMCONF = @erl_xcomp_ose_RUN_ERL_LM_CONF@ STRIP = @erl_xcomp_ose_STRIP@ LM_POST_LINK = @erl_xcomp_ose_LM_POST_LINK@ LM_SET_CONF = @erl_xcomp_ose_LM_SET_CONF@ diff --git a/xcomp/erl-xcomp-powerpc-ose5.conf b/xcomp/erl-xcomp-powerpc-ose5.conf index 60b75b36c1..bf49b32827 100644 --- a/xcomp/erl-xcomp-powerpc-ose5.conf +++ b/xcomp/erl-xcomp-powerpc-ose5.conf @@ -338,8 +338,14 @@ erl_xcomp_ose_LM_ELF_SIZE="${OSEROOT}/bin/${HOST}/lm_elf_size" # * `erl_xcomp_ose_LM_LCF` - OSE load module linker configuration file erl_xcomp_ose_LM_LCF="${ERL_TOP}/erts/emulator/sys/ose/gcc_${GCCVERSION}_lm_ppc.lcf" -# * `erl_xcomp_ose_LM_CONF` - OSE load module default configuration file -erl_xcomp_ose_LM_CONF="${ERL_TOP}/erts/emulator/sys/ose/default.lmconf" +# * `erl_xcomp_ose_BEAM_LM_CONF` - beam OSE load module configuration file +erl_xcomp_ose_BEAM_LM_CONF="${ERL_TOP}/erts/emulator/sys/ose/beam.lmconf" + +# * `erl_xcomp_ose_RUN_ERL_LM_CONF` - run_erl_lm OSE load module configuration file +erl_xcomp_ose_RUN_ERL_LM_CONF="${ERL_TOP}/erts/etc/ose/etc.lmconf" + +# * `erl_xcomp_ose_EPMD_LM_CONF` - epmd OSE load module configuration file +erl_xcomp_ose_EPMD_LM_CONF="${ERL_TOP}/erts/etc/ose/etc.lmconf" # * `erl_xcomp_ose_CONFD` - OSE confd source file erl_xcomp_ose_CONFD="${OSEROOT}/src/ose_confd.c" diff --git a/xcomp/erl-xcomp-vars.sh b/xcomp/erl-xcomp-vars.sh index c5e245b4b6..5e55c3af1b 100644 --- a/xcomp/erl-xcomp-vars.sh +++ b/xcomp/erl-xcomp-vars.sh @@ -26,4 +26,4 @@ # and precious variables in $ERL_TOP/erts/aclocal.m4. # -erl_xcomp_vars="erl_xcomp_sysroot erl_xcomp_isysroot erl_xcomp_bigendian erl_xcomp_double_middle_endian erl_xcomp_linux_clock_gettime_correction erl_xcomp_linux_nptl erl_xcomp_linux_usable_sigusrx erl_xcomp_linux_usable_sigaltstack erl_xcomp_poll erl_xcomp_kqueue erl_xcomp_putenv_copy erl_xcomp_reliable_fpe erl_xcomp_getaddrinfo erl_xcomp_gethrvtime_procfs_ioctl erl_xcomp_clock_gettime_cpu_time erl_xcomp_after_morecore_hook erl_xcomp_dlsym_brk_wrappers erl_xcomp_posix_memalign erl_xcomp_ose_ldflags_pass1 erl_xcomp_ose_ldflags_pass2 erl_xcomp_ose_OSEROOT erl_xcomp_ose_STRIP erl_xcomp_ose_LM_POST_LINK erl_xcomp_ose_LM_SET_CONF erl_xcomp_ose_LM_GET_CONF erl_xcomp_ose_LM_ELF_SIZE erl_xcomp_ose_LM_LCF erl_xcomp_ose_LM_CONF erl_xcomp_ose_CONFD erl_xcomp_ose_CRT0_LM" +erl_xcomp_vars="erl_xcomp_sysroot erl_xcomp_isysroot erl_xcomp_bigendian erl_xcomp_double_middle_endian erl_xcomp_linux_clock_gettime_correction erl_xcomp_linux_nptl erl_xcomp_linux_usable_sigusrx erl_xcomp_linux_usable_sigaltstack erl_xcomp_poll erl_xcomp_kqueue erl_xcomp_putenv_copy erl_xcomp_reliable_fpe erl_xcomp_getaddrinfo erl_xcomp_gethrvtime_procfs_ioctl erl_xcomp_clock_gettime_cpu_time erl_xcomp_after_morecore_hook erl_xcomp_dlsym_brk_wrappers erl_xcomp_posix_memalign erl_xcomp_ose_ldflags_pass1 erl_xcomp_ose_ldflags_pass2 erl_xcomp_ose_OSEROOT erl_xcomp_ose_STRIP erl_xcomp_ose_LM_POST_LINK erl_xcomp_ose_LM_SET_CONF erl_xcomp_ose_LM_GET_CONF erl_xcomp_ose_LM_ELF_SIZE erl_xcomp_ose_LM_LCF erl_xcomp_ose_BEAM_LM_CONF erl_xcomp_ose_EPMD_LM_CONF erl_xcomp_ose_RUN_ERL_LM_CONF erl_xcomp_ose_CONFD erl_xcomp_ose_CRT0_LM" |