]>
git.saurik.com Git - wxWidgets.git/blob - docs/doxygen/mainpages/introduction.h
   1 ///////////////////////////////////////////////////////////////////////////// 
   2 // Name:        introduction.h 
   3 // Purpose:     Introduction page of the Doxygen manual 
   4 // Author:      wxWidgets team 
   6 // Licence:     wxWindows licence 
   7 ///////////////////////////////////////////////////////////////////////////// 
  12 @page page_introduction Introduction 
  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 
  24 @section page_introduction_whatis What is wxWidgets? 
  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. 
  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. 
  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. 
  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. 
  47 @section page_introduction_why Why another cross-platform development tool? 
  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: 
  55 @li source availability; 
  56 @li simplicity of programming; 
  57 @li support for a wide range of compilers. 
  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. 
  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. 
  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. 
  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 
  95 It is impossible to sum up the functionality of wxWidgets in a few paragraphs, but 
  96 here are some of the benefits: 
  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). 
 122 @section page_introduction_requirements wxWidgets requirements 
 124 To make use of wxWidgets, you currently need one of the following setups. 
 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 
 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. 
 145 @li A PowerPC or Intel Mac running Mac OS X 10.4 or higher 
 146 @li The Apple Developer Tools (eg. GNU C++) 
 148 Under all platforms it's recommended to have large amounts of free hard disk 
 149 space. The exact amount needed depends on the port, compiler and build 
 150 configurations but to give an example, a debug build of the library may take up 
 155 @section page_introduction_where Availability and location of wxWidgets 
 157 wxWidgets is available by anonymous FTP and World Wide Web 
 158 from ftp://biolpc22.york.ac.uk/pub and/or http://www.wxwidgets.org. 
 160 You can also buy a CD-ROM using the form on the Web site. 
 164 @section page_introduction_acknowledgements Acknowledgements 
 166 The following is the list of the core, active developers of wxWidgets which keep 
 167 it running and have provided an invaluable, extensive and high-quality amount of 
 168 changes over the many of years of wxWidgets' life: 
 177 @li Wlodzimierz `ABX' Skiba 
 182 @li Michael Wetherell 
 184 We would particularly like to thank the following peoples for their contributions 
 185 to wxWidgets, and the many others who have been involved in the project over the years. 
 186 Apologies for any unintentional omissions from this alphabetic list: 
 188 Yiorgos Adamopoulos, Jamshid Afshar, Alejandro Aguilar-Sierra, AIAI, 
 189 Patrick Albert, Karsten Ballueder, Mattia Barbon, Michael Bedward, 
 190 Kai Bendorf, Yura Bidus, Keith Gary Boyce, Chris Breeze, Pete Britton, 
 191 Ian Brown, C. Buckley, Marco Cavallini, Dmitri Chubraev, Robin Corbet, Cecil Coupe, 
 192 Andrew Davison, Gilles Depeyrot, Neil Dudman, Hermann Dunkel, Jos van Eijndhoven, 
 193 Tom Felici, Thomas Fettig, Matthew Flatt, Pasquale Foggia, Josep Fortiana, Todd Fries, 
 194 Dominic Gallagher, Guillermo Rodriguez Garcia, Wolfram Gloger, Norbert Grotz, 
 195 Stefan Gunter, Bill Hale, Patrick Halke, Stefan Hammes, Guillaume Helle, 
 196 Harco de Hilster, Cord Hockemeyer, Markus Holzem, Olaf Klein, Leif Jensen, 
 197 Bart Jourquin, Guilhem Lavaux, Ron Lee, Jan Lessner, Nicholas Liebmann, 
 198 Torsten Liermann, Per Lindqvist, Francesco Montorsi, Thomas Runge, Tatu Männistö, 
 199 Scott Maxwell, Thomas Myers, Oliver Niedung, Ryan Norton, Hernan Otero, 
 200 Ian Perrigo, Timothy Peters, Giordano Pezzoli, Harri Pasanen, Thomaso Paoletti, 
 201 Garrett Potts, Marcel Rasche, Dino Scaringella, Jobst Schmalenbach, Arthur Seaton, 
 202 Paul Shirley, Stein Somers, Petr Smilauer, Neil Smith, Kari Systä, George Tasker, 
 203 Arthur Tetzlaff-Deas, Jonathan Tonberg, Jyrki Tuomi, Janos Vegh, Andrea Venturoli, 
 204 David Webster, Otto Wyss, Xiaokun Zhu, Edward Zimmermann. 
 206 Many thanks also to AIAI for being willing to release the original version of 
 207 wxWidgets into the public domain, and to our patient partners. 
 209 `Graphplace', the basis for the wxGraphLayout library, is copyright Dr. Jos 
 210 T.J. van Eijndhoven of Eindhoven University of Technology. The code has 
 211 been used in wxGraphLayout (not in wxWidgets anymore) with his permission. 
 213 We also acknowledge the author of XFIG, the excellent Unix drawing tool, 
 214 from the source of which we have borrowed some spline drawing code. 
 215 His copyright is included below. 
 218 XFig2.1 is copyright (c) 1985 by Supoj Sutanthavibul. Permission to 
 219 use, copy, modify, distribute, and sell this software and its 
 220 documentation for any purpose is hereby granted without fee, provided 
 221 that the above copyright notice appear in all copies and that both that 
 222 copyright notice and this permission notice appear in supporting 
 223 documentation, and that the name of M.I.T. not be used in advertising or 
 224 publicity pertaining to distribution of the software without specific, 
 225 written prior permission.  M.I.T. makes no representations about the 
 226 suitability of this software for any purpose.  It is provided ``as is'' 
 227 without express or implied warranty.