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