<?xml version="1.0"?>
<chapter id="intro"><title>Introduction</title>
<para><xref linkend="whatis"/></para>
<para><xref linkend="why"/></para>
<para><xref linkend="requirements"/></para>
<para><xref linkend="where"/></para>
<para><xref linkend="acknowledgements"/></para>

<section><title>What is wxWidgets?</title><para>wxWidgets is a C++ framework providing GUI (Graphical User
Interface) and other facilities on more than one platform. Version
2 currently supports all desktop versions of MS Windows, Unix with
GTK+, Unix with Motif, and MacOS. An OS/2 port is in progress.</para><para>wxWidgets was originally developed at the Artificial
Intelligence Applications Institute, University of Edinburgh, for
internal use, and was first made publicly available in 1992.
Version 2 is a vastly improved version written and maintained by
Julian Smart, Robert Roebling, Vadim Zeitlin, Vaclav Slavik and
many others.</para><para>This manual contains a class reference and topic overviews. For
a selection of wxWidgets tutorials, please see the documentation
page on the <ulink url="http://www.wxwidgets.org">wxWidgets web
site</ulink>.</para><para>Please note that in the following, "MS Windows" often refers to
all platforms related to Microsoft Windows, including 16-bit and
32-bit variants, unless otherwise stated. All trademarks are
acknowledged.</para></section>

<section><title>Why another cross-platform development tool?</title><para>wxWidgets was developed to provide a cheap and flexible way to
maximize investment in GUI application development. While a number
of commercial class libraries already existed for cross-platform
development, none met all of the following criteria:</para><orderedlist><listitem><para>low price;</para></listitem><listitem><para>source availability;</para></listitem><listitem><para>simplicity of programming;</para></listitem><listitem><para>support for a wide range of compilers.</para></listitem></orderedlist><para>Since wxWidgets was started, several other free or almost-free
GUI frameworks have emerged. However, none has the range of
features, flexibility, documentation and the well-established
development team that wxWidgets has.</para><para>As open source software, wxWidgets has benefited from comments,
ideas, bug fixes, enhancements and the sheer enthusiasm of users.
This gives wxWidgets a certain advantage over its commercial
competitors (and over free libraries without an independent
development team), plus a robustness against the transience of one
individual or company. This openness and availability of source
code is especially important when the future of thousands of lines
of application code may depend upon the longevity of the underlying
class library.</para><para>Version 2 goes much further than previous versions in terms of
generality and features, allowing applications to be produced that
are often indistinguishable from those produced using
single-platform toolkits such as Motif, GTK+ and MFC.</para><para>The importance of using a platform-independent class library
cannot be overstated, since GUI application development is very
time-consuming, and sustained popularity of particular GUIs cannot
be guaranteed. Code can very quickly become obsolete if it
addresses the wrong platform or audience. wxWidgets helps to
insulate the programmer from these winds of change. Although
wxWidgets may not be suitable for every application (such as an
OLE-intensive program), it provides access to most of the
functionality a GUI program normally requires, plus many extras
such as network programming, PostScript output, and HTML rendering;
and it can of course be extended as needs dictate. As a bonus, it
provides a far cleaner and easier programming interface than the
native APIs. Programmers may find it worthwhile to use wxWidgets
even if they are developing on only one platform.</para><para>It is impossible to sum up the functionality of wxWidgets in a
few paragraphs, but here are some of the benefits:</para><itemizedlist><listitem><para>Low cost (free, in fact!)</para></listitem><listitem><para>You get the source.</para></listitem><listitem><para>Available on a variety of popular platforms.</para></listitem><listitem><para>Works with almost all popular C++ compilers and Python.</para></listitem><listitem><para>Over 50 example programs.</para></listitem><listitem><para>Over 1000 pages of printable and on-line documentation.</para></listitem><listitem><para>Includes Tex2RTF, to allow you to produce your own
documentation in Windows Help, HTML and Word RTF formats.</para></listitem><listitem><para>Simple-to-use, object-oriented API.</para></listitem><listitem><para>Flexible event system.</para></listitem><listitem><para>Graphics calls include lines, rounded rectangles, splines,
polylines, etc.</para></listitem><listitem><para>Constraint-based and sizer-based layouts.</para></listitem><listitem><para>Print/preview and document/view architectures.</para></listitem><listitem><para>Toolbar, notebook, tree control, advanced list control
classes.</para></listitem><listitem><para>PostScript generation under Unix, normal MS Windows printing on
the PC.</para></listitem><listitem><para>MDI (Multiple Document Interface) support.</para></listitem><listitem><para>Can be used to create DLLs under Windows, dynamic libraries on
Unix.</para></listitem><listitem><para>Common dialogs for file browsing, printing, colour selection,
etc.</para></listitem><listitem><para>Under MS Windows, support for creating metafiles and copying
them to the clipboard.</para></listitem><listitem><para>An API for invoking help from applications.</para></listitem><listitem><para>Ready-to-use HTML window (supporting a subset of HTML).</para></listitem><listitem><para>Network support via a family of socket and protocol
classes.</para></listitem><listitem><para>Support for platform independent image processing.</para></listitem><listitem><para>Built-in support for many file formats (BMP, PNG, JPEG, GIF,
XPM, PNM, PCX).</para></listitem></itemizedlist></section>

