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