]>
git.saurik.com Git - wxWidgets.git/blob - docs/doxygen/introduction.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: introduction.h
3 // Purpose: Introduction page of the Doxygen manual
4 // Author: wxWidgets team
6 // Licence: wxWindows license
7 /////////////////////////////////////////////////////////////////////////////
12 @page introduction_page Introduction
18 @li @ref acknowledgements
24 @section whatis What is wxWidgets?
26 wxWidgets is a C++ framework providing GUI (Graphical User
27 Interface) and other facilities on more than one platform. Version 2 and higher
28 currently support all desktop versions of MS Windows, Unix with GTK+ 1.x or 2.x,
29 Unix with Motif, Unix with just X11, Unix with DirectFB, Mac OS X, OS/2.
31 wxWidgets was originally developed at the Artificial Intelligence
32 Applications Institute, University of Edinburgh, for internal use,
33 and was first made publicly available in 1992.
34 Version 2 is a vastly improved version written and maintained by
35 Julian Smart, Robert Roebling, Vadim Zeitlin, Vaclav Slavik and many others.
37 This manual contains a class reference and topic overviews.
38 For a selection of wxWidgets tutorials, please see the documentation page on the \urlref{wxWidgets web site}{http://www.wxwidgets.org}.
40 Please note that in the following, ``MS Windows" often refers to all
41 platforms related to Microsoft Windows, including 32-bit and 64-bit
42 variants, unless otherwise stated. All trademarks are acknowledged.
44 @section why Why another cross-platform development tool?
46 wxWidgets was developed to provide a cheap and flexible way to maximize
47 investment in GUI application development. While a number of commercial
48 class libraries already existed for cross-platform development,
49 none met all of the following criteria:
51 \begin{enumerate}\itemsep=0pt
53 \item source availability;
54 \item simplicity of programming;
55 \item support for a wide range of compilers.
58 Since wxWidgets was started, several other free or almost-free
59 GUI frameworks have emerged. However, none has the range of
60 features, flexibility, documentation and the well-established
61 development team that wxWidgets has.
63 As open source software, wxWidgets has benefited from comments,
64 ideas, bug fixes, enhancements and the sheer enthusiasm of
65 users. This gives wxWidgets a certain advantage over its
66 commercial competitors (and over free libraries without an
67 independent development team), plus a robustness against the
68 transience of one individual or company. This openness and
69 availability of source code is especially important when the
70 future of thousands of lines of application code may depend upon
71 the longevity of the underlying class library.
73 Version 2 goes much further than previous versions in terms of
74 generality and features, allowing applications to be produced
75 that are often indistinguishable from those produced using
76 single-platform toolkits such as Motif, GTK+ and MFC.
78 The importance of using a platform-independent class library
79 cannot be overstated, since GUI application development is very
80 time-consuming, and sustained popularity of particular GUIs
81 cannot be guaranteed. Code can very quickly become obsolete if
82 it addresses the wrong platform or audience. wxWidgets helps to
83 insulate the programmer from these winds of change. Although
84 wxWidgets may not be suitable for every application (such as an
85 OLE-intensive program), it provides access to most of the
86 functionality a GUI program normally requires, plus many extras
87 such as network programming, PostScript output, and HTML
88 rendering; and it can of course be extended as needs dictate.
89 As a bonus, it provides a far cleaner and easier programming
90 interface than the native APIs. Programmers may find it
91 worthwhile to use wxWidgets even if they are developing on only
94 It is impossible to sum up the functionality of wxWidgets in a few paragraphs, but
95 here are some of the benefits:
97 \begin{itemize}\itemsep=0pt
98 \item Low cost (free, in fact!)
99 \item You get the source.
100 \item Available on a variety of popular platforms.
101 \item Works with almost all popular C++ compilers and Python.
102 \item Over 70 example programs.
103 \item Over 1000 pages of printable and on-line documentation.
104 \item Simple-to-use, object-oriented API.
105 \item Flexible event system.
106 \item Graphics calls include lines, rounded rectangles, splines, polylines, etc.
107 \item Constraint-based and sizer-based layouts.
108 \item Print/preview and document/view architectures.
109 \item Toolbar, notebook, tree control, advanced list control classes.
110 \item PostScript generation under Unix, normal MS Windows printing on the PC.
111 \item MDI (Multiple Document Interface) support.
112 \item Can be used to create DLLs under Windows, dynamic libraries on Unix.
113 \item Common dialogs for file browsing, printing, colour selection, etc.
114 \item Under MS Windows, support for creating metafiles and copying
115 them to the clipboard.
116 \item An API for invoking help from applications.
117 \item Ready-to-use HTML window (supporting a subset of HTML).
118 \item Network support via a family of socket and protocol classes.
119 \item Support for platform independent image processing.
120 \item Built-in support for many file formats (BMP, PNG, JPEG, GIF, XPM, PNM, PCX).
121 \item Includes Tex2RTF, to allow you to produce your own documentation
122 in Windows Help, HTML and Word RTF formats.
125 @section requirements wxWidgets requirements
127 To make use of wxWidgets, you currently need one of the following setups.
131 \begin{enumerate}\itemsep=0pt
132 \item A 32-bit or 64-bit PC running MS Windows.
133 \item A Windows compiler: MS Visual C++ (embedded Visual C++ for wxWinCE
134 port), Borland C++, Watcom C++, Cygwin, MinGW, Metrowerks CodeWarrior,
135 Digital Mars C++. See {\tt install.txt} for details about compiler
141 \begin{enumerate}\itemsep=0pt
142 \item Almost any C++ compiler, including GNU C++ and many Unix vendors
143 compilers such as Sun CC, HP-UX aCC or SGI mipsPro.
144 \item Almost any Unix workstation, and one of: GTK+ 2.4 or higher (GTK+ 1.2.10
145 may still be supported but wxGTK1 port is not maintained any longer and lacks
146 many features of wxGTK2), Motif 1.2 or higher or Lesstif. If using the wxX11
147 port, no such widget set is required.
152 \begin{enumerate}\itemsep=0pt
153 \item A PowerPC or Intel Mac running Mac OS X 10.3 or higher
154 \item The Apple Developer Tools (eg. GNU C++) or MetroWerks CodeWarrior (not
158 Under all platforms it's recommended to have large amounts of free hard disk
159 space. The exact amount needed depends on the port, compiler and build
160 configurations but to give an example, a debug build of the library may take up
163 @section where Availability and location of wxWidgets
165 \winhelponly{wxWidgets is available by anonymous FTP and World Wide Web
166 from ftp://biolpc22.york.ac.uk/pub and/or http://www.wxwidgets.org.}
167 \winhelpignore{wxWidgets is available by anonymous FTP and World Wide Web
168 from \urlref{ftp://biolpc22.york.ac.uk/pub}{ftp://biolpc22.york.ac.uk/pub}
169 and/or \urlref{http://www.wxwidgets.org}{http://www.wxwidgets.org}.}
171 You can also buy a CD-ROM using the form on the Web site.
173 @section acknowledgements Acknowledgements
175 The following is the list of the core, active developers of wxWidgets which keep
176 it running and have provided an invaluable, extensive and high-quality amount of
177 changes over the many of years of wxWidgets' life:
179 \begin{description}\itemsep=0pt
182 \item Robert Roebling
187 \item Wlodzimierz `ABX' Skiba
192 \item Michael Wetherell
195 We would particularly like to thank the following peoples for their contributions
196 to wxWidgets, and the many others who have been involved in the project over the years.
197 Apologies for any unintentional omissions from this alphabetic list:
199 Yiorgos Adamopoulos, Jamshid Afshar, Alejandro Aguilar-Sierra, AIAI,
200 Patrick Albert, Karsten Ballueder, Mattia Barbon, Michael Bedward,
201 Kai Bendorf, Yura Bidus, Keith Gary Boyce, Chris Breeze, Pete Britton,
202 Ian Brown, C. Buckley, Marco Cavallini, Dmitri Chubraev, Robin Corbet, Cecil Coupe,
203 Andrew Davison, Gilles Depeyrot, Neil Dudman, Hermann Dunkel, Jos van Eijndhoven,
204 Tom Felici, Thomas Fettig, Matthew Flatt, Pasquale Foggia, Josep Fortiana, Todd Fries,
205 Dominic Gallagher, Guillermo Rodriguez Garcia, Wolfram Gloger, Norbert Grotz,
206 Stefan Gunter, Bill Hale, Patrick Halke, Stefan Hammes, Guillaume Helle,
207 Harco de Hilster, Cord Hockemeyer, Markus Holzem, Olaf Klein, Leif Jensen,
208 Bart Jourquin, Guilhem Lavaux, Ron Lee, Jan Lessner, Nicholas Liebmann,
209 Torsten Liermann, Per Lindqvist, Francesco Montorsi, Thomas Runge, Tatu M\"{a}nnist\"{o},
210 Scott Maxwell, Thomas Myers, Oliver Niedung, Ryan Norton, Hernan Otero,
211 Ian Perrigo, Timothy Peters, Giordano Pezzoli, Harri Pasanen, Thomaso Paoletti,
212 Garrett Potts, Marcel Rasche, Dino Scaringella, Jobst Schmalenbach, Arthur Seaton,
213 Paul Shirley, Stein Somers, Petr Smilauer, Neil Smith, Kari Syst\"{a}, George Tasker,
214 Arthur Tetzlaff-Deas, Jonathan Tonberg, Jyrki Tuomi, Janos Vegh, Andrea Venturoli,
215 David Webster, Otto Wyss, Xiaokun Zhu, Edward Zimmermann.
217 Many thanks also to AIAI for being willing to release the original version of
218 wxWidgets into the public domain, and to our patient partners.
220 `Graphplace', the basis for the wxGraphLayout library, is copyright Dr. Jos
221 T.J. van Eijndhoven of Eindhoven University of Technology. The code has
222 been used in wxGraphLayout (not in wxWidgets anymore) with his permission.
224 We also acknowledge the author of XFIG, the excellent Unix drawing tool,
225 from the source of which we have borrowed some spline drawing code.
226 His copyright is included below.
228 {\it XFig2.1 is copyright (c) 1985 by Supoj Sutanthavibul. Permission to
229 use, copy, modify, distribute, and sell this software and its
230 documentation for any purpose is hereby granted without fee, provided
231 that the above copyright notice appear in all copies and that both that
232 copyright notice and this permission notice appear in supporting
233 documentation, and that the name of M.I.T. not be used in advertising or
234 publicity pertaining to distribution of the software without specific,
235 written prior permission. M.I.T. makes no representations about the
236 suitability of this software for any purpose. It is provided ``as is''
237 without express or implied warranty.}