Applied patch [ 594416 ] MDI Previous Child
From Benjamin I. Williams git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@16537 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
<HTML>
|
<HTML>
|
||||||
|
|
||||||
<HEAD>
|
<HEAD>
|
||||||
@@ -24,19 +23,43 @@
|
|||||||
See also <a href="faq.htm">top-level FAQ page</a>.
|
See also <a href="faq.htm">top-level FAQ page</a>.
|
||||||
<hr>
|
<hr>
|
||||||
<h3>List of questions in this category</h3>
|
<h3>List of questions in this category</h3>
|
||||||
|
|
||||||
|
<ul>
|
||||||
<li><a href="#wxgtk">What is wxWindows 2 for GTK?</a></li>
|
<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="#gnome">Does wxGTK have GNOME support?</a></li>
|
||||||
<li><a href="#redhat">Warning about GTK libraries supplied with RedHat</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="#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>
|
<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>,
|
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
|
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>.
|
often abbreviated to wxGTK. wxGTK has a separate home page <a href="http://www.freiburg.linux.de/~wxxt" target=_top>here</a>.
|
||||||
<P>
|
<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>
|
<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
|
Currently wxGTK does not have any features that would involve dependence on any desktop
|
||||||
|
@@ -34,7 +34,7 @@ See also <a href="faq.htm">top-level FAQ page</a>.
|
|||||||
<li><a href="#filetypesx">How does CVS handle file types/creators under Mac OS X? </a></li>
|
<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="#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="#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="#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>
|
<li><a href="#aboutmenu">How does wxMac support the standard Apple About menu item and Help menu?</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
@@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
<HTML>
|
<HTML>
|
||||||
|
|
||||||
<HEAD>
|
<HEAD>
|
||||||
@@ -35,6 +34,7 @@ See also <a href="faq.htm">top-level FAQ page</a>.
|
|||||||
<li><a href="#dll">Can you compile wxWindows 2 as a DLL?</a></li>
|
<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="#exesize">How can I reduce executable size?</a></li>
|
||||||
<li><a href="#mfc">Is wxWindows compatible with MFC?</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="#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="#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>
|
<li><a href="#crash">Why do I sometimes get bizarre crash problems using VC++ 5/6?</a></li>
|
||||||
@@ -216,6 +216,25 @@ There is a sample which demonstrates MFC and wxWindows code co-existing in the s
|
|||||||
application. However, don't expect to be able to enable wxWindows windows with OLE-2
|
application. However, don't expect to be able to enable wxWindows windows with OLE-2
|
||||||
functionality using MFC.<P>
|
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>
|
<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
|
The most common cause of this problem is the memory debugging settings in
|
||||||
@@ -395,7 +414,7 @@ First, you can use wxRegKey directly, for example:
|
|||||||
regKey.SetName(idName);
|
regKey.SetName(idName);
|
||||||
|
|
||||||
{
|
{
|
||||||
wxLogNull dummy;
|
wxLogNull dummy;
|
||||||
if (!regKey.Create())
|
if (!regKey.Create())
|
||||||
{
|
{
|
||||||
idName = wxT("HKEY_CURRENT_USER\\SOFTWARE\\My Company\\My Product\\Stuff\\");
|
idName = wxT("HKEY_CURRENT_USER\\SOFTWARE\\My Company\\My Product\\Stuff\\");
|
||||||
|
@@ -22,8 +22,8 @@
|
|||||||
|
|
||||||
You will find below the list of all supported platforms for different ports of wxWindows 2.x (wxMSW/wxGTK/wxMotif ports
|
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
|
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
|
been tested on it recently (the table is being updated for wxWindows 2.3.3
|
||||||
beta currently).
|
currently).
|
||||||
<p>
|
<p>
|
||||||
See also:
|
See also:
|
||||||
|
|
||||||
@@ -102,8 +102,8 @@ often don't work.
|
|||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td bgcolor="#F0F0F0" align=center valign=center rowspan=3>AIX</td>
|
<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>
|
<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.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>
|
<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>Bernhard Eck</td>
|
||||||
<td>Some problems with OpenGL and native X server</td>
|
<td>Some problems with OpenGL and native X server</td>
|
||||||
|
@@ -8,7 +8,7 @@ whose interface is a subset of the interface of STL containers.
|
|||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
class MyClass { /* ... */ };
|
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 );
|
WX_DECLARE_STRING_HASH_MAP( int, MyHash5 );
|
||||||
// same, with int keys and MyClass* values
|
// same, with int keys and MyClass* values
|
||||||
WX_DECLARE_HASH_MAP( int, MyClass*, wxIntegerHash, wxIntegerEqual, MyHash1 );
|
WX_DECLARE_HASH_MAP( int, MyClass*, wxIntegerHash, wxIntegerEqual, MyHash1 );
|
||||||
|
@@ -44,6 +44,7 @@ static const int IDM_WINDOWCASCADE = 4002;
|
|||||||
static const int IDM_WINDOWICONS = 4003;
|
static const int IDM_WINDOWICONS = 4003;
|
||||||
static const int IDM_WINDOWNEXT = 4004;
|
static const int IDM_WINDOWNEXT = 4004;
|
||||||
static const int IDM_WINDOWTILEVERT = 4005;
|
static const int IDM_WINDOWTILEVERT = 4005;
|
||||||
|
static const int IDM_WINDOWPREV = 4006;
|
||||||
|
|
||||||
// This range gives a maximum of 500 MDI children. Should be enough :-)
|
// This range gives a maximum of 500 MDI children. Should be enough :-)
|
||||||
static const int wxFIRST_MDI_CHILD = 4100;
|
static const int wxFIRST_MDI_CHILD = 4100;
|
||||||
|
@@ -44,6 +44,7 @@ static const int IDM_WINDOWCASCADE = 4002;
|
|||||||
static const int IDM_WINDOWICONS = 4003;
|
static const int IDM_WINDOWICONS = 4003;
|
||||||
static const int IDM_WINDOWNEXT = 4004;
|
static const int IDM_WINDOWNEXT = 4004;
|
||||||
static const int IDM_WINDOWTILEVERT = 4005;
|
static const int IDM_WINDOWTILEVERT = 4005;
|
||||||
|
static const int IDM_WINDOWPREV = 4006;
|
||||||
|
|
||||||
// This range gives a maximum of 500 MDI children. Should be enough :-)
|
// This range gives a maximum of 500 MDI children. Should be enough :-)
|
||||||
static const int wxFIRST_MDI_CHILD = 4100;
|
static const int wxFIRST_MDI_CHILD = 4100;
|
||||||
|
@@ -82,6 +82,7 @@ static const int IDM_WINDOWCASCADE = 4002;
|
|||||||
static const int IDM_WINDOWICONS = 4003;
|
static const int IDM_WINDOWICONS = 4003;
|
||||||
static const int IDM_WINDOWNEXT = 4004;
|
static const int IDM_WINDOWNEXT = 4004;
|
||||||
static const int IDM_WINDOWTILEVERT = 4005;
|
static const int IDM_WINDOWTILEVERT = 4005;
|
||||||
|
static const int IDM_WINDOWPREV = 4006;
|
||||||
|
|
||||||
// This range gives a maximum of 500 MDI children. Should be enough :-)
|
// This range gives a maximum of 500 MDI children. Should be enough :-)
|
||||||
static const int wxFIRST_MDI_CHILD = 4100;
|
static const int wxFIRST_MDI_CHILD = 4100;
|
||||||
@@ -188,6 +189,7 @@ bool wxMDIParentFrame::Create(wxWindow *parent,
|
|||||||
m_windowMenu->AppendSeparator();
|
m_windowMenu->AppendSeparator();
|
||||||
m_windowMenu->Append(IDM_WINDOWICONS, _("&Arrange Icons"));
|
m_windowMenu->Append(IDM_WINDOWICONS, _("&Arrange Icons"));
|
||||||
m_windowMenu->Append(IDM_WINDOWNEXT, _("&Next"));
|
m_windowMenu->Append(IDM_WINDOWNEXT, _("&Next"));
|
||||||
|
m_windowMenu->Append(IDM_WINDOWPREV, _("&Previous"));
|
||||||
}
|
}
|
||||||
|
|
||||||
m_parentFrameActive = TRUE;
|
m_parentFrameActive = TRUE;
|
||||||
@@ -500,6 +502,7 @@ bool wxMDIParentFrame::HandleCommand(WXWORD id, WXWORD cmd, WXHWND hwnd)
|
|||||||
|
|
||||||
// is it one of standard MDI commands?
|
// is it one of standard MDI commands?
|
||||||
WXWPARAM wParam = 0;
|
WXWPARAM wParam = 0;
|
||||||
|
WXLPARAM lParam = 0;
|
||||||
int msg;
|
int msg;
|
||||||
switch ( id )
|
switch ( id )
|
||||||
{
|
{
|
||||||
@@ -525,6 +528,12 @@ bool wxMDIParentFrame::HandleCommand(WXWORD id, WXWORD cmd, WXHWND hwnd)
|
|||||||
|
|
||||||
case IDM_WINDOWNEXT:
|
case IDM_WINDOWNEXT:
|
||||||
msg = WM_MDINEXT;
|
msg = WM_MDINEXT;
|
||||||
|
lParam = 0; // next child
|
||||||
|
break;
|
||||||
|
|
||||||
|
case IDM_WINDOWPREV:
|
||||||
|
msg = WM_MDINEXT;
|
||||||
|
lParam = 1; // previous child
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@@ -533,7 +542,7 @@ bool wxMDIParentFrame::HandleCommand(WXWORD id, WXWORD cmd, WXHWND hwnd)
|
|||||||
|
|
||||||
if ( msg )
|
if ( msg )
|
||||||
{
|
{
|
||||||
::SendMessage(GetWinHwnd(GetClientWindow()), msg, wParam, 0);
|
::SendMessage(GetWinHwnd(GetClientWindow()), msg, wParam, lParam);
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
@@ -53,6 +53,7 @@ static const int IDM_WINDOWCASCADE = 4002;
|
|||||||
static const int IDM_WINDOWICONS = 4003;
|
static const int IDM_WINDOWICONS = 4003;
|
||||||
static const int IDM_WINDOWNEXT = 4004;
|
static const int IDM_WINDOWNEXT = 4004;
|
||||||
static const int IDM_WINDOWTILEVERT = 4005;
|
static const int IDM_WINDOWTILEVERT = 4005;
|
||||||
|
static const int IDM_WINDOWPREV = 4006;
|
||||||
|
|
||||||
// This range gives a maximum of 500 MDI children. Should be enough :-)
|
// This range gives a maximum of 500 MDI children. Should be enough :-)
|
||||||
static const int wxFIRST_MDI_CHILD = 4100;
|
static const int wxFIRST_MDI_CHILD = 4100;
|
||||||
|
Reference in New Issue
Block a user