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