-
<HTML>
<HEAD>
See also <a href="faq.htm">top-level FAQ page</a>.
<hr>
<h3>List of questions in this category</h3>
+
+<ul>
<li><a href="#wxgtk">What is wxWindows 2 for GTK?</a></li>
+<li><a href="#locale">Why doesn't reading floating point numbers work when using wxWindows?</a></li>
<li><a href="#gnome">Does wxGTK have GNOME support?</a></li>
<li><a href="#redhat">Warning about GTK libraries supplied with RedHat</a></li>
<li><a href="#wxgtk">What is wxWindows 2 for GTK?</a></li>
-<li><a href="#bincompat">What range of Intel Linux platforms will a given application binary be usable on?</li>
+<li><a href="#bincompat">What range of Intel Linux platforms will a given application binary be usable on?</a></li>
+</ul>
<hr>
+<h3><a name="wxgtk">What is wxWindows 2 for GTK?</a></h3>
+
wxWindows 2 for GTK is a port of wxWindows to the <a href="http://www.gimp.org/gtk" target=_top>GTK+ toolkit</a>,
which is freely available for most flavours of Unix with X. wxWindows 2 for GTK is
often abbreviated to wxGTK. wxGTK has a separate home page <a href="http://www.freiburg.linux.de/~wxxt" target=_top>here</a>.
<P>
+<h3><a name="locale">Why doesn't reading floating point numbers work when using wxWindows?</a></h3>
+
+If your program reads the floating point numbers in the format <tt>123.45</tt>
+from a file, it may suddently start returning just <tt>123</tt> instead of the
+correct value on some systems -- which is all the more mysterious as the same
+code in a standalone program works just fine.
+
+<p>
+The explanation is that GTK+ changes the current locale on program startup. If
+the decimal point character in the current locale is not the period (for
+example, it is comma in the French locale), all the standard C functions won't
+recognize the numbers such as above as floating point ones any more.
+
+<p>
+The solution is to either use your own function for reading the floating point
+numbers (probably the best one) or to call <tt>setlocale(LC_NUMERIC, "C")</tt>
+before reading from file and restore the old locale back afterwards if needed.
+
<h3><a name="gnome">Does wxGTK have GNOME support?</a></h3>
Currently wxGTK does not have any features that would involve dependence on any desktop
<li><a href="#filetypesx">How does CVS handle file types/creators under Mac OS X? </a></li>
<li><a href="#cwpro53">What steps are required to build wxMac using CodeWarrior P ro 5.3?</a></li>
<li><a href="#buildx">What steps are required to build wxMac under Mac OS X?</a></li>
-<li><a href="#settings">What important settings are required in the CodeWarrior P roject Preferences?</a></li>
+<li><a href="#settings">What important settings are required in the CodeWarrior Project Preferences?</a></li>
<li><a href="#smarterrors">What are the smart preprocessing errors with the Apple Developer Tools?</a></li>
<li><a href="#aboutmenu">How does wxMac support the standard Apple About menu item and Help menu?</a></li>
</ul>
-
<HTML>
<HEAD>
<li><a href="#dll">Can you compile wxWindows 2 as a DLL?</a></li>
<li><a href="#exesize">How can I reduce executable size?</a></li>
<li><a href="#mfc">Is wxWindows compatible with MFC?</a></li>
+<li><a href="#asuffix">Why do I get errors about FooBarA when I only use FooBar in my program?</a></li>
<li><a href="#newerrors">Why my code fails to compile with strange errors about new operator?</a></li>
<li><a href="#mfcport">How do I port MFC applications to wxWindows?</a></li>
<li><a href="#crash">Why do I sometimes get bizarre crash problems using VC++ 5/6?</a></li>
application. However, don't expect to be able to enable wxWindows windows with OLE-2
functionality using MFC.<P>
+<H3><a name="asuffix">Why do I get errors about FooBarA when I only use FooBar in my program?</H3>
+
+If you get errors like
+<p>
+<center>
+<tt>no matching function for call to 'wxDC::DrawTextA(const char[5], int,
+int)'</tt>
+</center>
+<p>
+or similar ones for the other functions, i.e. the compiler error messages
+mention the function with the <tt>'A'</tt> suffix while you didn't
+use it in your code, the explanation is that you had included
+<tt><windows.h></tt> header which redefines many symbols to have such
+suffix (or <tt>'W'</tt> in the Unicode builds).
+
+<p>
+The fix is to either not include <tt><windows.h></tt> at all or include
+<tt>"wx/msw/winundef.h"</tt> immediately after it.
+
<H3><a name="newerrors">Why my code fails to compile with strange errors about new operator?</a></H3>
The most common cause of this problem is the memory debugging settings in
regKey.SetName(idName);
{
- wxLogNull dummy;
+ wxLogNull dummy;
if (!regKey.Create())
{
idName = wxT("HKEY_CURRENT_USER\\SOFTWARE\\My Company\\My Product\\Stuff\\");
You will find below the list of all supported platforms for different ports of wxWindows 2.x (wxMSW/wxGTK/wxMotif ports
only). The cross icon in the third column doesn't mean that the platform is not supported, but just that wxWindows hasn't
-been tested on it recently (the table is being updated for wxWindows 2.1.14
-beta currently).
+been tested on it recently (the table is being updated for wxWindows 2.3.3
+currently).
<p>
See also:
<tr>
<td bgcolor="#F0F0F0" align=center valign=center rowspan=3>AIX</td>
- <td>wxGTK with AIX CC</td><td align=center><IMG SRC="images/no.gif" ALT=Unknown></td><td><br></td><td><br></td>
-<tr> <td>wxGTK 2.2.9 with gcc 3.0.4</td><td align=center><IMG SRC="images/yes.gif" ALT=Ok></td><td>Ian Brown</td><td>Shared library building doesn't work, use <tt>--disable-shared</tt></td>
+ <td>wxGTK 2.2.9 with gcc 3.0.4</td><td align=center><IMG SRC="images/yes.gif" ALT=Ok></td><td>Ian Brown</td><td>Shared library building doesn't work, use <tt>--disable-shared</tt></td>
+<tr> <td>wxGTK 2.3.3 with xlC (AIX 4.3.2)</td><td align=center><IMG SRC="images/yes.gif" ALT=Ok></td><td>Irvin Probst</td><td>Both static and shared wxGTK libraries work, but only with static GTK+ and GLib</td>
<tr> <td>wxMotif with xlC 3.1.4.0 (AIX 4.2)</td><td align=center><IMG SRC="images/yes.gif" ALT=Ok></td>
<td>Bernhard Eck</td>
<td>Some problems with OpenGL and native X server</td>
\begin{verbatim}
class MyClass { /* ... */ };
- // declare an hash map with string keys and int values
+ // declare a hash map with string keys and int values
WX_DECLARE_STRING_HASH_MAP( int, MyHash5 );
// same, with int keys and MyClass* values
WX_DECLARE_HASH_MAP( int, MyClass*, wxIntegerHash, wxIntegerEqual, MyHash1 );
static const int IDM_WINDOWICONS = 4003;
static const int IDM_WINDOWNEXT = 4004;
static const int IDM_WINDOWTILEVERT = 4005;
+static const int IDM_WINDOWPREV = 4006;
// This range gives a maximum of 500 MDI children. Should be enough :-)
static const int wxFIRST_MDI_CHILD = 4100;
static const int IDM_WINDOWICONS = 4003;
static const int IDM_WINDOWNEXT = 4004;
static const int IDM_WINDOWTILEVERT = 4005;
+static const int IDM_WINDOWPREV = 4006;
// This range gives a maximum of 500 MDI children. Should be enough :-)
static const int wxFIRST_MDI_CHILD = 4100;
static const int IDM_WINDOWICONS = 4003;
static const int IDM_WINDOWNEXT = 4004;
static const int IDM_WINDOWTILEVERT = 4005;
+static const int IDM_WINDOWPREV = 4006;
// This range gives a maximum of 500 MDI children. Should be enough :-)
static const int wxFIRST_MDI_CHILD = 4100;
m_windowMenu->AppendSeparator();
m_windowMenu->Append(IDM_WINDOWICONS, _("&Arrange Icons"));
m_windowMenu->Append(IDM_WINDOWNEXT, _("&Next"));
+ m_windowMenu->Append(IDM_WINDOWPREV, _("&Previous"));
}
m_parentFrameActive = TRUE;
// is it one of standard MDI commands?
WXWPARAM wParam = 0;
+ WXLPARAM lParam = 0;
int msg;
switch ( id )
{
case IDM_WINDOWNEXT:
msg = WM_MDINEXT;
+ lParam = 0; // next child
+ break;
+
+ case IDM_WINDOWPREV:
+ msg = WM_MDINEXT;
+ lParam = 1; // previous child
break;
default:
if ( msg )
{
- ::SendMessage(GetWinHwnd(GetClientWindow()), msg, wParam, 0);
+ ::SendMessage(GetWinHwnd(GetClientWindow()), msg, wParam, lParam);
return TRUE;
}
static const int IDM_WINDOWICONS = 4003;
static const int IDM_WINDOWNEXT = 4004;
static const int IDM_WINDOWTILEVERT = 4005;
+static const int IDM_WINDOWPREV = 4006;
// This range gives a maximum of 500 MDI children. Should be enough :-)
static const int wxFIRST_MDI_CHILD = 4100;