<section><title>wxWidgets requirements</title><para>To make use of wxWidgets, you currently need one of the
following setups.</para><para>(a) MS-Windows:</para><orderedlist><listitem><para>A 32-bit or 64-bit PC running MS Windows.</para></listitem><listitem><para>A Windows compiler: MS Visual C++ (embedded Visual C++ for
wxWinCE port), Borland C++, Watcom C++, Cygwin, MinGW, Metrowerks
CodeWarrior, Digital Mars C++. See install.txt for details
about compiler version supported.</para></listitem><listitem><para>At least 100 MB of disk space for source tree and additional
space for libraries and application building (depends on compiler
and build settings).</para></listitem></orderedlist><para>(b) Unix:</para><orderedlist><listitem><para>Almost any C++ compiler, including GNU C++ (EGCS 1.1.1 or
above).</para></listitem><listitem><para>Almost any Unix workstation, and one of: GTK+ 1.2, GTK+ 2.0,
Motif 1.2 or higher, Lesstif. If using the wxX11 port, no such
widget set is required.</para></listitem><listitem><para>At least 100 MB of disk space for source tree and additional
space for libraries and application building (depends on compiler
and build settings).</para></listitem></orderedlist><para>(c) Mac OS/Mac OS X:</para><orderedlist><listitem><para>A PowerPC Mac running Mac OS 8.6/9.x (eg. Classic) or Mac OS X
10.x.</para></listitem><listitem><para>CodeWarrior 5.3, 6 or 7 for Classic Mac OS.</para></listitem><listitem><para>The Apple Developer Tools (eg. GNU C++), CodeWarrior 7 or above
for Mac OS X.</para></listitem><listitem><para>At least 100 MB of disk space for source tree and additional
space for libraries and application building (depends on compiler
and build settings).</para></listitem></orderedlist></section>

<section><title>Availability and location of wxWidgets</title><para>wxWidgets is available by anonymous FTP and World Wide Web from
<xref linkend="wb_pub"/>
and/or <ulink url="http://www.wxwidgets.org">http://www.wxwidgets.org</ulink>.</para><para>You can also buy a CD-ROM using the form on the Web site.</para></section>

<section><title>Acknowledgements</title><para>Thanks are due to AIAI for being willing to release the original
version of wxWidgets into the public domain, and to our patient
partners.</para><para>We would particularly like to thank the following for their
contributions to wxWidgets, and the many others who have been
involved in the project over the years. Apologies for any
unintentional omissions from this list. Yiorgos Adamopoulos,
Jamshid Afshar, Alejandro Aguilar-Sierra, AIAI, Patrick Albert,
Karsten Ballueder, Mattia Barbon, Michael Bedward, Kai Bendorf,
Yura Bidus, Keith Gary Boyce, Chris Breeze, Pete Britton, Ian
Brown, C. Buckley, Marco Cavallini, Dmitri Chubraev, Robin Corbet,
Cecil Coupe, Stefan Csomor, Andrew Davison, Gilles Depeyrot, Neil
Dudman, Robin Dunn, Hermann Dunkel, Jos van Eijndhoven, Chris
Elliott, David Elliott, Tom Felici, Thomas Fettig, Matthew Flatt,
Pasquale Foggia, Josep Fortiana, Todd Fries, Dominic Gallagher,
Guillermo Rodriguez Garcia, Wolfram Gloger, Norbert Grotz, Stefan
Gunter, Bill Hale, Patrick Halke, Stefan Hammes, Guillaume Helle,
Harco de Hilster, Kevin Hock, Cord Hockemeyer, Markus Holzem, Olaf
Klein, Leif Jensen, Bart Jourquin, Guilhem Lavaux, Ron Lee, Jan
Lessner, Nicholas Liebmann, Torsten Liermann, Per Lindqvist, Thomas
Runge, Tatu M&#xE4;nnist&#xF6;, Scott Maxwell, Thomas Myers, Oliver
Niedung, Stefan Neis, Ryan Norton, Hernan Otero, Ian Perrigo,
Timothy Peters, Giordano Pezzoli, Harri Pasanen, Thomaso Paoletti,
Garrett Potts, Marcel Rasche, Robert Roebling, Dino Scaringella,
Jobst Schmalenbach, Arthur Seaton, Paul Shirley, Wlodzimierz 'ABX'
Skiba, Vaclav Slavik, Julian Smart, Stein Somers, Petr Smilauer,
Neil Smith, Kari Syst&#xE4;, George Tasker, Arthur Tetzlaff-Deas,
Jonathan Tonberg, Jyrki Tuomi, Janos Vegh, Andrea Venturoli, David
Webster, Otto Wyss, Vadim Zeitlin, Xiaokun Zhu, Edward
Zimmermann.</para><para>'Graphplace', the basis for the wxGraphLayout library, is
copyright Dr. Jos T.J. van Eijndhoven of Eindhoven University of
Technology. The code has been used in wxGraphLayout with his
permission.</para><para>We also acknowledge the author of XFIG, the excellent Unix
drawing tool, from the source of which we have borrowed some spline
drawing code. His copyright is included below.</para><para><emphasis>XFig2.1 is copyright (c) 1985 by Supoj Sutanthavibul.
Permission to use, copy, modify, distribute, and sell this software
and its documentation for any purpose is hereby granted without
fee, provided that the above copyright notice appear in all copies
and that both that copyright notice and this permission notice
appear in supporting documentation, and that the name of M.I.T. not
be used in advertising or publicity pertaining to distribution of
the software without specific, written prior permission. M.I.T.
makes no representations about the suitability of this software for
any purpose. It is provided "as is'' without express or implied
warranty.</emphasis></para></section>

</chapter>

