Applied patch [ 903619 ] Win64 and Itanium support
by Brian Palmer git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@25943 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
<HTML>
|
||||
|
||||
<HEAD>
|
||||
<TITLE>wxWindows 2 FAQ: General</TITLE>
|
||||
<TITLE>wxWidgets 2 FAQ: General</TITLE>
|
||||
</HEAD>
|
||||
|
||||
<BODY BGCOLOR=#FFFFFF TEXT=#000000 VLINK="#00376A" LINK="#00529C" ALINK="#313063">
|
||||
@@ -13,7 +13,7 @@
|
||||
<tr>
|
||||
<td bgcolor="#004080" align=left height=24 background="images/bluetitlegradient.gif">
|
||||
<font size=+1 face="Arial, Lucida Sans, Helvetica" color="#FFFFFF">
|
||||
<b>wxWindows 2 FAQ: General</b>
|
||||
<b>wxWidgets 2 FAQ: General</b>
|
||||
</font>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -25,17 +25,17 @@ See also <a href="faq.htm">top-level FAQ page</a>.
|
||||
<hr>
|
||||
<h3>List of questions in this category</h3>
|
||||
<ul>
|
||||
<li><a href="#whatis">What is wxWindows?</a></li>
|
||||
<li><a href="#licence">Can I use wxWindows 2 for both proprietary projects, and GPL'ed projects?</a></li>
|
||||
<li><a href="#whatis">What is wxWidgets?</a></li>
|
||||
<li><a href="#licence">Can I use wxWidgets 2 for both proprietary projects, and GPL'ed projects?</a></li>
|
||||
<li><a href="#support">Is there support?</a></li>
|
||||
<li><a href="#users">Who uses wxWindows?</a></li>
|
||||
<li><a href="#platforms">What platforms are supported by wxWindows?</a></li>
|
||||
<li><a href="#specific">How does wxWindows support platform-specific features?</a></li>
|
||||
<li><a href="#stl">Does wxWindows use STL? or the standard string class?</a></li>
|
||||
<li><a href="#richedit">Is there a rich edit/markup widget for wxWindows?</a></ li>
|
||||
<li><a href="#exceptions">How to use C++ exceptions with wxWindows?</a></ li>
|
||||
<li><a href="#dev">How is wxWindows being developed?</a></li>
|
||||
<li><a href="#distrib">How is wxWindows distributed?</a></li>
|
||||
<li><a href="#users">Who uses wxWidgets?</a></li>
|
||||
<li><a href="#platforms">What platforms are supported by wxWidgets?</a></li>
|
||||
<li><a href="#specific">How does wxWidgets support platform-specific features?</a></li>
|
||||
<li><a href="#stl">Does wxWidgets use STL? or the standard string class?</a></li>
|
||||
<li><a href="#richedit">Is there a rich edit/markup widget for wxWidgets?</a></ li>
|
||||
<li><a href="#exceptions">How to use C++ exceptions with wxWidgets?</a></ li>
|
||||
<li><a href="#dev">How is wxWidgets being developed?</a></li>
|
||||
<li><a href="#distrib">How is wxWidgets distributed?</a></li>
|
||||
<li><a href="#future">What are the plans for the future?</a></li>
|
||||
<li><a href="#base">What is wxBase?</a></li>
|
||||
<li><a href="#univ">What is wxUniversal?</a></li>
|
||||
@@ -45,10 +45,10 @@ See also <a href="faq.htm">top-level FAQ page</a>.
|
||||
</ul>
|
||||
<hr>
|
||||
|
||||
<H3><a name="whatis">What is wxWindows?</a></H3>
|
||||
<H3><a name="whatis">What is wxWidgets?</a></H3>
|
||||
|
||||
wxWindows is a class library that allows you to compile graphical C++ programs on a range of
|
||||
different platforms. wxWindows defines a common API across platforms, but uses the native graphical user interface (GUI) on each platform,
|
||||
wxWidgets is a class library that allows you to compile graphical C++ programs on a range of
|
||||
different platforms. wxWidgets defines a common API across platforms, but uses the native graphical user interface (GUI) on each platform,
|
||||
so your program will take on the native 'look and feel' that users are familiar with.<P>
|
||||
|
||||
Although GUI applications are mostly built programmatically, there are several dialog editors to help
|
||||
@@ -56,32 +56,32 @@ build attractive dialogs and panels. Robert Roebling's <a href="http://www.r
|
||||
and Anthemion Software's <a href="http://www.anthemion.co.uk/dialogblocks/" target=_new>DialogBlocks</a>
|
||||
are two commercial examples, but there are others: see the <a href="lnk_tools.htm">Useful Tools</a> page.<P>
|
||||
|
||||
You don't have to use C++ to use wxWindows: there is a <a href="http://wxpython.org">Python interface</a> for wxWindows 2,
|
||||
You don't have to use C++ to use wxWidgets: there is a <a href="http://wxpython.org">Python interface</a> for wxWidgets 2,
|
||||
and also a <a href="http://wxperl.sourceforge.net" target=_top>Perl interface</a>.
|
||||
<P>
|
||||
|
||||
<h3><a name="licence">Can I use wxWindows 2 for both proprietary (commercial) projects, and GPL'ed projects?</a></h3>
|
||||
<h3><a name="licence">Can I use wxWidgets 2 for both proprietary (commercial) projects, and GPL'ed projects?</a></h3>
|
||||
|
||||
Yes. Please see the <a href="newlicen.htm">licence</a> for details, but basically
|
||||
you can distribute proprietary binaries without distributing any source code, and neither will wxWindows
|
||||
you can distribute proprietary binaries without distributing any source code, and neither will wxWidgets
|
||||
conflict with GPL code you may be using or developing with it.
|
||||
<P>
|
||||
The conditions for using wxWindows 2 are the same whether you are a personal, academic
|
||||
The conditions for using wxWidgets 2 are the same whether you are a personal, academic
|
||||
or commercial developer.
|
||||
<P>
|
||||
|
||||
<h3><a name="support">Is there support?</a></h3>
|
||||
|
||||
No official support, but the mailing list is very helpful and some people say that
|
||||
wxWindows support is better than for much commercial software. The developers are
|
||||
wxWidgets support is better than for much commercial software. The developers are
|
||||
keen to fix bugs as soon as possible, though obviously there are no guarantees.
|
||||
<P>
|
||||
|
||||
<H3><a name="users">Who uses wxWindows?</a></H3>
|
||||
<H3><a name="users">Who uses wxWidgets?</a></H3>
|
||||
|
||||
Many organisations - commercial, government, and academic - across the
|
||||
world. It's impossible to estimate the true number of users, since
|
||||
wxWindows is obtained by many different means, and we cannot monitor
|
||||
wxWidgets is obtained by many different means, and we cannot monitor
|
||||
distribution. The mailing list contains around 300-400 entries which is
|
||||
quite large for a list of this type.<P>
|
||||
|
||||
@@ -91,7 +91,7 @@ Our highest-profile user yet is industry veteran and Lotus Corp. founder Mitch K
|
||||
and his <a href="http://www.osafoundation.org" target=_new>Open Source Applications Foundation</a>.
|
||||
<P>
|
||||
|
||||
<H3><a name="platforms">What platforms are supported by wxWindows 2?</a></H3>
|
||||
<H3><a name="platforms">What platforms are supported by wxWidgets 2?</a></H3>
|
||||
|
||||
<ul>
|
||||
<li>Windows 3.1, Windows 95/98, Windows NT, Windows 2000, Windows ME.
|
||||
@@ -99,20 +99,20 @@ and his <a href="http://www.osafoundation.org" target=_new>Open Source Applicati
|
||||
<li>Unix with Motif or the free Motif clone Lesstif.
|
||||
<li>Mac OS.
|
||||
<li>Embedded platforms are being investigated. See the <a href="wxuniv.htm">wxUniversal</a> project.
|
||||
<li>An OS/2 port is in progress, and you can also compile wxWindows for GTK+ or Motif
|
||||
<li>An OS/2 port is in progress, and you can also compile wxWidgets for GTK+ or Motif
|
||||
on OS/2.
|
||||
</ul>
|
||||
<P>
|
||||
|
||||
<H3><a name="specific">How does wxWindows 2 support platform-specific
|
||||
<H3><a name="specific">How does wxWidgets 2 support platform-specific
|
||||
features?</a></H3>
|
||||
|
||||
This is a hotly-debated topic amongst the developers. My own philosophy
|
||||
is to make wxWindows as platform-independent as possible, but allow in a
|
||||
is to make wxWidgets as platform-independent as possible, but allow in a
|
||||
few classes (functions, window styles) that are platform-specific.
|
||||
For example, Windows metafiles and Windows 95 taskbar icons have
|
||||
their own classes on Windows, but nowhere else. Because these classes
|
||||
are provided and are wxWindows-compatible, it doesn't take much
|
||||
are provided and are wxWidgets-compatible, it doesn't take much
|
||||
coding effort for an application programmer to add support for
|
||||
some functionality that the user on a particular platform might otherwise
|
||||
miss. Also, some classes that started off as platform-specific, such
|
||||
@@ -120,29 +120,29 @@ as the MDI classes, have been emulated on other platforms. I can imagine
|
||||
that even wxTaskBarIcon may be implemented for Unix desktops one day.
|
||||
<P>
|
||||
|
||||
In other words, wxWindows is not a 'lowest common denominator' approach,
|
||||
In other words, wxWidgets is not a 'lowest common denominator' approach,
|
||||
but it will still be possible to write portable programs using the
|
||||
core API. Forbidding some platform-specific classes would be a stupid
|
||||
approach that would alienate many potential users, and encourage
|
||||
the perception that toolkits such as wxWindows are not up to the demands
|
||||
the perception that toolkits such as wxWidgets are not up to the demands
|
||||
of today's sophisticated applications.<P>
|
||||
|
||||
Currently resources such as bitmaps and icons are handled in a platform-specific
|
||||
way, but it is hoped to reduce this dependence in due course.<P>
|
||||
|
||||
Another reason why wxWindows 2 is not a 'lowest common denominator' toolkit is that
|
||||
Another reason why wxWidgets 2 is not a 'lowest common denominator' toolkit is that
|
||||
some functionality missing on some platform has been provided using generic,
|
||||
platform-independent code, such as the wxTreeCtrl and wxListCtrl classes.<P>
|
||||
|
||||
<H3><a name="stl">Does wxWindows use STL? or the standard string class?</a></H3>
|
||||
<H3><a name="stl">Does wxWidgets use STL? or the standard string class?</a></H3>
|
||||
|
||||
No. This is a much-discussed topic that has (many times) ended with the conclusion that it is in
|
||||
wxWindows' best interests to avoid use of templates. Not all compilers can handle
|
||||
wxWidgets' best interests to avoid use of templates. Not all compilers can handle
|
||||
templates adequately so it would dramatically reduce the number of compilers
|
||||
and platforms that could be supported. It would also be undersirable to make
|
||||
wxWindows dependent on another large library that may have to be downloaded and installed.
|
||||
wxWidgets dependent on another large library that may have to be downloaded and installed.
|
||||
In addition, use of templates can lead to executable bloat, which is something
|
||||
wxWindows 2 is strenously trying to avoid.<P>
|
||||
wxWidgets 2 is strenously trying to avoid.<P>
|
||||
|
||||
The standard C++ string class is not used, again because it is not available to all compilers,
|
||||
and it is not necessarily a very efficient implementation. Also, we retain more flexibility
|
||||
@@ -150,7 +150,7 @@ by being able to modify our own string class. Some compatibility with the string
|
||||
has been built into wxString.<P>
|
||||
|
||||
There is nothing to stop an application using templates or the string class for its own
|
||||
purposes. With wxWindows debugging options on, you may find you get errors when including
|
||||
purposes. With wxWidgets debugging options on, you may find you get errors when including
|
||||
STL headers. You can work around it either by switching off memory checking,
|
||||
or by adding this to a header before you include any STL files:<P>
|
||||
|
||||
@@ -163,41 +163,41 @@ or by adding this to a header before you include any STL files:<P>
|
||||
<P>
|
||||
|
||||
|
||||
<H3><a name="richedit">Is there a rich edit/markup widget for wxWindows 2?</a></H3>
|
||||
<H3><a name="richedit">Is there a rich edit/markup widget for wxWidgets 2?</a></H3>
|
||||
|
||||
These are the possibilities so far:<P>
|
||||
|
||||
<ul>
|
||||
<li>See <a href="http://www.scintilla.org" target=_top>www.scintilla.org</a> for
|
||||
a very nice syntax-highlighting editor widget. Robin Dunn has written a wxWindows wrapper
|
||||
for this widget, available in the wxWindows distribution under contrib/src/stc.
|
||||
a very nice syntax-highlighting editor widget. Robin Dunn has written a wxWidgets wrapper
|
||||
for this widget, available in the wxWidgets distribution under contrib/src/stc.
|
||||
<li>If you only need to display marked-up information, rather than edit it,
|
||||
then wxHTML will suit your needs. wxHTML is built into wxWindows - please see the reference
|
||||
then wxHTML will suit your needs. wxHTML is built into wxWidgets - please see the reference
|
||||
manual for details, and samples/html.
|
||||
<li>There are rich edit widgets in both WIN32 and GTK+, but there is currently
|
||||
no wxWindows wrapper for these (but text attribute functions are being added in the wxWindows 2.3.x series).
|
||||
no wxWidgets wrapper for these (but text attribute functions are being added in the wxWidgets 2.3.x series).
|
||||
</ul>
|
||||
|
||||
<P>
|
||||
|
||||
<h3><a name="exceptions">How to use C++ exceptions with wxWindows?</a></h3>
|
||||
<h3><a name="exceptions">How to use C++ exceptions with wxWidgets?</a></h3>
|
||||
|
||||
wxWindows library itself is unfortunately <i>not</i> exception-safe (as its
|
||||
wxWidgets library itself is unfortunately <i>not</i> exception-safe (as its
|
||||
initial version predates, by far, the addition of the exceptions to the C++
|
||||
language). However you can still use the exceptions in your own code and use
|
||||
the other libraries using the exceptions for the error reporting together with
|
||||
wxWindows.
|
||||
wxWidgets.
|
||||
|
||||
<p>
|
||||
There are a few issues to keep in mind, though:
|
||||
<ul>
|
||||
<li>You shouldn't let the exceptions propagate through wxWindows code,
|
||||
<li>You shouldn't let the exceptions propagate through wxWidgets code,
|
||||
in particular you should always catch the exceptions thrown by the
|
||||
functions called from an event handler in the handler itself and not
|
||||
let them propagate upwards to wxWindows.
|
||||
let them propagate upwards to wxWidgets.
|
||||
|
||||
<li>You may need to ensure that the compiler support for the exceptions is
|
||||
enabled as, considering that wxWindows itself doesn't use the
|
||||
enabled as, considering that wxWidgets itself doesn't use the
|
||||
exceptions and turning their support on results in the library size
|
||||
augmentation of 10% to 20%, it is turned off by default for a few
|
||||
compilers. Moreover, for gcc (or at least its mingw version) you must
|
||||
@@ -208,18 +208,18 @@ There are a few issues to keep in mind, though:
|
||||
|
||||
<p>
|
||||
|
||||
<H3><a name="dev">How is wxWindows being developed?</a></H3>
|
||||
<H3><a name="dev">How is wxWidgets being developed?</a></H3>
|
||||
|
||||
We are using the <a href="cvs.htm">CVS</a> system to develop and maintain wxWindows. This allows
|
||||
We are using the <a href="cvs.htm">CVS</a> system to develop and maintain wxWidgets. This allows
|
||||
us to make alterations and upload them instantly to the server, from
|
||||
which others can update their source.<P>
|
||||
|
||||
To build source from CVS, see the file BuildCVS.txt in the top-level wxWindows distribution
|
||||
To build source from CVS, see the file BuildCVS.txt in the top-level wxWidgets distribution
|
||||
directory.<P>
|
||||
|
||||
<H3><a name="distrib">How is wxWindows distributed?</a></H3>
|
||||
<H3><a name="distrib">How is wxWidgets distributed?</a></H3>
|
||||
|
||||
By ftp, and via the <a href="cdrom2.htm">wxWindows CD-ROM</a>.
|
||||
By ftp, and via the <a href="cdrom2.htm">wxWidgets CD-ROM</a>.
|
||||
<P>
|
||||
If you are feeling adventurous, you may also check out the sources directly
|
||||
from <a href="cvs.htm">cvs</a>.
|
||||
@@ -227,40 +227,40 @@ from <a href="cvs.htm">cvs</a>.
|
||||
|
||||
<H3><a name="future">What are the plans for the future?</a></H3>
|
||||
|
||||
Currently we're working too hard on getting wxWindows finished (are GUI toolkits ever
|
||||
finished?) to think very far ahead. However, we know we want to make wxWindows as robust
|
||||
Currently we're working too hard on getting wxWidgets finished (are GUI toolkits ever
|
||||
finished?) to think very far ahead. However, we know we want to make wxWidgets as robust
|
||||
and well-publicised as possible. We also want to aim for better platform-independence of
|
||||
resources such as icons and bitmaps, standardising on PNG and XPM for all platforms.<P>
|
||||
|
||||
Other possibilities include: DCOM/CORBA compatibility; a wxWindows book;
|
||||
Other possibilities include: DCOM/CORBA compatibility; a wxWidgets book;
|
||||
<a href="http://wxworkshop.sourceforge.net/">wxWorkshop</a>, an IDE;
|
||||
other platforms, especially embedded systems; other interface abilities such as speech output.<P>
|
||||
|
||||
We will investigate the possibility of compiler or operating system vendors bundling wxWindows with
|
||||
We will investigate the possibility of compiler or operating system vendors bundling wxWidgets with
|
||||
their product.<P>
|
||||
|
||||
The high-level goal of wxWindows is to be thought of as the number one C++ framework,
|
||||
The high-level goal of wxWidgets is to be thought of as the number one C++ framework,
|
||||
for virtually any platform. Move over, MFC!<P>
|
||||
|
||||
<h3><a name="base">What is wxBase?</a></h3>
|
||||
|
||||
wxBase is a subset of wxWindows comprised by the non-GUI classes. It includes
|
||||
wxWindows container and primitive data type classes (including wxString,
|
||||
wxBase is a subset of wxWidgets comprised by the non-GUI classes. It includes
|
||||
wxWidgets container and primitive data type classes (including wxString,
|
||||
wxDateTime and so on) and also useful wrappers for the operating system objects
|
||||
such as files, processes, threads, sockets and so on. With very minor
|
||||
exceptions wxBase may be used in exactly the same way as wxWindows but it
|
||||
exceptions wxBase may be used in exactly the same way as wxWidgets but it
|
||||
doesn't require a GUI to run and so is ideal for creating console mode
|
||||
utilities or server programs. It is also possible to create a program which can
|
||||
be compiled either as a console application (using wxBase) or a GUI one (using
|
||||
a full featured wxWindows port).
|
||||
a full featured wxWidgets port).
|
||||
|
||||
<H3><a name="univ">What is wxUniversal?</a></H3>
|
||||
|
||||
The main difference between wxUniversal-based ports (such as wxX11, wxMGL) and other ports (such as wxMSW, wxGTK+, wxMac)
|
||||
is that wxUniversal implements all controls (or widgets) in
|
||||
wxWindows itself thus allowing to have much more flexibility (for example, support for
|
||||
wxWidgets itself thus allowing to have much more flexibility (for example, support for
|
||||
themes even under MS Windows). It also means that it is now much easier to
|
||||
port wxWindows to a new platform as only the low-level classes must be ported
|
||||
port wxWidgets to a new platform as only the low-level classes must be ported
|
||||
which make for a small part of the library.
|
||||
<p>
|
||||
You may find more about wxUniversal <a href=wxuniv.htm>here</a>.
|
||||
@@ -269,7 +269,7 @@ You may find more about wxUniversal <a href=wxuniv.htm>here</a>.
|
||||
|
||||
The Java honeymoon period is over :-) and people are realising that it cannot
|
||||
meet all their cross-platform development needs. We don't anticipate a major threat
|
||||
from Java, and the level of interest in wxWindows is as high as ever.<P>
|
||||
from Java, and the level of interest in wxWidgets is as high as ever.<P>
|
||||
|
||||
<H3><a name="dotnet">What about .NET/Mono?</a></H3>
|
||||
|
||||
@@ -281,27 +281,27 @@ garbage collection and various other Java-like language features.<P>
|
||||
|
||||
Although this may be attractive to some developers, there
|
||||
is a variety of reasons why the .NET/Mono combination is unlikely
|
||||
to make wxWindows redundant. Please note that the following comments
|
||||
to make wxWidgets redundant. Please note that the following comments
|
||||
are Julian Smart's opinions.<P>
|
||||
|
||||
<ol>
|
||||
<li>Not everyone wants or needs net services.
|
||||
<li>C++ will be used for a long time to come; compared with C++, C# is a recent development and its future is not certain.
|
||||
<li>Mono Forms may only target Winelib (at least to begin with), so the end result is not as native as
|
||||
wxWindows (I'm aware there is GTK# for use with the C# language).
|
||||
wxWidgets (I'm aware there is GTK# for use with the C# language).
|
||||
<li>C# is usually byte-compiled and therefore slower. Plus, .NET adds a layer of overhead to the client computer
|
||||
that wxWindows does not require.
|
||||
<li>Mono hasn't proven its long-term viability yet (it's a complex system of components); wxWindows is ready now.
|
||||
that wxWidgets does not require.
|
||||
<li>Mono hasn't proven its long-term viability yet (it's a complex system of components); wxWidgets is ready now.
|
||||
<li>You may not wish to buy into Microsoft marketing spin and APIs.
|
||||
<li>Microsoft may at some point sue developers of non-Microsoft .NET implementations. After all,
|
||||
platform-independence is not in Microsoft's interest.
|
||||
<li>.NET might never be implemented on some platforms, especially Mac and embedded variants of Linux.
|
||||
<li>wxPython and other language variants provide further reasons for wxWindows to continue.
|
||||
<li>wxPython and other language variants provide further reasons for wxWidgets to continue.
|
||||
<li>The same issue exists for Qt: if Qt sales remain strong, it's a good indication that
|
||||
the market for a C++-based approach is still there. (Either that, or everyone's turning to wxWindows!)
|
||||
the market for a C++-based approach is still there. (Either that, or everyone's turning to wxWidgets!)
|
||||
</ol>
|
||||
|
||||
There is nothing to stop folk from developing a C# version of the wxWindows API;
|
||||
There is nothing to stop folk from developing a C# version of the wxWidgets API;
|
||||
we already have bindings to Python, Perl, JavaScript, Lua, Basic, and Eiffel.
|
||||
Update: a <a href="http://wxnet.sourceforge.net/" target=_new>wx.NET</a> project is now in progress.
|
||||
|
||||
|
Reference in New Issue
Block a user