From: Vadim Zeitlin Date: Fri, 5 Oct 2001 19:55:19 +0000 (+0000) Subject: fixed the problem with the ampersand [mis]handling in the generic wxMessageDialog X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/a350a4884134b13ec47a7c5c18f473f878e7cbc4?ds=inline fixed the problem with the ampersand [mis]handling in the generic wxMessageDialog git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@11853 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/common/dlgcmn.cpp b/src/common/dlgcmn.cpp index 8895538665..3688684b37 100644 --- a/src/common/dlgcmn.cpp +++ b/src/common/dlgcmn.cpp @@ -64,7 +64,7 @@ void wxDialogBase::Init() #if wxUSE_STATTEXT && wxUSE_TEXTCTRL -wxSizer *wxDialogBase::CreateTextSizer( const wxString &message ) +wxSizer *wxDialogBase::CreateTextSizer( const wxString& message ) { wxBoxSizer *box = new wxBoxSizer( wxVERTICAL ); @@ -76,24 +76,34 @@ wxSizer *wxDialogBase::CreateTextSizer( const wxString &message ) GetTextExtent(_T("H"), (int*)NULL, &y, (int*)NULL, (int*)NULL, &font); wxString line; - for (size_t pos = 0; pos < message.Len(); pos++) + for ( size_t pos = 0; pos < message.length(); pos++ ) { - if (message[pos] == wxT('\n')) + switch ( message[pos] ) { - if (!line.IsEmpty()) - { - wxStaticText *s1 = new wxStaticText( this, -1, line ); - box->Add( s1 ); - line = wxT(""); - } - else - { - box->Add( 5, y ); - } - } - else - { - line += message[pos]; + case _T('\n'): + if (!line.IsEmpty()) + { + wxStaticText *s1 = new wxStaticText( this, -1, line ); + box->Add( s1 ); + line = wxT(""); + } + else + { + box->Add( 5, y ); + } + break; + + case _T('&'): + // this is used as accel mnemonic prefix in the wxWindows + // controls but in the static messages created by + // CreateTextSizer() (used by wxMessageBox, for example), we + // don't want this special meaning, so we need to quote it + line += _T('&'); + + // fall through to add it normally too + + default: + line += message[pos]; } }