]> git.saurik.com Git - wxWidgets.git/blame - docs/doxygen/mainpages/introduction.h
Fix background corruption in scrolled wxHtmlWindow.
[wxWidgets.git] / docs / doxygen / mainpages / introduction.h
CommitLineData
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
19wxWidgets is a C++ framework providing GUI (Graphical User
20Interface) and other facilities on more than one platform. Version 2 and higher
21currently support all desktop versions of MS Windows, Unix with GTK+ 1.x or 2.x,
22Unix with Motif, Unix with just X11, Unix with DirectFB, Mac OS X, OS/2.
23
24wxWidgets was originally developed at the Artificial Intelligence
25Applications Institute, University of Edinburgh, for internal use,
26and was first made publicly available in 1992.
27Version 2 is a vastly improved version written and maintained by
28Julian Smart, Robert Roebling, Vadim Zeitlin, Vaclav Slavik and many others.
29
30This manual contains a class reference and topic overviews.
31For a selection of wxWidgets tutorials, please see the documentation page
32on the wxWidgets web site: http://www.wxwidgets.org.
33
001f1f56 34Please note that in the following, "MS Windows" often refers to all
928f1a07
FM
35platforms related to Microsoft Windows, including 32-bit and 64-bit
36variants, unless otherwise stated. All trademarks are acknowledged.
37
38
39
40@section page_introduction_why Why another cross-platform development tool?
41
42wxWidgets was developed to provide a cheap and flexible way to maximize
43investment in GUI application development. While a number of commercial
44class libraries already existed for cross-platform development,
45none 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
52Since wxWidgets was started, several other free or almost-free
53GUI frameworks have emerged. However, none has the range of
54features, flexibility, documentation and the well-established
55development team that wxWidgets has.
56
57As open source software, wxWidgets has benefited from comments,
58ideas, bug fixes, enhancements and the sheer enthusiasm of
59users. This gives wxWidgets a certain advantage over its
60commercial competitors (and over free libraries without an
61independent development team), plus a robustness against the
62transience of one individual or company. This openness and
63availability of source code is especially important when the
64future of thousands of lines of application code may depend upon
65the longevity of the underlying class library.
4514447c 66
928f1a07
FM
67Version 2 goes much further than previous versions in terms of
68generality and features, allowing applications to be produced
69that are often indistinguishable from those produced using
70single-platform toolkits such as Motif, GTK+ and MFC.
4514447c 71
928f1a07
FM
72The importance of using a platform-independent class library
73cannot be overstated, since GUI application development is very
74time-consuming, and sustained popularity of particular GUIs
75cannot be guaranteed. Code can very quickly become obsolete if
76it addresses the wrong platform or audience. wxWidgets helps to
77insulate the programmer from these winds of change. Although
78wxWidgets may not be suitable for every application (such as an
79OLE-intensive program), it provides access to most of the
80functionality a GUI program normally requires, plus many extras
81such as network programming, PostScript output, and HTML
82rendering; and it can of course be extended as needs dictate.
83As a bonus, it provides a far cleaner and easier programming
84interface than the native APIs. Programmers may find it
85worthwhile to use wxWidgets even if they are developing on only
86one platform.
87
88It is impossible to sum up the functionality of wxWidgets in a few paragraphs, but
89here 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
117To 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
141Under all platforms it's recommended to have large amounts of free hard disk
142space. The exact amount needed depends on the port, compiler and build
143configurations but to give an example, a debug build of the library may take up
144to 500MB.
145
146
147
148@section page_introduction_where Availability and location of wxWidgets
149
150wxWidgets is available by anonymous FTP and World Wide Web
151from ftp://biolpc22.york.ac.uk/pub and/or http://www.wxwidgets.org.
152
153You can also buy a CD-ROM using the form on the Web site.
154
155
156
157@section page_introduction_acknowledgements Acknowledgements
158
159The following is the list of the core, active developers of wxWidgets which keep
160it running and have provided an invaluable, extensive and high-quality amount of
161changes 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
177We would particularly like to thank the following peoples for their contributions
178to wxWidgets, and the many others who have been involved in the project over the years.
179Apologies for any unintentional omissions from this alphabetic list:
180
181Yiorgos Adamopoulos, Jamshid Afshar, Alejandro Aguilar-Sierra, AIAI,
182Patrick Albert, Karsten Ballueder, Mattia Barbon, Michael Bedward,
183Kai Bendorf, Yura Bidus, Keith Gary Boyce, Chris Breeze, Pete Britton,
184Ian Brown, C. Buckley, Marco Cavallini, Dmitri Chubraev, Robin Corbet, Cecil Coupe,
185Andrew Davison, Gilles Depeyrot, Neil Dudman, Hermann Dunkel, Jos van Eijndhoven,
186Tom Felici, Thomas Fettig, Matthew Flatt, Pasquale Foggia, Josep Fortiana, Todd Fries,
187Dominic Gallagher, Guillermo Rodriguez Garcia, Wolfram Gloger, Norbert Grotz,
188Stefan Gunter, Bill Hale, Patrick Halke, Stefan Hammes, Guillaume Helle,
189Harco de Hilster, Cord Hockemeyer, Markus Holzem, Olaf Klein, Leif Jensen,
190Bart Jourquin, Guilhem Lavaux, Ron Lee, Jan Lessner, Nicholas Liebmann,
191Torsten Liermann, Per Lindqvist, Francesco Montorsi, Thomas Runge, Tatu Männistö,
192Scott Maxwell, Thomas Myers, Oliver Niedung, Ryan Norton, Hernan Otero,
193Ian Perrigo, Timothy Peters, Giordano Pezzoli, Harri Pasanen, Thomaso Paoletti,
194Garrett Potts, Marcel Rasche, Dino Scaringella, Jobst Schmalenbach, Arthur Seaton,
195Paul Shirley, Stein Somers, Petr Smilauer, Neil Smith, Kari Systä, George Tasker,
196Arthur Tetzlaff-Deas, Jonathan Tonberg, Jyrki Tuomi, Janos Vegh, Andrea Venturoli,
197David Webster, Otto Wyss, Xiaokun Zhu, Edward Zimmermann.
198
199Many thanks also to AIAI for being willing to release the original version of
200wxWidgets into the public domain, and to our patient partners.
201
202`Graphplace', the basis for the wxGraphLayout library, is copyright Dr. Jos
203T.J. van Eijndhoven of Eindhoven University of Technology. The code has
204been used in wxGraphLayout (not in wxWidgets anymore) with his permission.
205
206We also acknowledge the author of XFIG, the excellent Unix drawing tool,
207from the source of which we have borrowed some spline drawing code.
208His copyright is included below.
209
210<em>
211XFig2.1 is copyright (c) 1985 by Supoj Sutanthavibul. Permission to
212use, copy, modify, distribute, and sell this software and its
213documentation for any purpose is hereby granted without fee, provided
214that the above copyright notice appear in all copies and that both that
215copyright notice and this permission notice appear in supporting
216documentation, and that the name of M.I.T. not be used in advertising or
217publicity pertaining to distribution of the software without specific,
218written prior permission. M.I.T. makes no representations about the
219suitability of this software for any purpose. It is provided ``as is''
220without express or implied warranty.
221</em>
4514447c
FM
222
223*/