wxWindows is a C++ framework providing GUI (Graphical User
Interface) and other facilities on more than one platform. Version 2.0 currently
-supports MS Windows (16-bit, Windows 95 and Windows NT) and GTK+, with Motif
-and Mac ports in an advanced state.
+supports MS Windows (16-bit, Windows 95 and Windows NT), Unix with GTK+, and Unix with Motif.
+A Mac port is in an advanced state, an OS/2 port and a port to the MGL graphics library
+have been started.
wxWindows was originally developed at the Artificial Intelligence
Applications Institute, University of Edinburgh, for internal use.
wxWindows has been released into the public domain in the hope
that others will also find it useful. Version 2.0 is written and
-maintained by Julian Smart, Robert Roebling and others.
+maintained by Julian Smart, Robert Roebling, Vadim Zeitlin and others.
This manual discusses wxWindows in the context of multi-platform
development.\helpignore{For more detail on the wxWindows version 2.0 API
\item Available on a variety of popular platforms.
\item Works with almost all popular C++ compilers.
\item Several example programs.
-\item Over 700 pages of printable and on-line documentation.
+\item Over 900 pages of printable and on-line documentation.
\item Includes Tex2RTF, to allow you to produce your own documentation
in Windows Help, HTML and Word RTF formats.
\item Simple-to-use, object-oriented API.
temporarily with the window as an argument;
\item events from sliders and scrollbars can be handled more flexibly;
\item the handling of window close events has been changed in line with the new
-event system, but backward {\bf OnClose} compatibility has been retained;
+event system;
\item the concept of {\it validator} has been added to allow much easier coding of
the relationship between controls and application data;
\item the documentation has been revised, with more cross-referencing.
(b) Unix:
\begin{enumerate}\itemsep=0pt
-\item Almost any C++ compiler, including GNU C++.
-\item Almost any Unix workstation, and one of: GTK+ 1.0, Motif 1.2 or higher, Lesstif.
+\item Almost any C++ compiler, including GNU C++ (EGCS 1.1.1 or above).
+\item Almost any Unix workstation, and one of: GTK+ 1.0, GTK+ 1.2, Motif 1.2 or higher, Lesstif.
\item At least 60 MB of disk space.
\end{enumerate}
\begin{verbatim}
ftp://www.remstar.com/pub/wxwin
- http://wxwin.home.ml.org
+ http://www.wxwindows.org
\end{verbatim}
\section{Acknowledgments}
The only lines which will usually have to be changed per application are
NAME and DESCRIPTION.
-\subsection{Allocating and deleting wxWindows objects}
+\section{Allocating and deleting wxWindows objects}
In general, classes derived from wxWindow must dynamically allocated
with {\it new} and deleted with {\it delete}. If you delete a window,
a drawing object that may be in use. Code that doesn't do this will probably work
fine on some platforms, and then fail under Windows.
+\section{Architecture dependency}
+
+A problem which sometimes arises from writing multi-platform programs is that
+the basic C types are not defiend the same on all platforms. This holds true
+for both the length in bits of the standard types (such as int and long) as
+well as their byte order, which might be little endian (typically
+on Intel computers) or big endian (typically on some Unix workstations). wxWindows
+defines types and macros that make it easy to write architecture independent
+code. The types are:
+
+wxInt32, wxInt16, wxInt8, wxUint32, wxUint16 = wxWord, wxUint8 = wxByte
+
+where wxInt32 stands for a 32-bit signed integer type etc. You can also check
+which architecture the program is compiled on using the wxBYTE\_ORDER define
+which is either wxBIG\_ENDIAN or wxLITTLE\_ENDIAN (in the future maybe wxPDP\_ENDIAN
+as well).
+
+The macros handling bit-swapping with respect to the applications endianness
+are described in the \helpref{Macros}{macros} section.
+
\section{Conditional compilation}
One of the purposes of wxWindows is to reduce the need for conditional