Merge the changes from 3.0 branch.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75178 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -15,207 +15,118 @@
|
||||
|
||||
@section page_introduction_whatis What is wxWidgets?
|
||||
|
||||
wxWidgets is a C++ framework providing GUI (Graphical User
|
||||
Interface) and other facilities on more than one platform. Version 2 and higher
|
||||
currently support all desktop versions of MS Windows, Unix with GTK+ 1.x or 2.x,
|
||||
Unix with Motif, Unix with just X11, Unix with DirectFB, Mac OS X, OS/2.
|
||||
wxWidgets is an open source C++ framework allowing to write cross-platform
|
||||
GUI applications with native look and feel in C++ and other languages.
|
||||
|
||||
wxWidgets was originally developed at the Artificial Intelligence
|
||||
Applications Institute, University of Edinburgh, for internal use,
|
||||
and was first made publicly available in 1992.
|
||||
Version 2 is a vastly improved version written and maintained by
|
||||
Julian Smart, Robert Roebling, Vadim Zeitlin, Vaclav Slavik and many others.
|
||||
wxWidgets was originally developed by Julian Smart at the Artificial
|
||||
Intelligence Applications Institute, University of Edinburgh, for internal use,
|
||||
and was first made publicly available in 1992, with a vastly improved version 2
|
||||
released in 1999. The last major version of the library is 3 and was released
|
||||
in 2013. Currently wxWidgets is developed and maintained by Julian Smart, Vadim
|
||||
Zeitlin, Stefan Csomor, Robert Roebling, Vaclav Slavik and many others.
|
||||
|
||||
This manual contains a class reference and topic overviews.
|
||||
For a selection of wxWidgets tutorials, please see the documentation page
|
||||
on the wxWidgets web site: http://www.wxwidgets.org.
|
||||
|
||||
Please note that in the following, "MS Windows" often refers to all
|
||||
platforms related to Microsoft Windows, including 32-bit and 64-bit
|
||||
variants, unless otherwise stated. All trademarks are acknowledged.
|
||||
More information about wxWidgets is available on its web site at
|
||||
http://www.wxwidgets.org.
|
||||
|
||||
|
||||
|
||||
@section page_introduction_why Why another cross-platform development tool?
|
||||
@section page_introduction_why Why choose wxWidgets?
|
||||
|
||||
wxWidgets was developed to provide a cheap and flexible way to maximize
|
||||
investment in GUI application development. While a number of commercial
|
||||
class libraries already existed for cross-platform development,
|
||||
none met all of the following criteria:
|
||||
Compared to the other similar libraries, wxWidgets is:
|
||||
|
||||
@li low price;
|
||||
@li source availability;
|
||||
@li simplicity of programming;
|
||||
@li support for a wide range of compilers.
|
||||
1. The only C++ GUI library built by wrapping native GUI widgets which results
|
||||
in the best user experience on each platform.
|
||||
2. Written using only the standard C++ and doesn't rely on any custom
|
||||
extensions or preprocessing.
|
||||
3. Open source and free for use in both open source and commercial projects.
|
||||
|
||||
Since wxWidgets was started, several other free or almost-free
|
||||
GUI frameworks have emerged. However, none has the range of
|
||||
features, flexibility, documentation and the well-established
|
||||
development team that wxWidgets has.
|
||||
|
||||
As open source software, wxWidgets has benefited from comments,
|
||||
ideas, bug fixes, enhancements and the sheer enthusiasm of
|
||||
users. This gives wxWidgets a certain advantage over its
|
||||
commercial competitors (and over free libraries without an
|
||||
independent development team), plus a robustness against the
|
||||
transience of one individual or company. This openness and
|
||||
availability of source code is especially important when the
|
||||
future of thousands of lines of application code may depend upon
|
||||
the longevity of the underlying class library.
|
||||
wxWidgets provides a simple, easy to learn, yet very rich API. It is also
|
||||
mature and stable, and the applications written using wxWidgets 2.0
|
||||
pre-releases almost 20 years ago can still be built today with wxWidgets 3
|
||||
almost unchanged. wxWidgets has a large, active and friendly community of
|
||||
people, including both the users and developers of the library. It is also
|
||||
available now for more than a dozen other languages, including Python, Perl,
|
||||
Ruby, Lua, Haskell, D, Erlang, PHP, in addition to C++.
|
||||
|
||||
Version 2 goes much further than previous versions in terms of
|
||||
generality and features, allowing applications to be produced
|
||||
that are often indistinguishable from those produced using
|
||||
single-platform toolkits such as Motif, GTK+ and MFC.
|
||||
It is impossible to sum up everything included in wxWidgets in a few
|
||||
paragraphs, but here are some of the benefits:
|
||||
|
||||
The importance of using a platform-independent class library
|
||||
cannot be overstated, since GUI application development is very
|
||||
time-consuming, and sustained popularity of particular GUIs
|
||||
cannot be guaranteed. Code can very quickly become obsolete if
|
||||
it addresses the wrong platform or audience. wxWidgets helps to
|
||||
insulate the programmer from these winds of change. Although
|
||||
wxWidgets may not be suitable for every application (such as an
|
||||
OLE-intensive program), it provides access to most of the
|
||||
functionality a GUI program normally requires, plus many extras
|
||||
such as network programming, PostScript output, and HTML
|
||||
rendering; and it can of course be extended as needs dictate.
|
||||
As a bonus, it provides a far cleaner and easier programming
|
||||
interface than the native APIs. Programmers may find it
|
||||
worthwhile to use wxWidgets even if they are developing on only
|
||||
one platform.
|
||||
|
||||
It is impossible to sum up the functionality of wxWidgets in a few paragraphs, but
|
||||
here are some of the benefits:
|
||||
|
||||
@li Low cost (free, in fact!)
|
||||
@li You get the source.
|
||||
@li Available on a variety of popular platforms.
|
||||
@li Works with almost all popular C++ compilers and Python.
|
||||
@li Over 70 example programs.
|
||||
@li Over 1000 pages of printable and on-line documentation.
|
||||
@li Simple-to-use, object-oriented API.
|
||||
@li Available on all major desktop platforms.
|
||||
@li Free for any use.
|
||||
@li Source is available and easy to read and modify if necessary.
|
||||
@li Over 100 example programs.
|
||||
@li Extensive documentation (almost 200,000 lines of it).
|
||||
@li Straightforward API.
|
||||
@li Simple but powerful layout system.
|
||||
@li Run-time loadable or compile-time embeddable resources.
|
||||
@li Flexible event system.
|
||||
@li Graphics calls include lines, rounded rectangles, splines, polylines, etc.
|
||||
@li Constraint-based and sizer-based layouts.
|
||||
@li Print/preview and document/view architectures.
|
||||
@li Toolbar, notebook, tree control, advanced list control classes.
|
||||
@li PostScript generation under Unix, normal MS Windows printing on the PC.
|
||||
@li MDI (Multiple Document Interface) support.
|
||||
@li Can be used to create DLLs under Windows, dynamic libraries on Unix.
|
||||
@li Common dialogs for file browsing, printing, colour selection, etc.
|
||||
@li Under MS Windows, support for creating metafiles and copying them to the clipboard.
|
||||
@li An API for invoking help from applications.
|
||||
@li Ready-to-use HTML window (supporting a subset of HTML).
|
||||
@li Network support via a family of socket and protocol classes.
|
||||
@li Support for platform independent image processing.
|
||||
@li Built-in support for many file formats (BMP, PNG, JPEG, GIF, XPM, PNM, PCX).
|
||||
@li All the usual and quite a few of more rare GUI controls.
|
||||
@li And also all the standard dialogs.
|
||||
@li 2D path-based drawing API with full support for transparency.
|
||||
@li Built-in support for many file formats (BMP, PNG, JPEG, GIF, XPM, PNM, PCX, TGA, ...).
|
||||
@li Printing, help, clipboard, drag-and-drop, document/view, ... support.
|
||||
@li Integration with the native platform HTML rendering engine.
|
||||
@li Dockable windows framework.
|
||||
@li Word processor-like widget.
|
||||
@li Powerful text editing widget with syntax highlighting.
|
||||
@li And much, much more...
|
||||
|
||||
|
||||
@section page_introduction_requirements wxWidgets Requirements
|
||||
|
||||
To make use of wxWidgets, you currently need one of the following setups.
|
||||
wxWidgets first-tier "ports", ie implementations of wxWidgets API, are:
|
||||
|
||||
(a) MS-Windows:
|
||||
@li wxMSW: This is the native port for Microsoft Windows systems (from Windows
|
||||
95 up to Windows 8.1 with at least Windows XP being recommended), either 32 or
|
||||
64 bits. The primarily supported compilers are Microsoft Visual C++ (versions 6
|
||||
up to 2013 are supported, at least 2005 is recommended) and GNU g++ (either
|
||||
from the traditional MinGW, TDM-GCC or MinGW-w64 distributions).
|
||||
|
||||
@li A 32-bit or 64-bit PC running MS Windows.
|
||||
@li A Windows compiler: MS Visual C++ (embedded Visual C++ for wxWinCE
|
||||
port), Borland C++, Watcom C++, Cygwin, MinGW, Digital Mars C++.
|
||||
See @c install.txt for details about compiler version supported.
|
||||
@li wxGTK: wxGTK2 and wxGTK3 are the ports using GTK+ library version 2.x and
|
||||
3.x respectively. They are very similar, with wxGTK2 being, however, more
|
||||
mature. Both ports work on almost any Unix system (Linux, FreeBSD, OpenBSD,
|
||||
NetBSD, Solaris, AIX, ...) and require GTK+ 2.6 or later or GTK+ 3.x. The
|
||||
primary supported compiler is GNU g++.
|
||||
|
||||
(b) Unix:
|
||||
@li wxOSX: wxOSX/Cocoa is the primary port for Apple computers, replacing the
|
||||
older and now deprecated wxOSX/Carbon port. wxOSX supports either PowerPC or
|
||||
Intel Macs running OS X 10.5 or higher and can be compiled in either 32 or 64
|
||||
bits using Apple Developer Tools (both GNU g++ and clang are supported).
|
||||
|
||||
@li Almost any C++ compiler, including GNU C++ and many Unix vendors
|
||||
compilers such as Sun CC, HP-UX aCC or SGI mipsPro.
|
||||
@li Almost any Unix workstation, and one of: GTK+ 2.6 or higher (GTK+ 1.2.10
|
||||
may still be supported but wxGTK1 port is not maintained any longer and lacks
|
||||
many features of wxGTK2, Motif 1.2 or higher or Lesstif. If using the wxX11
|
||||
port, no such widget set is required.
|
||||
|
||||
(c) Mac OS/Mac OS X:
|
||||
|
||||
@li A PowerPC or Intel Mac running Mac OS X 10.4 or higher
|
||||
@li The Apple Developer Tools (eg. GNU C++)
|
||||
Other platforms (iOS, Windows CE, OS/2), compilers (Borland C++ under Windows,
|
||||
Sun CC, HP-UX aCC, IBM xlC or SGI mipsPro under Unix) and ports (wxOSX/Carbon,
|
||||
wxGTK1, wxX11, wxDFB, wxPM...) are also supported but to a lesser extent.
|
||||
Please see the @subpage page_port "platform details page" for more information.
|
||||
|
||||
There are no CPU speed requirements but the faster (and more) CPU(s) you have,
|
||||
the faster the library will compile. You do need to have enough RAM, especially
|
||||
under Windows platforms, to avoid running out of memory during link phase.
|
||||
Depending on the compiler used, you may need at least 4GB to be able to link.
|
||||
Under all platforms it's recommended to have large amounts of free hard disk
|
||||
space. The exact amount needed depends on the port, compiler and build
|
||||
configurations but to give an example, a debug build of the library may take up
|
||||
to 500MB.
|
||||
configurations but at least 1GB and possibly more is required.
|
||||
|
||||
|
||||
|
||||
@section page_introduction_where Availability and location of wxWidgets
|
||||
@section page_introduction_where Where to get wxWidgets and support for it
|
||||
|
||||
wxWidgets is available by anonymous FTP and World Wide Web
|
||||
from ftp://biolpc22.york.ac.uk/pub and/or http://www.wxwidgets.org.
|
||||
The download links can be found at http://www.wxwidgets.org. The primary
|
||||
download location is https://sourceforge.net/downloads/wxwindows/ and there is
|
||||
also an FTP mirror at ftp://ftp.wxwidgets.org/pub/. Additionally, the latest
|
||||
version can always be retrieved from our version control system using either
|
||||
Subversion (http://svn.wxwidgets.org/svn/wx/wxWidgets/) or Git
|
||||
(https://github.com/wxWidgets/wxWidgets).
|
||||
|
||||
You can also buy a CD-ROM using the form on the Web site.
|
||||
wxWidgets documentation that you are reading is also available online at
|
||||
http://docs.wxwidgets.org/trunk/ and please also visit our wiki at
|
||||
http://wiki.wxwidgets.org/ for user-contributed contents.
|
||||
|
||||
And if you have any questions, you can join wxWidgets community using
|
||||
|
||||
|
||||
@section page_introduction_acknowledgements Acknowledgements
|
||||
|
||||
The following is the list of the core, active developers of wxWidgets which keep
|
||||
it running and have provided an invaluable, extensive and high-quality amount of
|
||||
changes over the many of years of wxWidgets' life:
|
||||
|
||||
@li Julian Smart
|
||||
@li Vadim Zeitlin
|
||||
@li Robert Roebling
|
||||
@li Robin Dunn
|
||||
@li Stefan Csomor
|
||||
@li Vaclav Slavik
|
||||
@li Paul Cornett
|
||||
@li Wlodzimierz `ABX' Skiba
|
||||
@li Chris Elliott
|
||||
@li David Elliott
|
||||
@li Kevin Hock
|
||||
@li Stefan Neis
|
||||
@li Michael Wetherell
|
||||
|
||||
We would particularly like to thank the following peoples for their contributions
|
||||
to wxWidgets, and the many others who have been involved in the project over the years.
|
||||
Apologies for any unintentional omissions from this alphabetic list:
|
||||
|
||||
Yiorgos Adamopoulos, Jamshid Afshar, Alejandro Aguilar-Sierra, AIAI,
|
||||
Patrick Albert, Karsten Ballueder, Mattia Barbon, Michael Bedward,
|
||||
Kai Bendorf, Yura Bidus, Keith Gary Boyce, Chris Breeze, Pete Britton,
|
||||
Ian Brown, C. Buckley, Marco Cavallini, Dmitri Chubraev, Robin Corbet, Cecil Coupe,
|
||||
Andrew Davison, Gilles Depeyrot, Neil Dudman, Hermann Dunkel, Jos van Eijndhoven,
|
||||
Tom Felici, Thomas Fettig, Matthew Flatt, Pasquale Foggia, Josep Fortiana, Todd Fries,
|
||||
Dominic Gallagher, Guillermo Rodriguez Garcia, Wolfram Gloger, Norbert Grotz,
|
||||
Stefan Gunter, Bill Hale, Patrick Halke, Stefan Hammes, Guillaume Helle,
|
||||
Harco de Hilster, Cord Hockemeyer, Markus Holzem, Olaf Klein, Leif Jensen,
|
||||
Bart Jourquin, Guilhem Lavaux, Ron Lee, Jan Lessner, Nicholas Liebmann,
|
||||
Torsten Liermann, Per Lindqvist, Francesco Montorsi, Thomas Runge, Tatu Männistö,
|
||||
Scott Maxwell, Thomas Myers, Oliver Niedung, Ryan Norton, Hernan Otero,
|
||||
Ian Perrigo, Timothy Peters, Giordano Pezzoli, Harri Pasanen, Thomaso Paoletti,
|
||||
Garrett Potts, Marcel Rasche, Dino Scaringella, Jobst Schmalenbach, Arthur Seaton,
|
||||
Paul Shirley, Stein Somers, Petr Smilauer, Neil Smith, Kari Systä, George Tasker,
|
||||
Arthur Tetzlaff-Deas, Jonathan Tonberg, Jyrki Tuomi, Janos Vegh, Andrea Venturoli,
|
||||
David Webster, Otto Wyss, Xiaokun Zhu, Edward Zimmermann.
|
||||
|
||||
Many thanks also to AIAI for being willing to release the original version of
|
||||
wxWidgets into the public domain, and to our patient partners.
|
||||
|
||||
`Graphplace', the basis for the wxGraphLayout library, is copyright Dr. Jos
|
||||
T.J. van Eijndhoven of Eindhoven University of Technology. The code has
|
||||
been used in wxGraphLayout (not in wxWidgets anymore) with his permission.
|
||||
|
||||
We also acknowledge the author of XFIG, the excellent Unix drawing tool,
|
||||
from the source of which we have borrowed some spline drawing code.
|
||||
His copyright is included below.
|
||||
|
||||
<em>
|
||||
XFig2.1 is copyright (c) 1985 by Supoj Sutanthavibul. Permission to
|
||||
use, copy, modify, distribute, and sell this software and its
|
||||
documentation for any purpose is hereby granted without fee, provided
|
||||
that the above copyright notice appear in all copies and that both that
|
||||
copyright notice and this permission notice appear in supporting
|
||||
documentation, and that the name of M.I.T. not be used in advertising or
|
||||
publicity pertaining to distribution of the software without specific,
|
||||
written prior permission. M.I.T. makes no representations about the
|
||||
suitability of this software for any purpose. It is provided ``as is''
|
||||
without express or implied warranty.
|
||||
</em>
|
||||
- Web-based <a href="http://forums.wxwidgets.org/">wxForum</a>.
|
||||
- <a href="http://www.wxwidgets.org/support/maillst2.htm">Mailing lists</a>.
|
||||
- @c #wxwidgets IRC channel.
|
||||
- Or asking questions with @c wxwidgets tag on http://stackoverflow.com/
|
||||
|
||||
*/
|
||||
|
Reference in New Issue
Block a user