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